diff --git a/_build/default/boot_js.bc.js b/_build/default/boot_js.bc.js index 46afe44..25d3726 100644 --- a/_build/default/boot_js.bc.js +++ b/_build/default/boot_js.bc.js @@ -564379,13 +564379,13 @@ Lwd_utils=global_data.Lwd_utils, Lwd_table=global_data.Lwd_table, Logs=global_data.Logs, + Lwt=global_data.Lwt, Stdlib_Option=global_data.Stdlib__Option, Stdlib_Int=global_data.Stdlib__Int, Stdlib_Uchar=global_data.Stdlib__Uchar, Stdlib_Format=global_data.Stdlib__Format, Stdlib_Printf=global_data.Stdlib__Printf, Lwt_stream=global_data.Lwt_stream, - Lwt=global_data.Lwt, Gg=global_data.Gg, Assert_failure=global_data.Assert_failure, Fmt=global_data.Fmt, @@ -564393,9 +564393,9 @@ Stdlib_String=global_data.Stdlib__String, Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, Js_of_ocaml_Dom_html=global_data.Js_of_ocaml__Dom_html, - Js_of_ocaml_Firebug=global_data.Js_of_ocaml__Firebug, Mimic=global_data.Mimic, Irmin_mem=global_data.Irmin_mem, + Js_of_ocaml_Firebug=global_data.Js_of_ocaml__Firebug, Smart_git=global_data.Smart_git, Irmin=global_data.Irmin, Git_Reference=global_data.Git__Reference, @@ -564419,72 +564419,76 @@ Irmin_git=global_data.Irmin_git, Irmin_Sync=global_data.Irmin__Sync, include$0=global_data.Graphv_webgl, + _fo_=[0,0.], + _fp_=[0,0.], + _fk_=[0,1.], + _fl_=[0,1.], _fm_=[0,0.], _fn_=[0,0.], - _fi_=[0,1.], - _fj_=[0,1.], - _fk_=[0,0.], - _fl_=[0,0.], - _fh_=[254,0.,0.,0.,0.], - _fc_=[0,[12,91,[2,0,[12,124,0]]],caml_string_of_jsbytes("[%s|")], - _fa_=[0,caml_string_of_jsbytes("")], - _fb_=[0,1], - _e$_= + _fj_=[254,0.,0.,0.,0.], + _fe_=[0,[12,91,[2,0,[12,124,0]]],caml_string_of_jsbytes("[%s|")], + _fc_=[0,caml_string_of_jsbytes("")], + _fd_=[0,1], + _fb_= [0, [11,caml_string_of_jsbytes("cannot list directory "),[2,0,0]], caml_string_of_jsbytes("cannot list directory %s")], - _e__=[0,[12,91,[2,0,[12,93,0]]],caml_string_of_jsbytes("[%s]")], - _e9_= + _fa_=[0,[12,91,[2,0,[12,93,0]]],caml_string_of_jsbytes("[%s]")], + _e$_= [0, - [11,caml_string_of_jsbytes("line_table handler "),[15,0]], - caml_string_of_jsbytes("line_table handler %a")], - _e8_=[0,caml_string_of_jsbytes(""),0], - _e6_= + [11,caml_string_of_jsbytes("edit_area handler "),[15,0]], + caml_string_of_jsbytes("edit_area handler %a")], + _e__= + [0, + [11,caml_string_of_jsbytes("edit_area handler "),[15,0]], + caml_string_of_jsbytes("edit_area handler %a")], + _e9_=[0,caml_string_of_jsbytes(""),0], + _e7_= [0, [11, caml_string_of_jsbytes("edit_field keyboard_area handler "), [15,[11,caml_string_of_jsbytes(" -> "),[15,0]]]], caml_string_of_jsbytes("edit_field keyboard_area handler %a -> %a")], - _e7_=[0,caml_string_of_jsbytes(""),0], - _eS_=[0,1.], - _eT_=[0,0.], + _e8_=[0,caml_string_of_jsbytes(""),0], + _eT_=[0,1.], _eU_=[0,0.], - _eV_=[0,1.], - _eW_=[0,0.], + _eV_=[0,0.], + _eW_=[0,1.], _eX_=[0,0.], _eY_=[0,0.], - _eZ_=[0,1.], + _eZ_=[0,0.], _e0_=[0,1.], - _e1_=[0,0.], - _e2_=[0,1.], + _e1_=[0,1.], + _e2_=[0,0.], _e3_=[0,1.], - _e4_=[0,10.], + _e4_=[0,1.], _e5_=[0,10.], - _eR_=[0,5.,10.], - _eD_=[0,1.], - _eE_=[0,0.], + _e6_=[0,10.], + _eS_=[0,5.,10.], + _eE_=[0,1.], _eF_=[0,0.], - _eG_=[0,1.], - _eH_=[0,0.], + _eG_=[0,0.], + _eH_=[0,1.], _eI_=[0,0.], - _eJ_=[0,1.], - _eK_=[0,0.], + _eJ_=[0,0.], + _eK_=[0,1.], _eL_=[0,0.], - _eM_=[0,1.], - _eN_=[0,10.], + _eM_=[0,0.], + _eN_=[0,1.], _eO_=[0,10.], - _eP_=[0,100.], + _eP_=[0,10.], _eQ_=[0,100.], - _eC_=[0,5.,10.], - _eB_=[0,0.,0.], - _ez_=[0,1.], + _eR_=[0,100.], + _eD_=[0,5.,10.], + _eC_=[0,0.,0.], _eA_=[0,1.], - _ey_=[0,0], - _er_= + _eB_=[0,1.], + _ez_=[0,0], + _es_= [0, [11,caml_string_of_jsbytes("render_node Atom has_focus"),0], caml_string_of_jsbytes("render_node Atom has_focus")], - _ev_= + _ew_= [0, [11, caml_string_of_jsbytes @@ -564492,27 +564496,27 @@ 0], caml_string_of_jsbytes ("dispatch_focus Focus_area has_focus t'.focus = true")], - _ew_= + _ex_= [0, [11, caml_string_of_jsbytes("Renderer.dispatch_focus key:"), [15,[11,caml_string_of_jsbytes(" -> "),[9,0,0]]]], caml_string_of_jsbytes("Renderer.dispatch_focus key:%a -> %b")], - _ex_=[0,858945253,0], - _eu_= + _ey_=[0,858945253,0], + _ev_= [0, [11,caml_string_of_jsbytes("grab_focus Acquired_focus -> true"),0], caml_string_of_jsbytes("grab_focus Acquired_focus -> true")], - _et_= + _eu_= [0, [11,caml_string_of_jsbytes("grab_focus"),0], caml_string_of_jsbytes("grab_focus")], - _es_= + _et_= [0, [11,caml_string_of_jsbytes("Renderer.image view="),[15,[12,32,0]]], caml_string_of_jsbytes("Renderer.image view=%a ")], - _eq_=[0,caml_string_of_jsbytes("human.ml"),1910,12], - _ec_= + _er_=[0,caml_string_of_jsbytes("human.ml"),1908,12], + _ed_= [0, [18, [1, @@ -564521,7 +564525,7 @@ caml_string_of_jsbytes("")]], [11,caml_string_of_jsbytes("focus="),[15,[12,32,[15,[17,0,0]]]]]], caml_string_of_jsbytes("@[focus=%a %a@]")], - _ed_= + _ee_= [0, [11, caml_string_of_jsbytes("Atom "), @@ -564532,13 +564536,13 @@ caml_string_of_jsbytes("")]], [12,40,[15,[12,41,[17,0,0]]]]]], caml_string_of_jsbytes("Atom @[(%a)@]")], - _ee_= + _ef_= [0, [11, caml_string_of_jsbytes("Size_sensor ("), [15,[11,caml_string_of_jsbytes(", _)"),0]]], caml_string_of_jsbytes("Size_sensor (%a, _)")], - _ef_= + _eg_= [0, [11, caml_string_of_jsbytes("Transient_sensor ("), @@ -564549,7 +564553,7 @@ [0,caml_string_of_jsbytes("@ "),1,0], [11,caml_string_of_jsbytes("_)"),0]]]]], caml_string_of_jsbytes("Transient_sensor (%a,@ _)")], - _eg_= + _eh_= [0, [11, caml_string_of_jsbytes("Permanent_sensor ("), @@ -564560,7 +564564,7 @@ [0,caml_string_of_jsbytes("@ "),1,0], [11,caml_string_of_jsbytes("_)"),0]]]]], caml_string_of_jsbytes("Permanent_sensor (%a,@ _)")], - _eh_= + _ei_= [0, [11, caml_string_of_jsbytes("Resize ("), @@ -564576,8 +564580,8 @@ caml_string_of_jsbytes("_,"), [17,[0,caml_string_of_jsbytes("@ "),1,0],[15,[12,41,0]]]]]]]]]], caml_string_of_jsbytes("Resize (%a, %a,@ _,@ %a)")], - _ei_=[0,[15,0],caml_string_of_jsbytes("%a")], - _ej_= + _ej_=[0,[15,0],caml_string_of_jsbytes("%a")], + _ek_= [0, [11, caml_string_of_jsbytes("Focus ("), @@ -564588,13 +564592,13 @@ [0,caml_string_of_jsbytes("@ "),1,0], [11,caml_string_of_jsbytes("_)"),0]]]]], caml_string_of_jsbytes("Focus (%a,@ _)")], - _ek_= + _el_= [0, [11, caml_string_of_jsbytes("Shift ("), [8,[0,0,0],0,[0,0],[12,44,[8,[0,0,0],0,[0,0],[12,44,[15,[12,41,0]]]]]]], caml_string_of_jsbytes("Shift (%.0f,%.0f,%a)")], - _el_= + _em_= [0, [11, caml_string_of_jsbytes("Event ("), @@ -564605,7 +564609,7 @@ [0,caml_string_of_jsbytes("@ "),1,0], [11,caml_string_of_jsbytes("_)"),0]]]]], caml_string_of_jsbytes("Event (%a,@ _)")], - _em_= + _en_= [0, [11, caml_string_of_jsbytes("X ("), @@ -564616,7 +564620,7 @@ 44, [17,[0,caml_string_of_jsbytes("@ "),1,0],[15,[17,0,[12,41,0]]]]]]]], caml_string_of_jsbytes("X (@[%a,@ %a@])")], - _en_= + _eo_= [0, [11, caml_string_of_jsbytes("Y ("), @@ -564627,7 +564631,7 @@ 44, [17,[0,caml_string_of_jsbytes("@ "),1,0],[15,[17,0,[12,41,0]]]]]]]], caml_string_of_jsbytes("Y (@[%a,@ %a@])")], - _eo_= + _ep_= [0, [11, caml_string_of_jsbytes("Z ("), @@ -564638,7 +564642,7 @@ 44, [17,[0,caml_string_of_jsbytes("@ "),1,0],[15,[17,0,[12,41,0]]]]]]]], caml_string_of_jsbytes("Z (@[%a,@ %a@])")], - _eb_= + _ec_= [0, [11, caml_string_of_jsbytes("{w="), @@ -564656,29 +564660,29 @@ [0,caml_string_of_jsbytes("@ "),1,0], [11,caml_string_of_jsbytes("sw="),[15,partial]]]]]]]]]], caml_string_of_jsbytes("{w=%a;@ h=%a;@ sw=%a;@ sh=%a}")], - _ea_=[0,[8,[0,0,0],0,[0,1],0],caml_string_of_jsbytes("%.1f")], - _d7_= + _eb_=[0,[8,[0,0,0],0,[0,1],0],caml_string_of_jsbytes("%.1f")], + _d8_= [0, [11,caml_string_of_jsbytes("`Copy"),0], caml_string_of_jsbytes("`Copy")], - _d6_= + _d7_= [0, [11,caml_string_of_jsbytes("`Paste"),0], caml_string_of_jsbytes("`Paste")], - _d9_= + _d__= [0, [11,caml_string_of_jsbytes("`Focus "),[2,0,0]], caml_string_of_jsbytes("`Focus %s")], - _d8_=[0,[15,0],caml_string_of_jsbytes("%a")], - _d2_= + _d9_=[0,[15,0],caml_string_of_jsbytes("%a")], + _d3_= [0, [11,caml_string_of_jsbytes("`Handled"),0], caml_string_of_jsbytes("`Handled")], - _d3_= + _d4_= [0, [11,caml_string_of_jsbytes("`Unhandled"),0], caml_string_of_jsbytes("`Unhandled")], - _d1_= + _d2_= [0, [11, caml_string_of_jsbytes("{ h = "), @@ -564687,21 +564691,27 @@ caml_string_of_jsbytes("; v = "), [15,[11,caml_string_of_jsbytes(" }"),0]]]]], caml_string_of_jsbytes("{ h = %a; v = %a }")], - _dY_= + _dZ_= [0, [11,caml_string_of_jsbytes("Empty"),0], caml_string_of_jsbytes("Empty")], - _dZ_= + _d0_= [0, [11, caml_string_of_jsbytes("Handle ("), [4,0,0,0,[11,caml_string_of_jsbytes(", "),[15,[12,41,0]]]]], caml_string_of_jsbytes("Handle (%d, %a)")], - _d0_= + _d1_= [0, [11,caml_string_of_jsbytes("Conflict "),[4,0,0,0,0]], caml_string_of_jsbytes("Conflict %d")], - _dX_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _dY_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _dX_= + [0, + [11, + caml_string_of_jsbytes("Focus.release v="), + [4,0,0,0,[11,caml_string_of_jsbytes(" clock="),[4,0,0,0,0]]]], + caml_string_of_jsbytes("Focus.release v=%d clock=%d")], _dW_= [0, [11, @@ -564902,11 +564912,11 @@ case 3:var meth=cst_info;break; default:var meth=cst_debug} /*<>*/ var - /*<>*/ _NN_= + /*<>*/ _Ox_= [0, /*<>*/ caml_jsstring_of_string(s)], - /*<>*/ _NO_=console; + /*<>*/ _Oy_=console; /*<>*/ /*<>*/ runtime.caml_js_meth_call - (_NO_,meth,_NN_); + (_Oy_,meth,_Ox_); /*<>*/ return 0 /*<>*/ } /*<>*/ var /*<>*/ _a_=255, @@ -564914,10 +564924,10 @@ /*<>*/ b= /*<>*/ caml_call1(_b_,_a_); /*<>*/ function flush(param) { /*<>*/ var - /*<>*/ _NL_=include[2], - /*<>*/ s= /*<>*/ caml_call1(_NL_,b), - /*<>*/ _NM_=include[8]; - /*<>*/ /*<>*/ caml_call1(_NM_,b); + /*<>*/ _Ov_=include[2], + /*<>*/ s= /*<>*/ caml_call1(_Ov_,b), + /*<>*/ _Ow_=include[8]; + /*<>*/ /*<>*/ caml_call1(_Ow_,b); /*<>*/ return s /*<>*/ } /*<>*/ var /*<>*/ _c_=Stdlib_Format[111], @@ -564926,27 +564936,27 @@ [0, function(level,s) { /*<>*/ var - /*<>*/ _NF_=Stdlib[28], - /*<>*/ _NG_= - /*<>*/ caml_call2(_NF_,cst,s), - /*<>*/ _NH_=[0,level], - /*<>*/ _NI_=Logs[4], - /*<>*/ _NJ_= - /*<>*/ caml_call1(_NI_,_NH_), - /*<>*/ _NK_=Stdlib[28]; + /*<>*/ _Op_=Stdlib[28], + /*<>*/ _Oq_= + /*<>*/ caml_call2(_Op_,cst,s), + /*<>*/ _Or_=[0,level], + /*<>*/ _Os_=Logs[4], + /*<>*/ _Ot_= + /*<>*/ caml_call1(_Os_,_Or_), + /*<>*/ _Ou_=Stdlib[28]; /*<>*/ /*<>*/ caml_call2 - (_NK_,_NJ_,_NG_); + (_Ou_,_Ot_,_Oq_); /*<>*/ return 0 /*<>*/ }]; /*<>*/ function console_report(src,level,over,k,msgf) { /*<>*/ function k$0(param) { /*<>*/ var - /*<>*/ _NC_=0, - /*<>*/ s= /*<>*/ flush(_NC_); + /*<>*/ _Om_=0, + /*<>*/ s= /*<>*/ flush(_Om_); /*<>*/ /*<>*/ console$0(level,s); - /*<>*/ /*<>*/ var _ND_=hook[1]; - /*<>*/ /*<>*/ caml_call2(_ND_,level,s); - /*<>*/ /*<>*/ var _NE_=0; - /*<>*/ /*<>*/ caml_call1(over,_NE_); + /*<>*/ /*<>*/ var _On_=hook[1]; + /*<>*/ /*<>*/ caml_call2(_On_,level,s); + /*<>*/ /*<>*/ var _Oo_=0; + /*<>*/ /*<>*/ caml_call1(over,_Oo_); /*<>*/ return /*<>*/ caml_call1(k,0) /*<>*/ } /*<>*/ return /*<>*/ caml_call1 (msgf, @@ -564954,23 +564964,23 @@ { /*<>*/ if(header) { /*<>*/ var /*<>*/ h=header[1], - /*<>*/ _Nu_=Stdlib[98], - /*<>*/ _Nv_= - /*<>*/ caml_call2(_Nu_,fmt,_d_), - /*<>*/ _Nw_=Stdlib[98], - /*<>*/ _Nx_= - /*<>*/ caml_call2(_Nw_,_e_,_Nv_); + /*<>*/ _Oe_=Stdlib[98], + /*<>*/ _Of_= + /*<>*/ caml_call2(_Oe_,fmt,_d_), + /*<>*/ _Og_=Stdlib[98], + /*<>*/ _Oh_= + /*<>*/ caml_call2(_Og_,_e_,_Of_); /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[136],k$0,ppf,_Nx_,h)} + (Stdlib_Format[136],k$0,ppf,_Oh_,h)} /*<>*/ var - /*<>*/ _Ny_=Stdlib[98], - /*<>*/ _Nz_= - /*<>*/ caml_call2(_Ny_,fmt,_f_), - /*<>*/ _NA_=Stdlib[98], - /*<>*/ _NB_= - /*<>*/ caml_call2(_NA_,_g_,_Nz_); + /*<>*/ _Oi_=Stdlib[98], + /*<>*/ _Oj_= + /*<>*/ caml_call2(_Oi_,fmt,_f_), + /*<>*/ _Ok_=Stdlib[98], + /*<>*/ _Ol_= + /*<>*/ caml_call2(_Ok_,_g_,_Oj_); /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Format[136],k$0,ppf,_NB_) /*<>*/ }) /*<>*/ } + (Stdlib_Format[136],k$0,ppf,_Ol_) /*<>*/ }) /*<>*/ } /*<>*/ function console_reporter(param) { /*<>*/ return [0,console_report] /*<>*/ } /*<>*/ var @@ -565005,62 +565015,62 @@ else var max=10; /*<>*/ if(max < 10) - { /*<>*/ /*<>*/ var _Nb_=Stdlib[1]; + { /*<>*/ /*<>*/ var _NX_=Stdlib[1]; /*<>*/ /*<>*/ caml_call1 - (_Nb_,cst_with_redirects)} + (_NX_,cst_with_redirects)} /*<>*/ var - /*<>*/ _Nc_=16, - /*<>*/ _Nd_=0, - /*<>*/ _Ne_=Stdlib_Hashtbl[1], + /*<>*/ _NY_=16, + /*<>*/ _NZ_=0, + /*<>*/ _N0_=Stdlib_Hashtbl[1], /*<>*/ tbl= - /*<>*/ caml_call2(_Ne_,_Nd_,_Nc_); + /*<>*/ caml_call2(_N0_,_NZ_,_NY_); /*<>*/ function go(max,uri) - { /*<>*/ function _Nf_(param) + { /*<>*/ function _N1_(param) { /*<>*/ var /*<>*/ body=param[2], /*<>*/ resp=param[1], - /*<>*/ _Nh_=Cohttp_Response[6], - /*<>*/ _Ni_= - /*<>*/ caml_call1(_Nh_,resp), - /*<>*/ _Nj_=Cohttp_Code[35], + /*<>*/ _N3_=Cohttp_Response[6], + /*<>*/ _N4_= + /*<>*/ caml_call1(_N3_,resp), + /*<>*/ _N5_=Cohttp_Code[35], /*<>*/ status_code= - /*<>*/ caml_call1(_Nj_,_Ni_), - /*<>*/ _Nk_=Cohttp_Code[40]; + /*<>*/ caml_call1(_N5_,_N4_), + /*<>*/ _N6_=Cohttp_Code[40]; /*<>*/ if - ( /*<>*/ caml_call1(_Nk_,status_code)) + ( /*<>*/ caml_call1(_N6_,status_code)) { /*<>*/ var - /*<>*/ _Nl_=Cohttp_Response[4], - /*<>*/ _Nm_= - /*<>*/ caml_call1(_Nl_,resp), - /*<>*/ _Nn_=Cohttp_Header[43], + /*<>*/ _N7_=Cohttp_Response[4], + /*<>*/ _N8_= + /*<>*/ caml_call1(_N7_,resp), + /*<>*/ _N9_=Cohttp_Header[43], /*<>*/ match= - /*<>*/ caml_call1(_Nn_,_Nm_); + /*<>*/ caml_call1(_N9_,_N8_); /*<>*/ if(match) { /*<>*/ var /*<>*/ uri=match[1], - /*<>*/ _No_=Stdlib_Hashtbl[9]; + /*<>*/ _N__=Stdlib_Hashtbl[9]; if (! - /*<>*/ caml_call2(_No_,tbl,uri) + /*<>*/ caml_call2(_N__,tbl,uri) && 0 !== max) { /*<>*/ var - /*<>*/ _Np_=0, - /*<>*/ _Nq_=Stdlib_Hashtbl[5]; + /*<>*/ _N$_=0, + /*<>*/ _Oa_=Stdlib_Hashtbl[5]; /*<>*/ /*<>*/ caml_call3 - (_Nq_,tbl,uri,_Np_); + (_Oa_,tbl,uri,_N$_); /*<>*/ var - /*<>*/ _Nr_= + /*<>*/ _Ob_= function(param) { /*<>*/ return /*<>*/ go (max - 1 | 0,uri) /*<>*/ }, - /*<>*/ _Ns_=Cohttp_lwt_Body[19], - /*<>*/ _Nt_= - /*<>*/ caml_call1(_Ns_,body); + /*<>*/ _Oc_=Cohttp_lwt_Body[19], + /*<>*/ _Od_= + /*<>*/ caml_call1(_Oc_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Nt_,_Nr_)} + (Lwt[33][1],_Od_,_Ob_)} /*<>*/ return /*<>*/ caml_call1 (Lwt[4],[0,resp,body])} /*<>*/ return /*<>*/ caml_call1 @@ -565068,10 +565078,10 @@ /*<>*/ return /*<>*/ caml_call1 (Lwt[4],[0,resp,body]) /*<>*/ } /*<>*/ /*<>*/ var - _Ng_= + _N2_= /*<>*/ caml_call1(f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Ng_,_Nf_) /*<>*/ } + (Lwt[33][1],_N2_,_N1_) /*<>*/ } /*<>*/ return /*<>*/ go(max,uri) /*<>*/ } /*<>*/ function get(param,opt,uri) { /*<>*/ if(opt) @@ -565080,40 +565090,40 @@ headers=sth; else var headers=0; - /*<>*/ function _M2_(x) + /*<>*/ function _NM_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,1), x) /*<>*/ } /*<>*/ var - /*<>*/ _M3_="Git_Cohttp_console.get()\n", - /*<>*/ _M4_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _M5_(t1,t0,param) + /*<>*/ _NN_="Git_Cohttp_console.get()\n", + /*<>*/ _NO_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _NP_(t1,t0,param) { /*<>*/ return t1.log(t0)} - _M5_(_M4_,_M3_,_M2_); + _NP_(_NO_,_NN_,_NM_); /*<>*/ var - _M6_=Cohttp_Header[5], + _NQ_=Cohttp_Header[5], /*<>*/ headers$0= - /*<>*/ caml_call1(_M6_,headers); + /*<>*/ caml_call1(_NQ_,headers); /*<>*/ function f(uri) { /*<>*/ return /*<>*/ caml_call3 (Cohttp_lwt_jsoo[3][3],0,[0,headers$0],uri) /*<>*/ } - /*<>*/ function _M7_(param) + /*<>*/ function _NR_(param) { /*<>*/ /*<>*/ var body=param[2]; - /*<>*/ function _M__(body) + /*<>*/ function _NU_(body) { /*<>*/ return /*<>*/ caml_call1 (Lwt[42],[0,0,body]) /*<>*/ } /*<>*/ var - /*<>*/ _M$_=Cohttp_lwt_Body[11], - /*<>*/ _Na_= - /*<>*/ caml_call1(_M$_,body); + /*<>*/ _NV_=Cohttp_lwt_Body[11], + /*<>*/ _NW_= + /*<>*/ caml_call1(_NV_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Na_,_M__) /*<>*/ } + (Lwt[33][1],_NW_,_NU_) /*<>*/ } /*<>*/ var - /*<>*/ _M8_=0, - /*<>*/ _M9_= - /*<>*/ with_redirects(_M8_,f,uri); + /*<>*/ _NS_=0, + /*<>*/ _NT_= + /*<>*/ with_redirects(_NS_,f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_M9_,_M7_) /*<>*/ } + (Lwt[33][1],_NT_,_NR_) /*<>*/ } /*<>*/ function post(param,opt,uri,body) { /*<>*/ if(opt) /*<>*/ var @@ -565122,32 +565132,32 @@ else var headers=0; /*<>*/ var - /*<>*/ _MU_=Cohttp_Header[5], + /*<>*/ _NE_=Cohttp_Header[5], /*<>*/ headers$0= - /*<>*/ caml_call1(_MU_,headers), - /*<>*/ _MV_=Cohttp_lwt_Body[5], + /*<>*/ caml_call1(_NE_,headers), + /*<>*/ _NF_=Cohttp_lwt_Body[5], /*<>*/ body$0= - /*<>*/ caml_call1(_MV_,body); + /*<>*/ caml_call1(_NF_,body); /*<>*/ function f(uri) { /*<>*/ return /*<>*/ caml_call5 (Cohttp_lwt_jsoo[3][5],0,[0,body$0],_s_,[0,headers$0],uri) /*<>*/ } - /*<>*/ function _MW_(param) + /*<>*/ function _NG_(param) { /*<>*/ /*<>*/ var body=param[2]; - /*<>*/ function _MZ_(body) + /*<>*/ function _NJ_(body) { /*<>*/ return /*<>*/ caml_call1 (Lwt[42],[0,0,body]) /*<>*/ } /*<>*/ var - /*<>*/ _M0_=Cohttp_lwt_Body[11], - /*<>*/ _M1_= - /*<>*/ caml_call1(_M0_,body); + /*<>*/ _NK_=Cohttp_lwt_Body[11], + /*<>*/ _NL_= + /*<>*/ caml_call1(_NK_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_M1_,_MZ_) /*<>*/ } + (Lwt[33][1],_NL_,_NJ_) /*<>*/ } /*<>*/ var - /*<>*/ _MX_=0, - /*<>*/ _MY_= - /*<>*/ with_redirects(_MX_,f,uri); + /*<>*/ _NH_=0, + /*<>*/ _NI_= + /*<>*/ with_redirects(_NH_,f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_MY_,_MW_) /*<>*/ } + (Lwt[33][1],_NI_,_NG_) /*<>*/ } /*<>*/ /*<>*/ var Git_af= [0, @@ -565160,9 +565170,9 @@ post]; /*<>*/ function context(ctx) { /*<>*/ var - /*<>*/ _Mu_=Mimic[8], + /*<>*/ _Ne_=Mimic[8], /*<>*/ edn= - /*<>*/ caml_call1(_Mu_,cst_af_http_endpoint); + /*<>*/ caml_call1(_Ne_,cst_af_http_endpoint); /*<>*/ function k1 (git_af_scheme,git_af_hostname,git_af_port) { /*<>*/ return 802644872 === git_af_scheme @@ -565170,26 +565180,26 @@ (Lwt[41],[0,git_af_hostname,git_af_port]) :Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _Mv_=0, - /*<>*/ _Mw_=80, - /*<>*/ _Mx_=Git_af[2], - /*<>*/ _My_=Mimic[7][3], - /*<>*/ _Mz_= - [0, /*<>*/ caml_call2(_My_,_Mx_,_Mw_),_Mv_], - /*<>*/ _MA_=Git_af[3], - /*<>*/ _MB_=Mimic[7][1], - /*<>*/ _MC_= - [0, /*<>*/ caml_call1(_MB_,_MA_),_Mz_], - /*<>*/ _MD_=Git_af[1], - /*<>*/ _ME_=Mimic[7][1], - /*<>*/ _MF_= - [0, /*<>*/ caml_call1(_ME_,_MD_),_MC_], - /*<>*/ _MG_=Mimic[11], + /*<>*/ _Nf_=0, + /*<>*/ _Ng_=80, + /*<>*/ _Nh_=Git_af[2], + /*<>*/ _Ni_=Mimic[7][3], + /*<>*/ _Nj_= + [0, /*<>*/ caml_call2(_Ni_,_Nh_,_Ng_),_Nf_], + /*<>*/ _Nk_=Git_af[3], + /*<>*/ _Nl_=Mimic[7][1], + /*<>*/ _Nm_= + [0, /*<>*/ caml_call1(_Nl_,_Nk_),_Nj_], + /*<>*/ _Nn_=Git_af[1], + /*<>*/ _No_=Mimic[7][1], + /*<>*/ _Np_= + [0, /*<>*/ caml_call1(_No_,_Nn_),_Nm_], + /*<>*/ _Nq_=Mimic[11], /*<>*/ ctx$0= - /*<>*/ caml_call4(_MG_,edn,_MF_,k1,ctx), - /*<>*/ _MH_=Mimic[8], + /*<>*/ caml_call4(_Nq_,edn,_Np_,k1,ctx), + /*<>*/ _Nr_=Mimic[8], /*<>*/ edn$0= - /*<>*/ caml_call1(_MH_,cst_af_https_endpoint); + /*<>*/ caml_call1(_Nr_,cst_af_https_endpoint); /*<>*/ function k1$0 (git_af_scheme,git_af_hostname,git_af_port) { /*<>*/ return 748663755 === git_af_scheme @@ -565197,23 +565207,23 @@ (Lwt[41],[0,git_af_hostname,git_af_port]) :Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _MI_=0, - /*<>*/ _MJ_=443, - /*<>*/ _MK_=Git_af[2], - /*<>*/ _ML_=Mimic[7][3], - /*<>*/ _MM_= - [0, /*<>*/ caml_call2(_ML_,_MK_,_MJ_),_MI_], - /*<>*/ _MN_=Git_af[3], - /*<>*/ _MO_=Mimic[7][1], - /*<>*/ _MP_= - [0, /*<>*/ caml_call1(_MO_,_MN_),_MM_], - /*<>*/ _MQ_=Git_af[1], - /*<>*/ _MR_=Mimic[7][1], - /*<>*/ _MS_= - [0, /*<>*/ caml_call1(_MR_,_MQ_),_MP_], - /*<>*/ _MT_=Mimic[11], + /*<>*/ _Ns_=0, + /*<>*/ _Nt_=443, + /*<>*/ _Nu_=Git_af[2], + /*<>*/ _Nv_=Mimic[7][3], + /*<>*/ _Nw_= + [0, /*<>*/ caml_call2(_Nv_,_Nu_,_Nt_),_Ns_], + /*<>*/ _Nx_=Git_af[3], + /*<>*/ _Ny_=Mimic[7][1], + /*<>*/ _Nz_= + [0, /*<>*/ caml_call1(_Ny_,_Nx_),_Nw_], + /*<>*/ _NA_=Git_af[1], + /*<>*/ _NB_=Mimic[7][1], + /*<>*/ _NC_= + [0, /*<>*/ caml_call1(_NB_,_NA_),_Nz_], + /*<>*/ _ND_=Mimic[11], /*<>*/ ctx$1= - /*<>*/ caml_call4(_MT_,edn$0,_MS_,k1$0,ctx$0); + /*<>*/ caml_call4(_ND_,edn$0,_NC_,k1$0,ctx$0); /*<>*/ return ctx$1 /*<>*/ } /*<>*/ function pp_error$0(ppf,param) { /*<>*/ var err=param[2];return caml_call2(Fmt[57],ppf,err)} @@ -565225,24 +565235,24 @@ /*<>*/ return /*<>*/ caml_call2 (Fmt[57],ppf,err)} /*<>*/ function write(t,cs) - { /*<>*/ /*<>*/ var _Mo_=t[2]; - /*<>*/ if(typeof _Mo_ === "number") - { /*<>*/ if(1 === _Mo_) + { /*<>*/ /*<>*/ var _M__=t[2]; + /*<>*/ if(typeof _M__ === "number") + { /*<>*/ if(1 === _M__) /*<>*/ return /*<>*/ caml_call1 (Lwt[43],_u_)} else - /*<>*/ if(1 === _Mo_[0]) + /*<>*/ if(1 === _M__[0]) { /*<>*/ var - output=_Mo_[1], - _Mp_=0, - _Mq_=0, - _Mr_=Cstruct[28], - /*<>*/ _Ms_= - /*<>*/ caml_call3(_Mr_,_Mq_,_Mp_,cs), - /*<>*/ _Mt_=Stdlib[28], + output=_M__[1], + _M$_=0, + _Na_=0, + _Nb_=Cstruct[28], + /*<>*/ _Nc_= + /*<>*/ caml_call3(_Nb_,_Na_,_M$_,cs), + /*<>*/ _Nd_=Stdlib[28], /*<>*/ output$0= - /*<>*/ caml_call2(_Mt_,output,_Ms_); - /*<>*/ _Mo_[1] = output$0; + /*<>*/ caml_call2(_Nd_,output,_Nc_); + /*<>*/ _M__[1] = output$0; /*<>*/ return /*<>*/ caml_call1 (Lwt[42],0)} /*<>*/ return /*<>*/ caml_call1 @@ -565253,89 +565263,89 @@ { /*<>*/ var r=param[2], x=param[1], - _Mm_= + _M8_= function(err) { /*<>*/ return 0 === err[0] ? /*<>*/ go(r) : /*<>*/ caml_call1(Lwt[4],err) /*<>*/ }, - /*<>*/ _Mn_= /*<>*/ write(t,x); + /*<>*/ _M9_= /*<>*/ write(t,x); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Mn_,_Mm_)} + (Lwt[33][1],_M9_,_M8_)} /*<>*/ return /*<>*/ caml_call1 (Lwt[42],0) /*<>*/ } /*<>*/ return /*<>*/ go(css) /*<>*/ } /*<>*/ function read(t) - { /*<>*/ /*<>*/ var _L7_=t[2]; - /*<>*/ if(typeof _L7_ === "number") - /*<>*/ return 0 === _L7_ + { /*<>*/ /*<>*/ var _MR_=t[2]; + /*<>*/ if(typeof _MR_ === "number") + /*<>*/ return 0 === _MR_ ? /*<>*/ caml_call1(Lwt[43],_v_) : /*<>*/ caml_call1(Lwt[43],_w_); else - { /*<>*/ if(0 === _L7_[0]) - {var ctx=_L7_[4],headers=_L7_[3],uri=_L7_[2],advertised_refs=_L7_[1]; + { /*<>*/ if(0 === _MR_[0]) + {var ctx=_MR_[4],headers=_MR_[3],uri=_MR_[2],advertised_refs=_MR_[1]; t[2] = [1,cst$0,uri,headers,ctx]; /*<>*/ var - _L8_=0, - _L9_=0, - _L__=0, - _L$_=Cstruct[7], - /*<>*/ _Ma_= + _MS_=0, + _MT_=0, + _MU_=0, + _MV_=Cstruct[7], + /*<>*/ _MW_= [0, 758940234, /*<>*/ caml_call4 - (_L$_,_L__,_L9_,_L8_,advertised_refs)]; + (_MV_,_MU_,_MT_,_MS_,advertised_refs)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[42],_Ma_)} + (Lwt[42],_MW_)} /*<>*/ var - output=_L7_[1], - ctx$0=_L7_[4], - headers$0=_L7_[3], - uri$0=_L7_[2], - _Mb_= + output=_MR_[1], + ctx$0=_MR_[4], + headers$0=_MR_[3], + uri$0=_MR_[2], + _MX_= function(param) { /*<>*/ if(0 === param[0]) { /*<>*/ var match=param[1], contents=match[2], - _Mf_=0, - _Mg_=0, - _Mh_=0, - _Mi_=Cstruct[7], - /*<>*/ _Mj_= + _M1_=0, + _M2_=0, + _M3_=0, + _M4_=Cstruct[7], + /*<>*/ _M5_= [0, 758940234, /*<>*/ caml_call4 - (_Mi_,_Mh_,_Mg_,_Mf_,contents)]; + (_M4_,_M3_,_M2_,_M1_,contents)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[42],_Mj_)} + (Lwt[42],_M5_)} /*<>*/ var /*<>*/ err=param[1], - /*<>*/ _Mk_=Fmt[6], - /*<>*/ _Ml_= + /*<>*/ _M6_=Fmt[6], + /*<>*/ _M7_= [0, 3854881, - /*<>*/ caml_call3(_Mk_,_x_,pp_error$0,err)]; + /*<>*/ caml_call3(_M6_,_x_,pp_error$0,err)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[43],_Ml_) /*<>*/ }, - _Mc_=[0,headers$0], - _Md_=Git_af[7], - /*<>*/ _Me_= - /*<>*/ caml_call4(_Md_,ctx$0,_Mc_,uri$0,output); + (Lwt[43],_M7_) /*<>*/ }, + _MY_=[0,headers$0], + _MZ_=Git_af[7], + /*<>*/ _M0_= + /*<>*/ caml_call4(_MZ_,ctx$0,_MY_,uri$0,output); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Me_,_Mb_)} /*<>*/ } + (Lwt[33][1],_M0_,_MX_)} /*<>*/ } /*<>*/ function close(param) { /*<>*/ return Lwt[36] /*<>*/ } /*<>*/ function connect(endpoint) - { /*<>*/ function _L3_(x) + { /*<>*/ function _MN_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,2), x) /*<>*/ } /*<>*/ var - /*<>*/ _L4_="Git_Console_http.HTTP.connect()\n", - /*<>*/ _L5_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _L6_(t3,t2,param) + /*<>*/ _MO_="Git_Console_http.HTTP.connect()\n", + /*<>*/ _MP_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _MQ_(t3,t2,param) { /*<>*/ return t3.log(t2)} - _L6_(_L5_,_L4_,_L3_); + _MQ_(_MP_,_MO_,_MN_); return caml_call1(Lwt[42],[0,endpoint,0]) /*<>*/ } /*<>*/ var /*<>*/ HTTP= @@ -565349,23 +565359,23 @@ /*<>*/ http_protocol=match[2], /*<>*/ http_endpoint=match[1]; /*<>*/ function connect$0(ctx) - { /*<>*/ function _Lg_(x) + { /*<>*/ function _L2_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,3), x) /*<>*/ } /*<>*/ var - /*<>*/ _Lh_="Git_Console_http.connect()\n", - /*<>*/ _Li_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Lj_(t5,t4,param) + /*<>*/ _L3_="Git_Console_http.connect()\n", + /*<>*/ _L4_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _L5_(t5,t4,param) { /*<>*/ return t5.log(t4)} - _Lj_(_Li_,_Lh_,_Lg_); + _L5_(_L4_,_L3_,_L2_); /*<>*/ var - _Lk_=Mimic[15], + _L6_=Mimic[15], /*<>*/ T= - /*<>*/ caml_call1(_Lk_,http_protocol), - /*<>*/ _Ll_=Mimic[8], + /*<>*/ caml_call1(_L6_,http_protocol), + /*<>*/ _L7_=Mimic[8], /*<>*/ edn= - /*<>*/ caml_call1(_Ll_,cst_http_endpoint); + /*<>*/ caml_call1(_L7_,cst_http_endpoint); /*<>*/ function k0(uri) { /*<>*/ return /*<>*/ caml_call1 (Lwt[41],uri) /*<>*/ } @@ -565378,12 +565388,12 @@ 802644872 === git_transmission[1]) - {var switch$0=0,_L2_=git_transmission[2][1]; + {var switch$0=0,_MM_=git_transmission[2][1]; if(748663755 === git_scheme || 802644872 === git_scheme) switch$0 = 1; - /*<>*/ if(switch$0) + /*<>*/ if(switch$0) /*<>*/ return /*<>*/ caml_call1 - (Lwt[41],_L2_)} + (Lwt[41],_MM_)} /*<>*/ return Lwt[37] /*<>*/ } /*<>*/ function k2 (git_scheme,git_uri,git_http_headers) @@ -565396,34 +565406,34 @@ { /*<>*/ if(param[1] === T[1]) { /*<>*/ var /*<>*/ flow=param[2], - /*<>*/ _LL_= + /*<>*/ _Mv_= function(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,5395588,4), x) /*<>*/ }, - /*<>*/ _LM_=0, - /*<>*/ _LN_=Uri[8], - /*<>*/ _LO_= - /*<>*/ caml_call2(_LN_,_LM_,uri1), - /*<>*/ _LP_=0, - /*<>*/ _LQ_=Uri[8], - /*<>*/ _LR_= - /*<>*/ caml_call2(_LQ_,_LP_,uri0), - /*<>*/ _LS_=Fmt[6], - /*<>*/ _LT_= - /*<>*/ caml_call3(_LS_,_C_,_LR_,_LO_), - /*<>*/ _LU_= - /*<>*/ caml_jsstring_of_string(_LT_), - /*<>*/ _LV_=Js_of_ocaml_Firebug[1], - /*<>*/ _LW_= + /*<>*/ _Mw_=0, + /*<>*/ _Mx_=Uri[8], + /*<>*/ _My_= + /*<>*/ caml_call2(_Mx_,_Mw_,uri1), + /*<>*/ _Mz_=0, + /*<>*/ _MA_=Uri[8], + /*<>*/ _MB_= + /*<>*/ caml_call2(_MA_,_Mz_,uri0), + /*<>*/ _MC_=Fmt[6], + /*<>*/ _MD_= + /*<>*/ caml_call3(_MC_,_C_,_MB_,_My_), + /*<>*/ _ME_= + /*<>*/ caml_jsstring_of_string(_MD_), + /*<>*/ _MF_=Js_of_ocaml_Firebug[1], + /*<>*/ _MG_= function(t7,t6,param){ /*<>*/ return t7.log(t6)}; - _LW_(_LV_,_LU_,_LL_); + _MG_(_MF_,_ME_,_Mv_); /*<>*/ var - _LX_=Mimic[13], + _MH_=Mimic[13], /*<>*/ ctx= - /*<>*/ context(_LX_), - /*<>*/ _LY_= + /*<>*/ context(_MH_), + /*<>*/ _MI_= function(param) { /*<>*/ if(0 === param[0]) {var match=param[1],advertised_refs=match[2]; @@ -565431,12 +565441,12 @@ return Lwt[36]} /*<>*/ flow[2] = 1; /*<>*/ return Lwt[36] /*<>*/ }, - /*<>*/ _LZ_=[0,headers], - /*<>*/ _L0_=Git_af[6], - /*<>*/ _L1_= - /*<>*/ caml_call3(_L0_,ctx,_LZ_,uri0); + /*<>*/ _MJ_=[0,headers], + /*<>*/ _MK_=Git_af[6], + /*<>*/ _ML_= + /*<>*/ caml_call3(_MK_,ctx,_MJ_,uri0); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_L1_,_LY_)} + (Lwt[33][1],_ML_,_MI_)} /*<>*/ return Lwt[36]}, /*<>*/ git_transmission= [0,802644872,[0,git_uri,handshake]]; @@ -565444,43 +565454,43 @@ (Lwt[41],git_transmission)} /*<>*/ return Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _Lm_=0, - /*<>*/ _Ln_=Mimic[7][1], - /*<>*/ _Lo_= - [0, /*<>*/ caml_call1(_Ln_,edn),_Lm_], - /*<>*/ _Lp_=Mimic[11], + /*<>*/ _L8_=0, + /*<>*/ _L9_=Mimic[7][1], + /*<>*/ _L__= + [0, /*<>*/ caml_call1(_L9_,edn),_L8_], + /*<>*/ _L$_=Mimic[11], /*<>*/ ctx$0= - /*<>*/ caml_call4(_Lp_,http_endpoint,_Lo_,k0,ctx), - /*<>*/ _Lq_=0, - /*<>*/ _Lr_=Smart_git[3], - /*<>*/ _Ls_=Mimic[7][1], - /*<>*/ _Lt_= - [0, /*<>*/ caml_call1(_Ls_,_Lr_),_Lq_], - /*<>*/ _Lu_=Smart_git[9], - /*<>*/ _Lv_=Mimic[7][1], - /*<>*/ _Lw_= - [0, /*<>*/ caml_call1(_Lv_,_Lu_),_Lt_], - /*<>*/ _Lx_=Mimic[11], + /*<>*/ caml_call4(_L$_,http_endpoint,_L__,k0,ctx), + /*<>*/ _Ma_=0, + /*<>*/ _Mb_=Smart_git[3], + /*<>*/ _Mc_=Mimic[7][1], + /*<>*/ _Md_= + [0, /*<>*/ caml_call1(_Mc_,_Mb_),_Ma_], + /*<>*/ _Me_=Smart_git[9], + /*<>*/ _Mf_=Mimic[7][1], + /*<>*/ _Mg_= + [0, /*<>*/ caml_call1(_Mf_,_Me_),_Md_], + /*<>*/ _Mh_=Mimic[11], /*<>*/ ctx$1= - /*<>*/ caml_call4(_Lx_,edn,_Lw_,k1,ctx$0), - /*<>*/ _Ly_=0, - /*<>*/ _Lz_=0, - /*<>*/ _LA_=Smart_git[8], - /*<>*/ _LB_=Mimic[7][3], - /*<>*/ _LC_= - [0, /*<>*/ caml_call2(_LB_,_LA_,_Lz_),_Ly_], - /*<>*/ _LD_=Smart_git[10], - /*<>*/ _LE_=Mimic[7][1], - /*<>*/ _LF_= - [0, /*<>*/ caml_call1(_LE_,_LD_),_LC_], - /*<>*/ _LG_=Smart_git[3], - /*<>*/ _LH_=Mimic[7][1], - /*<>*/ _LI_= - [0, /*<>*/ caml_call1(_LH_,_LG_),_LF_], - /*<>*/ _LJ_=Smart_git[9], - /*<>*/ _LK_=Mimic[11], + /*<>*/ caml_call4(_Mh_,edn,_Mg_,k1,ctx$0), + /*<>*/ _Mi_=0, + /*<>*/ _Mj_=0, + /*<>*/ _Mk_=Smart_git[8], + /*<>*/ _Ml_=Mimic[7][3], + /*<>*/ _Mm_= + [0, /*<>*/ caml_call2(_Ml_,_Mk_,_Mj_),_Mi_], + /*<>*/ _Mn_=Smart_git[10], + /*<>*/ _Mo_=Mimic[7][1], + /*<>*/ _Mp_= + [0, /*<>*/ caml_call1(_Mo_,_Mn_),_Mm_], + /*<>*/ _Mq_=Smart_git[3], + /*<>*/ _Mr_=Mimic[7][1], + /*<>*/ _Ms_= + [0, /*<>*/ caml_call1(_Mr_,_Mq_),_Mp_], + /*<>*/ _Mt_=Smart_git[9], + /*<>*/ _Mu_=Mimic[11], /*<>*/ ctx$2= - /*<>*/ caml_call4(_LK_,_LJ_,_LI_,k2,ctx$1); + /*<>*/ caml_call4(_Mu_,_Mt_,_Ms_,k2,ctx$1); /*<>*/ return /*<>*/ caml_call1 (Lwt[4],ctx$2) /*<>*/ } /*<>*/ var @@ -565491,11 +565501,11 @@ /*<>*/ caml_call1(_D_,cst_console_js_git); /*<>*/ function of_string(str) { /*<>*/ var - /*<>*/ _Le_=Git_Reference[1], - /*<>*/ _Lf_= - /*<>*/ caml_call1(_Le_,str); + /*<>*/ _L0_=Git_Reference[1], + /*<>*/ _L1_= + /*<>*/ caml_call1(_L0_,str); /*<>*/ return /*<>*/ caml_call1 - (Result[4],_Lf_) /*<>*/ } + (Result[4],_L1_) /*<>*/ } /*<>*/ function to_string(r) { /*<>*/ return /*<>*/ caml_call1 (Git_Reference[11],r) /*<>*/ } @@ -565559,21 +565569,21 @@ /*<>*/ Key=[0,reference,head,bare,level,buffers]; /*<>*/ function init(head,level,buffers,root) { /*<>*/ var - /*<>*/ _K9_=Irmin[2][1][11], + /*<>*/ _LT_=Irmin[2][1][11], /*<>*/ config= - /*<>*/ caml_call1(_K9_,spec), - /*<>*/ _K__=Key[2], - /*<>*/ _K$_=Irmin[2][1][15], + /*<>*/ caml_call1(_LT_,spec), + /*<>*/ _LU_=Key[2], + /*<>*/ _LV_=Irmin[2][1][15], /*<>*/ config$0= - /*<>*/ caml_call3(_K$_,config,_K__,head), - /*<>*/ _La_=Key[4], - /*<>*/ _Lb_=Irmin[2][1][15], + /*<>*/ caml_call3(_LV_,config,_LU_,head), + /*<>*/ _LW_=Key[4], + /*<>*/ _LX_=Irmin[2][1][15], /*<>*/ config$1= - /*<>*/ caml_call3(_Lb_,config$0,_La_,level), - /*<>*/ _Lc_=Key[5], - /*<>*/ _Ld_=Irmin[2][1][15], + /*<>*/ caml_call3(_LX_,config$0,_LW_,level), + /*<>*/ _LY_=Key[5], + /*<>*/ _LZ_=Irmin[2][1][15], /*<>*/ config$2= - /*<>*/ caml_call3(_Ld_,config$1,_Lc_,buffers); + /*<>*/ caml_call3(_LZ_,config$1,_LY_,buffers); /*<>*/ return /*<>*/ caml_call1 (Irmin[2][1][22],config$2) /*<>*/ } /*<>*/ var @@ -565756,53 +565766,53 @@ ctx=sth; else var ctx=Mimic[13]; - /*<>*/ function _KR_(x) + /*<>*/ function _LB_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,5), x) /*<>*/ } /*<>*/ var - /*<>*/ _KS_="Nav.S.remote()\n", - /*<>*/ _KT_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _KU_(t9,t8,param) + /*<>*/ _LC_="Nav.S.remote()\n", + /*<>*/ _LD_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _LE_(t9,t8,param) { /*<>*/ return t9.log(t8)} - _KU_(_KT_,_KS_,_KR_); + _LE_(_LD_,_LC_,_LB_); function symbol(f,a,b) { /*<>*/ return /*<>*/ caml_call2 (f,b,a) /*<>*/ } /*<>*/ var - _KV_=Smart_git[1][2], + _LF_=Smart_git[1][2], /*<>*/ match= - /*<>*/ caml_call1(_KV_,uri); + /*<>*/ caml_call1(_LF_,uri); /*<>*/ if(0 === match[0]) { /*<>*/ var /*<>*/ edn=match[1], - /*<>*/ _KW_=Smart_git[1][3], - /*<>*/ _KX_= - function(_K7_,_K8_){ /*<>*/ return symbol(_KW_,_K7_,_K8_)}, - /*<>*/ _KY_= - function(_K6_){ /*<>*/ return _KX_(edn,_K6_)}, - /*<>*/ _KZ_=Stdlib_Option[8], + /*<>*/ _LG_=Smart_git[1][3], + /*<>*/ _LH_= + function(_LR_,_LS_){ /*<>*/ return symbol(_LG_,_LR_,_LS_)}, + /*<>*/ _LI_= + function(_LQ_){ /*<>*/ return _LH_(edn,_LQ_)}, + /*<>*/ _LJ_=Stdlib_Option[8], /*<>*/ edn$0= - /*<>*/ caml_call3(_KZ_,edn,_KY_,headers), - /*<>*/ _K0_= + /*<>*/ caml_call3(_LJ_,edn,_LI_,headers), + /*<>*/ _LK_= function(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,5395588,6), x) /*<>*/ }, - /*<>*/ _K1_="Nav.S.remote() = (ctx, edn) \n", - /*<>*/ _K2_=Js_of_ocaml_Firebug[1], - /*<>*/ _K3_= + /*<>*/ _LL_="Nav.S.remote() = (ctx, edn) \n", + /*<>*/ _LM_=Js_of_ocaml_Firebug[1], + /*<>*/ _LN_= function(t11,t10,param){ /*<>*/ return t11.log(t10)}; - _K3_(_K2_,_K1_,_K0_); - /*<>*/ var _K4_=[0,ctx,edn$0]} + _LN_(_LM_,_LL_,_LK_); + /*<>*/ var _LO_=[0,ctx,edn$0]} else var match$0=match[1], err=match$0[2], - _K5_=Fmt[13], - _K4_= /*<>*/ caml_call2(_K5_,_aw_,err); - return [0,E,_K4_] /*<>*/ } + _LP_=Fmt[13], + _LO_= /*<>*/ caml_call2(_LP_,_aw_,err); + return [0,E,_LO_] /*<>*/ } /*<>*/ var /*<>*/ Schema$0=Backend[1], /*<>*/ Hash$0=Backend[2], @@ -565822,16 +565832,16 @@ /*<>*/ function edn(e) { /*<>*/ return e[2] /*<>*/ } /*<>*/ function fetch$0(t,depth,endpoint,branch) - { /*<>*/ function _KN_(x) + { /*<>*/ function _Lx_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,7), x) /*<>*/ } /*<>*/ var - /*<>*/ _KO_="S.Backend.Remote.wrapped_fetch()\n", - /*<>*/ _KP_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _KQ_(t13,t12,param) + /*<>*/ _Ly_="S.Backend.Remote.wrapped_fetch()\n", + /*<>*/ _Lz_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _LA_(t13,t12,param) { /*<>*/ return t13.log(t12)} - _KQ_(_KP_,_KO_,_KN_); + _LA_(_Lz_,_Ly_,_Lx_); return caml_call4(Remote[1],t,depth,endpoint,branch) /*<>*/ } /*<>*/ var /*<>*/ Remote$0=[0,push$0,v,ctx,edn,fetch$0], @@ -566060,295 +566070,242 @@ S[90]]); /*<>*/ function init$0(param) { /*<>*/ var - /*<>*/ _KE_=S[29], - /*<>*/ _KF_=S[25], - /*<>*/ _KG_=0, - /*<>*/ _KH_=Irmin_mem[2], - /*<>*/ _KI_= - /*<>*/ caml_call1(_KH_,_KG_), - /*<>*/ _KJ_=S[23][1], - /*<>*/ _KK_= - /*<>*/ caml_call1(_KJ_,_KI_), - /*<>*/ _KL_=Lwt[33][1], - /*<>*/ _KM_= - /*<>*/ caml_call2(_KL_,_KK_,_KF_); + /*<>*/ _Lo_=S[29], + /*<>*/ _Lp_=S[25], + /*<>*/ _Lq_=0, + /*<>*/ _Lr_=Irmin_mem[2], + /*<>*/ _Ls_= + /*<>*/ caml_call1(_Lr_,_Lq_), + /*<>*/ _Lt_=S[23][1], + /*<>*/ _Lu_= + /*<>*/ caml_call1(_Lt_,_Ls_), + /*<>*/ _Lv_=Lwt[33][1], + /*<>*/ _Lw_= + /*<>*/ caml_call2(_Lv_,_Lu_,_Lp_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_KM_,_KE_) /*<>*/ } + (Lwt[33][1],_Lw_,_Lo_) /*<>*/ } /*<>*/ function test_populate(param) { /*<>*/ function add(p,s,t) { /*<>*/ return /*<>*/ caml_call4 (S[36][31],t,p,0,s) /*<>*/ } - /*<>*/ function _Ku_(_KD_) - { /*<>*/ return add(_aB_,cst_motherfucker,_KD_)} - /*<>*/ function _Kv_(_KC_) - { /*<>*/ return add(_aC_,cst_ily,_KC_)} + /*<>*/ function _Le_(_Ln_) + { /*<>*/ return add(_aB_,cst_motherfucker,_Ln_)} + /*<>*/ function _Lf_(_Lm_) + { /*<>*/ return add(_aC_,cst_ily,_Lm_)} /*<>*/ var - /*<>*/ _Kw_=0, - /*<>*/ _Kx_=S[36][9], - /*<>*/ _Ky_= - /*<>*/ caml_call1(_Kx_,_Kw_), - /*<>*/ _Kz_= - /*<>*/ add(_aD_,cst_world,_Ky_), - /*<>*/ _KA_=Lwt[33][1], - /*<>*/ _KB_= - /*<>*/ caml_call2(_KA_,_Kz_,_Kv_); + /*<>*/ _Lg_=0, + /*<>*/ _Lh_=S[36][9], + /*<>*/ _Li_= + /*<>*/ caml_call1(_Lh_,_Lg_), + /*<>*/ _Lj_= + /*<>*/ add(_aD_,cst_world,_Li_), + /*<>*/ _Lk_=Lwt[33][1], + /*<>*/ _Ll_= + /*<>*/ caml_call2(_Lk_,_Lj_,_Lf_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_KB_,_Ku_) /*<>*/ } + (Lwt[33][1],_Ll_,_Le_) /*<>*/ } /*<>*/ function test_pull(param) - { /*<>*/ function _JQ_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method(x,5395588,8), - x) /*<>*/ } - /*<>*/ var - /*<>*/ _JR_="Nav.test_pull()\n", - /*<>*/ _JS_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _JT_(t15,t14,param) - { /*<>*/ return t15.log(t14)} - _JT_(_JS_,_JR_,_JQ_); - function _JU_(repo) - { /*<>*/ function _J2_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method(x,5395588,9), - x) /*<>*/ } - /*<>*/ var - /*<>*/ _J3_="Nav.test_pull(2)\n", - /*<>*/ _J4_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _J5_(t17,t16,param) - { /*<>*/ return t17.log(t16)} - _J5_(_J4_,_J3_,_J2_); - function _J6_(t) - { /*<>*/ function _J9_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,5395588,10), - x) /*<>*/ } - /*<>*/ var - /*<>*/ _J__="Nav.test_pull(3)\n", - /*<>*/ _J$_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Ka_(t19,t18,param) - { /*<>*/ return t19.log(t18)} - _Ka_(_J$_,_J__,_J9_); - function _Kb_(ctx) - { /*<>*/ function _Kf_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,5395588,11), - x) /*<>*/ } - /*<>*/ var - /*<>*/ _Kg_="Nav.test_pull(4)\n", - /*<>*/ _Kh_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Ki_(t21,t20,param) - { /*<>*/ return t21.log(t20)} - _Ki_(_Kh_,_Kg_,_Kf_); - /*<>*/ var - _Kj_=0, - _Kk_=[0,ctx], - _Kl_=S[94], - /*<>*/ upstream= - /*<>*/ caml_call3 - (_Kl_,_Kk_,_Kj_,cst_https_localhost_8080_conso); - /*<>*/ function _Km_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,5395588,12), - x) /*<>*/ } - /*<>*/ var - /*<>*/ _Kn_="Nav.test_pull(5)\n", - /*<>*/ _Ko_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Kp_(t23,t22,param) - { /*<>*/ return t23.log(t22)} - _Kp_(_Ko_,_Kn_,_Km_); - function _Kq_(param) - { /*<>*/ return /*<>*/ caml_call1 - (S[29],t) /*<>*/ } - /*<>*/ var - _Kr_=0, - _Ks_=Sync$0[4], - /*<>*/ _Kt_= - /*<>*/ caml_call3(_Ks_,t,_Kr_,upstream); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Kt_,_Kq_) /*<>*/ } - /*<>*/ var - _Kc_=Mimic[13], - _Kd_=Git_console_http[5], - /*<>*/ _Ke_= - /*<>*/ caml_call1(_Kd_,_Kc_); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Ke_,_Kb_) /*<>*/ } - /*<>*/ var - _J7_=S[26], - /*<>*/ _J8_= - /*<>*/ caml_call2(_J7_,repo,cst_current); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_J8_,_J6_) /*<>*/ } - /*<>*/ var - _JV_=0, - _JW_=0, - _JX_=0, - _JY_=Config[3], - /*<>*/ _JZ_= - /*<>*/ caml_call4(_JY_,_JX_,_JW_,_JV_,cst$1), - /*<>*/ _J0_=S[23][1], - /*<>*/ _J1_= - /*<>*/ caml_call1(_J0_,_JZ_); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_J1_,_JU_) /*<>*/ } + { /*<>*/ function _KU_(repo) + { /*<>*/ function _K2_(t) + { /*<>*/ function _K5_(ctx) + { /*<>*/ var + /*<>*/ _K9_=0, + /*<>*/ _K__=[0,ctx], + /*<>*/ _K$_=S[94], + /*<>*/ upstream= + /*<>*/ caml_call3 + (_K$_,_K__,_K9_,cst_https_localhost_8080_conso); + /*<>*/ function _La_(param) + { /*<>*/ return /*<>*/ caml_call1 + (S[29],t) /*<>*/ } + /*<>*/ var + /*<>*/ _Lb_=0, + /*<>*/ _Lc_=Sync$0[4], + /*<>*/ _Ld_= + /*<>*/ caml_call3(_Lc_,t,_Lb_,upstream); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_Ld_,_La_) /*<>*/ } + /*<>*/ var + /*<>*/ _K6_=Mimic[13], + /*<>*/ _K7_=Git_console_http[5], + /*<>*/ _K8_= + /*<>*/ caml_call1(_K7_,_K6_); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_K8_,_K5_) /*<>*/ } + /*<>*/ var + /*<>*/ _K3_=S[26], + /*<>*/ _K4_= + /*<>*/ caml_call2(_K3_,repo,cst_current); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_K4_,_K2_) /*<>*/ } + /*<>*/ var + /*<>*/ _KV_=0, + /*<>*/ _KW_=0, + /*<>*/ _KX_=0, + /*<>*/ _KY_=Config[3], + /*<>*/ _KZ_= + /*<>*/ caml_call4(_KY_,_KX_,_KW_,_KV_,cst$1), + /*<>*/ _K0_=S[23][1], + /*<>*/ _K1_= + /*<>*/ caml_call1(_K0_,_KZ_); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_K1_,_KU_) /*<>*/ } /*<>*/ /*<>*/ var Nav= [0,Config,S,Sync$0,init$0,test_populate,test_pull]; /*<>*/ function string_of_code(param) - { /*<>*/ if(typeof param === "number") + { /*<>*/ if(typeof param === "number") if(4198966 <= param) if(258914210 <= param) - {if(527250507 === param) /*<>*/ return cst_Delete; - if(803993151 === param) /*<>*/ return cst_Home} + {if(527250507 === param) /*<>*/ return cst_Delete; + if(803993151 === param) /*<>*/ return cst_Home} else - {if(62119160 === param) /*<>*/ return cst_Enter; - if(258914209 <= param) /*<>*/ return cst_Escape} + {if(62119160 === param) /*<>*/ return cst_Enter; + if(258914209 <= param) /*<>*/ return cst_Escape} else if(-323132128 <= param) - {if(3455931 === param) /*<>*/ return cst_End; - if(4198965 <= param) /*<>*/ return cst_Tab} + {if(3455931 === param) /*<>*/ return cst_End; + if(4198965 <= param) /*<>*/ return cst_Tab} else - {if(-764299431 === param) /*<>*/ return cst_Insert; - if(-323132129 <= param) /*<>*/ return cst_Backspace} + {if(-764299431 === param) /*<>*/ return cst_Insert; + if(-323132129 <= param) /*<>*/ return cst_Backspace} else - {var _JI_=param[1]; - if(852405675 <= _JI_) - {if(892012143 === _JI_) - {var _JJ_=param[2]; - if(19067 === _JJ_) /*<>*/ return cst_Page_Up; - if(759637122 === _JJ_) - /*<>*/ return cst_Page_Down} + {var _KM_=param[1]; + if(852405675 <= _KM_) + {if(892012143 === _KM_) + {var _KN_=param[2]; + if(19067 === _KN_) /*<>*/ return cst_Page_Up; + if(759637122 === _KN_) + /*<>*/ return cst_Page_Down} else - if(951904681 === _JI_) - {var _JK_=param[2]; - if(19068 <= _JK_) - {if(759637122 === _JK_) /*<>*/ return cst_Down; - if(847852583 === _JK_) /*<>*/ return cst_Left} + if(951904681 === _KM_) + {var _KO_=param[2]; + if(19068 <= _KO_) + {if(759637122 === _KO_) /*<>*/ return cst_Down; + if(847852583 === _KO_) /*<>*/ return cst_Left} else - {if(-57574468 === _JK_) - /*<>*/ return cst_Right; - if(19067 <= _JK_) /*<>*/ return cst_Up}} + {if(-57574468 === _KO_) + /*<>*/ return cst_Right; + if(19067 <= _KO_) /*<>*/ return cst_Up}} else - if(! (852405676 <= _JI_)) - { /*<>*/ var - /*<>*/ ch=param[2], - /*<>*/ _JL_=Stdlib_Uchar[11]; - /*<>*/ if - ( /*<>*/ caml_call1(_JL_,ch)) - { /*<>*/ var - /*<>*/ _JM_=Stdlib_Uchar[13], - /*<>*/ _JN_= - /*<>*/ caml_call1(_JM_,ch); - /*<>*/ return /*<>*/ caml_call2 - (Fmt[6],_aE_,_JN_)} - /*<>*/ var - /*<>*/ _JO_=Stdlib_Uchar[10], - /*<>*/ _JP_= - /*<>*/ caml_call1(_JO_,ch); - /*<>*/ return /*<>*/ caml_call2 - (Fmt[6],_aF_,_JP_)}} + if(! (852405676 <= _KM_)) + { /*<>*/ var + /*<>*/ ch=param[2], + /*<>*/ _KP_=Stdlib_Uchar[11]; + /*<>*/ if + ( /*<>*/ caml_call1(_KP_,ch)) + { /*<>*/ var + /*<>*/ _KQ_=Stdlib_Uchar[13], + /*<>*/ _KR_= + /*<>*/ caml_call1(_KQ_,ch); + /*<>*/ return /*<>*/ caml_call2 + (Fmt[6],_aE_,_KR_)} + /*<>*/ var + /*<>*/ _KS_=Stdlib_Uchar[10], + /*<>*/ _KT_= + /*<>*/ caml_call1(_KS_,ch); + /*<>*/ return /*<>*/ caml_call2 + (Fmt[6],_aF_,_KT_)}} else - {if(-301701320 === _JI_) - { /*<>*/ /*<>*/ var i=param[2]; - /*<>*/ return /*<>*/ caml_call2 + {if(-301701320 === _KM_) + { /*<>*/ /*<>*/ var i=param[2]; + /*<>*/ return /*<>*/ caml_call2 (Fmt[6],_aG_,i)} - if(785140586 === _JI_) + if(785140586 === _KM_) {var s=param[2]; return caml_call2 (Stdlib_String[6],cst_Unknown,[0,cst$2,[0,s,_aH_]])}}} - /*<>*/ return cst_Code_Unknown /*<>*/ } + /*<>*/ return cst_Code_Unknown /*<>*/ } /*<>*/ function pp_code(ppf,v) - { /*<>*/ /*<>*/ var - _JH_= - /*<>*/ string_of_code(v); - /*<>*/ return /*<>*/ caml_call3 - (Fmt[3],ppf,_aI_,_JH_) /*<>*/ } + { /*<>*/ /*<>*/ var + _KL_= + /*<>*/ string_of_code(v); + /*<>*/ return /*<>*/ caml_call3 + (Fmt[3],ppf,_aI_,_KL_) /*<>*/ } /*<>*/ function _aJ_(ppf,param) - { /*<>*/ return 748795083 <= param + { /*<>*/ return 748795083 <= param ?858945253 <= param - ? /*<>*/ caml_call2(Fmt[3],ppf,_aK_) - : /*<>*/ caml_call2(Fmt[3],ppf,_aL_) + ? /*<>*/ caml_call2(Fmt[3],ppf,_aK_) + : /*<>*/ caml_call2(Fmt[3],ppf,_aL_) :401437019 <= param - ? /*<>*/ caml_call2(Fmt[3],ppf,_aM_) - : /*<>*/ caml_call2(Fmt[3],ppf,_aN_) /*<>*/ } + ? /*<>*/ caml_call2(Fmt[3],ppf,_aM_) + : /*<>*/ caml_call2(Fmt[3],ppf,_aN_) /*<>*/ } /*<>*/ var /*<>*/ _aO_=[0,Fmt[23]], /*<>*/ _aP_=Fmt[64], - /*<>*/ pp_mods= - /*<>*/ caml_call2(_aP_,_aO_,_aJ_), - /*<>*/ Input=[0,string_of_code,pp_code,pp_mods]; - /*<>*/ function evt_of_jskey(evt) - { /*<>*/ function _Jc_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,562118618,13), - x) /*<>*/ } - /*<>*/ function _Jd_(t28,param) - { /*<>*/ return t28.metaKey} - /*<>*/ var - _Je_=_Jd_(evt,_Jc_), - /*<>*/ _Jf_=_Je_ | 0?_aQ_:0; - function _Jg_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,-511887948,14), - x) /*<>*/ } - function _Jh_(t27,param){ /*<>*/ return t27.ctrlKey} - /*<>*/ var - _Ji_=_Jh_(evt,_Jg_), - /*<>*/ _Jj_=_Ji_ | 0?_aR_:0, - _Jk_=Stdlib[37], - /*<>*/ _Jl_= - /*<>*/ caml_call2(_Jk_,_Jj_,_Jf_); - /*<>*/ function _Jm_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,429888061,15), - x) /*<>*/ } - /*<>*/ function _Jn_(t26,param) - { /*<>*/ return t26.shiftKey} - /*<>*/ var - _Jo_=_Jn_(evt,_Jm_), - /*<>*/ _Jp_=_Jo_ | 0?_aS_:0, - _Jq_=Stdlib[37], - /*<>*/ _Jr_= - /*<>*/ caml_call2(_Jq_,_Jp_,_Jl_); - /*<>*/ function _Js_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,-993351690,16), - x) /*<>*/ } - /*<>*/ function _Jt_(t25,param) - { /*<>*/ return t25.altKey} - /*<>*/ var - _Ju_=_Jt_(evt,_Js_), - /*<>*/ _Jv_=_Ju_ | 0?_aT_:0, - _Jw_=Stdlib[37], - /*<>*/ _Jx_= - /*<>*/ caml_call2(_Jw_,_Jv_,_Jr_); - /*<>*/ function _Jy_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method(x,5343647,17), - x) /*<>*/ } - /*<>*/ function _Jz_(t24,param) - { /*<>*/ return t24.key} - /*<>*/ var - _JA_=_Jz_(evt,_Jy_), - _JB_=Js_of_ocaml_Js[6][10], - /*<>*/ match= - /*<>*/ caml_call1(_JB_,_JA_); - /*<>*/ if(match) - { /*<>*/ var - /*<>*/ s=match[1], - /*<>*/ s$0= - /*<>*/ runtime.caml_string_of_jsstring(s), - /*<>*/ switch$0= - /*<>*/ runtime.caml_string_compare + /*<>*/ pp_mods= + /*<>*/ caml_call2(_aP_,_aO_,_aJ_), + /*<>*/ Input=[0,string_of_code,pp_code,pp_mods]; + /*<>*/ function evt_of_jskey(evt) + { /*<>*/ function _Kg_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,562118618,8), + x) /*<>*/ } + /*<>*/ function _Kh_(t18,param) + { /*<>*/ return t18.metaKey} + /*<>*/ var + _Ki_=_Kh_(evt,_Kg_), + /*<>*/ _Kj_=_Ki_ | 0?_aQ_:0; + function _Kk_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,-511887948,9), + x) /*<>*/ } + function _Kl_(t17,param){ /*<>*/ return t17.ctrlKey} + /*<>*/ var + _Km_=_Kl_(evt,_Kk_), + /*<>*/ _Kn_=_Km_ | 0?_aR_:0, + _Ko_=Stdlib[37], + /*<>*/ _Kp_= + /*<>*/ caml_call2(_Ko_,_Kn_,_Kj_); + /*<>*/ function _Kq_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,429888061,10), + x) /*<>*/ } + /*<>*/ function _Kr_(t16,param) + { /*<>*/ return t16.shiftKey} + /*<>*/ var + _Ks_=_Kr_(evt,_Kq_), + /*<>*/ _Kt_=_Ks_ | 0?_aS_:0, + _Ku_=Stdlib[37], + /*<>*/ _Kv_= + /*<>*/ caml_call2(_Ku_,_Kt_,_Kp_); + /*<>*/ function _Kw_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,-993351690,11), + x) /*<>*/ } + /*<>*/ function _Kx_(t15,param) + { /*<>*/ return t15.altKey} + /*<>*/ var + _Ky_=_Kx_(evt,_Kw_), + /*<>*/ _Kz_=_Ky_ | 0?_aT_:0, + _KA_=Stdlib[37], + /*<>*/ _KB_= + /*<>*/ caml_call2(_KA_,_Kz_,_Kv_); + /*<>*/ function _KC_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method(x,5343647,12), + x) /*<>*/ } + /*<>*/ function _KD_(t14,param) + { /*<>*/ return t14.key} + /*<>*/ var + _KE_=_KD_(evt,_KC_), + _KF_=Js_of_ocaml_Js[6][10], + /*<>*/ match= + /*<>*/ caml_call1(_KF_,_KE_); + /*<>*/ if(match) + { /*<>*/ var + /*<>*/ s=match[1], + /*<>*/ s$0= + /*<>*/ runtime.caml_string_of_jsstring(s), + /*<>*/ switch$0= + /*<>*/ runtime.caml_string_compare (s$0,cst_Enter$0), switch$1=0; - /*<>*/ if(0 <= switch$0) + /*<>*/ if(0 <= switch$0) if(0 < switch$0) if(caml_string_notequal(s$0,cst_Escape$0)) if(caml_string_notequal(s$0,cst_Home$0)) @@ -566358,19 +566315,19 @@ if(caml_string_notequal(s$0,cst_Tab$0)) switch$1 = 1; else - var _JG_=4198965; + var _KK_=4198965; else - var _JG_=_aU_; + var _KK_=_aU_; else - var _JG_=_aV_; + var _KK_=_aV_; else - var _JG_=-764299431; + var _KK_=-764299431; else - var _JG_=803993151; + var _KK_=803993151; else - var _JG_=258914209; + var _KK_=258914209; else - var _JG_=62119160; + var _KK_=62119160; else if(caml_string_notequal(s$0,cst_ArrowDown)) if(caml_string_notequal(s$0,cst_ArrowLeft)) @@ -566381,257 +566338,257 @@ if(caml_string_notequal(s$0,cst_End$0)) switch$1 = 1; else - var _JG_=3455931; + var _KK_=3455931; else - var _JG_=527250507; + var _KK_=527250507; else - var _JG_=-323132129; + var _KK_=-323132129; else - var _JG_=_aW_; + var _KK_=_aW_; else - var _JG_=_aX_; + var _KK_=_aX_; else - var _JG_=_aY_; + var _KK_=_aY_; else - var _JG_=_aZ_; - /*<>*/ if(switch$1) - { /*<>*/ var - /*<>*/ _JC_=Js_of_ocaml_Dom_html[27][1], - /*<>*/ match$0= - /*<>*/ caml_call1(_JC_,evt); - /*<>*/ if(match$0) - /*<>*/ var - /*<>*/ s$1=match$0[1], - _JD_=[0,852405675,s$1]; + var _KK_=_aZ_; + /*<>*/ if(switch$1) + { /*<>*/ var + /*<>*/ _KG_=Js_of_ocaml_Dom_html[27][1], + /*<>*/ match$0= + /*<>*/ caml_call1(_KG_,evt); + /*<>*/ if(match$0) + /*<>*/ var + /*<>*/ s$1=match$0[1], + _KH_=[0,852405675,s$1]; else - var _JD_=[0,785140586,s$0]; - /*<>*/ var _JE_=_JD_} + var _KH_=[0,785140586,s$0]; + /*<>*/ var _KI_=_KH_} else - var _JE_=_JG_; - /*<>*/ var _JF_=_JE_} + var _KI_=_KK_; + /*<>*/ var _KJ_=_KI_} else - var _JF_=_a0_; - return [0,_JF_,_Jx_] /*<>*/ } - /*<>*/ var - /*<>*/ Event_js=[0,evt_of_jskey], - /*<>*/ _a7_=include$0[7], - /*<>*/ _bD_=include$0[7], - /*<>*/ _bP_=_a7_[8], - /*<>*/ _bQ_=_a7_[3], - /*<>*/ _a1_=include$0[1], - /*<>*/ _a2_=include$0[2], - /*<>*/ _a3_=include$0[3], - /*<>*/ _a4_=include$0[4], - /*<>*/ _a5_=include$0[5], - /*<>*/ _a6_=include$0[6], - /*<>*/ _a8_=include$0[8], - /*<>*/ _a9_=include$0[9], - /*<>*/ _a__=include$0[10], - /*<>*/ _a$_=include$0[11], - /*<>*/ _ba_=include$0[12], - /*<>*/ _bb_=include$0[13], - /*<>*/ _bc_=include$0[14], - /*<>*/ _bd_=include$0[15], - /*<>*/ _be_=include$0[16], - /*<>*/ _bf_=include$0[17], - /*<>*/ _bg_=include$0[18], - /*<>*/ _bh_=include$0[19], - /*<>*/ _bi_=include$0[20], - /*<>*/ _bj_=include$0[21], - /*<>*/ _bk_=include$0[22], - /*<>*/ _bl_=include$0[23], - /*<>*/ _bm_=include$0[24], - /*<>*/ _bn_=include$0[25], - /*<>*/ _bo_=include$0[26], - /*<>*/ _bp_=include$0[27], - /*<>*/ _bq_=include$0[28], - /*<>*/ _br_=include$0[29], - /*<>*/ _bs_=include$0[30], - /*<>*/ _bt_=include$0[31], - /*<>*/ _bu_=include$0[32], - /*<>*/ _bv_=include$0[33], - /*<>*/ _bw_=include$0[34], - /*<>*/ _bx_=include$0[35], - /*<>*/ _by_=include$0[36], - /*<>*/ _bz_=include$0[37], - /*<>*/ _bA_=include$0[38], - /*<>*/ _bB_=include$0[39], - /*<>*/ _bC_=include$0[40], - /*<>*/ _bE_=_bD_[1], - /*<>*/ _bF_=_bD_[2], - /*<>*/ _bG_=_bD_[4], - /*<>*/ _bH_=_bD_[5], - /*<>*/ _bI_=_bD_[8], - /*<>*/ _bJ_=_bD_[9], - /*<>*/ _bK_=_bD_[10], - /*<>*/ _bL_=_bD_[11], - /*<>*/ _bM_=_bD_[12], - /*<>*/ _bN_=_bD_[13], - /*<>*/ _bO_=_bD_[14]; - /*<>*/ function gray(a) - { /*<>*/ return /*<>*/ caml_call3 - (_bQ_,a,a,a) /*<>*/ } - /*<>*/ var - /*<>*/ _bR_=0.8, - /*<>*/ light= /*<>*/ gray(_bR_), - /*<>*/ _bS_=0.2, - /*<>*/ dark= /*<>*/ gray(_bS_), - /*<>*/ _bT_=0., - /*<>*/ black= /*<>*/ gray(_bT_), - /*<>*/ _bU_=0., - /*<>*/ _bV_=0., - /*<>*/ _bW_=1., - /*<>*/ red= - /*<>*/ caml_call3(_bQ_,_bW_,_bV_,_bU_), - /*<>*/ _bX_=0., - /*<>*/ _bY_=1., - /*<>*/ _bZ_=0., - /*<>*/ green= - /*<>*/ caml_call3(_bQ_,_bZ_,_bY_,_bX_), - /*<>*/ _b0_=0., - /*<>*/ _b1_=1., - /*<>*/ _b2_=1., - /*<>*/ yellow= - /*<>*/ caml_call3(_bQ_,_b2_,_b1_,_b0_), - /*<>*/ _b3_=1., - /*<>*/ _b4_=0., - /*<>*/ _b5_=0., - /*<>*/ blue= - /*<>*/ caml_call3(_bQ_,_b5_,_b4_,_b3_), - /*<>*/ _b6_=1., - /*<>*/ _b7_=0., - /*<>*/ _b8_=1., - /*<>*/ magenta= - /*<>*/ caml_call3(_bQ_,_b8_,_b7_,_b6_), - /*<>*/ _b9_=1., - /*<>*/ _b__=1., - /*<>*/ _b$_=0., - /*<>*/ cyan= - /*<>*/ caml_call3(_bQ_,_b$_,_b__,_b9_), - /*<>*/ _ca_=1., - /*<>*/ _cb_=1., - /*<>*/ _cc_=1., - /*<>*/ white= - /*<>*/ caml_call3(_bQ_,_cc_,_cb_,_ca_), - /*<>*/ _cd_=0.5, - /*<>*/ lightblack= /*<>*/ gray(_cd_), - /*<>*/ _ce_=0.5, - /*<>*/ _cf_=0.5, - /*<>*/ _cg_=1., - /*<>*/ lightred= - /*<>*/ caml_call3(_bQ_,_cg_,_cf_,_ce_), - /*<>*/ _ch_=0.5, - /*<>*/ _ci_=1., - /*<>*/ _cj_=0.5, - /*<>*/ lightgreen= - /*<>*/ caml_call3(_bQ_,_cj_,_ci_,_ch_), - /*<>*/ _ck_=0.5, - /*<>*/ _cl_=1., - /*<>*/ _cm_=1., - /*<>*/ lightyellow= - /*<>*/ caml_call3(_bQ_,_cm_,_cl_,_ck_), - /*<>*/ _cn_=1., - /*<>*/ _co_=0.5, - /*<>*/ _cp_=0.5, - /*<>*/ lightblue= - /*<>*/ caml_call3(_bQ_,_cp_,_co_,_cn_), - /*<>*/ _cq_=1., - /*<>*/ _cr_=0.5, - /*<>*/ _cs_=1., - /*<>*/ lightmagenta= - /*<>*/ caml_call3(_bQ_,_cs_,_cr_,_cq_), - /*<>*/ _ct_=1., - /*<>*/ _cu_=1., - /*<>*/ _cv_=0.5, - /*<>*/ lightcyan= - /*<>*/ caml_call3(_bQ_,_cv_,_cu_,_ct_), - /*<>*/ _cw_=1., - /*<>*/ _cx_=1., - /*<>*/ _cy_=1., - /*<>*/ lightwhite= - /*<>*/ caml_call3(_bQ_,_cy_,_cx_,_cw_); - /*<>*/ function symbol(a,b) - { /*<>*/ /*<>*/ var - _I__= + var _KJ_=_a0_; + return [0,_KJ_,_KB_] /*<>*/ } + /*<>*/ var + /*<>*/ Event_js=[0,evt_of_jskey], + /*<>*/ _a7_=include$0[7], + /*<>*/ _bD_=include$0[7], + /*<>*/ _bP_=_a7_[8], + /*<>*/ _bQ_=_a7_[3], + /*<>*/ _a1_=include$0[1], + /*<>*/ _a2_=include$0[2], + /*<>*/ _a3_=include$0[3], + /*<>*/ _a4_=include$0[4], + /*<>*/ _a5_=include$0[5], + /*<>*/ _a6_=include$0[6], + /*<>*/ _a8_=include$0[8], + /*<>*/ _a9_=include$0[9], + /*<>*/ _a__=include$0[10], + /*<>*/ _a$_=include$0[11], + /*<>*/ _ba_=include$0[12], + /*<>*/ _bb_=include$0[13], + /*<>*/ _bc_=include$0[14], + /*<>*/ _bd_=include$0[15], + /*<>*/ _be_=include$0[16], + /*<>*/ _bf_=include$0[17], + /*<>*/ _bg_=include$0[18], + /*<>*/ _bh_=include$0[19], + /*<>*/ _bi_=include$0[20], + /*<>*/ _bj_=include$0[21], + /*<>*/ _bk_=include$0[22], + /*<>*/ _bl_=include$0[23], + /*<>*/ _bm_=include$0[24], + /*<>*/ _bn_=include$0[25], + /*<>*/ _bo_=include$0[26], + /*<>*/ _bp_=include$0[27], + /*<>*/ _bq_=include$0[28], + /*<>*/ _br_=include$0[29], + /*<>*/ _bs_=include$0[30], + /*<>*/ _bt_=include$0[31], + /*<>*/ _bu_=include$0[32], + /*<>*/ _bv_=include$0[33], + /*<>*/ _bw_=include$0[34], + /*<>*/ _bx_=include$0[35], + /*<>*/ _by_=include$0[36], + /*<>*/ _bz_=include$0[37], + /*<>*/ _bA_=include$0[38], + /*<>*/ _bB_=include$0[39], + /*<>*/ _bC_=include$0[40], + /*<>*/ _bE_=_bD_[1], + /*<>*/ _bF_=_bD_[2], + /*<>*/ _bG_=_bD_[4], + /*<>*/ _bH_=_bD_[5], + /*<>*/ _bI_=_bD_[8], + /*<>*/ _bJ_=_bD_[9], + /*<>*/ _bK_=_bD_[10], + /*<>*/ _bL_=_bD_[11], + /*<>*/ _bM_=_bD_[12], + /*<>*/ _bN_=_bD_[13], + /*<>*/ _bO_=_bD_[14]; + /*<>*/ function gray(a) + { /*<>*/ return /*<>*/ caml_call3 + (_bQ_,a,a,a) /*<>*/ } + /*<>*/ var + /*<>*/ _bR_=0.8, + /*<>*/ light= /*<>*/ gray(_bR_), + /*<>*/ _bS_=0.2, + /*<>*/ dark= /*<>*/ gray(_bS_), + /*<>*/ _bT_=0., + /*<>*/ black= /*<>*/ gray(_bT_), + /*<>*/ _bU_=0., + /*<>*/ _bV_=0., + /*<>*/ _bW_=1., + /*<>*/ red= + /*<>*/ caml_call3(_bQ_,_bW_,_bV_,_bU_), + /*<>*/ _bX_=0., + /*<>*/ _bY_=1., + /*<>*/ _bZ_=0., + /*<>*/ green= + /*<>*/ caml_call3(_bQ_,_bZ_,_bY_,_bX_), + /*<>*/ _b0_=0., + /*<>*/ _b1_=1., + /*<>*/ _b2_=1., + /*<>*/ yellow= + /*<>*/ caml_call3(_bQ_,_b2_,_b1_,_b0_), + /*<>*/ _b3_=1., + /*<>*/ _b4_=0., + /*<>*/ _b5_=0., + /*<>*/ blue= + /*<>*/ caml_call3(_bQ_,_b5_,_b4_,_b3_), + /*<>*/ _b6_=1., + /*<>*/ _b7_=0., + /*<>*/ _b8_=1., + /*<>*/ magenta= + /*<>*/ caml_call3(_bQ_,_b8_,_b7_,_b6_), + /*<>*/ _b9_=1., + /*<>*/ _b__=1., + /*<>*/ _b$_=0., + /*<>*/ cyan= + /*<>*/ caml_call3(_bQ_,_b$_,_b__,_b9_), + /*<>*/ _ca_=1., + /*<>*/ _cb_=1., + /*<>*/ _cc_=1., + /*<>*/ white= + /*<>*/ caml_call3(_bQ_,_cc_,_cb_,_ca_), + /*<>*/ _cd_=0.5, + /*<>*/ lightblack= /*<>*/ gray(_cd_), + /*<>*/ _ce_=0.5, + /*<>*/ _cf_=0.5, + /*<>*/ _cg_=1., + /*<>*/ lightred= + /*<>*/ caml_call3(_bQ_,_cg_,_cf_,_ce_), + /*<>*/ _ch_=0.5, + /*<>*/ _ci_=1., + /*<>*/ _cj_=0.5, + /*<>*/ lightgreen= + /*<>*/ caml_call3(_bQ_,_cj_,_ci_,_ch_), + /*<>*/ _ck_=0.5, + /*<>*/ _cl_=1., + /*<>*/ _cm_=1., + /*<>*/ lightyellow= + /*<>*/ caml_call3(_bQ_,_cm_,_cl_,_ck_), + /*<>*/ _cn_=1., + /*<>*/ _co_=0.5, + /*<>*/ _cp_=0.5, + /*<>*/ lightblue= + /*<>*/ caml_call3(_bQ_,_cp_,_co_,_cn_), + /*<>*/ _cq_=1., + /*<>*/ _cr_=0.5, + /*<>*/ _cs_=1., + /*<>*/ lightmagenta= + /*<>*/ caml_call3(_bQ_,_cs_,_cr_,_cq_), + /*<>*/ _ct_=1., + /*<>*/ _cu_=1., + /*<>*/ _cv_=0.5, + /*<>*/ lightcyan= + /*<>*/ caml_call3(_bQ_,_cv_,_cu_,_ct_), + /*<>*/ _cw_=1., + /*<>*/ _cx_=1., + /*<>*/ _cy_=1., + /*<>*/ lightwhite= + /*<>*/ caml_call3(_bQ_,_cy_,_cx_,_cw_); + /*<>*/ function symbol(a,b) + { /*<>*/ /*<>*/ var + _Kc_= a[1] == b[1]?1:0; - /*<>*/ if(_I__) - { /*<>*/ /*<>*/ var - _I$_= + /*<>*/ if(_Kc_) + { /*<>*/ /*<>*/ var + _Kd_= a[2] == b[2]?1:0; - /*<>*/ if(_I$_) - /*<>*/ var - /*<>*/ _Ja_=a[3] == b[3]?1:0, - /*<>*/ _Jb_=_Ja_?a[4] == b[4]?1:0:_Ja_; + /*<>*/ if(_Kd_) + /*<>*/ var + /*<>*/ _Ke_=a[3] == b[3]?1:0, + /*<>*/ _Kf_=_Ke_?a[4] == b[4]?1:0:_Ke_; else - var _Jb_=_I$_} + var _Kf_=_Kd_} else - var _Jb_=_I__; - /*<>*/ return _Jb_ /*<>*/ } - /*<>*/ function symbol$0(a,b) - { /*<>*/ var - /*<>*/ _IJ_=b[4], - /*<>*/ _IK_=a[4], - /*<>*/ _IL_=_IK_ + _IJ_, - /*<>*/ _IM_=1., - /*<>*/ _IN_=0., - /*<>*/ _IO_=Gg[1][47], - /*<>*/ _IP_= - /*<>*/ caml_call3(_IO_,_IN_,_IM_,_IL_), - /*<>*/ _IQ_=b[3], - /*<>*/ _IR_=a[3], - /*<>*/ _IS_=_IR_ + _IQ_, - /*<>*/ _IT_=1., - /*<>*/ _IU_=0., - /*<>*/ _IV_=Gg[1][47], - /*<>*/ _IW_= - /*<>*/ caml_call3(_IV_,_IU_,_IT_,_IS_), - /*<>*/ _IX_=b[2], - /*<>*/ _IY_=a[2], - /*<>*/ _IZ_=_IY_ + _IX_, - /*<>*/ _I0_=1., - /*<>*/ _I1_=0., - /*<>*/ _I2_=Gg[1][47], - /*<>*/ _I3_= - /*<>*/ caml_call3(_I2_,_I1_,_I0_,_IZ_), - /*<>*/ _I4_=b[1], - /*<>*/ _I5_=a[1], - /*<>*/ _I6_=_I5_ + _I4_, - /*<>*/ _I7_=1., - /*<>*/ _I8_=0., - /*<>*/ _I9_=Gg[1][47]; - /*<>*/ return [254, - /*<>*/ caml_call3(_I9_,_I8_,_I7_,_I6_), - _I3_, - _IW_, - _IP_] /*<>*/ } - /*<>*/ function replace(prev,next) - { /*<>*/ return /*<>*/ symbol + var _Kf_=_Kc_; + /*<>*/ return _Kf_ /*<>*/ } + /*<>*/ function symbol$0(a,b) + { /*<>*/ var + /*<>*/ _JN_=b[4], + /*<>*/ _JO_=a[4], + /*<>*/ _JP_=_JO_ + _JN_, + /*<>*/ _JQ_=1., + /*<>*/ _JR_=0., + /*<>*/ _JS_=Gg[1][47], + /*<>*/ _JT_= + /*<>*/ caml_call3(_JS_,_JR_,_JQ_,_JP_), + /*<>*/ _JU_=b[3], + /*<>*/ _JV_=a[3], + /*<>*/ _JW_=_JV_ + _JU_, + /*<>*/ _JX_=1., + /*<>*/ _JY_=0., + /*<>*/ _JZ_=Gg[1][47], + /*<>*/ _J0_= + /*<>*/ caml_call3(_JZ_,_JY_,_JX_,_JW_), + /*<>*/ _J1_=b[2], + /*<>*/ _J2_=a[2], + /*<>*/ _J3_=_J2_ + _J1_, + /*<>*/ _J4_=1., + /*<>*/ _J5_=0., + /*<>*/ _J6_=Gg[1][47], + /*<>*/ _J7_= + /*<>*/ caml_call3(_J6_,_J5_,_J4_,_J3_), + /*<>*/ _J8_=b[1], + /*<>*/ _J9_=a[1], + /*<>*/ _J__=_J9_ + _J8_, + /*<>*/ _J$_=1., + /*<>*/ _Ka_=0., + /*<>*/ _Kb_=Gg[1][47]; + /*<>*/ return [254, + /*<>*/ caml_call3(_Kb_,_Ka_,_J$_,_J__), + _J7_, + _J0_, + _JT_] /*<>*/ } + /*<>*/ function replace(prev,next) + { /*<>*/ return /*<>*/ symbol (next,_bP_) ?prev - :next /*<>*/ } - /*<>*/ function pp(ppf,t) - { /*<>*/ if(t !== _bP_) - { /*<>*/ var - /*<>*/ _IA_=[0,t[1],[0,t[2],[0,t[3],[0,t[4],0]]]], - /*<>*/ _IB_= + :next /*<>*/ } + /*<>*/ function pp(ppf,t) + { /*<>*/ if(t !== _bP_) + { /*<>*/ var + /*<>*/ _JE_=[0,t[1],[0,t[2],[0,t[3],[0,t[4],0]]]], + /*<>*/ _JF_= function(e) - { /*<>*/ return e * 255. | 0 /*<>*/ }, - /*<>*/ _IC_=Stdlib_List[19], - /*<>*/ _ID_= - /*<>*/ caml_call2(_IC_,_IB_,_IA_), - /*<>*/ _IE_=Fmt[21], - /*<>*/ _IF_= - /*<>*/ caml_call1(_IE_,_cz_), - /*<>*/ _IG_=0, - /*<>*/ _IH_=Fmt[64], - /*<>*/ _II_= - /*<>*/ caml_call2(_IH_,_IG_,_IF_); - /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_cA_,ppf,_II_,_ID_)} - /*<>*/ return /*<>*/ caml_call2 - (Fmt[21],_cB_,ppf) /*<>*/ } - /*<>*/ var - /*<>*/ Color= + { /*<>*/ return e * 255. | 0 /*<>*/ }, + /*<>*/ _JG_=Stdlib_List[19], + /*<>*/ _JH_= + /*<>*/ caml_call2(_JG_,_JF_,_JE_), + /*<>*/ _JI_=Fmt[21], + /*<>*/ _JJ_= + /*<>*/ caml_call1(_JI_,_cz_), + /*<>*/ _JK_=0, + /*<>*/ _JL_=Fmt[64], + /*<>*/ _JM_= + /*<>*/ caml_call2(_JL_,_JK_,_JJ_); + /*<>*/ return /*<>*/ caml_call4 + (Fmt[21],_cA_,ppf,_JM_,_JH_)} + /*<>*/ return /*<>*/ caml_call2 + (Fmt[21],_cB_,ppf) /*<>*/ } + /*<>*/ var + /*<>*/ Color= [0, _bE_, _bF_, @@ -566669,7 +566626,7 @@ symbol$0, replace, pp], - /*<>*/ NVG= + /*<>*/ NVG= [0, _a1_, _a2_, @@ -566711,108 +566668,108 @@ _bB_, _bC_, Color]; - /*<>*/ function btw(x,a,b) - { /*<>*/ var - /*<>*/ _Iy_=a <= x?1:0, - /*<>*/ _Iz_=_Iy_?x <= b?1:0:_Iy_; - /*<>*/ return _Iz_ /*<>*/ } - /*<>*/ var - /*<>*/ _cC_=include[1], - /*<>*/ _cD_=include[2], - /*<>*/ _cK_=include[9], - /*<>*/ _cN_=include[12], - /*<>*/ _cR_=include[16], - /*<>*/ _cE_=include[3], - /*<>*/ _cF_=include[4], - /*<>*/ _cG_=include[5], - /*<>*/ _cH_=include[6], - /*<>*/ _cI_=include[7], - /*<>*/ _cJ_=include[8], - /*<>*/ _cL_=include[10], - /*<>*/ _cM_=include[11], - /*<>*/ _cO_=include[13], - /*<>*/ _cP_=include[14], - /*<>*/ _cQ_=include[15], - /*<>*/ _cS_=include[17], - /*<>*/ _cT_=include[18], - /*<>*/ _cU_=include[19], - /*<>*/ _cV_=include[20], - /*<>*/ _cW_=include[21], - /*<>*/ _cX_=include[22], - /*<>*/ _cY_=include[23], - /*<>*/ _cZ_=include[24], - /*<>*/ _c0_=include[25], - /*<>*/ _c1_=include[26], - /*<>*/ _c2_=include[27], - /*<>*/ _c3_=include[28], - /*<>*/ _c4_=include[29], - /*<>*/ _c5_=include[30], - /*<>*/ _c6_=include[31], - /*<>*/ _c7_=include[32], - /*<>*/ _c8_=include[33], - /*<>*/ _c9_=include[34], - /*<>*/ _c__=include[35], - /*<>*/ _c$_=include[36], - /*<>*/ _da_=include[37], - /*<>*/ _db_=include[38], - /*<>*/ _dc_=include[39], - /*<>*/ _dd_=include[40], - /*<>*/ _de_=1024, - /*<>*/ buf= - /*<>*/ caml_call1(_cC_,_de_); - /*<>*/ function mkstring(f) - { /*<>*/ /*<>*/ caml_call1(f,buf); - /*<>*/ /*<>*/ var + /*<>*/ function btw(x,a,b) + { /*<>*/ var + /*<>*/ _JC_=a <= x?1:0, + /*<>*/ _JD_=_JC_?x <= b?1:0:_JC_; + /*<>*/ return _JD_ /*<>*/ } + /*<>*/ var + /*<>*/ _cC_=include[1], + /*<>*/ _cD_=include[2], + /*<>*/ _cK_=include[9], + /*<>*/ _cN_=include[12], + /*<>*/ _cR_=include[16], + /*<>*/ _cE_=include[3], + /*<>*/ _cF_=include[4], + /*<>*/ _cG_=include[5], + /*<>*/ _cH_=include[6], + /*<>*/ _cI_=include[7], + /*<>*/ _cJ_=include[8], + /*<>*/ _cL_=include[10], + /*<>*/ _cM_=include[11], + /*<>*/ _cO_=include[13], + /*<>*/ _cP_=include[14], + /*<>*/ _cQ_=include[15], + /*<>*/ _cS_=include[17], + /*<>*/ _cT_=include[18], + /*<>*/ _cU_=include[19], + /*<>*/ _cV_=include[20], + /*<>*/ _cW_=include[21], + /*<>*/ _cX_=include[22], + /*<>*/ _cY_=include[23], + /*<>*/ _cZ_=include[24], + /*<>*/ _c0_=include[25], + /*<>*/ _c1_=include[26], + /*<>*/ _c2_=include[27], + /*<>*/ _c3_=include[28], + /*<>*/ _c4_=include[29], + /*<>*/ _c5_=include[30], + /*<>*/ _c6_=include[31], + /*<>*/ _c7_=include[32], + /*<>*/ _c8_=include[33], + /*<>*/ _c9_=include[34], + /*<>*/ _c__=include[35], + /*<>*/ _c$_=include[36], + /*<>*/ _da_=include[37], + /*<>*/ _db_=include[38], + /*<>*/ _dc_=include[39], + /*<>*/ _dd_=include[40], + /*<>*/ _de_=1024, + /*<>*/ buf= + /*<>*/ caml_call1(_cC_,_de_); + /*<>*/ function mkstring(f) + { /*<>*/ /*<>*/ caml_call1(f,buf); + /*<>*/ /*<>*/ var res= - /*<>*/ caml_call1(_cD_,buf); - /*<>*/ /*<>*/ caml_call1(_cK_,buf); - /*<>*/ return res /*<>*/ } - /*<>*/ function add_decimal(b,x) - { /*<>*/ var - /*<>*/ _Ip_=999, - /*<>*/ _Iq_=0; - /*<>*/ if( /*<>*/ btw(x,_Iq_,_Ip_)) - { /*<>*/ var - /*<>*/ d1=x / 100 | 0, - /*<>*/ d2=(x % 100 | 0) / 10 | 0, - /*<>*/ d3=x % 10 | 0; - /*<>*/ if(0 < d1) - { /*<>*/ var - /*<>*/ _Ir_=48 + d1 | 0, - /*<>*/ _Is_= - /*<>*/ caml_call1(_cN_,b); - /*<>*/ /*<>*/ caml_call1 - (_Is_,_Ir_)} - /*<>*/ if(0 < (d1 + d2 | 0)) - { /*<>*/ var - /*<>*/ _It_=48 + d2 | 0, - /*<>*/ _Iu_= - /*<>*/ caml_call1(_cN_,b); - /*<>*/ /*<>*/ caml_call1 - (_Iu_,_It_)} - /*<>*/ /*<>*/ var _Iv_=48 + d3 | 0; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_cN_,b),_Iv_)} - /*<>*/ var - /*<>*/ _Iw_=Stdlib[33], - /*<>*/ _Ix_= - /*<>*/ caml_call1(_Iw_,x); - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_cR_,b),_Ix_) /*<>*/ } - /*<>*/ function add_chars(b,c,n) - { /*<>*/ /*<>*/ var _In_=1; - /*<>*/ if(! (n < 1)) - {var for$0=_In_; - /*<>*/ for(;;) - { /*<>*/ /*<>*/ caml_call2(_cN_,b,c); - /*<>*/ /*<>*/ var - _Io_= + /*<>*/ caml_call1(_cD_,buf); + /*<>*/ /*<>*/ caml_call1(_cK_,buf); + /*<>*/ return res /*<>*/ } + /*<>*/ function add_decimal(b,x) + { /*<>*/ var + /*<>*/ _Jt_=999, + /*<>*/ _Ju_=0; + /*<>*/ if( /*<>*/ btw(x,_Ju_,_Jt_)) + { /*<>*/ var + /*<>*/ d1=x / 100 | 0, + /*<>*/ d2=(x % 100 | 0) / 10 | 0, + /*<>*/ d3=x % 10 | 0; + /*<>*/ if(0 < d1) + { /*<>*/ var + /*<>*/ _Jv_=48 + d1 | 0, + /*<>*/ _Jw_= + /*<>*/ caml_call1(_cN_,b); + /*<>*/ /*<>*/ caml_call1 + (_Jw_,_Jv_)} + /*<>*/ if(0 < (d1 + d2 | 0)) + { /*<>*/ var + /*<>*/ _Jx_=48 + d2 | 0, + /*<>*/ _Jy_= + /*<>*/ caml_call1(_cN_,b); + /*<>*/ /*<>*/ caml_call1 + (_Jy_,_Jx_)} + /*<>*/ /*<>*/ var _Jz_=48 + d3 | 0; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_cN_,b),_Jz_)} + /*<>*/ var + /*<>*/ _JA_=Stdlib[33], + /*<>*/ _JB_= + /*<>*/ caml_call1(_JA_,x); + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_cR_,b),_JB_) /*<>*/ } + /*<>*/ function add_chars(b,c,n) + { /*<>*/ /*<>*/ var _Jr_=1; + /*<>*/ if(! (n < 1)) + {var for$0=_Jr_; + /*<>*/ for(;;) + { /*<>*/ /*<>*/ caml_call2(_cN_,b,c); + /*<>*/ /*<>*/ var + _Js_= for$0 + 1 | 0; - if(n !== for$0){var for$0=_Io_;continue} + if(n !== for$0){var for$0=_Js_;continue} break}} - return 0 /*<>*/ } - /*<>*/ var - /*<>*/ Buffer= + return 0 /*<>*/ } + /*<>*/ var + /*<>*/ Buffer= [0, _cC_, _cD_, @@ -566858,106 +566815,106 @@ mkstring, add_decimal, add_chars], - /*<>*/ make=Stdlib_String[1], - /*<>*/ init$1=Stdlib_String[2], - /*<>*/ empty$0=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]; - /*<>*/ function sub0cp(s,i,len) + /*<>*/ make=Stdlib_String[1], + /*<>*/ init$1=Stdlib_String[2], + /*<>*/ empty$0=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]; + /*<>*/ function sub0cp(s,i,len) { /*<>*/ if(! (0 < i) && ! (len < caml_ml_string_length(s))) - /*<>*/ return s; - /*<>*/ return /*<>*/ caml_call3 - (sub,s,i,len) /*<>*/ } - /*<>*/ function of_chars_rev(cs) - { /*<>*/ if(cs) + /*<>*/ return s; + /*<>*/ return /*<>*/ caml_call3 + (sub,s,i,len) /*<>*/ } + /*<>*/ function of_chars_rev(cs) + { /*<>*/ if(cs) {if(cs[2]) - { /*<>*/ var - /*<>*/ _Il_=Stdlib_List[1], - /*<>*/ n= - /*<>*/ caml_call1(_Il_,cs), - /*<>*/ go= + { /*<>*/ var + /*<>*/ _Jp_=Stdlib_List[1], + /*<>*/ n= + /*<>*/ caml_call1(_Jp_,cs), + /*<>*/ go= function(bs,i) - { /*<>*/ return function(param) - { /*<>*/ if(param) + { /*<>*/ return function(param) + { /*<>*/ if(param) {var xs=param[2],x=param[1]; runtime.caml_bytes_unsafe_set(bs,i,x); return caml_call1(go(bs,i - 1 | 0),xs)} - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_Bytes[48],bs) /*<>*/ } /*<>*/ }, - /*<>*/ _Im_=n - 1 | 0; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ go - ( /*<>*/ runtime.caml_create_bytes(n),_Im_), + /*<>*/ return /*<>*/ caml_call1 + (Stdlib_Bytes[48],bs) /*<>*/ } /*<>*/ }, + /*<>*/ _Jq_=n - 1 | 0; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ go + ( /*<>*/ runtime.caml_create_bytes(n),_Jq_), cs)} - /*<>*/ /*<>*/ var c=cs[1]; - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ /*<>*/ var c=cs[1]; + /*<>*/ return /*<>*/ caml_call2 (Stdlib_String[1],1,c)} - /*<>*/ return cst$3 /*<>*/ } - /*<>*/ var - /*<>*/ String= + /*<>*/ return cst$3 /*<>*/ } + /*<>*/ var + /*<>*/ String= [0, make, init$1, @@ -567029,61 +566986,61 @@ get_int64_le, sub0cp, of_chars_rev], - /*<>*/ include$1=NVG[39], - /*<>*/ text=include$1[1], - /*<>*/ text_w=include$1[2], - /*<>*/ find_font=include$1[3], - /*<>*/ set_size=include$1[4], - /*<>*/ set_blur=include$1[5], - /*<>*/ set_line_height=include$1[6], - /*<>*/ set_letter_spacing=include$1[7], - /*<>*/ set_align=include$1[8], - /*<>*/ set_font_face=include$1[9], - /*<>*/ set_font_face_id=include$1[10], - /*<>*/ create=include$1[11], - /*<>*/ bounds=include$1[12], - /*<>*/ metrics=include$1[13], - /*<>*/ break_lines=include$1[14], - /*<>*/ make_empty_rows=include$1[15], - /*<>*/ empty_glyph_position=include$1[16], - /*<>*/ glyph_positions=include$1[17], - /*<>*/ text_box=include$1[18], - /*<>*/ box_bounds=include$1[19], - /*<>*/ add_fallback_id=include$1[20], - /*<>*/ add_fallback=include$1[21], - /*<>*/ reset_fallback_id=include$1[22], - /*<>*/ reset_fallback=include$1[23]; - /*<>*/ function equal$0(param,_Ik_) - { /*<>*/ var - /*<>*/ b=_Ik_[1], - /*<>*/ a=param[1]; - /*<>*/ return /*<>*/ caml_call2 - (String[8],a,b) /*<>*/ } - /*<>*/ function of_string$0(s) - { /*<>*/ return [0,s] /*<>*/ } - /*<>*/ function to_string$0(param) - { /*<>*/ /*<>*/ var s=param[1]; - /*<>*/ return s /*<>*/ } - /*<>*/ function of_uchars(ucs) - { /*<>*/ function _Ig_(buf) - { /*<>*/ var - /*<>*/ _Ii_=Buffer[13], - /*<>*/ _Ij_= - /*<>*/ caml_call1(_Ii_,buf); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Array[13],_Ij_,ucs) /*<>*/ } - /*<>*/ /*<>*/ var _Ih_=Buffer[42]; - /*<>*/ return /*<>*/ of_string$0 - ( /*<>*/ caml_call1(_Ih_,_Ig_)) /*<>*/ } - /*<>*/ function replicatec(w,c) - { /*<>*/ var - /*<>*/ _Ie_=w | 0, - /*<>*/ _If_=String[1]; - /*<>*/ return [0, - /*<>*/ caml_call2(_If_,_Ie_,c)] /*<>*/ } - /*<>*/ function pp$0(ppf,param) + /*<>*/ include$1=NVG[39], + /*<>*/ text=include$1[1], + /*<>*/ text_w=include$1[2], + /*<>*/ find_font=include$1[3], + /*<>*/ set_size=include$1[4], + /*<>*/ set_blur=include$1[5], + /*<>*/ set_line_height=include$1[6], + /*<>*/ set_letter_spacing=include$1[7], + /*<>*/ set_align=include$1[8], + /*<>*/ set_font_face=include$1[9], + /*<>*/ set_font_face_id=include$1[10], + /*<>*/ create=include$1[11], + /*<>*/ bounds=include$1[12], + /*<>*/ metrics=include$1[13], + /*<>*/ break_lines=include$1[14], + /*<>*/ make_empty_rows=include$1[15], + /*<>*/ empty_glyph_position=include$1[16], + /*<>*/ glyph_positions=include$1[17], + /*<>*/ text_box=include$1[18], + /*<>*/ box_bounds=include$1[19], + /*<>*/ add_fallback_id=include$1[20], + /*<>*/ add_fallback=include$1[21], + /*<>*/ reset_fallback_id=include$1[22], + /*<>*/ reset_fallback=include$1[23]; + /*<>*/ function equal$0(param,_Jo_) + { /*<>*/ var + /*<>*/ b=_Jo_[1], + /*<>*/ a=param[1]; + /*<>*/ return /*<>*/ caml_call2 + (String[8],a,b) /*<>*/ } + /*<>*/ function of_string$0(s) + { /*<>*/ return [0,s] /*<>*/ } + /*<>*/ function to_string$0(param) + { /*<>*/ /*<>*/ var s=param[1]; + /*<>*/ return s /*<>*/ } + /*<>*/ function of_uchars(ucs) + { /*<>*/ function _Jk_(buf) + { /*<>*/ var + /*<>*/ _Jm_=Buffer[13], + /*<>*/ _Jn_= + /*<>*/ caml_call1(_Jm_,buf); + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Array[13],_Jn_,ucs) /*<>*/ } + /*<>*/ /*<>*/ var _Jl_=Buffer[42]; + /*<>*/ return /*<>*/ of_string$0 + ( /*<>*/ caml_call1(_Jl_,_Jk_)) /*<>*/ } + /*<>*/ function replicatec(w,c) + { /*<>*/ var + /*<>*/ _Ji_=w | 0, + /*<>*/ _Jj_=String[1]; + /*<>*/ return [0, + /*<>*/ caml_call2(_Jj_,_Ji_,c)] /*<>*/ } + /*<>*/ function pp$0(ppf,param) { /*<>*/ var s=param[1];return caml_call3(Fmt[21],_df_,ppf,s)} - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var Text= [0, text, @@ -567116,281 +567073,281 @@ of_uchars, replicatec, pp$0]; - /*<>*/ function pp$1(ppf) - { /*<>*/ var - /*<>*/ _H3_=0, - /*<>*/ _H4_=Fmt[53], - /*<>*/ _H5_=0, - /*<>*/ _H6_=Fmt[62], - /*<>*/ _H7_= - /*<>*/ caml_call2(_H6_,_H5_,_H4_); - /*<>*/ function _H8_(a) - { /*<>*/ return a[1] /*<>*/ } - /*<>*/ var - /*<>*/ _H9_=0, - /*<>*/ _H__=0, - /*<>*/ _H$_=Fmt[42], - /*<>*/ _Ia_= + /*<>*/ function pp$1(ppf) + { /*<>*/ var + /*<>*/ _I7_=0, + /*<>*/ _I8_=Fmt[53], + /*<>*/ _I9_=0, + /*<>*/ _I__=Fmt[62], + /*<>*/ _I$_= + /*<>*/ caml_call2(_I__,_I9_,_I8_); + /*<>*/ function _Ja_(a) + { /*<>*/ return a[1] /*<>*/ } + /*<>*/ var + /*<>*/ _Jb_=0, + /*<>*/ _Jc_=0, + /*<>*/ _Jd_=Fmt[42], + /*<>*/ _Je_= [0, - /*<>*/ caml_call5 - (_H$_,_H__,_H9_,cst_size,_H8_,_H7_), - _H3_], - /*<>*/ _Ib_=0, - /*<>*/ _Ic_=Fmt[43], - /*<>*/ _Id_= - /*<>*/ caml_call2(_Ic_,_Ib_,_Ia_); - /*<>*/ return /*<>*/ caml_call3 - (Fmt[21],_dg_,ppf,_Id_) /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ caml_call5 + (_Jd_,_Jc_,_Jb_,cst_size,_Ja_,_I$_), + _I7_], + /*<>*/ _Jf_=0, + /*<>*/ _Jg_=Fmt[43], + /*<>*/ _Jh_= + /*<>*/ caml_call2(_Jg_,_Jf_,_Je_); + /*<>*/ return /*<>*/ caml_call3 + (Fmt[21],_dg_,ppf,_Jh_) /*<>*/ } + /*<>*/ /*<>*/ var underline= [0,empty$2[1],empty$2[2],empty$2[3],empty$2[4],698610924]; - /*<>*/ function size(param) + /*<>*/ function size(param) { /*<>*/ var size=param[1]; if(size) - { /*<>*/ /*<>*/ var s=size[1]; - /*<>*/ return s} - /*<>*/ return 20.} - /*<>*/ function merge$0(a,b) - { /*<>*/ var + { /*<>*/ /*<>*/ var s=size[1]; + /*<>*/ return s} + /*<>*/ return 20.} + /*<>*/ function merge$0(a,b) + { /*<>*/ var switch$0=0, - /*<>*/ _HN_=b[5]; - if(698610924 !== a[5] && 698610924 !== _HN_) - {var _HO_=870530776;switch$0 = 1} - /*<>*/ if(! switch$0)var _HO_=698610924; - /*<>*/ var switch$1=0,_HP_=b[4]; - if(989373200 !== a[4] && 989373200 !== _HP_) - {var _HQ_=870530776;switch$1 = 1} - if(! switch$1)var _HQ_=989373200; - /*<>*/ var _HR_=a[3],_HS_=b[3],switch$2=0; - if(737455525 <= _HR_) - if(870530776 <= _HR_) - if(136970422 === _HS_) + /*<>*/ _IR_=b[5]; + if(698610924 !== a[5] && 698610924 !== _IR_) + {var _IS_=870530776;switch$0 = 1} + /*<>*/ if(! switch$0)var _IS_=698610924; + /*<>*/ var switch$1=0,_IT_=b[4]; + if(989373200 !== a[4] && 989373200 !== _IT_) + {var _IU_=870530776;switch$1 = 1} + if(! switch$1)var _IU_=989373200; + /*<>*/ var _IV_=a[3],_IW_=b[3],switch$2=0; + if(737455525 <= _IV_) + if(870530776 <= _IV_) + if(136970422 === _IW_) switch$2 = 3; else - if(870530776 === _HS_) - {var _HT_=870530776;switch$2 = 1} + if(870530776 === _IW_) + {var _IX_=870530776;switch$2 = 1} else switch$2 = 2; else switch$2 = 4; else - if(136970422 <= _HR_) - if(136970422 === _HS_ || 870530776 === _HS_) + if(136970422 <= _IV_) + if(136970422 === _IW_ || 870530776 === _IW_) switch$2 = 3; else switch$2 = 2; else - if(-807830980 !== _HS_ && 136970422 !== _HS_ && 870530776 !== _HS_) + if(-807830980 !== _IW_ && 136970422 !== _IW_ && 870530776 !== _IW_) switch$2 = 2; - /*<>*/ var switch$3=0; + /*<>*/ var switch$3=0; switch(switch$2) - {case 2:switch$3 = 737455525 === _HS_?1:2;break; + {case 2:switch$3 = 737455525 === _IW_?1:2;break; case 4:switch$3 = 1;break; case 0:switch$3 = 2;break; - case 3:var _HT_=136970422;break + case 3:var _IX_=136970422;break } switch(switch$3) - {case 1:var _HT_=737455525;break;case 2:var _HT_=-807830980;break} - /*<>*/ var _HU_=a[2],_HV_=b[2],switch$4=0; - if(870530776 <= _HU_) - if(925282419 <= _HU_) + {case 1:var _IX_=737455525;break;case 2:var _IX_=-807830980;break} + /*<>*/ var _IY_=a[2],_IZ_=b[2],switch$4=0; + if(870530776 <= _IY_) + if(925282419 <= _IY_) switch$4 = 4; else - if(859441219 === _HV_) + if(859441219 === _IZ_) switch$4 = 3; else - if(870530776 === _HV_) - {var _HW_=870530776;switch$4 = 1} + if(870530776 === _IZ_) + {var _I0_=870530776;switch$4 = 1} else switch$4 = 2; else - if(859441219 <= _HU_) - if(859441219 === _HV_ || 870530776 === _HV_) + if(859441219 <= _IY_) + if(859441219 === _IZ_ || 870530776 === _IZ_) switch$4 = 3; else switch$4 = 2; else - if(224104285 !== _HV_ && 859441219 !== _HV_ && 870530776 !== _HV_) + if(224104285 !== _IZ_ && 859441219 !== _IZ_ && 870530776 !== _IZ_) switch$4 = 2; - /*<>*/ var switch$5=0; + /*<>*/ var switch$5=0; switch(switch$4) - {case 2:switch$5 = 925282419 === _HV_?1:2;break; + {case 2:switch$5 = 925282419 === _IZ_?1:2;break; case 4:switch$5 = 1;break; case 0:switch$5 = 2;break; - case 3:var _HW_=859441219;break + case 3:var _I0_=859441219;break } switch(switch$5) - {case 1:var _HW_=925282419;break;case 2:var _HW_=224104285;break} - /*<>*/ var _HX_=a[1],_HY_=b[1],switch$6=0; - if(_HX_) - {var _HZ_=_HX_[1]; - if(_HY_) - /*<>*/ var - /*<>*/ s2=_HY_[1], - /*<>*/ _H0_=Gg[1][25], - /*<>*/ _H1_= - [0, /*<>*/ caml_call2(_H0_,_HZ_,s2)], - _H2_=_H1_; + {case 1:var _I0_=925282419;break;case 2:var _I0_=224104285;break} + /*<>*/ var _I1_=a[1],_I2_=b[1],switch$6=0; + if(_I1_) + {var _I3_=_I1_[1]; + if(_I2_) + /*<>*/ var + /*<>*/ s2=_I2_[1], + /*<>*/ _I4_=Gg[1][25], + /*<>*/ _I5_= + [0, /*<>*/ caml_call2(_I4_,_I3_,s2)], + _I6_=_I5_; else - {var s=_HZ_;switch$6 = 1}} + {var s=_I3_;switch$6 = 1}} else - if(_HY_){var s=_HY_[1];switch$6 = 1}else var _H2_=0; - if(switch$6)var _H2_=[0,s]; - return [0,_H2_,_HW_,_HT_,_HQ_,_HO_] /*<>*/ } - /*<>*/ function set$0(vg,t) - { /*<>*/ /*<>*/ var _HL_=t[1]; - /*<>*/ if(_HL_) - { /*<>*/ var - /*<>*/ size=_HL_[1], - /*<>*/ _HM_=Text[4]; - /*<>*/ /*<>*/ caml_call2 - (_HM_,vg,size)} - /*<>*/ return 925282419 === t[2] - ? /*<>*/ caml_call2(Text[9],vg,cst_sans) - :0 /*<>*/ } - /*<>*/ function replace$0(prev,next) - { /*<>*/ return /*<>*/ merge$0 - (prev,next) /*<>*/ } - /*<>*/ /*<>*/ var + if(_I2_){var s=_I2_[1];switch$6 = 1}else var _I6_=0; + if(switch$6)var _I6_=[0,s]; + return [0,_I6_,_I0_,_IX_,_IU_,_IS_] /*<>*/ } + /*<>*/ function set$0(vg,t) + { /*<>*/ /*<>*/ var _IP_=t[1]; + /*<>*/ if(_IP_) + { /*<>*/ var + /*<>*/ size=_IP_[1], + /*<>*/ _IQ_=Text[4]; + /*<>*/ /*<>*/ caml_call2 + (_IQ_,vg,size)} + /*<>*/ return 925282419 === t[2] + ? /*<>*/ caml_call2(Text[9],vg,cst_sans) + :0 /*<>*/ } + /*<>*/ function replace$0(prev,next) + { /*<>*/ return /*<>*/ merge$0 + (prev,next) /*<>*/ } + /*<>*/ /*<>*/ var Font= [0,pp$1,empty$2,underline,size,merge$0,set$0,replace$0]; - /*<>*/ function pp$2(ppf,a) - { /*<>*/ return /*<>*/ caml_call6 - (Fmt[21],_dh_,ppf,NVG[40][36],a[1],NVG[40][36],a[2]) /*<>*/ } - /*<>*/ function equal$1(_HK_,_HJ_) - { /*<>*/ return _HK_ === _HJ_?1:0} - /*<>*/ var - /*<>*/ empty$3=[0,NVG[40][5],NVG[40][5],Font[2]], - /*<>*/ dark$0=[0,NVG[40][15],NVG[40][16],empty$3[3]]; - /*<>*/ function symbol$1(a1,a2) - { /*<>*/ var - /*<>*/ _Hy_=a2[3], - /*<>*/ _Hz_=a1[3], - /*<>*/ _HA_=Font[5], - /*<>*/ _HB_= - /*<>*/ caml_call2(_HA_,_Hz_,_Hy_), - /*<>*/ _HC_=a2[2], - /*<>*/ _HD_=a1[2], - /*<>*/ _HE_=NVG[40][34], - /*<>*/ _HF_= - /*<>*/ caml_call2(_HE_,_HD_,_HC_), - /*<>*/ _HG_=a2[1], - /*<>*/ _HH_=a1[1], - /*<>*/ _HI_=NVG[40][34]; - /*<>*/ return [0, - /*<>*/ caml_call2(_HI_,_HH_,_HG_), - _HF_, - _HB_] /*<>*/ } - /*<>*/ function replace$1(prev,next) - { /*<>*/ var - /*<>*/ _Hn_=next[3], - /*<>*/ _Ho_=prev[3], - /*<>*/ _Hp_=Font[7], - /*<>*/ _Hq_= - /*<>*/ caml_call2(_Hp_,_Ho_,_Hn_), - /*<>*/ _Hr_=next[2], - /*<>*/ _Hs_=prev[2], - /*<>*/ _Ht_=NVG[40][35], - /*<>*/ _Hu_= - /*<>*/ caml_call2(_Ht_,_Hs_,_Hr_), - /*<>*/ _Hv_=next[1], - /*<>*/ _Hw_=prev[1], - /*<>*/ _Hx_=NVG[40][35]; - /*<>*/ return [0, - /*<>*/ caml_call2(_Hx_,_Hw_,_Hv_), - _Hu_, - _Hq_] /*<>*/ } - /*<>*/ function fg(opt,c) - { /*<>*/ if(opt) - /*<>*/ var /*<>*/ sth=opt[1],t=sth; + /*<>*/ function pp$2(ppf,a) + { /*<>*/ return /*<>*/ caml_call6 + (Fmt[21],_dh_,ppf,NVG[40][36],a[1],NVG[40][36],a[2]) /*<>*/ } + /*<>*/ function equal$1(_IO_,_IN_) + { /*<>*/ return _IO_ === _IN_?1:0} + /*<>*/ var + /*<>*/ empty$3=[0,NVG[40][5],NVG[40][5],Font[2]], + /*<>*/ dark$0=[0,NVG[40][15],NVG[40][16],empty$3[3]]; + /*<>*/ function symbol$1(a1,a2) + { /*<>*/ var + /*<>*/ _IC_=a2[3], + /*<>*/ _ID_=a1[3], + /*<>*/ _IE_=Font[5], + /*<>*/ _IF_= + /*<>*/ caml_call2(_IE_,_ID_,_IC_), + /*<>*/ _IG_=a2[2], + /*<>*/ _IH_=a1[2], + /*<>*/ _II_=NVG[40][34], + /*<>*/ _IJ_= + /*<>*/ caml_call2(_II_,_IH_,_IG_), + /*<>*/ _IK_=a2[1], + /*<>*/ _IL_=a1[1], + /*<>*/ _IM_=NVG[40][34]; + /*<>*/ return [0, + /*<>*/ caml_call2(_IM_,_IL_,_IK_), + _IJ_, + _IF_] /*<>*/ } + /*<>*/ function replace$1(prev,next) + { /*<>*/ var + /*<>*/ _Ir_=next[3], + /*<>*/ _Is_=prev[3], + /*<>*/ _It_=Font[7], + /*<>*/ _Iu_= + /*<>*/ caml_call2(_It_,_Is_,_Ir_), + /*<>*/ _Iv_=next[2], + /*<>*/ _Iw_=prev[2], + /*<>*/ _Ix_=NVG[40][35], + /*<>*/ _Iy_= + /*<>*/ caml_call2(_Ix_,_Iw_,_Iv_), + /*<>*/ _Iz_=next[1], + /*<>*/ _IA_=prev[1], + /*<>*/ _IB_=NVG[40][35]; + /*<>*/ return [0, + /*<>*/ caml_call2(_IB_,_IA_,_Iz_), + _Iy_, + _Iu_] /*<>*/ } + /*<>*/ function fg(opt,c) + { /*<>*/ if(opt) + /*<>*/ var /*<>*/ sth=opt[1],t=sth; else var t=empty$3; - /*<>*/ return [0,c,t[2],t[3]] /*<>*/ } - /*<>*/ function bg(opt,c) - { /*<>*/ if(opt) - /*<>*/ var /*<>*/ sth=opt[1],t=sth; + /*<>*/ return [0,c,t[2],t[3]] /*<>*/ } + /*<>*/ function bg(opt,c) + { /*<>*/ if(opt) + /*<>*/ var /*<>*/ sth=opt[1],t=sth; else var t=empty$3; - /*<>*/ return [0,t[1],c,t[3]] /*<>*/ } - /*<>*/ function font(opt,c) - { /*<>*/ if(opt) - /*<>*/ var /*<>*/ sth=opt[1],t=sth; + /*<>*/ return [0,t[1],c,t[3]] /*<>*/ } + /*<>*/ function font(opt,c) + { /*<>*/ if(opt) + /*<>*/ var /*<>*/ sth=opt[1],t=sth; else var t=empty$3; - /*<>*/ return [0,t[1],t[2],c] /*<>*/ } - /*<>*/ function merge$1(a,b) - { /*<>*/ var - /*<>*/ _Ha_=b[3], - /*<>*/ _Hb_=a[3], - /*<>*/ _Hc_=Font[5], - /*<>*/ _Hd_= - /*<>*/ caml_call2(_Hc_,_Hb_,_Ha_), - /*<>*/ _He_=0.5, - /*<>*/ _Hf_=b[2], - /*<>*/ _Hg_=a[2], - /*<>*/ _Hh_=NVG[40][6], - /*<>*/ _Hi_= - /*<>*/ caml_call3(_Hh_,_Hg_,_Hf_,_He_), - /*<>*/ _Hj_=0.5, - /*<>*/ _Hk_=b[1], - /*<>*/ _Hl_=a[1], - /*<>*/ _Hm_=NVG[40][6]; - /*<>*/ return [0, - /*<>*/ caml_call3(_Hm_,_Hl_,_Hk_,_Hj_), - _Hi_, - _Hd_] /*<>*/ } - /*<>*/ function set$1(vg,s) - { /*<>*/ /*<>*/ var _G7_=Fmt[5]; - /*<>*/ /*<>*/ caml_call1(_G7_,_di_); - /*<>*/ var - /*<>*/ _G8_=s[2], - /*<>*/ _G9_=NVG[35]; - /*<>*/ /*<>*/ caml_call2(_G9_,vg,_G8_); - /*<>*/ var - /*<>*/ _G__=s[1], - /*<>*/ _G$_=NVG[37]; - /*<>*/ /*<>*/ caml_call2(_G$_,vg,_G__); - /*<>*/ return /*<>*/ caml_call2 - (Font[6],vg,s[3]) /*<>*/ } - /*<>*/ var - /*<>*/ _dj_=NVG[40][17], - /*<>*/ _dk_=0, - /*<>*/ _dl_= /*<>*/ fg(_dk_,_dj_), - /*<>*/ _dm_=NVG[40][19], - /*<>*/ _dn_=0, - /*<>*/ _do_= /*<>*/ bg(_dn_,_dm_), - /*<>*/ menu_main= - /*<>*/ symbol$1(_do_,_dl_), - /*<>*/ _dp_=NVG[40][17], - /*<>*/ _dq_=0, - /*<>*/ _dr_= /*<>*/ fg(_dq_,_dp_), - /*<>*/ _ds_=NVG[40][27], - /*<>*/ _dt_=0, - /*<>*/ _du_= /*<>*/ bg(_dt_,_ds_), - /*<>*/ menu_sub= - /*<>*/ symbol$1(_du_,_dr_), - /*<>*/ _dv_=NVG[40][15], - /*<>*/ _dw_=0, - /*<>*/ _dx_= /*<>*/ fg(_dw_,_dv_), - /*<>*/ _dy_=0.5, - /*<>*/ _dz_=0.2, - /*<>*/ _dA_=0.2, - /*<>*/ _dB_=NVG[40][13], - /*<>*/ _dC_= - /*<>*/ caml_call3(_dB_,_dA_,_dz_,_dy_), - /*<>*/ _dD_=0, - /*<>*/ _dE_= /*<>*/ bg(_dD_,_dC_), - /*<>*/ clickable= - /*<>*/ symbol$1(_dE_,_dx_), - /*<>*/ _dF_=NVG[40][20], - /*<>*/ _dG_=0, - /*<>*/ _dH_= /*<>*/ bg(_dG_,_dF_), - /*<>*/ _dI_=NVG[40][16], - /*<>*/ _dJ_=0, - /*<>*/ _dK_= /*<>*/ fg(_dJ_,_dI_), - /*<>*/ cursor= - /*<>*/ symbol$1(_dK_,_dH_), - /*<>*/ Style= + /*<>*/ return [0,t[1],t[2],c] /*<>*/ } + /*<>*/ function merge$1(a,b) + { /*<>*/ var + /*<>*/ _Ie_=b[3], + /*<>*/ _If_=a[3], + /*<>*/ _Ig_=Font[5], + /*<>*/ _Ih_= + /*<>*/ caml_call2(_Ig_,_If_,_Ie_), + /*<>*/ _Ii_=0.5, + /*<>*/ _Ij_=b[2], + /*<>*/ _Ik_=a[2], + /*<>*/ _Il_=NVG[40][6], + /*<>*/ _Im_= + /*<>*/ caml_call3(_Il_,_Ik_,_Ij_,_Ii_), + /*<>*/ _In_=0.5, + /*<>*/ _Io_=b[1], + /*<>*/ _Ip_=a[1], + /*<>*/ _Iq_=NVG[40][6]; + /*<>*/ return [0, + /*<>*/ caml_call3(_Iq_,_Ip_,_Io_,_In_), + _Im_, + _Ih_] /*<>*/ } + /*<>*/ function set$1(vg,s) + { /*<>*/ /*<>*/ var _H$_=Fmt[5]; + /*<>*/ /*<>*/ caml_call1(_H$_,_di_); + /*<>*/ var + /*<>*/ _Ia_=s[2], + /*<>*/ _Ib_=NVG[35]; + /*<>*/ /*<>*/ caml_call2(_Ib_,vg,_Ia_); + /*<>*/ var + /*<>*/ _Ic_=s[1], + /*<>*/ _Id_=NVG[37]; + /*<>*/ /*<>*/ caml_call2(_Id_,vg,_Ic_); + /*<>*/ return /*<>*/ caml_call2 + (Font[6],vg,s[3]) /*<>*/ } + /*<>*/ var + /*<>*/ _dj_=NVG[40][17], + /*<>*/ _dk_=0, + /*<>*/ _dl_= /*<>*/ fg(_dk_,_dj_), + /*<>*/ _dm_=NVG[40][19], + /*<>*/ _dn_=0, + /*<>*/ _do_= /*<>*/ bg(_dn_,_dm_), + /*<>*/ menu_main= + /*<>*/ symbol$1(_do_,_dl_), + /*<>*/ _dp_=NVG[40][17], + /*<>*/ _dq_=0, + /*<>*/ _dr_= /*<>*/ fg(_dq_,_dp_), + /*<>*/ _ds_=NVG[40][27], + /*<>*/ _dt_=0, + /*<>*/ _du_= /*<>*/ bg(_dt_,_ds_), + /*<>*/ menu_sub= + /*<>*/ symbol$1(_du_,_dr_), + /*<>*/ _dv_=NVG[40][15], + /*<>*/ _dw_=0, + /*<>*/ _dx_= /*<>*/ fg(_dw_,_dv_), + /*<>*/ _dy_=0.5, + /*<>*/ _dz_=0.2, + /*<>*/ _dA_=0.2, + /*<>*/ _dB_=NVG[40][13], + /*<>*/ _dC_= + /*<>*/ caml_call3(_dB_,_dA_,_dz_,_dy_), + /*<>*/ _dD_=0, + /*<>*/ _dE_= /*<>*/ bg(_dD_,_dC_), + /*<>*/ clickable= + /*<>*/ symbol$1(_dE_,_dx_), + /*<>*/ _dF_=NVG[40][20], + /*<>*/ _dG_=0, + /*<>*/ _dH_= /*<>*/ bg(_dG_,_dF_), + /*<>*/ _dI_=NVG[40][16], + /*<>*/ _dJ_=0, + /*<>*/ _dK_= /*<>*/ fg(_dJ_,_dI_), + /*<>*/ cursor= + /*<>*/ symbol$1(_dK_,_dH_), + /*<>*/ Style= [0, Font, pp$2, @@ -567408,933 +567365,933 @@ menu_sub, clickable, cursor], - /*<>*/ empty$4= + /*<>*/ empty$4= [254,Gg[11][4],Gg[11][4],Gg[11][4],Gg[11][4]]; - /*<>*/ function all(v) - { /*<>*/ return [254,v,v,v,v] /*<>*/ } - /*<>*/ /*<>*/ var Pad=[0,empty$4,all]; - /*<>*/ function p2_max(p1,p2) - { /*<>*/ var - /*<>*/ _GV_=Gg[2][5], - /*<>*/ _GW_= - /*<>*/ caml_call1(_GV_,p2), - /*<>*/ _GX_=Gg[2][5], - /*<>*/ _GY_= - /*<>*/ caml_call1(_GX_,p1), - /*<>*/ _GZ_=Gg[1][22], - /*<>*/ _G0_= - /*<>*/ caml_call2(_GZ_,_GY_,_GW_), - /*<>*/ _G1_=Gg[2][4], - /*<>*/ _G2_= - /*<>*/ caml_call1(_G1_,p2), - /*<>*/ _G3_=Gg[2][4], - /*<>*/ _G4_= - /*<>*/ caml_call1(_G3_,p1), - /*<>*/ _G5_=Gg[1][22], - /*<>*/ _G6_= - /*<>*/ caml_call2(_G5_,_G4_,_G2_); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_G6_,_G0_) /*<>*/ } - /*<>*/ function bounds_segment(vg,p,param) - { /*<>*/ var + /*<>*/ function all(v) + { /*<>*/ return [254,v,v,v,v] /*<>*/ } + /*<>*/ /*<>*/ var Pad=[0,empty$4,all]; + /*<>*/ function p2_max(p1,p2) + { /*<>*/ var + /*<>*/ _HZ_=Gg[2][5], + /*<>*/ _H0_= + /*<>*/ caml_call1(_HZ_,p2), + /*<>*/ _H1_=Gg[2][5], + /*<>*/ _H2_= + /*<>*/ caml_call1(_H1_,p1), + /*<>*/ _H3_=Gg[1][22], + /*<>*/ _H4_= + /*<>*/ caml_call2(_H3_,_H2_,_H0_), + /*<>*/ _H5_=Gg[2][4], + /*<>*/ _H6_= + /*<>*/ caml_call1(_H5_,p2), + /*<>*/ _H7_=Gg[2][4], + /*<>*/ _H8_= + /*<>*/ caml_call1(_H7_,p1), + /*<>*/ _H9_=Gg[1][22], + /*<>*/ _H__= + /*<>*/ caml_call2(_H9_,_H8_,_H6_); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_H__,_H4_) /*<>*/ } + /*<>*/ function bounds_segment(vg,p,param) + { /*<>*/ var s=param[1], - _GN_=NVG[39][13], - /*<>*/ match= - /*<>*/ caml_call1(_GN_,vg), - /*<>*/ ascender=match[1], - /*<>*/ _GO_=0, - /*<>*/ _GP_=0, - /*<>*/ _GQ_=Gg[2][5], - /*<>*/ _GR_= - /*<>*/ caml_call1(_GQ_,p), - /*<>*/ _GS_=_GR_ + ascender, - /*<>*/ _GT_=Gg[2][4], - /*<>*/ _GU_= - /*<>*/ caml_call1(_GT_,p); - /*<>*/ return /*<>*/ caml_call6 - (NVG[39][12],vg,_GU_,_GS_,_GP_,_GO_,s)} - /*<>*/ function size$0(vg,p,param) + _HR_=NVG[39][13], + /*<>*/ match= + /*<>*/ caml_call1(_HR_,vg), + /*<>*/ ascender=match[1], + /*<>*/ _HS_=0, + /*<>*/ _HT_=0, + /*<>*/ _HU_=Gg[2][5], + /*<>*/ _HV_= + /*<>*/ caml_call1(_HU_,p), + /*<>*/ _HW_=_HV_ + ascender, + /*<>*/ _HX_=Gg[2][4], + /*<>*/ _HY_= + /*<>*/ caml_call1(_HX_,p); + /*<>*/ return /*<>*/ caml_call6 + (NVG[39][12],vg,_HY_,_HW_,_HT_,_HS_,s)} + /*<>*/ function size$0(vg,p,param) { /*<>*/ var param$0=param; for(;;) if(typeof param$0 === "number") - /*<>*/ return Gg[2][8]; + /*<>*/ return Gg[2][8]; else switch(param$0[0]) {case 0: - /*<>*/ var - /*<>*/ s=param$0[1], - /*<>*/ _FW_= - /*<>*/ bounds_segment(vg,p,s), - /*<>*/ advance=_FW_[2], - /*<>*/ match=_FW_[1], - /*<>*/ ymax=match[4], - /*<>*/ ymin=match[2]; - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ var + /*<>*/ s=param$0[1], + /*<>*/ _G0_= + /*<>*/ bounds_segment(vg,p,s), + /*<>*/ advance=_G0_[2], + /*<>*/ match=_G0_[1], + /*<>*/ ymax=match[4], + /*<>*/ ymin=match[2]; + /*<>*/ return /*<>*/ caml_call2 (Gg[2][2],advance,ymax - ymin); case 1: var match$0=param$0[1],param$1=match$0[1],param$0=param$1;continue; case 2: - /*<>*/ var + /*<>*/ var match$1=param$0[1], t2=match$1[2], t1=match$1[1], - /*<>*/ p1= - /*<>*/ size$0(vg,p,t1), - /*<>*/ _FX_=0., - /*<>*/ _FY_=Gg[2][4], - /*<>*/ _FZ_= - /*<>*/ caml_call1(_FY_,p1), - /*<>*/ _F0_=Gg[2][2], - /*<>*/ _F1_= - /*<>*/ caml_call2(_F0_,_FZ_,_FX_), - /*<>*/ _F2_=Gg[2][36], - /*<>*/ _F3_= - /*<>*/ caml_call2(_F2_,p,_F1_), - /*<>*/ p2= - /*<>*/ size$0(vg,_F3_,t2), - /*<>*/ _F4_=Gg[2][5], - /*<>*/ _F5_= - /*<>*/ caml_call1(_F4_,p2), - /*<>*/ _F6_=Gg[2][5], - /*<>*/ _F7_= - /*<>*/ caml_call1(_F6_,p1), - /*<>*/ _F8_=Gg[1][22], - /*<>*/ _F9_= - /*<>*/ caml_call2(_F8_,_F7_,_F5_), - /*<>*/ _F__=Gg[2][4], - /*<>*/ _F$_= - /*<>*/ caml_call1(_F__,p2), - /*<>*/ _Ga_=Gg[2][4], - /*<>*/ _Gb_= - /*<>*/ caml_call1(_Ga_,p1); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_Gb_ + _F$_,_F9_); + /*<>*/ p1= + /*<>*/ size$0(vg,p,t1), + /*<>*/ _G1_=0., + /*<>*/ _G2_=Gg[2][4], + /*<>*/ _G3_= + /*<>*/ caml_call1(_G2_,p1), + /*<>*/ _G4_=Gg[2][2], + /*<>*/ _G5_= + /*<>*/ caml_call2(_G4_,_G3_,_G1_), + /*<>*/ _G6_=Gg[2][36], + /*<>*/ _G7_= + /*<>*/ caml_call2(_G6_,p,_G5_), + /*<>*/ p2= + /*<>*/ size$0(vg,_G7_,t2), + /*<>*/ _G8_=Gg[2][5], + /*<>*/ _G9_= + /*<>*/ caml_call1(_G8_,p2), + /*<>*/ _G__=Gg[2][5], + /*<>*/ _G$_= + /*<>*/ caml_call1(_G__,p1), + /*<>*/ _Ha_=Gg[1][22], + /*<>*/ _Hb_= + /*<>*/ caml_call2(_Ha_,_G$_,_G9_), + /*<>*/ _Hc_=Gg[2][4], + /*<>*/ _Hd_= + /*<>*/ caml_call1(_Hc_,p2), + /*<>*/ _He_=Gg[2][4], + /*<>*/ _Hf_= + /*<>*/ caml_call1(_He_,p1); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_Hf_ + _Hd_,_Hb_); case 3: - /*<>*/ var + /*<>*/ var match$2=param$0[1], t2$0=match$2[2], t1$0=match$2[1], - /*<>*/ p1$0= - /*<>*/ size$0(vg,p,t1$0), - /*<>*/ _Gc_=Gg[2][5], - /*<>*/ _Gd_= - /*<>*/ caml_call1(_Gc_,p1$0), - /*<>*/ _Ge_=0., - /*<>*/ _Gf_=Gg[2][2], - /*<>*/ _Gg_= - /*<>*/ caml_call2(_Gf_,_Ge_,_Gd_), - /*<>*/ _Gh_=Gg[2][36], - /*<>*/ _Gi_= - /*<>*/ caml_call2(_Gh_,p,_Gg_), - /*<>*/ p2$0= - /*<>*/ size$0(vg,_Gi_,t2$0), - /*<>*/ _Gj_=Gg[2][5], - /*<>*/ _Gk_= - /*<>*/ caml_call1(_Gj_,p2$0), - /*<>*/ _Gl_=Gg[2][5], - /*<>*/ _Gm_= - /*<>*/ caml_call1(_Gl_,p1$0), - /*<>*/ _Gn_=_Gm_ + _Gk_, - /*<>*/ _Go_=Gg[2][4], - /*<>*/ _Gp_= - /*<>*/ caml_call1(_Go_,p2$0), - /*<>*/ _Gq_=Gg[2][4], - /*<>*/ _Gr_= - /*<>*/ caml_call1(_Gq_,p1$0), - /*<>*/ _Gs_=Gg[1][22], - /*<>*/ _Gt_= - /*<>*/ caml_call2(_Gs_,_Gr_,_Gp_); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_Gt_,_Gn_); + /*<>*/ p1$0= + /*<>*/ size$0(vg,p,t1$0), + /*<>*/ _Hg_=Gg[2][5], + /*<>*/ _Hh_= + /*<>*/ caml_call1(_Hg_,p1$0), + /*<>*/ _Hi_=0., + /*<>*/ _Hj_=Gg[2][2], + /*<>*/ _Hk_= + /*<>*/ caml_call2(_Hj_,_Hi_,_Hh_), + /*<>*/ _Hl_=Gg[2][36], + /*<>*/ _Hm_= + /*<>*/ caml_call2(_Hl_,p,_Hk_), + /*<>*/ p2$0= + /*<>*/ size$0(vg,_Hm_,t2$0), + /*<>*/ _Hn_=Gg[2][5], + /*<>*/ _Ho_= + /*<>*/ caml_call1(_Hn_,p2$0), + /*<>*/ _Hp_=Gg[2][5], + /*<>*/ _Hq_= + /*<>*/ caml_call1(_Hp_,p1$0), + /*<>*/ _Hr_=_Hq_ + _Ho_, + /*<>*/ _Hs_=Gg[2][4], + /*<>*/ _Ht_= + /*<>*/ caml_call1(_Hs_,p2$0), + /*<>*/ _Hu_=Gg[2][4], + /*<>*/ _Hv_= + /*<>*/ caml_call1(_Hu_,p1$0), + /*<>*/ _Hw_=Gg[1][22], + /*<>*/ _Hx_= + /*<>*/ caml_call2(_Hw_,_Hv_,_Ht_); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_Hx_,_Hr_); case 4: - /*<>*/ var + /*<>*/ var match$3=param$0[1], t2$1=match$3[2], t1$1=match$3[1], - /*<>*/ _Gu_= - /*<>*/ size$0(vg,p,t2$1); - /*<>*/ return /*<>*/ p2_max - ( /*<>*/ size$0(vg,p,t1$1),_Gu_); + /*<>*/ _Hy_= + /*<>*/ size$0(vg,p,t2$1); + /*<>*/ return /*<>*/ p2_max + ( /*<>*/ size$0(vg,p,t1$1),_Hy_); case 5: - /*<>*/ var + /*<>*/ var match$4=param$0[1], right=match$4[3], left=match$4[2], t=match$4[1], - _Gv_=0., - _Gw_=Gg[2][2], - /*<>*/ _Gx_= - /*<>*/ caml_call2(_Gw_,right,_Gv_), - /*<>*/ _Gy_=0., - /*<>*/ _Gz_=Gg[2][2], - /*<>*/ _GA_= - /*<>*/ caml_call2(_Gz_,left,_Gy_), - /*<>*/ _GB_=Gg[2][37], - /*<>*/ _GC_= - /*<>*/ caml_call2(_GB_,p,_GA_), - /*<>*/ _GD_= - /*<>*/ size$0(vg,_GC_,t); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][37],_GD_,_Gx_); + _Hz_=0., + _HA_=Gg[2][2], + /*<>*/ _HB_= + /*<>*/ caml_call2(_HA_,right,_Hz_), + /*<>*/ _HC_=0., + /*<>*/ _HD_=Gg[2][2], + /*<>*/ _HE_= + /*<>*/ caml_call2(_HD_,left,_HC_), + /*<>*/ _HF_=Gg[2][37], + /*<>*/ _HG_= + /*<>*/ caml_call2(_HF_,p,_HE_), + /*<>*/ _HH_= + /*<>*/ size$0(vg,_HG_,t); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][37],_HH_,_HB_); case 6: - /*<>*/ var + /*<>*/ var match$5=param$0[1], bottom=match$5[3], top=match$5[2], t$0=match$5[1], - _GE_=0., - _GF_=Gg[2][2], - /*<>*/ _GG_= - /*<>*/ caml_call2(_GF_,_GE_,bottom), - /*<>*/ _GH_=0., - /*<>*/ _GI_=Gg[2][2], - /*<>*/ _GJ_= - /*<>*/ caml_call2(_GI_,_GH_,top), - /*<>*/ _GK_=Gg[2][37], - /*<>*/ _GL_= - /*<>*/ caml_call2(_GK_,p,_GJ_), - /*<>*/ _GM_= - /*<>*/ size$0(vg,_GL_,t$0); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][37],_GM_,_GG_); + _HI_=0., + _HJ_=Gg[2][2], + /*<>*/ _HK_= + /*<>*/ caml_call2(_HJ_,_HI_,bottom), + /*<>*/ _HL_=0., + /*<>*/ _HM_=Gg[2][2], + /*<>*/ _HN_= + /*<>*/ caml_call2(_HM_,_HL_,top), + /*<>*/ _HO_=Gg[2][37], + /*<>*/ _HP_= + /*<>*/ caml_call2(_HO_,p,_HN_), + /*<>*/ _HQ_= + /*<>*/ size$0(vg,_HP_,t$0); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][37],_HQ_,_HK_); default: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var p$0= param$0[1]; - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return /*<>*/ caml_call2 (Gg[2][36],p,p$0)}} - /*<>*/ /*<>*/ var empty$5=0; - /*<>*/ function void$0(w,h) - { /*<>*/ /*<>*/ var _FV_=Gg[5][2]; - /*<>*/ return [7, - /*<>*/ caml_call2(_FV_,w,h)] /*<>*/ } - /*<>*/ function attr(a,t) + /*<>*/ /*<>*/ var empty$5=0; + /*<>*/ function void$0(w,h) + { /*<>*/ /*<>*/ var _GZ_=Gg[5][2]; + /*<>*/ return [7, + /*<>*/ caml_call2(_GZ_,w,h)] /*<>*/ } + /*<>*/ function attr(a,t) { /*<>*/ if(typeof t !== "number" && 1 === t[0]) - {var match=t[1],a0=match[2],t$0=match[1],_FU_=Style[7]; - /*<>*/ return [1, - [0,t$0, /*<>*/ caml_call2(_FU_,a0,a)]]} - /*<>*/ return [1,[0,t,a]]} - /*<>*/ function symbol$2(t1,t2) + {var match=t[1],a0=match[2],t$0=match[1],_GY_=Style[7]; + /*<>*/ return [1, + [0,t$0, /*<>*/ caml_call2(_GY_,a0,a)]]} + /*<>*/ return [1,[0,t,a]]} + /*<>*/ function symbol$2(t1,t2) + { /*<>*/ return typeof t2 === "number" + ?t1 + :typeof t1 === "number"?t2:[2,[0,t1,t2]] /*<>*/ } + /*<>*/ function symbol$3(t1,t2) { /*<>*/ return typeof t2 === "number" ?t1 - :typeof t1 === "number"?t2:[2,[0,t1,t2]] /*<>*/ } - /*<>*/ function symbol$3(t1,t2) + :typeof t1 === "number"?t2:[3,[0,t1,t2]] /*<>*/ } + /*<>*/ function symbol$4(t1,t2) { /*<>*/ return typeof t2 === "number" ?t1 - :typeof t1 === "number"?t2:[3,[0,t1,t2]] /*<>*/ } - /*<>*/ function symbol$4(t1,t2) - { /*<>*/ return typeof t2 === "number" - ?t1 - :typeof t1 === "number"?t2:[4,[0,t1,t2]] /*<>*/ } - /*<>*/ function hcrop(left,right,img) - { /*<>*/ return [5,[0,img,left,right]] /*<>*/ } - /*<>*/ function vcrop(top,bottom,img) - { /*<>*/ return [6,[0,img,top,bottom]] /*<>*/ } - /*<>*/ function crop(opt,_FT_,_FS_,_FR_,img) - { /*<>*/ if(opt) - /*<>*/ var /*<>*/ sth=opt[1],l=sth; + :typeof t1 === "number"?t2:[4,[0,t1,t2]] /*<>*/ } + /*<>*/ function hcrop(left,right,img) + { /*<>*/ return [5,[0,img,left,right]] /*<>*/ } + /*<>*/ function vcrop(top,bottom,img) + { /*<>*/ return [6,[0,img,top,bottom]] /*<>*/ } + /*<>*/ function crop(opt,_GX_,_GW_,_GV_,img) + { /*<>*/ if(opt) + /*<>*/ var /*<>*/ sth=opt[1],l=sth; else var l=0.; - /*<>*/ if(_FT_) - /*<>*/ var - /*<>*/ sth$0=_FT_[1], + /*<>*/ if(_GX_) + /*<>*/ var + /*<>*/ sth$0=_GX_[1], r=sth$0; else var r=0.; - /*<>*/ if(_FS_) - /*<>*/ var - /*<>*/ sth$1=_FS_[1], + /*<>*/ if(_GW_) + /*<>*/ var + /*<>*/ sth$1=_GW_[1], t=sth$1; else var t=0.; - /*<>*/ if(_FR_) - /*<>*/ var - /*<>*/ sth$2=_FR_[1], + /*<>*/ if(_GV_) + /*<>*/ var + /*<>*/ sth$2=_GV_[1], b=sth$2; else var b=0.; var switch$0=0; if(l == 0. && r == 0.){var img$0=img;switch$0 = 1} - /*<>*/ if(! switch$0) - var img$0= /*<>*/ hcrop(l,r,img); - if(t == 0. && b == 0.) /*<>*/ return img$0; - /*<>*/ return /*<>*/ vcrop - (t,b,img$0) /*<>*/ } - /*<>*/ function hpad(left,right,img) - { /*<>*/ /*<>*/ var _FQ_=- right; - /*<>*/ return /*<>*/ hcrop - (- left,_FQ_,img) /*<>*/ } - /*<>*/ function vpad(top,bottom,img) - { /*<>*/ /*<>*/ var _FP_=- bottom; - /*<>*/ return /*<>*/ vcrop - (- top,_FP_,img) /*<>*/ } - /*<>*/ function pad(opt,_FL_,_FK_,_FJ_,img) - { /*<>*/ if(opt) - /*<>*/ var /*<>*/ sth=opt[1],l=sth; + /*<>*/ if(! switch$0) + var img$0= /*<>*/ hcrop(l,r,img); + if(t == 0. && b == 0.) /*<>*/ return img$0; + /*<>*/ return /*<>*/ vcrop + (t,b,img$0) /*<>*/ } + /*<>*/ function hpad(left,right,img) + { /*<>*/ /*<>*/ var _GU_=- right; + /*<>*/ return /*<>*/ hcrop + (- left,_GU_,img) /*<>*/ } + /*<>*/ function vpad(top,bottom,img) + { /*<>*/ /*<>*/ var _GT_=- bottom; + /*<>*/ return /*<>*/ vcrop + (- top,_GT_,img) /*<>*/ } + /*<>*/ function pad(opt,_GP_,_GO_,_GN_,img) + { /*<>*/ if(opt) + /*<>*/ var /*<>*/ sth=opt[1],l=sth; else var l=0.; - /*<>*/ if(_FL_) - /*<>*/ var - /*<>*/ sth$0=_FL_[1], + /*<>*/ if(_GP_) + /*<>*/ var + /*<>*/ sth$0=_GP_[1], r=sth$0; else var r=0.; - /*<>*/ if(_FK_) - /*<>*/ var - /*<>*/ sth$1=_FK_[1], + /*<>*/ if(_GO_) + /*<>*/ var + /*<>*/ sth$1=_GO_[1], t=sth$1; else var t=0.; - /*<>*/ if(_FJ_) - /*<>*/ var - /*<>*/ sth$2=_FJ_[1], + /*<>*/ if(_GN_) + /*<>*/ var + /*<>*/ sth$2=_GN_[1], b=sth$2; else var b=0.; - /*<>*/ var - /*<>*/ _FM_=[0,- b], - /*<>*/ _FN_=[0,- t], - /*<>*/ _FO_=[0,- r]; - /*<>*/ return /*<>*/ crop - ([0,- l],_FO_,_FN_,_FM_,img) /*<>*/ } - /*<>*/ function concatm(z,symbol,xs) + /*<>*/ var + /*<>*/ _GQ_=[0,- b], + /*<>*/ _GR_=[0,- t], + /*<>*/ _GS_=[0,- r]; + /*<>*/ return /*<>*/ crop + ([0,- l],_GS_,_GR_,_GQ_,img) /*<>*/ } + /*<>*/ function concatm(z,symbol,xs) { /*<>*/ var xs$0=xs; - /*<>*/ for(;;) - { /*<>*/ /*<>*/ var + /*<>*/ for(;;) + { /*<>*/ /*<>*/ var accum= function(symbol,xs) { /*<>*/ if(xs) - {var _FH_=xs[2]; - if(_FH_) - { /*<>*/ var - xs$0=_FH_[2], - b=_FH_[1], + {var _GL_=xs[2]; + if(_GL_) + { /*<>*/ var + xs$0=_GL_[2], + b=_GL_[1], a=xs[1], - /*<>*/ _FI_= - /*<>*/ accum(symbol,xs$0); - /*<>*/ return [0, - /*<>*/ caml_call2(symbol,a,b), - _FI_]}} - /*<>*/ return xs}; - /*<>*/ if(xs$0) + /*<>*/ _GM_= + /*<>*/ accum(symbol,xs$0); + /*<>*/ return [0, + /*<>*/ caml_call2(symbol,a,b), + _GM_]}} + /*<>*/ return xs}; + /*<>*/ if(xs$0) {if(xs$0[2]) - { /*<>*/ var - /*<>*/ xs$1= - /*<>*/ accum(symbol,xs$0), + { /*<>*/ var + /*<>*/ xs$1= + /*<>*/ accum(symbol,xs$0), xs$0=xs$1; continue} - /*<>*/ /*<>*/ var x=xs$0[1]; - /*<>*/ return x} - /*<>*/ return z} /*<>*/ } - /*<>*/ function hcat(_FG_) - { /*<>*/ return concatm(empty$5,symbol$2,_FG_)} - /*<>*/ function vcat(_FF_) - { /*<>*/ return concatm(empty$5,symbol$3,_FF_)} - /*<>*/ function zcat(xs) - { /*<>*/ return /*<>*/ caml_call3 - (Stdlib_List[26],symbol$4,xs,empty$5) /*<>*/ } - /*<>*/ function text$0(attr,tx) - { /*<>*/ if(attr) - { /*<>*/ /*<>*/ var a=attr[1]; - /*<>*/ return [1,[0,[0,tx],a]]} - /*<>*/ return [0,tx] /*<>*/ } - /*<>*/ function string(attr,s) - { /*<>*/ /*<>*/ var _FE_=Text[26]; - /*<>*/ return /*<>*/ text$0 - (attr, /*<>*/ caml_call1(_FE_,s)) /*<>*/ } - /*<>*/ function uchars(attr,a) - { /*<>*/ /*<>*/ var _FD_=Text[28]; - /*<>*/ return /*<>*/ text$0 - (attr, /*<>*/ caml_call1(_FD_,a)) /*<>*/ } - /*<>*/ function linspcm(z,symbol,x,n,f) - { /*<>*/ if(n != 0.) + /*<>*/ /*<>*/ var x=xs$0[1]; + /*<>*/ return x} + /*<>*/ return z} /*<>*/ } + /*<>*/ function hcat(_GK_) + { /*<>*/ return concatm(empty$5,symbol$2,_GK_)} + /*<>*/ function vcat(_GJ_) + { /*<>*/ return concatm(empty$5,symbol$3,_GJ_)} + /*<>*/ function zcat(xs) + { /*<>*/ return /*<>*/ caml_call3 + (Stdlib_List[26],symbol$4,xs,empty$5) /*<>*/ } + /*<>*/ function text$0(attr,tx) + { /*<>*/ if(attr) + { /*<>*/ /*<>*/ var a=attr[1]; + /*<>*/ return [1,[0,[0,tx],a]]} + /*<>*/ return [0,tx] /*<>*/ } + /*<>*/ function string(attr,s) + { /*<>*/ /*<>*/ var _GI_=Text[26]; + /*<>*/ return /*<>*/ text$0 + (attr, /*<>*/ caml_call1(_GI_,s)) /*<>*/ } + /*<>*/ function uchars(attr,a) + { /*<>*/ /*<>*/ var _GH_=Text[28]; + /*<>*/ return /*<>*/ text$0 + (attr, /*<>*/ caml_call1(_GH_,a)) /*<>*/ } + /*<>*/ function linspcm(z,symbol,x,n,f) + { /*<>*/ if(n != 0.) {if(n != 1.) - { /*<>*/ var - /*<>*/ m=n / 2., - /*<>*/ _FA_=n - m, - /*<>*/ _FB_=x + m, - /*<>*/ _FC_= - /*<>*/ linspcm(z,symbol,_FB_,_FA_,f); - /*<>*/ return /*<>*/ caml_call2 + { /*<>*/ var + /*<>*/ m=n / 2., + /*<>*/ _GE_=n - m, + /*<>*/ _GF_=x + m, + /*<>*/ _GG_= + /*<>*/ linspcm(z,symbol,_GF_,_GE_,f); + /*<>*/ return /*<>*/ caml_call2 (symbol, - /*<>*/ linspcm(z,symbol,x,m,f), - _FC_)} - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ linspcm(z,symbol,x,m,f), + _GG_)} + /*<>*/ return /*<>*/ caml_call1 (f,x)} - /*<>*/ return z /*<>*/ } - /*<>*/ function tabulate(m,n,f) - { /*<>*/ var - /*<>*/ _Fw_=0., - /*<>*/ _Fx_=Stdlib[17], - /*<>*/ m$0= - /*<>*/ caml_call2(_Fx_,m,_Fw_), - /*<>*/ _Fy_=0., - /*<>*/ _Fz_=Stdlib[17], - /*<>*/ n$0= - /*<>*/ caml_call2(_Fz_,n,_Fy_); - /*<>*/ return /*<>*/ linspcm + /*<>*/ return z /*<>*/ } + /*<>*/ function tabulate(m,n,f) + { /*<>*/ var + /*<>*/ _GA_=0., + /*<>*/ _GB_=Stdlib[17], + /*<>*/ m$0= + /*<>*/ caml_call2(_GB_,m,_GA_), + /*<>*/ _GC_=0., + /*<>*/ _GD_=Stdlib[17], + /*<>*/ n$0= + /*<>*/ caml_call2(_GD_,n,_GC_); + /*<>*/ return /*<>*/ linspcm (empty$5, symbol$3, 0., n$0, function(y) - { /*<>*/ return /*<>*/ linspcm + { /*<>*/ return /*<>*/ linspcm (empty$5, symbol$2, 0., m$0, function(x) - { /*<>*/ return /*<>*/ caml_call2 - (f,x,y) /*<>*/ }) /*<>*/ }) /*<>*/ } - /*<>*/ function chars(ctor,attr,c,w,h) - { /*<>*/ var - /*<>*/ _Fq_=0., - /*<>*/ _Fr_=Stdlib[17], - /*<>*/ w$0= - /*<>*/ caml_call2(_Fr_,_Fq_,w), - /*<>*/ _Fs_=0., - /*<>*/ _Ft_=Stdlib[17], - /*<>*/ h$0= - /*<>*/ caml_call2(_Ft_,_Fs_,h); + { /*<>*/ return /*<>*/ caml_call2 + (f,x,y) /*<>*/ }) /*<>*/ }) /*<>*/ } + /*<>*/ function chars(ctor,attr,c,w,h) + { /*<>*/ var + /*<>*/ _Gu_=0., + /*<>*/ _Gv_=Stdlib[17], + /*<>*/ w$0= + /*<>*/ caml_call2(_Gv_,_Gu_,w), + /*<>*/ _Gw_=0., + /*<>*/ _Gx_=Stdlib[17], + /*<>*/ h$0= + /*<>*/ caml_call2(_Gx_,_Gw_,h); if(! (w$0 < 1.) && ! (h$0 < 1.)) - { /*<>*/ var - /*<>*/ _Fu_= - /*<>*/ caml_call2(ctor,w$0,c), - /*<>*/ line= - /*<>*/ text$0(attr,_Fu_); - /*<>*/ return /*<>*/ tabulate + { /*<>*/ var + /*<>*/ _Gy_= + /*<>*/ caml_call2(ctor,w$0,c), + /*<>*/ line= + /*<>*/ text$0(attr,_Gy_); + /*<>*/ return /*<>*/ tabulate (1., h$0, - function(param,_Fv_) - { /*<>*/ return line /*<>*/ })} - /*<>*/ return /*<>*/ void$0(w$0,h$0) /*<>*/ } - /*<>*/ /*<>*/ var _dL_=Text[29]; - /*<>*/ function char$0(_Fm_,_Fn_,_Fo_,_Fp_) - { /*<>*/ return chars(_dL_,_Fm_,_Fn_,_Fo_,_Fp_)} - /*<>*/ function str_of_box(b) - { /*<>*/ var - /*<>*/ _Fe_=Gg[15][20], - /*<>*/ _Ff_= - /*<>*/ caml_call1(_Fe_,b), - /*<>*/ _Fg_=Gg[15][19], - /*<>*/ _Fh_= - /*<>*/ caml_call1(_Fg_,b), - /*<>*/ _Fi_=Gg[15][7], - /*<>*/ _Fj_= - /*<>*/ caml_call1(_Fi_,b), - /*<>*/ _Fk_=Gg[15][6], - /*<>*/ _Fl_= - /*<>*/ caml_call1(_Fk_,b); - /*<>*/ return /*<>*/ caml_call5 - (Stdlib_Printf[4],_dM_,_Fl_,_Fj_,_Fh_,_Ff_) /*<>*/ } - /*<>*/ function fill_box(vg,color,b) - { /*<>*/ /*<>*/ var _E2_=NVG[15]; - /*<>*/ /*<>*/ caml_call1(_E2_,vg); - /*<>*/ /*<>*/ var _E3_=NVG[32][1]; - /*<>*/ /*<>*/ caml_call1(_E3_,vg); - /*<>*/ var - /*<>*/ _E4_=Gg[15][10], - /*<>*/ _E5_= - /*<>*/ caml_call1(_E4_,b), - /*<>*/ _E6_=Gg[15][9], - /*<>*/ _E7_= - /*<>*/ caml_call1(_E6_,b), - /*<>*/ _E8_=Gg[15][7], - /*<>*/ _E9_= - /*<>*/ caml_call1(_E8_,b), - /*<>*/ _E__=Gg[15][6], - /*<>*/ _E$_= - /*<>*/ caml_call1(_E__,b), - /*<>*/ _Fa_=NVG[32][7]; - /*<>*/ /*<>*/ caml_call5 - (_Fa_,vg,_E$_,_E9_,_E7_,_E5_); - /*<>*/ /*<>*/ var _Fb_=NVG[35]; - /*<>*/ /*<>*/ caml_call2 - (_Fb_,vg,color); - /*<>*/ /*<>*/ var _Fc_=NVG[30]; - /*<>*/ /*<>*/ caml_call1(_Fc_,vg); - /*<>*/ /*<>*/ var _Fd_=NVG[16]; - /*<>*/ /*<>*/ caml_call1(_Fd_,vg); - /*<>*/ return /*<>*/ caml_call1 - (Gg[15][8],b) /*<>*/ } - /*<>*/ function path_box(vg,color,opt,b) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + function(param,_Gz_) + { /*<>*/ return line /*<>*/ })} + /*<>*/ return /*<>*/ void$0(w$0,h$0) /*<>*/ } + /*<>*/ /*<>*/ var _dL_=Text[29]; + /*<>*/ function char$0(_Gq_,_Gr_,_Gs_,_Gt_) + { /*<>*/ return chars(_dL_,_Gq_,_Gr_,_Gs_,_Gt_)} + /*<>*/ function str_of_box(b) + { /*<>*/ var + /*<>*/ _Gi_=Gg[15][20], + /*<>*/ _Gj_= + /*<>*/ caml_call1(_Gi_,b), + /*<>*/ _Gk_=Gg[15][19], + /*<>*/ _Gl_= + /*<>*/ caml_call1(_Gk_,b), + /*<>*/ _Gm_=Gg[15][7], + /*<>*/ _Gn_= + /*<>*/ caml_call1(_Gm_,b), + /*<>*/ _Go_=Gg[15][6], + /*<>*/ _Gp_= + /*<>*/ caml_call1(_Go_,b); + /*<>*/ return /*<>*/ caml_call5 + (Stdlib_Printf[4],_dM_,_Gp_,_Gn_,_Gl_,_Gj_) /*<>*/ } + /*<>*/ function fill_box(vg,color,b) + { /*<>*/ /*<>*/ var _F6_=NVG[15]; + /*<>*/ /*<>*/ caml_call1(_F6_,vg); + /*<>*/ /*<>*/ var _F7_=NVG[32][1]; + /*<>*/ /*<>*/ caml_call1(_F7_,vg); + /*<>*/ var + /*<>*/ _F8_=Gg[15][10], + /*<>*/ _F9_= + /*<>*/ caml_call1(_F8_,b), + /*<>*/ _F__=Gg[15][9], + /*<>*/ _F$_= + /*<>*/ caml_call1(_F__,b), + /*<>*/ _Ga_=Gg[15][7], + /*<>*/ _Gb_= + /*<>*/ caml_call1(_Ga_,b), + /*<>*/ _Gc_=Gg[15][6], + /*<>*/ _Gd_= + /*<>*/ caml_call1(_Gc_,b), + /*<>*/ _Ge_=NVG[32][7]; + /*<>*/ /*<>*/ caml_call5 + (_Ge_,vg,_Gd_,_Gb_,_F$_,_F9_); + /*<>*/ /*<>*/ var _Gf_=NVG[35]; + /*<>*/ /*<>*/ caml_call2 + (_Gf_,vg,color); + /*<>*/ /*<>*/ var _Gg_=NVG[30]; + /*<>*/ /*<>*/ caml_call1(_Gg_,vg); + /*<>*/ /*<>*/ var _Gh_=NVG[16]; + /*<>*/ /*<>*/ caml_call1(_Gh_,vg); + /*<>*/ return /*<>*/ caml_call1 + (Gg[15][8],b) /*<>*/ } + /*<>*/ function path_box(vg,color,opt,b) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], width=sth; else var width=0.; - /*<>*/ /*<>*/ var _EP_=NVG[32][1]; - /*<>*/ /*<>*/ caml_call1(_EP_,vg); - /*<>*/ var - /*<>*/ _EQ_=Gg[15][10], - /*<>*/ _ER_= - /*<>*/ caml_call1(_EQ_,b), - /*<>*/ _ES_=Gg[15][9], - /*<>*/ _ET_= - /*<>*/ caml_call1(_ES_,b), - /*<>*/ _EU_=Gg[15][7], - /*<>*/ _EV_= - /*<>*/ caml_call1(_EU_,b), - /*<>*/ _EW_=Gg[15][6], - /*<>*/ _EX_= - /*<>*/ caml_call1(_EW_,b), - /*<>*/ _EY_=NVG[32][7]; - /*<>*/ /*<>*/ caml_call5 - (_EY_,vg,_EX_,_EV_,_ET_,_ER_); - /*<>*/ if(0. !== width) - { /*<>*/ /*<>*/ var _EZ_=NVG[21]; - /*<>*/ /*<>*/ caml_call2 - (_EZ_,vg,width)} - /*<>*/ /*<>*/ var _E0_=NVG[37]; - /*<>*/ /*<>*/ caml_call2 - (_E0_,vg,color); - /*<>*/ /*<>*/ var _E1_=NVG[31]; - /*<>*/ /*<>*/ caml_call1(_E1_,vg); - /*<>*/ return /*<>*/ caml_call1 - (Gg[15][8],b) /*<>*/ } - /*<>*/ function vcat$0(d,a,b) - { /*<>*/ if(89 === d) - { /*<>*/ var - /*<>*/ _Ei_=Gg[2][5], - /*<>*/ _Ej_= - /*<>*/ caml_call1(_Ei_,b), - /*<>*/ _Ek_=Gg[2][5], - /*<>*/ _El_= - /*<>*/ caml_call1(_Ek_,a), - /*<>*/ _Em_=_El_ + _Ej_, - /*<>*/ _En_=Gg[2][4], - /*<>*/ _Eo_= - /*<>*/ caml_call1(_En_,b), - /*<>*/ _Ep_=Gg[2][4], - /*<>*/ _Eq_= - /*<>*/ caml_call1(_Ep_,a), - /*<>*/ _Er_=Gg[1][25], - /*<>*/ _Es_= - /*<>*/ caml_call2(_Er_,_Eq_,_Eo_); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_Es_,_Em_)} + /*<>*/ /*<>*/ var _FT_=NVG[32][1]; + /*<>*/ /*<>*/ caml_call1(_FT_,vg); + /*<>*/ var + /*<>*/ _FU_=Gg[15][10], + /*<>*/ _FV_= + /*<>*/ caml_call1(_FU_,b), + /*<>*/ _FW_=Gg[15][9], + /*<>*/ _FX_= + /*<>*/ caml_call1(_FW_,b), + /*<>*/ _FY_=Gg[15][7], + /*<>*/ _FZ_= + /*<>*/ caml_call1(_FY_,b), + /*<>*/ _F0_=Gg[15][6], + /*<>*/ _F1_= + /*<>*/ caml_call1(_F0_,b), + /*<>*/ _F2_=NVG[32][7]; + /*<>*/ /*<>*/ caml_call5 + (_F2_,vg,_F1_,_FZ_,_FX_,_FV_); + /*<>*/ if(0. !== width) + { /*<>*/ /*<>*/ var _F3_=NVG[21]; + /*<>*/ /*<>*/ caml_call2 + (_F3_,vg,width)} + /*<>*/ /*<>*/ var _F4_=NVG[37]; + /*<>*/ /*<>*/ caml_call2 + (_F4_,vg,color); + /*<>*/ /*<>*/ var _F5_=NVG[31]; + /*<>*/ /*<>*/ caml_call1(_F5_,vg); + /*<>*/ return /*<>*/ caml_call1 + (Gg[15][8],b) /*<>*/ } + /*<>*/ function vcat$0(d,a,b) + { /*<>*/ if(89 === d) + { /*<>*/ var + /*<>*/ _Fm_=Gg[2][5], + /*<>*/ _Fn_= + /*<>*/ caml_call1(_Fm_,b), + /*<>*/ _Fo_=Gg[2][5], + /*<>*/ _Fp_= + /*<>*/ caml_call1(_Fo_,a), + /*<>*/ _Fq_=_Fp_ + _Fn_, + /*<>*/ _Fr_=Gg[2][4], + /*<>*/ _Fs_= + /*<>*/ caml_call1(_Fr_,b), + /*<>*/ _Ft_=Gg[2][4], + /*<>*/ _Fu_= + /*<>*/ caml_call1(_Ft_,a), + /*<>*/ _Fv_=Gg[1][25], + /*<>*/ _Fw_= + /*<>*/ caml_call2(_Fv_,_Fu_,_Fs_); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_Fw_,_Fq_)} if(90 <= d) - { /*<>*/ var - /*<>*/ _Et_=Gg[2][5], - /*<>*/ _Eu_= - /*<>*/ caml_call1(_Et_,b), - /*<>*/ _Ev_=Gg[2][5], - /*<>*/ _Ew_= - /*<>*/ caml_call1(_Ev_,a), - /*<>*/ _Ex_=Gg[1][25], - /*<>*/ _Ey_= - /*<>*/ caml_call2(_Ex_,_Ew_,_Eu_), - /*<>*/ _Ez_=Gg[2][4], - /*<>*/ _EA_= - /*<>*/ caml_call1(_Ez_,b), - /*<>*/ _EB_=Gg[2][4], - /*<>*/ _EC_= - /*<>*/ caml_call1(_EB_,a), - /*<>*/ _ED_=Gg[1][25], - /*<>*/ _EE_= - /*<>*/ caml_call2(_ED_,_EC_,_EA_); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_EE_,_Ey_)} - /*<>*/ var - /*<>*/ _EF_=Gg[2][5], - /*<>*/ _EG_= - /*<>*/ caml_call1(_EF_,b), - /*<>*/ _EH_=Gg[2][5], - /*<>*/ _EI_= - /*<>*/ caml_call1(_EH_,a), - /*<>*/ _EJ_=Gg[1][25], - /*<>*/ _EK_= - /*<>*/ caml_call2(_EJ_,_EI_,_EG_), - /*<>*/ _EL_=Gg[2][4], - /*<>*/ _EM_= - /*<>*/ caml_call1(_EL_,b), - /*<>*/ _EN_=Gg[2][4], - /*<>*/ _EO_= - /*<>*/ caml_call1(_EN_,a); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_EO_ + _EM_,_EK_) /*<>*/ } - /*<>*/ function pp$3(opt,ppf) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + { /*<>*/ var + /*<>*/ _Fx_=Gg[2][5], + /*<>*/ _Fy_= + /*<>*/ caml_call1(_Fx_,b), + /*<>*/ _Fz_=Gg[2][5], + /*<>*/ _FA_= + /*<>*/ caml_call1(_Fz_,a), + /*<>*/ _FB_=Gg[1][25], + /*<>*/ _FC_= + /*<>*/ caml_call2(_FB_,_FA_,_Fy_), + /*<>*/ _FD_=Gg[2][4], + /*<>*/ _FE_= + /*<>*/ caml_call1(_FD_,b), + /*<>*/ _FF_=Gg[2][4], + /*<>*/ _FG_= + /*<>*/ caml_call1(_FF_,a), + /*<>*/ _FH_=Gg[1][25], + /*<>*/ _FI_= + /*<>*/ caml_call2(_FH_,_FG_,_FE_); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_FI_,_FC_)} + /*<>*/ var + /*<>*/ _FJ_=Gg[2][5], + /*<>*/ _FK_= + /*<>*/ caml_call1(_FJ_,b), + /*<>*/ _FL_=Gg[2][5], + /*<>*/ _FM_= + /*<>*/ caml_call1(_FL_,a), + /*<>*/ _FN_=Gg[1][25], + /*<>*/ _FO_= + /*<>*/ caml_call2(_FN_,_FM_,_FK_), + /*<>*/ _FP_=Gg[2][4], + /*<>*/ _FQ_= + /*<>*/ caml_call1(_FP_,b), + /*<>*/ _FR_=Gg[2][4], + /*<>*/ _FS_= + /*<>*/ caml_call1(_FR_,a); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][2],_FS_ + _FQ_,_FO_) /*<>*/ } + /*<>*/ function pp$3(opt,ppf) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], attr=sth; else var attr=Style[4]; - /*<>*/ /*<>*/ var _DP_=[0,attr]; - /*<>*/ function _DQ_(_Eh_) - { /*<>*/ return pp$3(_DP_,_Eh_)} - /*<>*/ var - /*<>*/ _DR_=Fmt[37], - /*<>*/ _DS_= - /*<>*/ caml_call1(_DR_,_DQ_), - /*<>*/ _DT_=[0,attr]; - /*<>*/ function _DU_(_Eg_) - { /*<>*/ return pp$3(_DT_,_Eg_)} - /*<>*/ var - /*<>*/ _DV_=Fmt[37], - /*<>*/ _DW_= - /*<>*/ caml_call1(_DV_,_DU_), - /*<>*/ _DX_=0, - /*<>*/ _DY_=Fmt[61], - /*<>*/ compose= - /*<>*/ caml_call3(_DY_,_DX_,_DW_,_DS_); - /*<>*/ return function(param) - { /*<>*/ if(typeof param === "number") - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ /*<>*/ var _ET_=[0,attr]; + /*<>*/ function _EU_(_Fl_) + { /*<>*/ return pp$3(_ET_,_Fl_)} + /*<>*/ var + /*<>*/ _EV_=Fmt[37], + /*<>*/ _EW_= + /*<>*/ caml_call1(_EV_,_EU_), + /*<>*/ _EX_=[0,attr]; + /*<>*/ function _EY_(_Fk_) + { /*<>*/ return pp$3(_EX_,_Fk_)} + /*<>*/ var + /*<>*/ _EZ_=Fmt[37], + /*<>*/ _E0_= + /*<>*/ caml_call1(_EZ_,_EY_), + /*<>*/ _E1_=0, + /*<>*/ _E2_=Fmt[61], + /*<>*/ compose= + /*<>*/ caml_call3(_E2_,_E1_,_E0_,_EW_); + /*<>*/ return function(param) + { /*<>*/ if(typeof param === "number") + /*<>*/ return /*<>*/ caml_call2 (Fmt[21],_dN_,ppf); else - /*<>*/ switch(param[0]) + /*<>*/ switch(param[0]) {case 0: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var v= param[1]; - /*<>*/ return /*<>*/ caml_call4 + /*<>*/ return /*<>*/ caml_call4 (Fmt[21],_dO_,ppf,Text[30],v); case 1: - /*<>*/ var + /*<>*/ var match=param[1], a=match[2], t=match[1], - _DZ_=Style[7], - /*<>*/ _D0_= - [0, /*<>*/ caml_call2(_DZ_,attr,a),t], - /*<>*/ _D1_=Style[7], - /*<>*/ _D2_= - [0, /*<>*/ caml_call2(_D1_,attr,a)], - /*<>*/ _D3_= - function(_Ef_){ /*<>*/ return pp$3(_D2_,_Ef_)}, - /*<>*/ _D4_=Style[2], - /*<>*/ _D5_=[0,Fmt[25]], - /*<>*/ _D6_=Fmt[61], - /*<>*/ _D7_= - /*<>*/ caml_call3(_D6_,_D5_,_D4_,_D3_); - /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_dP_,ppf,_D7_,_D0_); + _E3_=Style[7], + /*<>*/ _E4_= + [0, /*<>*/ caml_call2(_E3_,attr,a),t], + /*<>*/ _E5_=Style[7], + /*<>*/ _E6_= + [0, /*<>*/ caml_call2(_E5_,attr,a)], + /*<>*/ _E7_= + function(_Fj_){ /*<>*/ return pp$3(_E6_,_Fj_)}, + /*<>*/ _E8_=Style[2], + /*<>*/ _E9_=[0,Fmt[25]], + /*<>*/ _E__=Fmt[61], + /*<>*/ _E$_= + /*<>*/ caml_call3(_E__,_E9_,_E8_,_E7_); + /*<>*/ return /*<>*/ caml_call4 + (Fmt[21],_dP_,ppf,_E$_,_E4_); case 2: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var a$0= param[1]; - /*<>*/ return /*<>*/ caml_call4 + /*<>*/ return /*<>*/ caml_call4 (Fmt[21],_dQ_,ppf,compose,a$0); case 3: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var a$1= param[1]; - /*<>*/ return /*<>*/ caml_call4 + /*<>*/ return /*<>*/ caml_call4 (Fmt[21],_dR_,ppf,compose,a$1); case 4: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var a$2= param[1]; - /*<>*/ return /*<>*/ caml_call4 + /*<>*/ return /*<>*/ caml_call4 (Fmt[21],_dS_,ppf,compose,a$2); case 5: - /*<>*/ var + /*<>*/ var match$0=param[1], right=match$0[3], left=match$0[2], t$0=match$0[1], - _D8_=[0,attr], - /*<>*/ _D9_= - function(_Ee_){ /*<>*/ return pp$3(_D8_,_Ee_)}; - /*<>*/ return /*<>*/ caml_call6 - (Fmt[21],_dT_,ppf,left,right,_D9_,t$0); + _Fa_=[0,attr], + /*<>*/ _Fb_= + function(_Fi_){ /*<>*/ return pp$3(_Fa_,_Fi_)}; + /*<>*/ return /*<>*/ caml_call6 + (Fmt[21],_dT_,ppf,left,right,_Fb_,t$0); case 6: - /*<>*/ var + /*<>*/ var match$1=param[1], bottom=match$1[3], top=match$1[2], t$1=match$1[1], - _D__=[0,attr], - /*<>*/ _D$_= - function(_Ed_){ /*<>*/ return pp$3(_D__,_Ed_)}; - /*<>*/ return /*<>*/ caml_call6 - (Fmt[21],_dU_,ppf,top,bottom,_D$_,t$1); + _Fc_=[0,attr], + /*<>*/ _Fd_= + function(_Fh_){ /*<>*/ return pp$3(_Fc_,_Fh_)}; + /*<>*/ return /*<>*/ caml_call6 + (Fmt[21],_dU_,ppf,top,bottom,_Fd_,t$1); default: - /*<>*/ var - /*<>*/ dim=param[1], - /*<>*/ _Ea_=Gg[2][52], - /*<>*/ _Eb_=Fmt[37], - /*<>*/ _Ec_= - /*<>*/ caml_call1(_Eb_,_Ea_); - /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_dV_,ppf,_Ec_,dim)} /*<>*/ } /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ var + /*<>*/ dim=param[1], + /*<>*/ _Fe_=Gg[2][52], + /*<>*/ _Ff_=Fmt[37], + /*<>*/ _Fg_= + /*<>*/ caml_call1(_Ff_,_Fe_); + /*<>*/ return /*<>*/ caml_call4 + (Fmt[21],_dV_,ppf,_Fg_,dim)} /*<>*/ } /*<>*/ } + /*<>*/ /*<>*/ var segment_kern_cache= [0,[0,Gg[15][11],cst$4]]; - /*<>*/ function segment(vg,p,param) - { /*<>*/ var + /*<>*/ function segment(vg,p,param) + { /*<>*/ var s=param[1], - _Dz_=NVG[39][13], - /*<>*/ metrics= - /*<>*/ caml_call1(_Dz_,vg), - /*<>*/ _DA_=0, - /*<>*/ _DB_=0, - /*<>*/ _DC_=metrics[1], - /*<>*/ _DD_=Gg[2][5], - /*<>*/ _DE_= - /*<>*/ caml_call1(_DD_,p), - /*<>*/ _DF_=_DE_ + _DC_, - /*<>*/ _DG_=Gg[2][4], - /*<>*/ _DH_= - /*<>*/ caml_call1(_DG_,p), - /*<>*/ _DI_=NVG[39][1]; - /*<>*/ /*<>*/ caml_call6 - (_DI_,vg,_DH_,_DF_,_DB_,_DA_,s); - /*<>*/ var - /*<>*/ _DJ_=metrics[3], - /*<>*/ _DK_=Text[26], - /*<>*/ _DL_= - /*<>*/ caml_call1(_DK_,s), - /*<>*/ _DM_= - /*<>*/ bounds_segment(vg,p,_DL_)[2], - /*<>*/ _DN_=Gg[2][2], - /*<>*/ sz= - /*<>*/ caml_call2(_DN_,_DM_,_DJ_), - /*<>*/ _DO_=Gg[15][2]; - /*<>*/ segment_kern_cache[1] + _ED_=NVG[39][13], + /*<>*/ metrics= + /*<>*/ caml_call1(_ED_,vg), + /*<>*/ _EE_=0, + /*<>*/ _EF_=0, + /*<>*/ _EG_=metrics[1], + /*<>*/ _EH_=Gg[2][5], + /*<>*/ _EI_= + /*<>*/ caml_call1(_EH_,p), + /*<>*/ _EJ_=_EI_ + _EG_, + /*<>*/ _EK_=Gg[2][4], + /*<>*/ _EL_= + /*<>*/ caml_call1(_EK_,p), + /*<>*/ _EM_=NVG[39][1]; + /*<>*/ /*<>*/ caml_call6 + (_EM_,vg,_EL_,_EJ_,_EF_,_EE_,s); + /*<>*/ var + /*<>*/ _EN_=metrics[3], + /*<>*/ _EO_=Text[26], + /*<>*/ _EP_= + /*<>*/ caml_call1(_EO_,s), + /*<>*/ _EQ_= + /*<>*/ bounds_segment(vg,p,_EP_)[2], + /*<>*/ _ER_=Gg[2][2], + /*<>*/ sz= + /*<>*/ caml_call2(_ER_,_EQ_,_EN_), + /*<>*/ _ES_=Gg[15][2]; + /*<>*/ segment_kern_cache[1] = - [0, /*<>*/ caml_call2(_DO_,p,sz),s]; - /*<>*/ return sz} - /*<>*/ function node(vg,attr,p,n) + [0, /*<>*/ caml_call2(_ES_,p,sz),s]; + /*<>*/ return sz} + /*<>*/ function node(vg,attr,p,n) { /*<>*/ var switch$0=0; - /*<>*/ if(typeof n === "number") + /*<>*/ if(typeof n === "number") switch$0 = 1; else - /*<>*/ switch(n[0]) + /*<>*/ switch(n[0]) {case 0: - /*<>*/ var - /*<>*/ text=n[1], - b= /*<>*/ segment(vg,p,text); + /*<>*/ var + /*<>*/ text=n[1], + b= /*<>*/ segment(vg,p,text); break; case 1: - /*<>*/ var + /*<>*/ var match=n[1], a=match[2], i=match[1], - _B8_=Style[7], - /*<>*/ a0= - /*<>*/ caml_call2(_B8_,attr,a), - /*<>*/ _B9_=a[2] !== attr[2]?1:0, - /*<>*/ _B__=_B9_?a0[2] !== NVG[40][5]?1:0:_B9_; - /*<>*/ if(_B__) - { /*<>*/ var - /*<>*/ _B$_= - /*<>*/ size$0(vg,p,i), - /*<>*/ _Ca_=Gg[15][2], - /*<>*/ _Cb_= - /*<>*/ caml_call2(_Ca_,p,_B$_), - /*<>*/ _Cc_=a0[2]; - /*<>*/ /*<>*/ fill_box - (vg,_Cc_,_Cb_)} - /*<>*/ if(attr[1] !== a[1]) - { /*<>*/ var - /*<>*/ _Cd_=a0[1], - /*<>*/ _Ce_=NVG[35]; - /*<>*/ /*<>*/ caml_call2 - (_Ce_,vg,_Cd_); - /*<>*/ var - /*<>*/ _Cf_=a0[1], - /*<>*/ _Cg_=NVG[37]; - /*<>*/ /*<>*/ caml_call2 - (_Cg_,vg,_Cf_)} - /*<>*/ var + _Da_=Style[7], + /*<>*/ a0= + /*<>*/ caml_call2(_Da_,attr,a), + /*<>*/ _Db_=a[2] !== attr[2]?1:0, + /*<>*/ _Dc_=_Db_?a0[2] !== NVG[40][5]?1:0:_Db_; + /*<>*/ if(_Dc_) + { /*<>*/ var + /*<>*/ _Dd_= + /*<>*/ size$0(vg,p,i), + /*<>*/ _De_=Gg[15][2], + /*<>*/ _Df_= + /*<>*/ caml_call2(_De_,p,_Dd_), + /*<>*/ _Dg_=a0[2]; + /*<>*/ /*<>*/ fill_box + (vg,_Dg_,_Df_)} + /*<>*/ if(attr[1] !== a[1]) + { /*<>*/ var + /*<>*/ _Dh_=a0[1], + /*<>*/ _Di_=NVG[35]; + /*<>*/ /*<>*/ caml_call2 + (_Di_,vg,_Dh_); + /*<>*/ var + /*<>*/ _Dj_=a0[1], + /*<>*/ _Dk_=NVG[37]; + /*<>*/ /*<>*/ caml_call2 + (_Dk_,vg,_Dj_)} + /*<>*/ var b= - /*<>*/ node(vg,a0,p,i); + /*<>*/ node(vg,a0,p,i); break; case 2: - /*<>*/ var + /*<>*/ var match$0=n[1], i2=match$0[2], i1=match$0[1], - /*<>*/ p1= - /*<>*/ node(vg,attr,p,i1), - /*<>*/ _Ch_=0., - /*<>*/ _Ci_=Gg[2][4], - /*<>*/ _Cj_= - /*<>*/ caml_call1(_Ci_,p1), - /*<>*/ _Ck_=Gg[2][2], - /*<>*/ _Cl_= - /*<>*/ caml_call2(_Ck_,_Cj_,_Ch_), - /*<>*/ _Cm_=Gg[2][36], - /*<>*/ _Cn_= - /*<>*/ caml_call2(_Cm_,p,_Cl_), - /*<>*/ p2= - /*<>*/ node(vg,attr,_Cn_,i2), - /*<>*/ _Co_=Gg[2][5], - /*<>*/ _Cp_= - /*<>*/ caml_call1(_Co_,p2), - /*<>*/ _Cq_=Gg[2][5], - /*<>*/ _Cr_= - /*<>*/ caml_call1(_Cq_,p1), - /*<>*/ _Cs_=Gg[1][22], - /*<>*/ _Ct_= - /*<>*/ caml_call2(_Cs_,_Cr_,_Cp_), - /*<>*/ _Cu_=Gg[2][4], - /*<>*/ _Cv_= - /*<>*/ caml_call1(_Cu_,p2), - /*<>*/ _Cw_=Gg[2][4], - /*<>*/ _Cx_= - /*<>*/ caml_call1(_Cw_,p1), - /*<>*/ _Cy_=_Cx_ + _Cv_, - /*<>*/ _Cz_=Gg[2][2], - b= /*<>*/ caml_call2(_Cz_,_Cy_,_Ct_); + /*<>*/ p1= + /*<>*/ node(vg,attr,p,i1), + /*<>*/ _Dl_=0., + /*<>*/ _Dm_=Gg[2][4], + /*<>*/ _Dn_= + /*<>*/ caml_call1(_Dm_,p1), + /*<>*/ _Do_=Gg[2][2], + /*<>*/ _Dp_= + /*<>*/ caml_call2(_Do_,_Dn_,_Dl_), + /*<>*/ _Dq_=Gg[2][36], + /*<>*/ _Dr_= + /*<>*/ caml_call2(_Dq_,p,_Dp_), + /*<>*/ p2= + /*<>*/ node(vg,attr,_Dr_,i2), + /*<>*/ _Ds_=Gg[2][5], + /*<>*/ _Dt_= + /*<>*/ caml_call1(_Ds_,p2), + /*<>*/ _Du_=Gg[2][5], + /*<>*/ _Dv_= + /*<>*/ caml_call1(_Du_,p1), + /*<>*/ _Dw_=Gg[1][22], + /*<>*/ _Dx_= + /*<>*/ caml_call2(_Dw_,_Dv_,_Dt_), + /*<>*/ _Dy_=Gg[2][4], + /*<>*/ _Dz_= + /*<>*/ caml_call1(_Dy_,p2), + /*<>*/ _DA_=Gg[2][4], + /*<>*/ _DB_= + /*<>*/ caml_call1(_DA_,p1), + /*<>*/ _DC_=_DB_ + _Dz_, + /*<>*/ _DD_=Gg[2][2], + b= /*<>*/ caml_call2(_DD_,_DC_,_Dx_); break; case 3: - /*<>*/ var + /*<>*/ var match$1=n[1], i2$0=match$1[2], i1$0=match$1[1], - /*<>*/ p1$0= - /*<>*/ node(vg,attr,p,i1$0), - /*<>*/ _CA_=Gg[2][5], - /*<>*/ _CB_= - /*<>*/ caml_call1(_CA_,p1$0), - /*<>*/ _CC_=0., - /*<>*/ _CD_=Gg[2][2], - /*<>*/ _CE_= - /*<>*/ caml_call2(_CD_,_CC_,_CB_), - /*<>*/ _CF_=Gg[2][36], - /*<>*/ _CG_= - /*<>*/ caml_call2(_CF_,p,_CE_), - /*<>*/ p2$0= - /*<>*/ node(vg,attr,_CG_,i2$0), - /*<>*/ _CH_=Gg[2][5], - /*<>*/ _CI_= - /*<>*/ caml_call1(_CH_,p2$0), - /*<>*/ _CJ_=Gg[2][5], - /*<>*/ _CK_= - /*<>*/ caml_call1(_CJ_,p1$0), - /*<>*/ _CL_=_CK_ + _CI_, - /*<>*/ _CM_=Gg[2][4], - /*<>*/ _CN_= - /*<>*/ caml_call1(_CM_,p2$0), - /*<>*/ _CO_=Gg[2][4], - /*<>*/ _CP_= - /*<>*/ caml_call1(_CO_,p1$0), - /*<>*/ _CQ_=Gg[1][22], - /*<>*/ _CR_= - /*<>*/ caml_call2(_CQ_,_CP_,_CN_), - /*<>*/ _CS_=Gg[2][2], - b= /*<>*/ caml_call2(_CS_,_CR_,_CL_); + /*<>*/ p1$0= + /*<>*/ node(vg,attr,p,i1$0), + /*<>*/ _DE_=Gg[2][5], + /*<>*/ _DF_= + /*<>*/ caml_call1(_DE_,p1$0), + /*<>*/ _DG_=0., + /*<>*/ _DH_=Gg[2][2], + /*<>*/ _DI_= + /*<>*/ caml_call2(_DH_,_DG_,_DF_), + /*<>*/ _DJ_=Gg[2][36], + /*<>*/ _DK_= + /*<>*/ caml_call2(_DJ_,p,_DI_), + /*<>*/ p2$0= + /*<>*/ node(vg,attr,_DK_,i2$0), + /*<>*/ _DL_=Gg[2][5], + /*<>*/ _DM_= + /*<>*/ caml_call1(_DL_,p2$0), + /*<>*/ _DN_=Gg[2][5], + /*<>*/ _DO_= + /*<>*/ caml_call1(_DN_,p1$0), + /*<>*/ _DP_=_DO_ + _DM_, + /*<>*/ _DQ_=Gg[2][4], + /*<>*/ _DR_= + /*<>*/ caml_call1(_DQ_,p2$0), + /*<>*/ _DS_=Gg[2][4], + /*<>*/ _DT_= + /*<>*/ caml_call1(_DS_,p1$0), + /*<>*/ _DU_=Gg[1][22], + /*<>*/ _DV_= + /*<>*/ caml_call2(_DU_,_DT_,_DR_), + /*<>*/ _DW_=Gg[2][2], + b= /*<>*/ caml_call2(_DW_,_DV_,_DP_); break; case 4: - /*<>*/ var + /*<>*/ var match$2=n[1], i2$1=match$2[2], i1$1=match$2[1], - /*<>*/ p1$1= - /*<>*/ node(vg,attr,p,i1$1), - /*<>*/ p2$1= - /*<>*/ node(vg,attr,p,i2$1), - b= /*<>*/ p2_max(p1$1,p2$1); + /*<>*/ p1$1= + /*<>*/ node(vg,attr,p,i1$1), + /*<>*/ p2$1= + /*<>*/ node(vg,attr,p,i2$1), + b= /*<>*/ p2_max(p1$1,p2$1); break; case 5: - /*<>*/ var + /*<>*/ var match$3=n[1], right=match$3[3], left=match$3[2], i$0=match$3[1], - /*<>*/ p0= - /*<>*/ size$0(vg,p,i$0), - /*<>*/ _CT_=NVG[15]; - /*<>*/ /*<>*/ caml_call1 - (_CT_,vg); - /*<>*/ var - /*<>*/ _CU_=Gg[2][5], - /*<>*/ _CV_= - /*<>*/ caml_call1(_CU_,p0), - /*<>*/ _CW_=Gg[2][4], - /*<>*/ _CX_= - /*<>*/ caml_call1(_CW_,p0), - /*<>*/ _CY_=_CX_ - right, - /*<>*/ _CZ_=Gg[2][5], - /*<>*/ _C0_= - /*<>*/ caml_call1(_CZ_,p), - /*<>*/ _C1_=Gg[2][4], - /*<>*/ _C2_= - /*<>*/ caml_call1(_C1_,p), - /*<>*/ _C3_=NVG[28][1]; - /*<>*/ /*<>*/ caml_call5 - (_C3_,vg,_C2_,_C0_,_CY_,_CV_); - /*<>*/ var - /*<>*/ _C4_=0., - /*<>*/ _C5_=Gg[2][2], - /*<>*/ _C6_= - /*<>*/ caml_call2(_C5_,left,_C4_), - /*<>*/ _C7_=Gg[2][37], - /*<>*/ _C8_= - /*<>*/ caml_call2(_C7_,p,_C6_), - /*<>*/ p1$2= - /*<>*/ node(vg,attr,_C8_,i$0), - /*<>*/ _C9_=NVG[16]; - /*<>*/ /*<>*/ caml_call1 - (_C9_,vg); - /*<>*/ var - /*<>*/ _C__=0., - /*<>*/ _C$_=left + right, - /*<>*/ _Da_=Gg[2][2], - /*<>*/ _Db_= - /*<>*/ caml_call2(_Da_,_C$_,_C__), - /*<>*/ _Dc_=Gg[2][37], - b= /*<>*/ caml_call2(_Dc_,p1$2,_Db_); + /*<>*/ p0= + /*<>*/ size$0(vg,p,i$0), + /*<>*/ _DX_=NVG[15]; + /*<>*/ /*<>*/ caml_call1 + (_DX_,vg); + /*<>*/ var + /*<>*/ _DY_=Gg[2][5], + /*<>*/ _DZ_= + /*<>*/ caml_call1(_DY_,p0), + /*<>*/ _D0_=Gg[2][4], + /*<>*/ _D1_= + /*<>*/ caml_call1(_D0_,p0), + /*<>*/ _D2_=_D1_ - right, + /*<>*/ _D3_=Gg[2][5], + /*<>*/ _D4_= + /*<>*/ caml_call1(_D3_,p), + /*<>*/ _D5_=Gg[2][4], + /*<>*/ _D6_= + /*<>*/ caml_call1(_D5_,p), + /*<>*/ _D7_=NVG[28][1]; + /*<>*/ /*<>*/ caml_call5 + (_D7_,vg,_D6_,_D4_,_D2_,_DZ_); + /*<>*/ var + /*<>*/ _D8_=0., + /*<>*/ _D9_=Gg[2][2], + /*<>*/ _D__= + /*<>*/ caml_call2(_D9_,left,_D8_), + /*<>*/ _D$_=Gg[2][37], + /*<>*/ _Ea_= + /*<>*/ caml_call2(_D$_,p,_D__), + /*<>*/ p1$2= + /*<>*/ node(vg,attr,_Ea_,i$0), + /*<>*/ _Eb_=NVG[16]; + /*<>*/ /*<>*/ caml_call1 + (_Eb_,vg); + /*<>*/ var + /*<>*/ _Ec_=0., + /*<>*/ _Ed_=left + right, + /*<>*/ _Ee_=Gg[2][2], + /*<>*/ _Ef_= + /*<>*/ caml_call2(_Ee_,_Ed_,_Ec_), + /*<>*/ _Eg_=Gg[2][37], + b= /*<>*/ caml_call2(_Eg_,p1$2,_Ef_); break; case 6: - /*<>*/ var + /*<>*/ var match$4=n[1], bottom=match$4[3], top=match$4[2], i$1=match$4[1], - /*<>*/ p0$0= - /*<>*/ size$0(vg,p,i$1), - /*<>*/ _Dd_=NVG[15]; - /*<>*/ /*<>*/ caml_call1 - (_Dd_,vg); - /*<>*/ var - /*<>*/ _De_=Gg[2][5], - /*<>*/ _Df_= - /*<>*/ caml_call1(_De_,p0$0), - /*<>*/ _Dg_=_Df_ - bottom, - /*<>*/ _Dh_=Gg[2][4], - /*<>*/ _Di_= - /*<>*/ caml_call1(_Dh_,p0$0), - /*<>*/ _Dj_=Gg[2][5], - /*<>*/ _Dk_= - /*<>*/ caml_call1(_Dj_,p), - /*<>*/ _Dl_=Gg[2][4], - /*<>*/ _Dm_= - /*<>*/ caml_call1(_Dl_,p), - /*<>*/ _Dn_=NVG[28][1]; - /*<>*/ /*<>*/ caml_call5 - (_Dn_,vg,_Dm_,_Dk_,_Di_,_Dg_); - /*<>*/ var - /*<>*/ _Do_=0., - /*<>*/ _Dp_=Gg[2][2], - /*<>*/ _Dq_= - /*<>*/ caml_call2(_Dp_,_Do_,top), - /*<>*/ _Dr_=Gg[2][37], - /*<>*/ _Ds_= - /*<>*/ caml_call2(_Dr_,p,_Dq_), - /*<>*/ p1$3= - /*<>*/ node(vg,attr,_Ds_,i$1), - /*<>*/ _Dt_=NVG[16]; - /*<>*/ /*<>*/ caml_call1 - (_Dt_,vg); - /*<>*/ var - /*<>*/ _Du_=top + bottom, - /*<>*/ _Dv_=0., - /*<>*/ _Dw_=Gg[2][2], - /*<>*/ _Dx_= - /*<>*/ caml_call2(_Dw_,_Dv_,_Du_), - /*<>*/ _Dy_=Gg[2][37], - b= /*<>*/ caml_call2(_Dy_,p1$3,_Dx_); + /*<>*/ p0$0= + /*<>*/ size$0(vg,p,i$1), + /*<>*/ _Eh_=NVG[15]; + /*<>*/ /*<>*/ caml_call1 + (_Eh_,vg); + /*<>*/ var + /*<>*/ _Ei_=Gg[2][5], + /*<>*/ _Ej_= + /*<>*/ caml_call1(_Ei_,p0$0), + /*<>*/ _Ek_=_Ej_ - bottom, + /*<>*/ _El_=Gg[2][4], + /*<>*/ _Em_= + /*<>*/ caml_call1(_El_,p0$0), + /*<>*/ _En_=Gg[2][5], + /*<>*/ _Eo_= + /*<>*/ caml_call1(_En_,p), + /*<>*/ _Ep_=Gg[2][4], + /*<>*/ _Eq_= + /*<>*/ caml_call1(_Ep_,p), + /*<>*/ _Er_=NVG[28][1]; + /*<>*/ /*<>*/ caml_call5 + (_Er_,vg,_Eq_,_Eo_,_Em_,_Ek_); + /*<>*/ var + /*<>*/ _Es_=0., + /*<>*/ _Et_=Gg[2][2], + /*<>*/ _Eu_= + /*<>*/ caml_call2(_Et_,_Es_,top), + /*<>*/ _Ev_=Gg[2][37], + /*<>*/ _Ew_= + /*<>*/ caml_call2(_Ev_,p,_Eu_), + /*<>*/ p1$3= + /*<>*/ node(vg,attr,_Ew_,i$1), + /*<>*/ _Ex_=NVG[16]; + /*<>*/ /*<>*/ caml_call1 + (_Ex_,vg); + /*<>*/ var + /*<>*/ _Ey_=top + bottom, + /*<>*/ _Ez_=0., + /*<>*/ _EA_=Gg[2][2], + /*<>*/ _EB_= + /*<>*/ caml_call2(_EA_,_Ez_,_Ey_), + /*<>*/ _EC_=Gg[2][37], + b= /*<>*/ caml_call2(_EC_,p1$3,_EB_); break; default:switch$0 = 1} - /*<>*/ if(switch$0)var b=p; - /*<>*/ return b /*<>*/ } - /*<>*/ var - /*<>*/ Draw= + /*<>*/ if(switch$0)var b=p; + /*<>*/ return b /*<>*/ } + /*<>*/ var + /*<>*/ Draw= [0, str_of_box, fill_box, @@ -568344,7 +568301,7 @@ segment_kern_cache, segment, node], - /*<>*/ I= + /*<>*/ I= [0, p2_max, bounds_segment, @@ -568373,58 +568330,72 @@ chars, char$0, Draw]; - /*<>*/ function maxi(x,y) - { /*<>*/ return y < x?x:y /*<>*/ } - /*<>*/ function mini(x,y) - { /*<>*/ return x < y?x:y /*<>*/ } - /*<>*/ function make$0(param) - { /*<>*/ var - /*<>*/ _B2_=0, - /*<>*/ _B3_=Lwd[10], - /*<>*/ v= - /*<>*/ caml_call1(_B3_,_B2_); - /*<>*/ function _B4_(i) - { /*<>*/ return [0,i,v] /*<>*/ } - /*<>*/ var - /*<>*/ _B5_=Lwd[11], - /*<>*/ _B6_= - /*<>*/ caml_call1(_B5_,v), - /*<>*/ _B7_=Lwd[3]; - /*<>*/ return [0, + /*<>*/ function maxi(x,y) + { /*<>*/ return y < x?x:y /*<>*/ } + /*<>*/ function mini(x,y) + { /*<>*/ return x < y?x:y /*<>*/ } + /*<>*/ function make$0(param) + { /*<>*/ var + /*<>*/ _C6_=0, + /*<>*/ _C7_=Lwd[10], + /*<>*/ v= + /*<>*/ caml_call1(_C7_,_C6_); + /*<>*/ function _C8_(i) + { /*<>*/ return [0,i,v] /*<>*/ } + /*<>*/ var + /*<>*/ _C9_=Lwd[11], + /*<>*/ _C__= + /*<>*/ caml_call1(_C9_,v), + /*<>*/ _C$_=Lwd[3]; + /*<>*/ return [0, v, - /*<>*/ caml_call2(_B7_,_B6_,_B4_)] /*<>*/ } - /*<>*/ /*<>*/ var empty$6=0; - /*<>*/ function status$0(h) - { /*<>*/ return h[2] /*<>*/ } - /*<>*/ function has_focus(param) - { /*<>*/ if(typeof param === "number") - /*<>*/ return 0; + /*<>*/ caml_call2(_C$_,_C__,_C8_)] /*<>*/ } + /*<>*/ /*<>*/ var empty$6=0; + /*<>*/ function var$0(h) + { /*<>*/ return h[1] /*<>*/ } + /*<>*/ function status$0(h) + { /*<>*/ return h[2] /*<>*/ } + /*<>*/ function has_focus(param) + { /*<>*/ if(typeof param === "number") + /*<>*/ return 0; var i=param[1]; - return 0 < i?1:0 /*<>*/ } - /*<>*/ /*<>*/ var clock=[0,0]; - /*<>*/ function request_var(v) - { /*<>*/ clock[1]++; - /*<>*/ function _BX_(m) - { /*<>*/ var - /*<>*/ _B0_=clock[1], - /*<>*/ _B1_=Lwd[13]; - /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_dW_, /*<>*/ caml_call1(_B1_,v),_B0_) /*<>*/ } - /*<>*/ var - /*<>*/ _BY_=0, - /*<>*/ _BZ_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_BZ_,_BY_,_BX_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[12],v,clock[1]) /*<>*/ } - /*<>*/ function request(param) + return 0 < i?1:0 /*<>*/ } + /*<>*/ /*<>*/ var clock=[0,0]; + /*<>*/ function request_var(v) + { /*<>*/ clock[1]++; + /*<>*/ function _C1_(m) + { /*<>*/ var + /*<>*/ _C4_=clock[1], + /*<>*/ _C5_=Lwd[13]; + /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_dW_, /*<>*/ caml_call1(_C5_,v),_C4_) /*<>*/ } + /*<>*/ var + /*<>*/ _C2_=0, + /*<>*/ _C3_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_C3_,_C2_,_C1_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[12],v,clock[1]) /*<>*/ } + /*<>*/ function request(param) { /*<>*/ var v=param[1];return request_var(v)} - /*<>*/ function release(param) - { /*<>*/ var v=param[1];clock[1]++;return caml_call2(Lwd[12],v,0)} - /*<>*/ function merge$2(s1,s2) + /*<>*/ function release(param) + { /*<>*/ var v=param[1]; + function _CW_(m) + { /*<>*/ var + /*<>*/ _CZ_=clock[1], + /*<>*/ _C0_=Lwd[13]; + /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_dX_, /*<>*/ caml_call1(_C0_,v),_CZ_) /*<>*/ } + var _CX_=0,_CY_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_CY_,_CX_,_CW_); + /*<>*/ clock[1]++; + /*<>*/ return /*<>*/ caml_call2 + (Lwd[12],v,0)} + /*<>*/ function merge$2(s1,s2) { /*<>*/ var switch$0=0; if(typeof s1 === "number" || 0 === s1[0] && 0 === s1[1])switch$0 = 1; - /*<>*/ if(switch$0) + /*<>*/ if(switch$0) var x=s2; else {var switch$1=0; @@ -568434,51 +568405,51 @@ {var switch$2=0; if(typeof s1 !== "number" && 0 !== s1[0]){var i1=s1[1];switch$2 = 1} if(! switch$2) - {var _BW_=s1[1],switch$3=0; + {var _CV_=s1[1],switch$3=0; if(typeof s2 !== "number" && 0 !== s2[0])switch$3 = 1; if(! switch$3) - { /*<>*/ /*<>*/ var + { /*<>*/ /*<>*/ var i2= s2[1]; - /*<>*/ if(_BW_ === i2) - /*<>*/ return s1} - var i1=_BW_} + /*<>*/ if(_CV_ === i2) + /*<>*/ return s1} + var i1=_CV_} var switch$4=0; if(typeof s2 !== "number" && 0 !== s2[0]) - { /*<>*/ /*<>*/ var + { /*<>*/ /*<>*/ var i2$1= s2[1]; - /*<>*/ if(i1 < i2$1) - /*<>*/ return s2; + /*<>*/ if(i1 < i2$1) + /*<>*/ return s2; switch$4 = 1} if(! switch$4) {var i1$0=s1[1],i2$0=s2[1]; - if(i1$0 < i2$0) /*<>*/ return [1,i2$0]} + if(i1$0 < i2$0) /*<>*/ return [1,i2$0]} if(typeof s1 !== "number" && 0 !== s1[0]) - /*<>*/ return s1; - /*<>*/ /*<>*/ var i1$1=s1[1]; - /*<>*/ return [1,i1$1]} + /*<>*/ return s1; + /*<>*/ /*<>*/ var i1$1=s1[1]; + /*<>*/ return [1,i1$1]} var x=s1} - /*<>*/ return x /*<>*/ } - /*<>*/ function pp_var(ppf,v) - { /*<>*/ var - /*<>*/ _BU_=Lwd[13], - /*<>*/ _BV_= - /*<>*/ caml_call1(_BU_,v); - /*<>*/ return /*<>*/ caml_call3 - (Fmt[3],ppf,_dX_,_BV_) /*<>*/ } - /*<>*/ function pp_status(ppf,param) + /*<>*/ return x /*<>*/ } + /*<>*/ function pp_var(ppf,v) + { /*<>*/ var + /*<>*/ _CT_=Lwd[13], + /*<>*/ _CU_= + /*<>*/ caml_call1(_CT_,v); + /*<>*/ return /*<>*/ caml_call3 + (Fmt[3],ppf,_dY_,_CU_) /*<>*/ } + /*<>*/ function pp_status(ppf,param) { /*<>*/ if(typeof param === "number") - /*<>*/ return /*<>*/ caml_call2 - (Fmt[3],ppf,_dY_); + /*<>*/ return /*<>*/ caml_call2 + (Fmt[3],ppf,_dZ_); else {if(0 === param[0]) {var v=param[2],i=param[1]; - return caml_call5(Fmt[3],ppf,_dZ_,i,pp_var,v)} - /*<>*/ /*<>*/ var i$0=param[1]; - /*<>*/ return /*<>*/ caml_call3 - (Fmt[3],ppf,_d0_,i$0)}} - /*<>*/ /*<>*/ var + return caml_call5(Fmt[3],ppf,_d0_,i,pp_var,v)} + /*<>*/ /*<>*/ var i$0=param[1]; + /*<>*/ return /*<>*/ caml_call3 + (Fmt[3],ppf,_d1_,i$0)}} + /*<>*/ /*<>*/ var Focus= [0, make$0, @@ -568487,125 +568458,126 @@ release, empty$6, status$0, + var$0, has_focus, merge$2, pp_var, pp_status]; - /*<>*/ function make$1(h,v) - { /*<>*/ return [0,h,v] /*<>*/ } - /*<>*/ function h(x) - { /*<>*/ return x[1] /*<>*/ } - /*<>*/ function v$0(x) - { /*<>*/ return x[2] /*<>*/ } - /*<>*/ function pp_direction(ppf,dir) - { /*<>*/ /*<>*/ var + /*<>*/ function make$1(h,v) + { /*<>*/ return [0,h,v] /*<>*/ } + /*<>*/ function h(x) + { /*<>*/ return x[1] /*<>*/ } + /*<>*/ function v$0(x) + { /*<>*/ return x[2] /*<>*/ } + /*<>*/ function pp_direction(ppf,dir) + { /*<>*/ /*<>*/ var text= 720626325 === dir ?cst_Negative :947590439 <= dir?cst_Neutral:cst_Positive; - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Format[13],ppf,text) /*<>*/ } - /*<>*/ function pp$4(ppf,g) - { /*<>*/ var - /*<>*/ _BS_= /*<>*/ v$0(g), - /*<>*/ _BT_= /*<>*/ h(g); - /*<>*/ return /*<>*/ caml_call6 + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Format[13],ppf,text) /*<>*/ } + /*<>*/ function pp$4(ppf,g) + { /*<>*/ var + /*<>*/ _CR_= /*<>*/ v$0(g), + /*<>*/ _CS_= /*<>*/ h(g); + /*<>*/ return /*<>*/ caml_call6 (Stdlib_Format[129], ppf, - _d1_, + _d2_, pp_direction, - _BT_, + _CS_, pp_direction, - _BS_) /*<>*/ } - /*<>*/ function pair(t1,t2) - { /*<>*/ return [0,t1,t2] /*<>*/ } - /*<>*/ function p1(param) + _CR_) /*<>*/ } + /*<>*/ function pair(t1,t2) + { /*<>*/ return [0,t1,t2] /*<>*/ } + /*<>*/ function p1(param) { /*<>*/ var t=param[1];return t} - /*<>*/ function p2(param) + /*<>*/ function p2(param) { /*<>*/ var t=param[2];return t} - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var Gravity= [0,pp_direction,pp$4,make$1,default$0,h,v$0,pair,p1,p2]; - /*<>*/ function make$2(x,y) - { /*<>*/ return [0,x,y] /*<>*/ } - /*<>*/ function shift(param,d) - { /*<>*/ var + /*<>*/ function make$2(x,y) + { /*<>*/ return [0,x,y] /*<>*/ } + /*<>*/ function shift(param,d) + { /*<>*/ var y=param[2], x=param[1], - /*<>*/ _BR_=y + d; - /*<>*/ return [0,x + d,_BR_]} - /*<>*/ function fst(param) + /*<>*/ _CQ_=y + d; + /*<>*/ return [0,x + d,_CQ_]} + /*<>*/ function fst(param) { /*<>*/ var x=param[1];return x} - /*<>*/ function size$1(param) - {var y=param[2],x=param[1]; /*<>*/ return y - x} - /*<>*/ function snd(param) + /*<>*/ function size$1(param) + {var y=param[2],x=param[1]; /*<>*/ return y - x} + /*<>*/ function snd(param) { /*<>*/ var y=param[2];return y} - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var Interval= [0,make$2,shift,fst,snd,size$1,zero]; - /*<>*/ function may_handle(v,f) - { /*<>*/ if(v) - { /*<>*/ /*<>*/ var v$0=v[1]; - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ function may_handle(v,f) + { /*<>*/ if(v) + { /*<>*/ /*<>*/ var v$0=v[1]; + /*<>*/ return /*<>*/ caml_call1 (f,v$0)} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function pp_may_handle(ppf,param) + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ function pp_may_handle(ppf,param) { /*<>*/ return 321312668 <= param - ? /*<>*/ caml_call2(Fmt[3],ppf,_d2_) - : /*<>*/ caml_call2(Fmt[3],ppf,_d3_)} - /*<>*/ /*<>*/ var _d4_=Input[3]; - /*<>*/ function _d5_(ppf,v) - { /*<>*/ if(typeof v === "number") + ? /*<>*/ caml_call2(Fmt[3],ppf,_d3_) + : /*<>*/ caml_call2(Fmt[3],ppf,_d4_)} + /*<>*/ /*<>*/ var _d5_=Input[3]; + /*<>*/ function _d6_(ppf,v) + { /*<>*/ if(typeof v === "number") {if(-796671181 === v) - /*<>*/ return /*<>*/ caml_call2 - (Fmt[3],ppf,_d6_); + /*<>*/ return /*<>*/ caml_call2 + (Fmt[3],ppf,_d7_); if(748546005 === v) - /*<>*/ return /*<>*/ caml_call2 - (Fmt[3],ppf,_d7_)} + /*<>*/ return /*<>*/ caml_call2 + (Fmt[3],ppf,_d8_)} else if(397856696 === v[1]) - { /*<>*/ var - /*<>*/ v$0=v[2], - /*<>*/ _BQ_= + { /*<>*/ var + /*<>*/ v$0=v[2], + /*<>*/ _CP_= 759637122 <= v$0 ?870035731 <= v$0 ?892857107 <= v$0?cst_Prev:cst_Next :847852583 <= v$0?cst_Left$0:cst_Down$0 :19067 <= v$0?cst_Up$0:cst_Right$0; - return caml_call3(Fmt[3],ppf,_d9_,_BQ_)} - /*<>*/ return /*<>*/ caml_call4 - (Fmt[3],ppf,_d8_,Input[2],v) /*<>*/ } - /*<>*/ var - /*<>*/ _d__=[0,Fmt[23]], - /*<>*/ _d$_=Fmt[61], - /*<>*/ pp_key= - /*<>*/ caml_call3(_d$_,_d__,_d5_,_d4_); - /*<>*/ function p(ppf) - { /*<>*/ return /*<>*/ caml_call2 - (Fmt[21],_ea_,ppf) /*<>*/ } - /*<>*/ var - /*<>*/ flags_none=0, - /*<>*/ flag_transient_sensor=1, - /*<>*/ flag_permanent_sensor=2; - /*<>*/ function layout_spec(t) - { /*<>*/ return [254,t[1],t[2],t[3],t[4]] /*<>*/ } - /*<>*/ function layout_width(t) - { /*<>*/ return t[1] /*<>*/ } - /*<>*/ function layout_stretch_width(t) - { /*<>*/ return t[3] /*<>*/ } - /*<>*/ function layout_height(t) - { /*<>*/ return t[2] /*<>*/ } - /*<>*/ function layout_stretch_height(t) - { /*<>*/ return t[4] /*<>*/ } - /*<>*/ function pp_layout_spec(ppf,param) + return caml_call3(Fmt[3],ppf,_d__,_CP_)} + /*<>*/ return /*<>*/ caml_call4 + (Fmt[3],ppf,_d9_,Input[2],v) /*<>*/ } + /*<>*/ var + /*<>*/ _d$_=[0,Fmt[23]], + /*<>*/ _ea_=Fmt[61], + /*<>*/ pp_key= + /*<>*/ caml_call3(_ea_,_d$_,_d6_,_d5_); + /*<>*/ function p(ppf) + { /*<>*/ return /*<>*/ caml_call2 + (Fmt[21],_eb_,ppf) /*<>*/ } + /*<>*/ var + /*<>*/ flags_none=0, + /*<>*/ flag_transient_sensor=1, + /*<>*/ flag_permanent_sensor=2; + /*<>*/ function layout_spec(t) + { /*<>*/ return [254,t[1],t[2],t[3],t[4]] /*<>*/ } + /*<>*/ function layout_width(t) + { /*<>*/ return t[1] /*<>*/ } + /*<>*/ function layout_stretch_width(t) + { /*<>*/ return t[3] /*<>*/ } + /*<>*/ function layout_height(t) + { /*<>*/ return t[2] /*<>*/ } + /*<>*/ function layout_stretch_height(t) + { /*<>*/ return t[4] /*<>*/ } + /*<>*/ function pp_layout_spec(ppf,param) {var w=param[1],h=param[2],sh=param[4],sw=param[3]; - return caml_call10(Stdlib_Format[129],ppf,_eb_,p,w,p,h,p,sw,p,sh)} - /*<>*/ var - /*<>*/ cache=[0,Interval[6],Interval[6],I[4]], - /*<>*/ init$2= + return caml_call10(Stdlib_Format[129],ppf,_ec_,p,w,p,h,p,sw,p,sh)} + /*<>*/ var + /*<>*/ cache=[0,Interval[6],Interval[6],I[4]], + /*<>*/ init$2= [0,0.,0.,0.,0.,[0,I[4]],Focus[5],flags_none,0,cache]; - /*<>*/ function atom(img) - { /*<>*/ return [0, + /*<>*/ function atom(img) + { /*<>*/ return [0, 0., 0., 0., @@ -568614,13 +568586,13 @@ Focus[5], flags_none, 0, - cache] /*<>*/ } - /*<>*/ function space(x,y) - { /*<>*/ /*<>*/ var _BP_=I[5]; - /*<>*/ return /*<>*/ atom - ( /*<>*/ caml_call2(_BP_,x,y)) /*<>*/ } - /*<>*/ function mouse_area(f,t) - { /*<>*/ return [0, + cache] /*<>*/ } + /*<>*/ function space(x,y) + { /*<>*/ /*<>*/ var _CO_=I[5]; + /*<>*/ return /*<>*/ atom + ( /*<>*/ caml_call2(_CO_,x,y)) /*<>*/ } + /*<>*/ function mouse_area(f,t) + { /*<>*/ return [0, t[1], t[2], t[3], @@ -568629,17 +568601,17 @@ t[6], t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function keyboard_area(focus,f,t) - { /*<>*/ if(focus) - /*<>*/ var - /*<>*/ focus$0=focus[1], - /*<>*/ _BN_=t[6], - /*<>*/ _BO_=Focus[8], - focus$1= /*<>*/ caml_call2(_BO_,focus$0,_BN_); + t[9]] /*<>*/ } + /*<>*/ function keyboard_area(focus,f,t) + { /*<>*/ if(focus) + /*<>*/ var + /*<>*/ focus$0=focus[1], + /*<>*/ _CM_=t[6], + /*<>*/ _CN_=Focus[9], + focus$1= /*<>*/ caml_call2(_CN_,focus$0,_CM_); else var focus$1=t[6]; - /*<>*/ return [0, + /*<>*/ return [0, t[1], t[2], t[3], @@ -568648,9 +568620,9 @@ focus$1, t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function shift_area(x,y,t) - { /*<>*/ return [0, + t[9]] /*<>*/ } + /*<>*/ function shift_area(x,y,t) + { /*<>*/ return [0, t[1], t[2], t[3], @@ -568659,9 +568631,9 @@ t[6], t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function size_sensor(handler,t) - { /*<>*/ return [0, + t[9]] /*<>*/ } + /*<>*/ function size_sensor(handler,t) + { /*<>*/ return [0, t[1], t[2], t[3], @@ -568670,9 +568642,9 @@ t[6], t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function transient_sensor(frame_sensor,t) - { /*<>*/ return [0, + t[9]] /*<>*/ } + /*<>*/ function transient_sensor(frame_sensor,t) + { /*<>*/ return [0, t[1], t[2], t[3], @@ -568681,9 +568653,9 @@ t[6], t[7] | 1, t[8], - t[9]] /*<>*/ } - /*<>*/ function permanent_sensor(frame_sensor,t) - { /*<>*/ return [0, + t[9]] /*<>*/ } + /*<>*/ function permanent_sensor(frame_sensor,t) + { /*<>*/ return [0, t[1], t[2], t[3], @@ -568692,55 +568664,55 @@ t[6], t[7] | 2, t[8], - t[9]] /*<>*/ } - /*<>*/ function prepare_gravity(param) - { /*<>*/ /*<>*/ var _BJ_=param[1]; - /*<>*/ if(_BJ_) - {var _BK_=param[2],_BL_=_BJ_[1]; - if(_BK_) - { /*<>*/ /*<>*/ var + t[9]] /*<>*/ } + /*<>*/ function prepare_gravity(param) + { /*<>*/ /*<>*/ var _CI_=param[1]; + /*<>*/ if(_CI_) + {var _CJ_=param[2],_CK_=_CI_[1]; + if(_CJ_) + { /*<>*/ /*<>*/ var crop= - _BK_[1]; - /*<>*/ return /*<>*/ caml_call2 - (Gravity[7],_BL_,crop)} - var g=_BL_} + _CJ_[1]; + /*<>*/ return /*<>*/ caml_call2 + (Gravity[7],_CK_,crop)} + var g=_CK_} else - {var _BM_=param[2]; - if(! _BM_) - /*<>*/ return /*<>*/ caml_call2 + {var _CL_=param[2]; + if(! _CL_) + /*<>*/ return /*<>*/ caml_call2 (Gravity[7],Gravity[4],Gravity[4]); - var g=_BM_[1]} - /*<>*/ return /*<>*/ caml_call2 - (Gravity[7],g,g) /*<>*/ } - /*<>*/ function resize(w,h,sw,sh,pad,crop,opt,t) - { /*<>*/ var - /*<>*/ _BB_=[0,pad,crop], - /*<>*/ g= - /*<>*/ prepare_gravity(_BB_), - /*<>*/ _BC_=t[1], - /*<>*/ _BD_=t[2], - /*<>*/ _BE_=t[3], - /*<>*/ _BF_=t[4], - /*<>*/ _BG_=w?w[1]:_BC_, - _BH_=h?h[1]:_BD_, - _BI_=sw?sw[1]:_BE_, - sh$0=sh?sh[1]:_BF_; - /*<>*/ return [0, - _BG_, - _BH_, - _BI_, + var g=_CL_[1]} + /*<>*/ return /*<>*/ caml_call2 + (Gravity[7],g,g) /*<>*/ } + /*<>*/ function resize(w,h,sw,sh,pad,crop,opt,t) + { /*<>*/ var + /*<>*/ _CA_=[0,pad,crop], + /*<>*/ g= + /*<>*/ prepare_gravity(_CA_), + /*<>*/ _CB_=t[1], + /*<>*/ _CC_=t[2], + /*<>*/ _CD_=t[3], + /*<>*/ _CE_=t[4], + /*<>*/ _CF_=w?w[1]:_CB_, + _CG_=h?h[1]:_CC_, + _CH_=sw?sw[1]:_CD_, + sh$0=sh?sh[1]:_CE_; + /*<>*/ return [0, + _CF_, + _CG_, + _CH_, sh$0, [4,t,w,h,g], t[6], t[7], t[8], t[9]]} - /*<>*/ function resize_to(l,pad,crop,opt,t) - { /*<>*/ var - /*<>*/ _BA_=[0,pad,crop], - /*<>*/ g= - /*<>*/ prepare_gravity(_BA_); - /*<>*/ return [0, + /*<>*/ function resize_to(l,pad,crop,opt,t) + { /*<>*/ var + /*<>*/ _Cz_=[0,pad,crop], + /*<>*/ g= + /*<>*/ prepare_gravity(_Cz_); + /*<>*/ return [0, t[1], t[2], t[3], @@ -568749,15 +568721,15 @@ t[6], t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function event_filter(focus,f,t) - { /*<>*/ if(focus) - /*<>*/ var - /*<>*/ focus$0=focus[1], + t[9]] /*<>*/ } + /*<>*/ function event_filter(focus,f,t) + { /*<>*/ if(focus) + /*<>*/ var + /*<>*/ focus$0=focus[1], focus$1=focus$0; else var focus$1=t[6]; - /*<>*/ return [0, + /*<>*/ return [0, t[1], t[2], t[3], @@ -568766,217 +568738,217 @@ focus$1, t[7], t[8], - t[9]] /*<>*/ } - /*<>*/ function join_x(a,b) - { /*<>*/ var - /*<>*/ _Bf_=init$2[9], - /*<>*/ _Bg_=init$2[8], - /*<>*/ _Bh_=a[7] | b[7], - /*<>*/ _Bi_=b[6], - /*<>*/ _Bj_=a[6], - /*<>*/ _Bk_=Focus[8], - /*<>*/ _Bl_= - /*<>*/ caml_call2(_Bk_,_Bj_,_Bi_), - /*<>*/ _Bm_=[9,a,b], - /*<>*/ _Bn_=b[4], - /*<>*/ _Bo_=a[4], - /*<>*/ _Bp_=Stdlib[17], - /*<>*/ _Bq_= - /*<>*/ caml_call2(_Bp_,_Bo_,_Bn_), - /*<>*/ _Br_=b[3], - /*<>*/ _Bs_=a[3], - /*<>*/ _Bt_=_Bs_ + _Br_, - /*<>*/ _Bu_=b[2], - /*<>*/ _Bv_=a[2], - /*<>*/ _Bw_=Stdlib[17], - /*<>*/ _Bx_= - /*<>*/ caml_call2(_Bw_,_Bv_,_Bu_), - /*<>*/ _By_=b[1], - /*<>*/ _Bz_=a[1]; - /*<>*/ return [0, - _Bz_ + _By_, - _Bx_, - _Bt_, - _Bq_, - _Bm_, - _Bl_, - _Bh_, - _Bg_, - _Bf_] /*<>*/ } - /*<>*/ function join_y(a,b) - { /*<>*/ var - /*<>*/ _AW_=init$2[9], - /*<>*/ _AX_=init$2[8], - /*<>*/ _AY_=a[7] | b[7], - /*<>*/ _AZ_=b[6], - /*<>*/ _A0_=a[6], - /*<>*/ _A1_=Focus[8], - /*<>*/ _A2_= - /*<>*/ caml_call2(_A1_,_A0_,_AZ_), - /*<>*/ _A3_=[10,a,b], - /*<>*/ _A4_=b[4], - /*<>*/ _A5_=a[4], - /*<>*/ _A6_=_A5_ + _A4_, - /*<>*/ _A7_=b[3], - /*<>*/ _A8_=a[3], - /*<>*/ _A9_=Stdlib[17], - /*<>*/ _A__= - /*<>*/ caml_call2(_A9_,_A8_,_A7_), - /*<>*/ _A$_=b[2], - /*<>*/ _Ba_=a[2], - /*<>*/ _Bb_=_Ba_ + _A$_, - /*<>*/ _Bc_=b[1], - /*<>*/ _Bd_=a[1], - /*<>*/ _Be_=Stdlib[17]; - /*<>*/ return [0, - /*<>*/ caml_call2(_Be_,_Bd_,_Bc_), - _Bb_, - _A__, - _A6_, - _A3_, - _A2_, - _AY_, - _AX_, - _AW_] /*<>*/ } - /*<>*/ function join_z(a,b) - { /*<>*/ var - /*<>*/ _Az_=init$2[9], - /*<>*/ _AA_=init$2[8], - /*<>*/ _AB_=a[7] | b[7], - /*<>*/ _AC_=b[6], - /*<>*/ _AD_=a[6], - /*<>*/ _AE_=Focus[8], - /*<>*/ _AF_= - /*<>*/ caml_call2(_AE_,_AD_,_AC_), - /*<>*/ _AG_=[11,a,b], - /*<>*/ _AH_=b[4], - /*<>*/ _AI_=a[4], - /*<>*/ _AJ_=Stdlib[17], - /*<>*/ _AK_= - /*<>*/ caml_call2(_AJ_,_AI_,_AH_), - /*<>*/ _AL_=b[3], - /*<>*/ _AM_=a[3], - /*<>*/ _AN_=Stdlib[17], - /*<>*/ _AO_= - /*<>*/ caml_call2(_AN_,_AM_,_AL_), - /*<>*/ _AP_=b[2], - /*<>*/ _AQ_=a[2], - /*<>*/ _AR_=Stdlib[17], - /*<>*/ _AS_= - /*<>*/ caml_call2(_AR_,_AQ_,_AP_), - /*<>*/ _AT_=b[1], - /*<>*/ _AU_=a[1], - /*<>*/ _AV_=Stdlib[17]; - /*<>*/ return [0, - /*<>*/ caml_call2(_AV_,_AU_,_AT_), - _AS_, - _AO_, - _AK_, - _AG_, - _AF_, - _AB_, - _AA_, - _Az_] /*<>*/ } - /*<>*/ var - /*<>*/ pack_x=[0,init$2,join_x], - /*<>*/ pack_y=[0,init$2,join_y], - /*<>*/ pack_z=[0,init$2,join_z]; - /*<>*/ function hcat$0(xs) + t[9]] /*<>*/ } + /*<>*/ function join_x(a,b) + { /*<>*/ var + /*<>*/ _Ce_=init$2[9], + /*<>*/ _Cf_=init$2[8], + /*<>*/ _Cg_=a[7] | b[7], + /*<>*/ _Ch_=b[6], + /*<>*/ _Ci_=a[6], + /*<>*/ _Cj_=Focus[9], + /*<>*/ _Ck_= + /*<>*/ caml_call2(_Cj_,_Ci_,_Ch_), + /*<>*/ _Cl_=[9,a,b], + /*<>*/ _Cm_=b[4], + /*<>*/ _Cn_=a[4], + /*<>*/ _Co_=Stdlib[17], + /*<>*/ _Cp_= + /*<>*/ caml_call2(_Co_,_Cn_,_Cm_), + /*<>*/ _Cq_=b[3], + /*<>*/ _Cr_=a[3], + /*<>*/ _Cs_=_Cr_ + _Cq_, + /*<>*/ _Ct_=b[2], + /*<>*/ _Cu_=a[2], + /*<>*/ _Cv_=Stdlib[17], + /*<>*/ _Cw_= + /*<>*/ caml_call2(_Cv_,_Cu_,_Ct_), + /*<>*/ _Cx_=b[1], + /*<>*/ _Cy_=a[1]; + /*<>*/ return [0, + _Cy_ + _Cx_, + _Cw_, + _Cs_, + _Cp_, + _Cl_, + _Ck_, + _Cg_, + _Cf_, + _Ce_] /*<>*/ } + /*<>*/ function join_y(a,b) + { /*<>*/ var + /*<>*/ _BV_=init$2[9], + /*<>*/ _BW_=init$2[8], + /*<>*/ _BX_=a[7] | b[7], + /*<>*/ _BY_=b[6], + /*<>*/ _BZ_=a[6], + /*<>*/ _B0_=Focus[9], + /*<>*/ _B1_= + /*<>*/ caml_call2(_B0_,_BZ_,_BY_), + /*<>*/ _B2_=[10,a,b], + /*<>*/ _B3_=b[4], + /*<>*/ _B4_=a[4], + /*<>*/ _B5_=_B4_ + _B3_, + /*<>*/ _B6_=b[3], + /*<>*/ _B7_=a[3], + /*<>*/ _B8_=Stdlib[17], + /*<>*/ _B9_= + /*<>*/ caml_call2(_B8_,_B7_,_B6_), + /*<>*/ _B__=b[2], + /*<>*/ _B$_=a[2], + /*<>*/ _Ca_=_B$_ + _B__, + /*<>*/ _Cb_=b[1], + /*<>*/ _Cc_=a[1], + /*<>*/ _Cd_=Stdlib[17]; + /*<>*/ return [0, + /*<>*/ caml_call2(_Cd_,_Cc_,_Cb_), + _Ca_, + _B9_, + _B5_, + _B2_, + _B1_, + _BX_, + _BW_, + _BV_] /*<>*/ } + /*<>*/ function join_z(a,b) + { /*<>*/ var + /*<>*/ _By_=init$2[9], + /*<>*/ _Bz_=init$2[8], + /*<>*/ _BA_=a[7] | b[7], + /*<>*/ _BB_=b[6], + /*<>*/ _BC_=a[6], + /*<>*/ _BD_=Focus[9], + /*<>*/ _BE_= + /*<>*/ caml_call2(_BD_,_BC_,_BB_), + /*<>*/ _BF_=[11,a,b], + /*<>*/ _BG_=b[4], + /*<>*/ _BH_=a[4], + /*<>*/ _BI_=Stdlib[17], + /*<>*/ _BJ_= + /*<>*/ caml_call2(_BI_,_BH_,_BG_), + /*<>*/ _BK_=b[3], + /*<>*/ _BL_=a[3], + /*<>*/ _BM_=Stdlib[17], + /*<>*/ _BN_= + /*<>*/ caml_call2(_BM_,_BL_,_BK_), + /*<>*/ _BO_=b[2], + /*<>*/ _BP_=a[2], + /*<>*/ _BQ_=Stdlib[17], + /*<>*/ _BR_= + /*<>*/ caml_call2(_BQ_,_BP_,_BO_), + /*<>*/ _BS_=b[1], + /*<>*/ _BT_=a[1], + /*<>*/ _BU_=Stdlib[17]; + /*<>*/ return [0, + /*<>*/ caml_call2(_BU_,_BT_,_BS_), + _BR_, + _BN_, + _BJ_, + _BF_, + _BE_, + _BA_, + _Bz_, + _By_] /*<>*/ } + /*<>*/ var + /*<>*/ pack_x=[0,init$2,join_x], + /*<>*/ pack_y=[0,init$2,join_y], + /*<>*/ pack_z=[0,init$2,join_z]; + /*<>*/ function hcat$0(xs) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[4],pack_x,xs) /*<>*/ } + /*<>*/ function vcat$1(xs) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[4],pack_y,xs) /*<>*/ } + /*<>*/ function zcat$0(xs) { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[4],pack_x,xs) /*<>*/ } - /*<>*/ function vcat$1(xs) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[4],pack_y,xs) /*<>*/ } - /*<>*/ function zcat$0(xs) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[4],pack_z,xs) /*<>*/ } - /*<>*/ function has_focus$0(t) - { /*<>*/ return /*<>*/ caml_call1 - (Focus[7],t[6]) /*<>*/ } - /*<>*/ function pp$5(ppf,t) - { /*<>*/ return /*<>*/ caml_call6 - (Fmt[3],ppf,_ec_,Focus[10],t[6],pp_desc,t[5]) /*<>*/ } - /*<>*/ function pp_desc(ppf,param) + (Lwd_utils[4],pack_z,xs) /*<>*/ } + /*<>*/ function has_focus$0(t) + { /*<>*/ return /*<>*/ caml_call1 + (Focus[8],t[6]) /*<>*/ } + /*<>*/ function pp$5(ppf,t) + { /*<>*/ return /*<>*/ caml_call6 + (Fmt[3],ppf,_ed_,Focus[11],t[6],pp_desc,t[5]) /*<>*/ } + /*<>*/ function pp_desc(ppf,param) { /*<>*/ switch(param[0]) {case 0: - /*<>*/ var - /*<>*/ a=param[1], - /*<>*/ _Aq_=0, - /*<>*/ _Ar_=I[27][5], - /*<>*/ _As_= - /*<>*/ caml_call1(_Ar_,_Aq_); - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ed_,_As_,a); + /*<>*/ var + /*<>*/ a=param[1], + /*<>*/ _Bp_=0, + /*<>*/ _Bq_=I[27][5], + /*<>*/ _Br_= + /*<>*/ caml_call1(_Bq_,_Bp_); + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_ee_,_Br_,a); case 1: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var desc= param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ee_,pp$5,desc); + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_ef_,pp$5,desc); case 2: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var desc$0= param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ef_,pp$5,desc$0); + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_eg_,pp$5,desc$0); case 3: - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var desc$1= param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_eg_,pp$5,desc$1); + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_eh_,pp$5,desc$1); case 4: - /*<>*/ var + /*<>*/ var y=param[3], x=param[2], desc$2=param[1], - _At_=0, - _Au_=Fmt[62], - /*<>*/ _Av_= - /*<>*/ caml_call2(_Au_,_At_,p), - /*<>*/ _Aw_=0, - /*<>*/ _Ax_=Fmt[62], - /*<>*/ _Ay_= - /*<>*/ caml_call2(_Ax_,_Aw_,p); - /*<>*/ return /*<>*/ caml_call8 - (Fmt[3],ppf,_eh_,_Ay_,x,_Av_,y,pp$5,desc$2); + _Bs_=0, + _Bt_=Fmt[62], + /*<>*/ _Bu_= + /*<>*/ caml_call2(_Bt_,_Bs_,p), + /*<>*/ _Bv_=0, + /*<>*/ _Bw_=Fmt[62], + /*<>*/ _Bx_= + /*<>*/ caml_call2(_Bw_,_Bv_,p); + /*<>*/ return /*<>*/ caml_call8 + (Fmt[3],ppf,_ei_,_Bx_,x,_Bu_,y,pp$5,desc$2); case 5: - /*<>*/ /*<>*/ var n=param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ei_,pp$5,n); + /*<>*/ /*<>*/ var n=param[1]; + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_ej_,pp$5,n); case 6: - /*<>*/ /*<>*/ var n$0=param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ej_,pp$5,n$0); + /*<>*/ /*<>*/ var n$0=param[1]; + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_ek_,pp$5,n$0); case 7: var y$0=param[3],x$0=param[2],n$1=param[1]; - return caml_call6(Stdlib_Format[129],ppf,_ek_,x$0,y$0,pp$5,n$1); + return caml_call6(Stdlib_Format[129],ppf,_el_,x$0,y$0,pp$5,n$1); case 8: - /*<>*/ /*<>*/ var n$2=param[1]; - /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_el_,pp$5,n$2); + /*<>*/ /*<>*/ var n$2=param[1]; + /*<>*/ return /*<>*/ caml_call4 + (Stdlib_Format[129],ppf,_em_,pp$5,n$2); case 9: var b=param[2],a$0=param[1]; - return caml_call6(Stdlib_Format[129],ppf,_em_,pp$5,a$0,pp$5,b); + return caml_call6(Stdlib_Format[129],ppf,_en_,pp$5,a$0,pp$5,b); case 10: var b$0=param[2],a$1=param[1]; - return caml_call6(Stdlib_Format[129],ppf,_en_,pp$5,a$1,pp$5,b$0); + return caml_call6(Stdlib_Format[129],ppf,_eo_,pp$5,a$1,pp$5,b$0); default: var b$1=param[2],a$2=param[1]; - return caml_call6(Stdlib_Format[129],ppf,_eo_,pp$5,a$2,pp$5,b$1)}} - /*<>*/ function iter$0(f,ui) - { /*<>*/ /*<>*/ var _Ap_=ui[5]; - /*<>*/ switch(_Ap_[0]) - {case 0: /*<>*/ return 0; + return caml_call6(Stdlib_Format[129],ppf,_ep_,pp$5,a$2,pp$5,b$1)}} + /*<>*/ function iter$0(f,ui) + { /*<>*/ /*<>*/ var _Bo_=ui[5]; + /*<>*/ switch(_Bo_[0]) + {case 0: /*<>*/ return 0; case 9: case 10: case 11: - var u2=_Ap_[2],u1=_Ap_[1]; - /*<>*/ /*<>*/ caml_call1(f,u1); - /*<>*/ return /*<>*/ caml_call1 + var u2=_Bo_[2],u1=_Bo_[1]; + /*<>*/ /*<>*/ caml_call1(f,u1); + /*<>*/ return /*<>*/ caml_call1 (f,u2); - default:var u=_Ap_[1];return caml_call1(f,u)} /*<>*/ } - /*<>*/ /*<>*/ var + default:var u=_Bo_[1];return caml_call1(f,u)} /*<>*/ } + /*<>*/ /*<>*/ var Ui= [0, may_handle, @@ -569019,210 +568991,210 @@ pp$5, pp_desc, iter$0]; - /*<>*/ function make$3(vg,param) - { /*<>*/ return [0,vg,Gg[5][5],Ui[15],0] /*<>*/ } - /*<>*/ function size$2(t) - { /*<>*/ return t[2] /*<>*/ } - /*<>*/ function solve_focus(ui,i) - { /*<>*/ function aux(ui) - { /*<>*/ /*<>*/ var _An_=ui[6]; - /*<>*/ if(typeof _An_ !== "number") - { /*<>*/ if(0 !== _An_[0]) - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ function make$3(vg,param) + { /*<>*/ return [0,vg,Gg[5][5],Ui[15],0] /*<>*/ } + /*<>*/ function size$2(t) + { /*<>*/ return t[2] /*<>*/ } + /*<>*/ function solve_focus(ui,i) + { /*<>*/ function aux(ui) + { /*<>*/ /*<>*/ var _Bm_=ui[6]; + /*<>*/ if(typeof _Bm_ !== "number") + { /*<>*/ if(0 !== _Bm_[0]) + /*<>*/ return /*<>*/ caml_call2 (Ui[40],aux,ui); - var _Ao_=_An_[1]; - if(0 !== _Ao_) - { /*<>*/ if(i === _Ao_) - /*<>*/ return 0; - /*<>*/ /*<>*/ var v=_An_[2]; - /*<>*/ return /*<>*/ caml_call2 + var _Bn_=_Bm_[1]; + if(0 !== _Bn_) + { /*<>*/ if(i === _Bn_) + /*<>*/ return 0; + /*<>*/ /*<>*/ var v=_Bm_[2]; + /*<>*/ return /*<>*/ caml_call2 (Lwd[12],v,0)}} - /*<>*/ return 0 /*<>*/ } - /*<>*/ return /*<>*/ aux(ui) /*<>*/ } - /*<>*/ function split(a,sa,b,sb,total) - { /*<>*/ var - /*<>*/ stretch=sa + sb, - /*<>*/ _Ah_=total - a, - /*<>*/ flex=_Ah_ - b, + /*<>*/ return 0 /*<>*/ } + /*<>*/ return /*<>*/ aux(ui) /*<>*/ } + /*<>*/ function split(a,sa,b,sb,total) + { /*<>*/ var + /*<>*/ stretch=sa + sb, + /*<>*/ _Bg_=total - a, + /*<>*/ flex=_Bg_ - b, switch$0=0; if(0. < stretch && 0. < flex) - { /*<>*/ if(sb < sa) - /*<>*/ var - /*<>*/ _Ai_=flex * sa, - ratio=_Ai_ / stretch; + { /*<>*/ if(sb < sa) + /*<>*/ var + /*<>*/ _Bh_=flex * sa, + ratio=_Bh_ / stretch; else - /*<>*/ var - /*<>*/ _Al_=flex * sb, - /*<>*/ _Am_=_Al_ / stretch, - ratio=flex - _Am_; - /*<>*/ var - /*<>*/ _Aj_=b + flex, - /*<>*/ b$0=_Aj_ - ratio, - /*<>*/ _Ak_=a + ratio, + /*<>*/ var + /*<>*/ _Bk_=flex * sb, + /*<>*/ _Bl_=_Bk_ / stretch, + ratio=flex - _Bl_; + /*<>*/ var + /*<>*/ _Bi_=b + flex, + /*<>*/ b$0=_Bi_ - ratio, + /*<>*/ _Bj_=a + ratio, b$1=b$0, - a$0=_Ak_; + a$0=_Bj_; switch$0 = 1} - /*<>*/ if(! switch$0)var b$1=b,a$0=a; - /*<>*/ return [0,a$0,b$1] /*<>*/ } - /*<>*/ function pack(fixed,stretch,total,g1,g2) - { /*<>*/ var - /*<>*/ flex=total - fixed, + /*<>*/ if(! switch$0)var b$1=b,a$0=a; + /*<>*/ return [0,a$0,b$1] /*<>*/ } + /*<>*/ function pack(fixed,stretch,total,g1,g2) + { /*<>*/ var + /*<>*/ flex=total - fixed, switch$0=0; if(0. < stretch && 0. < flex) - /*<>*/ var - /*<>*/ _Af_=0., + /*<>*/ var + /*<>*/ _Be_=0., v2=total, - v1=_Af_; + v1=_Be_; else switch$0 = 1; - /*<>*/ if(switch$0) - { /*<>*/ /*<>*/ var + /*<>*/ if(switch$0) + { /*<>*/ /*<>*/ var gravity= 0. <= flex?g1:g2; - /*<>*/ if(720626325 === gravity) - /*<>*/ var - /*<>*/ v1$0=0., + /*<>*/ if(720626325 === gravity) + /*<>*/ var + /*<>*/ v1$0=0., v2=fixed, v1=v1$0; else if(947590439 <= gravity) - /*<>*/ var - /*<>*/ _Ag_=flex / 2., + /*<>*/ var + /*<>*/ _Bf_=flex / 2., v2=fixed, - v1=_Ag_; + v1=_Bf_; else var v2=fixed,v1=flex} - /*<>*/ return [0,v1,v2] /*<>*/ } - /*<>*/ function has_transient_sensor(flags) - { /*<>*/ return 0 !== (flags & Ui[6])?1:0 /*<>*/ } - /*<>*/ function has_permanent_sensor(flags) - { /*<>*/ return 0 !== (flags & Ui[7])?1:0 /*<>*/ } - /*<>*/ function update_sensors(ox,oy,sw,sh,ui) + /*<>*/ return [0,v1,v2] /*<>*/ } + /*<>*/ function has_transient_sensor(flags) + { /*<>*/ return 0 !== (flags & Ui[6])?1:0 /*<>*/ } + /*<>*/ function has_permanent_sensor(flags) + { /*<>*/ return 0 !== (flags & Ui[7])?1:0 /*<>*/ } + /*<>*/ function update_sensors(ox,oy,sw,sh,ui) {var ox$0=ox,oy$0=oy,sw$0=sw,sh$0=sh,ui$0=ui; - /*<>*/ for(;;) - { /*<>*/ var - /*<>*/ _zv_=ui$0[7], - /*<>*/ _zw_= - /*<>*/ has_transient_sensor(_zv_); - /*<>*/ if(_zw_) - var _zx_=_zw_; + /*<>*/ for(;;) + { /*<>*/ var + /*<>*/ _Au_=ui$0[7], + /*<>*/ _Av_= + /*<>*/ has_transient_sensor(_Au_); + /*<>*/ if(_Av_) + var _Aw_=_Av_; else - { /*<>*/ var - _z9_=ui$0[7], - /*<>*/ _z__= - /*<>*/ has_permanent_sensor(_z9_); - /*<>*/ if(_z__) - {var _z$_=ui$0[8]; - if(_z$_) + { /*<>*/ var + _A8_=ui$0[7], + /*<>*/ _A9_= + /*<>*/ has_permanent_sensor(_A8_); + /*<>*/ if(_A9_) + {var _A__=ui$0[8]; + if(_A__) {var - match$3=_z$_[1], + match$3=_A__[1], sh$1=match$3[4], sw$1=match$3[3], oy$4=match$3[2], ox$4=match$3[1], - _Aa_=ox$0 == ox$4?1:0; - if(_Aa_) - {var _Ab_=oy$0 == oy$4?1:0; - if(_Ab_) - var _Ac_=sw$0 == sw$1?1:0,_Ad_=_Ac_?sh$0 == sh$1?1:0:_Ac_; + _A$_=ox$0 == ox$4?1:0; + if(_A$_) + {var _Ba_=oy$0 == oy$4?1:0; + if(_Ba_) + var _Bb_=sw$0 == sw$1?1:0,_Bc_=_Bb_?sh$0 == sh$1?1:0:_Bb_; else - var _Ad_=_Ab_} + var _Bc_=_Ba_} else - var _Ad_=_Aa_; - var _Ae_=_Ad_} + var _Bc_=_A$_; + var _Bd_=_Bc_} else - var _Ae_=0; - var _zx_=_Ae_} + var _Bd_=0; + var _Aw_=_Bd_} else - var _zx_=_z__} - /*<>*/ if(_zx_) - { /*<>*/ var - /*<>*/ _zy_=Ui[6], - /*<>*/ _zz_=Stdlib[21], - /*<>*/ _zA_= - /*<>*/ caml_call1(_zz_,_zy_); - /*<>*/ ui$0[7] = ui$0[7] & _zA_; - /*<>*/ /*<>*/ var - _zB_= + var _Aw_=_A9_} + /*<>*/ if(_Aw_) + { /*<>*/ var + /*<>*/ _Ax_=Ui[6], + /*<>*/ _Ay_=Stdlib[21], + /*<>*/ _Az_= + /*<>*/ caml_call1(_Ay_,_Ax_); + /*<>*/ ui$0[7] = ui$0[7] & _Az_; + /*<>*/ /*<>*/ var + _AA_= ui$0[7]; - /*<>*/ if - ( /*<>*/ has_permanent_sensor(_zB_)) - /*<>*/ ui$0[8] = [0,[0,ox$0,oy$0,sw$0,sh$0]]; - /*<>*/ /*<>*/ var _zC_=ui$0[5]; - /*<>*/ switch(_zC_[0]) - {case 0: /*<>*/ return 0; + /*<>*/ if + ( /*<>*/ has_permanent_sensor(_AA_)) + /*<>*/ ui$0[8] = [0,[0,ox$0,oy$0,sw$0,sh$0]]; + /*<>*/ /*<>*/ var _AB_=ui$0[5]; + /*<>*/ switch(_AB_[0]) + {case 0: /*<>*/ return 0; case 2: - var sensor=_zC_[2],t=_zC_[1]; + var sensor=_AB_[2],t=_AB_[1]; ui$0[5] = t[5]; - /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ var sensor$0= - /*<>*/ caml_call4 + /*<>*/ caml_call4 (sensor,ox$0,oy$0,sw$0,sh$0); - /*<>*/ /*<>*/ update_sensors + /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,sw$0,sh$0,t); - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return /*<>*/ caml_call1 (sensor$0,0); case 3: - /*<>*/ var - sensor$1=_zC_[2], - t$0=_zC_[1], - /*<>*/ sensor$2= - /*<>*/ caml_call4 + /*<>*/ var + sensor$1=_AB_[2], + t$0=_AB_[1], + /*<>*/ sensor$2= + /*<>*/ caml_call4 (sensor$1,ox$0,oy$0,sw$0,sh$0); - /*<>*/ /*<>*/ update_sensors + /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,sw$0,sh$0,t$0); - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return /*<>*/ caml_call1 (sensor$2,0); case 4: - /*<>*/ var - g=_zC_[4], - y=_zC_[3], - x=_zC_[2], - t$1=_zC_[1], - _zD_=Gravity[9], - /*<>*/ _zE_= - /*<>*/ caml_call1(_zD_,g), - /*<>*/ _zF_=Gravity[5], - /*<>*/ _zG_= - /*<>*/ caml_call1(_zF_,_zE_), - /*<>*/ _zH_=Gravity[8], - /*<>*/ _zI_= - /*<>*/ caml_call1(_zH_,g), - /*<>*/ _zJ_=Gravity[5], - /*<>*/ _zK_= - /*<>*/ caml_call1(_zJ_,_zI_), - /*<>*/ _zL_=t$1[3], - /*<>*/ _zM_=t$1[1], - /*<>*/ _zN_=Stdlib_Option[3], - /*<>*/ _zO_= - /*<>*/ caml_call2(_zN_,x,_zM_), - /*<>*/ match= - /*<>*/ pack(_zO_,_zL_,sw$0,_zK_,_zG_), - /*<>*/ rw=match[2], - /*<>*/ dx=match[1], - /*<>*/ _zP_=Gravity[9], - /*<>*/ _zQ_= - /*<>*/ caml_call1(_zP_,g), - /*<>*/ _zR_=Gravity[6], - /*<>*/ _zS_= - /*<>*/ caml_call1(_zR_,_zQ_), - /*<>*/ _zT_=Gravity[8], - /*<>*/ _zU_= - /*<>*/ caml_call1(_zT_,g), - /*<>*/ _zV_=Gravity[6], - /*<>*/ _zW_= - /*<>*/ caml_call1(_zV_,_zU_), - /*<>*/ _zX_=t$1[4], - /*<>*/ _zY_=t$1[2], - /*<>*/ _zZ_=Stdlib_Option[3], - /*<>*/ _z0_= - /*<>*/ caml_call2(_zZ_,y,_zY_), - /*<>*/ match$0= - /*<>*/ pack(_z0_,_zX_,sh$0,_zW_,_zS_), - /*<>*/ rh=match$0[2], - /*<>*/ dy=match$0[1], - /*<>*/ oy$1=oy$0 + dy, - /*<>*/ ox$1=ox$0 + dx, + /*<>*/ var + g=_AB_[4], + y=_AB_[3], + x=_AB_[2], + t$1=_AB_[1], + _AC_=Gravity[9], + /*<>*/ _AD_= + /*<>*/ caml_call1(_AC_,g), + /*<>*/ _AE_=Gravity[5], + /*<>*/ _AF_= + /*<>*/ caml_call1(_AE_,_AD_), + /*<>*/ _AG_=Gravity[8], + /*<>*/ _AH_= + /*<>*/ caml_call1(_AG_,g), + /*<>*/ _AI_=Gravity[5], + /*<>*/ _AJ_= + /*<>*/ caml_call1(_AI_,_AH_), + /*<>*/ _AK_=t$1[3], + /*<>*/ _AL_=t$1[1], + /*<>*/ _AM_=Stdlib_Option[3], + /*<>*/ _AN_= + /*<>*/ caml_call2(_AM_,x,_AL_), + /*<>*/ match= + /*<>*/ pack(_AN_,_AK_,sw$0,_AJ_,_AF_), + /*<>*/ rw=match[2], + /*<>*/ dx=match[1], + /*<>*/ _AO_=Gravity[9], + /*<>*/ _AP_= + /*<>*/ caml_call1(_AO_,g), + /*<>*/ _AQ_=Gravity[6], + /*<>*/ _AR_= + /*<>*/ caml_call1(_AQ_,_AP_), + /*<>*/ _AS_=Gravity[8], + /*<>*/ _AT_= + /*<>*/ caml_call1(_AS_,g), + /*<>*/ _AU_=Gravity[6], + /*<>*/ _AV_= + /*<>*/ caml_call1(_AU_,_AT_), + /*<>*/ _AW_=t$1[4], + /*<>*/ _AX_=t$1[2], + /*<>*/ _AY_=Stdlib_Option[3], + /*<>*/ _AZ_= + /*<>*/ caml_call2(_AY_,y,_AX_), + /*<>*/ match$0= + /*<>*/ pack(_AZ_,_AW_,sh$0,_AV_,_AR_), + /*<>*/ rh=match$0[2], + /*<>*/ dy=match$0[1], + /*<>*/ oy$1=oy$0 + dy, + /*<>*/ ox$1=ox$0 + dx, ox$0=ox$1, oy$0=oy$1, sw$0=rw, @@ -569230,170 +569202,170 @@ ui$0=t$1; continue; case 7: - /*<>*/ var - sy=_zC_[3], - sx=_zC_[2], - t$2=_zC_[1], - /*<>*/ oy$2=oy$0 - sy, - /*<>*/ ox$2=ox$0 - sx, + /*<>*/ var + sy=_AB_[3], + sx=_AB_[2], + t$2=_AB_[1], + /*<>*/ oy$2=oy$0 - sy, + /*<>*/ ox$2=ox$0 - sx, ox$0=ox$2, oy$0=oy$2, ui$0=t$2; continue; case 9: - /*<>*/ var - b=_zC_[2], - a=_zC_[1], - _z1_=b[3], - _z2_=b[1], - _z3_=a[3], - _z4_=a[1], - /*<>*/ match$1= - /*<>*/ split(_z4_,_z3_,_z2_,_z1_,sw$0), - /*<>*/ bw=match$1[2], - /*<>*/ aw=match$1[1]; - /*<>*/ /*<>*/ update_sensors + /*<>*/ var + b=_AB_[2], + a=_AB_[1], + _A0_=b[3], + _A1_=b[1], + _A2_=a[3], + _A3_=a[1], + /*<>*/ match$1= + /*<>*/ split(_A3_,_A2_,_A1_,_A0_,sw$0), + /*<>*/ bw=match$1[2], + /*<>*/ aw=match$1[1]; + /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,aw,sh$0,a); - /*<>*/ var - /*<>*/ ox$3=ox$0 + aw, + /*<>*/ var + /*<>*/ ox$3=ox$0 + aw, ox$0=ox$3, sw$0=bw, ui$0=b; continue; case 10: - /*<>*/ var - b$0=_zC_[2], - a$0=_zC_[1], - _z5_=b$0[4], - _z6_=b$0[2], - _z7_=a$0[4], - _z8_=a$0[2], - /*<>*/ match$2= - /*<>*/ split(_z8_,_z7_,_z6_,_z5_,sh$0), - /*<>*/ bh=match$2[2], - /*<>*/ ah=match$2[1]; - /*<>*/ /*<>*/ update_sensors + /*<>*/ var + b$0=_AB_[2], + a$0=_AB_[1], + _A4_=b$0[4], + _A5_=b$0[2], + _A6_=a$0[4], + _A7_=a$0[2], + /*<>*/ match$2= + /*<>*/ split(_A7_,_A6_,_A5_,_A4_,sh$0), + /*<>*/ bh=match$2[2], + /*<>*/ ah=match$2[1]; + /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,sw$0,ah,a$0); - /*<>*/ var - /*<>*/ oy$3=oy$0 + ah, + /*<>*/ var + /*<>*/ oy$3=oy$0 + ah, oy$0=oy$3, sh$0=bh, ui$0=b$0; continue; case 11: - var b$1=_zC_[2],a$1=_zC_[1]; - /*<>*/ /*<>*/ update_sensors + var b$1=_AB_[2],a$1=_AB_[1]; + /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,sw$0,sh$0,a$1); var ui$0=b$1; continue; - default:var ui$1=_zC_[1],ui$0=ui$1;continue}} - return _zx_} /*<>*/ } - /*<>*/ function update_focus(ui) - { /*<>*/ /*<>*/ var _zu_=ui[6]; - /*<>*/ if(typeof _zu_ !== "number" && 1 === _zu_[0]) - { /*<>*/ /*<>*/ var i=_zu_[1]; - /*<>*/ return /*<>*/ solve_focus + default:var ui$1=_AB_[1],ui$0=ui$1;continue}} + return _Aw_} /*<>*/ } + /*<>*/ function update_focus(ui) + { /*<>*/ /*<>*/ var _At_=ui[6]; + /*<>*/ if(typeof _At_ !== "number" && 1 === _At_[0]) + { /*<>*/ /*<>*/ var i=_At_[1]; + /*<>*/ return /*<>*/ solve_focus (ui,i)} - /*<>*/ return 0 /*<>*/ } - /*<>*/ function t_size_of_t(vg,size,ui) - { /*<>*/ var - /*<>*/ _yW_=ui[5], - /*<>*/ desc= - /*<>*/ t_size_desc_of_t(vg,size,_yW_); - /*<>*/ switch(desc[0]) + /*<>*/ return 0 /*<>*/ } + /*<>*/ function t_size_of_t(vg,size,ui) + { /*<>*/ var + /*<>*/ _zV_=ui[5], + /*<>*/ desc= + /*<>*/ t_size_desc_of_t(vg,size,_zV_); + /*<>*/ switch(desc[0]) {case 0: - /*<>*/ var - /*<>*/ i=desc[1], - /*<>*/ _yX_=Gg[15][5], - /*<>*/ _yY_= - /*<>*/ caml_call1(_yX_,size), - /*<>*/ _yZ_=I[3], - /*<>*/ _y0_= - /*<>*/ caml_call3(_yZ_,vg,_yY_,i), - /*<>*/ _y1_= - /*<>*/ caml_call1(Gg[2][13],_y0_), - /*<>*/ _y2_=_y1_[2], - /*<>*/ _y3_=_y1_[1], - h=_y2_, - w=_y3_; + /*<>*/ var + /*<>*/ i=desc[1], + /*<>*/ _zW_=Gg[15][5], + /*<>*/ _zX_= + /*<>*/ caml_call1(_zW_,size), + /*<>*/ _zY_=I[3], + /*<>*/ _zZ_= + /*<>*/ caml_call3(_zY_,vg,_zX_,i), + /*<>*/ _z0_= + /*<>*/ caml_call1(Gg[2][13],_zZ_), + /*<>*/ _z1_=_z0_[2], + /*<>*/ _z2_=_z0_[1], + h=_z1_, + w=_z2_; break; case 4: - /*<>*/ var + /*<>*/ var h$0=desc[3], w$0=desc[2], t$0=desc[1], - _y6_=t$0[2], - _y7_=Stdlib_Option[3], - /*<>*/ h$1= - /*<>*/ caml_call2(_y7_,h$0,_y6_), - /*<>*/ _y8_=t$0[1], - /*<>*/ _y9_=Stdlib_Option[3], - /*<>*/ _y__= - /*<>*/ caml_call2(_y9_,w$0,_y8_), + _z5_=t$0[2], + _z6_=Stdlib_Option[3], + /*<>*/ h$1= + /*<>*/ caml_call2(_z6_,h$0,_z5_), + /*<>*/ _z7_=t$0[1], + /*<>*/ _z8_=Stdlib_Option[3], + /*<>*/ _z9_= + /*<>*/ caml_call2(_z8_,w$0,_z7_), h=h$1, - w=_y__; + w=_z9_; break; case 7: - /*<>*/ var + /*<>*/ var y=desc[3], x=desc[2], t$1=desc[1], - _y$_=t$1[2], - /*<>*/ h$2=_y$_ + y, - /*<>*/ _za_=t$1[1], - /*<>*/ _zb_=_za_ + x, + _z__=t$1[2], + /*<>*/ h$2=_z__ + y, + /*<>*/ _z$_=t$1[1], + /*<>*/ _Aa_=_z$_ + x, h=h$2, - w=_zb_; + w=_Aa_; break; case 9: - /*<>*/ var + /*<>*/ var b=desc[2], a=desc[1], - _zc_=b[2], - _zd_=a[2], - _ze_=Stdlib[17], - /*<>*/ h$3= - /*<>*/ caml_call2(_ze_,_zd_,_zc_), - /*<>*/ _zf_=b[1], - /*<>*/ _zg_=a[1], - /*<>*/ _zh_=_zg_ + _zf_, + _Ab_=b[2], + _Ac_=a[2], + _Ad_=Stdlib[17], + /*<>*/ h$3= + /*<>*/ caml_call2(_Ad_,_Ac_,_Ab_), + /*<>*/ _Ae_=b[1], + /*<>*/ _Af_=a[1], + /*<>*/ _Ag_=_Af_ + _Ae_, h=h$3, - w=_zh_; + w=_Ag_; break; case 10: - /*<>*/ var + /*<>*/ var b$0=desc[2], a$0=desc[1], - _zi_=b$0[2], - _zj_=a$0[2], - /*<>*/ h$4=_zj_ + _zi_, - /*<>*/ _zk_=b$0[1], - /*<>*/ _zl_=a$0[1], - /*<>*/ _zm_=Stdlib[17], - /*<>*/ _zn_= - /*<>*/ caml_call2(_zm_,_zl_,_zk_), + _Ah_=b$0[2], + _Ai_=a$0[2], + /*<>*/ h$4=_Ai_ + _Ah_, + /*<>*/ _Aj_=b$0[1], + /*<>*/ _Ak_=a$0[1], + /*<>*/ _Al_=Stdlib[17], + /*<>*/ _Am_= + /*<>*/ caml_call2(_Al_,_Ak_,_Aj_), h=h$4, - w=_zn_; + w=_Am_; break; case 11: - /*<>*/ var + /*<>*/ var b$1=desc[2], a$1=desc[1], - _zo_=b$1[2], - _zp_=a$1[2], - _zq_=Stdlib[17], - /*<>*/ h$5= - /*<>*/ caml_call2(_zq_,_zp_,_zo_), - /*<>*/ _zr_=b$1[1], - /*<>*/ _zs_=a$1[1], - /*<>*/ _zt_=Stdlib[17], - /*<>*/ w$1= - /*<>*/ caml_call2(_zt_,_zs_,_zr_), + _An_=b$1[2], + _Ao_=a$1[2], + _Ap_=Stdlib[17], + /*<>*/ h$5= + /*<>*/ caml_call2(_Ap_,_Ao_,_An_), + /*<>*/ _Aq_=b$1[1], + /*<>*/ _Ar_=a$1[1], + /*<>*/ _As_=Stdlib[17], + /*<>*/ w$1= + /*<>*/ caml_call2(_As_,_Ar_,_Aq_), h=h$5, w=w$1; break; - default:var t=desc[1],_y4_=t[2],_y5_=t[1],h=_y4_,w=_y5_} - /*<>*/ return [0, + default:var t=desc[1],_z3_=t[2],_z4_=t[1],h=_z3_,w=_z4_} + /*<>*/ return [0, w, h, ui[3], @@ -569402,243 +569374,243 @@ ui[6], ui[7], 0, - Ui[14]] /*<>*/ } - /*<>*/ function t_size_desc_of_t(vg,size,ui) - { /*<>*/ switch(ui[0]) - {case 0: /*<>*/ return ui; + Ui[14]] /*<>*/ } + /*<>*/ function t_size_desc_of_t(vg,size,ui) + { /*<>*/ switch(ui[0]) + {case 0: /*<>*/ return ui; case 1: var v=ui[2],t=ui[1]; - /*<>*/ return [1, - /*<>*/ t_size_of_t(vg,size,t), + /*<>*/ return [1, + /*<>*/ t_size_of_t(vg,size,t), v]; case 2: var v$0=ui[2],t$0=ui[1]; - /*<>*/ return [2, - /*<>*/ t_size_of_t(vg,size,t$0), + /*<>*/ return [2, + /*<>*/ t_size_of_t(vg,size,t$0), v$0]; case 3: var v$1=ui[2],t$1=ui[1]; - /*<>*/ return [3, - /*<>*/ t_size_of_t(vg,size,t$1), + /*<>*/ return [3, + /*<>*/ t_size_of_t(vg,size,t$1), v$1]; case 4: - /*<>*/ var + /*<>*/ var g2=ui[4], h=ui[3], w=ui[2], t$2=ui[1], - _x__=Gg[15][10], - /*<>*/ _x$_= - /*<>*/ caml_call1(_x__,size), - /*<>*/ _ya_=Stdlib_Option[3], - /*<>*/ _yb_= - /*<>*/ caml_call2(_ya_,h,_x$_), - /*<>*/ _yc_=Gg[15][9], - /*<>*/ _yd_= - /*<>*/ caml_call1(_yc_,size), - /*<>*/ _ye_=Stdlib_Option[3], - /*<>*/ _yf_= - /*<>*/ caml_call2(_ye_,w,_yd_), - /*<>*/ _yg_=Gg[2][2], - /*<>*/ _yh_= - /*<>*/ caml_call2(_yg_,_yf_,_yb_), - /*<>*/ _yi_=Gg[15][5], - /*<>*/ _yj_= - /*<>*/ caml_call1(_yi_,size), - /*<>*/ _yk_=Gg[15][2], - /*<>*/ _yl_= - /*<>*/ caml_call2(_yk_,_yj_,_yh_); - /*<>*/ return [4, - /*<>*/ t_size_of_t(vg,_yl_,t$2), + _y9_=Gg[15][10], + /*<>*/ _y__= + /*<>*/ caml_call1(_y9_,size), + /*<>*/ _y$_=Stdlib_Option[3], + /*<>*/ _za_= + /*<>*/ caml_call2(_y$_,h,_y__), + /*<>*/ _zb_=Gg[15][9], + /*<>*/ _zc_= + /*<>*/ caml_call1(_zb_,size), + /*<>*/ _zd_=Stdlib_Option[3], + /*<>*/ _ze_= + /*<>*/ caml_call2(_zd_,w,_zc_), + /*<>*/ _zf_=Gg[2][2], + /*<>*/ _zg_= + /*<>*/ caml_call2(_zf_,_ze_,_za_), + /*<>*/ _zh_=Gg[15][5], + /*<>*/ _zi_= + /*<>*/ caml_call1(_zh_,size), + /*<>*/ _zj_=Gg[15][2], + /*<>*/ _zk_= + /*<>*/ caml_call2(_zj_,_zi_,_zg_); + /*<>*/ return [4, + /*<>*/ t_size_of_t(vg,_zk_,t$2), w, h, g2]; case 5: var v$2=ui[2],t$3=ui[1]; - /*<>*/ return [5, - /*<>*/ t_size_of_t(vg,size,t$3), + /*<>*/ return [5, + /*<>*/ t_size_of_t(vg,size,t$3), v$2]; case 6: var v$3=ui[2],t$4=ui[1]; - /*<>*/ return [6, - /*<>*/ t_size_of_t(vg,size,t$4), + /*<>*/ return [6, + /*<>*/ t_size_of_t(vg,size,t$4), v$3]; case 7: - /*<>*/ var + /*<>*/ var sy=ui[3], sx=ui[2], t$5=ui[1], - _ym_=Gg[15][18], - /*<>*/ _yn_= - /*<>*/ caml_call1(_ym_,size), - /*<>*/ _yo_=[0,sx,sy], - /*<>*/ _yp_=Gg[2][12], - /*<>*/ _yq_= - /*<>*/ caml_call1(_yp_,_yo_), - /*<>*/ _yr_=Gg[15][5], - /*<>*/ _ys_= - /*<>*/ caml_call1(_yr_,size), - /*<>*/ _yt_=Gg[2][37], - /*<>*/ _yu_= - /*<>*/ caml_call2(_yt_,_ys_,_yq_), - /*<>*/ _yv_=Gg[15][13], - /*<>*/ _yw_= - /*<>*/ caml_call2(_yv_,_yu_,_yn_); - /*<>*/ return [7, - /*<>*/ t_size_of_t(vg,_yw_,t$5), + _zl_=Gg[15][18], + /*<>*/ _zm_= + /*<>*/ caml_call1(_zl_,size), + /*<>*/ _zn_=[0,sx,sy], + /*<>*/ _zo_=Gg[2][12], + /*<>*/ _zp_= + /*<>*/ caml_call1(_zo_,_zn_), + /*<>*/ _zq_=Gg[15][5], + /*<>*/ _zr_= + /*<>*/ caml_call1(_zq_,size), + /*<>*/ _zs_=Gg[2][37], + /*<>*/ _zt_= + /*<>*/ caml_call2(_zs_,_zr_,_zp_), + /*<>*/ _zu_=Gg[15][13], + /*<>*/ _zv_= + /*<>*/ caml_call2(_zu_,_zt_,_zm_); + /*<>*/ return [7, + /*<>*/ t_size_of_t(vg,_zv_,t$5), sx, sy]; case 8: var v$4=ui[2],t$6=ui[1]; - /*<>*/ return [8, - /*<>*/ t_size_of_t(vg,size,t$6), + /*<>*/ return [8, + /*<>*/ t_size_of_t(vg,size,t$6), v$4]; case 9: - /*<>*/ var + /*<>*/ var b=ui[2], a=ui[1], - /*<>*/ a$0= - /*<>*/ t_size_of_t(vg,size,a), - /*<>*/ _yx_=Gg[15][18], - /*<>*/ _yy_= - /*<>*/ caml_call1(_yx_,size), - /*<>*/ _yz_=Gg[15][17], - /*<>*/ _yA_= - /*<>*/ caml_call1(_yz_,size), - /*<>*/ _yB_=a$0[1], - /*<>*/ _yC_=Gg[15][16], - /*<>*/ _yD_= - /*<>*/ caml_call1(_yC_,size), - /*<>*/ _yE_=_yD_ + _yB_, - /*<>*/ _yF_=Gg[2][2], - /*<>*/ _yG_= - /*<>*/ caml_call2(_yF_,_yE_,_yA_), - /*<>*/ _yH_=Gg[15][13], - /*<>*/ _yI_= - /*<>*/ caml_call2(_yH_,_yG_,_yy_), - /*<>*/ b$0= - /*<>*/ t_size_of_t(vg,_yI_,b); - /*<>*/ return [9,a$0,b$0]; + /*<>*/ a$0= + /*<>*/ t_size_of_t(vg,size,a), + /*<>*/ _zw_=Gg[15][18], + /*<>*/ _zx_= + /*<>*/ caml_call1(_zw_,size), + /*<>*/ _zy_=Gg[15][17], + /*<>*/ _zz_= + /*<>*/ caml_call1(_zy_,size), + /*<>*/ _zA_=a$0[1], + /*<>*/ _zB_=Gg[15][16], + /*<>*/ _zC_= + /*<>*/ caml_call1(_zB_,size), + /*<>*/ _zD_=_zC_ + _zA_, + /*<>*/ _zE_=Gg[2][2], + /*<>*/ _zF_= + /*<>*/ caml_call2(_zE_,_zD_,_zz_), + /*<>*/ _zG_=Gg[15][13], + /*<>*/ _zH_= + /*<>*/ caml_call2(_zG_,_zF_,_zx_), + /*<>*/ b$0= + /*<>*/ t_size_of_t(vg,_zH_,b); + /*<>*/ return [9,a$0,b$0]; case 10: - /*<>*/ var + /*<>*/ var b$1=ui[2], a$1=ui[1], - /*<>*/ a$2= - /*<>*/ t_size_of_t(vg,size,a$1), - /*<>*/ _yJ_=Gg[15][18], - /*<>*/ _yK_= - /*<>*/ caml_call1(_yJ_,size), - /*<>*/ _yL_=a$2[2], - /*<>*/ _yM_=Gg[15][17], - /*<>*/ _yN_= - /*<>*/ caml_call1(_yM_,size), - /*<>*/ _yO_=_yN_ + _yL_, - /*<>*/ _yP_=Gg[15][16], - /*<>*/ _yQ_= - /*<>*/ caml_call1(_yP_,size), - /*<>*/ _yR_=Gg[2][2], - /*<>*/ _yS_= - /*<>*/ caml_call2(_yR_,_yQ_,_yO_), - /*<>*/ _yT_=Gg[15][13], - /*<>*/ _yU_= - /*<>*/ caml_call2(_yT_,_yS_,_yK_), - /*<>*/ b$2= - /*<>*/ t_size_of_t(vg,_yU_,b$1); - /*<>*/ return [10,a$2,b$2]; + /*<>*/ a$2= + /*<>*/ t_size_of_t(vg,size,a$1), + /*<>*/ _zI_=Gg[15][18], + /*<>*/ _zJ_= + /*<>*/ caml_call1(_zI_,size), + /*<>*/ _zK_=a$2[2], + /*<>*/ _zL_=Gg[15][17], + /*<>*/ _zM_= + /*<>*/ caml_call1(_zL_,size), + /*<>*/ _zN_=_zM_ + _zK_, + /*<>*/ _zO_=Gg[15][16], + /*<>*/ _zP_= + /*<>*/ caml_call1(_zO_,size), + /*<>*/ _zQ_=Gg[2][2], + /*<>*/ _zR_= + /*<>*/ caml_call2(_zQ_,_zP_,_zN_), + /*<>*/ _zS_=Gg[15][13], + /*<>*/ _zT_= + /*<>*/ caml_call2(_zS_,_zR_,_zJ_), + /*<>*/ b$2= + /*<>*/ t_size_of_t(vg,_zT_,b$1); + /*<>*/ return [10,a$2,b$2]; default: - /*<>*/ var + /*<>*/ var b$3=ui[2], a$3=ui[1], - /*<>*/ _yV_= - /*<>*/ t_size_of_t(vg,size,b$3); - /*<>*/ return [11, - /*<>*/ t_size_of_t(vg,size,a$3), - _yV_]} /*<>*/ } - /*<>*/ function update(t,size,ui) - { /*<>*/ t[2] = size; - /*<>*/ var - /*<>*/ _xZ_=Gg[2][8], - /*<>*/ _x0_=Gg[15][2], - /*<>*/ _x1_= - /*<>*/ caml_call2(_x0_,_xZ_,size), - /*<>*/ _x2_=t[1]; - /*<>*/ t[3] + /*<>*/ _zU_= + /*<>*/ t_size_of_t(vg,size,b$3); + /*<>*/ return [11, + /*<>*/ t_size_of_t(vg,size,a$3), + _zU_]} /*<>*/ } + /*<>*/ function update(t,size,ui) + { /*<>*/ t[2] = size; + /*<>*/ var + /*<>*/ _yY_=Gg[2][8], + /*<>*/ _yZ_=Gg[15][2], + /*<>*/ _y0_= + /*<>*/ caml_call2(_yZ_,_yY_,size), + /*<>*/ _y1_=t[1]; + /*<>*/ t[3] = - /*<>*/ t_size_of_t(_x2_,_x1_,ui); - /*<>*/ var - /*<>*/ _x3_=t[3], - /*<>*/ _x4_=Gg[5][4], - /*<>*/ _x5_= - /*<>*/ caml_call1(_x4_,size), - /*<>*/ _x6_=Gg[5][3], - /*<>*/ _x7_= - /*<>*/ caml_call1(_x6_,size), - /*<>*/ _x8_=0., - /*<>*/ _x9_=0.; - /*<>*/ /*<>*/ update_sensors - (_x9_,_x8_,_x7_,_x5_,_x3_); - /*<>*/ return /*<>*/ update_focus - (t[3]) /*<>*/ } - /*<>*/ function _ep_(st,x,y,btn,w,h,t) - { /*<>*/ function handle(ox,oy,f) - { /*<>*/ var - /*<>*/ _xX_=y - oy, - /*<>*/ _xY_=x - ox, - /*<>*/ match= - /*<>*/ caml_call3(f,_xY_,_xX_,btn); - /*<>*/ if(typeof match === "number") + /*<>*/ t_size_of_t(_y1_,_y0_,ui); + /*<>*/ var + /*<>*/ _y2_=t[3], + /*<>*/ _y3_=Gg[5][4], + /*<>*/ _y4_= + /*<>*/ caml_call1(_y3_,size), + /*<>*/ _y5_=Gg[5][3], + /*<>*/ _y6_= + /*<>*/ caml_call1(_y5_,size), + /*<>*/ _y7_=0., + /*<>*/ _y8_=0.; + /*<>*/ /*<>*/ update_sensors + (_y8_,_y7_,_y6_,_y4_,_y2_); + /*<>*/ return /*<>*/ update_focus + (t[3]) /*<>*/ } + /*<>*/ function _eq_(st,x,y,btn,w,h,t) + { /*<>*/ function handle(ox,oy,f) + { /*<>*/ var + /*<>*/ _yW_=y - oy, + /*<>*/ _yX_=x - ox, + /*<>*/ match= + /*<>*/ caml_call3(f,_yX_,_yW_,btn); + /*<>*/ if(typeof match === "number") return 321312668 <= match?1:0; - /*<>*/ /*<>*/ var f$0=match[2]; - /*<>*/ st[4] = [0,f$0]; - /*<>*/ return 1 /*<>*/ } - /*<>*/ function aux(ox,oy,sw,sh,t) + /*<>*/ /*<>*/ var f$0=match[2]; + /*<>*/ st[4] = [0,f$0]; + /*<>*/ return 1 /*<>*/ } + /*<>*/ function aux(ox,oy,sw,sh,t) {var ox$0=ox,oy$0=oy,sw$0=sw,sh$0=sh,t$0=t; - /*<>*/ for(;;) - { /*<>*/ /*<>*/ var _xc_=t$0[5]; - /*<>*/ switch(_xc_[0]) - {case 0: /*<>*/ return 0; + /*<>*/ for(;;) + { /*<>*/ /*<>*/ var _yb_=t$0[5]; + /*<>*/ switch(_yb_[0]) + {case 0: /*<>*/ return 0; case 4: - /*<>*/ var - g=_xc_[4], - t$2=_xc_[1], - _xd_=Gravity[9], - /*<>*/ _xe_= - /*<>*/ caml_call1(_xd_,g), - /*<>*/ _xf_=Gravity[5], - /*<>*/ _xg_= - /*<>*/ caml_call1(_xf_,_xe_), - /*<>*/ _xh_=Gravity[8], - /*<>*/ _xi_= - /*<>*/ caml_call1(_xh_,g), - /*<>*/ _xj_=Gravity[5], - /*<>*/ _xk_= - /*<>*/ caml_call1(_xj_,_xi_), - /*<>*/ _xl_=t$2[3], - /*<>*/ _xm_=t$2[1], - /*<>*/ match= - /*<>*/ pack(_xm_,_xl_,sw$0,_xk_,_xg_), - /*<>*/ rw=match[2], - /*<>*/ dx=match[1], - /*<>*/ _xn_=Gravity[9], - /*<>*/ _xo_= - /*<>*/ caml_call1(_xn_,g), - /*<>*/ _xp_=Gravity[6], - /*<>*/ _xq_= - /*<>*/ caml_call1(_xp_,_xo_), - /*<>*/ _xr_=Gravity[8], - /*<>*/ _xs_= - /*<>*/ caml_call1(_xr_,g), - /*<>*/ _xt_=Gravity[6], - /*<>*/ _xu_= - /*<>*/ caml_call1(_xt_,_xs_), - /*<>*/ _xv_=t$2[4], - /*<>*/ _xw_=t$2[2], - /*<>*/ match$0= - /*<>*/ pack(_xw_,_xv_,sh$0,_xu_,_xq_), - /*<>*/ rh=match$0[2], - /*<>*/ dy=match$0[1], - /*<>*/ oy$1=oy$0 + dy, - /*<>*/ ox$1=ox$0 + dx, + /*<>*/ var + g=_yb_[4], + t$2=_yb_[1], + _yc_=Gravity[9], + /*<>*/ _yd_= + /*<>*/ caml_call1(_yc_,g), + /*<>*/ _ye_=Gravity[5], + /*<>*/ _yf_= + /*<>*/ caml_call1(_ye_,_yd_), + /*<>*/ _yg_=Gravity[8], + /*<>*/ _yh_= + /*<>*/ caml_call1(_yg_,g), + /*<>*/ _yi_=Gravity[5], + /*<>*/ _yj_= + /*<>*/ caml_call1(_yi_,_yh_), + /*<>*/ _yk_=t$2[3], + /*<>*/ _yl_=t$2[1], + /*<>*/ match= + /*<>*/ pack(_yl_,_yk_,sw$0,_yj_,_yf_), + /*<>*/ rw=match[2], + /*<>*/ dx=match[1], + /*<>*/ _ym_=Gravity[9], + /*<>*/ _yn_= + /*<>*/ caml_call1(_ym_,g), + /*<>*/ _yo_=Gravity[6], + /*<>*/ _yp_= + /*<>*/ caml_call1(_yo_,_yn_), + /*<>*/ _yq_=Gravity[8], + /*<>*/ _yr_= + /*<>*/ caml_call1(_yq_,g), + /*<>*/ _ys_=Gravity[6], + /*<>*/ _yt_= + /*<>*/ caml_call1(_ys_,_yr_), + /*<>*/ _yu_=t$2[4], + /*<>*/ _yv_=t$2[2], + /*<>*/ match$0= + /*<>*/ pack(_yv_,_yu_,sh$0,_yt_,_yp_), + /*<>*/ rh=match$0[2], + /*<>*/ dy=match$0[1], + /*<>*/ oy$1=oy$0 + dy, + /*<>*/ ox$1=ox$0 + dx, ox$0=ox$1, oy$0=oy$1, sw$0=rw, @@ -569646,961 +569618,961 @@ t$0=t$2; continue; case 5: - /*<>*/ var - f=_xc_[2], - t$3=_xc_[1], - _xx_=720626325, - _xy_=720626325, - _xz_=t$3[3], - _xA_=t$3[1], - /*<>*/ match$1= - /*<>*/ pack(_xA_,_xz_,sw$0,_xy_,_xx_), - /*<>*/ _xB_=match$1[2], - /*<>*/ _xC_=match$1[1], - /*<>*/ _xD_=720626325, - /*<>*/ _xE_=720626325, - /*<>*/ _xF_=t$3[4], - /*<>*/ _xG_=t$3[2], - /*<>*/ match$2= - /*<>*/ pack(_xG_,_xF_,sh$0,_xE_,_xD_), - /*<>*/ rh$0=match$2[2], - /*<>*/ offsety=match$2[1]; - if(_xC_ == 0. && offsety == 0.) - { /*<>*/ /*<>*/ var - _xH_= + /*<>*/ var + f=_yb_[2], + t$3=_yb_[1], + _yw_=720626325, + _yx_=720626325, + _yy_=t$3[3], + _yz_=t$3[1], + /*<>*/ match$1= + /*<>*/ pack(_yz_,_yy_,sw$0,_yx_,_yw_), + /*<>*/ _yA_=match$1[2], + /*<>*/ _yB_=match$1[1], + /*<>*/ _yC_=720626325, + /*<>*/ _yD_=720626325, + /*<>*/ _yE_=t$3[4], + /*<>*/ _yF_=t$3[2], + /*<>*/ match$2= + /*<>*/ pack(_yF_,_yE_,sh$0,_yD_,_yC_), + /*<>*/ rh$0=match$2[2], + /*<>*/ offsety=match$2[1]; + if(_yB_ == 0. && offsety == 0.) + { /*<>*/ /*<>*/ var + _yG_= 0. <= x - ox$0?1:0; - /*<>*/ if(_xH_) - { /*<>*/ /*<>*/ var - _xI_= - x - ox$0 <= _xB_?1:0; - /*<>*/ if(_xI_) - /*<>*/ var - /*<>*/ _xJ_=0. <= y - oy$0?1:0, - /*<>*/ _xK_= - _xJ_?y - oy$0 <= rh$0?1:0:_xJ_; + /*<>*/ if(_yG_) + { /*<>*/ /*<>*/ var + _yH_= + x - ox$0 <= _yA_?1:0; + /*<>*/ if(_yH_) + /*<>*/ var + /*<>*/ _yI_=0. <= y - oy$0?1:0, + /*<>*/ _yJ_= + _yI_?y - oy$0 <= rh$0?1:0:_yI_; else - var _xK_=_xI_} + var _yJ_=_yH_} else - var _xK_=_xH_; - if(_xK_) - { /*<>*/ /*<>*/ var - _xL_= - /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,t$3); - /*<>*/ if(! _xL_) + var _yJ_=_yG_; + if(_yJ_) + { /*<>*/ /*<>*/ var + _yK_= + /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,t$3); + /*<>*/ if(! _yK_) return handle(ox$0,oy$0,f); - /*<>*/ var _xM_=_xL_} + /*<>*/ var _yL_=_yK_} else - var _xM_=_xK_; - return _xM_} - throw [0,Assert_failure,_eq_]; + var _yL_=_yJ_; + return _yL_} + throw [0,Assert_failure,_er_]; case 7: - /*<>*/ var - sy=_xc_[3], - sx=_xc_[2], - desc=_xc_[1], - /*<>*/ oy$2=oy$0 - sy, - /*<>*/ ox$2=ox$0 - sx, + /*<>*/ var + sy=_yb_[3], + sx=_yb_[2], + desc=_yb_[1], + /*<>*/ oy$2=oy$0 - sy, + /*<>*/ ox$2=ox$0 - sx, ox$0=ox$2, oy$0=oy$2, t$0=desc; continue; case 8: - /*<>*/ var - f$0=_xc_[2], - n=_xc_[1], - _xN_=[0,529696261,[0,[0,-608844957,btn],[0,x,y],0]], - /*<>*/ match$3= - /*<>*/ caml_call1(f$0,_xN_); - /*<>*/ if(321312668 <= match$3) - /*<>*/ return 1; - /*<>*/ var t$0=n; + /*<>*/ var + f$0=_yb_[2], + n=_yb_[1], + _yM_=[0,529696261,[0,[0,-608844957,btn],[0,x,y],0]], + /*<>*/ match$3= + /*<>*/ caml_call1(f$0,_yM_); + /*<>*/ if(321312668 <= match$3) + /*<>*/ return 1; + /*<>*/ var t$0=n; continue; case 9: - /*<>*/ var - b=_xc_[2], - a=_xc_[1], - _xO_=b[3], - _xP_=b[1], - _xQ_=a[3], - _xR_=a[1], - /*<>*/ match$4= - /*<>*/ split(_xR_,_xQ_,_xP_,_xO_,sw$0), - /*<>*/ bw=match$4[2], - /*<>*/ aw=match$4[1]; - /*<>*/ if(x - ox$0 < aw) + /*<>*/ var + b=_yb_[2], + a=_yb_[1], + _yN_=b[3], + _yO_=b[1], + _yP_=a[3], + _yQ_=a[1], + /*<>*/ match$4= + /*<>*/ split(_yQ_,_yP_,_yO_,_yN_,sw$0), + /*<>*/ bw=match$4[2], + /*<>*/ aw=match$4[1]; + /*<>*/ if(x - ox$0 < aw) {var sw$0=aw,t$0=a;continue} - /*<>*/ var - /*<>*/ ox$3=ox$0 + aw, + /*<>*/ var + /*<>*/ ox$3=ox$0 + aw, ox$0=ox$3, sw$0=bw, t$0=b; continue; case 10: - /*<>*/ var - b$0=_xc_[2], - a$0=_xc_[1], - _xS_=b$0[4], - _xT_=b$0[2], - _xU_=a$0[4], - _xV_=a$0[2], - /*<>*/ match$5= - /*<>*/ split(_xV_,_xU_,_xT_,_xS_,sh$0), - /*<>*/ bh=match$5[2], - /*<>*/ ah=match$5[1]; - /*<>*/ if(y - oy$0 < ah) + /*<>*/ var + b$0=_yb_[2], + a$0=_yb_[1], + _yR_=b$0[4], + _yS_=b$0[2], + _yT_=a$0[4], + _yU_=a$0[2], + /*<>*/ match$5= + /*<>*/ split(_yU_,_yT_,_yS_,_yR_,sh$0), + /*<>*/ bh=match$5[2], + /*<>*/ ah=match$5[1]; + /*<>*/ if(y - oy$0 < ah) {var sh$0=ah,t$0=a$0;continue} - /*<>*/ var - /*<>*/ oy$3=oy$0 + ah, + /*<>*/ var + /*<>*/ oy$3=oy$0 + ah, oy$0=oy$3, sh$0=bh, t$0=b$0; continue; case 11: - /*<>*/ var - b$1=_xc_[2], - a$1=_xc_[1], - /*<>*/ _xW_= - /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,b$1); - /*<>*/ if(_xW_)return _xW_; - /*<>*/ var t$0=a$1; + /*<>*/ var + b$1=_yb_[2], + a$1=_yb_[1], + /*<>*/ _yV_= + /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,b$1); + /*<>*/ if(_yV_)return _yV_; + /*<>*/ var t$0=a$1; continue; - default:var t$1=_xc_[1],t$0=t$1;continue}} /*<>*/ } - /*<>*/ return /*<>*/ aux - (0.,0.,w,h,t) /*<>*/ } - /*<>*/ function release_grab(st,x,y) - { /*<>*/ /*<>*/ var _xb_=st[4]; - /*<>*/ if(_xb_) - {var match=_xb_[1],release=match[2]; + default:var t$1=_yb_[1],t$0=t$1;continue}} /*<>*/ } + /*<>*/ return /*<>*/ aux + (0.,0.,w,h,t) /*<>*/ } + /*<>*/ function release_grab(st,x,y) + { /*<>*/ /*<>*/ var _ya_=st[4]; + /*<>*/ if(_ya_) + {var match=_ya_[1],release=match[2]; st[4] = 0; return caml_call2(release,x,y)} - /*<>*/ return 0 /*<>*/ } - /*<>*/ function resize_canvas(vg,rw,rh,image) - { /*<>*/ var - /*<>*/ _w7_=Gg[2][8], - /*<>*/ _w8_=I[3], - /*<>*/ _w9_= - /*<>*/ caml_call3(_w8_,vg,_w7_,image), - /*<>*/ _w__=Gg[2][13], - /*<>*/ match= - /*<>*/ caml_call1(_w__,_w9_), - /*<>*/ h=match[2], - /*<>*/ w=match[1]; - if(w == rw && h == rh) /*<>*/ return image; - /*<>*/ var - /*<>*/ _w$_=[0,rh - h], - /*<>*/ _xa_=0; - /*<>*/ return /*<>*/ caml_call5 - (I[15],0,[0,rw - w],_xa_,_w$_,image) /*<>*/ } - /*<>*/ function resize_canvas2(vg,ox,oy,rw,rh,image) - { /*<>*/ var - /*<>*/ _wZ_=Gg[2][8], - /*<>*/ _w0_=I[3], - /*<>*/ _w1_= - /*<>*/ caml_call3(_w0_,vg,_wZ_,image), - /*<>*/ _w2_=Gg[2][13], - /*<>*/ match= - /*<>*/ caml_call1(_w2_,_w1_), - /*<>*/ h=match[2], - /*<>*/ w=match[1], - /*<>*/ _w3_=rh - h, - /*<>*/ _w4_=[0,_w3_ - oy], - /*<>*/ _w5_=[0,oy], - /*<>*/ _w6_=rw - w; - /*<>*/ return /*<>*/ caml_call5 - (I[15],[0,ox],[0,_w6_ - ox],_w5_,_w4_,image) /*<>*/ } - /*<>*/ function same_size(vg,w,h,image) - { /*<>*/ var - /*<>*/ _wT_=Gg[2][8], - /*<>*/ _wU_=I[3], - /*<>*/ _wV_= - /*<>*/ caml_call3(_wU_,vg,_wT_,image), - /*<>*/ _wW_=[0,w,h], - /*<>*/ _wX_=Gg[2][12], - /*<>*/ _wY_= - /*<>*/ caml_call1(_wX_,_wW_); - /*<>*/ return /*<>*/ caml_call2 - (Gg[2][48],_wY_,_wV_) /*<>*/ } - /*<>*/ function dispatch_mouse(t,param) + /*<>*/ return 0 /*<>*/ } + /*<>*/ function resize_canvas(vg,rw,rh,image) + { /*<>*/ var + /*<>*/ _x6_=Gg[2][8], + /*<>*/ _x7_=I[3], + /*<>*/ _x8_= + /*<>*/ caml_call3(_x7_,vg,_x6_,image), + /*<>*/ _x9_=Gg[2][13], + /*<>*/ match= + /*<>*/ caml_call1(_x9_,_x8_), + /*<>*/ h=match[2], + /*<>*/ w=match[1]; + if(w == rw && h == rh) /*<>*/ return image; + /*<>*/ var + /*<>*/ _x__=[0,rh - h], + /*<>*/ _x$_=0; + /*<>*/ return /*<>*/ caml_call5 + (I[15],0,[0,rw - w],_x$_,_x__,image) /*<>*/ } + /*<>*/ function resize_canvas2(vg,ox,oy,rw,rh,image) + { /*<>*/ var + /*<>*/ _xY_=Gg[2][8], + /*<>*/ _xZ_=I[3], + /*<>*/ _x0_= + /*<>*/ caml_call3(_xZ_,vg,_xY_,image), + /*<>*/ _x1_=Gg[2][13], + /*<>*/ match= + /*<>*/ caml_call1(_x1_,_x0_), + /*<>*/ h=match[2], + /*<>*/ w=match[1], + /*<>*/ _x2_=rh - h, + /*<>*/ _x3_=[0,_x2_ - oy], + /*<>*/ _x4_=[0,oy], + /*<>*/ _x5_=rw - w; + /*<>*/ return /*<>*/ caml_call5 + (I[15],[0,ox],[0,_x5_ - ox],_x4_,_x3_,image) /*<>*/ } + /*<>*/ function same_size(vg,w,h,image) + { /*<>*/ var + /*<>*/ _xS_=Gg[2][8], + /*<>*/ _xT_=I[3], + /*<>*/ _xU_= + /*<>*/ caml_call3(_xT_,vg,_xS_,image), + /*<>*/ _xV_=[0,w,h], + /*<>*/ _xW_=Gg[2][12], + /*<>*/ _xX_= + /*<>*/ caml_call1(_xW_,_xV_); + /*<>*/ return /*<>*/ caml_call2 + (Gg[2][48],_xX_,_xU_) /*<>*/ } + /*<>*/ function dispatch_mouse(t,param) {var match=param[2],y=match[2],x=match[1],event=param[1]; if(typeof event === "number") if(759781396 <= event) - { /*<>*/ /*<>*/ var _wN_=t[4]; - /*<>*/ if(_wN_) - {var match$0=_wN_[1],drag=match$0[1]; - /*<>*/ /*<>*/ caml_call2 + { /*<>*/ /*<>*/ var _xM_=t[4]; + /*<>*/ if(_xM_) + {var match$0=_xM_[1],drag=match$0[1]; + /*<>*/ /*<>*/ caml_call2 (drag,x,y); - var _wO_=1} + var _xN_=1} else - var _wO_=0; - /*<>*/ var _wP_=_wO_} + var _xN_=0; + /*<>*/ var _xO_=_xN_} else - { /*<>*/ /*<>*/ release_grab + { /*<>*/ /*<>*/ release_grab (t,x,y); - var _wP_=1} + var _xO_=1} else - { /*<>*/ /*<>*/ var btn=event[2]; - /*<>*/ /*<>*/ release_grab + { /*<>*/ /*<>*/ var btn=event[2]; + /*<>*/ /*<>*/ release_grab (t,x,y); - /*<>*/ var - /*<>*/ _wQ_=t[2], - /*<>*/ _wR_=Gg[2][13], - /*<>*/ match$1= - /*<>*/ caml_call1(_wR_,_wQ_), - /*<>*/ h=match$1[2], - /*<>*/ w=match$1[1], - /*<>*/ _wS_=t[3], - _wP_= /*<>*/ _ep_(t,x,y,btn,w,h,_wS_)} - /*<>*/ return _wP_?321312668:-475359645} - /*<>*/ function render_node(vg,vx1,vy1,vx2,vy2,sw,sh,t) - { /*<>*/ var - /*<>*/ cache=t[9], - /*<>*/ _tA_=cache[1], - /*<>*/ _tB_=Interval[3], - /*<>*/ _tC_= - /*<>*/ caml_call1(_tB_,_tA_) <= vx1?1:0; - /*<>*/ if(_tC_) - { /*<>*/ var - _tD_=cache[2], - _tE_=Interval[3], - /*<>*/ _tF_= - /*<>*/ caml_call1(_tE_,_tD_) <= vy1?1:0; - /*<>*/ if(_tF_) - { /*<>*/ var - _tG_=cache[1], - _tH_=Interval[4], - /*<>*/ _tI_= - vx2 <= /*<>*/ caml_call1(_tH_,_tG_)?1:0; - /*<>*/ if(_tI_) + /*<>*/ var + /*<>*/ _xP_=t[2], + /*<>*/ _xQ_=Gg[2][13], + /*<>*/ match$1= + /*<>*/ caml_call1(_xQ_,_xP_), + /*<>*/ h=match$1[2], + /*<>*/ w=match$1[1], + /*<>*/ _xR_=t[3], + _xO_= /*<>*/ _eq_(t,x,y,btn,w,h,_xR_)} + /*<>*/ return _xO_?321312668:-475359645} + /*<>*/ function render_node(vg,vx1,vy1,vx2,vy2,sw,sh,t) + { /*<>*/ var + /*<>*/ cache=t[9], + /*<>*/ _uz_=cache[1], + /*<>*/ _uA_=Interval[3], + /*<>*/ _uB_= + /*<>*/ caml_call1(_uA_,_uz_) <= vx1?1:0; + /*<>*/ if(_uB_) + { /*<>*/ var + _uC_=cache[2], + _uD_=Interval[3], + /*<>*/ _uE_= + /*<>*/ caml_call1(_uD_,_uC_) <= vy1?1:0; + /*<>*/ if(_uE_) + { /*<>*/ var + _uF_=cache[1], + _uG_=Interval[4], + /*<>*/ _uH_= + vx2 <= /*<>*/ caml_call1(_uG_,_uF_)?1:0; + /*<>*/ if(_uH_) var - _tJ_=cache[2], - _tK_=Interval[4], - _tL_=vy2 <= /*<>*/ caml_call1(_tK_,_tJ_)?1:0; + _uI_=cache[2], + _uJ_=Interval[4], + _uK_=vy2 <= /*<>*/ caml_call1(_uJ_,_uI_)?1:0; else - var _tL_=_tI_} + var _uK_=_uH_} else - var _tL_=_tF_} + var _uK_=_uE_} else - var _tL_=_tC_; - if(_tL_) /*<>*/ return t[9]; + var _uK_=_uB_; + if(_uK_) /*<>*/ return t[9]; if(! (vx2 < 0.) && ! (vy2 < 0.) && ! (sw < vx1) && ! (sh < vy1)) - { /*<>*/ /*<>*/ var _tR_=t[5]; - /*<>*/ switch(_tR_[0]) + { /*<>*/ /*<>*/ var _uQ_=t[5]; + /*<>*/ switch(_uQ_[0]) {case 0: - var image=_tR_[1],_tS_=t[6],_tT_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_tT_,_tS_)) - { /*<>*/ var - /*<>*/ _tU_= + var image=_uQ_[1],_uR_=t[6],_uS_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_uS_,_uR_)) + { /*<>*/ var + /*<>*/ _uT_= function(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_er_) /*<>*/ }, - /*<>*/ _tV_=0, - /*<>*/ _tW_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_tW_,_tV_,_tU_); - /*<>*/ var - /*<>*/ _tX_=Style[15], - /*<>*/ _tY_=I[6], - image$0= /*<>*/ caml_call2(_tY_,_tX_,image)} + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_es_) /*<>*/ }, + /*<>*/ _uU_=0, + /*<>*/ _uV_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_uV_,_uU_,_uT_); + /*<>*/ var + /*<>*/ _uW_=Style[15], + /*<>*/ _uX_=I[6], + image$0= /*<>*/ caml_call2(_uX_,_uW_,image)} else var image$0=image; - /*<>*/ var - /*<>*/ _tZ_= - /*<>*/ resize_canvas(vg,sw,sh,image$0), - /*<>*/ _t0_=0., - /*<>*/ _t1_=Interval[1], - /*<>*/ _t2_= - /*<>*/ caml_call2(_t1_,_t0_,sh), - /*<>*/ _t3_=0., - /*<>*/ _t4_=Interval[1], + /*<>*/ var + /*<>*/ _uY_= + /*<>*/ resize_canvas(vg,sw,sh,image$0), + /*<>*/ _uZ_=0., + /*<>*/ _u0_=Interval[1], + /*<>*/ _u1_= + /*<>*/ caml_call2(_u0_,_uZ_,sh), + /*<>*/ _u2_=0., + /*<>*/ _u3_=Interval[1], cache$0= - [0, /*<>*/ caml_call2(_t4_,_t3_,sw),_t2_,_tZ_]; + [0, /*<>*/ caml_call2(_u3_,_u2_,sw),_u1_,_uY_]; break; case 1: - var handler=_tR_[2],desc=_tR_[1]; - /*<>*/ /*<>*/ caml_call2 + var handler=_uQ_[2],desc=_uQ_[1]; + /*<>*/ /*<>*/ caml_call2 (handler,sw,sh); var cache$0= - /*<>*/ render_node + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,desc); break; case 4: - /*<>*/ var - g=_tR_[4], - t$0=_tR_[1], - _t5_=Gravity[9], - /*<>*/ _t6_= - /*<>*/ caml_call1(_t5_,g), - /*<>*/ _t7_=Gravity[5], - /*<>*/ _t8_= - /*<>*/ caml_call1(_t7_,_t6_), - /*<>*/ _t9_=Gravity[8], - /*<>*/ _t__= - /*<>*/ caml_call1(_t9_,g), - /*<>*/ _t$_=Gravity[5], - /*<>*/ _ua_= - /*<>*/ caml_call1(_t$_,_t__), - /*<>*/ _ub_=t$0[3], - /*<>*/ _uc_=t$0[1], - /*<>*/ match= - /*<>*/ pack(_uc_,_ub_,sw,_ua_,_t8_), - /*<>*/ rw=match[2], - /*<>*/ dx=match[1], - /*<>*/ _ud_=Gravity[9], - /*<>*/ _ue_= - /*<>*/ caml_call1(_ud_,g), - /*<>*/ _uf_=Gravity[6], - /*<>*/ _ug_= - /*<>*/ caml_call1(_uf_,_ue_), - /*<>*/ _uh_=Gravity[8], - /*<>*/ _ui_= - /*<>*/ caml_call1(_uh_,g), - /*<>*/ _uj_=Gravity[6], - /*<>*/ _uk_= - /*<>*/ caml_call1(_uj_,_ui_), - /*<>*/ _ul_=t$0[4], - /*<>*/ _um_=t$0[2], - /*<>*/ match$0= - /*<>*/ pack(_um_,_ul_,sh,_uk_,_ug_), - /*<>*/ rh=match$0[2], - /*<>*/ dy=match$0[1], - /*<>*/ _un_=vy2 - dy, - /*<>*/ _uo_=vx2 - dx, - /*<>*/ _up_=vy1 - dy, - /*<>*/ _uq_=vx1 - dx, - /*<>*/ c= - /*<>*/ render_node - (vg,_uq_,_up_,_uo_,_un_,rw,rh,t$0), - /*<>*/ _ur_=c[3], - /*<>*/ image$1= - /*<>*/ resize_canvas2(vg,dx,dy,sw,sh,_ur_), - /*<>*/ _us_=c[1], - /*<>*/ _ut_=Interval[2], - /*<>*/ vx= - /*<>*/ caml_call2(_ut_,_us_,dx), - /*<>*/ _uu_=c[2], - /*<>*/ _uv_=Interval[2], - /*<>*/ vy= - /*<>*/ caml_call2(_uv_,_uu_,dy), + /*<>*/ var + g=_uQ_[4], + t$0=_uQ_[1], + _u4_=Gravity[9], + /*<>*/ _u5_= + /*<>*/ caml_call1(_u4_,g), + /*<>*/ _u6_=Gravity[5], + /*<>*/ _u7_= + /*<>*/ caml_call1(_u6_,_u5_), + /*<>*/ _u8_=Gravity[8], + /*<>*/ _u9_= + /*<>*/ caml_call1(_u8_,g), + /*<>*/ _u__=Gravity[5], + /*<>*/ _u$_= + /*<>*/ caml_call1(_u__,_u9_), + /*<>*/ _va_=t$0[3], + /*<>*/ _vb_=t$0[1], + /*<>*/ match= + /*<>*/ pack(_vb_,_va_,sw,_u$_,_u7_), + /*<>*/ rw=match[2], + /*<>*/ dx=match[1], + /*<>*/ _vc_=Gravity[9], + /*<>*/ _vd_= + /*<>*/ caml_call1(_vc_,g), + /*<>*/ _ve_=Gravity[6], + /*<>*/ _vf_= + /*<>*/ caml_call1(_ve_,_vd_), + /*<>*/ _vg_=Gravity[8], + /*<>*/ _vh_= + /*<>*/ caml_call1(_vg_,g), + /*<>*/ _vi_=Gravity[6], + /*<>*/ _vj_= + /*<>*/ caml_call1(_vi_,_vh_), + /*<>*/ _vk_=t$0[4], + /*<>*/ _vl_=t$0[2], + /*<>*/ match$0= + /*<>*/ pack(_vl_,_vk_,sh,_vj_,_vf_), + /*<>*/ rh=match$0[2], + /*<>*/ dy=match$0[1], + /*<>*/ _vm_=vy2 - dy, + /*<>*/ _vn_=vx2 - dx, + /*<>*/ _vo_=vy1 - dy, + /*<>*/ _vp_=vx1 - dx, + /*<>*/ c= + /*<>*/ render_node + (vg,_vp_,_vo_,_vn_,_vm_,rw,rh,t$0), + /*<>*/ _vq_=c[3], + /*<>*/ image$1= + /*<>*/ resize_canvas2(vg,dx,dy,sw,sh,_vq_), + /*<>*/ _vr_=c[1], + /*<>*/ _vs_=Interval[2], + /*<>*/ vx= + /*<>*/ caml_call2(_vs_,_vr_,dx), + /*<>*/ _vt_=c[2], + /*<>*/ _vu_=Interval[2], + /*<>*/ vy= + /*<>*/ caml_call2(_vu_,_vt_,dy), cache$0=[0,vx,vy,image$1]; break; case 7: - /*<>*/ var - sy=_tR_[3], - sx=_tR_[2], - t$1=_tR_[1], - /*<>*/ _uw_=sy + sh, - /*<>*/ _ux_=sx + sw, - /*<>*/ _uy_=vy2 + sy, - /*<>*/ _uz_=vx2 + sx, - /*<>*/ _uA_=vy1 + sy, - /*<>*/ _uB_=vx1 + sx, - /*<>*/ cache$1= - /*<>*/ render_node - (vg,_uB_,_uA_,_uz_,_uy_,_ux_,_uw_,t$1), - /*<>*/ _uC_=Interval[1], - /*<>*/ vx$0= - /*<>*/ caml_call2(_uC_,vx1,vx2), - /*<>*/ _uD_=Interval[1], - /*<>*/ vy$0= - /*<>*/ caml_call2(_uD_,vy1,vy2), - /*<>*/ _uE_=cache$1[3], - /*<>*/ _uF_=0, - /*<>*/ _uG_=[0,sy], - /*<>*/ _uH_=0, - /*<>*/ _uI_=[0,sx], - /*<>*/ _uJ_=I[12], - /*<>*/ _uK_= - /*<>*/ caml_call5 - (_uJ_,_uI_,_uH_,_uG_,_uF_,_uE_), - /*<>*/ image$2= - /*<>*/ resize_canvas(vg,sw,sh,_uK_), + /*<>*/ var + sy=_uQ_[3], + sx=_uQ_[2], + t$1=_uQ_[1], + /*<>*/ _vv_=sy + sh, + /*<>*/ _vw_=sx + sw, + /*<>*/ _vx_=vy2 + sy, + /*<>*/ _vy_=vx2 + sx, + /*<>*/ _vz_=vy1 + sy, + /*<>*/ _vA_=vx1 + sx, + /*<>*/ cache$1= + /*<>*/ render_node + (vg,_vA_,_vz_,_vy_,_vx_,_vw_,_vv_,t$1), + /*<>*/ _vB_=Interval[1], + /*<>*/ vx$0= + /*<>*/ caml_call2(_vB_,vx1,vx2), + /*<>*/ _vC_=Interval[1], + /*<>*/ vy$0= + /*<>*/ caml_call2(_vC_,vy1,vy2), + /*<>*/ _vD_=cache$1[3], + /*<>*/ _vE_=0, + /*<>*/ _vF_=[0,sy], + /*<>*/ _vG_=0, + /*<>*/ _vH_=[0,sx], + /*<>*/ _vI_=I[12], + /*<>*/ _vJ_= + /*<>*/ caml_call5 + (_vI_,_vH_,_vG_,_vF_,_vE_,_vD_), + /*<>*/ image$2= + /*<>*/ resize_canvas(vg,sw,sh,_vJ_), cache$0=[0,vx$0,vy$0,image$2]; break; case 8: - /*<>*/ var - /*<>*/ t$2=_tR_[1], + /*<>*/ var + /*<>*/ t$2=_uQ_[1], cache$0= - /*<>*/ render_node + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,t$2); break; case 9: - /*<>*/ var - b=_tR_[2], - a=_tR_[1], - _uL_=b[3], - _uM_=b[1], - _uN_=a[3], - _uO_=a[1], - /*<>*/ match$1= - /*<>*/ split(_uO_,_uN_,_uM_,_uL_,sw), - /*<>*/ bw=match$1[2], - /*<>*/ aw=match$1[1], - /*<>*/ ca= - /*<>*/ render_node(vg,vx1,vy1,vx2,vy2,aw,sh,a), - /*<>*/ _uP_=vx2 - aw, - /*<>*/ _uQ_=vx1 - aw, - /*<>*/ cb= - /*<>*/ render_node - (vg,_uQ_,vy1,_uP_,vy2,bw,sh,b), - /*<>*/ _uR_=cb[1], - /*<>*/ _uS_=Interval[4], - /*<>*/ _uT_= - /*<>*/ caml_call1(_uS_,_uR_), - /*<>*/ _uU_=_uT_ + aw, - /*<>*/ _uV_=ca[1], - /*<>*/ _uW_=Interval[4], - /*<>*/ _uX_= - /*<>*/ caml_call1(_uW_,_uV_), - /*<>*/ _uY_=Stdlib[16], - /*<>*/ _uZ_= - /*<>*/ caml_call2(_uY_,_uX_,_uU_), - /*<>*/ _u0_=cb[1], - /*<>*/ _u1_=Interval[3], - /*<>*/ _u2_= - /*<>*/ caml_call1(_u1_,_u0_), - /*<>*/ _u3_=_u2_ + aw, - /*<>*/ _u4_=ca[1], - /*<>*/ _u5_=Interval[3], - /*<>*/ _u6_= - /*<>*/ caml_call1(_u5_,_u4_), - /*<>*/ _u7_=Stdlib[17], - /*<>*/ _u8_= - /*<>*/ caml_call2(_u7_,_u6_,_u3_), - /*<>*/ _u9_=Interval[1], - /*<>*/ vx$1= - /*<>*/ caml_call2(_u9_,_u8_,_uZ_), - /*<>*/ _u__=cb[2], - /*<>*/ _u$_=Interval[4], - /*<>*/ _va_= - /*<>*/ caml_call1(_u$_,_u__), - /*<>*/ _vb_=ca[2], - /*<>*/ _vc_=Interval[4], - /*<>*/ _vd_= - /*<>*/ caml_call1(_vc_,_vb_), - /*<>*/ _ve_=Stdlib[16], - /*<>*/ _vf_= - /*<>*/ caml_call2(_ve_,_vd_,_va_), - /*<>*/ _vg_=cb[2], - /*<>*/ _vh_=Interval[3], - /*<>*/ _vi_= - /*<>*/ caml_call1(_vh_,_vg_), - /*<>*/ _vj_=ca[2], - /*<>*/ _vk_=Interval[3], - /*<>*/ _vl_= - /*<>*/ caml_call1(_vk_,_vj_), - /*<>*/ _vm_=Stdlib[17], - /*<>*/ _vn_= - /*<>*/ caml_call2(_vm_,_vl_,_vi_), - /*<>*/ _vo_=Interval[1], - /*<>*/ vy$1= - /*<>*/ caml_call2(_vo_,_vn_,_vf_), - /*<>*/ _vp_=cb[3], - /*<>*/ _vq_=ca[3], - /*<>*/ _vr_=I[7], - /*<>*/ _vs_= - /*<>*/ caml_call2(_vr_,_vq_,_vp_), - /*<>*/ image$3= - /*<>*/ resize_canvas(vg,sw,sh,_vs_), + /*<>*/ var + b=_uQ_[2], + a=_uQ_[1], + _vK_=b[3], + _vL_=b[1], + _vM_=a[3], + _vN_=a[1], + /*<>*/ match$1= + /*<>*/ split(_vN_,_vM_,_vL_,_vK_,sw), + /*<>*/ bw=match$1[2], + /*<>*/ aw=match$1[1], + /*<>*/ ca= + /*<>*/ render_node(vg,vx1,vy1,vx2,vy2,aw,sh,a), + /*<>*/ _vO_=vx2 - aw, + /*<>*/ _vP_=vx1 - aw, + /*<>*/ cb= + /*<>*/ render_node + (vg,_vP_,vy1,_vO_,vy2,bw,sh,b), + /*<>*/ _vQ_=cb[1], + /*<>*/ _vR_=Interval[4], + /*<>*/ _vS_= + /*<>*/ caml_call1(_vR_,_vQ_), + /*<>*/ _vT_=_vS_ + aw, + /*<>*/ _vU_=ca[1], + /*<>*/ _vV_=Interval[4], + /*<>*/ _vW_= + /*<>*/ caml_call1(_vV_,_vU_), + /*<>*/ _vX_=Stdlib[16], + /*<>*/ _vY_= + /*<>*/ caml_call2(_vX_,_vW_,_vT_), + /*<>*/ _vZ_=cb[1], + /*<>*/ _v0_=Interval[3], + /*<>*/ _v1_= + /*<>*/ caml_call1(_v0_,_vZ_), + /*<>*/ _v2_=_v1_ + aw, + /*<>*/ _v3_=ca[1], + /*<>*/ _v4_=Interval[3], + /*<>*/ _v5_= + /*<>*/ caml_call1(_v4_,_v3_), + /*<>*/ _v6_=Stdlib[17], + /*<>*/ _v7_= + /*<>*/ caml_call2(_v6_,_v5_,_v2_), + /*<>*/ _v8_=Interval[1], + /*<>*/ vx$1= + /*<>*/ caml_call2(_v8_,_v7_,_vY_), + /*<>*/ _v9_=cb[2], + /*<>*/ _v__=Interval[4], + /*<>*/ _v$_= + /*<>*/ caml_call1(_v__,_v9_), + /*<>*/ _wa_=ca[2], + /*<>*/ _wb_=Interval[4], + /*<>*/ _wc_= + /*<>*/ caml_call1(_wb_,_wa_), + /*<>*/ _wd_=Stdlib[16], + /*<>*/ _we_= + /*<>*/ caml_call2(_wd_,_wc_,_v$_), + /*<>*/ _wf_=cb[2], + /*<>*/ _wg_=Interval[3], + /*<>*/ _wh_= + /*<>*/ caml_call1(_wg_,_wf_), + /*<>*/ _wi_=ca[2], + /*<>*/ _wj_=Interval[3], + /*<>*/ _wk_= + /*<>*/ caml_call1(_wj_,_wi_), + /*<>*/ _wl_=Stdlib[17], + /*<>*/ _wm_= + /*<>*/ caml_call2(_wl_,_wk_,_wh_), + /*<>*/ _wn_=Interval[1], + /*<>*/ vy$1= + /*<>*/ caml_call2(_wn_,_wm_,_we_), + /*<>*/ _wo_=cb[3], + /*<>*/ _wp_=ca[3], + /*<>*/ _wq_=I[7], + /*<>*/ _wr_= + /*<>*/ caml_call2(_wq_,_wp_,_wo_), + /*<>*/ image$3= + /*<>*/ resize_canvas(vg,sw,sh,_wr_), cache$0=[0,vx$1,vy$1,image$3]; break; case 10: - /*<>*/ var - b$0=_tR_[2], - a$0=_tR_[1], - _vt_=b$0[4], - _vu_=b$0[2], - _vv_=a$0[4], - _vw_=a$0[2], - /*<>*/ match$2= - /*<>*/ split(_vw_,_vv_,_vu_,_vt_,sh), - /*<>*/ bh=match$2[2], - /*<>*/ ah=match$2[1], - /*<>*/ ca$0= - /*<>*/ render_node + /*<>*/ var + b$0=_uQ_[2], + a$0=_uQ_[1], + _ws_=b$0[4], + _wt_=b$0[2], + _wu_=a$0[4], + _wv_=a$0[2], + /*<>*/ match$2= + /*<>*/ split(_wv_,_wu_,_wt_,_ws_,sh), + /*<>*/ bh=match$2[2], + /*<>*/ ah=match$2[1], + /*<>*/ ca$0= + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,ah,a$0), - /*<>*/ _vx_=vy2 - ah, - /*<>*/ _vy_=vy1 - ah, - /*<>*/ cb$0= - /*<>*/ render_node - (vg,vx1,_vy_,vx2,_vx_,sw,bh,b$0), - /*<>*/ _vz_=cb$0[1], - /*<>*/ _vA_=Interval[4], - /*<>*/ _vB_= - /*<>*/ caml_call1(_vA_,_vz_), - /*<>*/ _vC_=ca$0[1], - /*<>*/ _vD_=Interval[4], - /*<>*/ _vE_= - /*<>*/ caml_call1(_vD_,_vC_), - /*<>*/ _vF_=Stdlib[16], - /*<>*/ _vG_= - /*<>*/ caml_call2(_vF_,_vE_,_vB_), - /*<>*/ _vH_=cb$0[1], - /*<>*/ _vI_=Interval[3], - /*<>*/ _vJ_= - /*<>*/ caml_call1(_vI_,_vH_), - /*<>*/ _vK_=ca$0[1], - /*<>*/ _vL_=Interval[3], - /*<>*/ _vM_= - /*<>*/ caml_call1(_vL_,_vK_), - /*<>*/ _vN_=Stdlib[17], - /*<>*/ _vO_= - /*<>*/ caml_call2(_vN_,_vM_,_vJ_), - /*<>*/ _vP_=Interval[1], - /*<>*/ vx$2= - /*<>*/ caml_call2(_vP_,_vO_,_vG_), - /*<>*/ _vQ_=cb$0[2], - /*<>*/ _vR_=Interval[4], - /*<>*/ _vS_= - /*<>*/ caml_call1(_vR_,_vQ_), - /*<>*/ _vT_=_vS_ + ah, - /*<>*/ _vU_=ca$0[2], - /*<>*/ _vV_=Interval[4], - /*<>*/ _vW_= - /*<>*/ caml_call1(_vV_,_vU_), - /*<>*/ _vX_=Stdlib[16], - /*<>*/ _vY_= - /*<>*/ caml_call2(_vX_,_vW_,_vT_), - /*<>*/ _vZ_=cb$0[2], - /*<>*/ _v0_=Interval[3], - /*<>*/ _v1_= - /*<>*/ caml_call1(_v0_,_vZ_), - /*<>*/ _v2_=_v1_ + ah, - /*<>*/ _v3_=ca$0[2], - /*<>*/ _v4_=Interval[3], - /*<>*/ _v5_= - /*<>*/ caml_call1(_v4_,_v3_), - /*<>*/ _v6_=Stdlib[17], - /*<>*/ _v7_= - /*<>*/ caml_call2(_v6_,_v5_,_v2_), - /*<>*/ _v8_=Interval[1], - /*<>*/ vy$2= - /*<>*/ caml_call2(_v8_,_v7_,_vY_), - /*<>*/ _v9_=cb$0[3], - /*<>*/ _v__=ca$0[3], - /*<>*/ _v$_=I[8], - /*<>*/ _wa_= - /*<>*/ caml_call2(_v$_,_v__,_v9_), - /*<>*/ image$4= - /*<>*/ resize_canvas(vg,sw,sh,_wa_), + /*<>*/ _ww_=vy2 - ah, + /*<>*/ _wx_=vy1 - ah, + /*<>*/ cb$0= + /*<>*/ render_node + (vg,vx1,_wx_,vx2,_ww_,sw,bh,b$0), + /*<>*/ _wy_=cb$0[1], + /*<>*/ _wz_=Interval[4], + /*<>*/ _wA_= + /*<>*/ caml_call1(_wz_,_wy_), + /*<>*/ _wB_=ca$0[1], + /*<>*/ _wC_=Interval[4], + /*<>*/ _wD_= + /*<>*/ caml_call1(_wC_,_wB_), + /*<>*/ _wE_=Stdlib[16], + /*<>*/ _wF_= + /*<>*/ caml_call2(_wE_,_wD_,_wA_), + /*<>*/ _wG_=cb$0[1], + /*<>*/ _wH_=Interval[3], + /*<>*/ _wI_= + /*<>*/ caml_call1(_wH_,_wG_), + /*<>*/ _wJ_=ca$0[1], + /*<>*/ _wK_=Interval[3], + /*<>*/ _wL_= + /*<>*/ caml_call1(_wK_,_wJ_), + /*<>*/ _wM_=Stdlib[17], + /*<>*/ _wN_= + /*<>*/ caml_call2(_wM_,_wL_,_wI_), + /*<>*/ _wO_=Interval[1], + /*<>*/ vx$2= + /*<>*/ caml_call2(_wO_,_wN_,_wF_), + /*<>*/ _wP_=cb$0[2], + /*<>*/ _wQ_=Interval[4], + /*<>*/ _wR_= + /*<>*/ caml_call1(_wQ_,_wP_), + /*<>*/ _wS_=_wR_ + ah, + /*<>*/ _wT_=ca$0[2], + /*<>*/ _wU_=Interval[4], + /*<>*/ _wV_= + /*<>*/ caml_call1(_wU_,_wT_), + /*<>*/ _wW_=Stdlib[16], + /*<>*/ _wX_= + /*<>*/ caml_call2(_wW_,_wV_,_wS_), + /*<>*/ _wY_=cb$0[2], + /*<>*/ _wZ_=Interval[3], + /*<>*/ _w0_= + /*<>*/ caml_call1(_wZ_,_wY_), + /*<>*/ _w1_=_w0_ + ah, + /*<>*/ _w2_=ca$0[2], + /*<>*/ _w3_=Interval[3], + /*<>*/ _w4_= + /*<>*/ caml_call1(_w3_,_w2_), + /*<>*/ _w5_=Stdlib[17], + /*<>*/ _w6_= + /*<>*/ caml_call2(_w5_,_w4_,_w1_), + /*<>*/ _w7_=Interval[1], + /*<>*/ vy$2= + /*<>*/ caml_call2(_w7_,_w6_,_wX_), + /*<>*/ _w8_=cb$0[3], + /*<>*/ _w9_=ca$0[3], + /*<>*/ _w__=I[8], + /*<>*/ _w$_= + /*<>*/ caml_call2(_w__,_w9_,_w8_), + /*<>*/ image$4= + /*<>*/ resize_canvas(vg,sw,sh,_w$_), cache$0=[0,vx$2,vy$2,image$4]; break; case 11: - /*<>*/ var - b$1=_tR_[2], - a$1=_tR_[1], - /*<>*/ ca$1= - /*<>*/ render_node + /*<>*/ var + b$1=_uQ_[2], + a$1=_uQ_[1], + /*<>*/ ca$1= + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,a$1), - /*<>*/ cb$1= - /*<>*/ render_node + /*<>*/ cb$1= + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,b$1), - /*<>*/ _wb_=cb$1[1], - /*<>*/ _wc_=Interval[4], - /*<>*/ _wd_= - /*<>*/ caml_call1(_wc_,_wb_), - /*<>*/ _we_=ca$1[1], - /*<>*/ _wf_=Interval[4], - /*<>*/ _wg_= - /*<>*/ caml_call1(_wf_,_we_), - /*<>*/ _wh_=Stdlib[16], - /*<>*/ _wi_= - /*<>*/ caml_call2(_wh_,_wg_,_wd_), - /*<>*/ _wj_=cb$1[1], - /*<>*/ _wk_=Interval[3], - /*<>*/ _wl_= - /*<>*/ caml_call1(_wk_,_wj_), - /*<>*/ _wm_=ca$1[1], - /*<>*/ _wn_=Interval[3], - /*<>*/ _wo_= - /*<>*/ caml_call1(_wn_,_wm_), - /*<>*/ _wp_=Stdlib[17], - /*<>*/ _wq_= - /*<>*/ caml_call2(_wp_,_wo_,_wl_), - /*<>*/ _wr_=Interval[1], - /*<>*/ vx$3= - /*<>*/ caml_call2(_wr_,_wq_,_wi_), - /*<>*/ _ws_=cb$1[2], - /*<>*/ _wt_=Interval[4], - /*<>*/ _wu_= - /*<>*/ caml_call1(_wt_,_ws_), - /*<>*/ _wv_=ca$1[2], - /*<>*/ _ww_=Interval[4], - /*<>*/ _wx_= - /*<>*/ caml_call1(_ww_,_wv_), - /*<>*/ _wy_=Stdlib[16], - /*<>*/ _wz_= - /*<>*/ caml_call2(_wy_,_wx_,_wu_), - /*<>*/ _wA_=cb$1[2], - /*<>*/ _wB_=Interval[3], - /*<>*/ _wC_= - /*<>*/ caml_call1(_wB_,_wA_), - /*<>*/ _wD_=ca$1[2], - /*<>*/ _wE_=Interval[3], - /*<>*/ _wF_= - /*<>*/ caml_call1(_wE_,_wD_), - /*<>*/ _wG_=Stdlib[17], - /*<>*/ _wH_= - /*<>*/ caml_call2(_wG_,_wF_,_wC_), - /*<>*/ _wI_=Interval[1], - /*<>*/ vy$3= - /*<>*/ caml_call2(_wI_,_wH_,_wz_), - /*<>*/ _wJ_=ca$1[3], - /*<>*/ _wK_=cb$1[3], - /*<>*/ _wL_=I[9], - /*<>*/ _wM_= - /*<>*/ caml_call2(_wL_,_wK_,_wJ_), - /*<>*/ image$5= - /*<>*/ resize_canvas(vg,sw,sh,_wM_), + /*<>*/ _xa_=cb$1[1], + /*<>*/ _xb_=Interval[4], + /*<>*/ _xc_= + /*<>*/ caml_call1(_xb_,_xa_), + /*<>*/ _xd_=ca$1[1], + /*<>*/ _xe_=Interval[4], + /*<>*/ _xf_= + /*<>*/ caml_call1(_xe_,_xd_), + /*<>*/ _xg_=Stdlib[16], + /*<>*/ _xh_= + /*<>*/ caml_call2(_xg_,_xf_,_xc_), + /*<>*/ _xi_=cb$1[1], + /*<>*/ _xj_=Interval[3], + /*<>*/ _xk_= + /*<>*/ caml_call1(_xj_,_xi_), + /*<>*/ _xl_=ca$1[1], + /*<>*/ _xm_=Interval[3], + /*<>*/ _xn_= + /*<>*/ caml_call1(_xm_,_xl_), + /*<>*/ _xo_=Stdlib[17], + /*<>*/ _xp_= + /*<>*/ caml_call2(_xo_,_xn_,_xk_), + /*<>*/ _xq_=Interval[1], + /*<>*/ vx$3= + /*<>*/ caml_call2(_xq_,_xp_,_xh_), + /*<>*/ _xr_=cb$1[2], + /*<>*/ _xs_=Interval[4], + /*<>*/ _xt_= + /*<>*/ caml_call1(_xs_,_xr_), + /*<>*/ _xu_=ca$1[2], + /*<>*/ _xv_=Interval[4], + /*<>*/ _xw_= + /*<>*/ caml_call1(_xv_,_xu_), + /*<>*/ _xx_=Stdlib[16], + /*<>*/ _xy_= + /*<>*/ caml_call2(_xx_,_xw_,_xt_), + /*<>*/ _xz_=cb$1[2], + /*<>*/ _xA_=Interval[3], + /*<>*/ _xB_= + /*<>*/ caml_call1(_xA_,_xz_), + /*<>*/ _xC_=ca$1[2], + /*<>*/ _xD_=Interval[3], + /*<>*/ _xE_= + /*<>*/ caml_call1(_xD_,_xC_), + /*<>*/ _xF_=Stdlib[17], + /*<>*/ _xG_= + /*<>*/ caml_call2(_xF_,_xE_,_xB_), + /*<>*/ _xH_=Interval[1], + /*<>*/ vy$3= + /*<>*/ caml_call2(_xH_,_xG_,_xy_), + /*<>*/ _xI_=ca$1[3], + /*<>*/ _xJ_=cb$1[3], + /*<>*/ _xK_=I[9], + /*<>*/ _xL_= + /*<>*/ caml_call2(_xK_,_xJ_,_xI_), + /*<>*/ image$5= + /*<>*/ resize_canvas(vg,sw,sh,_xL_), cache$0=[0,vx$3,vy$3,image$5]; break; case 2: case 3: var - desc$0=_tR_[1], + desc$0=_uQ_[1], cache$0= - /*<>*/ render_node + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,desc$0); break; default: var - desc$1=_tR_[1], + desc$1=_uQ_[1], cache$0= - /*<>*/ render_node + /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,desc$1)} - /*<>*/ t[9] = cache$0; - /*<>*/ return cache$0} - /*<>*/ var - /*<>*/ _tM_=I[5], - /*<>*/ _tN_= - /*<>*/ caml_call2(_tM_,sw,sh), - /*<>*/ _tO_=Interval[1], - /*<>*/ _tP_= - /*<>*/ caml_call2(_tO_,vy1,vy2), - /*<>*/ _tQ_=Interval[1]; - /*<>*/ return [0, - /*<>*/ caml_call2(_tQ_,vx1,vx2), - _tP_, - _tN_] /*<>*/ } - /*<>*/ function image(vg,param) - { /*<>*/ var + /*<>*/ t[9] = cache$0; + /*<>*/ return cache$0} + /*<>*/ var + /*<>*/ _uL_=I[5], + /*<>*/ _uM_= + /*<>*/ caml_call2(_uL_,sw,sh), + /*<>*/ _uN_=Interval[1], + /*<>*/ _uO_= + /*<>*/ caml_call2(_uN_,vy1,vy2), + /*<>*/ _uP_=Interval[1]; + /*<>*/ return [0, + /*<>*/ caml_call2(_uP_,vx1,vx2), + _uO_, + _uM_] /*<>*/ } + /*<>*/ function image(vg,param) + { /*<>*/ var size=param[2], view=param[3], - _tu_=Gg[2][13], - /*<>*/ match= - /*<>*/ caml_call1(_tu_,size), - /*<>*/ h=match[2], - /*<>*/ w=match[1]; - /*<>*/ function _tv_(m) - { /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_es_,Ui[38],view) /*<>*/ } - /*<>*/ var - /*<>*/ _tw_=0, - /*<>*/ _tx_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_tx_,_tw_,_tv_); - /*<>*/ var - /*<>*/ _ty_=0., - /*<>*/ _tz_=0.; - /*<>*/ return /*<>*/ render_node - (vg,_tz_,_ty_,w,h,w,h,view) + _ut_=Gg[2][13], + /*<>*/ match= + /*<>*/ caml_call1(_ut_,size), + /*<>*/ h=match[2], + /*<>*/ w=match[1]; + /*<>*/ function _uu_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_et_,Ui[38],view) /*<>*/ } + /*<>*/ var + /*<>*/ _uv_=0, + /*<>*/ _uw_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_uw_,_uv_,_uu_); + /*<>*/ var + /*<>*/ _ux_=0., + /*<>*/ _uy_=0.; + /*<>*/ return /*<>*/ render_node + (vg,_uy_,_ux_,w,h,w,h,view) [3]} - /*<>*/ function dispatch_raw_key(st,key) - { /*<>*/ function iter(st) + /*<>*/ function dispatch_raw_key(st,key) + { /*<>*/ function iter(st) { /*<>*/ var st$0=st; - /*<>*/ for(;;) - { /*<>*/ if(st$0) - {var tl=st$0[2],ui=st$0[1],_tp_=ui[5]; - switch(_tp_[0]) + /*<>*/ for(;;) + { /*<>*/ if(st$0) + {var tl=st$0[2],ui=st$0[1],_uo_=ui[5]; + switch(_uo_[0]) {case 0:var st$0=tl;continue; case 6: - /*<>*/ var - f=_tp_[2], - t$0=_tp_[1], - _tq_=[0,t$0,0], - /*<>*/ match= - /*<>*/ iter(_tq_); - /*<>*/ if(321312668 <= match) - /*<>*/ return 321312668; - /*<>*/ /*<>*/ var + /*<>*/ var + f=_uo_[2], + t$0=_uo_[1], + _up_=[0,t$0,0], + /*<>*/ match= + /*<>*/ iter(_up_); + /*<>*/ if(321312668 <= match) + /*<>*/ return 321312668; + /*<>*/ /*<>*/ var match$0= - /*<>*/ caml_call1(f,key); - /*<>*/ if(321312668 <= match$0) - /*<>*/ return 321312668; - /*<>*/ var st$0=tl; + /*<>*/ caml_call1(f,key); + /*<>*/ if(321312668 <= match$0) + /*<>*/ return 321312668; + /*<>*/ var st$0=tl; continue; case 8: - /*<>*/ var - f$0=_tp_[2], - t$1=_tp_[1], - _tr_=[0,3752319,key], - /*<>*/ match$1= - /*<>*/ caml_call1(f$0,_tr_); - /*<>*/ if(321312668 <= match$1) - /*<>*/ return 321312668; - /*<>*/ var - /*<>*/ st$2=[0,t$1,tl], + /*<>*/ var + f$0=_uo_[2], + t$1=_uo_[1], + _uq_=[0,3752319,key], + /*<>*/ match$1= + /*<>*/ caml_call1(f$0,_uq_); + /*<>*/ if(321312668 <= match$1) + /*<>*/ return 321312668; + /*<>*/ var + /*<>*/ st$2=[0,t$1,tl], st$0=st$2; continue; case 9: case 10: case 11: - /*<>*/ var - b=_tp_[2], - a=_tp_[1], - _ts_=b[6], - _tt_=Focus[7], - /*<>*/ st$3= - /*<>*/ caml_call1(_tt_,_ts_) + /*<>*/ var + b=_uo_[2], + a=_uo_[1], + _ur_=b[6], + _us_=Focus[8], + /*<>*/ st$3= + /*<>*/ caml_call1(_us_,_ur_) ?[0,b,tl] :[0,a,[0,b,tl]], st$0=st$3; continue; - default:var t=_tp_[1],st$1=[0,t,tl],st$0=st$1;continue}} - /*<>*/ return -475359645} /*<>*/ } - /*<>*/ return /*<>*/ iter - ([0,st[3],0]) /*<>*/ } - /*<>*/ /*<>*/ var + default:var t=_uo_[1],st$1=[0,t,tl],st$0=st$1;continue}} + /*<>*/ return -475359645} /*<>*/ } + /*<>*/ return /*<>*/ iter + ([0,st[3],0]) /*<>*/ } + /*<>*/ /*<>*/ var Acquired_focus= [248, cst_Dune_exe_Human_Nottui_Rend, - /*<>*/ runtime.caml_fresh_oo_id(0)]; - /*<>*/ function grab_focus(ui) - { /*<>*/ function aux(ui) - { /*<>*/ /*<>*/ var _tn_=ui[6]; - /*<>*/ if(typeof _tn_ === "number") - /*<>*/ return 0; + /*<>*/ runtime.caml_fresh_oo_id(0)]; + /*<>*/ function grab_focus(ui) + { /*<>*/ function aux(ui) + { /*<>*/ /*<>*/ var _um_=ui[6]; + /*<>*/ if(typeof _um_ === "number") + /*<>*/ return 0; else - { /*<>*/ if(0 === _tn_[0]) - { /*<>*/ var - /*<>*/ v=_tn_[2], - /*<>*/ _to_=Focus[3]; - /*<>*/ /*<>*/ caml_call1 - (_to_,v); - /*<>*/ throw Acquired_focus} - /*<>*/ return /*<>*/ caml_call2 - (Ui[40],aux,ui)} /*<>*/ } - /*<>*/ function _tf_(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_et_) /*<>*/ } - /*<>*/ var - /*<>*/ _tg_=0, - /*<>*/ _th_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_th_,_tg_,_tf_); - /*<>*/ try - { /*<>*/ /*<>*/ aux(ui); - /*<>*/ /*<>*/ var _tl_=0; - return _tl_} - catch(_tm_) - {_tm_ = caml_wrap_exception(_tm_); - if(_tm_ === Acquired_focus) - { /*<>*/ var - /*<>*/ _ti_= + { /*<>*/ if(0 === _um_[0]) + { /*<>*/ var + /*<>*/ v=_um_[2], + /*<>*/ _un_=Focus[3]; + /*<>*/ /*<>*/ caml_call1 + (_un_,v); + /*<>*/ throw Acquired_focus} + /*<>*/ return /*<>*/ caml_call2 + (Ui[40],aux,ui)} /*<>*/ } + /*<>*/ function _ue_(m) + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_eu_) /*<>*/ } + /*<>*/ var + /*<>*/ _uf_=0, + /*<>*/ _ug_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_ug_,_uf_,_ue_); + /*<>*/ try + { /*<>*/ /*<>*/ aux(ui); + /*<>*/ /*<>*/ var _uk_=0; + return _uk_} + catch(_ul_) + {_ul_ = caml_wrap_exception(_ul_); + if(_ul_ === Acquired_focus) + { /*<>*/ var + /*<>*/ _uh_= function(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_eu_) /*<>*/ }, - /*<>*/ _tj_=0, - /*<>*/ _tk_=Logs[12]; - /*<>*/ /*<>*/ caml_call2 - (_tk_,_tj_,_ti_); - /*<>*/ return 1} - /*<>*/ throw _tm_} /*<>*/ } - /*<>*/ function dispatch_focus(t,dir) + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_ev_) /*<>*/ }, + /*<>*/ _ui_=0, + /*<>*/ _uj_=Logs[12]; + /*<>*/ /*<>*/ caml_call2 + (_uj_,_ui_,_uh_); + /*<>*/ return 1} + /*<>*/ throw _ul_} /*<>*/ } + /*<>*/ function dispatch_focus(t,dir) { /*<>*/ var t$0=t; - /*<>*/ for(;;) - { /*<>*/ /*<>*/ var _sP_=t$0[5]; - /*<>*/ switch(_sP_[0]) - {case 0: /*<>*/ return 0; + /*<>*/ for(;;) + { /*<>*/ /*<>*/ var _tO_=t$0[5]; + /*<>*/ switch(_tO_[0]) + {case 0: /*<>*/ return 0; case 6: - /*<>*/ var - /*<>*/ t$2=_sP_[1], - /*<>*/ _sQ_=t$2[6], - /*<>*/ _sR_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_sR_,_sQ_)) - { /*<>*/ var - /*<>*/ _sS_= + /*<>*/ var + /*<>*/ t$2=_tO_[1], + /*<>*/ _tP_=t$2[6], + /*<>*/ _tQ_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_tQ_,_tP_)) + { /*<>*/ var + /*<>*/ _tR_= function(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_ev_) /*<>*/ }, - /*<>*/ _sT_=0, - /*<>*/ _sU_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_sU_,_sT_,_sS_); - /*<>*/ /*<>*/ var - _sV_= - /*<>*/ dispatch_focus(t$2,dir); - /*<>*/ return _sV_?_sV_:grab_focus(t$0)} - /*<>*/ var - /*<>*/ _sW_=t$0[6], - /*<>*/ _sX_=Focus[7]; - /*<>*/ return /*<>*/ caml_call1 - (_sX_,_sW_) + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_ew_) /*<>*/ }, + /*<>*/ _tS_=0, + /*<>*/ _tT_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_tT_,_tS_,_tR_); + /*<>*/ /*<>*/ var + _tU_= + /*<>*/ dispatch_focus(t$2,dir); + /*<>*/ return _tU_?_tU_:grab_focus(t$0)} + /*<>*/ var + /*<>*/ _tV_=t$0[6], + /*<>*/ _tW_=Focus[8]; + /*<>*/ return /*<>*/ caml_call1 + (_tW_,_tV_) ?0 - : /*<>*/ grab_focus(t$0); + : /*<>*/ grab_focus(t$0); case 9: - var b=_sP_[2],a=_sP_[1],_sY_=a[6],_sZ_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_sZ_,_sY_)) - { /*<>*/ /*<>*/ var - _s0_= - /*<>*/ dispatch_focus(a,dir); - /*<>*/ if(_s0_) - /*<>*/ return _s0_; + var b=_tO_[2],a=_tO_[1],_tX_=a[6],_tY_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_tY_,_tX_)) + { /*<>*/ /*<>*/ var + _tZ_= + /*<>*/ dispatch_focus(a,dir); + /*<>*/ if(_tZ_) + /*<>*/ return _tZ_; if(-57574468 !== dir && 870035731 !== dir) - /*<>*/ return 0; - /*<>*/ var t$0=b; + /*<>*/ return 0; + /*<>*/ var t$0=b; continue} - /*<>*/ var - /*<>*/ _s1_=b[6], - /*<>*/ _s2_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_s2_,_s1_)) - { /*<>*/ /*<>*/ var - _s3_= - /*<>*/ dispatch_focus(b,dir); - /*<>*/ if(_s3_) - /*<>*/ return _s3_; + /*<>*/ var + /*<>*/ _t0_=b[6], + /*<>*/ _t1_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_t1_,_t0_)) + { /*<>*/ /*<>*/ var + _t2_= + /*<>*/ dispatch_focus(b,dir); + /*<>*/ if(_t2_) + /*<>*/ return _t2_; if(847852583 !== dir && 892857107 !== dir) - /*<>*/ return 0; - /*<>*/ var t$0=a; + /*<>*/ return 0; + /*<>*/ var t$0=a; continue} - /*<>*/ var switch$0=0; - /*<>*/ if(847852583 <= dir) + /*<>*/ var switch$0=0; + /*<>*/ if(847852583 <= dir) {if(870035731 === dir)switch$0 = 1} else if(19067 !== dir)switch$0 = 1; - /*<>*/ if(switch$0) - { /*<>*/ /*<>*/ var - _s4_= - /*<>*/ dispatch_focus(a,dir); - /*<>*/ if(_s4_)return _s4_; - /*<>*/ var t$0=b; + /*<>*/ if(switch$0) + { /*<>*/ /*<>*/ var + _t3_= + /*<>*/ dispatch_focus(a,dir); + /*<>*/ if(_t3_)return _t3_; + /*<>*/ var t$0=b; continue} - /*<>*/ /*<>*/ var - _s5_= - /*<>*/ dispatch_focus(b,dir); - /*<>*/ if(_s5_) - /*<>*/ return _s5_; - /*<>*/ var t$0=a; + /*<>*/ /*<>*/ var + _t4_= + /*<>*/ dispatch_focus(b,dir); + /*<>*/ if(_t4_) + /*<>*/ return _t4_; + /*<>*/ var t$0=a; continue; case 10: - var b$0=_sP_[2],a$0=_sP_[1],_s6_=a$0[6],_s7_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_s7_,_s6_)) - { /*<>*/ /*<>*/ var - _s8_= - /*<>*/ dispatch_focus(a$0,dir); - /*<>*/ if(_s8_) - /*<>*/ return _s8_; + var b$0=_tO_[2],a$0=_tO_[1],_t5_=a$0[6],_t6_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_t6_,_t5_)) + { /*<>*/ /*<>*/ var + _t7_= + /*<>*/ dispatch_focus(a$0,dir); + /*<>*/ if(_t7_) + /*<>*/ return _t7_; if(759637122 !== dir && 870035731 !== dir) - /*<>*/ return 0; - /*<>*/ var t$0=b$0; + /*<>*/ return 0; + /*<>*/ var t$0=b$0; continue} - /*<>*/ var - /*<>*/ _s9_=b$0[6], - /*<>*/ _s__=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_s__,_s9_)) - { /*<>*/ /*<>*/ var - _s$_= - /*<>*/ dispatch_focus(b$0,dir); - /*<>*/ if(_s$_) - /*<>*/ return _s$_; + /*<>*/ var + /*<>*/ _t8_=b$0[6], + /*<>*/ _t9_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_t9_,_t8_)) + { /*<>*/ /*<>*/ var + _t__= + /*<>*/ dispatch_focus(b$0,dir); + /*<>*/ if(_t__) + /*<>*/ return _t__; if(19067 !== dir && 892857107 !== dir) - /*<>*/ return 0; - /*<>*/ var t$0=a$0; + /*<>*/ return 0; + /*<>*/ var t$0=a$0; continue} if(19067 !== dir && ! (892857107 <= dir)) - { /*<>*/ /*<>*/ var - _tb_= - /*<>*/ dispatch_focus(a$0,dir); - /*<>*/ if(_tb_) - /*<>*/ return _tb_; - /*<>*/ var t$0=b$0; + { /*<>*/ /*<>*/ var + _ua_= + /*<>*/ dispatch_focus(a$0,dir); + /*<>*/ if(_ua_) + /*<>*/ return _ua_; + /*<>*/ var t$0=b$0; continue} - /*<>*/ /*<>*/ var - _ta_= - /*<>*/ dispatch_focus(b$0,dir); - /*<>*/ if(_ta_)return _ta_; - /*<>*/ var t$0=a$0; + /*<>*/ /*<>*/ var + _t$_= + /*<>*/ dispatch_focus(b$0,dir); + /*<>*/ if(_t$_)return _t$_; + /*<>*/ var t$0=a$0; continue; case 11: - var b$1=_sP_[2],a$1=_sP_[1],_tc_=a$1[6],_td_=Focus[7]; - /*<>*/ if - ( /*<>*/ caml_call1(_td_,_tc_)) + var b$1=_tO_[2],a$1=_tO_[1],_ub_=a$1[6],_uc_=Focus[8]; + /*<>*/ if + ( /*<>*/ caml_call1(_uc_,_ub_)) {var t$0=a$1;continue} - /*<>*/ /*<>*/ var - _te_= - /*<>*/ dispatch_focus(b$1,dir); - /*<>*/ if(_te_) - /*<>*/ return _te_; - /*<>*/ var t$0=a$1; + /*<>*/ /*<>*/ var + _ud_= + /*<>*/ dispatch_focus(b$1,dir); + /*<>*/ if(_ud_) + /*<>*/ return _ud_; + /*<>*/ var t$0=a$1; continue; - default:var t$1=_sP_[1],t$0=t$1;continue}} /*<>*/ } - /*<>*/ function dispatch_key(st,key) + default:var t$1=_tO_[1],t$0=t$1;continue}} /*<>*/ } + /*<>*/ function dispatch_key(st,key) { /*<>*/ var key$0=key; - /*<>*/ for(;;) - { /*<>*/ /*<>*/ var + /*<>*/ for(;;) + { /*<>*/ /*<>*/ var match= - /*<>*/ dispatch_raw_key(st,key$0); - /*<>*/ if(321312668 <= match) - /*<>*/ return 321312668; - /*<>*/ var _sH_=key$0[1]; - if(typeof _sH_ === "number") - {if(4198965 === _sH_) - { /*<>*/ var - /*<>*/ mods=key$0[2], - /*<>*/ _sI_=256924770, - /*<>*/ _sJ_=Stdlib_List[36], - /*<>*/ dir= - /*<>*/ caml_call2(_sJ_,_sI_,mods) + /*<>*/ dispatch_raw_key(st,key$0); + /*<>*/ if(321312668 <= match) + /*<>*/ return 321312668; + /*<>*/ var _tG_=key$0[1]; + if(typeof _tG_ === "number") + {if(4198965 === _tG_) + { /*<>*/ var + /*<>*/ mods=key$0[2], + /*<>*/ _tH_=256924770, + /*<>*/ _tI_=Stdlib_List[36], + /*<>*/ dir= + /*<>*/ caml_call2(_tI_,_tH_,mods) ?892857107 :870035731, - /*<>*/ key$1=[0,[0,397856696,dir],mods], + /*<>*/ key$1=[0,[0,397856696,dir],mods], key$0=key$1; continue}} else - {var _sK_=_sH_[1]; - if(397856696 === _sK_) - { /*<>*/ var - /*<>*/ dir$0=_sH_[2], - /*<>*/ _sL_=st[3], - /*<>*/ r= - /*<>*/ dispatch_focus(_sL_,dir$0), - /*<>*/ _sM_= + {var _tJ_=_tG_[1]; + if(397856696 === _tJ_) + { /*<>*/ var + /*<>*/ dir$0=_tG_[2], + /*<>*/ _tK_=st[3], + /*<>*/ r= + /*<>*/ dispatch_focus(_tK_,dir$0), + /*<>*/ _tL_= function(m) - { /*<>*/ return /*<>*/ caml_call6 - (m,0,0,_ew_,Ui[3],key$0,r) /*<>*/ }, - /*<>*/ _sN_=0, - /*<>*/ _sO_=r?Logs[14]:Logs[12]; - /*<>*/ /*<>*/ caml_call2 - (_sO_,_sN_,_sM_); - /*<>*/ return r?321312668:-475359645} - if(951904681 === _sK_ && ! key$0[2]) - { /*<>*/ var - /*<>*/ dir$1=_sH_[2], - /*<>*/ key$2=[0,[0,397856696,dir$1],_ex_], + { /*<>*/ return /*<>*/ caml_call6 + (m,0,0,_ex_,Ui[3],key$0,r) /*<>*/ }, + /*<>*/ _tM_=0, + /*<>*/ _tN_=r?Logs[14]:Logs[12]; + /*<>*/ /*<>*/ caml_call2 + (_tN_,_tM_,_tL_); + /*<>*/ return r?321312668:-475359645} + if(951904681 === _tJ_ && ! key$0[2]) + { /*<>*/ var + /*<>*/ dir$1=_tG_[2], + /*<>*/ key$2=[0,[0,397856696,dir$1],_ey_], key$0=key$2; continue}} - /*<>*/ return -475359645} /*<>*/ } - /*<>*/ function dispatch_event(t,param) - { /*<>*/ var _sG_=param[1]; - if(3752319 === _sG_) - { /*<>*/ /*<>*/ var key=param[2]; - /*<>*/ return /*<>*/ dispatch_key + /*<>*/ return -475359645} /*<>*/ } + /*<>*/ function dispatch_event(t,param) + { /*<>*/ var _tF_=param[1]; + if(3752319 === _tF_) + { /*<>*/ /*<>*/ var key=param[2]; + /*<>*/ return /*<>*/ dispatch_key (t,key)} - if(529696261 <= _sG_) - { /*<>*/ /*<>*/ var + if(529696261 <= _tF_) + { /*<>*/ /*<>*/ var mouse= param[2]; - /*<>*/ return /*<>*/ dispatch_mouse + /*<>*/ return /*<>*/ dispatch_mouse (t,mouse)} - /*<>*/ return -475359645} - /*<>*/ var - /*<>*/ Renderer= + /*<>*/ return -475359645} + /*<>*/ var + /*<>*/ Renderer= [0, make$3, size$2, @@ -570627,2544 +570599,2750 @@ dispatch_focus, dispatch_key, dispatch_event], - /*<>*/ Nottui= + /*<>*/ Nottui= [0,maxi,mini,Focus,Gravity,Interval,Ui,Renderer]; - /*<>*/ function copy_until(quit,f,input) - { /*<>*/ function _sq_(param) - { /*<>*/ return 0 /*<>*/ } - /*<>*/ var - /*<>*/ _sr_=Lwt[28], - /*<>*/ quit$0= - /*<>*/ caml_call2(_sr_,_sq_,quit), - /*<>*/ _ss_=0, - /*<>*/ _st_=Lwt_stream[4], - /*<>*/ match= - /*<>*/ caml_call1(_st_,_ss_), - /*<>*/ push=match[2], - /*<>*/ stream=match[1]; - /*<>*/ function aux(param) - { /*<>*/ function _sv_(result) - { /*<>*/ if(result) - { /*<>*/ var - /*<>*/ x=result[1], - /*<>*/ _sC_= - [0, /*<>*/ caml_call1(f,x)]; - /*<>*/ /*<>*/ caml_call1 - (push,_sC_); - /*<>*/ var - /*<>*/ _sD_=Lwt_stream[27], - /*<>*/ _sE_= - /*<>*/ caml_call1(_sD_,input); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[6],_sE_,aux)} - /*<>*/ /*<>*/ var _sF_=0; - /*<>*/ /*<>*/ caml_call1 - (push,_sF_); - /*<>*/ return Lwt[36] /*<>*/ } - /*<>*/ var - /*<>*/ _sw_=0, - /*<>*/ _sx_=Lwt_stream[19], - /*<>*/ _sy_= - [0,quit$0,[0, /*<>*/ caml_call1(_sx_,input),_sw_]], - /*<>*/ _sz_=Lwt[17], - /*<>*/ _sA_= - /*<>*/ caml_call1(_sz_,_sy_), - /*<>*/ _sB_=Lwt[6]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_sB_,_sA_),_sv_) /*<>*/ } - /*<>*/ /*<>*/ var _su_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_su_,aux); - /*<>*/ return stream /*<>*/ } - /*<>*/ function render(vg,quit,size,events,doc) - { /*<>*/ var - /*<>*/ _rS_=0, - /*<>*/ _rT_=Nottui[7][1], - /*<>*/ renderer= - /*<>*/ caml_call2(_rT_,vg,_rS_), - /*<>*/ _rU_=0, - /*<>*/ _rV_=Lwt_stream[4], - /*<>*/ match= - /*<>*/ caml_call1(_rV_,_rU_), - /*<>*/ push_refresh=match[2], - /*<>*/ refresh_stream=match[1], - /*<>*/ _rW_= + /*<>*/ function copy_until(quit,f,input) + { /*<>*/ function _tp_(param) + { /*<>*/ return 0 /*<>*/ } + /*<>*/ var + /*<>*/ _tq_=Lwt[28], + /*<>*/ quit$0= + /*<>*/ caml_call2(_tq_,_tp_,quit), + /*<>*/ _tr_=0, + /*<>*/ _ts_=Lwt_stream[4], + /*<>*/ match= + /*<>*/ caml_call1(_ts_,_tr_), + /*<>*/ push=match[2], + /*<>*/ stream=match[1]; + /*<>*/ function aux(param) + { /*<>*/ function _tu_(result) + { /*<>*/ if(result) + { /*<>*/ var + /*<>*/ x=result[1], + /*<>*/ _tB_= + [0, /*<>*/ caml_call1(f,x)]; + /*<>*/ /*<>*/ caml_call1 + (push,_tB_); + /*<>*/ var + /*<>*/ _tC_=Lwt_stream[27], + /*<>*/ _tD_= + /*<>*/ caml_call1(_tC_,input); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[6],_tD_,aux)} + /*<>*/ /*<>*/ var _tE_=0; + /*<>*/ /*<>*/ caml_call1 + (push,_tE_); + /*<>*/ return Lwt[36] /*<>*/ } + /*<>*/ var + /*<>*/ _tv_=0, + /*<>*/ _tw_=Lwt_stream[19], + /*<>*/ _tx_= + [0,quit$0,[0, /*<>*/ caml_call1(_tw_,input),_tv_]], + /*<>*/ _ty_=Lwt[17], + /*<>*/ _tz_= + /*<>*/ caml_call1(_ty_,_tx_), + /*<>*/ _tA_=Lwt[6]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_tA_,_tz_),_tu_) /*<>*/ } + /*<>*/ /*<>*/ var _tt_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_tt_,aux); + /*<>*/ return stream /*<>*/ } + /*<>*/ function render(vg,quit,size,events,doc) + { /*<>*/ var + /*<>*/ _sR_=0, + /*<>*/ _sS_=Nottui[7][1], + /*<>*/ renderer= + /*<>*/ caml_call2(_sS_,vg,_sR_), + /*<>*/ _sT_=0, + /*<>*/ _sU_=Lwt_stream[4], + /*<>*/ match= + /*<>*/ caml_call1(_sU_,_sT_), + /*<>*/ push_refresh=match[2], + /*<>*/ refresh_stream=match[1], + /*<>*/ _sV_= [0, function(param) - { /*<>*/ var - /*<>*/ _so_=Lwt_stream[35], - /*<>*/ _sp_= + { /*<>*/ var + /*<>*/ _tn_=Lwt_stream[35], + /*<>*/ _to_= 1 - - /*<>*/ caml_call1(_so_,refresh_stream); - /*<>*/ return _sp_ - ? /*<>*/ caml_call1(push_refresh,_ey_) - :_sp_ /*<>*/ }], - /*<>*/ _rX_=Lwd[23], - /*<>*/ root= - /*<>*/ caml_call2(_rX_,_rW_,doc); - /*<>*/ if(quit) - var quit$0=quit[1],_rY_=0,do_quit=_rY_,quit$1=quit$0; + /*<>*/ caml_call1(_tn_,refresh_stream); + /*<>*/ return _to_ + ? /*<>*/ caml_call1(push_refresh,_ez_) + :_to_ /*<>*/ }], + /*<>*/ _sW_=Lwd[23], + /*<>*/ root= + /*<>*/ caml_call2(_sW_,_sV_,doc); + /*<>*/ if(quit) + var quit$0=quit[1],_sX_=0,do_quit=_sX_,quit$1=quit$0; else - /*<>*/ var - /*<>*/ _r7_=0, - /*<>*/ _r8_=Lwt[1], - /*<>*/ match$1= - /*<>*/ caml_call1(_r8_,_r7_), - /*<>*/ u=match$1[2], - /*<>*/ t=match$1[1], - /*<>*/ do_quit$0=[0,u], + /*<>*/ var + /*<>*/ _s6_=0, + /*<>*/ _s7_=Lwt[1], + /*<>*/ match$1= + /*<>*/ caml_call1(_s7_,_s6_), + /*<>*/ u=match$1[2], + /*<>*/ t=match$1[1], + /*<>*/ do_quit$0=[0,u], do_quit=do_quit$0, quit$1=t; - /*<>*/ function _rZ_(e) - { /*<>*/ return e /*<>*/ } - /*<>*/ var - /*<>*/ events$0= - /*<>*/ copy_until(quit$1,_rZ_,events), - /*<>*/ size$0=[0,size], - /*<>*/ _r0_=0, - /*<>*/ _r1_=Lwt_stream[4], - /*<>*/ match$0= - /*<>*/ caml_call1(_r1_,_r0_), - /*<>*/ push=match$0[2], - /*<>*/ result=match$0[1]; - /*<>*/ function refresh(param) - { /*<>*/ var - /*<>*/ _sk_=Lwd[28], - /*<>*/ ui= - /*<>*/ caml_call1(_sk_,root), - /*<>*/ _sl_=size$0[1], - /*<>*/ _sm_=Nottui[7][12]; - /*<>*/ /*<>*/ caml_call3 - (_sm_,renderer,_sl_,ui); - /*<>*/ /*<>*/ var - _sn_= + /*<>*/ function _sY_(e) + { /*<>*/ return e /*<>*/ } + /*<>*/ var + /*<>*/ events$0= + /*<>*/ copy_until(quit$1,_sY_,events), + /*<>*/ size$0=[0,size], + /*<>*/ _sZ_=0, + /*<>*/ _s0_=Lwt_stream[4], + /*<>*/ match$0= + /*<>*/ caml_call1(_s0_,_sZ_), + /*<>*/ push=match$0[2], + /*<>*/ result=match$0[1]; + /*<>*/ function refresh(param) + { /*<>*/ var + /*<>*/ _tj_=Lwd[28], + /*<>*/ ui= + /*<>*/ caml_call1(_tj_,root), + /*<>*/ _tk_=size$0[1], + /*<>*/ _tl_=Nottui[7][12]; + /*<>*/ /*<>*/ caml_call3 + (_tl_,renderer,_tk_,ui); + /*<>*/ /*<>*/ var + _tm_= Nottui[7][19]; - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ return /*<>*/ caml_call1 (push, - [0, /*<>*/ caml_call2(_sn_,vg,renderer)]) /*<>*/ } - /*<>*/ /*<>*/ var _r2_=0; - /*<>*/ /*<>*/ refresh(_r2_); - /*<>*/ function process_event(e) - { /*<>*/ /*<>*/ var _sa_=e[1]; - /*<>*/ if(3752319 === _sa_) - {var _sb_=e[2],_sc_=_sb_[1]; - if(typeof _sc_ !== "number" && 852405675 === _sc_[1]) - {var _se_=_sb_[2]; - if(_se_ && 858945253 === _se_[1] && ! _se_[2]) - { /*<>*/ var - c=_sc_[2], - _sf_=113, - _sg_=Stdlib_Uchar[12], - /*<>*/ _sh_= - /*<>*/ caml_call1(_sg_,_sf_), - /*<>*/ _si_=Stdlib_Uchar[15]; - /*<>*/ if - ( /*<>*/ caml_call2(_si_,c,_sh_)) - { /*<>*/ if(do_quit) - { /*<>*/ /*<>*/ var + [0, /*<>*/ caml_call2(_tm_,vg,renderer)]) /*<>*/ } + /*<>*/ /*<>*/ var _s1_=0; + /*<>*/ /*<>*/ refresh(_s1_); + /*<>*/ function process_event(e) + { /*<>*/ /*<>*/ var _s$_=e[1]; + /*<>*/ if(3752319 === _s$_) + {var _ta_=e[2],_tb_=_ta_[1]; + if(typeof _tb_ !== "number" && 852405675 === _tb_[1]) + {var _td_=_ta_[2]; + if(_td_ && 858945253 === _td_[1] && ! _td_[2]) + { /*<>*/ var + c=_tb_[2], + _te_=113, + _tf_=Stdlib_Uchar[12], + /*<>*/ _tg_= + /*<>*/ caml_call1(_tf_,_te_), + /*<>*/ _th_=Stdlib_Uchar[15]; + /*<>*/ if + ( /*<>*/ caml_call2(_th_,c,_tg_)) + { /*<>*/ if(do_quit) + { /*<>*/ /*<>*/ var u= do_quit[1]; - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ return /*<>*/ caml_call2 (Lwt[52],u,0)} - /*<>*/ /*<>*/ var - _sj_= + /*<>*/ /*<>*/ var + _ti_= Nottui[7][25]; - /*<>*/ /*<>*/ caml_call2 - (_sj_,renderer,e); - /*<>*/ return 0}}}} + /*<>*/ /*<>*/ caml_call2 + (_ti_,renderer,e); + /*<>*/ return 0}}}} else - if(1024445972 <= _sa_) - { /*<>*/ /*<>*/ var size=e[2]; - /*<>*/ size$0[1] = size; - /*<>*/ return /*<>*/ refresh + if(1024445972 <= _s$_) + { /*<>*/ /*<>*/ var size=e[2]; + /*<>*/ size$0[1] = size; + /*<>*/ return /*<>*/ refresh (0)} - /*<>*/ var - /*<>*/ _sd_=Nottui[7][25], - /*<>*/ match= - /*<>*/ caml_call2(_sd_,renderer,e); - /*<>*/ return 321312668 <= match?0:0 /*<>*/ } - /*<>*/ function _r3_(param) - { /*<>*/ function _r9_(param) - { /*<>*/ /*<>*/ var _r$_=0; - /*<>*/ /*<>*/ caml_call1 - (push,_r$_); - /*<>*/ return Lwt[36] /*<>*/ } - /*<>*/ function _r__(param) - { /*<>*/ return /*<>*/ caml_call2 - (Lwt_stream[50],process_event,events$0) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Lwt[8],_r__,_r9_) /*<>*/ } - /*<>*/ /*<>*/ var _r4_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_r4_,_r3_); - /*<>*/ function _r5_(param) - { /*<>*/ return /*<>*/ caml_call2 - (Lwt_stream[50],refresh,refresh_stream) /*<>*/ } - /*<>*/ /*<>*/ var _r6_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_r6_,_r5_); - /*<>*/ return result /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ var + /*<>*/ _tc_=Nottui[7][25], + /*<>*/ match= + /*<>*/ caml_call2(_tc_,renderer,e); + /*<>*/ return 321312668 <= match?0:0 /*<>*/ } + /*<>*/ function _s2_(param) + { /*<>*/ function _s8_(param) + { /*<>*/ /*<>*/ var _s__=0; + /*<>*/ /*<>*/ caml_call1 + (push,_s__); + /*<>*/ return Lwt[36] /*<>*/ } + /*<>*/ function _s9_(param) + { /*<>*/ return /*<>*/ caml_call2 + (Lwt_stream[50],process_event,events$0) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Lwt[8],_s9_,_s8_) /*<>*/ } + /*<>*/ /*<>*/ var _s3_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_s3_,_s2_); + /*<>*/ function _s4_(param) + { /*<>*/ return /*<>*/ caml_call2 + (Lwt_stream[50],refresh,refresh_stream) /*<>*/ } + /*<>*/ /*<>*/ var _s5_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_s5_,_s4_); + /*<>*/ return result /*<>*/ } + /*<>*/ /*<>*/ var Nottui_lwt= [0,copy_until,render]; - /*<>*/ function string$0(opt,str) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ function string$0(opt,str) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], attr=sth; else var attr=Style[4]; - /*<>*/ var - /*<>*/ _rP_=[0,attr], - /*<>*/ _rQ_=I[21], - /*<>*/ _rR_= - /*<>*/ caml_call2(_rQ_,_rP_,str); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_rR_) /*<>*/ } - /*<>*/ function int$0(attr,x) - { /*<>*/ /*<>*/ var _rO_=Stdlib[33]; - /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_rO_,x)) /*<>*/ } - /*<>*/ function bool(attr,x) - { /*<>*/ /*<>*/ var _rN_=Stdlib[30]; - /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_rN_,x)) /*<>*/ } - /*<>*/ function float$0(attr,x) - { /*<>*/ /*<>*/ var _rM_=Stdlib[35]; - /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_rM_,x)) /*<>*/ } - /*<>*/ function printf(attr,fmt) - { /*<>*/ function _rK_(_rL_) - { /*<>*/ return string$0(attr,_rL_)} - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[10],_rK_,fmt) /*<>*/ } - /*<>*/ function fmt(attr,fmt) - { /*<>*/ function _rI_(_rJ_) - { /*<>*/ return string$0(attr,_rJ_)} - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Format[140],_rI_,fmt) /*<>*/ } - /*<>*/ function kprintf(k,attr,fmt) - { /*<>*/ function _rH_(str) - { /*<>*/ return /*<>*/ caml_call1 - (k, /*<>*/ string$0(attr,str)) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[10],_rH_,fmt) /*<>*/ } - /*<>*/ function kfmt(k,attr,fmt) - { /*<>*/ function _rG_(str) - { /*<>*/ return /*<>*/ caml_call1 - (k, /*<>*/ string$0(attr,str)) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Format[140],_rG_,fmt) /*<>*/ } - /*<>*/ function window_manager(base) - { /*<>*/ var - /*<>*/ _rp_=0, - /*<>*/ _rq_=Lwd_table[1], - /*<>*/ overlays= - /*<>*/ caml_call1(_rq_,_rp_), - /*<>*/ _rr_=Nottui[6][33], - /*<>*/ _rs_=Lwd_utils[1], - /*<>*/ _rt_= - /*<>*/ caml_call1(_rs_,_rr_), - /*<>*/ _ru_=Lwd_table[18], - /*<>*/ _rv_= - /*<>*/ caml_call2(_ru_,_rt_,overlays), - /*<>*/ _rw_=Lwd[5], - /*<>*/ composition= - /*<>*/ caml_call1(_rw_,_rv_); - /*<>*/ function _rx_(base,composite) - { /*<>*/ var - /*<>*/ _rz_=0, - /*<>*/ _rA_=0, - /*<>*/ _rB_=0, - /*<>*/ _rC_=Nottui[6][8], - /*<>*/ _rD_= - /*<>*/ caml_call1(_rC_,base), - /*<>*/ _rE_=Nottui[6][26], - /*<>*/ _rF_= - /*<>*/ caml_call5 - (_rE_,_rD_,_rB_,_rA_,_rz_,composite); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][30],base,_rF_) /*<>*/ } - /*<>*/ var - /*<>*/ _ry_=Lwd[4], - /*<>*/ view= - /*<>*/ caml_call3(_ry_,base,composition,_rx_); - /*<>*/ return [0,overlays,view] /*<>*/ } - /*<>*/ function window_manager_view(wm) - { /*<>*/ return wm[2] /*<>*/ } - /*<>*/ function window_manager_overlays(wm) - { /*<>*/ return wm[1] /*<>*/ } - /*<>*/ function menu_overlay(wm,g,opt,_qj_,body,around) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ _sO_=[0,attr], + /*<>*/ _sP_=I[21], + /*<>*/ _sQ_= + /*<>*/ caml_call2(_sP_,_sO_,str); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][16],_sQ_) /*<>*/ } + /*<>*/ function int$0(attr,x) + { /*<>*/ /*<>*/ var _sN_=Stdlib[33]; + /*<>*/ return /*<>*/ string$0 + (attr, /*<>*/ caml_call1(_sN_,x)) /*<>*/ } + /*<>*/ function bool(attr,x) + { /*<>*/ /*<>*/ var _sM_=Stdlib[30]; + /*<>*/ return /*<>*/ string$0 + (attr, /*<>*/ caml_call1(_sM_,x)) /*<>*/ } + /*<>*/ function float$0(attr,x) + { /*<>*/ /*<>*/ var _sL_=Stdlib[35]; + /*<>*/ return /*<>*/ string$0 + (attr, /*<>*/ caml_call1(_sL_,x)) /*<>*/ } + /*<>*/ function printf(attr,fmt) + { /*<>*/ function _sJ_(_sK_) + { /*<>*/ return string$0(attr,_sK_)} + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Printf[10],_sJ_,fmt) /*<>*/ } + /*<>*/ function fmt(attr,fmt) + { /*<>*/ function _sH_(_sI_) + { /*<>*/ return string$0(attr,_sI_)} + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Format[140],_sH_,fmt) /*<>*/ } + /*<>*/ function kprintf(k,attr,fmt) + { /*<>*/ function _sG_(str) + { /*<>*/ return /*<>*/ caml_call1 + (k, /*<>*/ string$0(attr,str)) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Printf[10],_sG_,fmt) /*<>*/ } + /*<>*/ function kfmt(k,attr,fmt) + { /*<>*/ function _sF_(str) + { /*<>*/ return /*<>*/ caml_call1 + (k, /*<>*/ string$0(attr,str)) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Format[140],_sF_,fmt) /*<>*/ } + /*<>*/ function window_manager(base) + { /*<>*/ var + /*<>*/ _so_=0, + /*<>*/ _sp_=Lwd_table[1], + /*<>*/ overlays= + /*<>*/ caml_call1(_sp_,_so_), + /*<>*/ _sq_=Nottui[6][33], + /*<>*/ _sr_=Lwd_utils[1], + /*<>*/ _ss_= + /*<>*/ caml_call1(_sr_,_sq_), + /*<>*/ _st_=Lwd_table[18], + /*<>*/ _su_= + /*<>*/ caml_call2(_st_,_ss_,overlays), + /*<>*/ _sv_=Lwd[5], + /*<>*/ composition= + /*<>*/ caml_call1(_sv_,_su_); + /*<>*/ function _sw_(base,composite) + { /*<>*/ var + /*<>*/ _sy_=0, + /*<>*/ _sz_=0, + /*<>*/ _sA_=0, + /*<>*/ _sB_=Nottui[6][8], + /*<>*/ _sC_= + /*<>*/ caml_call1(_sB_,base), + /*<>*/ _sD_=Nottui[6][26], + /*<>*/ _sE_= + /*<>*/ caml_call5 + (_sD_,_sC_,_sA_,_sz_,_sy_,composite); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][30],base,_sE_) /*<>*/ } + /*<>*/ var + /*<>*/ _sx_=Lwd[4], + /*<>*/ view= + /*<>*/ caml_call3(_sx_,base,composition,_sw_); + /*<>*/ return [0,overlays,view] /*<>*/ } + /*<>*/ function window_manager_view(wm) + { /*<>*/ return wm[2] /*<>*/ } + /*<>*/ function window_manager_overlays(wm) + { /*<>*/ return wm[1] /*<>*/ } + /*<>*/ function menu_overlay(wm,g,opt,_ri_,body,around) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], dx=sth; else var dx=0.; - /*<>*/ if(_qj_) - /*<>*/ var - /*<>*/ sth$0=_qj_[1], + /*<>*/ if(_ri_) + /*<>*/ var + /*<>*/ sth$0=_ri_[1], dy=sth$0; else var dy=0.; - /*<>*/ function sensor(x,y,w,h,param) - { /*<>*/ var - /*<>*/ _qk_= - /*<>*/ window_manager_overlays(wm), - /*<>*/ _ql_=0, - /*<>*/ _qm_=Lwd_table[3], - /*<>*/ row= - /*<>*/ caml_call2(_qm_,_ql_,_qk_), - /*<>*/ _qn_=Nottui[4][5], - /*<>*/ match= - /*<>*/ caml_call1(_qn_,g); - /*<>*/ if(720626325 === match) - /*<>*/ var - /*<>*/ _qo_=0., - /*<>*/ _qp_=x + dx, - /*<>*/ _qq_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_qq_,_qp_,_qo_); + /*<>*/ function sensor(x,y,w,h,param) + { /*<>*/ var + /*<>*/ _rj_= + /*<>*/ window_manager_overlays(wm), + /*<>*/ _rk_=0, + /*<>*/ _rl_=Lwd_table[3], + /*<>*/ row= + /*<>*/ caml_call2(_rl_,_rk_,_rj_), + /*<>*/ _rm_=Nottui[4][5], + /*<>*/ match= + /*<>*/ caml_call1(_rm_,g); + /*<>*/ if(720626325 === match) + /*<>*/ var + /*<>*/ _rn_=0., + /*<>*/ _ro_=x + dx, + /*<>*/ _rp_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_rp_,_ro_,_rn_); else if(947590439 <= match) - /*<>*/ var - /*<>*/ _qG_=0., - /*<>*/ _qH_=w / 2., - /*<>*/ _qI_=x + dx, - /*<>*/ _qJ_=_qI_ + _qH_, - /*<>*/ _qK_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_qK_,_qJ_,_qG_); + /*<>*/ var + /*<>*/ _rF_=0., + /*<>*/ _rG_=w / 2., + /*<>*/ _rH_=x + dx, + /*<>*/ _rI_=_rH_ + _rG_, + /*<>*/ _rJ_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_rJ_,_rI_,_rF_); else - /*<>*/ var - /*<>*/ _qL_=0., - /*<>*/ _qM_=x + dx, - /*<>*/ _qN_=_qM_ + w, - /*<>*/ _qO_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_qO_,_qN_,_qL_); - /*<>*/ var - /*<>*/ _qr_=Nottui[4][6], - /*<>*/ match$0= - /*<>*/ caml_call1(_qr_,g); - /*<>*/ if(720626325 === match$0) - /*<>*/ var - /*<>*/ _qs_=y + dy, - /*<>*/ _qt_=0., - /*<>*/ _qu_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_qu_,_qt_,_qs_); + /*<>*/ var + /*<>*/ _rK_=0., + /*<>*/ _rL_=x + dx, + /*<>*/ _rM_=_rL_ + w, + /*<>*/ _rN_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_rN_,_rM_,_rK_); + /*<>*/ var + /*<>*/ _rq_=Nottui[4][6], + /*<>*/ match$0= + /*<>*/ caml_call1(_rq_,g); + /*<>*/ if(720626325 === match$0) + /*<>*/ var + /*<>*/ _rr_=y + dy, + /*<>*/ _rs_=0., + /*<>*/ _rt_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_rt_,_rs_,_rr_); else if(947590439 <= match$0) - /*<>*/ var - /*<>*/ _qx_=h / 2., - /*<>*/ _qy_=y + dy, - /*<>*/ _qz_=_qy_ + _qx_, - /*<>*/ _qA_=0., - /*<>*/ _qB_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_qB_,_qA_,_qz_); + /*<>*/ var + /*<>*/ _rw_=h / 2., + /*<>*/ _rx_=y + dy, + /*<>*/ _ry_=_rx_ + _rw_, + /*<>*/ _rz_=0., + /*<>*/ _rA_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_rA_,_rz_,_ry_); else - /*<>*/ var - /*<>*/ _qC_=y + dy, - /*<>*/ _qD_=_qC_ + h, - /*<>*/ _qE_=0., - /*<>*/ _qF_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_qF_,_qE_,_qD_); - /*<>*/ function _qv_(body) - { /*<>*/ var - /*<>*/ _qP_=0., - /*<>*/ _qQ_=1., - /*<>*/ _qR_=Nottui[6][17], - /*<>*/ pad= - /*<>*/ caml_call2(_qR_,_qQ_,_qP_), - /*<>*/ _qS_=Nottui[6][28], - /*<>*/ _qT_= - /*<>*/ caml_call2(_qS_,body,pad), - /*<>*/ _qU_=Nottui[6][28], - /*<>*/ body$0= - /*<>*/ caml_call2(_qU_,pad,_qT_), - /*<>*/ _qV_=Nottui[6][15], - /*<>*/ _qW_=NVG[40][27], - /*<>*/ _qX_=0, - /*<>*/ _qY_=Style[9], - /*<>*/ _qZ_= - [0, /*<>*/ caml_call2(_qY_,_qX_,_qW_)], - /*<>*/ _q0_=0, - /*<>*/ _q1_=0, - /*<>*/ _q2_=Nottui[6][8], - /*<>*/ _q3_= - /*<>*/ caml_call1(_q2_,body$0), - /*<>*/ _q4_=Nottui[6][26], - /*<>*/ bg= - /*<>*/ caml_call5 - (_q4_,_q3_,_q1_,_q0_,_qZ_,_qV_), - /*<>*/ _q5_=Nottui[6][15], - /*<>*/ _q6_=0, - /*<>*/ _q7_=0, - /*<>*/ _q8_=0, - /*<>*/ _q9_=0, - /*<>*/ _q__=0, - /*<>*/ _q$_=Nottui[6][25], - /*<>*/ _ra_= - /*<>*/ caml_call8 - (_q$_,_q__,_q9_,_eA_,_ez_,_q8_,_q7_,_q6_,_q5_); - /*<>*/ function _rb_(param,_rn_,_rm_) - { /*<>*/ if(847852583 === _rm_) - { /*<>*/ /*<>*/ var - _ro_= + /*<>*/ var + /*<>*/ _rB_=y + dy, + /*<>*/ _rC_=_rB_ + h, + /*<>*/ _rD_=0., + /*<>*/ _rE_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_rE_,_rD_,_rC_); + /*<>*/ function _ru_(body) + { /*<>*/ var + /*<>*/ _rO_=0., + /*<>*/ _rP_=1., + /*<>*/ _rQ_=Nottui[6][17], + /*<>*/ pad= + /*<>*/ caml_call2(_rQ_,_rP_,_rO_), + /*<>*/ _rR_=Nottui[6][28], + /*<>*/ _rS_= + /*<>*/ caml_call2(_rR_,body,pad), + /*<>*/ _rT_=Nottui[6][28], + /*<>*/ body$0= + /*<>*/ caml_call2(_rT_,pad,_rS_), + /*<>*/ _rU_=Nottui[6][15], + /*<>*/ _rV_=NVG[40][27], + /*<>*/ _rW_=0, + /*<>*/ _rX_=Style[9], + /*<>*/ _rY_= + [0, /*<>*/ caml_call2(_rX_,_rW_,_rV_)], + /*<>*/ _rZ_=0, + /*<>*/ _r0_=0, + /*<>*/ _r1_=Nottui[6][8], + /*<>*/ _r2_= + /*<>*/ caml_call1(_r1_,body$0), + /*<>*/ _r3_=Nottui[6][26], + /*<>*/ bg= + /*<>*/ caml_call5 + (_r3_,_r2_,_r0_,_rZ_,_rY_,_rU_), + /*<>*/ _r4_=Nottui[6][15], + /*<>*/ _r5_=0, + /*<>*/ _r6_=0, + /*<>*/ _r7_=0, + /*<>*/ _r8_=0, + /*<>*/ _r9_=0, + /*<>*/ _r__=Nottui[6][25], + /*<>*/ _r$_= + /*<>*/ caml_call8 + (_r__,_r9_,_r8_,_eB_,_eA_,_r7_,_r6_,_r5_,_r4_); + /*<>*/ function _sa_(param,_sm_,_sl_) + { /*<>*/ if(847852583 === _sl_) + { /*<>*/ /*<>*/ var + _sn_= Lwd_table[16]; - /*<>*/ /*<>*/ caml_call1 - (_ro_,row); - /*<>*/ return 321312668} - /*<>*/ return 321312668 /*<>*/ } - /*<>*/ var - /*<>*/ _rc_=Nottui[6][18], - /*<>*/ catchall= - /*<>*/ caml_call2(_rc_,_rb_,_ra_), - /*<>*/ _rd_=Nottui[6][30], - /*<>*/ _re_= - /*<>*/ caml_call2(_rd_,bg,body$0), - /*<>*/ _rf_=Nottui[6][28], - /*<>*/ _rg_= - /*<>*/ caml_call1(_rf_,h_pad), - /*<>*/ _rh_= - /*<>*/ caml_call1(_rg_,_re_), - /*<>*/ _ri_=Nottui[6][29], - /*<>*/ _rj_= - /*<>*/ caml_call1(_ri_,v_pad), - /*<>*/ _rk_= - /*<>*/ caml_call1(_rj_,_rh_), - /*<>*/ _rl_=Nottui[6][30]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_rl_,catchall),_rk_) /*<>*/ } - /*<>*/ var - /*<>*/ _qw_=Lwd[3], - /*<>*/ view= - /*<>*/ caml_call2(_qw_,body,_qv_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd_table[13],row,view) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][22],sensor,around) /*<>*/ } - /*<>*/ /*<>*/ var scroll_step=7.; - /*<>*/ function scroll_area(opt,t) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ /*<>*/ caml_call1 + (_sn_,row); + /*<>*/ return 321312668} + /*<>*/ return 321312668 /*<>*/ } + /*<>*/ var + /*<>*/ _sb_=Nottui[6][18], + /*<>*/ catchall= + /*<>*/ caml_call2(_sb_,_sa_,_r$_), + /*<>*/ _sc_=Nottui[6][30], + /*<>*/ _sd_= + /*<>*/ caml_call2(_sc_,bg,body$0), + /*<>*/ _se_=Nottui[6][28], + /*<>*/ _sf_= + /*<>*/ caml_call1(_se_,h_pad), + /*<>*/ _sg_= + /*<>*/ caml_call1(_sf_,_sd_), + /*<>*/ _sh_=Nottui[6][29], + /*<>*/ _si_= + /*<>*/ caml_call1(_sh_,v_pad), + /*<>*/ _sj_= + /*<>*/ caml_call1(_si_,_sg_), + /*<>*/ _sk_=Nottui[6][30]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_sk_,catchall),_sj_) /*<>*/ } + /*<>*/ var + /*<>*/ _rv_=Lwd[3], + /*<>*/ view= + /*<>*/ caml_call2(_rv_,body,_ru_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd_table[13],row,view) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][22],sensor,around) /*<>*/ } + /*<>*/ /*<>*/ var scroll_step=7.; + /*<>*/ function scroll_area(opt,t) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], offset=sth; else - var offset=_eB_; - /*<>*/ var - /*<>*/ _pY_=Lwd[10], - /*<>*/ offset$0= - /*<>*/ caml_call1(_pY_,offset); - /*<>*/ function scroll(d_x,d_y) - { /*<>*/ var - /*<>*/ _qa_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_qa_,offset$0), - /*<>*/ s_y=match[2], - /*<>*/ s_x=match[1], - /*<>*/ _qb_=s_x + d_x, - /*<>*/ _qc_=0., - /*<>*/ _qd_=Stdlib[17], - /*<>*/ s_x$0= - /*<>*/ caml_call2(_qd_,_qc_,_qb_), - /*<>*/ _qe_=s_y + d_y, - /*<>*/ _qf_=0., - /*<>*/ _qg_=Stdlib[17], - /*<>*/ s_y$0= - /*<>*/ caml_call2(_qg_,_qf_,_qe_), - /*<>*/ _qh_=[0,s_x$0,s_y$0], - /*<>*/ _qi_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_qi_,offset$0,_qh_); - /*<>*/ return 321312668 /*<>*/ } - /*<>*/ function focus_handler(param) - { /*<>*/ /*<>*/ var _p7_=param[1]; - /*<>*/ if(typeof _p7_ !== "number") - {var _p8_=_p7_[1]; - if(892012143 === _p8_) - {var _p9_=_p7_[2]; - if(19067 === _p9_) + var offset=_eC_; + /*<>*/ var + /*<>*/ _qX_=Lwd[10], + /*<>*/ offset$0= + /*<>*/ caml_call1(_qX_,offset); + /*<>*/ function scroll(d_x,d_y) + { /*<>*/ var + /*<>*/ _q$_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_q$_,offset$0), + /*<>*/ s_y=match[2], + /*<>*/ s_x=match[1], + /*<>*/ _ra_=s_x + d_x, + /*<>*/ _rb_=0., + /*<>*/ _rc_=Stdlib[17], + /*<>*/ s_x$0= + /*<>*/ caml_call2(_rc_,_rb_,_ra_), + /*<>*/ _rd_=s_y + d_y, + /*<>*/ _re_=0., + /*<>*/ _rf_=Stdlib[17], + /*<>*/ s_y$0= + /*<>*/ caml_call2(_rf_,_re_,_rd_), + /*<>*/ _rg_=[0,s_x$0,s_y$0], + /*<>*/ _rh_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_rh_,offset$0,_rg_); + /*<>*/ return 321312668 /*<>*/ } + /*<>*/ function focus_handler(param) + { /*<>*/ /*<>*/ var _q6_=param[1]; + /*<>*/ if(typeof _q6_ !== "number") + {var _q7_=_q6_[1]; + if(892012143 === _q7_) + {var _q8_=_q6_[2]; + if(19067 === _q8_) {if(! param[2]) - /*<>*/ return /*<>*/ scroll + /*<>*/ return /*<>*/ scroll (0.,-56.)} else - if(759637122 === _p9_ && ! param[2]) - /*<>*/ return /*<>*/ scroll + if(759637122 === _q8_ && ! param[2]) + /*<>*/ return /*<>*/ scroll (0.,56.)} else - if(951904681 === _p8_) - {var _p__=_p7_[2]; - if(19068 <= _p__) - {if(759637122 === _p__) + if(951904681 === _q7_) + {var _q9_=_q6_[2]; + if(19068 <= _q9_) + {if(759637122 === _q9_) {if(! param[2]) - /*<>*/ return /*<>*/ scroll + /*<>*/ return /*<>*/ scroll (0.,scroll_step)} else - if(847852583 === _p__ && ! param[2]) - { /*<>*/ /*<>*/ var - _p$_= + if(847852583 === _q9_ && ! param[2]) + { /*<>*/ /*<>*/ var + _q__= 0.; - /*<>*/ return /*<>*/ scroll - (-7.,_p$_)}} + /*<>*/ return /*<>*/ scroll + (-7.,_q__)}} else - if(-57574468 === _p__) + if(-57574468 === _q9_) {if(! param[2]) - /*<>*/ return /*<>*/ scroll + /*<>*/ return /*<>*/ scroll (scroll_step,0.)} else - if(19067 <= _p__ && ! param[2]) - /*<>*/ return /*<>*/ scroll + if(19067 <= _q9_ && ! param[2]) + /*<>*/ return /*<>*/ scroll (0.,-7.)}} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function _pZ_(t,param) - { /*<>*/ var - /*<>*/ s_y=param[2], - /*<>*/ s_x=param[1], - /*<>*/ _p2_=Nottui[6][20], - /*<>*/ _p3_= - /*<>*/ caml_call2(_p2_,s_x,s_y), - /*<>*/ _p4_= - /*<>*/ caml_call1(_p3_,t), - /*<>*/ _p5_=0, - /*<>*/ _p6_=Nottui[6][19]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call2(_p6_,_p5_,focus_handler), - _p4_) /*<>*/ } - /*<>*/ var - /*<>*/ _p0_=Lwd[11], - /*<>*/ _p1_= - /*<>*/ caml_call1(_p0_,offset$0); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],t,_p1_,_pZ_) /*<>*/ } - /*<>*/ function main_menu_item(wm,text,f) - { /*<>*/ var - /*<>*/ _pC_=Stdlib[28], - /*<>*/ _pD_= - /*<>*/ caml_call2(_pC_,text,cst$5), - /*<>*/ _pE_=Stdlib[28], - /*<>*/ _pF_= - /*<>*/ caml_call2(_pE_,cst$6,_pD_), - /*<>*/ _pG_=[0,Style[13]], - /*<>*/ text$0= - /*<>*/ string$0(_pG_,_pF_), - /*<>*/ _pH_=0, - /*<>*/ _pI_=Lwd[10], - /*<>*/ refresh= - /*<>*/ caml_call1(_pI_,_pH_), - /*<>*/ overlay=[0,0]; - /*<>*/ function on_click(param,_pV_,_pU_) - { /*<>*/ if(847852583 === _pU_) - { /*<>*/ overlay[1] = 1; - /*<>*/ var - /*<>*/ _pW_=0, - /*<>*/ _pX_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_pX_,refresh,_pW_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ function _pJ_(param) - { /*<>*/ var - /*<>*/ _pM_=Nottui[6][18], - /*<>*/ ui= - /*<>*/ caml_call2(_pM_,on_click,text$0); - /*<>*/ if(overlay[1]) - { /*<>*/ overlay[1] = 0; - /*<>*/ var - /*<>*/ _pN_=0, - /*<>*/ _pO_= - /*<>*/ caml_call1(f,_pN_), - /*<>*/ _pP_=0, - /*<>*/ _pQ_=0, - /*<>*/ _pR_=615277273, - /*<>*/ _pS_=720626325, - /*<>*/ _pT_=Nottui[4][3]; - /*<>*/ return /*<>*/ menu_overlay + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ function _qY_(t,param) + { /*<>*/ var + /*<>*/ s_y=param[2], + /*<>*/ s_x=param[1], + /*<>*/ _q1_=Nottui[6][20], + /*<>*/ _q2_= + /*<>*/ caml_call2(_q1_,s_x,s_y), + /*<>*/ _q3_= + /*<>*/ caml_call1(_q2_,t), + /*<>*/ _q4_=0, + /*<>*/ _q5_=Nottui[6][19]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call2(_q5_,_q4_,focus_handler), + _q3_) /*<>*/ } + /*<>*/ var + /*<>*/ _qZ_=Lwd[11], + /*<>*/ _q0_= + /*<>*/ caml_call1(_qZ_,offset$0); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],t,_q0_,_qY_) /*<>*/ } + /*<>*/ function main_menu_item(wm,text,f) + { /*<>*/ var + /*<>*/ _qB_=Stdlib[28], + /*<>*/ _qC_= + /*<>*/ caml_call2(_qB_,text,cst$5), + /*<>*/ _qD_=Stdlib[28], + /*<>*/ _qE_= + /*<>*/ caml_call2(_qD_,cst$6,_qC_), + /*<>*/ _qF_=[0,Style[13]], + /*<>*/ text$0= + /*<>*/ string$0(_qF_,_qE_), + /*<>*/ _qG_=0, + /*<>*/ _qH_=Lwd[10], + /*<>*/ refresh= + /*<>*/ caml_call1(_qH_,_qG_), + /*<>*/ overlay=[0,0]; + /*<>*/ function on_click(param,_qU_,_qT_) + { /*<>*/ if(847852583 === _qT_) + { /*<>*/ overlay[1] = 1; + /*<>*/ var + /*<>*/ _qV_=0, + /*<>*/ _qW_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_qW_,refresh,_qV_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ function _qI_(param) + { /*<>*/ var + /*<>*/ _qL_=Nottui[6][18], + /*<>*/ ui= + /*<>*/ caml_call2(_qL_,on_click,text$0); + /*<>*/ if(overlay[1]) + { /*<>*/ overlay[1] = 0; + /*<>*/ var + /*<>*/ _qM_=0, + /*<>*/ _qN_= + /*<>*/ caml_call1(f,_qM_), + /*<>*/ _qO_=0, + /*<>*/ _qP_=0, + /*<>*/ _qQ_=615277273, + /*<>*/ _qR_=720626325, + /*<>*/ _qS_=Nottui[4][3]; + /*<>*/ return /*<>*/ menu_overlay (wm, - /*<>*/ caml_call2(_pT_,_pS_,_pR_), - _pQ_, - _pP_, - _pO_, + /*<>*/ caml_call2(_qS_,_qR_,_qQ_), + _qP_, + _qO_, + _qN_, ui)} - /*<>*/ return ui /*<>*/ } - /*<>*/ var - /*<>*/ _pK_=Lwd[11], - /*<>*/ _pL_= - /*<>*/ caml_call1(_pK_,refresh); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],_pL_,_pJ_) /*<>*/ } - /*<>*/ function sub_menu_item(wm,text,f) - { /*<>*/ var - /*<>*/ _pk_=[0,Style[14]], - /*<>*/ text$0= - /*<>*/ string$0(_pk_,text), - /*<>*/ _pl_=0, - /*<>*/ _pm_=Lwd[10], - /*<>*/ refresh= - /*<>*/ caml_call1(_pm_,_pl_), - /*<>*/ overlay=[0,0]; - /*<>*/ function on_click(param,_pz_,_py_) - { /*<>*/ if(847852583 === _py_) - { /*<>*/ overlay[1] = 1; - /*<>*/ var - /*<>*/ _pA_=0, - /*<>*/ _pB_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_pB_,refresh,_pA_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ function _pn_(param) - { /*<>*/ var - /*<>*/ _pq_=Nottui[6][18], - /*<>*/ ui= - /*<>*/ caml_call2(_pq_,on_click,text$0); - /*<>*/ if(overlay[1]) - { /*<>*/ overlay[1] = 0; - /*<>*/ var - /*<>*/ _pr_=0, - /*<>*/ _ps_= - /*<>*/ caml_call1(f,_pr_), - /*<>*/ _pt_=0, - /*<>*/ _pu_=0, - /*<>*/ _pv_=720626325, - /*<>*/ _pw_=615277273, - /*<>*/ _px_=Nottui[4][3]; - /*<>*/ return /*<>*/ menu_overlay + /*<>*/ return ui /*<>*/ } + /*<>*/ var + /*<>*/ _qJ_=Lwd[11], + /*<>*/ _qK_= + /*<>*/ caml_call1(_qJ_,refresh); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[3],_qK_,_qI_) /*<>*/ } + /*<>*/ function sub_menu_item(wm,text,f) + { /*<>*/ var + /*<>*/ _qj_=[0,Style[14]], + /*<>*/ text$0= + /*<>*/ string$0(_qj_,text), + /*<>*/ _qk_=0, + /*<>*/ _ql_=Lwd[10], + /*<>*/ refresh= + /*<>*/ caml_call1(_ql_,_qk_), + /*<>*/ overlay=[0,0]; + /*<>*/ function on_click(param,_qy_,_qx_) + { /*<>*/ if(847852583 === _qx_) + { /*<>*/ overlay[1] = 1; + /*<>*/ var + /*<>*/ _qz_=0, + /*<>*/ _qA_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_qA_,refresh,_qz_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ function _qm_(param) + { /*<>*/ var + /*<>*/ _qp_=Nottui[6][18], + /*<>*/ ui= + /*<>*/ caml_call2(_qp_,on_click,text$0); + /*<>*/ if(overlay[1]) + { /*<>*/ overlay[1] = 0; + /*<>*/ var + /*<>*/ _qq_=0, + /*<>*/ _qr_= + /*<>*/ caml_call1(f,_qq_), + /*<>*/ _qs_=0, + /*<>*/ _qt_=0, + /*<>*/ _qu_=720626325, + /*<>*/ _qv_=615277273, + /*<>*/ _qw_=Nottui[4][3]; + /*<>*/ return /*<>*/ menu_overlay (wm, - /*<>*/ caml_call2(_px_,_pw_,_pv_), - _pu_, - _pt_, - _ps_, + /*<>*/ caml_call2(_qw_,_qv_,_qu_), + _qt_, + _qs_, + _qr_, ui)} - /*<>*/ return ui /*<>*/ } - /*<>*/ var - /*<>*/ _po_=Lwd[11], - /*<>*/ _pp_= - /*<>*/ caml_call1(_po_,refresh); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],_pp_,_pn_) /*<>*/ } - /*<>*/ function sub_entry(text,f) - { /*<>*/ var - /*<>*/ _pg_=[0,Style[14]], - /*<>*/ text$0= - /*<>*/ string$0(_pg_,text); - /*<>*/ function on_click(param,_pi_,_ph_) - { /*<>*/ if(847852583 === _ph_) - { /*<>*/ /*<>*/ var _pj_=0; - /*<>*/ /*<>*/ caml_call1 - (f,_pj_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],on_click,text$0) /*<>*/ } - /*<>*/ function h_pane(left,right) - { /*<>*/ var - /*<>*/ _oC_=Lwd[10], - /*<>*/ state_var= - /*<>*/ caml_call1(_oC_,_eC_); - /*<>*/ function render(state,param) - { /*<>*/ var + /*<>*/ return ui /*<>*/ } + /*<>*/ var + /*<>*/ _qn_=Lwd[11], + /*<>*/ _qo_= + /*<>*/ caml_call1(_qn_,refresh); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[3],_qo_,_qm_) /*<>*/ } + /*<>*/ function sub_entry(text,f) + { /*<>*/ var + /*<>*/ _qf_=[0,Style[14]], + /*<>*/ text$0= + /*<>*/ string$0(_qf_,text); + /*<>*/ function on_click(param,_qh_,_qg_) + { /*<>*/ if(847852583 === _qg_) + { /*<>*/ /*<>*/ var _qi_=0; + /*<>*/ /*<>*/ caml_call1 + (f,_qi_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],on_click,text$0) /*<>*/ } + /*<>*/ function h_pane(left,right) + { /*<>*/ var + /*<>*/ _pB_=Lwd[10], + /*<>*/ state_var= + /*<>*/ caml_call1(_pB_,_eD_); + /*<>*/ function render(state,param) + { /*<>*/ var r=param[2], l=param[1], pos=state[1], max=state[2], - _oH_=0, - _oI_=0, - _oJ_=0, - _oK_=[0,pos], - _oL_=Nottui[6][25], - /*<>*/ l$0= - /*<>*/ caml_call8 - (_oL_,_eF_,_eE_,_oK_,_eD_,_oJ_,_oI_,_oH_,l), - /*<>*/ _oM_=0, - /*<>*/ _oN_=0, - /*<>*/ _oO_=0, - /*<>*/ _oP_=[0,max - pos], - /*<>*/ _oQ_=Nottui[6][25], - /*<>*/ r$0= - /*<>*/ caml_call8 - (_oQ_,_eI_,_eH_,_oP_,_eG_,_oO_,_oN_,_oM_,r), - /*<>*/ _oR_=Nottui[6][15], - /*<>*/ _oS_=NVG[40][28], - /*<>*/ _oT_=0, - /*<>*/ _oU_=Style[9], - /*<>*/ _oV_= - [0, /*<>*/ caml_call2(_oU_,_oT_,_oS_)], - /*<>*/ _oW_=0, - /*<>*/ _oX_=0, - /*<>*/ _oY_=Nottui[6][25], - /*<>*/ splitter= - /*<>*/ caml_call8 - (_oY_,_eM_,_eL_,_eK_,_eJ_,_oX_,_oW_,_oV_,_oR_); - /*<>*/ function _oZ_(param,_pb_,_pa_) - { /*<>*/ if(847852583 === _pa_) - { /*<>*/ /*<>*/ var - _pc_= - function(param,_pf_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + _pG_=0, + _pH_=0, + _pI_=0, + _pJ_=[0,pos], + _pK_=Nottui[6][25], + /*<>*/ l$0= + /*<>*/ caml_call8 + (_pK_,_eG_,_eF_,_pJ_,_eE_,_pI_,_pH_,_pG_,l), + /*<>*/ _pL_=0, + /*<>*/ _pM_=0, + /*<>*/ _pN_=0, + /*<>*/ _pO_=[0,max - pos], + /*<>*/ _pP_=Nottui[6][25], + /*<>*/ r$0= + /*<>*/ caml_call8 + (_pP_,_eJ_,_eI_,_pO_,_eH_,_pN_,_pM_,_pL_,r), + /*<>*/ _pQ_=Nottui[6][15], + /*<>*/ _pR_=NVG[40][28], + /*<>*/ _pS_=0, + /*<>*/ _pT_=Style[9], + /*<>*/ _pU_= + [0, /*<>*/ caml_call2(_pT_,_pS_,_pR_)], + /*<>*/ _pV_=0, + /*<>*/ _pW_=0, + /*<>*/ _pX_=Nottui[6][25], + /*<>*/ splitter= + /*<>*/ caml_call8 + (_pX_,_eN_,_eM_,_eL_,_eK_,_pW_,_pV_,_pU_,_pQ_); + /*<>*/ function _pY_(param,_qa_,_p$_) + { /*<>*/ if(847852583 === _p$_) + { /*<>*/ /*<>*/ var + _qb_= + function(param,_qe_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(x,param) - { /*<>*/ var - /*<>*/ _pd_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_pd_,state_var); - /*<>*/ if(0 === match[0]) + { /*<>*/ var + /*<>*/ _qc_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_qc_,state_var); + /*<>*/ if(0 === match[0]) {var max=match[2],pos=match[1]; return caml_call2(Lwd[12],state_var,[1,pos,max,x])} - /*<>*/ var + /*<>*/ var at=match[3], max$0=match[2], pos$0=match[1], - _pe_=at != x?1:0; - return _pe_ - ? /*<>*/ caml_call2 + _qd_=at != x?1:0; + return _qd_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[1,pos$0,max$0,x]) - :_pe_ /*<>*/ }, - _pc_]]} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ var - /*<>*/ _o0_=Nottui[6][18], - /*<>*/ splitter$0= - /*<>*/ caml_call2(_o0_,_oZ_,splitter), - /*<>*/ _o1_=Nottui[6][28], - /*<>*/ _o2_= - /*<>*/ caml_call2(_o1_,splitter$0,r$0), - /*<>*/ _o3_=Nottui[6][28], - /*<>*/ ui= - /*<>*/ caml_call2(_o3_,l$0,_o2_), - /*<>*/ _o4_=0, - /*<>*/ _o5_=0, - /*<>*/ _o6_=0, - /*<>*/ _o7_=Nottui[6][25], - /*<>*/ ui$0= - /*<>*/ caml_call8 - (_o7_,_eQ_,_eP_,_eO_,_eN_,_o6_,_o5_,_o4_,ui); - /*<>*/ if(0 === state[0]) + :_qd_ /*<>*/ }, + _qb_]]} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ var + /*<>*/ _pZ_=Nottui[6][18], + /*<>*/ splitter$0= + /*<>*/ caml_call2(_pZ_,_pY_,splitter), + /*<>*/ _p0_=Nottui[6][28], + /*<>*/ _p1_= + /*<>*/ caml_call2(_p0_,splitter$0,r$0), + /*<>*/ _p2_=Nottui[6][28], + /*<>*/ ui= + /*<>*/ caml_call2(_p2_,l$0,_p1_), + /*<>*/ _p3_=0, + /*<>*/ _p4_=0, + /*<>*/ _p5_=0, + /*<>*/ _p6_=Nottui[6][25], + /*<>*/ ui$0= + /*<>*/ caml_call8 + (_p6_,_eR_,_eQ_,_eP_,_eO_,_p5_,_p4_,_p3_,ui); + /*<>*/ if(0 === state[0]) var ui$1=ui$0; else var at=state[3], - _o8_= - function(x,param,w,_o$_,_o__) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd[12],state_var,[0,at - x,w]) /*<>*/ }, - _o9_=Nottui[6][22], - ui$1= /*<>*/ caml_call2(_o9_,_o8_,ui$0); - /*<>*/ return ui$1} - /*<>*/ var - /*<>*/ _oD_=Lwd[8], - /*<>*/ _oE_= - /*<>*/ caml_call2(_oD_,left,right), - /*<>*/ _oF_=Lwd[11], - /*<>*/ _oG_= - /*<>*/ caml_call1(_oF_,state_var); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_oG_,_oE_,render) /*<>*/ } - /*<>*/ function v_pane(top,bot) - { /*<>*/ var - /*<>*/ _nY_=Lwd[10], - /*<>*/ state_var= - /*<>*/ caml_call1(_nY_,_eR_); - /*<>*/ function render(state,param) - { /*<>*/ var + _p7_= + function(x,param,w,_p__,_p9_) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd[12],state_var,[0,at - x,w]) /*<>*/ }, + _p8_=Nottui[6][22], + ui$1= /*<>*/ caml_call2(_p8_,_p7_,ui$0); + /*<>*/ return ui$1} + /*<>*/ var + /*<>*/ _pC_=Lwd[8], + /*<>*/ _pD_= + /*<>*/ caml_call2(_pC_,left,right), + /*<>*/ _pE_=Lwd[11], + /*<>*/ _pF_= + /*<>*/ caml_call1(_pE_,state_var); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],_pF_,_pD_,render) /*<>*/ } + /*<>*/ function v_pane(top,bot) + { /*<>*/ var + /*<>*/ _oX_=Lwd[10], + /*<>*/ state_var= + /*<>*/ caml_call1(_oX_,_eS_); + /*<>*/ function render(state,param) + { /*<>*/ var bot=param[2], top=param[1], pos=state[1], max=state[2], - _n3_=0, - _n4_=0, - _n5_=0, - _n6_=[0,pos], - _n7_=Nottui[6][25], - /*<>*/ top$0= - /*<>*/ caml_call8 - (_n7_,_eU_,_eT_,_eS_,_n6_,_n5_,_n4_,_n3_,top), - /*<>*/ _n8_=0, - /*<>*/ _n9_=0, - /*<>*/ _n__=0, - /*<>*/ _n$_=[0,max - pos], - /*<>*/ _oa_=Nottui[6][25], - /*<>*/ bot$0= - /*<>*/ caml_call8 - (_oa_,_eX_,_eW_,_eV_,_n$_,_n__,_n9_,_n8_,bot), - /*<>*/ _ob_=Nottui[6][15], - /*<>*/ _oc_=NVG[40][28], - /*<>*/ _od_=0, - /*<>*/ _oe_=Style[9], - /*<>*/ _of_= - [0, /*<>*/ caml_call2(_oe_,_od_,_oc_)], - /*<>*/ _og_=0, - /*<>*/ _oh_=0, - /*<>*/ _oi_=Nottui[6][25], - /*<>*/ splitter= - /*<>*/ caml_call8 - (_oi_,_e1_,_e0_,_eZ_,_eY_,_oh_,_og_,_of_,_ob_); - /*<>*/ function _oj_(param,_ox_,_ow_) - { /*<>*/ if(847852583 === _ow_) - { /*<>*/ /*<>*/ var - _oy_= - function(param,_oB_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + _o2_=0, + _o3_=0, + _o4_=0, + _o5_=[0,pos], + _o6_=Nottui[6][25], + /*<>*/ top$0= + /*<>*/ caml_call8 + (_o6_,_eV_,_eU_,_eT_,_o5_,_o4_,_o3_,_o2_,top), + /*<>*/ _o7_=0, + /*<>*/ _o8_=0, + /*<>*/ _o9_=0, + /*<>*/ _o__=[0,max - pos], + /*<>*/ _o$_=Nottui[6][25], + /*<>*/ bot$0= + /*<>*/ caml_call8 + (_o$_,_eY_,_eX_,_eW_,_o__,_o9_,_o8_,_o7_,bot), + /*<>*/ _pa_=Nottui[6][15], + /*<>*/ _pb_=NVG[40][28], + /*<>*/ _pc_=0, + /*<>*/ _pd_=Style[9], + /*<>*/ _pe_= + [0, /*<>*/ caml_call2(_pd_,_pc_,_pb_)], + /*<>*/ _pf_=0, + /*<>*/ _pg_=0, + /*<>*/ _ph_=Nottui[6][25], + /*<>*/ splitter= + /*<>*/ caml_call8 + (_ph_,_e2_,_e1_,_e0_,_eZ_,_pg_,_pf_,_pe_,_pa_); + /*<>*/ function _pi_(param,_pw_,_pv_) + { /*<>*/ if(847852583 === _pv_) + { /*<>*/ /*<>*/ var + _px_= + function(param,_pA_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(param,y) - { /*<>*/ var - /*<>*/ _oz_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_oz_,state_var); - /*<>*/ if(0 === match[0]) + { /*<>*/ var + /*<>*/ _py_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_py_,state_var); + /*<>*/ if(0 === match[0]) {var max=match[2],pos=match[1]; return caml_call2(Lwd[12],state_var,[1,pos,max,y])} - /*<>*/ var + /*<>*/ var at=match[3], max$0=match[2], pos$0=match[1], - _oA_=at != y?1:0; - return _oA_ - ? /*<>*/ caml_call2 + _pz_=at != y?1:0; + return _pz_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[1,pos$0,max$0,y]) - :_oA_ /*<>*/ }, - _oy_]]} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ var - /*<>*/ _ok_=Nottui[6][18], - /*<>*/ splitter$0= - /*<>*/ caml_call2(_ok_,_oj_,splitter), - /*<>*/ _ol_=Nottui[6][29], - /*<>*/ _om_= - /*<>*/ caml_call2(_ol_,splitter$0,bot$0), - /*<>*/ _on_=Nottui[6][29], - /*<>*/ ui= - /*<>*/ caml_call2(_on_,top$0,_om_), - /*<>*/ _oo_=0, - /*<>*/ _op_=0, - /*<>*/ _oq_=0, - /*<>*/ _or_=Nottui[6][25], - /*<>*/ ui$0= - /*<>*/ caml_call8 - (_or_,_e5_,_e4_,_e3_,_e2_,_oq_,_op_,_oo_,ui); - /*<>*/ if(0 === state[0]) + :_pz_ /*<>*/ }, + _px_]]} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ var + /*<>*/ _pj_=Nottui[6][18], + /*<>*/ splitter$0= + /*<>*/ caml_call2(_pj_,_pi_,splitter), + /*<>*/ _pk_=Nottui[6][29], + /*<>*/ _pl_= + /*<>*/ caml_call2(_pk_,splitter$0,bot$0), + /*<>*/ _pm_=Nottui[6][29], + /*<>*/ ui= + /*<>*/ caml_call2(_pm_,top$0,_pl_), + /*<>*/ _pn_=0, + /*<>*/ _po_=0, + /*<>*/ _pp_=0, + /*<>*/ _pq_=Nottui[6][25], + /*<>*/ ui$0= + /*<>*/ caml_call8 + (_pq_,_e6_,_e5_,_e4_,_e3_,_pp_,_po_,_pn_,ui); + /*<>*/ if(0 === state[0]) var ui$1=ui$0; else var at=state[3], - _os_= - function(param,y,_ov_,h,_ou_) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd[12],state_var,[0,at - y,h]) /*<>*/ }, - _ot_=Nottui[6][22], - ui$1= /*<>*/ caml_call2(_ot_,_os_,ui$0); - /*<>*/ return ui$1} - /*<>*/ var - /*<>*/ _nZ_=Lwd[8], - /*<>*/ _n0_= - /*<>*/ caml_call2(_nZ_,top,bot), - /*<>*/ _n1_=Lwd[11], - /*<>*/ _n2_= - /*<>*/ caml_call1(_n1_,state_var); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_n2_,_n0_,render) /*<>*/ } - /*<>*/ function eq_uc_c(uc,c) - { /*<>*/ var - /*<>*/ _nW_=Stdlib_Uchar[12], - /*<>*/ _nX_= - /*<>*/ caml_call1(_nW_,c); - /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Uchar[15],uc,_nX_) /*<>*/ } - /*<>*/ function edit_field(opt,_l8_,state) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + _pr_= + function(param,y,_pu_,h,_pt_) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd[12],state_var,[0,at - y,h]) /*<>*/ }, + _ps_=Nottui[6][22], + ui$1= /*<>*/ caml_call2(_ps_,_pr_,ui$0); + /*<>*/ return ui$1} + /*<>*/ var + /*<>*/ _oY_=Lwd[8], + /*<>*/ _oZ_= + /*<>*/ caml_call2(_oY_,top,bot), + /*<>*/ _o0_=Lwd[11], + /*<>*/ _o1_= + /*<>*/ caml_call1(_o0_,state_var); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],_o1_,_oZ_,render) /*<>*/ } + /*<>*/ function eq_uc_c(uc,c) + { /*<>*/ var + /*<>*/ _oV_=Stdlib_Uchar[12], + /*<>*/ _oW_= + /*<>*/ caml_call1(_oV_,c); + /*<>*/ return /*<>*/ caml_call2 + (Stdlib_Uchar[15],uc,_oW_) /*<>*/ } + /*<>*/ function edit_field(opt,_m7_,state) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], focus=sth; else - /*<>*/ var - /*<>*/ _md_=0, - /*<>*/ _me_=Nottui[3][1], - focus= /*<>*/ caml_call1(_me_,_md_); - /*<>*/ if(_l8_) - /*<>*/ var - /*<>*/ sth$0=_l8_[1], + /*<>*/ var + /*<>*/ _nc_=0, + /*<>*/ _nd_=Nottui[3][1], + focus= /*<>*/ caml_call1(_nd_,_nc_); + /*<>*/ if(_m7_) + /*<>*/ var + /*<>*/ sth$0=_m7_[1], on_change=sth$0; else - var on_change=function(_nV_){ /*<>*/ return _nV_}; - /*<>*/ function update(focus_h,focus,param) - { /*<>*/ var + var on_change=function(_oU_){ /*<>*/ return _oU_}; + /*<>*/ function update(focus_h,focus,param) + { /*<>*/ var pos=param[2], text=param[1], - _mh_=caml_ml_string_length(text), - _mi_=0, - _mj_=Stdlib[17], - /*<>*/ _mk_= - /*<>*/ caml_call2(_mj_,_mi_,pos), - /*<>*/ _ml_=Stdlib[16], - /*<>*/ pos$0= - /*<>*/ caml_call2(_ml_,_mk_,_mh_), - /*<>*/ _mm_=Nottui[3][7]; - /*<>*/ if - ( /*<>*/ caml_call1(_mm_,focus)) - { /*<>*/ var - /*<>*/ attr=Style[15], - /*<>*/ len= - /*<>*/ caml_ml_string_length(text); - /*<>*/ if(len <= pos$0) - /*<>*/ var - /*<>*/ _mn_=0, - /*<>*/ _mo_=[0,Style[16]], - /*<>*/ _mp_=I[21], - /*<>*/ _mq_= - [0, /*<>*/ caml_call2(_mp_,_mo_,cst$7),_mn_], - /*<>*/ _mr_=[0,attr], - /*<>*/ _ms_=I[21], - _mt_=[0, /*<>*/ caml_call2(_ms_,_mr_,text),_mq_]; + _ng_=caml_ml_string_length(text), + _nh_=0, + _ni_=Stdlib[17], + /*<>*/ _nj_= + /*<>*/ caml_call2(_ni_,_nh_,pos), + /*<>*/ _nk_=Stdlib[16], + /*<>*/ pos$0= + /*<>*/ caml_call2(_nk_,_nj_,_ng_), + /*<>*/ _nl_=Nottui[3][8]; + /*<>*/ if + ( /*<>*/ caml_call1(_nl_,focus)) + { /*<>*/ var + /*<>*/ attr=Style[15], + /*<>*/ len= + /*<>*/ caml_ml_string_length(text); + /*<>*/ if(len <= pos$0) + /*<>*/ var + /*<>*/ _nm_=0, + /*<>*/ _nn_=[0,Style[16]], + /*<>*/ _no_=I[21], + /*<>*/ _np_= + [0, /*<>*/ caml_call2(_no_,_nn_,cst$7),_nm_], + /*<>*/ _nq_=[0,attr], + /*<>*/ _nr_=I[21], + _ns_=[0, /*<>*/ caml_call2(_nr_,_nq_,text),_np_]; else - /*<>*/ var - /*<>*/ _my_=0, - /*<>*/ _mz_=(len - pos$0 | 0) - 1 | 0, - /*<>*/ _mA_=pos$0 + 1 | 0, - /*<>*/ _mB_=String[15], - /*<>*/ _mC_= - /*<>*/ caml_call3(_mB_,text,_mA_,_mz_), - /*<>*/ _mD_=[0,attr], - /*<>*/ _mE_=I[21], - /*<>*/ _mF_= - [0, /*<>*/ caml_call2(_mE_,_mD_,_mC_),_my_], - /*<>*/ _mG_=1, - /*<>*/ _mH_=String[15], - /*<>*/ _mI_= - /*<>*/ caml_call3(_mH_,text,pos$0,_mG_), - /*<>*/ _mJ_=[0,Style[16]], - /*<>*/ _mK_=I[21], - /*<>*/ _mL_= - [0, /*<>*/ caml_call2(_mK_,_mJ_,_mI_),_mF_], - /*<>*/ _mM_=0, - /*<>*/ _mN_=String[15], - /*<>*/ _mO_= - /*<>*/ caml_call3(_mN_,text,_mM_,pos$0), - /*<>*/ _mP_=[0,attr], - /*<>*/ _mQ_=I[21], - _mt_=[0, /*<>*/ caml_call2(_mQ_,_mP_,_mO_),_mL_]; - /*<>*/ var _mu_=_mt_} + /*<>*/ var + /*<>*/ _nx_=0, + /*<>*/ _ny_=(len - pos$0 | 0) - 1 | 0, + /*<>*/ _nz_=pos$0 + 1 | 0, + /*<>*/ _nA_=String[15], + /*<>*/ _nB_= + /*<>*/ caml_call3(_nA_,text,_nz_,_ny_), + /*<>*/ _nC_=[0,attr], + /*<>*/ _nD_=I[21], + /*<>*/ _nE_= + [0, /*<>*/ caml_call2(_nD_,_nC_,_nB_),_nx_], + /*<>*/ _nF_=1, + /*<>*/ _nG_=String[15], + /*<>*/ _nH_= + /*<>*/ caml_call3(_nG_,text,pos$0,_nF_), + /*<>*/ _nI_=[0,Style[16]], + /*<>*/ _nJ_=I[21], + /*<>*/ _nK_= + [0, /*<>*/ caml_call2(_nJ_,_nI_,_nH_),_nE_], + /*<>*/ _nL_=0, + /*<>*/ _nM_=String[15], + /*<>*/ _nN_= + /*<>*/ caml_call3(_nM_,text,_nL_,pos$0), + /*<>*/ _nO_=[0,attr], + /*<>*/ _nP_=I[21], + _ns_=[0, /*<>*/ caml_call2(_nP_,_nO_,_nN_),_nK_]; + /*<>*/ var _nt_=_ns_} else - /*<>*/ var - /*<>*/ _mR_=0, - /*<>*/ _mS_= - /*<>*/ caml_string_equal(text,cst$8)?cst$9:text, - _mT_=0, - _mU_=I[21], - _mu_=[0, /*<>*/ caml_call2(_mU_,_mT_,_mS_),_mR_]; - /*<>*/ var - /*<>*/ _mv_=I[17], - /*<>*/ _mw_= - /*<>*/ caml_call1(_mv_,_mu_), - /*<>*/ _mx_=Nottui[6][16], - /*<>*/ content= - /*<>*/ caml_call1(_mx_,_mw_); - /*<>*/ function handler(k) - { /*<>*/ function on_change$0(a) - { /*<>*/ var - /*<>*/ _nT_= - /*<>*/ caml_call1(on_change,a), - /*<>*/ _nU_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_nU_,state,_nT_); - /*<>*/ return 321312668 /*<>*/ } - /*<>*/ var - /*<>*/ _mV_=k[1], + /*<>*/ var + /*<>*/ _nQ_=0, + /*<>*/ _nR_= + /*<>*/ caml_string_equal(text,cst$8)?cst$9:text, + _nS_=0, + _nT_=I[21], + _nt_=[0, /*<>*/ caml_call2(_nT_,_nS_,_nR_),_nQ_]; + /*<>*/ var + /*<>*/ _nu_=I[17], + /*<>*/ _nv_= + /*<>*/ caml_call1(_nu_,_nt_), + /*<>*/ _nw_=Nottui[6][16], + /*<>*/ content= + /*<>*/ caml_call1(_nw_,_nv_); + /*<>*/ function handler(k) + { /*<>*/ function on_change$0(a) + { /*<>*/ var + /*<>*/ _oS_= + /*<>*/ caml_call1(on_change,a), + /*<>*/ _oT_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_oT_,state,_oS_); + /*<>*/ return 321312668 /*<>*/ } + /*<>*/ var + /*<>*/ _nU_=k[1], switch$0=0; - /*<>*/ if(typeof _mV_ === "number") - {if(-323132129 === _mV_) + /*<>*/ if(typeof _nU_ === "number") + {if(-323132129 === _nU_) {if(! k[2]) - { /*<>*/ if(0 < pos$0) - { /*<>*/ if + { /*<>*/ if(0 < pos$0) + { /*<>*/ if (pos$0 < - /*<>*/ caml_ml_string_length(text)) - /*<>*/ var - /*<>*/ _mX_= - /*<>*/ caml_ml_string_length(text) + /*<>*/ caml_ml_string_length(text)) + /*<>*/ var + /*<>*/ _nW_= + /*<>*/ caml_ml_string_length(text) - pos$0 | 0, - /*<>*/ _mY_=String[15], - /*<>*/ _mZ_= - /*<>*/ caml_call3(_mY_,text,pos$0,_mX_), - /*<>*/ _m0_=pos$0 - 1 | 0, - /*<>*/ _m1_=0, - /*<>*/ _m2_=String[15], - /*<>*/ _m3_= - /*<>*/ caml_call3(_m2_,text,_m1_,_m0_), - /*<>*/ _m4_=Stdlib[28], - text$0= /*<>*/ caml_call2(_m4_,_m3_,_mZ_); + /*<>*/ _nX_=String[15], + /*<>*/ _nY_= + /*<>*/ caml_call3(_nX_,text,pos$0,_nW_), + /*<>*/ _nZ_=pos$0 - 1 | 0, + /*<>*/ _n0_=0, + /*<>*/ _n1_=String[15], + /*<>*/ _n2_= + /*<>*/ caml_call3(_n1_,text,_n0_,_nZ_), + /*<>*/ _n3_=Stdlib[28], + text$0= /*<>*/ caml_call2(_n3_,_n2_,_nY_); else - /*<>*/ if - (0 < /*<>*/ caml_ml_string_length(text)) - /*<>*/ var - /*<>*/ _m$_= - /*<>*/ caml_ml_string_length(text) + /*<>*/ if + (0 < /*<>*/ caml_ml_string_length(text)) + /*<>*/ var + /*<>*/ _n__= + /*<>*/ caml_ml_string_length(text) - 1 | 0, - /*<>*/ _na_=0, - /*<>*/ _nb_=String[15], + /*<>*/ _n$_=0, + /*<>*/ _oa_=String[15], text$0= - /*<>*/ caml_call3(_nb_,text,_na_,_m$_); + /*<>*/ caml_call3(_oa_,text,_n$_,_n__); else var text$0=text; - /*<>*/ var - /*<>*/ _m5_=pos$0 - 1 | 0, - /*<>*/ _m6_=0, - /*<>*/ _m7_=Stdlib[17], - /*<>*/ pos= - /*<>*/ caml_call2(_m7_,_m6_,_m5_), - /*<>*/ _m8_=[0,text$0,pos], - _m9_= /*<>*/ on_change$0(_m8_)} + /*<>*/ var + /*<>*/ _n4_=pos$0 - 1 | 0, + /*<>*/ _n5_=0, + /*<>*/ _n6_=Stdlib[17], + /*<>*/ pos= + /*<>*/ caml_call2(_n6_,_n5_,_n4_), + /*<>*/ _n7_=[0,text$0,pos], + _n8_= /*<>*/ on_change$0(_n7_)} else - var _m9_=-475359645; - var _m__=_m9_; + var _n8_=-475359645; + var _n9_=_n8_; switch$0 = 1}} else - if(258914209 === _mV_ && ! k[2]) - { /*<>*/ /*<>*/ var - _nc_= + if(258914209 === _nU_ && ! k[2]) + { /*<>*/ /*<>*/ var + _ob_= Nottui[3][4]; - /*<>*/ /*<>*/ caml_call1 - (_nc_,focus_h); - /*<>*/ var _m__=321312668; + /*<>*/ /*<>*/ caml_call1 + (_ob_,focus_h); + /*<>*/ var _n9_=321312668; switch$0 = 1}} else - {var _nd_=_mV_[1],switch$1=0; - if(852405675 === _nd_) - {var _ne_=k[2],_nf_=_mV_[2],switch$2=0; - if(_ne_) - if(748795083 === _ne_[1] && ! _ne_[2]) - { /*<>*/ var - /*<>*/ _ng_=85, - /*<>*/ _nh_=Stdlib_Uchar[12], - /*<>*/ _ni_= - /*<>*/ caml_call1(_nh_,_ng_), - /*<>*/ _nj_=Stdlib_Uchar[15], + {var _oc_=_nU_[1],switch$1=0; + if(852405675 === _oc_) + {var _od_=k[2],_oe_=_nU_[2],switch$2=0; + if(_od_) + if(748795083 === _od_[1] && ! _od_[2]) + { /*<>*/ var + /*<>*/ _of_=85, + /*<>*/ _og_=Stdlib_Uchar[12], + /*<>*/ _oh_= + /*<>*/ caml_call1(_og_,_of_), + /*<>*/ _oi_=Stdlib_Uchar[15], switch$3=0; - /*<>*/ if - ( /*<>*/ caml_call2(_nj_,_nf_,_ni_)) - var _nk_= /*<>*/ on_change$0(_e7_); + /*<>*/ if + ( /*<>*/ caml_call2(_oi_,_oe_,_oh_)) + var _oj_= /*<>*/ on_change$0(_e8_); else - { /*<>*/ /*<>*/ var - _nn_= + { /*<>*/ /*<>*/ var + _om_= 107; - /*<>*/ if - ( /*<>*/ eq_uc_c(_nf_,_nn_)) - { /*<>*/ if + /*<>*/ if + ( /*<>*/ eq_uc_c(_oe_,_om_)) + { /*<>*/ if (pos$0 < - /*<>*/ caml_ml_string_length(text)) - /*<>*/ var - /*<>*/ _no_=0, - /*<>*/ _np_=String[15], - /*<>*/ _nq_= + /*<>*/ caml_ml_string_length(text)) + /*<>*/ var + /*<>*/ _on_=0, + /*<>*/ _oo_=String[15], + /*<>*/ _op_= [0, - /*<>*/ caml_call3(_np_,text,_no_,pos$0), + /*<>*/ caml_call3(_oo_,text,_on_,pos$0), pos$0], - _nr_= /*<>*/ on_change$0(_nq_); + _oq_= /*<>*/ on_change$0(_op_); else - var _nr_=-475359645; - var _nk_=_nr_} + var _oq_=-475359645; + var _oj_=_oq_} else {switch$1 = 1;switch$2 = 1;switch$3 = 1}} - if(! switch$3)var _nl_=_nk_} + if(! switch$3)var _ok_=_oj_} else {switch$1 = 1;switch$2 = 1} else - { /*<>*/ var - /*<>*/ _ns_=Stdlib_Uchar[14], - /*<>*/ k$0= - /*<>*/ caml_call1(_ns_,_nf_); - /*<>*/ if + { /*<>*/ var + /*<>*/ _or_=Stdlib_Uchar[14], + /*<>*/ k$0= + /*<>*/ caml_call1(_or_,_oe_); + /*<>*/ if (pos$0 < - /*<>*/ caml_ml_string_length(text)) - /*<>*/ var - /*<>*/ _nt_= - /*<>*/ caml_ml_string_length(text) + /*<>*/ caml_ml_string_length(text)) + /*<>*/ var + /*<>*/ _os_= + /*<>*/ caml_ml_string_length(text) - pos$0 | 0, - /*<>*/ _nu_=String[15], - /*<>*/ _nv_= - /*<>*/ caml_call3(_nu_,text,pos$0,_nt_), - /*<>*/ _nw_=1, - /*<>*/ _nx_=String[1], - /*<>*/ _ny_= - /*<>*/ caml_call2(_nx_,_nw_,k$0), - /*<>*/ _nz_=Stdlib[28], - /*<>*/ _nA_= - /*<>*/ caml_call2(_nz_,_ny_,_nv_), - /*<>*/ _nB_=0, - /*<>*/ _nC_=String[15], - /*<>*/ _nD_= - /*<>*/ caml_call3(_nC_,text,_nB_,pos$0), - /*<>*/ _nE_=Stdlib[28], - text$1= /*<>*/ caml_call2(_nE_,_nD_,_nA_); + /*<>*/ _ot_=String[15], + /*<>*/ _ou_= + /*<>*/ caml_call3(_ot_,text,pos$0,_os_), + /*<>*/ _ov_=1, + /*<>*/ _ow_=String[1], + /*<>*/ _ox_= + /*<>*/ caml_call2(_ow_,_ov_,k$0), + /*<>*/ _oy_=Stdlib[28], + /*<>*/ _oz_= + /*<>*/ caml_call2(_oy_,_ox_,_ou_), + /*<>*/ _oA_=0, + /*<>*/ _oB_=String[15], + /*<>*/ _oC_= + /*<>*/ caml_call3(_oB_,text,_oA_,pos$0), + /*<>*/ _oD_=Stdlib[28], + text$1= /*<>*/ caml_call2(_oD_,_oC_,_oz_); else - /*<>*/ var - /*<>*/ _nG_=1, - /*<>*/ _nH_=String[1], - /*<>*/ _nI_= - /*<>*/ caml_call2(_nH_,_nG_,k$0), - /*<>*/ _nJ_=Stdlib[28], - text$1= /*<>*/ caml_call2(_nJ_,text,_nI_); - /*<>*/ var - /*<>*/ _nF_=[0,text$1,pos$0 + 1 | 0], - _nl_= /*<>*/ on_change$0(_nF_)} - if(! switch$2)var _nm_=_nl_} + /*<>*/ var + /*<>*/ _oF_=1, + /*<>*/ _oG_=String[1], + /*<>*/ _oH_= + /*<>*/ caml_call2(_oG_,_oF_,k$0), + /*<>*/ _oI_=Stdlib[28], + text$1= /*<>*/ caml_call2(_oI_,text,_oH_); + /*<>*/ var + /*<>*/ _oE_=[0,text$1,pos$0 + 1 | 0], + _ok_= /*<>*/ on_change$0(_oE_)} + if(! switch$2)var _ol_=_ok_} else - if(951904681 === _nd_) - {var _nK_=_mV_[2],switch$4=0; - if(-57574468 === _nK_) + if(951904681 === _oc_) + {var _oJ_=_nU_[2],switch$4=0; + if(-57574468 === _oJ_) if(k[2]) {switch$1 = 1;switch$4 = 1} else - { /*<>*/ /*<>*/ var + { /*<>*/ /*<>*/ var pos$1= pos$0 + 1 | 0; - /*<>*/ if + /*<>*/ if (pos$1 <= - /*<>*/ caml_ml_string_length(text)) - /*<>*/ var - /*<>*/ _nL_=[0,text,pos$1], - _nM_= /*<>*/ on_change$0(_nL_); + /*<>*/ caml_ml_string_length(text)) + /*<>*/ var + /*<>*/ _oK_=[0,text,pos$1], + _oL_= /*<>*/ on_change$0(_oK_); else - var _nM_=-475359645; - /*<>*/ var _nN_=_nM_} + var _oL_=-475359645; + /*<>*/ var _oM_=_oL_} else - if(847852583 === _nK_ && ! k[2]) - { /*<>*/ if(0 < pos$0) - /*<>*/ var - /*<>*/ _nO_=[0,text,pos$0 - 1 | 0], - _nP_= /*<>*/ on_change$0(_nO_); + if(847852583 === _oJ_ && ! k[2]) + { /*<>*/ if(0 < pos$0) + /*<>*/ var + /*<>*/ _oN_=[0,text,pos$0 - 1 | 0], + _oO_= /*<>*/ on_change$0(_oN_); else - var _nP_=-475359645; - var _nN_=_nP_} + var _oO_=-475359645; + var _oM_=_oO_} else {switch$1 = 1;switch$4 = 1} - if(! switch$4)var _nm_=_nN_} + if(! switch$4)var _ol_=_oM_} else switch$1 = 1; - if(! switch$1){var _m__=_nm_;switch$0 = 1}} - /*<>*/ /*<>*/ var - _mW_= - switch$0?_m__:-475359645; + if(! switch$1){var _n9_=_ol_;switch$0 = 1}} + /*<>*/ /*<>*/ var + _nV_= + switch$0?_n9_:-475359645; return function(r) - { /*<>*/ function _nQ_(m) - { /*<>*/ return /*<>*/ caml_call7 - (m,0,0,_e6_,Nottui[6][3],k,Nottui[6][2],r) /*<>*/ } - /*<>*/ var - /*<>*/ _nR_=0, - /*<>*/ _nS_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_nS_,_nR_,_nQ_); - /*<>*/ return r /*<>*/ } - (_mW_) /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 + { /*<>*/ function _oP_(m) + { /*<>*/ return /*<>*/ caml_call7 + (m,0,0,_e7_,Nottui[6][3],k,Nottui[6][2],r) /*<>*/ } + /*<>*/ var + /*<>*/ _oQ_=0, + /*<>*/ _oR_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_oR_,_oQ_,_oP_); + /*<>*/ return r /*<>*/ } + (_nV_) /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 (Nottui[6][19],[0,focus],handler,content)} - /*<>*/ function _l9_(_mf_,_mg_) - { /*<>*/ return update(focus,_mf_,_mg_)} - /*<>*/ var - /*<>*/ _l__=Lwd[11], - /*<>*/ _l$_= - /*<>*/ caml_call1(_l__,state), - /*<>*/ _ma_=Nottui[3][6], - /*<>*/ _mb_= - /*<>*/ caml_call1(_ma_,focus), - /*<>*/ _mc_=Lwd[4], - /*<>*/ node= - /*<>*/ caml_call3(_mc_,_mb_,_l$_,_l9_); - /*<>*/ return node /*<>*/ } - /*<>*/ function line_empty(param) - { /*<>*/ var - /*<>*/ _l3_=0, - /*<>*/ _l4_=Nottui[3][1], - /*<>*/ focus= - /*<>*/ caml_call1(_l4_,_l3_), - /*<>*/ _l5_=Lwd[10], - /*<>*/ state= - /*<>*/ caml_call1(_l5_,_e8_), - /*<>*/ _l6_=0, - /*<>*/ _l7_=[0,focus]; - /*<>*/ return [0, + /*<>*/ function _m8_(_ne_,_nf_) + { /*<>*/ return update(focus,_ne_,_nf_)} + /*<>*/ var + /*<>*/ _m9_=Lwd[11], + /*<>*/ _m__= + /*<>*/ caml_call1(_m9_,state), + /*<>*/ _m$_=Nottui[3][6], + /*<>*/ _na_= + /*<>*/ caml_call1(_m$_,focus), + /*<>*/ _nb_=Lwd[4], + /*<>*/ node= + /*<>*/ caml_call3(_nb_,_na_,_m__,_m8_); + /*<>*/ return node /*<>*/ } + /*<>*/ function line_empty(param) + { /*<>*/ var + /*<>*/ _m2_=0, + /*<>*/ _m3_=Nottui[3][1], + /*<>*/ focus= + /*<>*/ caml_call1(_m3_,_m2_), + /*<>*/ _m4_=Lwd[10], + /*<>*/ state= + /*<>*/ caml_call1(_m4_,_e9_), + /*<>*/ _m5_=0, + /*<>*/ _m6_=[0,focus]; + /*<>*/ return [0, focus, state, - /*<>*/ edit_field(_l7_,_l6_,state)] /*<>*/ } - /*<>*/ function line_make(opt,str) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ edit_field(_m6_,_m5_,state)] /*<>*/ } + /*<>*/ function line_make(opt,str) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], focus=sth; else - /*<>*/ var - /*<>*/ _l1_=0, - /*<>*/ _l2_=Nottui[3][1], - focus= /*<>*/ caml_call1(_l2_,_l1_); - /*<>*/ var - /*<>*/ _lX_=[0,str,0], - /*<>*/ _lY_=Lwd[10], - /*<>*/ state= - /*<>*/ caml_call1(_lY_,_lX_), - /*<>*/ _lZ_=0, - /*<>*/ _l0_=[0,focus]; - /*<>*/ return [0, + /*<>*/ var + /*<>*/ _m0_=0, + /*<>*/ _m1_=Nottui[3][1], + focus= /*<>*/ caml_call1(_m1_,_m0_); + /*<>*/ var + /*<>*/ _mW_=[0,str,0], + /*<>*/ _mX_=Lwd[10], + /*<>*/ state= + /*<>*/ caml_call1(_mX_,_mW_), + /*<>*/ _mY_=0, + /*<>*/ _mZ_=[0,focus]; + /*<>*/ return [0, focus, state, - /*<>*/ edit_field(_l0_,_lZ_,state)] /*<>*/ } - /*<>*/ function line_append(opt,focus,str) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ edit_field(_mZ_,_mY_,state)] /*<>*/ } + /*<>*/ function line_append(opt,focus,str) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], table=sth; else - /*<>*/ var - /*<>*/ _lV_=0, - /*<>*/ _lW_=Lwd_table[1], - table= /*<>*/ caml_call1(_lW_,_lV_); - /*<>*/ var - /*<>*/ _lS_=0, - /*<>*/ _lT_=Lwd_table[3], - /*<>*/ row= - /*<>*/ caml_call2(_lT_,_lS_,table), - /*<>*/ _lU_= - /*<>*/ line_make(focus,str); - /*<>*/ return /*<>*/ caml_call2 - (Lwd_table[13],row,_lU_) /*<>*/ } - /*<>*/ function copy_line_cursor(x,y) - { /*<>*/ var - /*<>*/ _lJ_=x[2], - /*<>*/ _lK_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_lK_,_lJ_), - /*<>*/ xi=match[2], - /*<>*/ _lL_=y[2], - /*<>*/ _lM_=Lwd[13], - /*<>*/ match$0= - /*<>*/ caml_call1(_lM_,_lL_), - /*<>*/ ys=match$0[1], - /*<>*/ _lN_= - /*<>*/ caml_ml_string_length(ys), - /*<>*/ _lO_=Stdlib_Int[10], - /*<>*/ _lP_= - /*<>*/ caml_call2(_lO_,xi,_lN_), - /*<>*/ _lQ_=0, - /*<>*/ _lR_=Stdlib_Int[11], - /*<>*/ yi= - /*<>*/ caml_call2(_lR_,_lQ_,_lP_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[12],y[2],[0,ys,yi]) /*<>*/ } - /*<>*/ function row_of_cursor(cursor,f) - { /*<>*/ function _lG_(row) - { /*<>*/ return /*<>*/ caml_call1 - (f,row) /*<>*/ } - /*<>*/ var - /*<>*/ _lH_=Lwd[13], - /*<>*/ _lI_= - /*<>*/ caml_call1(_lH_,cursor); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_lI_,_lG_) /*<>*/ } - /*<>*/ function line_of_cursor(cursor,f) - { /*<>*/ function _lA_(row) - { /*<>*/ function _lD_(line) - { /*<>*/ return /*<>*/ caml_call2 - (f,row,line) /*<>*/ } - /*<>*/ var - /*<>*/ _lE_=Lwd_table[12], - /*<>*/ _lF_= - /*<>*/ caml_call1(_lE_,row); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_lF_,_lD_) /*<>*/ } - /*<>*/ var - /*<>*/ _lB_=Lwd[13], - /*<>*/ _lC_= - /*<>*/ caml_call1(_lB_,cursor); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_lC_,_lA_) /*<>*/ } - /*<>*/ function cursor_move(cursor,f) - { /*<>*/ var - /*<>*/ _lp_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_lp_,cursor); - /*<>*/ if(match) - { /*<>*/ var - /*<>*/ cursor_row=match[1], - /*<>*/ match$0= - /*<>*/ caml_call1(f,cursor_row); - /*<>*/ if(match$0) - { /*<>*/ var - /*<>*/ new_row=match$0[1], - /*<>*/ _lq_=Lwd_table[12], - /*<>*/ match$1= - /*<>*/ caml_call1(_lq_,new_row); - /*<>*/ if(match$1) - { /*<>*/ var - /*<>*/ new_line=match$1[1], - /*<>*/ _lr_=Lwd_table[12], - /*<>*/ _ls_= - /*<>*/ caml_call1(_lr_,cursor_row), - /*<>*/ _lt_= + /*<>*/ var + /*<>*/ _mU_=0, + /*<>*/ _mV_=Lwd_table[1], + table= /*<>*/ caml_call1(_mV_,_mU_); + /*<>*/ var + /*<>*/ _mR_=0, + /*<>*/ _mS_=Lwd_table[3], + /*<>*/ row= + /*<>*/ caml_call2(_mS_,_mR_,table), + /*<>*/ _mT_= + /*<>*/ line_make(focus,str); + /*<>*/ return /*<>*/ caml_call2 + (Lwd_table[13],row,_mT_) /*<>*/ } + /*<>*/ function copy_line_cursor(x,y) + { /*<>*/ var + /*<>*/ _mI_=x[2], + /*<>*/ _mJ_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_mJ_,_mI_), + /*<>*/ xi=match[2], + /*<>*/ _mK_=y[2], + /*<>*/ _mL_=Lwd[13], + /*<>*/ match$0= + /*<>*/ caml_call1(_mL_,_mK_), + /*<>*/ ys=match$0[1], + /*<>*/ _mM_= + /*<>*/ caml_ml_string_length(ys), + /*<>*/ _mN_=Stdlib_Int[10], + /*<>*/ _mO_= + /*<>*/ caml_call2(_mN_,xi,_mM_), + /*<>*/ _mP_=0, + /*<>*/ _mQ_=Stdlib_Int[11], + /*<>*/ yi= + /*<>*/ caml_call2(_mQ_,_mP_,_mO_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[12],y[2],[0,ys,yi]) /*<>*/ } + /*<>*/ function row_of_cursor(cursor,f) + { /*<>*/ function _mF_(row) + { /*<>*/ return /*<>*/ caml_call1 + (f,row) /*<>*/ } + /*<>*/ var + /*<>*/ _mG_=Lwd[13], + /*<>*/ _mH_= + /*<>*/ caml_call1(_mG_,cursor); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_mH_,_mF_) /*<>*/ } + /*<>*/ function line_of_cursor(cursor,f) + { /*<>*/ function _mz_(row) + { /*<>*/ function _mC_(line) + { /*<>*/ return /*<>*/ caml_call2 + (f,row,line) /*<>*/ } + /*<>*/ var + /*<>*/ _mD_=Lwd_table[12], + /*<>*/ _mE_= + /*<>*/ caml_call1(_mD_,row); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_mE_,_mC_) /*<>*/ } + /*<>*/ var + /*<>*/ _mA_=Lwd[13], + /*<>*/ _mB_= + /*<>*/ caml_call1(_mA_,cursor); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_mB_,_mz_) /*<>*/ } + /*<>*/ function cursor_move(cursor,f) + { /*<>*/ var + /*<>*/ _mo_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_mo_,cursor); + /*<>*/ if(match) + { /*<>*/ var + /*<>*/ cursor_row=match[1], + /*<>*/ match$0= + /*<>*/ caml_call1(f,cursor_row); + /*<>*/ if(match$0) + { /*<>*/ var + /*<>*/ new_row=match$0[1], + /*<>*/ _mp_=Lwd_table[12], + /*<>*/ match$1= + /*<>*/ caml_call1(_mp_,new_row); + /*<>*/ if(match$1) + { /*<>*/ var + /*<>*/ new_line=match$1[1], + /*<>*/ _mq_=Lwd_table[12], + /*<>*/ _mr_= + /*<>*/ caml_call1(_mq_,cursor_row), + /*<>*/ _ms_= function(cursor_line) - { /*<>*/ /*<>*/ copy_line_cursor + { /*<>*/ /*<>*/ copy_line_cursor (cursor_line,new_line); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[3][4],cursor_line[1]) /*<>*/ }, - /*<>*/ _lu_=Stdlib_Option[9], - /*<>*/ _lv_= - /*<>*/ caml_call1(_lu_,_lt_); - /*<>*/ /*<>*/ caml_call1 - (_lv_,_ls_); - /*<>*/ var - /*<>*/ _lw_=new_line[1], - /*<>*/ _lx_=Nottui[3][2]; - /*<>*/ /*<>*/ caml_call1 - (_lx_,_lw_)} - /*<>*/ var - /*<>*/ _ly_=[0,new_row], - /*<>*/ _lz_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_lz_,cursor,_ly_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function multifield_of_string(opt,s) + /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][4],cursor_line[1]) /*<>*/ }, + /*<>*/ _mt_=Stdlib_Option[9], + /*<>*/ _mu_= + /*<>*/ caml_call1(_mt_,_ms_); + /*<>*/ /*<>*/ caml_call1 + (_mu_,_mr_); + /*<>*/ var + /*<>*/ _mv_=new_line[1], + /*<>*/ _mw_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_mw_,_mv_)} + /*<>*/ var + /*<>*/ _mx_=[0,new_row], + /*<>*/ _my_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_my_,cursor,_mx_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ function edit_area_of_string(opt,s) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], table=sth; else - /*<>*/ var - /*<>*/ _ll_=0, - /*<>*/ _lm_=Lwd_table[1], - table= /*<>*/ caml_call1(_lm_,_ll_); - /*<>*/ var - /*<>*/ _lf_=10, - /*<>*/ _lg_=String[16], - /*<>*/ _lh_= - /*<>*/ caml_call2(_lg_,_lf_,s), - /*<>*/ _li_=[0,table]; - /*<>*/ function arg(_ln_,_lo_) - { /*<>*/ return line_append(_li_,_ln_,_lo_)} - /*<>*/ function _lj_(eta) + /*<>*/ var + /*<>*/ _mk_=0, + /*<>*/ _ml_=Lwd_table[1], + table= /*<>*/ caml_call1(_ml_,_mk_); + /*<>*/ var + /*<>*/ _me_=10, + /*<>*/ _mf_=String[16], + /*<>*/ _mg_= + /*<>*/ caml_call2(_mf_,_me_,s), + /*<>*/ _mh_=[0,table]; + /*<>*/ function arg(_mm_,_mn_) + { /*<>*/ return line_append(_mh_,_mm_,_mn_)} + /*<>*/ function _mi_(eta) { /*<>*/ return arg(0,eta)} - /*<>*/ /*<>*/ var - _lk_= + /*<>*/ /*<>*/ var + _mj_= Stdlib_List[17]; - /*<>*/ /*<>*/ caml_call2 - (_lk_,_lj_,_lh_); - /*<>*/ return table} - /*<>*/ function focus_compare(focus) - { /*<>*/ if(typeof focus === "number") - /*<>*/ return 0; + /*<>*/ /*<>*/ caml_call2 + (_mj_,_mi_,_mg_); + /*<>*/ return table} + /*<>*/ function focus_val(focus) + { /*<>*/ if(typeof focus === "number") + /*<>*/ return 0; else - { /*<>*/ if(0 === focus[0]) - { /*<>*/ /*<>*/ var i=focus[1]; - /*<>*/ return i} - /*<>*/ /*<>*/ var i$0=focus[1]; - /*<>*/ return i$0} /*<>*/ } - /*<>*/ function find_focus(ui) + { /*<>*/ if(0 === focus[0]) + { /*<>*/ /*<>*/ var i=focus[1]; + /*<>*/ return i} + /*<>*/ /*<>*/ var i$0=focus[1]; + /*<>*/ return i$0} /*<>*/ } + /*<>*/ function find_focus(ui) { /*<>*/ var ui$0=ui; - /*<>*/ for(;;) - { /*<>*/ var - /*<>*/ _lb_=ui$0[5], - /*<>*/ _la_=ui$0[6]; - /*<>*/ if(typeof _la_ === "number") - /*<>*/ return Nottui[6][15]; + /*<>*/ for(;;) + { /*<>*/ var + /*<>*/ _ma_=ui$0[5], + /*<>*/ _l$_=ui$0[6]; + /*<>*/ if(typeof _l$_ === "number") + /*<>*/ return Nottui[6][15]; else - { /*<>*/ if(0 === _la_[0]) - /*<>*/ return ui$0; - switch(_lb_[0]) - {case 0: /*<>*/ return Nottui[6][15]; + { /*<>*/ if(0 === _l$_[0]) + /*<>*/ return ui$0; + switch(_ma_[0]) + {case 0: /*<>*/ return Nottui[6][15]; case 9: case 10: case 11: - /*<>*/ var - b=_lb_[2], - a=_lb_[1], - _lc_=b[6], - /*<>*/ _ld_= - /*<>*/ focus_compare(_lc_), - /*<>*/ _le_=a[6]; - /*<>*/ if - ( /*<>*/ focus_compare(_le_) < _ld_) + /*<>*/ var + b=_ma_[2], + a=_ma_[1], + _mb_=b[6], + /*<>*/ _mc_= + /*<>*/ focus_val(_mb_), + /*<>*/ _md_=a[6]; + /*<>*/ if + ( /*<>*/ focus_val(_md_) < _mc_) {var ui$0=b;continue} - /*<>*/ var ui$0=a; + /*<>*/ var ui$0=a; continue; - default:var ui$1=_lb_[1],ui$0=ui$1;continue}}} /*<>*/ } - /*<>*/ function focus_move(table,f) - { /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function edit_area(opt,_jR_,param) + default:var ui$1=_ma_[1],ui$0=ui$1;continue}}} /*<>*/ } + /*<>*/ function focus_handle_compare(a,b) + { /*<>*/ var + /*<>*/ _l2_=b[2][1], + /*<>*/ _l3_=Nottui[3][7], + /*<>*/ _l4_= + /*<>*/ caml_call1(_l3_,_l2_), + /*<>*/ _l5_=Lwd[13], + /*<>*/ _l6_= + /*<>*/ caml_call1(_l5_,_l4_), + /*<>*/ _l7_=a[2][1], + /*<>*/ _l8_=Nottui[3][7], + /*<>*/ _l9_= + /*<>*/ caml_call1(_l8_,_l7_), + /*<>*/ _l__=Lwd[13]; + /*<>*/ return /*<>*/ caml_call1 + (_l__,_l9_) + < + _l6_ + ?b + :a /*<>*/ } + /*<>*/ function focused_row_of_table(table) + { /*<>*/ var + /*<>*/ _lZ_=0, + /*<>*/ _l0_= + [0, + [0,0, /*<>*/ line_empty(_lZ_)], + focus_handle_compare]; + /*<>*/ function _l1_(row,line) + { /*<>*/ return [0,[0,row],line] /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Lwd_table[19],_l1_,_l0_,table) /*<>*/ } + /*<>*/ function edit_area(opt,_kG_,param) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], table=sth; else - /*<>*/ var - /*<>*/ _kb_=0, - /*<>*/ _kc_=Lwd_table[1], - table= /*<>*/ caml_call1(_kc_,_kb_); - /*<>*/ if(_jR_) - /*<>*/ var - /*<>*/ sth$0=_jR_[1], + /*<>*/ var + /*<>*/ _k2_=0, + /*<>*/ _k3_=Lwd_table[1], + table= /*<>*/ caml_call1(_k3_,_k2_); + /*<>*/ if(_kG_) + /*<>*/ var + /*<>*/ sth$0=_kG_[1], focus=sth$0; else - /*<>*/ var - /*<>*/ _j$_=0, - /*<>*/ _ka_=Nottui[3][1], - focus= /*<>*/ caml_call1(_ka_,_j$_); - /*<>*/ var - /*<>*/ _jS_=Lwd_table[8], - /*<>*/ _jT_= - /*<>*/ caml_call1(_jS_,table), - /*<>*/ _jU_=Lwd[10], + /*<>*/ var + /*<>*/ _k0_=0, + /*<>*/ _k1_=Nottui[3][1], + focus= /*<>*/ caml_call1(_k1_,_k0_); + /*<>*/ var + /*<>*/ _kH_=Lwd_table[8], + /*<>*/ _kI_= + /*<>*/ caml_call1(_kH_,table), + /*<>*/ _kJ_=Lwd[10], /*<>*/ cursor= - /*<>*/ caml_call1(_jU_,_jT_), - /*<>*/ _jV_=Lwd[13], - /*<>*/ _jW_= - /*<>*/ caml_call1(_jV_,cursor); - /*<>*/ function _jX_(cursor) + /*<>*/ caml_call1(_kJ_,_kI_), + /*<>*/ _kK_=Lwd[13], + /*<>*/ _kL_= + /*<>*/ caml_call1(_kK_,cursor); + /*<>*/ function _kM_(cursor) { /*<>*/ var - /*<>*/ _k8_=Lwd_table[12], - /*<>*/ _k9_= - /*<>*/ caml_call1(_k8_,cursor); - /*<>*/ function _k__(first) + /*<>*/ _lV_=Lwd_table[12], + /*<>*/ _lW_= + /*<>*/ caml_call1(_lV_,cursor); + /*<>*/ function _lX_(first) { /*<>*/ return /*<>*/ caml_call1 (Nottui[3][2],first[1]) /*<>*/ } /*<>*/ /*<>*/ var - _k$_= + _lY_= Stdlib_Option[9]; /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_k$_,_k__),_k9_) /*<>*/ } + ( /*<>*/ caml_call1(_lY_,_lX_),_lW_) /*<>*/ } /*<>*/ /*<>*/ var - _jY_= + _kN_= Stdlib_Option[9]; /*<>*/ /*<>*/ caml_call2 - (_jY_,_jX_,_jW_); + (_kN_,_kM_,_kL_); /*<>*/ var - /*<>*/ _jZ_=Nottui[6][32], - /*<>*/ _j0_=Lwd_utils[1], - /*<>*/ _j1_= - /*<>*/ caml_call1(_j0_,_jZ_); - /*<>*/ function _j2_(param,_k7_) - { /*<>*/ /*<>*/ var ui=_k7_[3]; + /*<>*/ _kO_=Nottui[6][32], + /*<>*/ _kP_=Lwd_utils[1], + /*<>*/ _kQ_= + /*<>*/ caml_call1(_kP_,_kO_); + /*<>*/ function _kR_(param,_lU_) + { /*<>*/ /*<>*/ var ui=_lU_[3]; /*<>*/ return ui /*<>*/ } /*<>*/ var - /*<>*/ _j3_=Lwd_table[19], - /*<>*/ _j4_= - /*<>*/ caml_call3(_j3_,_j2_,_j1_,table), - /*<>*/ _j5_=Lwd[5], - /*<>*/ _j6_= - /*<>*/ caml_call1(_j5_,_j4_), - /*<>*/ _j7_=Nottui[3][6], - /*<>*/ _j8_= - /*<>*/ caml_call1(_j7_,focus), - /*<>*/ _j9_= - /*<>*/ caml_call1(Lwd[4],_j8_); - /*<>*/ function _j__(focus) - { /*<>*/ function _ke_(k) - { /*<>*/ function _kf_(m) + /*<>*/ _kS_=Lwd_table[19], + /*<>*/ _kT_= + /*<>*/ caml_call3(_kS_,_kR_,_kQ_,table), + /*<>*/ _kU_=Lwd[5], + /*<>*/ _kV_= + /*<>*/ caml_call1(_kU_,_kT_), + /*<>*/ _kW_=Nottui[3][6], + /*<>*/ _kX_= + /*<>*/ caml_call1(_kW_,focus), + /*<>*/ _kY_= + /*<>*/ caml_call1(Lwd[4],_kX_); + /*<>*/ function _kZ_(focus) + { /*<>*/ function _k5_(k) + { /*<>*/ function _k6_(m) { /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_e9_,Nottui[6][3],k) /*<>*/ } + (m,0,0,_e__,Nottui[6][3],k) /*<>*/ } /*<>*/ var - /*<>*/ _kg_=0, - /*<>*/ _kh_=Logs[14]; + /*<>*/ _k7_=0, + /*<>*/ _k8_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_kh_,_kg_,_kf_); - /*<>*/ /*<>*/ var _ki_=k[1]; - /*<>*/ if(typeof _ki_ === "number") - {if(-323132129 === _ki_) + (_k8_,_k7_,_k6_); + /*<>*/ /*<>*/ var _k9_=k[1]; + /*<>*/ if(typeof _k9_ === "number") + {if(-323132129 === _k9_) {if(! k[2]) /*<>*/ return /*<>*/ line_of_cursor (cursor, function(row,line) { /*<>*/ var - /*<>*/ _kt_=line[2], - /*<>*/ _ku_=Lwd[13], + /*<>*/ _li_=line[2], + /*<>*/ _lj_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_ku_,_kt_), + /*<>*/ caml_call1(_lj_,_li_), /*<>*/ pos=match[2], /*<>*/ str=match[1]; - /*<>*/ function _kv_(row_prev) + /*<>*/ function _lk_(row_prev) { /*<>*/ if(0 === pos) { /*<>*/ var - /*<>*/ _ky_= + /*<>*/ _ln_= function(line_prev) { /*<>*/ var - /*<>*/ _kB_=line_prev[2], - /*<>*/ _kC_=Lwd[13], + /*<>*/ _lq_=line_prev[2], + /*<>*/ _lr_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_kC_,_kB_), + /*<>*/ caml_call1(_lr_,_lq_), /*<>*/ str_prev=match[1], - /*<>*/ _kD_=line[1], - /*<>*/ _kE_=Nottui[3][4]; + /*<>*/ _ls_=line[1], + /*<>*/ _lt_=Nottui[3][4]; /*<>*/ /*<>*/ caml_call1 - (_kE_,_kD_); + (_lt_,_ls_); /*<>*/ var - /*<>*/ _kF_=line_prev[1], - /*<>*/ _kG_=Nottui[3][2]; + /*<>*/ _lu_=line_prev[1], + /*<>*/ _lv_=Nottui[3][2]; /*<>*/ /*<>*/ caml_call1 - (_kG_,_kF_); + (_lv_,_lu_); /*<>*/ var - /*<>*/ _kH_= + /*<>*/ _lw_= /*<>*/ caml_ml_string_length(str_prev), - /*<>*/ _kI_=Stdlib[28], - /*<>*/ _kJ_= + /*<>*/ _lx_=Stdlib[28], + /*<>*/ _ly_= [0, - /*<>*/ caml_call2(_kI_,str_prev,str), - _kH_], - /*<>*/ _kK_=line_prev[2], - /*<>*/ _kL_=Lwd[12]; + /*<>*/ caml_call2(_lx_,str_prev,str), + _lw_], + /*<>*/ _lz_=line_prev[2], + /*<>*/ _lA_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_kL_,_kK_,_kJ_); - /*<>*/ var - /*<>*/ _kM_=[0,row_prev], - /*<>*/ _kN_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_kN_,cursor,_kM_); - /*<>*/ /*<>*/ var - _kO_= + (_lA_,_lz_,_ly_); + /*<>*/ /*<>*/ var + _lB_= Lwd_table[16]; - /*<>*/ /*<>*/ caml_call1 - (_kO_,row); - /*<>*/ return 321312668 /*<>*/ }, - /*<>*/ _kz_=Lwd_table[12], - /*<>*/ _kA_= - /*<>*/ caml_call1(_kz_,row_prev); + /*<>*/ /*<>*/ caml_call1 + (_lB_,row); + /*<>*/ return 321312668 /*<>*/ }, + /*<>*/ _lo_=Lwd_table[12], + /*<>*/ _lp_= + /*<>*/ caml_call1(_lo_,row_prev); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_kA_,_ky_)} - /*<>*/ return -475359645 /*<>*/ } + (Nottui[6][1],_lp_,_ln_)} + /*<>*/ return -475359645 /*<>*/ } /*<>*/ var - /*<>*/ _kw_=Lwd_table[11], - /*<>*/ _kx_= - /*<>*/ caml_call1(_kw_,row); + /*<>*/ _ll_=Lwd_table[11], + /*<>*/ _lm_= + /*<>*/ caml_call1(_ll_,row); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_kx_,_kv_) /*<>*/ })} + (Nottui[6][1],_lm_,_lk_) /*<>*/ })} else - if(62119160 === _ki_ && ! k[2]) + if(62119160 === _k9_ && ! k[2]) /*<>*/ return /*<>*/ line_of_cursor (cursor, function(old_row,old_line) { /*<>*/ var - /*<>*/ _kP_=old_line[2], - /*<>*/ _kQ_=Lwd[13], + /*<>*/ _lC_=old_line[2], + /*<>*/ _lD_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_kQ_,_kP_), + /*<>*/ caml_call1(_lD_,_lC_), /*<>*/ pos=match[2], /*<>*/ str=match[1], - /*<>*/ _kR_=0, - /*<>*/ _kS_=String[15], + /*<>*/ _lE_=0, + /*<>*/ _lF_=String[15], /*<>*/ o_str= - /*<>*/ caml_call3(_kS_,str,_kR_,pos), - /*<>*/ _kT_= + /*<>*/ caml_call3(_lF_,str,_lE_,pos), + /*<>*/ _lG_= /*<>*/ caml_ml_string_length(str) - pos | 0, - /*<>*/ _kU_=String[15], + /*<>*/ _lH_=String[15], /*<>*/ n_str= - /*<>*/ caml_call3(_kU_,str,pos,_kT_), - /*<>*/ _kV_=[0,o_str,pos], - /*<>*/ _kW_=old_line[2], - /*<>*/ _kX_=Lwd[12]; + /*<>*/ caml_call3(_lH_,str,pos,_lG_), + /*<>*/ _lI_=[0,o_str,pos], + /*<>*/ _lJ_=old_line[2], + /*<>*/ _lK_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_kX_,_kW_,_kV_); + (_lK_,_lJ_,_lI_); /*<>*/ var - /*<>*/ _kY_=0, + /*<>*/ _lL_=0, /*<>*/ new_line= - /*<>*/ line_make(_kY_,n_str), - /*<>*/ _kZ_=old_line[1], - /*<>*/ _k0_=Nottui[3][4]; + /*<>*/ line_make(_lL_,n_str), + /*<>*/ _lM_=old_line[1], + /*<>*/ _lN_=Nottui[3][4]; /*<>*/ /*<>*/ caml_call1 - (_k0_,_kZ_); + (_lN_,_lM_); /*<>*/ var - /*<>*/ _k1_=new_line[1], - /*<>*/ _k2_=Nottui[3][2]; + /*<>*/ _lO_=new_line[1], + /*<>*/ _lP_=Nottui[3][2]; /*<>*/ /*<>*/ caml_call1 - (_k2_,_k1_); + (_lP_,_lO_); /*<>*/ var - /*<>*/ _k3_=[0,new_line], - /*<>*/ _k4_=Lwd_table[7], - /*<>*/ _k5_= - [0, /*<>*/ caml_call2(_k4_,_k3_,old_row)], - /*<>*/ _k6_=Lwd[12]; + /*<>*/ _lQ_=[0,new_line], + /*<>*/ _lR_=Lwd_table[7], + /*<>*/ _lS_= + [0, /*<>*/ caml_call2(_lR_,_lQ_,old_row)], + /*<>*/ _lT_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_k6_,cursor,_k5_); + (_lT_,cursor,_lS_); /*<>*/ return 321312668 /*<>*/ })} else - {var _kj_=_ki_[1]; - if(852405675 === _kj_) - {var _kk_=k[2]; - if(_kk_) - {var _kl_=_kk_[1],_km_=_ki_[2]; - if(748795083 === _kl_) - {if(! _kk_[2]) + {var _k__=_k9_[1]; + if(852405675 === _k__) + {var _k$_=k[2]; + if(_k$_) + {var _la_=_k$_[1],_lb_=_k9_[2]; + if(748795083 === _la_) + {if(! _k$_[2]) { /*<>*/ /*<>*/ var - _kn_= + _lc_= 110; /*<>*/ if - ( /*<>*/ eq_uc_c(_km_,_kn_)) + ( /*<>*/ eq_uc_c(_lb_,_lc_)) /*<>*/ return /*<>*/ cursor_move (cursor, function(c) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[10],c) /*<>*/ }); /*<>*/ /*<>*/ var - _ko_= + _ld_= 112; /*<>*/ if - ( /*<>*/ eq_uc_c(_km_,_ko_)) + ( /*<>*/ eq_uc_c(_lb_,_ld_)) /*<>*/ return /*<>*/ cursor_move (cursor, function(c) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[11],c) /*<>*/ }); - /*<>*/ /*<>*/ var - _kp_= + /*<>*/ /*<>*/ var + _le_= 107; - /*<>*/ if - ( /*<>*/ eq_uc_c(_km_,_kp_)) - /*<>*/ return 321312668}} + /*<>*/ if + ( /*<>*/ eq_uc_c(_lb_,_le_)) + /*<>*/ return 321312668}} else - if(858945253 === _kl_ && ! _kk_[2]) + if(858945253 === _la_ && ! _k$_[2]) { /*<>*/ /*<>*/ var - _kq_= + _lf_= 60; /*<>*/ if - ( /*<>*/ eq_uc_c(_km_,_kq_)) + ( /*<>*/ eq_uc_c(_lb_,_lf_)) /*<>*/ return /*<>*/ cursor_move (cursor, function(param) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[8],table) /*<>*/ }); /*<>*/ /*<>*/ var - _kr_= + _lg_= 62; /*<>*/ if - ( /*<>*/ eq_uc_c(_km_,_kr_)) + ( /*<>*/ eq_uc_c(_lb_,_lg_)) /*<>*/ return /*<>*/ cursor_move (cursor, function(param) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[9],table) /*<>*/ })}}} else - if(951904681 === _kj_) - {var _ks_=_ki_[2]; - if(19067 === _ks_) + if(951904681 === _k__) + {var _lh_=_k9_[2]; + if(19067 === _lh_) /*<>*/ return /*<>*/ cursor_move (cursor, function(c) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[11],c) /*<>*/ }); - if(759637122 === _ks_) + if(759637122 === _lh_) /*<>*/ return /*<>*/ cursor_move (cursor, function(c) { /*<>*/ return /*<>*/ caml_call1 (Lwd_table[10],c) /*<>*/ })}} - /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return -475359645 /*<>*/ } /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][19],[0,focus],_ke_) /*<>*/ } - /*<>*/ return /*<>*/ function(_kd_) - { /*<>*/ return caml_call2(_j9_,_kd_,_j__)} - (_j6_) /*<>*/ } - /*<>*/ function tabs(tabs) - { /*<>*/ if(tabs) - { /*<>*/ var - /*<>*/ _jv_=0, - /*<>*/ _jw_=Lwd[10], - /*<>*/ cur= - /*<>*/ caml_call1(_jw_,_jv_), - /*<>*/ _jx_= + (Nottui[6][19],[0,focus],_k5_) /*<>*/ } + /*<>*/ return /*<>*/ function(_k4_) + { /*<>*/ return caml_call2(_kY_,_k4_,_kZ_)} + (_kV_) /*<>*/ } + /*<>*/ function tree_nav(opt,tree,path) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], + focus=sth; + else + /*<>*/ var + /*<>*/ _j1_=0, + /*<>*/ _j2_=Nottui[3][1], + focus= /*<>*/ caml_call1(_j2_,_j1_); + /*<>*/ var + /*<>*/ _jT_=0, + /*<>*/ _jU_=Lwd_table[1], + /*<>*/ table= + /*<>*/ caml_call1(_jU_,_jT_); + /*<>*/ function cursor_move(cursor,f) + { /*<>*/ var + /*<>*/ _kD_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_kD_,cursor); + /*<>*/ if(match) + { /*<>*/ var + /*<>*/ cursor_row=match[1], + /*<>*/ match$0= + /*<>*/ caml_call1(f,cursor_row); + /*<>*/ if(match$0) + { /*<>*/ var + /*<>*/ new_row=match$0[1], + /*<>*/ _kE_=[0,new_row], + /*<>*/ _kF_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_kF_,cursor,_kE_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ function _jV_(treelist) + { /*<>*/ function _j3_(te) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_table[5],table,te) /*<>*/ } + /*<>*/ /*<>*/ var + _j4_= + Stdlib_List[17]; + /*<>*/ /*<>*/ caml_call2 + (_j4_,_j3_,treelist); + /*<>*/ var + /*<>*/ _j5_=Lwd_table[8], + /*<>*/ _j6_= + /*<>*/ caml_call1(_j5_,table), + /*<>*/ _j7_=Lwd[10], + /*<>*/ cursor= + /*<>*/ caml_call1(_j7_,_j6_), + /*<>*/ _j8_=Nottui[6][32], + /*<>*/ _j9_=Lwd_utils[1], + /*<>*/ _j__= + /*<>*/ caml_call1(_j9_,_j8_); + /*<>*/ function _j$_(param,_kA_) + { /*<>*/ var + /*<>*/ s=_kA_[1], + /*<>*/ _kB_=0, + /*<>*/ _kC_= + /*<>*/ string$0(_kB_,s); + /*<>*/ return /*<>*/ caml_call1 + (Lwd[2],_kC_) /*<>*/ } + /*<>*/ var + /*<>*/ _ka_=Lwd_table[19], + /*<>*/ _kb_= + /*<>*/ caml_call3(_ka_,_j$_,_j__,table), + /*<>*/ _kc_=Lwd[5], + /*<>*/ _kd_= + /*<>*/ caml_call1(_kc_,_kb_), + /*<>*/ _ke_=Nottui[3][6], + /*<>*/ _kf_= + /*<>*/ caml_call1(_ke_,focus), + /*<>*/ _kg_= + /*<>*/ caml_call1(Lwd[4],_kf_); + /*<>*/ function _kh_(focus) + { /*<>*/ function _kl_(k) + { /*<>*/ function _km_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_e$_,Nottui[6][3],k) /*<>*/ } + /*<>*/ var + /*<>*/ _kn_=0, + /*<>*/ _ko_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_ko_,_kn_,_km_); + /*<>*/ /*<>*/ var _kp_=k[1]; + /*<>*/ if(typeof _kp_ === "number") + {if(-323132129 === _kp_) + {if(! k[2]) /*<>*/ return -475359645} + else + if(62119160 === _kp_ && ! k[2]) + /*<>*/ return 321312668} + else + {var _kq_=_kp_[1]; + if(852405675 === _kq_) + {var _kr_=k[2]; + if(_kr_) + {var _ks_=_kr_[1],_kt_=_kp_[2]; + if(748795083 === _ks_) + {if(! _kr_[2]) + { /*<>*/ /*<>*/ var + _ku_= + 110; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kt_,_ku_)) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(c) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[10],c) /*<>*/ }); + /*<>*/ /*<>*/ var + _kv_= + 112; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kt_,_kv_)) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(c) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[11],c) /*<>*/ }); + /*<>*/ /*<>*/ var + _kw_= + 107; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kt_,_kw_)) + /*<>*/ return 321312668}} + else + if(858945253 === _ks_ && ! _kr_[2]) + { /*<>*/ /*<>*/ var + _kx_= + 60; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kt_,_kx_)) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(param) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[8],table) /*<>*/ }); + /*<>*/ /*<>*/ var + _ky_= + 62; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kt_,_ky_)) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(param) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[9],table) /*<>*/ })}}} + else + if(951904681 === _kq_) + {var _kz_=_kp_[2]; + if(19067 === _kz_) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(c) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[11],c) /*<>*/ }); + if(759637122 === _kz_) + /*<>*/ return /*<>*/ cursor_move + (cursor, + function(c) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[10],c) /*<>*/ })}} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][19],[0,focus],_kl_) /*<>*/ } + /*<>*/ function _ki_(_kk_) + { /*<>*/ return caml_call2(_kg_,_kk_,_kh_)} + /*<>*/ /*<>*/ var + _kj_= + /*<>*/ _ki_(_kd_); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_kj_) /*<>*/ } + /*<>*/ var + /*<>*/ _jW_=0, + /*<>*/ _jX_=0, + /*<>*/ _jY_=0, + /*<>*/ _jZ_=Nav[2][36][28], + /*<>*/ _j0_= + /*<>*/ caml_call5(_jZ_,tree,_jY_,_jX_,_jW_,path); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_j0_,_jV_) /*<>*/ } + /*<>*/ function tabs(tabs) + { /*<>*/ if(tabs) + { /*<>*/ var + /*<>*/ _jx_=0, + /*<>*/ _jy_=Lwd[10], + /*<>*/ cur= + /*<>*/ caml_call1(_jy_,_jx_), + /*<>*/ _jz_= function(idx_sel) - { /*<>*/ var - /*<>*/ _jA_=Stdlib_List[7], - /*<>*/ match= - /*<>*/ caml_call2(_jA_,tabs,idx_sel), - /*<>*/ f=match[2]; - /*<>*/ function _jB_(i,param) - { /*<>*/ /*<>*/ var + { /*<>*/ var + /*<>*/ _jC_=Stdlib_List[7], + /*<>*/ match= + /*<>*/ caml_call2(_jC_,tabs,idx_sel), + /*<>*/ f=match[2]; + /*<>*/ function _jD_(i,param) + { /*<>*/ /*<>*/ var s= param[1]; - /*<>*/ if(i === idx_sel) - /*<>*/ var - /*<>*/ _jK_=NVG[40][21], - /*<>*/ _jL_=0, - /*<>*/ _jM_=Style[9], - attr= /*<>*/ caml_call2(_jM_,_jL_,_jK_); + /*<>*/ if(i === idx_sel) + /*<>*/ var + /*<>*/ _jM_=NVG[40][21], + /*<>*/ _jN_=0, + /*<>*/ _jO_=Style[9], + attr= /*<>*/ caml_call2(_jO_,_jN_,_jM_); else var attr=Style[4]; - /*<>*/ var - /*<>*/ _jN_=[0,attr], - /*<>*/ tab_annot= - /*<>*/ caml_call1 - ( /*<>*/ printf(_jN_,_e__),s); - /*<>*/ function _jO_(param,_jP_,l) - { /*<>*/ if(847852583 === l) - { /*<>*/ /*<>*/ var - _jQ_= + /*<>*/ var + /*<>*/ _jP_=[0,attr], + /*<>*/ tab_annot= + /*<>*/ caml_call1 + ( /*<>*/ printf(_jP_,_fa_),s); + /*<>*/ function _jQ_(param,_jR_,l) + { /*<>*/ if(847852583 === l) + { /*<>*/ /*<>*/ var + _jS_= Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jQ_,cur,i); - /*<>*/ return 321312668} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],_jO_,tab_annot) /*<>*/ } - /*<>*/ var - /*<>*/ _jC_=Stdlib_List[20], - /*<>*/ _jD_= - /*<>*/ caml_call1(_jC_,_jB_), - /*<>*/ _jE_= - /*<>*/ caml_call1(_jD_,tabs), - /*<>*/ _jF_=Nottui[6][34], - /*<>*/ tab_bar= - /*<>*/ caml_call1(_jF_,_jE_), - /*<>*/ _jG_=Nottui[6][29], - /*<>*/ _jH_= - /*<>*/ caml_call1(_jG_,tab_bar), - /*<>*/ _jI_=0, - /*<>*/ _jJ_= - /*<>*/ caml_call1(f,_jI_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],_jJ_,_jH_) /*<>*/ }, - /*<>*/ _jy_=Lwd[11], - /*<>*/ _jz_= - /*<>*/ caml_call1(_jy_,cur); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][2],_jz_,_jx_)} - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],Nottui[6][15]) /*<>*/ } - /*<>*/ function unfoldable(opt,summary,f) + /*<>*/ /*<>*/ caml_call2 + (_jS_,cur,i); + /*<>*/ return 321312668} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],_jQ_,tab_annot) /*<>*/ } + /*<>*/ var + /*<>*/ _jE_=Stdlib_List[20], + /*<>*/ _jF_= + /*<>*/ caml_call1(_jE_,_jD_), + /*<>*/ _jG_= + /*<>*/ caml_call1(_jF_,tabs), + /*<>*/ _jH_=Nottui[6][34], + /*<>*/ tab_bar= + /*<>*/ caml_call1(_jH_,_jG_), + /*<>*/ _jI_=Nottui[6][29], + /*<>*/ _jJ_= + /*<>*/ caml_call1(_jI_,tab_bar), + /*<>*/ _jK_=0, + /*<>*/ _jL_= + /*<>*/ caml_call1(f,_jK_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],_jL_,_jJ_) /*<>*/ }, + /*<>*/ _jA_=Lwd[11], + /*<>*/ _jB_= + /*<>*/ caml_call1(_jA_,cur); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][2],_jB_,_jz_)} + /*<>*/ return /*<>*/ caml_call1 + (Lwd[1],Nottui[6][15]) /*<>*/ } + /*<>*/ function unfoldable(opt,summary,f) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], folded_by_default=sth; else var folded_by_default=1; - /*<>*/ var - /*<>*/ _iO_=1 - folded_by_default, - /*<>*/ _iP_=Lwd[10], - /*<>*/ opened= - /*<>*/ caml_call1(_iP_,_iO_); - /*<>*/ function _iQ_(param) - { /*<>*/ if(param) - { /*<>*/ var - /*<>*/ _jn_=0, - /*<>*/ _jo_= - /*<>*/ caml_call1(f,_jn_), - /*<>*/ _jp_=Lwd[3], - /*<>*/ _jq_=0, - /*<>*/ _jr_= - /*<>*/ string$0(_jq_,cst$10), - /*<>*/ _js_=Nottui[6][28], - /*<>*/ _jt_= - /*<>*/ caml_call1(_js_,_jr_); - /*<>*/ return /*<>*/ function - (_ju_) - { /*<>*/ return caml_call2(_jp_,_ju_,_jt_)} - (_jo_)} - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],Nottui[6][15]) /*<>*/ } - /*<>*/ var - /*<>*/ _iR_=Lwd[11], - /*<>*/ _iS_= - /*<>*/ caml_call1(_iR_,opened), - /*<>*/ _iT_=Lwd[30][2], - /*<>*/ fold_content= - /*<>*/ caml_call2(_iT_,_iS_,_iQ_); - /*<>*/ function _iU_(op) - { /*<>*/ function _jg_(s) - { /*<>*/ var - /*<>*/ _jh_=[0,s,0], - /*<>*/ _ji_=0, - /*<>*/ _jj_= - [0, /*<>*/ string$0(_ji_,cst$11),_jh_], - /*<>*/ _jk_=op?cst_v:cst$12, - _jl_=[0,Style[15]], - /*<>*/ _jm_= - [0, /*<>*/ string$0(_jl_,_jk_),_jj_]; - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][34],_jm_) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],summary,_jg_) /*<>*/ } - /*<>*/ var - /*<>*/ _iV_=Lwd[11], - /*<>*/ _iW_= - /*<>*/ caml_call1(_iV_,opened), - /*<>*/ _iX_=Lwd[30][2], - /*<>*/ summary$0= - /*<>*/ caml_call2(_iX_,_iW_,_iU_); - /*<>*/ function cursor(param,_ja_,_i$_) - { /*<>*/ if(847852583 === _i$_) - { /*<>*/ /*<>*/ var - _jb_= + /*<>*/ var + /*<>*/ _iQ_=1 - folded_by_default, + /*<>*/ _iR_=Lwd[10], + /*<>*/ opened= + /*<>*/ caml_call1(_iR_,_iQ_); + /*<>*/ function _iS_(param) + { /*<>*/ if(param) + { /*<>*/ var + /*<>*/ _jp_=0, + /*<>*/ _jq_= + /*<>*/ caml_call1(f,_jp_), + /*<>*/ _jr_=Lwd[3], + /*<>*/ _js_=0, + /*<>*/ _jt_= + /*<>*/ string$0(_js_,cst$10), + /*<>*/ _ju_=Nottui[6][28], + /*<>*/ _jv_= + /*<>*/ caml_call1(_ju_,_jt_); + /*<>*/ return /*<>*/ function + (_jw_) + { /*<>*/ return caml_call2(_jr_,_jw_,_jv_)} + (_jq_)} + /*<>*/ return /*<>*/ caml_call1 + (Lwd[1],Nottui[6][15]) /*<>*/ } + /*<>*/ var + /*<>*/ _iT_=Lwd[11], + /*<>*/ _iU_= + /*<>*/ caml_call1(_iT_,opened), + /*<>*/ _iV_=Lwd[30][2], + /*<>*/ fold_content= + /*<>*/ caml_call2(_iV_,_iU_,_iS_); + /*<>*/ function _iW_(op) + { /*<>*/ function _ji_(s) + { /*<>*/ var + /*<>*/ _jj_=[0,s,0], + /*<>*/ _jk_=0, + /*<>*/ _jl_= + [0, /*<>*/ string$0(_jk_,cst$11),_jj_], + /*<>*/ _jm_=op?cst_v:cst$12, + _jn_=[0,Style[15]], + /*<>*/ _jo_= + [0, /*<>*/ string$0(_jn_,_jm_),_jl_]; + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][34],_jo_) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],summary,_ji_) /*<>*/ } + /*<>*/ var + /*<>*/ _iX_=Lwd[11], + /*<>*/ _iY_= + /*<>*/ caml_call1(_iX_,opened), + /*<>*/ _iZ_=Lwd[30][2], + /*<>*/ summary$0= + /*<>*/ caml_call2(_iZ_,_iY_,_iW_); + /*<>*/ function cursor(param,_jc_,_jb_) + { /*<>*/ if(847852583 === _jb_) + { /*<>*/ /*<>*/ var + _jd_= Lwd[13]; - /*<>*/ if - ( /*<>*/ caml_call1(_jb_,opened)) - { /*<>*/ var - /*<>*/ _jc_=0, - /*<>*/ _jd_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jd_,opened,_jc_); - /*<>*/ return 321312668} - /*<>*/ var - /*<>*/ _je_=1, - /*<>*/ _jf_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jf_,opened,_je_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ function _iY_(m) - { /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],cursor,m) /*<>*/ } - /*<>*/ var - /*<>*/ _iZ_=Lwd[3], - /*<>*/ mouse= - /*<>*/ caml_call2(_iZ_,summary$0,_iY_); - /*<>*/ function _i0_(summary,fold) - { /*<>*/ var - /*<>*/ _i1_=Nottui[6][8], - /*<>*/ spec_sum= - /*<>*/ caml_call1(_i1_,summary), - /*<>*/ _i2_=Nottui[6][8], - /*<>*/ spec_fold= - /*<>*/ caml_call1(_i2_,fold), - /*<>*/ _i3_=20. < spec_fold[2]?1:0; - /*<>*/ if(_i3_) - var too_big=_i3_; + /*<>*/ if + ( /*<>*/ caml_call1(_jd_,opened)) + { /*<>*/ var + /*<>*/ _je_=0, + /*<>*/ _jf_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_jf_,opened,_je_); + /*<>*/ return 321312668} + /*<>*/ var + /*<>*/ _jg_=1, + /*<>*/ _jh_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_jh_,opened,_jg_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ function _i0_(m) + { /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],cursor,m) /*<>*/ } + /*<>*/ var + /*<>*/ _i1_=Lwd[3], + /*<>*/ mouse= + /*<>*/ caml_call2(_i1_,summary$0,_i0_); + /*<>*/ function _i2_(summary,fold) + { /*<>*/ var + /*<>*/ _i3_=Nottui[6][8], + /*<>*/ spec_sum= + /*<>*/ caml_call1(_i3_,summary), + /*<>*/ _i4_=Nottui[6][8], + /*<>*/ spec_fold= + /*<>*/ caml_call1(_i4_,fold), + /*<>*/ _i5_=20. < spec_fold[2]?1:0; + /*<>*/ if(_i5_) + var too_big=_i5_; else - {var _i8_=20. < spec_fold[2]?1:0; - if(_i8_) + {var _i__=20. < spec_fold[2]?1:0; + if(_i__) var - _i9_=spec_fold[1], - _i__=spec_sum[1], - too_big=240. < _i__ + _i9_?1:0; + _i$_=spec_fold[1], + _ja_=spec_sum[1], + too_big=240. < _ja_ + _i$_?1:0; else - var too_big=_i8_} - /*<>*/ if(too_big) - { /*<>*/ var - /*<>*/ _i4_=0, - /*<>*/ _i5_= - /*<>*/ string$0(_i4_,cst$13), - /*<>*/ _i6_=Nottui[6][28], - /*<>*/ _i7_= - /*<>*/ caml_call2(_i6_,_i5_,fold); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][29],summary,_i7_)} - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][28],summary,fold) /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],mouse,fold_content,_i0_)} - /*<>*/ function hbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][31],l) /*<>*/ } - /*<>*/ function vbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][32],l) /*<>*/ } - /*<>*/ function zbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][33],l) /*<>*/ } - /*<>*/ function vlist(opt,l) + var too_big=_i__} + /*<>*/ if(too_big) + { /*<>*/ var + /*<>*/ _i6_=0, + /*<>*/ _i7_= + /*<>*/ string$0(_i6_,cst$13), + /*<>*/ _i8_=Nottui[6][28], + /*<>*/ _i9_= + /*<>*/ caml_call2(_i8_,_i7_,fold); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][29],summary,_i9_)} + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][28],summary,fold) /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],mouse,fold_content,_i2_)} + /*<>*/ function hbox(l) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[2],Nottui[6][31],l) /*<>*/ } + /*<>*/ function vbox(l) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[2],Nottui[6][32],l) /*<>*/ } + /*<>*/ function zbox(l) + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[2],Nottui[6][33],l) /*<>*/ } + /*<>*/ function vlist(opt,l) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], bullet=sth; else var bullet=cst$14; - /*<>*/ function _iH_(ui) - { /*<>*/ var - /*<>*/ _iK_=0, - /*<>*/ _iL_= - /*<>*/ string$0(_iK_,bullet), - /*<>*/ _iM_=Nottui[6][28], - /*<>*/ _iN_= - /*<>*/ caml_call1(_iM_,_iL_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],ui,_iN_) /*<>*/ } - /*<>*/ var - /*<>*/ _iI_=Stdlib_List[19], - /*<>*/ _iJ_= - /*<>*/ caml_call1(_iI_,_iH_); - /*<>*/ return /*<>*/ vbox - ( /*<>*/ caml_call1(_iJ_,l))} - /*<>*/ function vlist_with(opt,_ij_,f) + /*<>*/ function _iJ_(ui) + { /*<>*/ var + /*<>*/ _iM_=0, + /*<>*/ _iN_= + /*<>*/ string$0(_iM_,bullet), + /*<>*/ _iO_=Nottui[6][28], + /*<>*/ _iP_= + /*<>*/ caml_call1(_iO_,_iN_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[3],ui,_iP_) /*<>*/ } + /*<>*/ var + /*<>*/ _iK_=Stdlib_List[19], + /*<>*/ _iL_= + /*<>*/ caml_call1(_iK_,_iJ_); + /*<>*/ return /*<>*/ vbox + ( /*<>*/ caml_call1(_iL_,l))} + /*<>*/ function vlist_with(opt,_il_,f) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], bullet=sth; else var bullet=cst$15; - if(_ij_) - /*<>*/ var - /*<>*/ sth$0=_ij_[1], + if(_il_) + /*<>*/ var + /*<>*/ sth$0=_il_[1], filter=sth$0; else - /*<>*/ var - /*<>*/ _ik_= + /*<>*/ var + /*<>*/ _im_= function(param) - { /*<>*/ return 1 /*<>*/ }, - /*<>*/ _il_=Lwd[1], - filter= /*<>*/ caml_call1(_il_,_ik_); - /*<>*/ return function(l) - { /*<>*/ function filter_map(acc,f,l) + { /*<>*/ return 1 /*<>*/ }, + /*<>*/ _in_=Lwd[1], + filter= /*<>*/ caml_call1(_in_,_im_); + /*<>*/ return function(l) + { /*<>*/ function filter_map(acc,f,l) {var acc$0=acc,l$0=l; - /*<>*/ for(;;) - { /*<>*/ if(l$0) - { /*<>*/ var + /*<>*/ for(;;) + { /*<>*/ if(l$0) + { /*<>*/ var l$1=l$0[2], x=l$0[1], - /*<>*/ match= - /*<>*/ caml_call1(f,x); - /*<>*/ if(match) - /*<>*/ var - /*<>*/ y=match[1], + /*<>*/ match= + /*<>*/ caml_call1(f,x); + /*<>*/ if(match) + /*<>*/ var + /*<>*/ y=match[1], acc$1=[0,y,acc$0]; else var acc$1=acc$0; - /*<>*/ var acc$0=acc$1,l$0=l$1; + /*<>*/ var acc$0=acc$1,l$0=l$1; continue} - /*<>*/ return /*<>*/ caml_call1 - (Stdlib_List[9],acc$0)} /*<>*/ } - /*<>*/ function _im_(x) - { /*<>*/ var - /*<>*/ _iz_= - /*<>*/ caml_call1(f,x), - /*<>*/ _iA_=Lwd[3], - /*<>*/ _iB_=0, - /*<>*/ _iC_= - /*<>*/ string$0(_iB_,bullet), - /*<>*/ _iD_=Nottui[6][28], - /*<>*/ _iE_= - /*<>*/ caml_call1(_iD_,_iC_); - /*<>*/ function _iF_(_iG_) - { /*<>*/ return caml_call2(_iA_,_iG_,_iE_)} - /*<>*/ return [0, + /*<>*/ return /*<>*/ caml_call1 + (Stdlib_List[9],acc$0)} /*<>*/ } + /*<>*/ function _io_(x) + { /*<>*/ var + /*<>*/ _iB_= + /*<>*/ caml_call1(f,x), + /*<>*/ _iC_=Lwd[3], + /*<>*/ _iD_=0, + /*<>*/ _iE_= + /*<>*/ string$0(_iD_,bullet), + /*<>*/ _iF_=Nottui[6][28], + /*<>*/ _iG_= + /*<>*/ caml_call1(_iF_,_iE_); + /*<>*/ function _iH_(_iI_) + { /*<>*/ return caml_call2(_iC_,_iI_,_iG_)} + /*<>*/ return [0, x, - /*<>*/ _iF_(_iz_)] /*<>*/ } - /*<>*/ var - /*<>*/ _in_=Stdlib_List[19], - /*<>*/ _io_= - /*<>*/ caml_call1(_in_,_im_), - /*<>*/ _ip_=Lwd[30][1], - /*<>*/ l$0= - /*<>*/ caml_call2(_ip_,l,_io_); - /*<>*/ function _iq_(filter) - { /*<>*/ function _iv_(param) - { /*<>*/ var - /*<>*/ ui=param[2], - /*<>*/ x=param[1]; - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ _iH_(_iB_)] /*<>*/ } + /*<>*/ var + /*<>*/ _ip_=Stdlib_List[19], + /*<>*/ _iq_= + /*<>*/ caml_call1(_ip_,_io_), + /*<>*/ _ir_=Lwd[30][1], + /*<>*/ l$0= + /*<>*/ caml_call2(_ir_,l,_iq_); + /*<>*/ function _is_(filter) + { /*<>*/ function _ix_(param) + { /*<>*/ var + /*<>*/ ui=param[2], + /*<>*/ x=param[1]; + /*<>*/ return /*<>*/ caml_call1 (filter,x) ?[0,ui] - :0 /*<>*/ } - /*<>*/ /*<>*/ var _iw_=0; - /*<>*/ function _ix_(_iy_) - { /*<>*/ return filter_map(_iw_,_iv_,_iy_)} - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],l$0,_ix_) /*<>*/ } - /*<>*/ var - /*<>*/ _ir_=Lwd[30][2], - /*<>*/ l_filter= - /*<>*/ caml_call2(_ir_,filter,_iq_), - /*<>*/ _is_=Nottui[6][32], - /*<>*/ _it_=Lwd_utils[2], - /*<>*/ _iu_= - /*<>*/ caml_call1(_it_,_is_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][2],l_filter,_iu_) /*<>*/ }} - /*<>*/ function vlist_of_text(opt,_h2_) + :0 /*<>*/ } + /*<>*/ /*<>*/ var _iy_=0; + /*<>*/ function _iz_(_iA_) + { /*<>*/ return filter_map(_iy_,_ix_,_iA_)} + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],l$0,_iz_) /*<>*/ } + /*<>*/ var + /*<>*/ _it_=Lwd[30][2], + /*<>*/ l_filter= + /*<>*/ caml_call2(_it_,filter,_is_), + /*<>*/ _iu_=Nottui[6][32], + /*<>*/ _iv_=Lwd_utils[2], + /*<>*/ _iw_= + /*<>*/ caml_call1(_iv_,_iu_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][2],l_filter,_iw_) /*<>*/ }} + /*<>*/ function vlist_of_text(opt,_h4_) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], focus=sth; else - /*<>*/ var - /*<>*/ _h7_=0, - /*<>*/ _h8_=Nottui[3][1], - focus= /*<>*/ caml_call1(_h8_,_h7_); - /*<>*/ if(_h2_) - /*<>*/ var - /*<>*/ sth$0=_h2_[1], + /*<>*/ var + /*<>*/ _h9_=0, + /*<>*/ _h__=Nottui[3][1], + focus= /*<>*/ caml_call1(_h__,_h9_); + /*<>*/ if(_h4_) + /*<>*/ var + /*<>*/ sth$0=_h4_[1], key_handler=sth$0; else var key_handler= function(param) - { /*<>*/ return -475359645 /*<>*/ }; - /*<>*/ var - /*<>*/ _h3_=Nottui[3][6], - /*<>*/ _h4_= - /*<>*/ caml_call1(_h3_,focus), - /*<>*/ _h5_= - /*<>*/ caml_call1(Lwd[4],_h4_); - /*<>*/ function _h6_(focus,s) - { /*<>*/ var - /*<>*/ _h__=10, - /*<>*/ _h$_=String[16], - /*<>*/ _ia_= - /*<>*/ caml_call2(_h$_,_h__,s); - /*<>*/ function _ib_(eta) + { /*<>*/ return -475359645 /*<>*/ }; + /*<>*/ var + /*<>*/ _h5_=Nottui[3][6], + /*<>*/ _h6_= + /*<>*/ caml_call1(_h5_,focus), + /*<>*/ _h7_= + /*<>*/ caml_call1(Lwd[4],_h6_); + /*<>*/ function _h8_(focus,s) + { /*<>*/ var + /*<>*/ _ia_=10, + /*<>*/ _ib_=String[16], + /*<>*/ _ic_= + /*<>*/ caml_call2(_ib_,_ia_,s); + /*<>*/ function _id_(eta) { /*<>*/ return string$0(0,eta)} - /*<>*/ var - /*<>*/ _ic_=Stdlib_List[19], - /*<>*/ _id_= - /*<>*/ caml_call1(_ic_,_ib_), - /*<>*/ _ie_= - /*<>*/ caml_call1(_id_,_ia_), - /*<>*/ _if_=Nottui[6][35], - /*<>*/ _ig_= - /*<>*/ caml_call1(_if_,_ie_), - /*<>*/ _ih_=[0,focus], - /*<>*/ _ii_=Nottui[6][19]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call2(_ii_,_ih_,key_handler), - _ig_) /*<>*/ } - /*<>*/ return function(_h9_) - { /*<>*/ return caml_call2(_h5_,_h9_,_h6_)}} - /*<>*/ function button_of(ui,f) - { /*<>*/ function _h0_(param) - { /*<>*/ if(62119160 === param[1]) - { /*<>*/ /*<>*/ var _h1_=0; - /*<>*/ /*<>*/ caml_call1 - (f,_h1_); - /*<>*/ return 321312668} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (Nottui[6][19],0,_h0_,ui) /*<>*/ } - /*<>*/ function button(opt,s,f) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ _ie_=Stdlib_List[19], + /*<>*/ _if_= + /*<>*/ caml_call1(_ie_,_id_), + /*<>*/ _ig_= + /*<>*/ caml_call1(_if_,_ic_), + /*<>*/ _ih_=Nottui[6][35], + /*<>*/ _ii_= + /*<>*/ caml_call1(_ih_,_ig_), + /*<>*/ _ij_=[0,focus], + /*<>*/ _ik_=Nottui[6][19]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call2(_ik_,_ij_,key_handler), + _ii_) /*<>*/ } + /*<>*/ return function(_h$_) + { /*<>*/ return caml_call2(_h7_,_h$_,_h8_)}} + /*<>*/ function button_of(ui,f) + { /*<>*/ function _h2_(param) + { /*<>*/ if(62119160 === param[1]) + { /*<>*/ /*<>*/ var _h3_=0; + /*<>*/ /*<>*/ caml_call1 + (f,_h3_); + /*<>*/ return 321312668} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Nottui[6][19],0,_h2_,ui) /*<>*/ } + /*<>*/ function button(opt,s,f) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], attr=sth; else var attr=Style[15]; - /*<>*/ /*<>*/ var _hZ_=[0,attr]; - /*<>*/ return /*<>*/ button_of - ( /*<>*/ string$0(_hZ_,s),f) /*<>*/ } - /*<>*/ function file_select(opt,filter,on_select) + /*<>*/ /*<>*/ var _h1_=[0,attr]; + /*<>*/ return /*<>*/ button_of + ( /*<>*/ string$0(_h1_,s),f) /*<>*/ } + /*<>*/ function file_select(opt,filter,on_select) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], abs=sth; else var abs=0; return function(param) - { /*<>*/ function aux(fold,path) - { /*<>*/ try - { /*<>*/ /*<>*/ var + { /*<>*/ function aux(fold,path) + { /*<>*/ try + { /*<>*/ /*<>*/ var p_rel= - /*<>*/ caml_string_equal(path,cst$16) + /*<>*/ caml_string_equal(path,cst$16) ?cst$17 :path; - /*<>*/ if - ( /*<>*/ runtime.caml_sys_is_directory(p_rel)) - { /*<>*/ /*<>*/ var + /*<>*/ if + ( /*<>*/ runtime.caml_sys_is_directory(p_rel)) + { /*<>*/ /*<>*/ var ui= function(param) - { /*<>*/ var - /*<>*/ arr= - /*<>*/ runtime.caml_sys_read_directory + { /*<>*/ var + /*<>*/ arr= + /*<>*/ runtime.caml_sys_read_directory (p_rel), - /*<>*/ _hM_=Stdlib_Array[11], - /*<>*/ _hN_= - /*<>*/ caml_call1(_hM_,arr), - /*<>*/ _hO_=Stdlib_Filename[4], - /*<>*/ _hP_= - /*<>*/ caml_call1(_hO_,path), - /*<>*/ _hQ_=Stdlib_List[19], - /*<>*/ _hR_= - /*<>*/ caml_call1(_hQ_,_hP_), - /*<>*/ l= - /*<>*/ caml_call1(_hR_,_hN_); - /*<>*/ if(filter) - /*<>*/ var - /*<>*/ f=filter[1], - /*<>*/ _hS_=Stdlib_List[41], - l$0= /*<>*/ caml_call2(_hS_,f,l); + /*<>*/ _hO_=Stdlib_Array[11], + /*<>*/ _hP_= + /*<>*/ caml_call1(_hO_,arr), + /*<>*/ _hQ_=Stdlib_Filename[4], + /*<>*/ _hR_= + /*<>*/ caml_call1(_hQ_,path), + /*<>*/ _hS_=Stdlib_List[19], + /*<>*/ _hT_= + /*<>*/ caml_call1(_hS_,_hR_), + /*<>*/ l= + /*<>*/ caml_call1(_hT_,_hP_); + /*<>*/ if(filter) + /*<>*/ var + /*<>*/ f=filter[1], + /*<>*/ _hU_=Stdlib_List[41], + l$0= /*<>*/ caml_call2(_hU_,f,l); else var l$0=l; - /*<>*/ var - /*<>*/ _hT_=String[9], - /*<>*/ _hU_=Stdlib_List[56], - /*<>*/ _hV_= - /*<>*/ caml_call2(_hU_,_hT_,l$0), - /*<>*/ _hW_=Lwd[1], - /*<>*/ l$1= - /*<>*/ caml_call1(_hW_,_hV_), - /*<>*/ _hX_=1; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ vlist_with - (_fa_,0,function(_hY_){ /*<>*/ return aux(_hX_,_hY_)}), - l$1) /*<>*/ }; - /*<>*/ if(fold) - /*<>*/ var - /*<>*/ _hw_=Stdlib[28], - /*<>*/ _hx_= - /*<>*/ caml_call2(_hw_,path,cst$18), - /*<>*/ _hy_=0, - /*<>*/ _hz_= - /*<>*/ string$0(_hy_,_hx_), - /*<>*/ _hA_=Lwd[1], - /*<>*/ _hB_= - /*<>*/ caml_call1(_hA_,_hz_), - _hC_= /*<>*/ unfoldable(_fb_,_hB_,ui); + /*<>*/ var + /*<>*/ _hV_=String[9], + /*<>*/ _hW_=Stdlib_List[56], + /*<>*/ _hX_= + /*<>*/ caml_call2(_hW_,_hV_,l$0), + /*<>*/ _hY_=Lwd[1], + /*<>*/ l$1= + /*<>*/ caml_call1(_hY_,_hX_), + /*<>*/ _hZ_=1; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ vlist_with + (_fc_,0,function(_h0_){ /*<>*/ return aux(_hZ_,_h0_)}), + l$1) /*<>*/ }; + /*<>*/ if(fold) + /*<>*/ var + /*<>*/ _hy_=Stdlib[28], + /*<>*/ _hz_= + /*<>*/ caml_call2(_hy_,path,cst$18), + /*<>*/ _hA_=0, + /*<>*/ _hB_= + /*<>*/ string$0(_hA_,_hz_), + /*<>*/ _hC_=Lwd[1], + /*<>*/ _hD_= + /*<>*/ caml_call1(_hC_,_hB_), + _hE_= /*<>*/ unfoldable(_fd_,_hD_,ui); else - /*<>*/ var - /*<>*/ _hE_=0, - _hC_= /*<>*/ ui(_hE_); - /*<>*/ var _hD_=_hC_} + /*<>*/ var + /*<>*/ _hG_=0, + _hE_= /*<>*/ ui(_hG_); + /*<>*/ var _hF_=_hE_} else - /*<>*/ var - /*<>*/ _hF_= + /*<>*/ var + /*<>*/ _hH_= function(param) - { /*<>*/ return /*<>*/ caml_call1 - (on_select,path) /*<>*/ }, - /*<>*/ _hG_=Style[1][3], - /*<>*/ _hH_=0, - /*<>*/ _hI_=Style[10], - /*<>*/ _hJ_= - [0, /*<>*/ caml_call2(_hI_,_hH_,_hG_)], - /*<>*/ _hK_= - /*<>*/ button(_hJ_,path,_hF_), - /*<>*/ _hL_=Lwd[1], - _hD_= /*<>*/ caml_call1(_hL_,_hK_); - /*<>*/ return _hD_} + { /*<>*/ return /*<>*/ caml_call1 + (on_select,path) /*<>*/ }, + /*<>*/ _hI_=Style[1][3], + /*<>*/ _hJ_=0, + /*<>*/ _hK_=Style[10], + /*<>*/ _hL_= + [0, /*<>*/ caml_call2(_hK_,_hJ_,_hI_)], + /*<>*/ _hM_= + /*<>*/ button(_hL_,path,_hH_), + /*<>*/ _hN_=Lwd[1], + _hF_= /*<>*/ caml_call1(_hN_,_hM_); + /*<>*/ return _hF_} catch(e) {e = caml_wrap_exception(e); - /*<>*/ var - /*<>*/ _hk_=0, - /*<>*/ _hl_=Stdlib_Printexc[1], - /*<>*/ _hm_= - /*<>*/ caml_call1(_hl_,e), - /*<>*/ _hn_=0, - /*<>*/ _ho_= - [0, /*<>*/ string$0(_hn_,_hm_),_hk_], - /*<>*/ _hp_=NVG[40][18], - /*<>*/ _hq_=0, - /*<>*/ _hr_=Style[9], - /*<>*/ _hs_= - [0, /*<>*/ caml_call2(_hr_,_hq_,_hp_)], - /*<>*/ _ht_= + /*<>*/ var + /*<>*/ _hm_=0, + /*<>*/ _hn_=Stdlib_Printexc[1], + /*<>*/ _ho_= + /*<>*/ caml_call1(_hn_,e), + /*<>*/ _hp_=0, + /*<>*/ _hq_= + [0, /*<>*/ string$0(_hp_,_ho_),_hm_], + /*<>*/ _hr_=NVG[40][18], + /*<>*/ _hs_=0, + /*<>*/ _ht_=Style[9], + /*<>*/ _hu_= + [0, /*<>*/ caml_call2(_ht_,_hs_,_hr_)], + /*<>*/ _hv_= [0, - /*<>*/ caml_call1 - ( /*<>*/ printf(_hs_,_e$_),path), - _ho_], - /*<>*/ _hu_=Nottui[6][35], - /*<>*/ _hv_= - /*<>*/ caml_call1(_hu_,_ht_); - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],_hv_)} /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ caml_call1 + ( /*<>*/ printf(_hu_,_fb_),path), + _hq_], + /*<>*/ _hw_=Nottui[6][35], + /*<>*/ _hx_= + /*<>*/ caml_call1(_hw_,_hv_); + /*<>*/ return /*<>*/ caml_call1 + (Lwd[1],_hx_)} /*<>*/ } + /*<>*/ /*<>*/ var start= - abs? /*<>*/ runtime.caml_sys_getcwd(0):cst$19; - /*<>*/ return /*<>*/ aux(0,start) /*<>*/ }} - /*<>*/ function toggle(st,lbl,f) - { /*<>*/ function mk_but(st_v,lbl_v) - { /*<>*/ var - /*<>*/ _ha_=0, - /*<>*/ _hb_=0, - /*<>*/ _hc_= - [0, /*<>*/ string$0(_hb_,cst$20),_ha_], - /*<>*/ _hd_=st_v?cst$21:cst$22, - _he_=[0,Style[15]], - /*<>*/ _hf_= - [0, /*<>*/ string$0(_he_,_hd_),_hc_], - /*<>*/ _hg_=0, - /*<>*/ _hh_= + abs? /*<>*/ runtime.caml_sys_getcwd(0):cst$19; + /*<>*/ return /*<>*/ aux(0,start) /*<>*/ }} + /*<>*/ function toggle(st,lbl,f) + { /*<>*/ function mk_but(st_v,lbl_v) + { /*<>*/ var + /*<>*/ _hc_=0, + /*<>*/ _hd_=0, + /*<>*/ _he_= + [0, /*<>*/ string$0(_hd_,cst$20),_hc_], + /*<>*/ _hf_=st_v?cst$21:cst$22, + _hg_=[0,Style[15]], + /*<>*/ _hh_= + [0, /*<>*/ string$0(_hg_,_hf_),_he_], + /*<>*/ _hi_=0, + /*<>*/ _hj_= [0, - /*<>*/ caml_call1 - ( /*<>*/ printf(_hg_,_fc_),lbl_v), - _hf_], - /*<>*/ _hi_=Nottui[6][34], - /*<>*/ lbl= - /*<>*/ caml_call1(_hi_,_hh_); - /*<>*/ return /*<>*/ button_of + /*<>*/ caml_call1 + ( /*<>*/ printf(_hi_,_fe_),lbl_v), + _hh_], + /*<>*/ _hk_=Nottui[6][34], + /*<>*/ lbl= + /*<>*/ caml_call1(_hk_,_hj_); + /*<>*/ return /*<>*/ button_of (lbl, function(param) - { /*<>*/ var - /*<>*/ new_st=1 - st_v, - /*<>*/ _hj_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_hj_,st,new_st); - /*<>*/ return /*<>*/ caml_call1 - (f,new_st) /*<>*/ }) /*<>*/ } - /*<>*/ var - /*<>*/ _g__=Lwd[11], - /*<>*/ _g$_= - /*<>*/ caml_call1(_g__,st); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_g$_,lbl,mk_but) /*<>*/ } - /*<>*/ function toggle$0(lbl,v) - { /*<>*/ /*<>*/ var _g9_=Lwd[12]; - /*<>*/ return /*<>*/ toggle - (v,lbl, /*<>*/ caml_call1(_g9_,v)) /*<>*/ } - /*<>*/ function toggle$1(opt,lbl) + { /*<>*/ var + /*<>*/ new_st=1 - st_v, + /*<>*/ _hl_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_hl_,st,new_st); + /*<>*/ return /*<>*/ caml_call1 + (f,new_st) /*<>*/ }) /*<>*/ } + /*<>*/ var + /*<>*/ _ha_=Lwd[11], + /*<>*/ _hb_= + /*<>*/ caml_call1(_ha_,st); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],_hb_,lbl,mk_but) /*<>*/ } + /*<>*/ function toggle$0(lbl,v) + { /*<>*/ /*<>*/ var _g$_=Lwd[12]; + /*<>*/ return /*<>*/ toggle + (v,lbl, /*<>*/ caml_call1(_g$_,v)) /*<>*/ } + /*<>*/ function toggle$1(opt,lbl) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], init=sth; else var init=0; return function(f) - { /*<>*/ var - /*<>*/ _g8_=Lwd[10], - /*<>*/ st= - /*<>*/ caml_call1(_g8_,init); - /*<>*/ return /*<>*/ toggle - (st,lbl,f) /*<>*/ }} - /*<>*/ function adjust_offset(visible,total,off) - { /*<>*/ var - /*<>*/ off$0= + { /*<>*/ var + /*<>*/ _g__=Lwd[10], + /*<>*/ st= + /*<>*/ caml_call1(_g__,init); + /*<>*/ return /*<>*/ toggle + (st,lbl,f) /*<>*/ }} + /*<>*/ function adjust_offset(visible,total,off) + { /*<>*/ var + /*<>*/ off$0= total < off + visible?total - visible:off, - /*<>*/ off$1=off$0 < 0.?0.:off$0; - /*<>*/ return off$1 /*<>*/ } - /*<>*/ /*<>*/ var scrollbar_width=10.; - /*<>*/ function decr_if(x,cond) - { /*<>*/ return cond?x - 10.:x /*<>*/ } - /*<>*/ var - /*<>*/ _fd_=0.4, - /*<>*/ _fe_=NVG[40][14], - /*<>*/ scrollbar_bg= - /*<>*/ caml_call1(_fe_,_fd_), - /*<>*/ _ff_=0.7, - /*<>*/ _fg_=NVG[40][14], - /*<>*/ scrollbar_fg= - /*<>*/ caml_call1(_fg_,_ff_), - /*<>*/ scrollbar_click_step=3., - /*<>*/ scrollbar_wheel_step=8.; - /*<>*/ function hscrollbar(visible,total,offset,set) - { /*<>*/ var - /*<>*/ _gv_=offset * visible, - /*<>*/ prefix=_gv_ / total, - /*<>*/ _gw_=total - offset, - /*<>*/ _gx_=_gw_ - visible, - /*<>*/ _gy_=_gx_ * visible, - /*<>*/ suffix=_gy_ / total, - /*<>*/ _gz_=visible - prefix, - /*<>*/ handle=_gz_ - suffix; - /*<>*/ function render(size,color) - { /*<>*/ var - /*<>*/ _g1_=I[5], - /*<>*/ _g2_= - /*<>*/ caml_call2(_g1_,size,scrollbar_width), - /*<>*/ _g3_=0, - /*<>*/ _g4_=Style[9], - /*<>*/ _g5_= - /*<>*/ caml_call2(_g4_,_g3_,color), - /*<>*/ _g6_=I[6], - /*<>*/ _g7_= - /*<>*/ caml_call2(_g6_,_g5_,_g2_); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_g7_) /*<>*/ } - /*<>*/ function mouse_handler(x,param,_gF_) - { /*<>*/ if(typeof _gF_ === "number") - {if(847852583 === _gF_) - { /*<>*/ if(x < prefix) - { /*<>*/ var - /*<>*/ _gG_=visible / 3., - /*<>*/ _gH_=1., - /*<>*/ _gI_=Stdlib[17], - /*<>*/ _gJ_= - /*<>*/ caml_call2(_gI_,_gH_,_gG_), - /*<>*/ _gK_=offset - _gJ_; - /*<>*/ /*<>*/ caml_call1 - (set,_gK_); - /*<>*/ return 321312668} - /*<>*/ if(prefix + handle < x) - { /*<>*/ var - /*<>*/ _gL_=visible / 3., - /*<>*/ _gM_=1., - /*<>*/ _gN_=Stdlib[17], - /*<>*/ _gO_= - /*<>*/ caml_call2(_gN_,_gM_,_gL_), - /*<>*/ _gP_=offset + _gO_; - /*<>*/ /*<>*/ caml_call1 - (set,_gP_); - /*<>*/ return 321312668} - /*<>*/ /*<>*/ var - _gQ_= - function(param,_g0_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + /*<>*/ off$1=off$0 < 0.?0.:off$0; + /*<>*/ return off$1 /*<>*/ } + /*<>*/ /*<>*/ var scrollbar_width=10.; + /*<>*/ function decr_if(x,cond) + { /*<>*/ return cond?x - 10.:x /*<>*/ } + /*<>*/ var + /*<>*/ _ff_=0.4, + /*<>*/ _fg_=NVG[40][14], + /*<>*/ scrollbar_bg= + /*<>*/ caml_call1(_fg_,_ff_), + /*<>*/ _fh_=0.7, + /*<>*/ _fi_=NVG[40][14], + /*<>*/ scrollbar_fg= + /*<>*/ caml_call1(_fi_,_fh_), + /*<>*/ scrollbar_click_step=3., + /*<>*/ scrollbar_wheel_step=8.; + /*<>*/ function hscrollbar(visible,total,offset,set) + { /*<>*/ var + /*<>*/ _gx_=offset * visible, + /*<>*/ prefix=_gx_ / total, + /*<>*/ _gy_=total - offset, + /*<>*/ _gz_=_gy_ - visible, + /*<>*/ _gA_=_gz_ * visible, + /*<>*/ suffix=_gA_ / total, + /*<>*/ _gB_=visible - prefix, + /*<>*/ handle=_gB_ - suffix; + /*<>*/ function render(size,color) + { /*<>*/ var + /*<>*/ _g3_=I[5], + /*<>*/ _g4_= + /*<>*/ caml_call2(_g3_,size,scrollbar_width), + /*<>*/ _g5_=0, + /*<>*/ _g6_=Style[9], + /*<>*/ _g7_= + /*<>*/ caml_call2(_g6_,_g5_,color), + /*<>*/ _g8_=I[6], + /*<>*/ _g9_= + /*<>*/ caml_call2(_g8_,_g7_,_g4_); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][16],_g9_) /*<>*/ } + /*<>*/ function mouse_handler(x,param,_gH_) + { /*<>*/ if(typeof _gH_ === "number") + {if(847852583 === _gH_) + { /*<>*/ if(x < prefix) + { /*<>*/ var + /*<>*/ _gI_=visible / 3., + /*<>*/ _gJ_=1., + /*<>*/ _gK_=Stdlib[17], + /*<>*/ _gL_= + /*<>*/ caml_call2(_gK_,_gJ_,_gI_), + /*<>*/ _gM_=offset - _gL_; + /*<>*/ /*<>*/ caml_call1 + (set,_gM_); + /*<>*/ return 321312668} + /*<>*/ if(prefix + handle < x) + { /*<>*/ var + /*<>*/ _gN_=visible / 3., + /*<>*/ _gO_=1., + /*<>*/ _gP_=Stdlib[17], + /*<>*/ _gQ_= + /*<>*/ caml_call2(_gP_,_gO_,_gN_), + /*<>*/ _gR_=offset + _gQ_; + /*<>*/ /*<>*/ caml_call1 + (set,_gR_); + /*<>*/ return 321312668} + /*<>*/ /*<>*/ var + _gS_= + function(param,_g2_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(x$0,param) - { /*<>*/ var - /*<>*/ _gX_=x$0 - x, - /*<>*/ _gY_=_gX_ * total, - /*<>*/ _gZ_=_gY_ / visible; - /*<>*/ return /*<>*/ caml_call1 - (set,offset + _gZ_) /*<>*/ }, - _gQ_]]}} + { /*<>*/ var + /*<>*/ _gZ_=x$0 - x, + /*<>*/ _g0_=_gZ_ * total, + /*<>*/ _g1_=_g0_ / visible; + /*<>*/ return /*<>*/ caml_call1 + (set,offset + _g1_) /*<>*/ }, + _gS_]]}} else - if(-67548115 === _gF_[1]) - { /*<>*/ var - /*<>*/ dir=_gF_[2], - /*<>*/ dir$0=759637122 <= dir?1.:-1., - /*<>*/ _gR_=visible / 8., - /*<>*/ _gS_=1., - /*<>*/ _gT_=Stdlib[17], - /*<>*/ _gU_= - /*<>*/ caml_call2(_gT_,_gS_,_gR_), - /*<>*/ _gV_=dir$0 * _gU_, - /*<>*/ _gW_=offset + _gV_; - /*<>*/ /*<>*/ caml_call1 - (set,_gW_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ var - /*<>*/ symbol=Nottui[6][28], - /*<>*/ _gA_= - /*<>*/ render(suffix,scrollbar_bg), - /*<>*/ _gB_= - /*<>*/ render(handle,scrollbar_fg), - /*<>*/ _gC_= - /*<>*/ render(prefix,scrollbar_bg), - /*<>*/ _gD_= - /*<>*/ caml_call2(symbol,_gC_,_gB_), - /*<>*/ _gE_= - /*<>*/ caml_call2(symbol,_gD_,_gA_); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],mouse_handler,_gE_) /*<>*/ } - /*<>*/ function vscrollbar(visible,total,offset,set) - { /*<>*/ var - /*<>*/ _fU_=offset * visible, - /*<>*/ prefix=_fU_ / total, - /*<>*/ _fV_=total - offset, - /*<>*/ _fW_=_fV_ - visible, - /*<>*/ _fX_=_fW_ * visible, - /*<>*/ suffix=_fX_ / total, - /*<>*/ _fY_=visible - prefix, - /*<>*/ handle=_fY_ - suffix; - /*<>*/ function render(size,color) - { /*<>*/ var - /*<>*/ _go_=1., - /*<>*/ _gp_=32, - /*<>*/ _gq_=0, - /*<>*/ _gr_=Style[9], - /*<>*/ _gs_= - [0, /*<>*/ caml_call2(_gr_,_gq_,color)], - /*<>*/ _gt_=I[26], - /*<>*/ _gu_= - /*<>*/ caml_call4(_gt_,_gs_,_gp_,_go_,size); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_gu_) /*<>*/ } - /*<>*/ function mouse_handler(param,y,_f4_) - { /*<>*/ if(typeof _f4_ === "number") - {if(847852583 === _f4_) - { /*<>*/ if(y < prefix) - { /*<>*/ var - /*<>*/ _f5_=visible / 3., - /*<>*/ _f6_=1., - /*<>*/ _f7_=Stdlib[17], - /*<>*/ _f8_= - /*<>*/ caml_call2(_f7_,_f6_,_f5_), - /*<>*/ _f9_=offset - _f8_; - /*<>*/ /*<>*/ caml_call1 - (set,_f9_); - /*<>*/ return 321312668} - /*<>*/ if(prefix + handle < y) - { /*<>*/ var - /*<>*/ _f__=visible / 3., - /*<>*/ _f$_=1., - /*<>*/ _ga_=Stdlib[17], - /*<>*/ _gb_= - /*<>*/ caml_call2(_ga_,_f$_,_f__), - /*<>*/ _gc_=offset + _gb_; - /*<>*/ /*<>*/ caml_call1 - (set,_gc_); - /*<>*/ return 321312668} - /*<>*/ /*<>*/ var - _gd_= - function(param,_gn_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + if(-67548115 === _gH_[1]) + { /*<>*/ var + /*<>*/ dir=_gH_[2], + /*<>*/ dir$0=759637122 <= dir?1.:-1., + /*<>*/ _gT_=visible / 8., + /*<>*/ _gU_=1., + /*<>*/ _gV_=Stdlib[17], + /*<>*/ _gW_= + /*<>*/ caml_call2(_gV_,_gU_,_gT_), + /*<>*/ _gX_=dir$0 * _gW_, + /*<>*/ _gY_=offset + _gX_; + /*<>*/ /*<>*/ caml_call1 + (set,_gY_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ var + /*<>*/ symbol=Nottui[6][28], + /*<>*/ _gC_= + /*<>*/ render(suffix,scrollbar_bg), + /*<>*/ _gD_= + /*<>*/ render(handle,scrollbar_fg), + /*<>*/ _gE_= + /*<>*/ render(prefix,scrollbar_bg), + /*<>*/ _gF_= + /*<>*/ caml_call2(symbol,_gE_,_gD_), + /*<>*/ _gG_= + /*<>*/ caml_call2(symbol,_gF_,_gC_); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],mouse_handler,_gG_) /*<>*/ } + /*<>*/ function vscrollbar(visible,total,offset,set) + { /*<>*/ var + /*<>*/ _fW_=offset * visible, + /*<>*/ prefix=_fW_ / total, + /*<>*/ _fX_=total - offset, + /*<>*/ _fY_=_fX_ - visible, + /*<>*/ _fZ_=_fY_ * visible, + /*<>*/ suffix=_fZ_ / total, + /*<>*/ _f0_=visible - prefix, + /*<>*/ handle=_f0_ - suffix; + /*<>*/ function render(size,color) + { /*<>*/ var + /*<>*/ _gq_=1., + /*<>*/ _gr_=32, + /*<>*/ _gs_=0, + /*<>*/ _gt_=Style[9], + /*<>*/ _gu_= + [0, /*<>*/ caml_call2(_gt_,_gs_,color)], + /*<>*/ _gv_=I[26], + /*<>*/ _gw_= + /*<>*/ caml_call4(_gv_,_gu_,_gr_,_gq_,size); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][16],_gw_) /*<>*/ } + /*<>*/ function mouse_handler(param,y,_f6_) + { /*<>*/ if(typeof _f6_ === "number") + {if(847852583 === _f6_) + { /*<>*/ if(y < prefix) + { /*<>*/ var + /*<>*/ _f7_=visible / 3., + /*<>*/ _f8_=1., + /*<>*/ _f9_=Stdlib[17], + /*<>*/ _f__= + /*<>*/ caml_call2(_f9_,_f8_,_f7_), + /*<>*/ _f$_=offset - _f__; + /*<>*/ /*<>*/ caml_call1 + (set,_f$_); + /*<>*/ return 321312668} + /*<>*/ if(prefix + handle < y) + { /*<>*/ var + /*<>*/ _ga_=visible / 3., + /*<>*/ _gb_=1., + /*<>*/ _gc_=Stdlib[17], + /*<>*/ _gd_= + /*<>*/ caml_call2(_gc_,_gb_,_ga_), + /*<>*/ _ge_=offset + _gd_; + /*<>*/ /*<>*/ caml_call1 + (set,_ge_); + /*<>*/ return 321312668} + /*<>*/ /*<>*/ var + _gf_= + function(param,_gp_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(param,y$0) - { /*<>*/ var - /*<>*/ _gk_=y$0 - y, - /*<>*/ _gl_=_gk_ * total, - /*<>*/ _gm_=_gl_ / visible; - /*<>*/ return /*<>*/ caml_call1 - (set,offset + _gm_) /*<>*/ }, - _gd_]]}} + { /*<>*/ var + /*<>*/ _gm_=y$0 - y, + /*<>*/ _gn_=_gm_ * total, + /*<>*/ _go_=_gn_ / visible; + /*<>*/ return /*<>*/ caml_call1 + (set,offset + _go_) /*<>*/ }, + _gf_]]}} else - if(-67548115 === _f4_[1]) - { /*<>*/ var - /*<>*/ dir=_f4_[2], - /*<>*/ dir$0=759637122 <= dir?1.:-1., - /*<>*/ _ge_=visible / 8., - /*<>*/ _gf_=1., - /*<>*/ _gg_=Stdlib[17], - /*<>*/ _gh_= - /*<>*/ caml_call2(_gg_,_gf_,_ge_), - /*<>*/ _gi_=dir$0 * _gh_, - /*<>*/ _gj_=offset + _gi_; - /*<>*/ /*<>*/ caml_call1 - (set,_gj_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ var - /*<>*/ symbol=Nottui[6][29], - /*<>*/ _fZ_= - /*<>*/ render(suffix,scrollbar_bg), - /*<>*/ _f0_= - /*<>*/ render(handle,scrollbar_fg), - /*<>*/ _f1_= - /*<>*/ render(prefix,scrollbar_bg), - /*<>*/ _f2_= - /*<>*/ caml_call2(symbol,_f1_,_f0_), - /*<>*/ _f3_= - /*<>*/ caml_call2(symbol,_f2_,_fZ_); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],mouse_handler,_f3_) /*<>*/ } - /*<>*/ function scrollbox(t) - { /*<>*/ var - /*<>*/ _fo_=Lwd[10], - /*<>*/ state_var= - /*<>*/ caml_call1(_fo_,_fh_); - /*<>*/ function update_size(w,h) - { /*<>*/ var - /*<>*/ _fR_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fR_,state_var), - /*<>*/ _fS_=state[1] != w?1:0, - /*<>*/ _fT_=_fS_ || (state[2] != h?1:0); - /*<>*/ return _fT_ - ? /*<>*/ caml_call2 + if(-67548115 === _f6_[1]) + { /*<>*/ var + /*<>*/ dir=_f6_[2], + /*<>*/ dir$0=759637122 <= dir?1.:-1., + /*<>*/ _gg_=visible / 8., + /*<>*/ _gh_=1., + /*<>*/ _gi_=Stdlib[17], + /*<>*/ _gj_= + /*<>*/ caml_call2(_gi_,_gh_,_gg_), + /*<>*/ _gk_=dir$0 * _gj_, + /*<>*/ _gl_=offset + _gk_; + /*<>*/ /*<>*/ caml_call1 + (set,_gl_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ var + /*<>*/ symbol=Nottui[6][29], + /*<>*/ _f1_= + /*<>*/ render(suffix,scrollbar_bg), + /*<>*/ _f2_= + /*<>*/ render(handle,scrollbar_fg), + /*<>*/ _f3_= + /*<>*/ render(prefix,scrollbar_bg), + /*<>*/ _f4_= + /*<>*/ caml_call2(symbol,_f3_,_f2_), + /*<>*/ _f5_= + /*<>*/ caml_call2(symbol,_f4_,_f1_); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],mouse_handler,_f5_) /*<>*/ } + /*<>*/ function scrollbox(t) + { /*<>*/ var + /*<>*/ _fq_=Lwd[10], + /*<>*/ state_var= + /*<>*/ caml_call1(_fq_,_fj_); + /*<>*/ function update_size(w,h) + { /*<>*/ var + /*<>*/ _fT_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fT_,state_var), + /*<>*/ _fU_=state[1] != w?1:0, + /*<>*/ _fV_=_fU_ || (state[2] != h?1:0); + /*<>*/ return _fV_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,w,h,state[3],state[4]]) - :_fT_ /*<>*/ } - /*<>*/ function measure_size(body) - { /*<>*/ var - /*<>*/ _fM_=0, - /*<>*/ _fN_=0, - /*<>*/ _fO_=0, - /*<>*/ _fP_=Nottui[6][25], - /*<>*/ _fQ_= - /*<>*/ caml_call8 - (_fP_,_fl_,_fk_,_fj_,_fi_,_fO_,_fN_,_fM_,body); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][21],update_size,_fQ_) /*<>*/ } - /*<>*/ function compose_bars(body,state) - { /*<>*/ var - /*<>*/ _fs_=Nottui[6][11], - /*<>*/ bh= - /*<>*/ caml_call1(_fs_,body), - /*<>*/ _ft_=Nottui[6][9], - /*<>*/ bw= - /*<>*/ caml_call1(_ft_,body), - /*<>*/ hvisible=state[1] < bw?1:0, - /*<>*/ vvisible=state[2] < bh?1:0, - /*<>*/ hvisible$0= + :_fV_ /*<>*/ } + /*<>*/ function measure_size(body) + { /*<>*/ var + /*<>*/ _fO_=0, + /*<>*/ _fP_=0, + /*<>*/ _fQ_=0, + /*<>*/ _fR_=Nottui[6][25], + /*<>*/ _fS_= + /*<>*/ caml_call8 + (_fR_,_fn_,_fm_,_fl_,_fk_,_fQ_,_fP_,_fO_,body); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][21],update_size,_fS_) /*<>*/ } + /*<>*/ function compose_bars(body,state) + { /*<>*/ var + /*<>*/ _fu_=Nottui[6][11], + /*<>*/ bh= + /*<>*/ caml_call1(_fu_,body), + /*<>*/ _fv_=Nottui[6][9], + /*<>*/ bw= + /*<>*/ caml_call1(_fv_,body), + /*<>*/ hvisible=state[1] < bw?1:0, + /*<>*/ vvisible=state[2] < bh?1:0, + /*<>*/ hvisible$0= hvisible || (vvisible?state[1] == bw?1:0:vvisible), - /*<>*/ vvisible$0= + /*<>*/ vvisible$0= vvisible || (hvisible$0?state[2] == bh?1:0:hvisible$0), - /*<>*/ _fu_=state[1], - /*<>*/ state_w= - /*<>*/ decr_if(_fu_,vvisible$0), - /*<>*/ _fv_=state[2], - /*<>*/ state_h= - /*<>*/ decr_if(_fv_,hvisible$0), - /*<>*/ _fw_=state[3], - /*<>*/ state_x= - /*<>*/ adjust_offset(state_w,bw,_fw_), - /*<>*/ _fx_=state[4], - /*<>*/ state_y= - /*<>*/ adjust_offset(state_h,bh,_fx_); - /*<>*/ function crop(b) - { /*<>*/ var - /*<>*/ _fK_=Nottui[6][20], - /*<>*/ _fL_= - /*<>*/ caml_call3(_fK_,state_x,state_y,b); - /*<>*/ return /*<>*/ caml_call8 + /*<>*/ _fw_=state[1], + /*<>*/ state_w= + /*<>*/ decr_if(_fw_,vvisible$0), + /*<>*/ _fx_=state[2], + /*<>*/ state_h= + /*<>*/ decr_if(_fx_,hvisible$0), + /*<>*/ _fy_=state[3], + /*<>*/ state_x= + /*<>*/ adjust_offset(state_w,bw,_fy_), + /*<>*/ _fz_=state[4], + /*<>*/ state_y= + /*<>*/ adjust_offset(state_h,bh,_fz_); + /*<>*/ function crop(b) + { /*<>*/ var + /*<>*/ _fM_=Nottui[6][20], + /*<>*/ _fN_= + /*<>*/ caml_call3(_fM_,state_x,state_y,b); + /*<>*/ return /*<>*/ caml_call8 (Nottui[6][25], - _fn_, - _fm_, + _fp_, + _fo_, [0,scrollbar_width], [0,scrollbar_width], 0, 0, 0, - _fL_) /*<>*/ } - /*<>*/ function set_vscroll(y) - { /*<>*/ var - /*<>*/ _fI_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fI_,state_var), - /*<>*/ _fJ_=state[4] != y?1:0; - /*<>*/ return _fJ_ - ? /*<>*/ caml_call2 + _fN_) /*<>*/ } + /*<>*/ function set_vscroll(y) + { /*<>*/ var + /*<>*/ _fK_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fK_,state_var), + /*<>*/ _fL_=state[4] != y?1:0; + /*<>*/ return _fL_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,state[1],state[2],state[3],y]) - :_fJ_ /*<>*/ } - /*<>*/ function set_hscroll(x) - { /*<>*/ var - /*<>*/ _fG_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fG_,state_var), - /*<>*/ _fH_=state[3] != x?1:0; - /*<>*/ return _fH_ - ? /*<>*/ caml_call2 + :_fL_ /*<>*/ } + /*<>*/ function set_hscroll(x) + { /*<>*/ var + /*<>*/ _fI_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fI_,state_var), + /*<>*/ _fJ_=state[3] != x?1:0; + /*<>*/ return _fJ_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,state[1],state[2],x,state[4]]) - :_fH_ /*<>*/ } - /*<>*/ var - /*<>*/ symbol=Nottui[6][29], - /*<>*/ symbol$0=Nottui[6][28]; - /*<>*/ if(hvisible$0) + :_fJ_ /*<>*/ } + /*<>*/ var + /*<>*/ symbol=Nottui[6][29], + /*<>*/ symbol$0=Nottui[6][28]; + /*<>*/ if(hvisible$0) {if(vvisible$0) - { /*<>*/ var - /*<>*/ _fy_=Nottui[6][17], - /*<>*/ _fz_= - /*<>*/ caml_call2 - (_fy_,scrollbar_width,scrollbar_width), - /*<>*/ _fA_= - /*<>*/ hscrollbar + { /*<>*/ var + /*<>*/ _fA_=Nottui[6][17], + /*<>*/ _fB_= + /*<>*/ caml_call2 + (_fA_,scrollbar_width,scrollbar_width), + /*<>*/ _fC_= + /*<>*/ hscrollbar (state_w,bw,state_x,set_hscroll), - /*<>*/ _fB_= - /*<>*/ caml_call2(symbol$0,_fA_,_fz_), - /*<>*/ _fC_= - /*<>*/ vscrollbar + /*<>*/ _fD_= + /*<>*/ caml_call2(symbol$0,_fC_,_fB_), + /*<>*/ _fE_= + /*<>*/ vscrollbar (state_h,bh,state_y,set_vscroll), - /*<>*/ _fD_= - /*<>*/ crop(body); - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ _fF_= + /*<>*/ crop(body); + /*<>*/ return /*<>*/ caml_call2 (symbol, - /*<>*/ caml_call2(symbol$0,_fD_,_fC_), - _fB_)} - /*<>*/ /*<>*/ var - _fE_= - /*<>*/ hscrollbar + /*<>*/ caml_call2(symbol$0,_fF_,_fE_), + _fD_)} + /*<>*/ /*<>*/ var + _fG_= + /*<>*/ hscrollbar (state_w,bw,state_x,set_hscroll); - /*<>*/ return /*<>*/ caml_call2 - (symbol, /*<>*/ crop(body),_fE_)} + /*<>*/ return /*<>*/ caml_call2 + (symbol, /*<>*/ crop(body),_fG_)} if(vvisible$0) - { /*<>*/ /*<>*/ var - _fF_= - /*<>*/ vscrollbar + { /*<>*/ /*<>*/ var + _fH_= + /*<>*/ vscrollbar (state_h,bh,state_y,set_vscroll); - /*<>*/ return /*<>*/ caml_call2 - (symbol$0, /*<>*/ crop(body),_fF_)} - /*<>*/ return body /*<>*/ } - /*<>*/ function _fp_(ui,size) - { /*<>*/ return /*<>*/ measure_size - ( /*<>*/ compose_bars(ui,size)) /*<>*/ } - /*<>*/ var - /*<>*/ _fq_=Lwd[11], - /*<>*/ _fr_= - /*<>*/ caml_call1(_fq_,state_var); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],t,_fr_,_fp_) /*<>*/ } - /*<>*/ var - /*<>*/ Nottui_widgets= + /*<>*/ return /*<>*/ caml_call2 + (symbol$0, /*<>*/ crop(body),_fH_)} + /*<>*/ return body /*<>*/ } + /*<>*/ function _fr_(ui,size) + { /*<>*/ return /*<>*/ measure_size + ( /*<>*/ compose_bars(ui,size)) /*<>*/ } + /*<>*/ var + /*<>*/ _fs_=Lwd[11], + /*<>*/ _ft_= + /*<>*/ caml_call1(_fs_,state_var); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],t,_ft_,_fr_) /*<>*/ } + /*<>*/ var + /*<>*/ Nottui_widgets= [0, string$0, int$0, @@ -573194,11 +573372,13 @@ row_of_cursor, line_of_cursor, cursor_move, - multifield_of_string, - focus_compare, + edit_area_of_string, + focus_val, find_focus, - focus_move, + focus_handle_compare, + focused_row_of_table, edit_area, + tree_nav, tabs, unfoldable, hbox, @@ -573222,7 +573402,7 @@ hscrollbar, vscrollbar, scrollbox], - /*<>*/ Dune_exe_Human= + /*<>*/ Dune_exe_Human= [0, Logs_reporter, Git_af, @@ -573241,9 +573421,9 @@ Nottui, Nottui_lwt, Nottui_widgets]; - /*<>*/ /*<>*/ runtime.caml_register_global - (490,Dune_exe_Human,"Dune__exe__Human"); - /*<>*/ return /*<>*/ } + /*<>*/ /*<>*/ runtime.caml_register_global + (482,Dune_exe_Human,"Dune__exe__Human"); + /*<>*/ return /*<>*/ } (globalThis)); @@ -573284,27 +573464,24 @@ cst_Sorry_your_browser_does_no= caml_string_of_jsbytes("Sorry your browser does not support WebGL"), cst_canvas=caml_string_of_jsbytes("canvas"), - cst_edit_me_derp_derp_derp_her= - caml_string_of_jsbytes - ("edit me?\nderp derp derp\nherp herp derp\nding dong beep beep"), Dune_exe_Human=global_data.Dune__exe__Human, Lwt=global_data.Lwt, Gg=global_data.Gg, Logs=global_data.Logs, + Lwd=global_data.Lwd, + Lwt_stream=global_data.Lwt_stream, + Js_of_ocaml_lwt_Lwt_js_events=global_data.Js_of_ocaml_lwt__Lwt_js_events, Js_of_ocaml_Dom_html=global_data.Js_of_ocaml__Dom_html, Graphv_webgl=global_data.Graphv_webgl, - Lwt_stream=global_data.Lwt_stream, Js_of_ocaml_WebGL=global_data.Js_of_ocaml__WebGL, Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, Stdlib=global_data.Stdlib, Stdlib_Printf=global_data.Stdlib__Printf, - Lwd=global_data.Lwd, - Js_of_ocaml_lwt_Lwt_js_events=global_data.Js_of_ocaml_lwt__Lwt_js_events, - _ab_= + _D_= [0, [11,caml_string_of_jsbytes("Drawing finished: p'="),[15,0]], caml_string_of_jsbytes("Drawing finished: p'=%a")], - _aa_= + _C_= [0, [11, caml_string_of_jsbytes("Drawing image: p="), @@ -573333,280 +573510,280 @@ /*<>*/ _i_=Logs[18]; /*<>*/ /*<>*/ caml_call1(_i_,_h_); /*<>*/ function scale_canvas(canvas) - { /*<>*/ function _bu_(x) + { /*<>*/ function _bx_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,746139867,1), x) /*<>*/ } /*<>*/ /*<>*/ var - _bv_= + _by_= Js_of_ocaml_Dom_html[8]; - /*<>*/ function _bw_(t0,param) + /*<>*/ function _bz_(t0,param) { /*<>*/ return t0.devicePixelRatio} - var dpr=_bw_(_bv_,_bu_); - function _bx_(x) + var dpr=_bz_(_by_,_bx_); + function _bA_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,718768073,2), x) /*<>*/ } - function _by_(t1,param){ /*<>*/ return t1.getBoundingClientRect()} - var rect=_by_(canvas,_bx_); - function _bz_(x) + function _bB_(t1,param){ /*<>*/ return t1.getBoundingClientRect()} + var rect=_bB_(canvas,_bA_); + function _bC_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-944764921,3), x) /*<>*/ } - function _bA_(t3,param){ /*<>*/ return t3.left} - var _bB_=_bA_(rect,_bz_); - function _bC_(x) + function _bD_(t3,param){ /*<>*/ return t3.left} + var _bE_=_bD_(rect,_bC_); + function _bF_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-379319332,4), x) /*<>*/ } - function _bD_(t2,param){ /*<>*/ return t2.right} + function _bG_(t2,param){ /*<>*/ return t2.right} /*<>*/ var - _bE_=_bD_(rect,_bC_), - /*<>*/ width=_bE_ - _bB_; - /*<>*/ function _bF_(x) + _bH_=_bG_(rect,_bF_), + /*<>*/ width=_bH_ - _bE_; + /*<>*/ function _bI_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5793429,5), x) /*<>*/ } - /*<>*/ function _bG_(t5,param) + /*<>*/ function _bJ_(t5,param) { /*<>*/ return t5.top} - var _bH_=_bG_(rect,_bF_); - function _bI_(x) + var _bK_=_bJ_(rect,_bI_); + function _bL_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-445061397,6), x) /*<>*/ } - function _bJ_(t4,param){ /*<>*/ return t4.bottom} + function _bM_(t4,param){ /*<>*/ return t4.bottom} /*<>*/ var - _bK_=_bJ_(rect,_bI_), - /*<>*/ height=_bK_ - _bH_; - /*<>*/ function _bL_(x) + _bN_=_bM_(rect,_bL_), + /*<>*/ height=_bN_ - _bK_; + /*<>*/ function _bO_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-899500538,7), x) /*<>*/ } /*<>*/ /*<>*/ var - _bM_= + _bP_= width * dpr | 0; - /*<>*/ function _bN_(t7,t6,param) + /*<>*/ function _bQ_(t7,t6,param) { /*<>*/ return t7.width = t6} - _bN_(canvas,_bM_,_bL_); - function _bO_(x) + _bQ_(canvas,_bP_,_bO_); + function _bR_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,38537191,8), x) /*<>*/ } /*<>*/ /*<>*/ var - _bP_= + _bS_= height * dpr | 0; - /*<>*/ function _bQ_(t9,t8,param) + /*<>*/ function _bT_(t9,t8,param) { /*<>*/ return t9.height = t8} - _bQ_(canvas,_bP_,_bO_); + _bT_(canvas,_bS_,_bR_); /*<>*/ var - _bR_=width | 0, - _bS_=Stdlib_Printf[4], - /*<>*/ _bT_= - /*<>*/ caml_call2(_bS_,_j_,_bR_), + _bU_=width | 0, + _bV_=Stdlib_Printf[4], + /*<>*/ _bW_= + /*<>*/ caml_call2(_bV_,_j_,_bU_), /*<>*/ width$0= - /*<>*/ caml_jsstring_of_string(_bT_), - /*<>*/ _bU_=height | 0, - /*<>*/ _bV_=Stdlib_Printf[4], - /*<>*/ _bW_= - /*<>*/ caml_call2(_bV_,_k_,_bU_), + /*<>*/ caml_jsstring_of_string(_bW_), + /*<>*/ _bX_=height | 0, + /*<>*/ _bY_=Stdlib_Printf[4], + /*<>*/ _bZ_= + /*<>*/ caml_call2(_bY_,_k_,_bX_), /*<>*/ height$0= - /*<>*/ caml_jsstring_of_string(_bW_); - /*<>*/ function _bX_(x) + /*<>*/ caml_jsstring_of_string(_bZ_); + /*<>*/ function _b0_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-899500538,9), x) /*<>*/ } - /*<>*/ function _bY_(x) + /*<>*/ function _b1_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,69051697,10), x) /*<>*/ } - /*<>*/ function _bZ_(t10,param) + /*<>*/ function _b2_(t10,param) { /*<>*/ return t10.style} - var _b0_=_bZ_(canvas,_bY_); - function _b1_(t12,t11,param){ /*<>*/ return t12.width = t11} - _b1_(_b0_,width$0,_bX_); - function _b2_(x) + var _b3_=_b2_(canvas,_b1_); + function _b4_(t12,t11,param){ /*<>*/ return t12.width = t11} + _b4_(_b3_,width$0,_b0_); + function _b5_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,38537191,11), x) /*<>*/ } - function _b3_(x) + function _b6_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,69051697,12), x) /*<>*/ } - function _b4_(t13,param){ /*<>*/ return t13.style} - var _b5_=_b4_(canvas,_b3_); + function _b7_(t13,param){ /*<>*/ return t13.style} + var _b8_=_b7_(canvas,_b6_); return function(t15,t14,param){ /*<>*/ return t15.height = t14} - (_b5_,height$0,_b2_) /*<>*/ } + (_b8_,height$0,_b5_) /*<>*/ } /*<>*/ function webgl_initialize(canvas) { /*<>*/ /*<>*/ scale_canvas(canvas); /*<>*/ /*<>*/ var attrs= Js_of_ocaml_WebGL[1]; - /*<>*/ function _bn_(x) + /*<>*/ function _bq_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,245244,13), x) /*<>*/ } /*<>*/ /*<>*/ var - _bo_= + _br_= Js_of_ocaml_Js[7]; - /*<>*/ function _bp_(t17,t16,param) + /*<>*/ function _bs_(t17,t16,param) { /*<>*/ return t17.stencil = t16} - _bp_(attrs,_bo_,_bn_); + _bs_(attrs,_br_,_bq_); /*<>*/ var - _bq_=Js_of_ocaml_WebGL[4], - /*<>*/ _br_= - /*<>*/ caml_call2(_bq_,canvas,attrs), - /*<>*/ _bs_=Js_of_ocaml_Js[5][10], + _bt_=Js_of_ocaml_WebGL[4], + /*<>*/ _bu_= + /*<>*/ caml_call2(_bt_,canvas,attrs), + /*<>*/ _bv_=Js_of_ocaml_Js[5][10], /*<>*/ match= - /*<>*/ caml_call1(_bs_,_br_); + /*<>*/ caml_call1(_bv_,_bu_); /*<>*/ if(match) { /*<>*/ /*<>*/ var ctx=match[1]; /*<>*/ return ctx} - /*<>*/ /*<>*/ var _bt_=Stdlib[46]; + /*<>*/ /*<>*/ var _bw_=Stdlib[46]; /*<>*/ /*<>*/ caml_call1 - (_bt_,cst_Sorry_your_browser_does_no); + (_bw_,cst_Sorry_your_browser_does_no); /*<>*/ throw Stdlib[3] /*<>*/ } /*<>*/ function graphv_initialize(webgl_ctx) { /*<>*/ var - /*<>*/ _bb_=Graphv_webgl[1][7], - /*<>*/ _bc_=Graphv_webgl[1][6], - /*<>*/ _bd_=Graphv_webgl[1][4], - /*<>*/ _be_= - /*<>*/ caml_call2(_bd_,_bc_,_bb_), - /*<>*/ _bf_=Graphv_webgl[2], + /*<>*/ _be_=Graphv_webgl[1][7], + /*<>*/ _bf_=Graphv_webgl[1][6], + /*<>*/ _bg_=Graphv_webgl[1][4], + /*<>*/ _bh_= + /*<>*/ caml_call2(_bg_,_bf_,_be_), + /*<>*/ _bi_=Graphv_webgl[2], /*<>*/ vg= - /*<>*/ caml_call2(_bf_,_be_,webgl_ctx), - /*<>*/ _bg_=Graphv_webgl[40][11]; + /*<>*/ caml_call2(_bi_,_bh_,webgl_ctx), + /*<>*/ _bj_=Graphv_webgl[40][11]; /*<>*/ /*<>*/ caml_call3 - (_bg_,vg,cst_sans$0,cst_sans); - /*<>*/ function _bh_(x) + (_bj_,vg,cst_sans$0,cst_sans); + /*<>*/ function _bk_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,526823574,14), x) /*<>*/ } /*<>*/ var - /*<>*/ _bi_=1., - /*<>*/ _bj_=0.32, - /*<>*/ _bk_=0.3, - /*<>*/ _bl_=0.3; - /*<>*/ function _bm_(t22,t18,t19,t20,t21,param) + /*<>*/ _bl_=1., + /*<>*/ _bm_=0.32, + /*<>*/ _bn_=0.3, + /*<>*/ _bo_=0.3; + /*<>*/ function _bp_(t22,t18,t19,t20,t21,param) { /*<>*/ return t22.clearColor(t18,t19,t20,t21)} - _bm_(webgl_ctx,_bl_,_bk_,_bj_,_bi_,_bh_); + _bp_(webgl_ctx,_bo_,_bn_,_bm_,_bl_,_bk_); return vg /*<>*/ } /*<>*/ function request_animation_frame(param) { /*<>*/ var - /*<>*/ _a6_=0, - /*<>*/ _a7_=Lwt[1], + /*<>*/ _a9_=0, + /*<>*/ _a__=Lwt[1], /*<>*/ match= - /*<>*/ caml_call1(_a7_,_a6_), + /*<>*/ caml_call1(_a__,_a9_), /*<>*/ s=match[2], /*<>*/ t=match[1]; - /*<>*/ function _a8_(x) + /*<>*/ function _a$_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,240126520,15), x) /*<>*/ } - /*<>*/ function _a9_(time) + /*<>*/ function _ba_(time) { /*<>*/ return /*<>*/ caml_call2 (Lwt[52],s,time) /*<>*/ } /*<>*/ var - /*<>*/ _a__= - /*<>*/ runtime.caml_js_wrap_callback(_a9_), - /*<>*/ _a$_=Js_of_ocaml_Dom_html[8]; - /*<>*/ function _ba_(t24,t23,param) + /*<>*/ _bb_= + /*<>*/ runtime.caml_js_wrap_callback(_ba_), + /*<>*/ _bc_=Js_of_ocaml_Dom_html[8]; + /*<>*/ function _bd_(t24,t23,param) { /*<>*/ return t24.requestAnimationFrame(t23)} - _ba_(_a$_,_a__,_a8_); + _bd_(_bc_,_bb_,_a$_); return t /*<>*/ } /*<>*/ function render_stream (canvas,webgl_ctx,vg,render) - { /*<>*/ function _aD_(i) - { /*<>*/ function _aE_(time) - { /*<>*/ function _aH_(x) + { /*<>*/ function _aG_(i) + { /*<>*/ function _aH_(time) + { /*<>*/ function _aK_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-933531251,16), x) /*<>*/ } - /*<>*/ function _aI_(x) + /*<>*/ function _aL_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,93357775,17), x) /*<>*/ } - /*<>*/ function _aJ_(t27,param) + /*<>*/ function _aM_(t27,param) { /*<>*/ return t27.STENCIL_BUFFER_BIT} - var _aK_=_aJ_(webgl_ctx,_aI_); - function _aL_(x) + var _aN_=_aM_(webgl_ctx,_aL_); + function _aO_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,14129686,18), x) /*<>*/ } - function _aM_(t26,param){ /*<>*/ return t26.DEPTH_BUFFER_BIT} - var _aN_=_aM_(webgl_ctx,_aL_); - function _aO_(x) + function _aP_(t26,param){ /*<>*/ return t26.DEPTH_BUFFER_BIT} + var _aQ_=_aP_(webgl_ctx,_aO_); + function _aR_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-570873226,19), x) /*<>*/ } - function _aP_(t25,param){ /*<>*/ return t25.COLOR_BUFFER_BIT} - var _aQ_=_aP_(webgl_ctx,_aO_) | _aN_ | _aK_; - function _aR_(t29,t28,param){ /*<>*/ return t29.clear(t28)} - _aR_(webgl_ctx,_aQ_,_aH_); - function _aS_(x) + function _aS_(t25,param){ /*<>*/ return t25.COLOR_BUFFER_BIT} + var _aT_=_aS_(webgl_ctx,_aR_) | _aQ_ | _aN_; + function _aU_(t29,t28,param){ /*<>*/ return t29.clear(t28)} + _aU_(webgl_ctx,_aT_,_aK_); + function _aV_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,746139867,20), x) /*<>*/ } - var _aT_=Js_of_ocaml_Dom_html[8]; - function _aU_(t30,param){ /*<>*/ return t30.devicePixelRatio} - var device_ratio=_aU_(_aT_,_aS_); - function _aV_(x) + var _aW_=Js_of_ocaml_Dom_html[8]; + function _aX_(t30,param){ /*<>*/ return t30.devicePixelRatio} + var device_ratio=_aX_(_aW_,_aV_); + function _aY_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,38537191,21), x) /*<>*/ } - function _aW_(t32,param){ /*<>*/ return t32.height} - var _aX_=_aW_(canvas,_aV_); - function _aY_(x) + function _aZ_(t32,param){ /*<>*/ return t32.height} + var _a0_=_aZ_(canvas,_aY_); + function _a1_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-899500538,22), x) /*<>*/ } - function _aZ_(t31,param){ /*<>*/ return t31.width} - var _a0_=_aZ_(canvas,_aY_),_a1_=Graphv_webgl[25]; + function _a2_(t31,param){ /*<>*/ return t31.width} + var _a3_=_a2_(canvas,_a1_),_a4_=Graphv_webgl[25]; /*<>*/ /*<>*/ caml_call4 - (_a1_,vg,_a0_,_aX_,device_ratio); + (_a4_,vg,_a3_,_a0_,device_ratio); /*<>*/ /*<>*/ var - _a2_= + _a5_= Graphv_webgl[28][7]; /*<>*/ /*<>*/ caml_call3 - (_a2_,vg,device_ratio,device_ratio); + (_a5_,vg,device_ratio,device_ratio); /*<>*/ var - /*<>*/ _a3_=Gg[5][5], - /*<>*/ _a4_=[0,time]; + /*<>*/ _a6_=Gg[5][5], + /*<>*/ _a7_=[0,time]; /*<>*/ /*<>*/ caml_call4 - (render,vg,_a4_,_a3_,i); + (render,vg,_a7_,_a6_,i); /*<>*/ /*<>*/ var - _a5_= + _a8_= Graphv_webgl[27]; /*<>*/ /*<>*/ caml_call1 - (_a5_,vg); + (_a8_,vg); /*<>*/ return Lwt[36] /*<>*/ } /*<>*/ var - /*<>*/ _aF_=0, - /*<>*/ _aG_= - /*<>*/ request_animation_frame(_aF_); + /*<>*/ _aI_=0, + /*<>*/ _aJ_= + /*<>*/ request_animation_frame(_aI_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_aG_,_aE_) /*<>*/ } + (Lwt[33][1],_aJ_,_aH_) /*<>*/ } /*<>*/ return /*<>*/ caml_call2 - (Lwt_stream[53],0,_aD_) /*<>*/ } + (Lwt_stream[53],0,_aG_) /*<>*/ } /*<>*/ var /*<>*/ _l_=Js_of_ocaml_Dom_html[4], /*<>*/ canvas= @@ -573640,128 +573817,141 @@ /*<>*/ caml_call1(_y_,_x_), /*<>*/ _A_=Dune_exe_Human[17][9], /*<>*/ wm= - /*<>*/ caml_call1(_A_,_z_), - /*<>*/ _B_=0, - /*<>*/ _C_=0, - /*<>*/ _D_=0, - /*<>*/ _E_=Dune_exe_Human[17][29], - /*<>*/ _F_= - [0, - /*<>*/ caml_call2 - (_E_,_D_,cst_edit_me_derp_derp_derp_her)], - /*<>*/ _G_=Dune_exe_Human[17][33], - /*<>*/ ui= - /*<>*/ caml_call3(_G_,_F_,_C_,_B_), - /*<>*/ _H_=Dune_exe_Human[15][6][25], - /*<>*/ _I_=[0,gravity_pad], - /*<>*/ _J_=[0,gravity_crop]; - /*<>*/ function arg(_aC_,_aB_,_aA_,_az_) - { /*<>*/ return caml_call6(_H_,_aC_,_aB_,_aA_,_az_,_I_,_J_)} - /*<>*/ function _K_(eta) - { /*<>*/ return caml_call2(arg(0,0,0,0),0,eta)} - /*<>*/ var - /*<>*/ _L_=Lwd[3], - /*<>*/ _M_= - /*<>*/ caml_call2(_L_,ui,_K_), - /*<>*/ _N_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_N_,body,_M_); - /*<>*/ var - /*<>*/ _O_=Dune_exe_Human[17][10], - /*<>*/ root= - /*<>*/ caml_call1(_O_,wm), - /*<>*/ _P_=0, - /*<>*/ _Q_=Lwt_stream[4], - /*<>*/ match= - /*<>*/ caml_call1(_Q_,_P_), - /*<>*/ push_event=match[2], - /*<>*/ events=match[1]; - /*<>*/ function _R_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,38537191,23), - x) /*<>*/ } - /*<>*/ function _S_(t34,param) - { /*<>*/ return t34.height} - var _T_=_S_(canvas,_R_); - function _U_(x) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_get_public_method - (x,-899500538,24), - x) /*<>*/ } - function _V_(t33,param){ /*<>*/ return t33.width} - /*<>*/ var - _W_=_V_(canvas,_U_), - _X_=Gg[5][2], - /*<>*/ _Y_= - /*<>*/ caml_call2(_X_,_W_,_T_), - /*<>*/ _Z_=0, - /*<>*/ ___=Dune_exe_Human[16][2], - /*<>*/ images= - /*<>*/ caml_call5(___,vg,_Z_,_Y_,events,root); - /*<>*/ function _$_(param) - { /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ render_stream - (canvas, - webgl_ctx, - vg, - function(vg,opt,p,i) - { /*<>*/ function _aq_(m) - { /*<>*/ var - /*<>*/ _aw_=[0,Dune_exe_Human[12][5]], - /*<>*/ _ax_=Dune_exe_Human[14][27][5], - /*<>*/ _ay_= - /*<>*/ caml_call1(_ax_,_aw_); - /*<>*/ return /*<>*/ caml_call7 - (m,0,0,_aa_,Gg[2][52],p,_ay_,i) /*<>*/ } - /*<>*/ var - /*<>*/ _ar_=0, - /*<>*/ _as_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_as_,_ar_,_aq_); - /*<>*/ var - /*<>*/ _at_=Dune_exe_Human[12][5], - /*<>*/ _au_=Dune_exe_Human[14][27][8], - /*<>*/ p$0= - /*<>*/ caml_call4(_au_,vg,_at_,p,i); - /*<>*/ function _av_(m) - { /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_ab_,Gg[2][52],p$0) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Logs[14],0,_av_) /*<>*/ }), - images) /*<>*/ } - /*<>*/ /*<>*/ var - _ac_= - Js_of_ocaml_lwt_Lwt_js_events[5]; - /*<>*/ /*<>*/ caml_call1(_ac_,_$_); - /*<>*/ function _ad_(ev,param) - { /*<>*/ var - /*<>*/ _an_=Dune_exe_Human[6][1], - /*<>*/ _ao_= - [0,[0,3752319, /*<>*/ caml_call1(_an_,ev)]], - /*<>*/ _ap_= - /*<>*/ caml_call1(push_event,_ao_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_ap_) /*<>*/ } - /*<>*/ var - /*<>*/ _ae_=Js_of_ocaml_Dom_html[2], - /*<>*/ _af_=0, - /*<>*/ _ag_=0, - /*<>*/ _ah_=0, - /*<>*/ _ai_=0, - /*<>*/ _aj_=Js_of_ocaml_Dom_html[15][12], - /*<>*/ _ak_=Js_of_ocaml_lwt_Lwt_js_events[1], - /*<>*/ _al_= - /*<>*/ caml_call1(_ak_,_aj_), - /*<>*/ _am_=Js_of_ocaml_lwt_Lwt_js_events[4]; - /*<>*/ /*<>*/ caml_call7 - (_am_,_al_,_ai_,_ah_,_ag_,_af_,_ae_,_ad_); - /*<>*/ /*<>*/ var + /*<>*/ caml_call1(_A_,_z_); + /*<>*/ function _B_(test_tree) + { /*<>*/ function _I_(ui) + { /*<>*/ var + /*<>*/ _N_=Dune_exe_Human[15][6][25], + /*<>*/ _O_=[0,gravity_pad], + /*<>*/ _P_=[0,gravity_crop]; + /*<>*/ function arg(_aF_,_aE_,_aD_,_aC_) + { /*<>*/ return caml_call6(_N_,_aF_,_aE_,_aD_,_aC_,_O_,_P_)} + /*<>*/ function _Q_(eta) + { /*<>*/ return caml_call2(arg(0,0,0,0),0,eta)} + /*<>*/ var + /*<>*/ _R_=Lwd[3], + /*<>*/ _S_= + /*<>*/ caml_call2(_R_,ui,_Q_), + /*<>*/ _T_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_T_,body,_S_); + /*<>*/ var + /*<>*/ _U_=Dune_exe_Human[17][10], + /*<>*/ root= + /*<>*/ caml_call1(_U_,wm), + /*<>*/ _V_=0, + /*<>*/ _W_=Lwt_stream[4], + /*<>*/ match= + /*<>*/ caml_call1(_W_,_V_), + /*<>*/ push_event=match[2], + /*<>*/ events=match[1]; + /*<>*/ function _X_(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,38537191,23), + x) /*<>*/ } + /*<>*/ function _Y_(t34,param) + { /*<>*/ return t34.height} + var _Z_=_Y_(canvas,_X_); + function ___(x) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_get_public_method + (x,-899500538,24), + x) /*<>*/ } + function _$_(t33,param){ /*<>*/ return t33.width} + /*<>*/ var + _aa_=_$_(canvas,___), + _ab_=Gg[5][2], + /*<>*/ _ac_= + /*<>*/ caml_call2(_ab_,_aa_,_Z_), + /*<>*/ _ad_=0, + /*<>*/ _ae_=Dune_exe_Human[16][2], + /*<>*/ images= + /*<>*/ caml_call5(_ae_,vg,_ad_,_ac_,events,root); + /*<>*/ function _af_(param) + { /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ render_stream + (canvas, + webgl_ctx, + vg, + function(vg,opt,p,i) + { /*<>*/ function _at_(m) + { /*<>*/ var + /*<>*/ _az_=[0,Dune_exe_Human[12][5]], + /*<>*/ _aA_=Dune_exe_Human[14][27][5], + /*<>*/ _aB_= + /*<>*/ caml_call1(_aA_,_az_); + /*<>*/ return /*<>*/ caml_call7 + (m,0,0,_C_,Gg[2][52],p,_aB_,i) /*<>*/ } + /*<>*/ var + /*<>*/ _au_=0, + /*<>*/ _av_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_av_,_au_,_at_); + /*<>*/ var + /*<>*/ _aw_=Dune_exe_Human[12][5], + /*<>*/ _ax_=Dune_exe_Human[14][27][8], + /*<>*/ p$0= + /*<>*/ caml_call4(_ax_,vg,_aw_,p,i); + /*<>*/ function _ay_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_D_,Gg[2][52],p$0) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Logs[14],0,_ay_) /*<>*/ }), + images) /*<>*/ } + /*<>*/ /*<>*/ var + _ag_= + Js_of_ocaml_lwt_Lwt_js_events[5]; + /*<>*/ /*<>*/ caml_call1 + (_ag_,_af_); + /*<>*/ function _ah_(ev,param) + { /*<>*/ var + /*<>*/ _aq_=Dune_exe_Human[6][1], + /*<>*/ _ar_= + [0,[0,3752319, /*<>*/ caml_call1(_aq_,ev)]], + /*<>*/ _as_= + /*<>*/ caml_call1(push_event,_ar_); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_as_) /*<>*/ } + /*<>*/ var + /*<>*/ _ai_=Js_of_ocaml_Dom_html[2], + /*<>*/ _aj_=0, + /*<>*/ _ak_=0, + /*<>*/ _al_=0, + /*<>*/ _am_=0, + /*<>*/ _an_=Js_of_ocaml_Dom_html[15][12], + /*<>*/ _ao_=Js_of_ocaml_lwt_Lwt_js_events[1], + /*<>*/ _ap_= + /*<>*/ caml_call1(_ao_,_an_); + /*<>*/ return /*<>*/ caml_call7 + (Js_of_ocaml_lwt_Lwt_js_events[4], + _ap_, + _am_, + _al_, + _ak_, + _aj_, + _ai_, + _ah_) /*<>*/ } + /*<>*/ var + /*<>*/ _J_=0, + /*<>*/ _K_=0, + /*<>*/ _L_=Dune_exe_Human[17][35], + /*<>*/ _M_= + /*<>*/ caml_call3(_L_,_K_,test_tree,_J_); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_M_,_I_) /*<>*/ } + /*<>*/ var + /*<>*/ _E_=0, + /*<>*/ _F_=Dune_exe_Human[4][6], + /*<>*/ _G_= /*<>*/ caml_call1(_F_,_E_), + /*<>*/ _H_=Lwt[33][1]; + /*<>*/ /*<>*/ caml_call2(_H_,_G_,_B_); + /*<>*/ /*<>*/ var Dune_exe_Boot_js= [0]; - /*<>*/ /*<>*/ runtime.caml_register_global - (52,Dune_exe_Boot_js,"Dune__exe__Boot_js"); - /*<>*/ return /*<>*/ } + /*<>*/ /*<>*/ runtime.caml_register_global + (51,Dune_exe_Boot_js,"Dune__exe__Boot_js"); + /*<>*/ return /*<>*/ } (globalThis)); @@ -573784,4 +573974,4 @@ (globalThis)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJib290X2pzLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2J5dGVzX2JvdW5kX2Vycm9yIiwiY2FtbF9ieXRlc191bnNhZmVfZ2V0IiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2NyZWF0ZV9ieXRlcyIsImNhbWxfbWxfYnl0ZXNfbGVuZ3RoIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiQXJyYXkiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsImNhbWxfYmxpdF9zdHJpbmciLCJlIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsIm9rIiwiZmlsZSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmlsZSIsImZkIiwicmVxdWlyZSIsImVyciIsImJ1Zl9vZmZzZXQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJvIiwianNfc3RhdHMiLCJ0b19kaXIiLCJ0YXJnZXQiLCJsaW5rIiwiZmlsZV9raW5kIiwiY2FtbF9nZXRfcm9vdCIsImNhbWxfZmFpbHdpdGgiLCJjYW1sX3Jvb3QiLCJqc29vX21vdW50X3BvaW50IiwicmVzb2x2ZV9mc19kZXZpY2UiLCJjYW1sX3N5c19pc19kaXJlY3RvcnkiLCJjYW1sX3JhaXNlX25vdF9mb3VuZCIsImNhbWxfc3lzX2dldGVudiIsImciLCJ1bmRlZmluZWQiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsIk1sT2JqZWN0VGFibGUiLCJOYWl2ZUxvb2t1cCIsIm9ianMiLCJjYW1sX3N5c19yZW5hbWUiLCJvX3Jvb3QiLCJuX3Jvb3QiLCJjYW1sX2xvZzEwX2Zsb2F0IiwidW5peF91bmxpbmsiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwidW5peF9ybWRpciIsImNhbWxfbWxfcmVmaWxsX2lucHV0IiwiY2hhbiIsInN0ciIsInN0cl9sZW4iLCJjYW1sX21sX2NoYW5uZWxzIiwiY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0IiwiY2hhbmlkIiwiY2FtbF9hcnJheV9ib3VuZF9lcnJvciIsImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lIiwiY2FtbF9nY19taW5vciIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfaW50X2NvbXBhcmUiLCJiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nIiwiYmExIiwiYmExX29mZiIsImJhMiIsImJhMl9vZmYiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJ0bXAiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXkiLCJ1bml4X2dldHRpbWVvZmRheSIsIkRhdGUiLCJjYW1sX211bCIsImNhbWxfaGFzaF9taXhfaW50IiwibnVtX2RpZ2l0c19uYXQiLCJuYXQiLCJjYW1sX2hhc2hfbmF0IiwiY2FtbF9jYWxsX2dlbiIsImFyZ3NMZW4iLCJleHRyYV9hcmdzIiwiYXJndW1lbnRzIiwibmFyZ3MiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX2djX2NvdW50ZXJzIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsInVuaXhfaGFzX3N5bWxpbmsiLCJ1bml0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsInBvczIiLCJzbGljZSIsImJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlcyIsInNyYyIsInNyY19vZmYiLCJkc3QiLCJkc3Rfb2ZmIiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsIkluZmluaXR5IiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJpbnQzMmEiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImV4cCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJkYXRhIiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiTnVtYmVyIiwiY2FtbF9ieXRlc19jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsInoiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0IiwiYXJyIiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImNhcnJ5IiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJib3Jyb3ciLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJjYW1sX2NvbXBhcmUiLCJjYW1sX2ZyZXNoX29vX2lkIiwiY2FtbF9pbnQ2NF90b19mbG9hdCIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwiY2FtbF9vYmpfYmxvY2siLCJjYW1sX2dyX2NsZWFyX2dyYXBoIiwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciIsImJzIiwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCIsIl91bml0IiwibHhvcl9kaWdpdF9uYXQiLCJjYW1sX29ial9hZGRfb2Zmc2V0IiwiY2FtbF9maW5hbF9yZWxlYXNlIiwiY2FtbF9qc190b19hcnJheSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQxNiIsImkxNiIsImNhbWxfc3RyaW5nX3NldDE2IiwiY2FtbF9ieXRlc19zZXQ2NCIsImk2NCIsImNhbWxfaW50NjRfYnN3YXAiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2ZpbGxfc3RyaW5nIiwiY2FtbF9nY19tYWpvciIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYXNlIiwiYmFja3RyayIsInVuaXhfZ2V0dWlkIiwiY2FtbF9zeXNfZmlsZV9leGlzdHMiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9hcnJheV9zdWIiLCJjYW1sX2J5dGVzX2VxdWFsIiwiY2FtbF9ncl9zaXplX3giLCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIiwib3NfdHlwZSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4iLCJjYW1sX2Nvc2hfZmxvYXQiLCJjYW1sX2VwaGVfa2V5X29mZnNldCIsImNhbWxfd2Vha19jaGVjayIsImNhbWxfZXBoZV9jaGVja19rZXkiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwiY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIiwiY2FtbF9sZXNzZXF1YWwiLCJjYW1sX2Fjb3NoX2Zsb2F0IiwiY2FtbF9tbF9mbHVzaCIsIm91dHB1dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF93ZWFrX2dldCIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsIndpbl9jbGVhbnVwIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9zeXNfaXNhdHR5IiwiX2NoYW4iLCJpc19kaWdpdF96ZXJvIiwidW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nIiwiY2FtbF9qc19zZXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwidW5peF9sb2NhbHRpbWUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJjYW1sX3dlYWtfY3JlYXRlIiwiY2FtbF9lcGhlX2NyZWF0ZSIsImNhbWxfanNfdG9fYnl0ZV9zdHJpbmciLCJ1bml4X21rdGltZSIsInRtIiwidG0yIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9oeXBvdF9mbG9hdCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJieXRlczIiLCJiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzIiwiY2FtbF9lcmZjX2Zsb2F0IiwiY2FtbF9ncl9maWxsX3BvbHkiLCJhciIsImNhbWxfZ2NfcXVpY2tfc3RhdCIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzIiwibnRoX2RpZ2l0X25hdCIsImNhbWxfYXJyYXlfYmxpdCIsImNhbWxfZmxvYXRfb2Zfc3RyaW5nIiwibTMiLCJtYW50aXNzYSIsInBhcnNlSW50IiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIiwiY2FtbF9saXN0X3RvX2pzX2FycmF5IiwiY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUiLCJjYW1sX291dHB1dF92YWwiLCJXcml0ZXIiLCJ2YWx1ZSIsImZsYWdzIiwibm9fc2hhcmluZyIsImNsb3N1cmVzIiwiaW50ZXJuX29ial90YWJsZSIsIm1lbW8iLCJleGlzdGluZ19vZmZzZXQiLCJleHRlcm5fcmVjIiwib3BzIiwic3pfMzJfNjQiLCJoZWFkZXJfcG9zIiwib2xkX3BvcyIsInR5cGVfb2ZfdiIsImNhbWxfc3RyaW5nX29mX2FycmF5IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIiwiY2FtbF9yYWlzZV9ub3RfYV9kaXIiLCJjYW1sX3N5c19zeXN0ZW1fY29tbWFuZCIsImNtZCIsInVuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbiIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsInVuaXhfbHN0YXQiLCJ1bml4X2xzdGF0XzY0IiwianNfcHJpbnRfc3Rkb3V0IiwiY2FtbF9jb3B5c2lnbl9mbG9hdCIsImNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSIsImNhbWxfbWQ1X2J5dGVzIiwiYWRkIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsIm1kNSIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9pbnQ2NF9hZGQiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImJpdHMiLCJvbmUiLCJjYW1sX2dyX3NpemVfeSIsImNhbWxfbWxfcG9zX2luIiwiY2FtbF9pbnQ2NF9hbmQiLCJjYW1sX3N5c19jb25zdF93b3JkX3NpemUiLCJjYW1sX3N0ZF9vdXRwdXQiLCJzbGVuIiwianNfcHJpbnRfc3RkZXJyIiwiY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCIsImlkeCIsImluZm8iLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwiTWxTdHJpbmdSZWFkZXIiLCJjYW1sX2Zsb2F0X29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciIsIl9tYWdpYyIsIl9ibG9ja19sZW4iLCJudW1fb2JqZWN0cyIsIl9zaXplXzMyIiwiX3NpemVfNjQiLCJvYmpfY291bnRlciIsImludGVybl9yZWMiLCJoZWFkZXIiLCJleHBlY3RlZF9zaXplIiwiY2FtbF9zdHJpbmdfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJwcmVmaXhfbWF0Y2giLCJvcCIsInNhcmciLCJ1YXJnIiwiZ3JvdXAiLCJFcnJvciIsInJlX3NlYXJjaF9iYWNrd2FyZCIsImNhbWxfanNfZnJvbV9zdHJpbmciLCJjYW1sX2JhX3N1YiIsImNoYW5nZWRfZGltIiwibXVsIiwibmV3X2RpbXMiLCJuZXdfZGF0YSIsImNhbWxfZ2NfZnVsbF9tYWpvciIsImNhbWxfYnl0ZXNfc2V0MzIiLCJpMzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsInN0YXJ0IiwiY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24iLCJoYW5kbGVyIiwiYXRfZXhpdCIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfZXBoZV9jaGVja19kYXRhIiwiY2FtbF9ieXRlc19nZXQxNiIsImNhbWxfb2JqX21ha2VfZm9yd2FyZCIsImNhbWxfanNfZnJvbV9ib29sIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lIiwiY2FtbF9leHAyX2Zsb2F0IiwiY2FtbF9ncl9jbG9zZV9ncmFwaCIsImNhbWxfY3JlYXRlX3N0cmluZyIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfbWQ1X2NoYW4iLCJjaGFuX2xlbiIsImNhbWxfb2JqX2R1cCIsImNhbWxfd2Vha19nZXRfY29weSIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsInN0cmluZyIsImpzc3RyaW5nIiwiaWQiLCJjYW1sX21sX291dHB1dCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImwxIiwibDIiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsImNhbWxfanNfZXhwciIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyIsImNhbWxfZXZlbnRsb2dfcmVzdW1lIiwiY2FtbF9oYXNoX3VuaXZfcGFyYW0iLCJjb3VudCIsImxpbWl0Iiwib2JqIiwiaGFzaF9hY2N1IiwiaGFzaF9hdXgiLCJqc2J5dGVzIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJlbmQiLCJjYW1sX3B1cmVfanNfZXhwciIsImJsaXRfbmF0IiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIiwiY2FtbF9wYXJzZV9kaWdpdCIsImNhbWxfaW50NjRfb2Zfc3RyaW5nIiwiYmFzZTY0IiwidGhyZXNob2xkIiwiY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmciLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9tbF9pbnB1dF9jaGFyIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNhbWxfYmFfZ2V0XzIiLCJ3aW5faGFuZGxlX2ZkIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsIndpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbCIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsImNhbWxfZ3JfYXJjX2F1eCIsImN0eCIsImN4IiwiY3kiLCJyeSIsInJ4Iiwicm90IiwieFBvcyIsInlQb3MiLCJ4UG9zX3ByZXYiLCJ5UG9zX3ByZXYiLCJzcGFjZSIsImRlbHRhIiwiY2FtbF9ncl9maWxsX2FyYyIsImNhbWxfYmFfc2xpY2UiLCJudW1faW5kcyIsInN1Yl9kaW1zIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsImdldDMyIiwiY2FtbF9pbnB1dF92YWx1ZSIsImNhbWxfYmFfa2luZCIsImNhbWxfanNfZnVuX2NhbGwiLCJjYW1sX2djX21ham9yX3NsaWNlIiwid29yayIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsInVuaXhfZ210aW1lIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsInVuaXhfdGltZSIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJyZV9zdHJpbmdfbWF0Y2giLCJCaWdTdHJpbmdSZWFkZXIiLCJjYW1sX2dyX2R1bXBfaW1hZ2UiLCJjYW1sX2JhX2dldF9nZW5lcmljIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmciLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9maWxsX2JpZ3N0cmluZyIsImJ1Zl9vZmYiLCJidWZfbGVuIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfanNfdG9fYm9vbCIsImNhbWxfZ3JfY3JlYXRlX2ltYWdlIiwiY2FtbF9lcGhlX2dldF9rZXlfY29weSIsImNhbWxfbGVzc3RoYW4iLCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IiwiYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZyIsImJhX29mZiIsInN0cl9vZmYiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJiaWdzdHJpbmdhZl9tZW1jaHIiLCJjaHIiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImZzIiwiY2hhbm5lbCIsImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSIsImNhbWxfcm91bmRfZmxvYXQiLCJ1bml4X3N0YXQiLCJ1bml4X3N0YXRfNjQiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IiwiYXJpdHkiLCJjYW1sX2djX21pbm9yX3dvcmRzIiwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2siLCJsYW5kX2RpZ2l0X25hdCIsImNhbWxfaW50NjRfbW9kIiwidW5peF9yZWFkbGluayIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwid2luX3N0YXJ0dXAiLCJjYW1sX2JhX3NldF8zIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmciLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImRpZ2l0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJjYW1sX3N0cmluZ19zZXQ2NCIsImNhbWxfZ3Jfc3RhdGVfY3JlYXRlIiwiY2FudmFzIiwiY29udGV4dCIsImNhbWxfanNfd3JhcF9jYWxsYmFjayIsImNhbWxfZ3JfZHJhd19hcmMiLCJjYW1sX2JhX21hcF9maWxlIiwidmZkIiwic2hhcmVkIiwiY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZSIsImFyZ24iLCJ1bml4X3N5bWxpbmsiLCJzcmNfcm9vdCIsImRzdF9yb290IiwiY2FtbF9iYV9jcmVhdGVfZnJvbSIsImRhdGExIiwiZGF0YTIiLCJqc3R5cCIsImNhbWxfdGFuaF9mbG9hdCIsImNhbWxfZ3JfZHJhd19zdHIiLCJkeCIsImNhbWxfZ3JfZHJhd19zdHJpbmciLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmciLCJjYW1sX21sX3Bvc19pbl82NCIsImNhbWxfZ3JfZHJhd19pbWFnZSIsImltYWdlIiwiY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUiLCJfY2hhbm5lbCIsImNhbWxfc3RyaW5nX3NldCIsImNhbWxfc3lzX3JtZGlyIiwiY2FtbF9tbF9wb3Nfb3V0IiwiY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCIsImNhbWxfYnl0ZXNfbm90ZXF1YWwiLCJjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyIsImNhbWxfanNfb2JqZWN0IiwiY2FtbF9iYV9jcmVhdGUiLCJkaW1zX21sIiwiY2FtbF93ZWFrX2JsaXQiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfYnN3YXAxNiIsImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlIiwiY2FtbF9maW5hbF9yZWdpc3RlciIsImNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZyIsImFsaWdubWVudCIsImNhbWxfZ3JfZHJhd19yZWN0IiwiY2FtbF9zdHJpbmdfZ2V0MTYiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJ1bml4X2dldHB3dWlkIiwiY2FtbF9jb21wYXJlX2JpZ3N0cmluZyIsImJ1ZjEiLCJidWYxX29mZiIsImJ1ZjIiLCJidWYyX29mZiIsImNhbWxfaGFzaF9taXhfc3RyaW5nIiwiY2FtbF9oYXNoIiwic2VlZCIsInF1ZXVlIiwicmQiLCJ3ciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibmVnIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsInVuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJjYW1sX2FycmF5X2NvbmNhdCIsImNhbWxfZ3Jfb3Blbl9ncmFwaCIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9lcGhlX3NldF9kYXRhIiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nIiwiY2FtbF9pbnQ2NF9vciIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwiLCJzZXRfZGlnaXRfbmF0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfc2V0MzIiLCJjYW1sX3BhcnNlX2VuZ2luZSIsInRhYmxlcyIsImVudiIsIkVSUkNPREUiLCJsb29wIiwidGVzdHNoaWZ0Iiwic2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwibjEiLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsInplcm8kNCIsIm9uZSQ0IiwiaSIsImVyYXNlX3JlbCIsInJlc3QiLCJyZXN0JDAiLCJyZXN0JDEiLCJyZXN0JDIiLCJyZXN0JDMiLCJyZXN0JDQiLCJyZXN0JDUiLCJyZXN0JDYiLCJyZXN0JDciLCJ0eSIsInJlc3QkOCIsInR5MSIsInJlc3QkOSIsInJlc3QkMTAiLCJyZXN0JDExIiwicmVzdCQxMiIsInJlc3QkMTMiLCJjb25jYXRfZm10dHkiLCJmbXR0eTEiLCJmbXR0eTIiLCJ0eTIiLCJjb25jYXRfZm10IiwiZm10MSIsImZtdDIiLCJwYWQiLCJwYWQkMCIsInByZWMiLCJwYWQkMSIsImljb252IiwicHJlYyQwIiwicGFkJDIiLCJpY29udiQwIiwicHJlYyQxIiwicGFkJDMiLCJpY29udiQxIiwicHJlYyQyIiwicGFkJDQiLCJpY29udiQyIiwicHJlYyQzIiwicGFkJDUiLCJmY29udiIsInBhZCQ2Iiwic3RyIiwiY2hyIiwiZm10dHkiLCJwYWQkNyIsImZtdHR5JDAiLCJwYWQkOCIsInJlc3QkMTQiLCJyZXN0JDE1IiwicmVzdCQxNiIsImZtdGluZ19saXQiLCJyZXN0JDE3IiwiZm10aW5nX2dlbiIsInJlc3QkMTgiLCJyZXN0JDE5IiwiY2hhcl9zZXQiLCJ3aWR0aF9vcHQiLCJyZXN0JDIwIiwiY291bnRlciIsInJlc3QkMjEiLCJyZXN0JDIyIiwiaWduIiwicmVzdCQyMyIsImYiLCJhcml0eSIsInYiLCJyIiwiY3VyIiwic2VlbiIsIm4iLCJmYWlsd2l0aCIsInMiLCJpbnZhbGlkX2FyZyIsIm1pbiIsIngiLCJ5IiwibWF4IiwiYWJzIiwibG5vdCIsIm1heF9pbnQiLCJtaW5faW50IiwiaW5maW5pdHkiLCJuZWdfaW5maW5pdHkiLCJuYW4iLCJtYXhfZmxvYXQiLCJtaW5fZmxvYXQiLCJlcHNpbG9uIiwiczEiLCJzMiIsImwxIiwibDIiLCJjaGFyX29mX2ludCIsInN0cmluZ19vZl9ib29sIiwiYiIsImJvb2xfb2Zfc3RyaW5nIiwiYm9vbF9vZl9zdHJpbmdfb3B0Iiwic3RyaW5nX29mX2ludCIsImludF9vZl9zdHJpbmdfb3B0IiwidmFsaWRfZmxvYXRfbGV4ZW0iLCJsIiwibG9vcCIsImkkMCIsImkkMSIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInNjYW4iLCJhY2N1IiwiYWNjdSQwIiwicmVzIiwiYmVnIiwibGVuJDIiLCJhY2N1JDEiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvX29mX3JhdyIsImluZm8iLCJzdGFydF9lbnYiLCJvYmoiLCJvZl92YWwiLCJzbG90IiwiaWQiLCJleHRlbnNpb25fY29uc3RydWN0b3IiLCJleHRlbnNpb25fbmFtZSIsImV4dGVuc2lvbl9pZCIsIm1heF9lcGhlX2xlbmd0aCIsImNyZWF0ZSIsImxlbmd0aCIsInJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IiwibyIsIm1zZyIsImdldF9rZXkiLCJnZXRfa2V5X2NvcHkiLCJzZXRfa2V5IiwidW5zZXRfa2V5IiwiY2hlY2tfa2V5IiwiYmxpdF9rZXkiLCJvMSIsIm8yIiwicmFpc2VfdW5kZWZpbmVkIiwiZm9yY2VfbGF6eV9ibG9jayIsImJsayIsImNsb3N1cmUiLCJyZXN1bHQiLCJmb3JjZV92YWxfbGF6eV9ibG9jayIsImZvcmNlIiwibHp2IiwidCIsImZvcmNlX3ZhbCIsInRvX2xhenkiLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcCQwIiwibWFwX3ZhbCIsImVtcHR5IiwicmV0dXJuJDAiLCJjb25zIiwibmV4dCIsImFwcGVuZCQwIiwic2VxMSIsInNlcTIiLCJtYXAkMSIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsInVuZm9sZCIsInUiLCJ1JDAiLCJpc19lbXB0eSIsInhzIiwidW5jb25zIiwieHMkMCIsImxlbmd0aF9hdXgiLCJ4cyQxIiwibGVuZ3RoJDAiLCJpdGVyaV9hdXgiLCJpdGVyaSIsImZvbGRfbGVmdGlfYXV4IiwiZm9sZF9sZWZ0aSIsImZvcl9hbGwiLCJwIiwiZXhpc3RzIiwiZmluZCIsImZpbmRfbWFwIiwiaXRlcjIiLCJ5cyIsInlzJDAiLCJ5cyQxIiwiZm9sZF9sZWZ0MiIsImZvcl9hbGwyIiwiZXhpc3RzMiIsImVxdWFsJDAiLCJlcSIsImNvbXBhcmUkMCIsImNtcCIsImluaXRfYXV4IiwiaiIsImluaXQiLCJyZXBlYXQiLCJmb3JldmVyIiwiY3ljbGVfbm9uZW1wdHkiLCJjeWNsZSIsIml0ZXJhdGUxIiwiaXRlcmF0ZSIsIm1hcGlfYXV4IiwibWFwaSIsInRhaWxfc2NhbiIsInMkMCIsInRha2VfYXV4IiwidGFrZSIsImZvcmNlX2Ryb3AiLCJuJDAiLCJuJDEiLCJkcm9wIiwidGFrZV93aGlsZSIsImRyb3Bfd2hpbGUiLCJub2RlIiwiZ3JvdXAiLCJmcm9tX2xhenkiLCJtZW1vaXplIiwiZmFpbHVyZSIsIm9uY2UiLCJhY3Rpb24iLCJtZW1vaXplJDAiLCJvbmNlJDAiLCJ6aXAiLCJtYXAyIiwiaW50ZXJsZWF2ZSIsInNvcnRlZF9tZXJnZTFyIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZTFsIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsImRpYWdvbmFscyIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwiZXJyX25vdF9zdiIsImVycl9ub3RfbGF0aW4xIiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGhfYXV4JDAiLCJwYXJhbSQxIiwibGVuZ3RoJDEiLCJjb25zJDAiLCJudGgiLCJudGhfYXV4IiwibCQwIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwiaW5pdF90YWlscmVjX2F1eCIsImluaXRfYXV4JDAiLCJybWFwX2YiLCJhMiIsImExIiwicm1hcDJfZiIsInBhaXIiLCJhdXgiLCJ4JDAiLCJwYXJ0IiwicnkiLCJyeCIsInQyIiwiaDIiLCJ0MSIsImgxIiwicmV2X21lcmdlIiwiYWNjdSQyIiwicmV2X21lcmdlX3JldiIsInJldl9zb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInNvcnQiLCJ0bCQwIiwiYWNjdSQzIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwic3Jjb2ZmIiwiZHN0b2ZmIiwic3Jjb2ZmJDAiLCJjcHlsZW4iLCJvZnMxIiwib2ZzMiIsImVuc3VyZV9nZSIsInN1bV9sZW5ndGhzIiwic2VwbGVuIiwidW5zYWZlX2JsaXRzIiwiZHN0Iiwic2VwIiwiaXNfc3BhY2UiLCJhcHBseTEiLCJwcmVmaXgiLCJsZW5fcyIsImxlbl9wcmUiLCJzdWZmaXgiLCJsZW5fc3VmIiwiZGlmZiIsImluZGV4X3JlYyIsImxpbSIsImluZGV4X3JlY19vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4X3JlY19vcHQiLCJyZXNpemUiLCJuZXdfbGVuIiwibmV3X2J1ZiIsImdldCQxIiwiZ2V0JDIiLCJzZXQkMCIsInNldCQxIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8yIiwiYjAiLCJiMSIsInV0Zl84X3VjaGFyXzMiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImdldCIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0IiwibGFzdCQwIiwibGFzdCQxIiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJ1JDEiLCJsbyIsImVuc3VyZV9nZSQwIiwic3VtX2xlbmd0aHMkMCIsInVuc2FmZV9ibGl0cyQwIiwiaXNfc3BhY2UkMCIsImVzY2FwZV9pZl9uZWVkZWQiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInRvbGlzdCIsInJlcyQwIiwicmVzJDEiLCJsaXN0X2xlbmd0aCIsImZpbGwiLCJpbnB1dF9hcnJheSIsImVsdCIsIm91dHB1dF9hcnJheSIsImVsdCQwIiwiYWNjJDIiLCJhMCIsImJpIiwiYWkiLCJuYSIsIm5iIiwibWF4c29uIiwiaTMxIiwidHJpY2tsZWRvd24iLCJ0cmlja2xlIiwiYnViYmxlZG93biIsImJ1YmJsZSIsInRyaWNrbGV1cCIsImZhdGhlciIsImUkMCIsIm1lcmdlIiwic3JjMW9mcyIsInNyYzFsZW4iLCJzcmMyIiwic3JjMm9mcyIsInNyYzJsZW4iLCJkc3RvZnMiLCJzcmMxciIsInNyYzJyIiwiaTEiLCJpMiIsImkxJDAiLCJzMSQwIiwiaTIkMCIsInMyJDAiLCJkJDAiLCJpMiQxIiwiZCQxIiwiczIkMSIsImkxJDEiLCJkJDIiLCJzMSQxIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsIm9mX3Jldl9saXN0IiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsImlzX2Zpbml0ZSIsImlzX2luZmluaXRlIiwiaXNfbmFuIiwicGkiLCJpc19pbnRlZ2VyIiwic3VjYyQwIiwicHJlZCQwIiwiZXF1YWwkMTEiLCJtaW4kMiIsIm1heCQyIiwibWluX21heCIsIm1pbl9udW0iLCJtYXhfbnVtIiwibWluX21heF9udW0iLCJoYXNoJDAiLCJ1bnNhZmVfZmlsbCIsImNoZWNrIiwibWFrZSQyIiwiaW5pdCQ0IiwiYXBwZW5kJDIiLCJlbnN1cmVfZ2UkMSIsInN1bV9sZW5ndGhzJDEiLCJjb25jYXQkMyIsImhsZW4iLCJzdWIkMiIsImNvcHkkMiIsImZpbGwkMSIsImJsaXQkMiIsInNyYyIsInNvZnMiLCJkb2ZzIiwidG9fbGlzdCQyIiwib2ZfbGlzdCQwIiwiaCIsIml0ZXIkNiIsIml0ZXIyJDIiLCJtYXAkOCIsIm1hcDIkMiIsIml0ZXJpJDQiLCJtYXBpJDQiLCJmb2xkX2xlZnQkNCIsImZvbGRfcmlnaHQkMyIsImV4aXN0cyQ0IiwiZm9yX2FsbCQ0IiwibWVtJDEiLCJtZW1faWVlZSIsInNvcnQkMCIsInN0YWJsZV9zb3J0IiwidG9fc2VxJDUiLCJ0b19zZXFpJDIiLCJvZl9yZXZfbGlzdCQwIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwibGV4X3JlZmlsbCIsInJlYWRfZnVuIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2Z1bmN0aW9uIiwib3B0Iiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImNtZCIsImFyZyIsImNtZCQwIiwiYXJnJDAiLCJhcmckMSIsImFyZyQyIiwiY21kJDEiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImV4biIsImN1cnJfY2hhciIsInRvayIsInBlZWtfdmFsIiwic3ltYm9sX3N0YXJ0X3BvcyIsInN0IiwiZW4iLCJzeW1ib2xfZW5kX3BvcyIsInJoc19zdGFydF9wb3MiLCJyaHNfZW5kX3BvcyIsInN5bWJvbF9zdGFydCIsInN5bWJvbF9lbmQiLCJyaHNfc3RhcnQiLCJyaHNfZW5kIiwiaXNfY3VycmVudF9sb29rYWhlYWQiLCJwYXJzZV9lcnJvciIsImhlaWdodCIsImhsIiwiaCQwIiwiaHIiLCJiYWwiLCJsciIsImx2IiwibGwiLCJscnIiLCJscnYiLCJscmwiLCJyciIsInJ2IiwicmwiLCJybHIiLCJybHYiLCJybGwiLCJhZGQiLCJzaW5nbGV0b24iLCJhZGRfbWluX2VsZW1lbnQiLCJhZGRfbWF4X2VsZW1lbnQiLCJyaCIsImxoIiwibWluX2VsdCIsIm1pbl9lbHRfb3B0IiwibWF4X2VsdCIsIm1heF9lbHRfb3B0IiwicmVtb3ZlX21pbl9lbHQiLCJyJDAiLCJzcGxpdCIsInByZXMiLCJwcmVzJDAiLCJtZW0iLCJyZW1vdmUiLCJ1bmlvbiIsInIyIiwicjIkMCIsInIxJDAiLCJpbnRlciIsInNwbGl0X2JpcyIsImRpc2pvaW50IiwiY29uc19lbnVtIiwicyQxIiwiZSQxIiwiY29tcGFyZV9hdXgiLCJlMSQwIiwiZTIkMCIsImUyJDEiLCJlMSQxIiwiZTIkMiIsImUxJDIiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3RfYXV4IiwiZmluZF9maXJzdCIsImZpbmRfZmlyc3Rfb3B0X2F1eCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0X2F1eCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHRfYXV4IiwiZmluZF9sYXN0X29wdCIsImZpbmRfb3B0IiwidHJ5X2pvaW4iLCJ0cnlfY29uY2F0IiwidiQxIiwib2Zfc29ydGVkX2xpc3QiLCJzdWIiLCJsJDMiLCJ4MCIsImwkNCIsIngwJDAiLCJsJDUiLCJ4MCQxIiwibmwiLCJtaWQiLCJsJDIiLCJvZl9saXN0IiwieDQiLCJhZGRfc2VxIiwib2Zfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsIm1pbl9iaW5kaW5nIiwibWluX2JpbmRpbmdfb3B0IiwibWF4X2JpbmRpbmciLCJtYXhfYmluZGluZ19vcHQiLCJyZW1vdmVfbWluX2JpbmRpbmciLCJ1cGRhdGUiLCJkYXRhJDAiLCJtJDAiLCJhZGRfbWluX2JpbmRpbmciLCJrIiwiYWRkX21heF9iaW5kaW5nIiwiY29uY2F0X29yX2pvaW4iLCJkMSIsImQyIiwiZDIkMCIsImQxJDAiLCJkMiQxIiwiZDEkMSIsInB2ZCIsImZ2ZCIsIm0kMSIsIm0xIiwibTIiLCJlcXVhbF9hdXgiLCJiaW5kaW5nc19hdXgiLCJiaW5kaW5ncyIsImNyZWF0ZSQwIiwiY2xlYXIiLCJjb3B5JDMiLCJwdXNoIiwicG9wIiwicG9wX29wdCIsInRvcCIsInRvcF9vcHQiLCJpc19lbXB0eSQwIiwibGVuZ3RoJDIiLCJpdGVyJDciLCJmb2xkJDIiLCJ0b19zZXEkNiIsIm9mX3NlcSQ0IiwiY3JlYXRlJDEiLCJjbGVhciQwIiwiY2VsbCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlJDAiLCJ0YWtlX29wdCIsImNvcHkkNCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsImNlbGwkMCIsImNvcHkkNSIsImlzX2VtcHR5JDEiLCJsZW5ndGgkMyIsIml0ZXIkOCIsIml0ZXIkOSIsImZvbGQkMyIsImZvbGQkNCIsInRyYW5zZmVyIiwicTEiLCJxMiIsInRvX3NlcSQ3IiwiYWRkX3NlcSQwIiwib2Zfc2VxJDUiLCJjb3VudCIsImZpbGxfYnVmZiIsImdldF9kYXRhIiwiZDExIiwiYSQwIiwiYSQxIiwicGVla19kYXRhIiwicGVlayQwIiwianVua19kYXRhIiwianVuayIsIm5nZXRfZGF0YSIsImFsIiwibnBlZWtfZGF0YSIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkMTAiLCJzdHJtIiwiZG9fcmVjIiwiZnJvbSIsIm9mX2xpc3QkMSIsIm9mX3N0cmluZyIsIm9mX2J5dGVzJDAiLCJvZl9jaGFubmVsIiwiaWFwcCIsImljb25zIiwiaXNpbmciLCJsYXBwIiwibGNvbnMiLCJsc2luZyIsInNlbXB0eSIsInNsYXp5IiwiZHVtcF9kYXRhIiwiZHVtcCIsImNyZWF0ZSQyIiwiY29udGVudHMiLCJ0b19ieXRlcyQwIiwic3ViJDMiLCJibGl0JDMiLCJudGgkMCIsImxlbmd0aCQ0IiwiY2xlYXIkMSIsInJlc2V0IiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwicG9zIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwicmVhbGx5X2lucHV0X3VwX3RvIiwiYWxyZWFkeV9yZWFkIiwidG9fcmVhZCIsImFscmVhZHlfcmVhZCQwIiwidG9fcmVhZCQwIiwiYWxyZWFkeV9yZWFkJDEiLCJ0b19yZWFkJDEiLCJ1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8iLCJhZGRfY2hhbm5lbCIsIm91dHB1dF9idWZmZXIiLCJjbG9zaW5nIiwiYWR2YW5jZV90b19jbG9zaW5nIiwib3BlbmluZyIsImFkdmFuY2UiLCJrJDAiLCJrJDEiLCJrJDIiLCJhZHZhbmNlX3RvX25vbl9hbHBoYSIsImZpbmRfaWRlbnQiLCJzdG9wJDAiLCJzdG9wIiwiYWRkX3N1YnN0aXR1dGUiLCJzdWJzdCIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsImN1cnJlbnQiLCJuZXh0X2kiLCJpZGVudCIsInRydW5jYXRlIiwidG9fc2VxJDgiLCJ0b19zZXFpJDMiLCJhZGRfc2VxJDEiLCJvZl9zZXEkNiIsImFkZF9pbnQ4IiwiYWRkX2ludDE2X25lIiwiYWRkX2ludDMyX25lIiwiYWRkX2ludDY0X25lIiwiYWRkX2ludDE2X2xlIiwiYWRkX2ludDE2X2JlIiwiYWRkX2ludDMyX2xlIiwiYWRkX2ludDMyX2JlIiwiYWRkX2ludDY0X2xlIiwiYWRkX2ludDY0X2JlIiwiY3JlYXRlX2NoYXJfc2V0IiwiYWRkX2luX2NoYXJfc2V0Iiwic3RyX2luZCIsIm1hc2siLCJmcmVlemVfY2hhcl9zZXQiLCJyZXZfY2hhcl9zZXQiLCJjaGFyX3NldCQwIiwiaXNfaW5fY2hhcl9zZXQiLCJwYWRfb2ZfcGFkX29wdCIsInBhZF9vcHQiLCJ3aWR0aCIsInByZWNfb2ZfcHJlY19vcHQiLCJwcmVjX29wdCIsIm5kZWMiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwYWRfb3B0JDUiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiY2hhcl9vZl9jb3VudGVyIiwiYnByaW50X2NoYXJfc2V0IiwicHJpbnRfb3V0JDAiLCJwcmludF9maXJzdCIsInByaW50X3NlY29uZCIsInByaW50X2luIiwiaiQwIiwiaiQxIiwicHJpbnRfb3V0IiwicHJpbnRfc3RhcnQiLCJpc19hbG9uZSIsImFmdGVyIiwiYmVmb3JlIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9pbnRfZm10IiwiYnByaW50X2FsdGludF9mbXQiLCJicHJpbnRfZmNvbnZfZmxhZyIsImJwcmludF9mbG9hdF9mbXQiLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJzdWJfZm10dHkiLCJzdWJfZm10dHkkMCIsImludF9vZl9jdXN0b21fYXJpdHkiLCJicHJpbnRfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiZm10JDEiLCJzdHJpbmdfb2ZfZm10Iiwic3ltbSIsInRyYW5zIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZm10dHlfcmVsX2RldCIsImY0IiwiZjIiLCJyZXN0MiQ5IiwicmVzdDIkMTAiLCJyZXN0MiQxMSIsInJlc3QyJDEyIiwicmVzdDIkMTMiLCJkZSIsImVkIiwiYWYiLCJmYSIsImRlJDAiLCJlZCQwIiwiYWYkMCIsImZhJDAiLCJkZSQxIiwiZWQkMSIsImFmJDEiLCJmYSQxIiwiZGUkMiIsImVkJDIiLCJhZiQyIiwiZmEkMiIsImRlJDMiLCJlZCQzIiwiYWYkMyIsImZhJDMiLCJkZSQ0IiwiZWQkNCIsImFmJDQiLCJmYSQ0IiwiZGUkNSIsImVkJDUiLCJhZiQ1IiwiZmEkNSIsImRlJDYiLCJlZCQ2IiwiYWYkNiIsImZhJDYiLCJkZSQ3IiwiZWQkNyIsImFmJDciLCJmYSQ3IiwiZGUkOCIsImVkJDgiLCJhZiQ4IiwiZmEkOCIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwiZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IiwiZm10dHlfb2ZfcGFkZGluZ19mbXR0eSIsImZtdHR5X29mX2N1c3RvbSIsImFyaXR5JDAiLCJmbXR0eV9vZl9mbXQkMCIsImZtdHR5X29mX2ZtdCIsInR5X3Jlc3QiLCJwcmVjX3R5IiwidHlfcmVzdCQwIiwicHJlY190eSQwIiwidHlfcmVzdCQxIiwicHJlY190eSQxIiwidHlfcmVzdCQyIiwicHJlY190eSQyIiwidHlfcmVzdCQzIiwicHJlY190eSQzIiwiZm10dHkkMSIsImZtdHR5JDIiLCJmbXR0eSQzIiwidHkkMCIsImZtdHR5JDQiLCJmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpIiwidHlwZV9mb3JtYXRfZ2VuIiwiZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0Iiwic3ViX2ZtdHR5X3Jlc3QkMCIsImZtdHR5X3Jlc3QkMCIsInN1Yl9mbXR0eV9yZXN0JDEiLCJzdWJfZm10dHlfcmVzdCQyIiwiZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMyIsImZtdCQyIiwic3ViX2ZtdHR5X3Jlc3QkNCIsImZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDUiLCJmbXQkMyIsInN1Yl9mbXR0eV9yZXN0JDYiLCJmbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ3IiwiZm10JDQiLCJzdWJfZm10dHlfcmVzdCQ4IiwiZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkOSIsImZtdCQ1Iiwic3ViX2ZtdHR5X3Jlc3QkMTAiLCJmbXR0eV9yZXN0JDUiLCJzdWJfZm10dHlfcmVzdCQxMSIsImZtdCQ2Iiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJmbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQxMyIsImZtdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkMTQiLCJmbXR0eV9yZXN0JDciLCJzdWIyX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTUiLCJzdWIyX2ZtdHR5JDAiLCJmbXQkOCIsInN1Yl9mbXR0eV9yZXN0JDE2IiwiZm10dHlfcmVzdCQ4Iiwic3ViMl9mbXR0eSQxIiwic3ViMV9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE3Iiwic3ViMl9mbXR0eSQyIiwic3ViMV9mbXR0eSQwIiwiZm10JDkiLCJzdWJfZm10dHlfcmVzdCQxOCIsImZtdHR5X3Jlc3QkOSIsInN1Yl9mbXR0eV9yZXN0JDE5IiwiZm10JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjEiLCJmbXQkMTEiLCJzdWJfZm10dHlfcmVzdCQyMiIsImZtdHR5X3Jlc3QkMTEiLCJzdWJfZm10dHlfcmVzdCQyMyIsImZtdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI0IiwiZm10dHlfcmVzdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI1IiwiZm10JDEzIiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJmbXRfcmVzdCIsImZtdF9yZXN0JDAiLCJmbXRfcmVzdCQxIiwiZm10X3Jlc3QkMiIsImZtdF9yZXN0JDMiLCJmbXRfcmVzdCQ0IiwiZm10dHkkNSIsImZtdF9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10X3Jlc3QkNiIsInByZWMkNSIsInByZWMkNiIsImZtdHR5JDciLCJmbXRfcmVzdCQ3IiwicHJlYyQ3IiwicHJlYyQ4IiwiZm10dHkkOCIsImZtdF9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10X3Jlc3QkOSIsImZtdHR5JDEwIiwiZm10X3Jlc3QkMTAiLCJmbXR0eSQxMSIsImZtdF9yZXN0JDExIiwiZm10dHkkMTIiLCJmbXRfcmVzdCQxMiIsImZtdHR5JDEzIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdF9yZXN0JDE0IiwiZm10dHkkMTUiLCJmbXQkMTUiLCJmbXRfcmVzdCQxNSIsImZtdHR5JDE2IiwiZm10JDE2IiwiZm10X3Jlc3QkMTYiLCJmbXR0eSQxNyIsImZtdCQxNyIsImZtdF9yZXN0JDE3IiwidHlwZV9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X3Jlc3QkMTMiLCJmbXRfcmVzdCQxOCIsImZtdHR5JDE4IiwiZm10JDE4IiwiZm10dHlfcmVzdCQxNCIsImZtdF9yZXN0JDE5IiwiZm10dHkkMTkiLCJmbXQkMTkiLCJmbXR0eV9yZXN0JDE1IiwiZm10X3Jlc3QkMjAiLCJmbXR0eSQyMCIsImZtdCQyMCIsInR5cGVfaWdub3JlZF9wYXJhbSIsImZtdDAiLCJmbXR0eTAiLCJmbXR0eTMiLCJmbXQzIiwiZm10MSQwIiwiZm10dHkyJDAiLCJmbXQyJDAiLCJmbXR0eTMkMCIsImZtdDMkMCIsInR5cGVfaWdub3JlZF9wYXJhbV9vbmUiLCJ0eXBlX2Zvcm1hdCIsInJlY2FzdCIsImZpeF9wYWRkaW5nIiwid2lkdGgkMCIsImZpeF9pbnRfcHJlY2lzaW9uIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2ljb252IiwiZm9ybWF0X29mX2ljb252TCIsImZvcm1hdF9vZl9pY29udmwiLCJmb3JtYXRfb2ZfaWNvbnZuIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJhZGRfZG90X2lmX25lZWRlZCIsImNhbWxfc3BlY2lhbF92YWwiLCJmb3JtYXRfY2FtbF9jaGFyIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9wcmludGYkMCIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiIsIm1ha2VfcGFkZGluZyIsIm1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiIsImFjYyQzIiwiYWNjJDQiLCJrJDMiLCJrYWNjIiwiayQ0IiwibWFrZV9pZ25vcmVkX3BhcmFtJDAiLCJtYWtlX2N1c3RvbSQwIiwibWFrZV9pbnZhbGlkX2FyZyIsIm1ha2VfZnJvbV9mbXR0eSQwIiwibWFrZV9mcm9tX2ZtdHR5IiwibWFrZV9jdXN0b20iLCJtYWtlX2lnbm9yZWRfcGFyYW0iLCJwJDAiLCJwJDEiLCJjb25zdCQwIiwibWFrZV9pcHJpbnRmJDAiLCJtYWtlX2lwcmludGYiLCJmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiIsImtvYyIsInJlc3QkMjQiLCJyZXN0JDI1IiwiZm5fb2ZfY3VzdG9tX2FyaXR5JDAiLCJmbl9vZl9jdXN0b21fYXJpdHkiLCJvdXRwdXRfYWNjIiwicCQyIiwicCQzIiwicCQ0IiwiYnVmcHV0X2FjYyIsInN0cnB1dF9hY2MiLCJmYWlsd2l0aF9tZXNzYWdlIiwib3Blbl9ib3hfb2Zfc3RyaW5nIiwiaW52YWxpZF9ib3giLCJwYXJzZV9zcGFjZXMiLCJwYXJzZV9sd29yZCIsInBhcnNlX2ludCIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0Iiwic2l6ZSIsInBhcnNlX3Bvc2l0aXZlIiwic3RyX2luZCQwIiwic3RyX2luZCQxIiwicGFyc2VfaW50ZWdlciIsIm5leHRfaW5kIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJwY3RfaW5kIiwib3B0aW9uIiwic3ViZm10IiwiY29tcHV0ZV9mbG9hdF9jb252IiwicGx1cyIsInNwYWNlIiwia2luZCIsImNvbXB1dGVfaW50X2NvbnYiLCJwbHVzJDAiLCJzcGFjZSQwIiwiY291bnRlcl9vZl9jaGFyIiwiaXNfaW50X2Jhc2UiLCJzZWFyY2hfc3ViZm9ybWF0X2VuZCIsInN1Yl9lbmQiLCJzdHJfaW5kJDIiLCJzdWJfZW5kJDAiLCJzdHJfaW5kJDMiLCJzdWJfZW5kJDEiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJzdHJfaW5kJDciLCJwYXJzZV9jaGFyX3NldCIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicGFyc2VfY2hhcl9zZXRfc3RhcnQiLCJyZXZlcnNlIiwicmV2ZXJzZSQwIiwicGFyc2VfYWZ0ZXJfYXQiLCJwYXJzZV90YWciLCJwYXJzZSIsInBhcnNlX2dvb2RfYnJlYWsiLCJwYXJzZV9tYWdpY19zaXplIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2ZtdCIsInN1Yl9mb3JtYXQkMCIsImZvcm1hdHRpbmckMCIsImZvcm1hdHRpbmciLCJzdHJfaW5kXzEiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwic3RyX2luZF80Iiwic3RyX2luZF81IiwicGFyc2VfcGFkZGluZyIsIm1pbnVzIiwibmV3X2luZCIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9wcmVjaXNpb24iLCJwYXJzZV9jb252ZXJzaW9uIiwicGFyc2VfbGl0ZXJhbCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzJDAiLCJwYXJzZV9jb252IiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJnZXRfcHJlY19vcHQiLCJmbXRfcmVzdWx0IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiaWdub3JlZCQ5IiwiY2hhcl9mb3JtYXQiLCJzY2FuX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJpZ25vcmVkJDUiLCJpZ25vcmVkJDgiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQxIiwiaWduJDAiLCJwYXJzZV9mb3JtYXQiLCJwYXJzZV9pZ24iLCJwYXJzZV9mbGFncyIsInNldF9mbGFnIiwicmVhZF9mbGFncyIsImJlZ19pbmQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwicHJpbnRfc3BlYyIsImRvYyIsInNwZWMiLCJrZXkiLCJoZWxwX2FjdGlvbiIsImFkZF9oZWxwIiwic3BlY2xpc3QiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsInVzYWdlX3N0cmluZyIsInVzYWdlIiwiYm9vbF9vZl9zdHJpbmdfb3B0JDAiLCJpbnRfb2Zfc3RyaW5nX29wdCQwIiwiZmxvYXRfb2Zfc3RyaW5nX29wdCIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXyIsImFsbG93X2V4cGFuZCIsImFyZ3YiLCJhbm9uZnVuIiwiaW5pdHBvcyIsImNvbnZlcnRfZXJyb3IiLCJwcm9nbmFtZSIsImZvbGxvdyQwIiwia2V5d29yZCIsIm5vX2FyZyQwIiwiZm9sbG93Iiwibm9fYXJnIiwiZ2V0X2FyZyQwIiwiZ2V0X2FyZyIsImNvbnN1bWVfYXJnJDAiLCJjb25zdW1lX2FyZyIsInRyZWF0X2FjdGlvbiQwIiwidHJlYXRfYWN0aW9uIiwiZiQwIiwiZiQxIiwiciQxIiwiZiQyIiwiciQyIiwiZiQzIiwiYXJnJDMiLCJ4JDEiLCJyJDMiLCJhcmckNCIsIngkMiIsInNwZWNzIiwiZiQ0IiwiYXJnJDUiLCJmJDUiLCJmJDYiLCJmJDciLCJhcmckNiIsIm5ld2FyZyIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIiwicGFyc2VfYXJndl9keW5hbWljIiwiY3VycmVudCQwIiwicGFyc2VfYXJndiIsIm1zZyQwIiwibXNnJDEiLCJwYXJzZV9keW5hbWljIiwicGFyc2VfZXhwYW5kIiwic2Vjb25kX3dvcmQiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhZGRfcGFkZGluZyIsImtzZCIsImN1dGNvbCQwIiwic3BhY2VzJDAiLCJjdXRjb2wiLCJrd2RfbGVuIiwic3BhY2VzIiwiYWxpZ24iLCJsaW1pdCIsImNvbXBsZXRlZCIsInRyaW1fY3IiLCJyZWFkX2F1eCIsInRyaW0iLCJmaWxlIiwid29yZHMiLCJzdGFzaCIsIndvcmQiLCJ3b3JkJDAiLCJyZWFkX2FyZyIsInJlYWRfYXJnMCIsIndyaXRlX2F1eCIsImFyZ3MiLCJ3cml0ZV9hcmciLCJ3cml0ZV9hcmcwIiwicHJpbnRlcnMiLCJmaWVsZCIsIm90aGVyX2ZpZWxkcyIsImZpZWxkcyIsInVzZV9wcmludGVycyIsImNvbnYiLCJ0b19zdHJpbmdfZGVmYXVsdCIsImNoYXIkMCIsImxpbmUiLCJjaGFyJDEiLCJsaW5lJDAiLCJmaWxlJDAiLCJjaGFyJDIiLCJsaW5lJDEiLCJmaWxlJDEiLCJjb25zdHJ1Y3RvciIsInRvX3N0cmluZyQ2IiwicHJpbnQiLCJmY3QiLCJjYXRjaCQwIiwicmF3X2JhY2t0cmFjZV9lbnRyaWVzIiwiYnQiLCJjb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJmb3JtYXRfYmFja3RyYWNlX3Nsb3QiLCJpc19yYWlzZSIsInByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJvdXRjaGFuIiwiYmFja3RyYWNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsInJhd19iYWNrdHJhY2UiLCJwcmludF9iYWNrdHJhY2UiLCJiYWNrdHJhY2VfdG9fc3RyaW5nIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwidXNhYmxlX3Nsb3QiLCJleGlzdHNfdXNhYmxlIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsInRyeV9nZXRfcmF3X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMCIsInJhd19iYWNrdHJhY2UkMCIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24kMCIsImNvbnN0JDEiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuIiwid29ya19idCIsInByaW50X3N0YXQiLCJhbGxvY2F0ZWRfYnl0ZXMiLCJtYSIsInBybyIsIm1pIiwiY3JlYXRlX2FsYXJtIiwiZGVsZXRlX2FsYXJtIiwibnVsbF90cmFja2VyIiwic2FtcGxpbmdfcmF0ZSIsInRyYWNrZXIiLCJjYWxsc3RhY2tfc2l6ZSIsInN0cmluZyIsImJ5dGVzIiwic3Vic3RyaW5nIiwic3ViYnl0ZXMiLCJmaWxlbmFtZSIsIm91dHB1dCQwIiwiZGlnZXN0IiwiaW5wdXQkMCIsImNoYXJfaGV4IiwidG9faGV4IiwiZnJvbV9oZXgiLCJkaWdpdCIsImJ5dGUkMCIsIm5ld19zdGF0ZSIsImFzc2lnbiIsInN0MSIsInN0MiIsImZ1bGxfaW5pdCIsInNlZWQiLCJjb21iaW5lIiwiZXh0cmFjdCIsInNlZWQkMCIsIm1ha2UkMyIsIm1ha2Vfc2VsZl9pbml0IiwiY29weSQ2IiwiYml0cyIsImN1cnZhbCIsIm5ld3ZhbCIsIm5ld3ZhbDMwIiwiaW50YXV4IiwiaW50JDAiLCJib3VuZCIsImludDYzYXV4IiwiYnBvcyIsImJwb3MkMCIsImZ1bGxfaW50IiwiaW50MzJhdXgiLCJpbnQzMiIsImludDY0YXV4IiwiaW50NjQiLCJuYXRpdmVpbnQiLCJyYXdmbG9hdCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImNvcHkkNyIsImxlbmd0aCQ1IiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsImluc2VydF9idWNrZXQiLCJjZWxsJDEiLCJuaWR4IiwibWF0Y2giLCJyZXNpemUkMCIsIm9zaXplIiwiaXRlciQxMSIsImRvX2J1Y2tldCIsIm9sZF90cmF2IiwiZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImZvbGQkNSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidG9fc2VxJDkiLCJ0YmxfZGF0YSIsImJ1Y2siLCJidWNrJDAiLCJidWNrJDEiLCJ0b19zZXFfa2V5cyIsInRvX3NlcV92YWx1ZXMiLCJrZXlfaW5kZXgiLCJidWNrZXQiLCJyZW1vdmVfYnVja2V0IiwiZmluZF9yZWMiLCJrMSIsIm5leHQxIiwiazIiLCJuZXh0MiIsImszIiwiZDMiLCJuZXh0MyIsImZpbmRfcmVjX29wdCIsImZpbmRfYWxsIiwiZmluZF9pbl9idWNrZXQiLCJyZXBsYWNlX2J1Y2tldCIsInJlcGxhY2UiLCJtZW1faW5fYnVja2V0IiwicmVwbGFjZV9zZXEiLCJjb3B5Iiwic3oiLCJoYXNoJDEiLCJoYXNoX3BhcmFtIiwic2VlZGVkX2hhc2giLCJhZGQkMCIsImZpbmQkMSIsImZpbmRfb3B0JDEiLCJmaW5kX2FsbCQwIiwibWVtJDIiLCJhZGRfc2VxJDIiLCJvZl9zZXEkNyIsInJlYnVpbGQiLCJ3ZWFrX2NyZWF0ZSIsImxlbmd0aCQ2IiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQkMCIsInNldCQyIiwiZ2V0JDMiLCJnZXRfY29weSIsImNoZWNrJDAiLCJibGl0JDQiLCJmaWxsJDIiLCJhciIsImVtcHR5YnVja2V0IiwiZ2V0X2luZGV4Iiwic3okMCIsInN6JDEiLCJmb2xkX2J1Y2tldCIsIml0ZXJfYnVja2V0IiwiaXRlcl93ZWFrIiwiY291bnRfYnVja2V0IiwibmV4dF9zeiIsInByZXZfc3oiLCJ0ZXN0X3Nocmlua19idWNrZXQiLCJoYnVja2V0IiwicHJldl9sZW4iLCJsaXZlIiwiaiQyIiwibmV3YnVja2V0IiwiYWRkX2F1eCIsInNldHRlciIsImluZGV4IiwiaGFzaGVzIiwibmV3c3oiLCJuZXdoYXNoZXMiLCJvbGRsZW4iLCJuZXd0IiwiYWRkX3dlYWsiLCJvYiIsIm9oIiwib2kiLCJuaSIsImZpbmRfb3IiLCJpZm5vdGZvdW5kIiwiZmluZF9zaGFkb3ciLCJpZmZvdW5kIiwibGVucyIsInRvdGxlbiIsImlkJDAiLCJ1bmtub3duIiwiaXNfa25vd24iLCJwcF9lbnF1ZXVlIiwidG9rZW4iLCJwcF9jbGVhcl9xdWV1ZSIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwicHBfb3V0cHV0X3NwYWNlcyIsInBwX291dHB1dF9pbmRlbnQiLCJmb3JtYXRfcHBfdGV4dCIsInRleHQiLCJmb3JtYXRfc3RyaW5nIiwiYnJlYWtfbmV3X2xpbmUiLCJyZWFsX2luZGVudCIsImJyZWFrX2xpbmUiLCJicmVha19zYW1lX2xpbmUiLCJwcF9mb3JjZV9icmVha19saW5lIiwicHBfc2tpcF90b2tlbiIsImZvcm1hdF9wcF90b2tlbiIsInRhYnMiLCJhZGRfdGFiIiwibHMiLCJ0YWdfbmFtZSIsIm1hcmtlciIsImJyZWFrcyIsImZpdHMiLCJvZmYiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJib3hfdHlwZSQwIiwidGJveCIsInRhZ19uYW1lJDAiLCJtYXJrZXIkMCIsImFkdmFuY2VfbGVmdCIsInBlbmRpbmdfY291bnQiLCJzaXplJDAiLCJlbnF1ZXVlX2FkdmFuY2UiLCJlbnF1ZXVlX3N0cmluZ19hcyIsImVucXVldWVfc3RyaW5nIiwiaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIiwic3RhY2siLCJxdWV1ZV9lbGVtIiwic2V0X3NpemUiLCJsZWZ0X3RvdGFsIiwic2Nhbl9wdXNoIiwiZWxlbSIsInBwX29wZW5fYm94X2dlbiIsImJyX3R5IiwicHBfb3Blbl9zeXNfYm94IiwicHBfY2xvc2VfYm94IiwicHBfb3Blbl9zdGFnIiwicHBfY2xvc2Vfc3RhZyIsInBwX29wZW5fdGFnIiwicHBfY2xvc2VfdGFnIiwicHBfc2V0X3ByaW50X3RhZ3MiLCJwcF9zZXRfbWFya190YWdzIiwicHBfZ2V0X3ByaW50X3RhZ3MiLCJwcF9nZXRfbWFya190YWdzIiwicHBfc2V0X3RhZ3MiLCJwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwY3QiLCJwb3QiLCJtY3QiLCJtb3QiLCJwcF9yaW5pdCIsImNsZWFyX3RhZ19zdGFjayIsInBwX2ZsdXNoX3F1ZXVlIiwicHBfcHJpbnRfYXNfc2l6ZSIsInBwX3ByaW50X2FzIiwiaXNpemUiLCJwcF9wcmludF9zdHJpbmciLCJwcF9wcmludF9ieXRlcyIsInBwX3ByaW50X2ludCIsInBwX3ByaW50X2Zsb2F0IiwicHBfcHJpbnRfYm9vbCIsInBwX3ByaW50X2NoYXIiLCJwcF9vcGVuX2hib3giLCJwcF9vcGVuX3Zib3giLCJwcF9vcGVuX2h2Ym94IiwicHBfb3Blbl9ob3Zib3giLCJwcF9vcGVuX2JveCIsInBwX3ByaW50X25ld2xpbmUiLCJwcF9wcmludF9mbHVzaCIsInBwX2ZvcmNlX25ld2xpbmUiLCJwcF9wcmludF9pZl9uZXdsaW5lIiwicHBfcHJpbnRfY3VzdG9tX2JyZWFrIiwicHBfcHJpbnRfYnJlYWsiLCJwcF9wcmludF9zcGFjZSIsInBwX3ByaW50X2N1dCIsInBwX29wZW5fdGJveCIsInBwX2Nsb3NlX3Rib3giLCJwcF9wcmludF90YnJlYWsiLCJwcF9wcmludF90YWIiLCJwcF9zZXRfdGFiIiwicHBfc2V0X21heF9ib3hlcyIsInBwX2dldF9tYXhfYm94ZXMiLCJwcF9vdmVyX21heF9ib3hlcyIsInBwX3NldF9lbGxpcHNpc190ZXh0IiwicHBfZ2V0X2VsbGlwc2lzX3RleHQiLCJwcF9saW1pdCIsInBwX3NldF9taW5fc3BhY2VfbGVmdCIsInBwX3NldF9tYXhfaW5kZW50IiwicHBfZ2V0X21heF9pbmRlbnQiLCJwcF9zZXRfbWFyZ2luIiwibmV3X21heF9pbmRlbnQiLCJ2YWxpZGF0ZV9nZW9tZXRyeSIsIm1hcmdpbiIsIm1heF9pbmRlbnQiLCJjaGVja19nZW9tZXRyeSIsImdlb21ldHJ5IiwicHBfZ2V0X21hcmdpbiIsInBwX3NldF9mdWxsX2dlb21ldHJ5IiwicHBfc2V0X2dlb21ldHJ5IiwicHBfc2FmZV9zZXRfZ2VvbWV0cnkiLCJwcF9nZXRfZ2VvbWV0cnkiLCJwcF91cGRhdGVfZ2VvbWV0cnkiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJkaXNwbGF5X25ld2xpbmUiLCJibGFua19saW5lIiwiZGlzcGxheV9pbmRlbnQiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIiwiZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnIiwiZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWciLCJkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyIsInBwX21ha2VfZm9ybWF0dGVyIiwicHBfcXVldWUiLCJzeXNfdG9rIiwic2Nhbl9zdGFjayIsInBwX21hcmdpbiIsInBwX21pbl9zcGFjZV9sZWZ0IiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJzeW1ib2xpY19mbHVzaCIsInN5bWJvbGljX25ld2xpbmUiLCJzeW1ib2xpY19zdHJpbmciLCJzeW1ib2xpY19zcGFjZXMiLCJzeW1ib2xpY19pbmRlbnQiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcV9pbiIsInNlcSQxIiwicHBfcHJpbnRfc2VxIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsIm91dHB1dF9hY2MkMCIsImJ0eSIsInAkNSIsInAkNiIsInN0cnB1dF9hY2MkMCIsInNpemUkMSIsImtmcHJpbnRmJDAiLCJpa2ZwcmludGYkMCIsImlmcHJpbnRmJDAiLCJmcHJpbnRmJDAiLCJwcmludGYkMCIsImVwcmludGYkMCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImtwcmludGYiLCJzcHJpbnRmJDAiLCJrYXNwcmludGYiLCJhc3ByaW50ZiIsImZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMiLCJwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJicHJpbnRmJDAiLCJwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJzdHJpbmdpZnkiLCJwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJmdW5zIiwibWFya19vcGVuX3RhZyIsIm1hcmtfY2xvc2VfdGFnIiwicHJpbnRfb3Blbl90YWciLCJwcmludF9jbG9zZV90YWciLCJzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJudWxsX2NoYXIiLCJuZXh0X2NoYXIiLCJpYiIsInBlZWtfY2hhciIsImNoZWNrZWRfcGVla19jaGFyIiwiZW5kX29mX2lucHV0IiwiZW9mIiwiYmVnaW5uaW5nX29mX2lucHV0IiwibmFtZV9vZl9pbnB1dCIsImNoYXJfY291bnQiLCJsaW5lX2NvdW50IiwicmVzZXRfdG9rZW4iLCJpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciIsInRva2VuX3N0cmluZyIsInRva2VuX2J1ZmZlciIsInRva2VuX2NvdW50Iiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImNyZWF0ZSQ0IiwiaW5hbWUiLCJmcm9tX3N0cmluZyQxIiwiZnJvbV9mdW5jdGlvbiQwIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZnJvbV9pY19jbG9zZV9hdF9lbmQiLCJmcm9tX2ljX3JhaXNlX2F0X2VuZCIsInN0ZGliIiwib3Blbl9pbl9maWxlIiwib3Blbl9pbiIsImZyb21fZmlsZSIsImZyb21fZmlsZV9iaW4iLCJmcm9tX2NoYW5uZWwkMCIsImNsb3NlX2luIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21faWMiLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9lbmRfb2ZfaW5wdXQiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoX2VyciIsImNpIiwiY2hhcmFjdGVyX21pc21hdGNoIiwic2tpcF93aGl0ZXMiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19uZXdsaW5lIiwiY2hlY2tfY2hhciIsInRva2VuX2NoYXIiLCJ0b2tlbl9ib29sIiwiaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIiLCJ0b2tlbl9pbnRfbGl0ZXJhbCIsInRva2VuX2ludCIsInRva2VuX2Zsb2F0IiwidG9rZW5fbmF0aXZlaW50IiwidG9rZW5faW50MzIiLCJ0b2tlbl9pbnQ2NCIsInNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIiwid2lkdGgkMiIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3N0YXIiLCJkaWdpdHAiLCJzY2FuX2RpZ2l0cyIsInNjYW5fZGlnaXRfcGx1cyIsImJhc2lzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5fdW5zaWduZWRfaW50Iiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQiLCJzY2FuX2ludF9jb252ZXJzaW9uIiwic2Nhbl9mcmFjdGlvbmFsX3BhcnQiLCJzY2FuX2V4cG9uZW50X3BhcnQiLCJzY2FuX2ludGVnZXJfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQzIiwid2lkdGgkNCIsIndpZHRoJDUiLCJ3aWR0aCQ2Iiwid2lkdGgkMTAiLCJ3aWR0aCQ3Iiwid2lkdGgkOCIsIndpZHRoJDkiLCJzY2FuX2NhbWxfZmxvYXRfcmVzdCIsIndpZHRoX3ByZWNpc2lvbiIsImZyYWNfd2lkdGgiLCJzY2FuX2NhbWxfZmxvYXQiLCJzY2FuX3N0cmluZyIsInN0cCIsInNjYW5fY2hhciIsImNoYXJfZm9yX2JhY2tzbGFzaCIsImRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2RlY2ltYWxfY29kZSIsImMwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUiLCJjaGVja19uZXh0X2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyIsInNjYW5fYmFja3NsYXNoX2NoYXIiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJmaW5kX2NoYXIiLCJmaW5kX3N0YXJ0Iiwic2Nhbl9jYW1sX3N0cmluZyIsImZpbmRfc3RvcCQwIiwic2Nhbl9iYWNrc2xhc2giLCJza2lwX3NwYWNlcyIsInNraXBfbmV3bGluZSIsInNjYW5fYm9vbCIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJmbXQkMjEiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjIiLCJmbXQkMjMiLCJmbXQkMjQiLCJ0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwibWFrZV9zY2FuZiIsInJlYWRlcnMiLCJzY2FuJDAiLCJzdHJfcmVzdCIsInBhZF9wcmVjX3NjYW5mIiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0Iiwic2NhbiQ1Iiwic2NhbiQ2Iiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsImxhYmVsIiwiZWxlbWVudCIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImdldF9tZXRob2RfbGFiZWxzIiwibmFtZXMiLCJzZXRfbWV0aG9kIiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsInNldF9kYXRhIiwic2V0X25leHQiLCJnZXRfa2V5JDAiLCJnZXRfZGF0YSQwIiwiZ2V0X25leHQiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF9rZXlzIiwibG9va3VwX2tleSIsInRhYmxlcyQwIiwidGFibGVzX2RhdGEiLCJuZXh0JDAiLCJsb29rdXBfdGFibGVzIiwicm9vdCIsInJvb3RfZGF0YSIsImdldF9jb25zdCIsImdldF92YXIiLCJnZXRfZW52IiwiZ2V0X21ldGgiLCJzZXRfdmFyIiwiYXBwX2NvbnN0IiwiYXBwX3ZhciIsImFwcF9lbnYiLCJhcHBfbWV0aCIsImFwcF9jb25zdF9jb25zdCIsImFwcF9jb25zdF92YXIiLCJhcHBfY29uc3RfbWV0aCIsImFwcF92YXJfY29uc3QiLCJhcHBfbWV0aF9jb25zdCIsImFwcF9jb25zdF9lbnYiLCJhcHBfZW52X2NvbnN0IiwibWV0aF9hcHBfY29uc3QiLCJtZXRoX2FwcF92YXIiLCJtZXRoX2FwcF9lbnYiLCJtZXRoX2FwcF9tZXRoIiwic2VuZF9jb25zdCIsInNlbmRfdmFyIiwic2VuZF9lbnYiLCJzZW5kX21ldGgiLCJuZXdfY2FjaGUiLCJtZXRob2RfaW1wbCIsImNsbyIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInNldF9tZXRob2RzIiwic3RhdHMkMCIsImluaXRfbW9kX2Jsb2NrIiwiY29tcHMiLCJtb2R1IiwiaW5pdF9tb2RfZmllbGQiLCJzaGFwZSIsImZuJDAiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfZmllbGQiLCJjbCIsInVwZGF0ZV9tb2RfYmxvY2siLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImNvbW1lbnQkMCIsIm1heWJlX25lc3RlZF9jb21tZW50IiwibWF5YmVfZW5kX2NvbW1lbnQiLCJjb21tZW50IiwiZXNjYXBlIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwiZGVjaW1hbF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsIm1heWJlX2NvbW1lbnQiLCJuZXh0X3Rva2VuIiwiaGtleSIsImNsZWFuIiwiY29udGFpbmVyIiwiaGsiLCJuZXdfZCIsImJ1Y2tldF9sZW5ndGhfYWxpdmUiLCJzdGF0c19hbGl2ZSIsIm9ial9vcHQiLCJjcmVhdGUkNSIsImdldF9rZXkkMSIsImdldF9rZXlfY29weSQwIiwic2V0X2tleSQwIiwidW5zZXRfa2V5JDAiLCJjaGVja19rZXkkMCIsImJsaXRfa2V5JDAiLCJnZXRfZGF0YSQxIiwiZ2V0X2RhdGFfY29weSIsInNldF9kYXRhJDAiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsIm1ha2UkNCIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQ1IiwiYWRkJDEiLCJ0ZXN0X2tleSIsInJlbW92ZSQwIiwiZmluZCQyIiwibGVuZ3RoJDciLCJjbGVhciQzIiwiY3JlYXRlJDYiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQyIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMSIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQ2Iiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJtYWtlJDciLCJhZGQkMiIsInRlc3Rfa2V5cyIsInJlbW92ZSQxIiwiZmluZCQzIiwibGVuZ3RoJDgiLCJjbGVhciQ0IiwiY3JlYXRlJDciLCJsZW5ndGgkOSIsImdldF9rZXkkMiIsImdldF9rZXlfY29weSQxIiwic2V0X2tleSQxIiwidW5zZXRfa2V5JDEiLCJjaGVja19rZXkkMSIsImJsaXRfa2V5JDEiLCJnZXRfZGF0YSQzIiwiZ2V0X2RhdGFfY29weSQxIiwic2V0X2RhdGEkMiIsInVuc2V0X2RhdGEkMSIsImNoZWNrX2RhdGEkMSIsImJsaXRfZGF0YSQxIiwibWFrZSQ4IiwicXVlcnkkMSIsImVxdWFsX2FycmF5Iiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX3F1b3RlIiwicXVvdGVxdW90ZSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZmluZF9iZWciLCJmaW5kX2VuZCIsImdlbmVyaWNfZGlybmFtZSIsImludGVybWVkaWF0ZV9zZXAiLCJiYXNlIiwidHJhaWxpbmdfc2VwIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInF1b3RlIiwicXVvdGVfY29tbWFuZCIsImJhc2VuYW1lIiwiZGlybmFtZSIsImlzX2Rpcl9zZXAkMCIsImlzX3JlbGF0aXZlJDAiLCJpc19pbXBsaWNpdCQwIiwiY2hlY2tfc3VmZml4JDAiLCJjaG9wX3N1ZmZpeF9vcHQkMCIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZCIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImhhc19kcml2ZSIsImlzX2xldHRlciIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMCIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY29uY2F0JDQiLCJjaG9wX3N1ZmZpeCIsImV4dGVuc2lvbl9sZW4iLCJpMCIsInNlYXJjaF9kb3QiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJwcm5nJDAiLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsInRyeV9uYW1lIiwiY291bnRlciQxIiwib3Blbl90ZW1wX2ZpbGUiLCJzdGgkMCIsInBlcm1zIiwic3RoJDEiLCJhZGQkNCIsInN1YiQ0IiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJpbnQzMiQxIiwiaW50NjQkMSIsImludCQyIiwibmF0aXZlaW50JDEiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImluaXQkNiIsImxheW91dCIsImRpbXMiLCJkbGVuIiwic2l6ZV9pbl9ieXRlcyIsImNyZWF0ZSQ4IiwiZ2V0JDQiLCJzZXQkMyIsInNpemVfaW5fYnl0ZXMkMCIsIm9mX3ZhbHVlIiwiY3JlYXRlJDkiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImNfaW5pdCIsImZvcnRyYW5faW5pdCIsImluaXQkNyIsIm9mX2FycmF5IiwiYmEiLCJjcmVhdGUkMTAiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImNfaW5pdCQwIiwiZm9ydHJhbl9pbml0JDAiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiY19pbml0JDEiLCJmb3J0cmFuX2luaXQkMSIsImluaXQkOSIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJ3aXRoX29wZW4iLCJvcGVuZnVuIiwid2l0aF9vcGVuX2JpbiIsIndpdGhfb3Blbl90ZXh0Iiwid2l0aF9vcGVuX2dlbiIsInNlZWsiLCJsZW5ndGgkMTEiLCJpbnB1dF9jaGFyJDAiLCJpbnB1dF9ieXRlJDAiLCJpbnB1dF9saW5lJDAiLCJyZWFsbHlfaW5wdXQkMCIsInJlYWxseV9pbnB1dF9zdHJpbmckMCIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMCIsImJ1ZiQxIiwicmVtIiwid2l0aF9vcGVuJDAiLCJ3aXRoX29wZW5fYmluJDAiLCJ3aXRoX29wZW5fdGV4dCQwIiwid2l0aF9vcGVuX2dlbiQwIiwic2VlayQwIiwicG9zJDAiLCJsZW5ndGgkMTIiLCJleG4iLCJtb2R1bGUiLCJnbG9iYWxUaGlzIiwibnVsbCIsInVuZGVmaW5lZCIsImpzb29fZXhwb3J0cyIsImV2ZW50IiwiU3RyaW5nIiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsInN1Y2MkMCIsInByZWQkMCIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90JDAiLCJvZl9zdHJpbmdfb3B0JDAiLCJ0b19zdHJpbmckMCIsImNvbXBhcmUkMCIsImVxdWFsJDAiLCJzcmMkMCIsImhkciIsImRpZ2VzdCIsImtpbmQiLCJsZW5ndGgiLCJzZXJpYWxpemVyIiwidiIsImhkciQwIiwic3RhdGUiLCJnbyIsImNvbnRpbnVlJDAiLCJsZW4iLCJvZmYiLCJzdHIiLCJzdHIkMCIsImN0eCQxIiwiZW1wdHkkMSIsImVtcHR5JDIiLCJkZWZhdWx0JDAiLCJ6ZXJvIiwiY29uc29sZSQwIiwibGV2ZWwiLCJzIiwibWV0aCIsImNvbnNvbGUiLCJiIiwiZmx1c2giLCJwcGYiLCJob29rIiwiY29uc29sZV9yZXBvcnQiLCJzcmMiLCJvdmVyIiwiayIsIm1zZ2YiLCJrJDAiLCJoZWFkZXIiLCJ0YWdzIiwiZm10IiwiaCIsImNvbnNvbGVfcmVwb3J0ZXIiLCJnaXRfYWZfc2NoZW1lIiwiZ2l0X2FmX3BvcnQiLCJnaXRfYWZfaG9zdG5hbWUiLCJwcF9lcnJvciIsIndpdGhfcmVkaXJlY3RzIiwib3B0IiwiZiIsInVyaSIsInN0aCIsIm1heCIsInRibCIsImdvIiwiYm9keSIsInJlc3AiLCJzdGF0dXNfY29kZSIsImdldCIsImhlYWRlcnMiLCJ4IiwiaGVhZGVycyQwIiwicG9zdCIsImJvZHkkMCIsImNvbnRleHQiLCJjdHgiLCJlZG4iLCJrMSIsImN0eCQwIiwiZWRuJDAiLCJrMSQwIiwiY3R4JDEiLCJwcF9lcnJvciQwIiwiZXJyIiwicHBfd3JpdGVfZXJyb3IiLCJ3cml0ZSIsInQiLCJjcyIsIm91dHB1dCIsIm91dHB1dCQwIiwid3JpdGV2IiwiY3NzIiwiciIsInJlYWQiLCJhZHZlcnRpc2VkX3JlZnMiLCJ1cmkkMCIsImNvbnRlbnRzIiwiY2xvc2UiLCJjb25uZWN0IiwiZW5kcG9pbnQiLCJodHRwX3Byb3RvY29sIiwiaHR0cF9lbmRwb2ludCIsImNvbm5lY3QkMCIsImswIiwiZ2l0X3RyYW5zbWlzc2lvbiIsImdpdF9zY2hlbWUiLCJrMiIsImdpdF91cmkiLCJnaXRfaHR0cF9oZWFkZXJzIiwiaGFuZHNoYWtlIiwidXJpMCIsInVyaTEiLCJmbG93IiwiY3R4JDIiLCJzcGVjIiwib2Zfc3RyaW5nIiwic3RyIiwidG9fc3RyaW5nIiwicmVmZXJlbmNlIiwiaGVhZCIsImJhcmUiLCJidWZmZXJzIiwiaW5pdCIsInJvb3QiLCJjb25maWciLCJjb25maWckMCIsImNvbmZpZyQxIiwiY29uZmlnJDIiLCJyZW1vdGUiLCJzeW1ib2wiLCJhIiwiZSIsImZldGNoJDAiLCJkZXB0aCIsImJyYW5jaCIsImluaXQkMCIsInRlc3RfcG9wdWxhdGUiLCJhZGQiLCJwIiwidGVzdF9wdWxsIiwicmVwbyIsInVwc3RyZWFtIiwic3RyaW5nX29mX2NvZGUiLCJjaCIsImkiLCJwcF9jb2RlIiwidiIsInBwX21vZHMiLCJldnRfb2ZfanNrZXkiLCJldnQiLCJzJDAiLCJzJDEiLCJncmF5IiwibGlnaHQiLCJkYXJrIiwiYmxhY2siLCJyZWQiLCJncmVlbiIsInllbGxvdyIsImJsdWUiLCJtYWdlbnRhIiwiY3lhbiIsIndoaXRlIiwibGlnaHRibGFjayIsImxpZ2h0cmVkIiwibGlnaHRncmVlbiIsImxpZ2h0eWVsbG93IiwibGlnaHRibHVlIiwibGlnaHRtYWdlbnRhIiwibGlnaHRjeWFuIiwibGlnaHR3aGl0ZSIsInN5bWJvbCQwIiwicmVwbGFjZSIsInByZXYiLCJuZXh0IiwicHAiLCJidHciLCJidWYiLCJta3N0cmluZyIsInJlcyIsImFkZF9kZWNpbWFsIiwiZDEiLCJkMiIsImQzIiwiYWRkX2NoYXJzIiwiYyIsIm4iLCJzdWIwY3AiLCJsZW4iLCJvZl9jaGFyc19yZXYiLCJicyIsInhzIiwiZXF1YWwkMCIsIm9mX3N0cmluZyQwIiwidG9fc3RyaW5nJDAiLCJvZl91Y2hhcnMiLCJ1Y3MiLCJyZXBsaWNhdGVjIiwidyIsInBwJDAiLCJwcCQxIiwidW5kZXJsaW5lIiwic2l6ZSIsIm1lcmdlJDAiLCJzMiIsInNldCQwIiwidmciLCJyZXBsYWNlJDAiLCJwcCQyIiwiZXF1YWwkMSIsImVtcHR5JDMiLCJkYXJrJDAiLCJzeW1ib2wkMSIsImExIiwiYTIiLCJyZXBsYWNlJDEiLCJmZyIsImJnIiwiZm9udCIsIm1lcmdlJDEiLCJzZXQkMSIsIm1lbnVfbWFpbiIsIm1lbnVfc3ViIiwiY2xpY2thYmxlIiwiY3Vyc29yIiwiZW1wdHkkNCIsImFsbCIsInAyX21heCIsInAxIiwicDIiLCJib3VuZHNfc2VnbWVudCIsImFzY2VuZGVyIiwic2l6ZSQwIiwiYWR2YW5jZSIsInltYXgiLCJ5bWluIiwicGFyYW0kMSIsInQyIiwidDEiLCJ0MiQwIiwidDEkMCIsInAxJDAiLCJwMiQwIiwidDIkMSIsInQxJDEiLCJyaWdodCIsImxlZnQiLCJib3R0b20iLCJ0b3AiLCJ0JDAiLCJwJDAiLCJlbXB0eSQ1Iiwidm9pZCQwIiwiYXR0ciIsImEwIiwic3ltYm9sJDIiLCJzeW1ib2wkMyIsInN5bWJvbCQ0IiwiaGNyb3AiLCJpbWciLCJ2Y3JvcCIsImNyb3AiLCJsIiwic3RoJDAiLCJzdGgkMSIsInN0aCQyIiwiaW1nJDAiLCJocGFkIiwidnBhZCIsInBhZCIsImNvbmNhdG0iLCJ6IiwieHMkMCIsImFjY3VtIiwieHMkMSIsImhjYXQiLCJ2Y2F0IiwiemNhdCIsInRleHQkMCIsInR4Iiwic3RyaW5nIiwidWNoYXJzIiwibGluc3BjbSIsIm0iLCJ0YWJ1bGF0ZSIsIm0kMCIsIm4kMCIsInkiLCJjaGFycyIsImN0b3IiLCJ3JDAiLCJoJDAiLCJsaW5lIiwiY2hhciQwIiwic3RyX29mX2JveCIsImZpbGxfYm94IiwiY29sb3IiLCJwYXRoX2JveCIsIndpZHRoIiwidmNhdCQwIiwiZCIsInBwJDMiLCJjb21wb3NlIiwiYSQwIiwiYSQxIiwiYSQyIiwidCQxIiwiZGltIiwic2VnbWVudF9rZXJuX2NhY2hlIiwic2VnbWVudCIsIm1ldHJpY3MiLCJzeiIsIm5vZGUiLCJ0ZXh0IiwiaTIiLCJpMSIsImkyJDAiLCJpMSQwIiwiaTIkMSIsImkxJDEiLCJwMSQxIiwicDIkMSIsImkkMCIsInAwIiwicDEkMiIsImkkMSIsInAwJDAiLCJwMSQzIiwibWF4aSIsIm1pbmkiLCJtYWtlJDAiLCJlbXB0eSQ2Iiwic3RhdHVzJDAiLCJoYXNfZm9jdXMiLCJjbG9jayIsInJlcXVlc3RfdmFyIiwicmVxdWVzdCIsInJlbGVhc2UiLCJtZXJnZSQyIiwiczEiLCJwcF92YXIiLCJwcF9zdGF0dXMiLCJtYWtlJDEiLCJ2JDAiLCJwcF9kaXJlY3Rpb24iLCJkaXIiLCJwcCQ0IiwiZyIsInBhaXIiLCJtYWtlJDIiLCJzaGlmdCIsImZzdCIsInNpemUkMSIsInNuZCIsIm1heV9oYW5kbGUiLCJwcF9tYXlfaGFuZGxlIiwicHBfa2V5IiwiZmxhZ3Nfbm9uZSIsImZsYWdfdHJhbnNpZW50X3NlbnNvciIsImZsYWdfcGVybWFuZW50X3NlbnNvciIsImxheW91dF9zcGVjIiwibGF5b3V0X3dpZHRoIiwibGF5b3V0X3N0cmV0Y2hfd2lkdGgiLCJsYXlvdXRfaGVpZ2h0IiwibGF5b3V0X3N0cmV0Y2hfaGVpZ2h0IiwicHBfbGF5b3V0X3NwZWMiLCJzaCIsInN3IiwiY2FjaGUiLCJpbml0JDIiLCJhdG9tIiwic3BhY2UiLCJtb3VzZV9hcmVhIiwia2V5Ym9hcmRfYXJlYSIsImZvY3VzIiwiZm9jdXMkMCIsImZvY3VzJDEiLCJzaGlmdF9hcmVhIiwic2l6ZV9zZW5zb3IiLCJoYW5kbGVyIiwidHJhbnNpZW50X3NlbnNvciIsImZyYW1lX3NlbnNvciIsInBlcm1hbmVudF9zZW5zb3IiLCJwcmVwYXJlX2dyYXZpdHkiLCJyZXNpemUiLCJzaCQwIiwicmVzaXplX3RvIiwiZXZlbnRfZmlsdGVyIiwiam9pbl94Iiwiam9pbl95Iiwiam9pbl96IiwicGFja194IiwicGFja195IiwicGFja196IiwiaGNhdCQwIiwidmNhdCQxIiwiemNhdCQwIiwiaGFzX2ZvY3VzJDAiLCJwcCQ1IiwicHBfZGVzYyIsImRlc2MiLCJkZXNjJDAiLCJkZXNjJDEiLCJkZXNjJDIiLCJ5JDAiLCJ4JDAiLCJuJDEiLCJuJDIiLCJiJDAiLCJiJDEiLCJpdGVyJDAiLCJ1aSIsInUyIiwidTEiLCJ1IiwibWFrZSQzIiwic2l6ZSQyIiwic29sdmVfZm9jdXMiLCJhdXgiLCJzcGxpdCIsInNhIiwic2IiLCJ0b3RhbCIsInN0cmV0Y2giLCJmbGV4IiwicmF0aW8iLCJwYWNrIiwiZml4ZWQiLCJnMSIsImcyIiwidjIiLCJ2MSIsImdyYXZpdHkiLCJ2MSQwIiwiaGFzX3RyYW5zaWVudF9zZW5zb3IiLCJmbGFncyIsImhhc19wZXJtYW5lbnRfc2Vuc29yIiwidXBkYXRlX3NlbnNvcnMiLCJveCIsIm95Iiwib3gkMCIsIm95JDAiLCJzdyQwIiwidWkkMCIsInNoJDEiLCJzdyQxIiwib3kkNCIsIm94JDQiLCJzZW5zb3IiLCJzZW5zb3IkMCIsInNlbnNvciQxIiwic2Vuc29yJDIiLCJydyIsImR4IiwicmgiLCJkeSIsIm95JDEiLCJveCQxIiwic3kiLCJzeCIsInQkMiIsIm95JDIiLCJveCQyIiwiYnciLCJhdyIsIm94JDMiLCJiaCIsImFoIiwib3kkMyIsInVpJDEiLCJ1cGRhdGVfZm9jdXMiLCJ0X3NpemVfb2ZfdCIsInRfc2l6ZV9kZXNjX29mX3QiLCJoJDUiLCJ3JDEiLCJ2JDEiLCJ2JDIiLCJ0JDMiLCJ2JDMiLCJ0JDQiLCJ0JDUiLCJ2JDQiLCJ0JDYiLCJiJDIiLCJiJDMiLCJhJDMiLCJ1cGRhdGUiLCJzdCIsImJ0biIsImhhbmRsZSIsImYkMCIsInJoJDAiLCJvZmZzZXR5IiwicmVsZWFzZV9ncmFiIiwicmVzaXplX2NhbnZhcyIsImltYWdlIiwicmVzaXplX2NhbnZhczIiLCJzYW1lX3NpemUiLCJkaXNwYXRjaF9tb3VzZSIsImV2ZW50IiwiZHJhZyIsInJlbmRlcl9ub2RlIiwidngxIiwidnkxIiwidngyIiwidnkyIiwiaW1hZ2UkMCIsImNhY2hlJDAiLCJpbWFnZSQxIiwidngiLCJ2eSIsImNhY2hlJDEiLCJ2eCQwIiwidnkkMCIsImltYWdlJDIiLCJjYSIsImNiIiwidngkMSIsInZ5JDEiLCJpbWFnZSQzIiwiY2EkMCIsImNiJDAiLCJ2eCQyIiwidnkkMiIsImltYWdlJDQiLCJjYSQxIiwiY2IkMSIsInZ4JDMiLCJ2eSQzIiwiaW1hZ2UkNSIsInZpZXciLCJkaXNwYXRjaF9yYXdfa2V5Iiwia2V5IiwiaXRlciIsInN0JDAiLCJ0bCIsInN0JDIiLCJzdCQzIiwic3QkMSIsImdyYWJfZm9jdXMiLCJkaXNwYXRjaF9mb2N1cyIsImRpc3BhdGNoX2tleSIsImtleSQwIiwibW9kcyIsImtleSQxIiwiZGlyJDAiLCJkaXIkMSIsImtleSQyIiwiZGlzcGF0Y2hfZXZlbnQiLCJtb3VzZSIsImNvcHlfdW50aWwiLCJxdWl0IiwiaW5wdXQiLCJxdWl0JDAiLCJwdXNoIiwic3RyZWFtIiwicmVzdWx0IiwicmVuZGVyIiwiZXZlbnRzIiwiZG9jIiwicmVuZGVyZXIiLCJwdXNoX3JlZnJlc2giLCJyZWZyZXNoX3N0cmVhbSIsImRvX3F1aXQiLCJxdWl0JDEiLCJkb19xdWl0JDAiLCJldmVudHMkMCIsInJlZnJlc2giLCJwcm9jZXNzX2V2ZW50Iiwic3RyaW5nJDAiLCJpbnQkMCIsImJvb2wiLCJmbG9hdCQwIiwicHJpbnRmIiwia3ByaW50ZiIsImtmbXQiLCJ3aW5kb3dfbWFuYWdlciIsImJhc2UiLCJvdmVybGF5cyIsImNvbXBvc2l0aW9uIiwiY29tcG9zaXRlIiwid2luZG93X21hbmFnZXJfdmlldyIsIndtIiwid2luZG93X21hbmFnZXJfb3ZlcmxheXMiLCJtZW51X292ZXJsYXkiLCJhcm91bmQiLCJyb3ciLCJoX3BhZCIsInZfcGFkIiwiY2F0Y2hhbGwiLCJzY3JvbGxfc3RlcCIsInNjcm9sbF9hcmVhIiwib2Zmc2V0Iiwib2Zmc2V0JDAiLCJzY3JvbGwiLCJkX3giLCJkX3kiLCJzX3kiLCJzX3giLCJzX3gkMCIsInNfeSQwIiwiZm9jdXNfaGFuZGxlciIsIm1haW5fbWVudV9pdGVtIiwib3ZlcmxheSIsIm9uX2NsaWNrIiwic3ViX21lbnVfaXRlbSIsInN1Yl9lbnRyeSIsImhfcGFuZSIsInN0YXRlX3ZhciIsInN0YXRlIiwicG9zIiwibCQwIiwiciQwIiwic3BsaXR0ZXIiLCJhdCIsIm1heCQwIiwicG9zJDAiLCJzcGxpdHRlciQwIiwidl9wYW5lIiwiYm90IiwidG9wJDAiLCJib3QkMCIsImVxX3VjX2MiLCJ1YyIsImVkaXRfZmllbGQiLCJvbl9jaGFuZ2UiLCJmb2N1c19oIiwiY29udGVudCIsIm9uX2NoYW5nZSQwIiwidGV4dCQxIiwicG9zJDEiLCJsaW5lX2VtcHR5IiwibGluZV9tYWtlIiwibGluZV9hcHBlbmQiLCJ0YWJsZSIsImNvcHlfbGluZV9jdXJzb3IiLCJ4aSIsInlzIiwieWkiLCJyb3dfb2ZfY3Vyc29yIiwibGluZV9vZl9jdXJzb3IiLCJjdXJzb3JfbW92ZSIsImN1cnNvcl9yb3ciLCJuZXdfcm93IiwibmV3X2xpbmUiLCJjdXJzb3JfbGluZSIsIm11bHRpZmllbGRfb2Zfc3RyaW5nIiwiZm9jdXNfY29tcGFyZSIsImZpbmRfZm9jdXMiLCJmb2N1c19tb3ZlIiwiZWRpdF9hcmVhIiwiZmlyc3QiLCJyb3dfcHJldiIsImxpbmVfcHJldiIsInN0cl9wcmV2Iiwib2xkX3JvdyIsIm9sZF9saW5lIiwib19zdHIiLCJuX3N0ciIsInRhYnMiLCJjdXIiLCJpZHhfc2VsIiwidGFiX2Fubm90IiwidGFiX2JhciIsInVuZm9sZGFibGUiLCJzdW1tYXJ5IiwiZm9sZGVkX2J5X2RlZmF1bHQiLCJvcGVuZWQiLCJmb2xkX2NvbnRlbnQiLCJvcCIsInN1bW1hcnkkMCIsImZvbGQiLCJzcGVjX3N1bSIsInNwZWNfZm9sZCIsInRvb19iaWciLCJoYm94IiwidmJveCIsInpib3giLCJ2bGlzdCIsImJ1bGxldCIsInZsaXN0X3dpdGgiLCJmaWx0ZXIiLCJmaWx0ZXJfbWFwIiwiYWNjIiwiYWNjJDAiLCJsJDEiLCJhY2MkMSIsImxfZmlsdGVyIiwidmxpc3Rfb2ZfdGV4dCIsImtleV9oYW5kbGVyIiwiYnV0dG9uX29mIiwiYnV0dG9uIiwiZmlsZV9zZWxlY3QiLCJhYnMiLCJwYXRoIiwicF9yZWwiLCJhcnIiLCJzdGFydCIsInRvZ2dsZSIsImxibCIsIm1rX2J1dCIsInN0X3YiLCJsYmxfdiIsIm5ld19zdCIsInRvZ2dsZSQwIiwidG9nZ2xlJDEiLCJhZGp1c3Rfb2Zmc2V0IiwidmlzaWJsZSIsIm9mZiIsIm9mZiQwIiwib2ZmJDEiLCJzY3JvbGxiYXJfd2lkdGgiLCJkZWNyX2lmIiwiY29uZCIsInNjcm9sbGJhcl9iZyIsInNjcm9sbGJhcl9mZyIsInNjcm9sbGJhcl9jbGlja19zdGVwIiwic2Nyb2xsYmFyX3doZWVsX3N0ZXAiLCJoc2Nyb2xsYmFyIiwic2V0IiwicHJlZml4Iiwic3VmZml4IiwibW91c2VfaGFuZGxlciIsInZzY3JvbGxiYXIiLCJzY3JvbGxib3giLCJ1cGRhdGVfc2l6ZSIsIm1lYXN1cmVfc2l6ZSIsImNvbXBvc2VfYmFycyIsImh2aXNpYmxlIiwidnZpc2libGUiLCJodmlzaWJsZSQwIiwidnZpc2libGUkMCIsInN0YXRlX3ciLCJzdGF0ZV9oIiwic3RhdGVfeCIsInN0YXRlX3kiLCJzZXRfdnNjcm9sbCIsInNldF9oc2Nyb2xsIiwic2NhbGVfY2FudmFzIiwiY2FudmFzIiwieCIsImRwciIsInJlY3QiLCJ3aWR0aCIsImhlaWdodCIsIndpZHRoJDAiLCJoZWlnaHQkMCIsIndlYmdsX2luaXRpYWxpemUiLCJhdHRycyIsImN0eCIsImdyYXBodl9pbml0aWFsaXplIiwid2ViZ2xfY3R4IiwidmciLCJyZXF1ZXN0X2FuaW1hdGlvbl9mcmFtZSIsInMiLCJ0IiwidGltZSIsInJlbmRlcl9zdHJlYW0iLCJyZW5kZXIiLCJpIiwiZGV2aWNlX3JhdGlvIiwiZ3Jhdml0eV9wYWQiLCJncmF2aXR5X2Nyb3AiLCJib2R5Iiwid20iLCJ1aSIsInJvb3QiLCJwdXNoX2V2ZW50IiwiZXZlbnRzIiwiaW1hZ2VzIiwib3B0IiwicCIsIm0iLCJwJDAiLCJldiJdLCJzb3VyY2VzIjpbIiIsIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK2Zvcm1hdC5qcyIsIi9idWlsdGluLytpZWVlXzc1NC5qcyIsIi9idWlsdGluLytmc19ub2RlLmpzIiwiL2J1aWx0aW4vK2ZzLmpzIiwiL2J1aWx0aW4vK3VuaXguanMiLCIvYnVpbHRpbi8rc3lzLmpzIiwiL2J1aWx0aW4vK2ZzX2Zha2UuanMiLCIvYnVpbHRpbi8rbmF0LmpzIiwiL2J1aWx0aW4vK2dyYXBoaWNzLmpzIiwiL2J1aWx0aW4vK21hcnNoYWwuanMiLCIvYnVpbHRpbi8raW8uanMiLCIvYnVpbHRpbi8rZ2MuanMiLCIvYnVpbHRpbi8rYmlnYXJyYXkuanMiLCIvYnVpbHRpbi8rY29tcGFyZS5qcyIsIi9ob21lL2NxYy8ub3BhbS9zd2l0Y2gtZ3JhcGh2LXdlYmdsLWlybWluL2xpYi9iaWdzdHJpbmdhZi9ydW50aW1lLmpzIiwiL2J1aWx0aW4vK2pzbGliLmpzIiwiL2J1aWx0aW4vK3BhcnNpbmcuanMiLCIvYnVpbHRpbi8raW50cy5qcyIsIi9idWlsdGluLytoYXNoLmpzIiwiL2J1aWx0aW4vK2JpZ3N0cmluZy5qcyIsIi9idWlsdGluLytqc2xpYl9qc19vZl9vY2FtbC5qcyIsIi9idWlsdGluLytvYmouanMiLCIvYnVpbHRpbi8rYmFja3RyYWNlLmpzIiwiL2J1aWx0aW4vK2xleGluZy5qcyIsIi9idWlsdGluLythcnJheS5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK21kNS5qcyIsIi9idWlsdGluLytzdHIuanMiLCIvaG9tZS9jcWMvLm9wYW0vc3dpdGNoLWdyYXBodi13ZWJnbC1pcm1pbi9saWIvY3N0cnVjdC9jc3RydWN0LmpzIiwiL3Vzci9saWIvb2NhbWwvdWNoYXIubWwiLCIvdXNyL2xpYi9vY2FtbC9pbnQ2NC5tbCIsIi91c3IvbGliL29jYW1sL2xleGluZy5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi91c3IvbGliL29jYW1sL3ByaW50ZXhjLm1sIiwiL3Vzci9saWIvb2NhbWwvZmlsZW5hbWUubWwiLCIvdXNyL2xpYi9vY2FtbC9jb21wbGV4Lm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0QmFzaWNzLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsQXRvbWljLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RkbGliLm1sIiwiL3Vzci9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi91c3IvbGliL29jYW1sL3JhbmRvbS5tbCIsIi91c3IvbGliL29jYW1sL2Zsb2F0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbGlzdC5tbCIsIi91c3IvbGliL29jYW1sL2luX2NoYW5uZWwubWwiLCIvdXNyL2xpYi9vY2FtbC9vdXRfY2hhbm5lbC5tbCIsIi91c3IvbGliL29jYW1sL2VpdGhlci5tbCIsIi91c3IvbGliL29jYW1sL25hdGl2ZWludC5tbCIsIi91c3IvbGliL29jYW1sL29iai5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvdXNyL2xpYi9vY2FtbC9sYXp5Lm1sIiwiL3Vzci9saWIvb2NhbWwvc2VxLm1sIiwiL3Vzci9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL3Vzci9saWIvb2NhbWwvcmVzdWx0Lm1sIiwiL3Vzci9saWIvb2NhbWwvYm9vbC5tbCIsIi91c3IvbGliL29jYW1sL2NoYXIubWwiLCIvdXNyL2xpYi9vY2FtbC9ieXRlcy5tbCIsIi91c3IvbGliL29jYW1sL2ludC5tbCIsIi91c3IvbGliL29jYW1sL3N0cmluZy5tbCIsIi91c3IvbGliL29jYW1sL3VuaXQubWwiLCIvdXNyL2xpYi9vY2FtbC9tYXJzaGFsLm1sIiwiL3Vzci9saWIvb2NhbWwvYXJyYXkubWwiLCIvdXNyL2xpYi9vY2FtbC9pbnQzMi5tbCIsIi91c3IvbGliL29jYW1sL3BhcnNpbmcubWwiLCIvdXNyL2xpYi9vY2FtbC9zZXQubWwiLCIvdXNyL2xpYi9vY2FtbC9tYXAubWwiLCIvdXNyL2xpYi9vY2FtbC9zdGFjay5tbCIsIi91c3IvbGliL29jYW1sL3F1ZXVlLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL3Vzci9saWIvb2NhbWwvYnVmZmVyLm1sIiwiL3Vzci9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL3Vzci9saWIvb2NhbWwvYXJnLm1sIiwiL3Vzci9saWIvb2NhbWwvZnVuLm1sIiwiL3Vzci9saWIvb2NhbWwvZ2MubWwiLCIvdXNyL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvdXNyL2xpYi9vY2FtbC9oYXNodGJsLm1sIiwiL3Vzci9saWIvb2NhbWwvd2Vhay5tbCIsIi91c3IvbGliL29jYW1sL2Zvcm1hdC5tbCIsIi91c3IvbGliL29jYW1sL3NjYW5mLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxPTy5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbE1vZC5tbCIsIi91c3IvbGliL29jYW1sL2dlbmxleC5tbCIsIi91c3IvbGliL29jYW1sL2VwaGVtZXJvbi5tbCIsIi91c3IvbGliL29jYW1sL2JpZ2FycmF5Lm1sIiwiIiwiIiwiIiwiL3Vzci9saWIvb2NhbWwvaW50MzIubWxpIiwiL3Vzci9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL3dvcmtzcGFjZV9yb290L2h1bWFuLm1sIiwiL3dvcmtzcGFjZV9yb290L2Jvb3RfanMubWwiLCIvdXNyL2xpYi9vY2FtbC9zdGRfZXhpdC5tbCJdLCJtYXBwaW5ncyI6Ijs7ZUFDQyxTQUFVQTtXQUNGQzs7OztLQUNMQztxQkFDRTtzQkFDQztVQUFzQkYsOENBRWhCRztRQUNIQzttQkFFUixTQUFTRDtxQkFDUCxnQkFBVyxJQUFQRSxPQUFTSCxRQUFRSTtNQUNyQkQsb0JBQW9CQTthQUNiTCxtQ0FDVCxlQWJEO0dBY0NBOzs7NkJDMk5GLFNBQVNPLG1CQUFtQkM7Z0NBQUssbUNBQVEsb0NBQVk7OEJDekxyRCxTQUFTQyxnQkFBZ0JDLEVBQUdDO2dDQUMxQixHQUFHRDtrQ0FBUTtnQ0FDWCxHQUFJQztrQ0FBVSxrQ0FBUTtnQkFBU0Q7Z0NBQy9CO2lDQUFNO2tDQUFRO2dDQUNkO2tDQUFRLDJCQUNOLEdBQUlBLE1BQU9FLEtBQUtEO1FBQ2hCRDtrQ0FDQSxHQUFJQTtvQ0FBUSxPQUFPRTtRQUNuQkQsS0FBS0E7UUFDTEU7a0NBQ0EsR0FBSUE7b0NBQVEsMEJBQ1YsdUNBS047NEJEN0NBLHlCQUFzQjtLQUFsQkM7K0JBQW9COzJCRUF4QixTQUFTRSxvQkFBcUJDOzhCQUFPLE1BQU1BLDJCQUFLOzZCQzJDaEQsMEJBQXFCO0tBQWpCQzs7MkJESEosU0FBU0M7NkJBQ1A7UUFBb0JELHlEQUN0Qjs0QkZ0Q0EsU0FBU0UsUUFBU0MsR0FBR0MsR0FBR0M7TUFDdEJyQixVQUFVbUI7TUFDVm5CLFVBQVVvQjtNQUNWcEIsVUFBVXFCLG1DQUNaO0lBQ0FI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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUI7Ozs7Ozs7ZXVCbldEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDa0JLQztLQUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ3dCQUM7S0FDQUM7S0FDQUM7S0FJQUM7S0FDQUM7Ozs7S0N6QkFDO0tBbUhBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDbzlFTUM7S0FRUUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDbGxGZEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NzRUVDO0tBQ0FDO0tBQ0FDO0tBQ0FDOzs7O0tBb0NBQztLQUNBQztLQUNBQztLQUNBQzs7O0tBbUlBQztLQUNBQztLQUNBQztLQUNBQzs7O0tDeFBGQztLQUNBQztLQUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2FDMGZJQzs7bURBa0NZOztrREFsQ1o7O3FEQUtKO1dBRFFDOztz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YXJGO2dDQUFJO2VNMWNqQnNDLE9OMGNhdEMsNEJBQTBCOzhCQTNLOUIsU0MzSlRzRixZRHVVWXRGO2dDQUFJO2VNM2NoQnNDLE9OMmNZdEMsNEJBQXlCOzhCQTVLNUIsU0MxSlR1RixVRHVVVWpLO2dDQUF5QjtlTTVjbkNnSCxpQ040Y21DLGNBQXpCaEgsNkJBQTBDOzhCQTdLM0MsU0N6SlRrSyxZRHVVWWhHO2dDQUF5QjtlTTdjckM4QyxpQ042Y3FDLFVBQXpCOUMsNkJBQTRDOzhCQTlLL0MsU0N4SlRpRyxjRHVVY3pGOytCQUNoQjtRTS9jRXNDLE9OOGNjdEM7Z0NBQ1E7UU0vY3RCc0M7Z0NOK2MrQztlTS9jL0NBLGlDTitjMkQ7OEJBaExsRCxTQ3ZKVG9EO2dDRHdVbUI7UU1oZG5CcEQ7Z0NOZ2Q0QztlTWhkNUNBLGlDTmdkd0Q7OEJBakwvQyxTQ3RKVHFELFdEMlVXL0M7Z0NBQUk7ZU1uZGZMLE9ObWRXSyw0QkFBd0I7OEJBckwxQixTQ3JKVGdELGFEMlVhNUY7Z0NBQUk7ZU1wZGpCdUMsT05vZGF2Qyw0QkFBMEI7OEJBdEw5QixTQ3BKVDZGLFlEMlVZN0Y7Z0NBQUk7ZU1yZGhCdUMsT05xZFl2Qyw0QkFBeUI7OEJBdkw1QixTQ25KVDhGLFVEMlVVeEs7Z0NBQXlCO2VNdGRuQ2lILGlDTnNkbUMsY0FBekJqSCw2QkFBMEM7OEJBeEwzQyxTQ2xKVHlLLFlEMlVZdkc7Z0NBQXlCO2VNdmRyQytDLGlDTnVkcUMsVUFBekIvQyw2QkFBNEM7OEJBekwvQyxTQ2pKVHdHLGNEMlVjaEc7K0JBQ2hCO1FNemRFdUMsT053ZGN2QztnQ0FDUTtRTXpkdEJ1QztnQ055ZCtDO2VNemQvQ0EsaUNOeWQyRDs4QkEzTGxELFNDaEpUMEQ7Z0NENFVtQjtRTTFkbkIxRDtnQ04wZDRDO2VNMWQ1Q0EsaUNOMGR3RDs4QkE1TC9DLFNDL0lUMkQ7Z0NEK1VlO1FNL2RmNUQ7Z0NOK2RlO2VLL2RmRCxnQ0wrZDZDOzhCQWhNcEMsU0M5SVQ4RDtnQ0QrVWM7O2lDQUFhOztnQ0FBYTs7OEJBak0vQixTQzdJVEM7Z0NEK1VrQjtn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T0FDQUM7T0FDQU87T0FDQUQ7T0FDQUw7T0FPQTIxRjtPQUdBQztPQUdBQztPQUdBQztPQUNBQztPQUNBQztPQUNBNzBGO09BQ0FDO09BQ0F5RTtPQUNBdEY7T0FDQXFGO09BQ0FEO09BQ0EvRTtPQUNBRjtPQUNBRztPQUNBRztPQUNBc0U7O29CaEI5REw7Ozs7Ozs7Ozs7ZXVEQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0RDQ1kyd0Y7cUJBQU8sTUFBTUEsaUJBQXZCO2dERERGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7eUJDQ1VDLHVCQUF1QkEsa0JBQW1CQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VERHBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aURDQ0NBOzBDREREO3NEQ0NDQzsyQ0RERCxZQ0NDQzswQ0RERDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQ0NDQzs0Q0RERDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29EQ0NDQyw0Q0RERDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpRENDQ0M7NkNEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NxQ0NDO0tBR0FDO0tBR0FDO0tBdUNBQztLQUdBQztLQUdBQztLQUdBQztLQUdBQztLQWFBQztLQXFFQUM7S0FLQUM7S0FzQkFDO0tBWUFDO3lDRHZORDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eURDMk1DRCxVQXRLQVg7OzsrQ0RyQ0QsV0MyTUNXO3dDRDNNRDs7eURDMk1DQSxVQXRLQVg7MENEckNEOzs7Ozs7Ozs7Ozs7Ozs7Ozt5REMyTUNXLFVBdEtBWDs7OytDRHJDRCxXQzJNQ1c7d0NEM01EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQ3FDQ1g7T0FHQUM7T0FHQUM7aUNEM0NEOzs7Ozs7T0NrRkNDO09BR0FDO09BR0FDO09BR0FDO09BR0FDOzs7O09BYUFDOzs7Ozs7Ozs7Ozs7O09BcUVBQztPQUtBQztPQXNCQUM7T0FZQUM7Ozs7Ozs7Ozs7Ozs7aUJEdk5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQ0NFRzs7O3FDQUVnQjtxREFIZEM7b0NBR2MsU0FFZEM7c0NBQU07O2lEQUVHO2lEQURBOztpREFFRDtrREFDRyx1REFBd0I7b0NBTnJCLFNBZWRDO01BQU9BLE9BQU9DLEtBQUtDLE9BQU9DLFdBQVdDO3VDQUNwQjs7b0RBREVGLE9BQWtCRTt3Q0FDN0I7OytDQURNSDt3Q0FDTjt3Q0FDRTt5REFGMkJHLEVBQVhEO3VDQUVoQixTQUNKSTs7Ozs0Q0FLSTs7cURBQ0E7c0JBVEhQOzJDQUtPOztXQUR1Q1E7V0FBTEM7V0FBTEM7V0FBTEM7OzRDQUN4Qjs2REFEd0JBLElBQUtELElBQUtEOzRDQUNsQyxLQUxQVDs0Q0FNTzs2REFETlk7NENBRUc7d0RBSDBDSixXQUFMQztpQkFFeENJOzs7dUNBSkU7NkNBRkhiO3dDQUVHLEtBRkhBO3NDQVdOOytEQVZDSztlQUNBQyx1Q0FTMEM7b0NBMUI5Qjs7U0FIZFIsVUFLQUMsSUFhQUM7b0NBZmM7OztpQkRKbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDdXFCT2M7S0FpQ0VDOztLQWlsQkFDO0tBNENBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQXB4Q0wsU0FER0MsVUFDQ0MsTUFBTUM7NkJBQ1QsT0FER0Q7bUJBQ0NFOzs7Ozs2QkFRSjs7MERBVFNEOzhCQVdKLEtBQVRFOzhCQUFvQzthQVY1QkQ7OEJBVTRCLGdDQUVUOzJCQWJ4Qjs7OzZCQWdCUztxQ0FDSkc7NkJBQ0Y7OytCQUFRLDBDQUZORDsrQkFFTTs2QkFDUix1Q0FIRUE7NkJBR0YsT0FESUgsd0JBRUg7NEJBSks7OzRCQU1QLDBDQU5HRzs0QkFNSDs7Z0JBR1FKLE1BQU1DO2dDQUNYOztrQ0FBNEM7dURBRGpDQTtrQ0FDaUMsUUFEdkNEO2tDQUN1QztrQ0FBcEM7OztpQ0FBRDs7aUVBQThDOzJCQUp4RCxTQU1DUSxlQUFlQyxJQUFLVCxNQUFPVSxLQUFLQyxFQUFFQzs2QkFDcEMsU0FBSUM7K0JBQ0Y7O2lDQUFROytCQUNSLGlDQUhvQmIsTUFFaEJDOytCQUFKLHVCQUNBLFNBUEFNOytCQVFBLHVDQUpvQlAsTUFFaEJDOytCQUFKLHVCQUVBOytCQUNBLGtDQUwyQlM7K0JBSzNCLHlDQUxnQ0MsNEJBTTVCOzZCQUxOO2VBRG9DQzt3QkFRdkJFLE9BQVFDLEtBQUtDO3dDQUMxQixHQURhRjsyQ0FJRDs4Q0FKQ0E7NENBSUQ7NENBQW9DOzZEQUp0QkU7NENBSXNCOzRDQUFkOzs7K0NBWDlCSCxJQWRGUCxTQXlCS1c7eUNBREc7OzBDQUErQjsyREFIZkQ7MENBR2U7MENBQVQ7Ozs2Q0FWNUJILElBZEZQLGlDQXlCOEQ7MkJBbEIvRCxTQW9CQ1k7OEJBQXNCLFVBZHRCVix1Q0Fjc0Q7MkJBcEJ2RDs7U0F2QkNULFVBZ0JBTyxJQUVFRCxNQU9GRSxLQUlBQyxlQWNBVTs0QkFwQkQ7OzZCQXdCZTs7MkJBQWxCOzJCQXhCRzs0QkF3Qkg7OzJCQUNBOzJCQXpCRzs0QkF5Qkg7NkJBV0U7Ozs4QkFFa0M7Ozs2QkFHbEM7O3FDQUVFSTsrQkFBeUIsb0RBQTJCOzRCQUZ0RCxTQUlFQyxlQUFpQkMsSUFBV0MsRUFBRUM7OEJBQ2hDLEdBRG1CRjtnQ0FBTTtxQ0FBTkE7WUFBTUc7O1dBQU5DOzhCQUNuQixHQURtQkE7aUNBQ0Y7OzsrQkFBNEI7Ozs7Z0NBQ25DOzt3Q0FDRkUsR0FBR0YsSUFBSUY7Z0NBQ2I7bUNBQVU7Ozs7b0NBRUE7cURBRktNO29DQUVMOzs7O2tDQUVQO29EQUhDQztvQ0FJRjs7c0NBQ1U7dURBTkdEO3NDQU1IOzs7O3VDQUVPOzs7Ozt5REFWakJILElBVU9IOzs7O2dCQVRBRTt5Q0FZSDs7Ozt1QkFiSkMsSUFVT0g7eUNBR0g7Ozs2Q0FFQTs2QkFkR0UsWUFTQUYsNkJBS2U7MENBRmxCOzBDQUNBOzJEQVplSzt5Q0FZZjs7dUNBSEE7aUNBVFNDLEtBQU1EO3FDQWNUOytCQWRHQyxLQUFNRDttQ0FlaEI7NkJBZlVDLEtBQU1ELCtCQWVPO2dDQWY1Qjs7NkNBSjRCTixFQUdmQztnQ0FDYjsrREFlNEI7K0JBakJwQixtQ0FGU0UsSUFBYUYsNkJBcUJ0Qjs0QkF6QlYsU0EyQkVRLFVBQWFWLElBQWNFOzhCQUM3QixHQURlRjtnQ0FBVTtxQ0FBVkE7Z0JBQVVHOztXQUFWUTs4QkFDZjs7OzRDQUFvQjsrQkFBQzs7OzttQkQ1STFCOzsrQkM2SW1COzs7aURBRkNBOytCQUVELFNBQ1ZWLEVBQUVDO2lDQUFNOzRDQURSVyxXQUNFWCw2QkFBNEM7K0JBRHBDO2lDQUVZLDZCQUFZSztpQ0FBWixjQUNhQTtrQ0FDdkM7Z0NBRHVDQSwrQkFDZjtpQ0FGRTs7aUNBQzFCO2tEQURzQ0E7Z0NBQ3RDOytEQUN3QjsrQkFKVjs7K0JBRWQ7b0RBRElOLEVBSHlCQzs4QkFJN0I7NkRBRXdCOzRCQWpDeEIsU0FtQ0VZLFdBQWNkLElBQWNFLElBQUlLOzhCQUNsQyxHQURnQlA7Z0NBQVU7cUNBQVZBO2dCQUFVRzs7V0FBVlE7OEJBQ2hCOztnQ0FBYztpREFERUE7Z0NBQ0Y7Z0NBQ0g7aURBRnVCSjsrQkFFdkIsU0FDUE4sRUFBRUM7Z0NBQ0o7NENBRkVhLGVBREFGLFdBRUVYLDZCQUN3RDsrQkFGbkQ7aUNBSWUsNkJBQVlLO2lDQUFaLGNBQ2FBO2tDQUN2QztnQ0FEdUNBLCtCQUNmO2lDQUZFOztpQ0FDMUI7a0RBRHNDQTtnQ0FDdEM7K0RBQ3dCOytCQU5iOzsrQkFJWDtvREFISU4sRUFIMEJDOzhCQU05Qjs2REFFd0I7NEJBM0N4Qjs7O09BTkVQO09BR0FDO09BRUFDO09BR0FDO09BRUFDO09BdUJBVztPQVFBSTs0QkFuQ0YsU0FpREVFLFFBQVFDOzhCQUVWOztnQ0FBVTs7d0NBQ05FO1FBQUd4QixjQUFjRSxnQkFBZ0JEO2dDQUNuQyxxQkFES0Q7MENBRU07OEJBRlFFLGdCQUFnQkQ7aURBR2I7K0JBSmQ7Ozs7O2dDQVlGOzs7O2dDQURBOzs7O2dDQURBOzs7K0JBSE47Z0RBUEVzQixTQUNBQyxHQUhNRjsrQkFTUjtnQ0FXUTs7d0NBQ05LO1FBQUczQixjQUFjRSxnQkFBZ0JEO2dDQUNuQyxxQkFES0Q7MENBRU87OEJBRk9FLGdCQUFnQkQ7aURBR2I7K0JBSmQ7Ozs7O2dDQWFGOzs7O2dDQURBOzs7O2dDQURBOzs7K0JBSE47Z0RBUkV5QixXQUNBQyxLQWJBRjs4QkFvQkYsT0FERUcsNkJBV0Q7NEJBdkZILFNBOEdJQyxXQUFTMUM7aUJEOU5sQixJQzhONEIyQyx1Q0FBVjNDLElBQVUyQzs0QkE5R3ZCLFNBZ0hJQyxlQUFlNUM7aUJEaE94QjtnQ0NpT29CO3dCQURJQTsrQkFFSCw2QkFBUDJDOytCQUFPO3VCQUZHM0MsSUFFVjJDOzRCQWxIVCxTQW9ISUUsTUFBTUMsRUFBRUM7OEJBQ1YsaUNBRFFEOzhCQUNSOztrQ0FHVzs7OytCQUhYO2tDQUswQjtVQURoQkU7Ozs7bUNBQ2dCOzhEQU5oQkQ7bUNBTWdCO21DQUFUO29EQURQQztrQ0FDTyxVQUFUQztrQ0FBUzs7K0JBSGI7b0RBS2dCOzRCQTVIdEIsU0E4SElDLE9BQU9KLEVBQUVLOzhCQUNYLFNBQVEzQjtpQ0FBSzttQ0FHUDtXQURHNEI7V0FBTHRCOztxQkFHSWE7dUNBRlksYUFFWkE7Z0RBRFMsR0FGUlM7Z0RBR2lCLGtCQUFsQlQsNkJBQWdDO29DQUZsQyxvQ0FKR0csRUFHTGhCO21DQUNFOztpQ0FGSTtvREFJK0I7OEJBTHpDLGtDQURXcUIsNkJBUUw7NEJBdElSLFNBd0lJRSxLQUFLUDs4QkFDUCxpQ0FET0E7OEJBQ1A7O3lDQUVJO3lDQUNPOztnQ0FIWDtjQUl1Q1gsWUFBVE4sZ0JBQUxULFlBQWpCa0M7VUFMRFIsZ0JBS2tCMUIsSUFBS1MsUUFBU007bUNBRWQ7Ozs7Ozs7OzttQ0FGakJtQjttQ0FFaUI7O2lDQUVyQjtTQURLTjtTQUFzQlY7U0FBVFA7U0FBTHdCOzs7cUNBQzRCO3VDQUVoQjs7ZUFEWkM7Ozs7O3dDQUNZOzs7O3VDQURaQTt1Q0FDWTs7cUNBRXJCOzs7c0NBQXVCOzs7NERBdkM3QmQsV0FzQ1VDO3FDQUNtQjsyREFBNEI7aUJBTHJDWjs7a0NBQ2xCO21EQUQyQk8sV0FBZGlCLE1BQVJQO2lDQUNMO2dFQUl3RDs0QkFySjlELFNBdUpJUzsrQkFBVSx1Q0FBZTs0QkF2SjdCLFNBMkpJQyxRQUFRQzs4QkFDVjs7OzRDQUFvQjs4QkFDbEI7Ozs7bUJEN1FUOzttQ0MyUWlCQSxxQ0FHbUM7NEJBOUovQzs7U0E4R0lqQixXQUVBRSxlQUlBQyxNQVVBSyxPQVVBRyxLQWVBSSxNQUlBQzs2QkEzSko7Ozs7NkJBa0tBOzs7O3FDQUVFSSxVQUFTM0I7OEJBQ1g7Ozs0Q0FBb0I7K0JBQUM7Ozs7bUJEclIxQjs7K0JDc1J5Qjs7O2lEQUxIeUI7Z0NBS0c7Z0NBQ1Y7O3dDQUNORyxHQUFHM0M7aUNBQU07eUJBQU5BLDZCQUF5QjsrQkFEdEIsU0FFTmlCLEdBQUcyQixpQkFBaUJDO21CRHpSN0I7aUJDeVJZRDs7Ozs7Ozs7MkJBQWlCQzs7bUNBMDlFeEI7b0NBeDlFd0M7O2lDQUMvQix1Q0FBZTsrQkFMZCxTQU9OQztRQUFHRCxXQUFXRSxRQUFRQzttQkQ5Ui9CO2lCQzhSWUg7bUNBSUQ7bURBSm9CRztvQ0FJcEI7cUJBSWVFLEtBQU1DO3lCRHRTaEM7eUNDdVMyQjs7OzJCQUNWekM7Ozs7d0RBQW9COzBDQURWOzswQ0FNbUI7Z0VBUGR5QzswQ0FPYzs7MENBQXJCO2dFQVBDRDswQ0FPRDswQ0FISDs7MENBRzZDOzs7O21ERDdTbkU7O3lDQ3VTMkI7OzBDQU9BOzs7OzZDQUN3Qjt5Q0FDckJoQjtzQkFUWGtCLGFBU1dsQixnQkFWRWlCLEtBSmpCMUMsUUFZTU07OzZDQVFBO29GQUNlOzBDQVRULFFBWlpOOzBDQVlZOzBDQUNWOzJEQURJTSxTQVJLbUM7eUNBU1Q7O3VDQVNHO29DQXRCVDs0QkFKWUgsUUFRUkU7bUNBSko7MkJBd0JJTDtpQ0ExQnFCLHVDQTJCTzsrQkFwQzVCOzs7Z0NBdUM2QjtvREF2Q25DNUI7Z0NBdUNtQzsrQkFBckM7Z0RBN0NBeUIsbUJBT0VFLEdBSk81QjsrQkEwQ1Q7OztnQ0FLc0M7Ozs7Z0NBQWhDOzs7K0JBRk47Z0RBMUNFQyxTQUVBQyxHQW9DQUM7K0JBSUY7Ozs7Z0NBV007Ozs7Z0NBREE7Ozs7Z0NBREE7Ozs7K0JBSE47MERBekNFNEIsR0FrQ0F6Qjs4QkFPRjtzQkFERWdDLCtCQVVVOzRCQTlEZDs7U0FqSEV2QyxhQWdIQTJCLGNBQWVELGNBR2ZFOzZCQUZGOzhCQXVFVzs7c0NBSUhhLFVBQVVDOytCQUNaOzs7aURBRFlBOytCQUNaO3VEQUE0Qzs2QkFMdkMsU0FPSEMsVUFBVXpCOytCQUFJO2lDQUFKQSwyQkFBNkI7NkJBUHBDOzs7Ozs7Ozs7Ozs7OEJBUUs7Ozs4QkFBVTs4Q0FKbEJ1QixVQUdBRTs4QkFDa0I7OzhCQUlSOzhDQVRaQzs4QkFTWTs7OzZCQURkOzt3QkFYQUo7NkJBV0E7Ozs7OzZCQUtBOzt5QkFoQkFBOzZCQWdCQTs7OzhCQUtjOzs7Ozs2QkFEZDs7NEJBcEJBQTs2QkFvQkE7Ozs4QkFPYzs7Ozs7NkJBRmQ7OzRCQXpCQUE7NkJBeUJBLE9BdEJFSSxVQU9BQyxLQUtBQyxLQUlBdEYsTUFLQXVGOzRCQUNGLFNBTUFDLEtBQU1ILEtBQU1yRixNQUFPdUYsUUFBUUU7OEJBQzdCOztnQ0FDYTtpREFqQ1hUO2dDQWlDVzs7Z0NBRUE7aURBRlRVLFlBRklMO2dDQUlLOztnQ0FDQTtpREFEVE0sY0FKVTNGO2dDQUtEOztnQ0FDQTtpREFEVDRGLGNBTGlCTDsrQkFNUjsrQkFBVE0sa0NBQ1c7NEJBYmI7dUNBekJBYixTQStCQVE7NkJBTkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQ0FpQ0FNLE9BQVN0RSxJQUFvQlcsUUFBUVQ7OEJBQ3ZDLEdBRFdGO2dDQUFNO3FDQUFOQTtZQUFNRzs7V0FBTmM7OEJBQ1gsY0FDR0w7Ozs0Q0FBb0I7K0JBQUM7Ozs7bUJEclovQjs7ZUNzWmMyRCxPQUFNdEUsRUFBRXVFLEVBQUU1RjtpQ0FBSTtpQkFBUnFCLEVBQUlyQixFQUFGNEYsMkJBQVc7K0JBQ2pCOzs7aURBSjhCdEU7K0JBSTlCO2lDQUVGOzs7a0NBRVc7eUNEM1p6QixPQ3NaY3FFO2tDQUttRDtvQ0QzWmpFLFlDd1plckQ7a0NBR2tEO2tDQURqRDttREFGREEsU0FMdUJQO2tDQU90QjttQkFJRkM7Ozs7Z0RBQW9CO2tDQUNsQjs7OzZDRC9aaEI7O2lDQ3laYyxZQU5JSyxJQU1BSTs7OztRQVFNSTs7c0NBQVEscUJBQVJBO2dEQUF5Qzs0QkEvQ3hEOzs7Ozs7Ozs7Ozs7OztxQ0EwRElSLElBQUl3RDsrQkFBSSxPQUFKQSw2QkFBUzs0QkExRGpCLFNBMkRJdkQsSUFBSXVEOytCQUFJLE9BQUpBLDZCQUFTOzRCQTNEakIsU0E2RElDLFFBQU05QyxFQUFHK0MsTUFBTWxDLFNBQVNtQzsrQkFDMUI7Ozs0Q0FBb0I7K0JBQ2xCOzs7O21CRGpiYjs7a0NDK2FtQmhELEVBQUcrQyxNQUFNbEMsU0FBU21DLGdDQUdNOzRCQWhFbEM7a0RBMERJM0QsSUFDQUMsSUFFQXdEOzZCQTdESjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWlDQUo7OzZCQWpDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQ0E0RUZPOytCQUFVOzs7OztnQ0FBUzs7O2dDQUFUOzs7Ozs7NkRBQW9EOzRCQTVFNUQsU0E4RUZDOzhCQUNGLFNBQUlDLElBQUlDLEVBQUV2RyxFQUFFbUQ7aUNBQUk7MkJBQUpBLEVBQUpvRCxJQUFFdkcsMkJBQXNCOzhCQUc1QjttQkRwY1QsT0NpY1NzRzs4QkFFQTttQkRuY1QsT0NpY1NBOzhCQUVBOzs7Z0NBRG9COzsrQkFBeEI7Ozs7Ozs2REFFeUM7NEJBbEZyQyxTQW9GRkU7OEJBRUY7Ozs0Q0FBb0I7K0JBQUM7Ozs7bUJEeGMxQjs7b0JDeWN1Q0M7Z0NBQ2xDOzs7OENBQW9CO2lDQUFDOzs7O3FCRDFjMUI7O3NCQzJjd0N0RDtrQ0FDbkM7Ozs7Z0RBQW9CO21DQUFDOzs7O3VCRDVjMUI7O3dCQzZja0RYO29DQUM3Qzs7OztrREFBb0I7cUNBQUM7Ozs7eUJEOWMxQjs7b0NDZ2RPOztxQkFIMkNBOztxQ0FHM0M7OztrREFFRkw7Ozs7a0RBQW9CO3FDQUFDOzs7O3lCRGxkMUI7Ozt1Q0NtZDRDOzZCQVJKZ0IsMkJBUVk7b0NBQS9DOzs7O3NEQVJtQ0EsT0FJL0J1RDtvQ0FJSjttRUFBK0M7a0NBTi9DOzs7Ozs7aUVBTStDO2dDQVIvQzs7O2tEQUZrQ0Q7Z0NBRWxDOytEQVErQzsrQkFWdEM7Ozs7Ozs7OytCQUFUOzs7NkRBVStDOzRCQWpHM0M7O3lCQTRFRkwsT0FFQUMsY0FNQUc7NEJBcEZFLFNBNEhGRzsrQkFBaUI7OzswREFpQk47MERBSEY7O3lEQVZDO3lEQUNDOzs7d0RBVUg7dURBVEE7OzJEQVVHOzBEQUVHOzs7Ozs7dURBTkQ7O3NDQUNFOzs7Ozs4REFMQzs4REFDQTs7O3lDQUNDO3lEQUhIOzs7c0NBTFo7Ozt1Q0FBRzt5REFERUM7eUNBQ29COzswQ0FBa0I7MkRBRHRDQTt5Q0FDc0M7O3NDQUEzQzt3Q0FDSzt3Q0FBb0I7eURBRnBCQTt1Q0FFb0I7Ozs7cUNBUVosNkJBQUxDO3FDQUFLO2lDQUFMQTs7Z0JBUUQ3Rzs7OytCQUNKLGdEQUFlOzRCQWhKbEIsU0FrSkY4RyxRQUFRekcsSUFBSTBHOytCQUFrQjs7Z0RBQWxCQTsrQkFBa0I7c0JBQXRCMUcsdUNBQXdDOzRCQWxKOUMsY0F3SmtCQTsrQkFBTDs7MENBRUYsa0JBRk9BOzBDQUdQLGtCQUhPQTs7MENBQ04sa0JBRE1BOzBDQUlOLGtCQUpNQSxrQ0FJVTs0QkE1SjVCOzs7NkJBd0pGOztzQ0E1QkFzRyxlQXNCQUcsUUFJQUU7NEJBRUEsU0FnQkFDLGFBQWNDOzhCQUNoQixjQXlCa0IvRTtpQ0FBTTs7bUJBQU5BOzRDQUFhOzhCQXpCL0I7bUJEM2hCTDsrQkNvakJvQztpQkExQmYrRTtnQ0EwQmU7b0JBRFovRTtpQ0FBTTs7bUJBQU5BOzRDQUFhOzBDRG5qQnJDOytCQ21qQnFDO2lCQXpCaEIrRTtnQ0F5QmdCOzsrQkFBNUI7OzRDQURlL0U7aUNBQU07O21CQUFOQTs0Q0FBYzs4QkFDN0I7bUJEbmpCVDsrQkNrakJzQztpQkF4QmpCK0U7Z0NBd0JpQjs7K0JBQTdCOzs0Q0FEYS9FO2lDQUFNOzttQkFBTkE7NENBQVk7OEJBQ3pCO21CRGxqQlQ7K0JDaWpCa0M7aUJBdkJiK0U7Z0NBdUJhOzsrQkFBM0I7OzRDQXRCMkIvRTtpQ0FBTTtpRUFBTkE7NENBQVM7OEJBc0JwQzttQkRqakJQOytCQzJoQmM7aUJBRE8rRTs7Z0NBQ1A7OztpQ0FDSzs7O21FQUFMbEg7a0NBQUs7O1lBZ0JObUg7O2lDQWhCTTs7a0NBZ0JOQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBdXNFUjttQ0F2c0VhOztvQ0FDRztxREFuQkFEO21DQW1CQTtvQ0FDTzs7OEJBQU5FOztpQ0FGVEQ7bUNBQUs7OztpQ0FoQkM7OzttREF3QjJDOzRCQTFDdkQ7eUNBZ0JBRjs2QkFoQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQ0F1REVJLEtBQUt0QjsrQkFBSTtvQkFBSkEsK0JBQXVCOzRCQXZEOUI7OzhCQXdEVTs7OEJBQ0Q7OzhCQUVDOzs7OzhCQUNGOzs7Ozs4QkFDRTs7Ozs7OEJBQ0M7Ozs7OzhCQUNGOzs7Ozs4QkFDRzs7Ozs7OEJBQ0g7Ozs7OzhCQUNDOzs7OEJBQ0s7Ozs7OEJBQ0Y7Ozs7OzhCQUNFOzs7Ozs4QkFDQzs7Ozs7OEJBQ0Y7Ozs7OzhCQUNHOzs7Ozs4QkFDSDs7Ozs7OEJBQ0M7O3NDQUViRCxPQUFNQyxFQUFFNUY7K0JBQUk7O1FBQU40RixRQUFFNUY7K0JBQUk7aUNBQW1COztVQUF6QjRGLFFBQUU1RjtpQ0FBdUI7a0NBQWE7d0NBQXRDNEYsUUFBRTVGO21DQUFvQyxVQUF0QzRGLFFBQUU1Rjs7Ozs7K0JBckJDLG9DQXFCbUQ7NkJBRi9DLFNBSWJxSSxTQUFPekMsRUFBRTVGOzhCQUNYO29DQURXQTsrQkFDWCxLQURTNEY7Z0NBSzBCOzs7O2dDQUE3Qjs7cUNBTEs1RjtnQ0FLTCxLQUxHNEY7Z0NBSTBCOzs7O2dDQUE3Qjs7cUNBSks1RjtnQ0FJTCxLQUpHNEY7Z0NBRzBCOzs7O2dDQUE3Qjs7cUNBSEs1RjtnQ0FHTCxLQUhHNEY7Z0NBRTBCOzs7OytCQUE3Qjs7OzsyQ0FJTDs2QkFWYyxTQVliMEMsUUFBU0MsS0FBTUM7K0JBQVU7Z0JBQVZBO2VBQU5EO2VBQU1DLDZCQUF5Qzs2QkFaM0MsU0FjYkMsR0FBR3ZJLElBQUk4Qzs4QkFDVCxHQURTQTtnQ0FFUDt5Q0FGT0E7aUNBRVA7bUJBSVk2QztxQ0FBa0IsT0FBbEJBLHFDQUE2QjtpQ0FKekM7a0NBR0k7OztrQ0FETTs7OztrQ0FBTjs7OzhCQUpEM0Y7K0JBUUE7NEJBUkFBLDZCQVFhOzZCQXRCSDs7Ozs7Ozs7Ozs7Ozs7OztPQW5CYmdIO09BQ0FDO09BQ0FDO09BRUFDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BRUF6QztPQUVBMEM7T0FRQUM7T0FFQUc7OEJBZGE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQ0E2QmpCQyxJQUFLMUcsRUFBUzRELEVBQUU1RjsrQkFBSTtxQ0FBTjRGLEtBQVQ1RDtnQ0FBZSxVQUFmQSxLQUFXaEM7K0JBVEssb0NBU2U7NkJBN0JuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQWtDVDs7c0NBRU40SSxTQUFTdkg7OEJBQ1gsbUNBRFdBLEVBRlRzSDsrQkFJUTtPQUFORTtpQ0FBTSxnQkFKUkY7OEJBS0Ysd0NBTEVBOzhCQUtGLE9BRElFLDJCQUVEOzZCQU5LLFNBUU5DLFlBQVk5SSxFQU1aZ0M7K0JBTE87OzsrREFLUEE7Z0NBSkU7b0NBSUZBO2lDQUpFLElBSUZBO2lDQUpFLEdBSUZBO2dDQUpFLE9BQUkrRzttQ0FDVzs4Q0FEWEE7b0NBQzJDO3FEQUhyQy9JO21DQUcrQzs7eUNBRHJEK0ksS0FBaUJDO21DQUVEOzhDQUZDQTtvQ0FFK0I7cURBSjFDaEo7bUNBSW9EOztnQ0FGOUQseUJBRThELGNBRmpCaUo7aUNBR2I7MERBTHRCako7K0JBQ0w7Z0NBS0Y7O2lEQUFMZ0M7K0JBQXdCO3dEQU5aaEMsaUNBQ007NkJBVFosU0FnQk5rSixVQUFVbEosRUFBRW1KLEVBQUVDOzhCQUNoQjtvQ0FEZ0JBOztnQ0FFZDswRUFGVXBKLEVBQUVtSjtrQ0FFWjs7O2FBRmNDOztzQ0FHWjs2QkFuQkk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FBTlQ7T0FFQUM7T0FNQUU7T0FRQUk7OEJBaEJNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQ0F5Qk5HLE9BQU94SixFQUFFNkcsRUFBRTRDO2lCRC9vQmxCLFVDK29CZ0I1QyxTQUFFNEMsNEJBQUp6SjtnQ0FDd0MsT0FEeENBOytCQUN1QjttQkFEdkJBLEVBQUU2RyxFQUFFNEMsNkJBQ3FDOzZCQTFCMUMsU0E0Qk5DLGFBR0F0RzsrQkFIZSxHQUdmQTs7a0NBQ0U7O29DQUFRO3FEQURWQTtvQ0FDVTtxQkFDR3VHLEdBQUc5Qzt1Q0FDWjt5Q0FDRTtzQkFFTytDLFlBQUx6SDtnREFKS3dILEdBQUc5QyxFQUlSMUU7b0NBSkVOLEdBQUc4SCxHQUFHOUMsV0FJSCtDO3lDQURDOzBDQUhERCw0QkFNYywwQkFBQztvQ0FQbEIsS0FBSko7bUNBU0Q7O3dFQVRDQTttQkFETm5HO2lDQURTLDZCQUFQa0csRUFDRmxHO2lDQURTO29DQUFQa0c7K0JBREkscUNBWTBCOzZCQXpDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BeUJORTtPQUdBRTs4QkE1Qk07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQ0FtRE5HOytCQUFROzs7O3lCQUNEOUQsRUFBdUI1RiwyQkFBc0I7NkJBcEQ5QyxTQXNETjJKLFlBQVU5SjsrQkFBSSxVQUFKQSwyQkFBWTs2QkF0RGhCLFNBdUROK0o7K0JBQVksNkJBQWdCL0o7K0JBQWhCLE9BQWdCQSwwQkFBTTs2QkF2RDVCLFNBeUROZ0ssVUFBVUM7OEJBQ1osY0FDT25CO2lDQUFPOztrQ0FBVzttREFBbEJBO2lDQUFrQjt1Q0FGYm1CLDZCQUU2Qzs4QkFEekQ7K0JBQWE7dUZBQzRDOzZCQTNEakQsU0E2RE5DLFdBQVdDLEVBQUViOytCQUFJO3FDQUFOYTtnQ0FBTTsrQkFBTzs0REFBWGIsNEJBQTJDOzZCQTdEbEQsU0ErRE5jLEtBQUcvSjtpQkRyckJWLElDc3JCY0wsMENBREpLLElBQ0lMOzZCQWhFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpRE5OO09BRUFtSztPQUdBQztPQUNBQztPQUVBQztPQUlBRTtPQUVBRTs2QkEvRE0sU0E2RUpDLEtBQUdoSzs4QkFDTDs7Ozs7Z0NBRTZDOzs2Q0FBYjBGO2lDQUFLLE9BQUxBLDZCQUFXOytCQUFFOzs7O2dDQUEvQjs7Ozs7OztnQ0FBVjs7OzRCQUhDMUYsa0NBRzBEOzZCQWhGekQ7S0EyRkppSztTQVRBM0s7NkJBbEZJLFNBNEZKNEs7aUJEbHRCVCxJQ2t0QmdCQTs7aUNBQW9ELDZCQUFMdkssRUFBL0N1SztpQ0FBb0QsT0FBTHZLOytCQUFYOzZCQTVGdkMsU0E4Rkp3SyxRQUFNekUsRUFBRTVGOzhCQUNWOztvQ0FEVUE7dUJBQUY0Rjs7K0JBK2hFVjs4QkE5aEVFLG9CQURVNUY7dUJBQUY0Rjs7OzhCQUNSLFNBRFFBLFVBQUU1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQUNWOzs7Ozs7Ozs7dUNBRFE0RixVQUFFNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFDVjs7Ozs7Ozs7O3VDQURRNEYsVUFBRTVGOzs7O2tDQU1nQjs7O21DQUFLOzREQUFYc0s7OztjQURUeks7Ozs7aUVBMEJWOzZCQTdISyxTQStISjBLLE1BQUlDLEdBQUd4SDs4QkFDVCxpQ0FEU0E7OEJBQ1Q7aUNBQ2U7Ozs7ZUFGVHdILEdBRUNKOzhCQUVQLHFCQUpTcEg7d0NBS0UsbUJBTEx3SDt5Q0FNRzs2QkFySUgsU0F1SUpDLFVBQVNsQyxLQUFNQzsrQkFBTztlQUFiRCxLQUFNQyw4QkFBc0I7NkJBdklqQzs7U0E2RUowQixLQUtBMUssUUFTQTJLLFVBQ0FDLEtBRUFDLFFBaUNBRSxNQVFBRTs2QkF2SUksU0E2SU5DLEtBQUd4SyxJQUFJMEY7OEJBQ1Q7NEJBREsxRixnQkFBSTBGLCtDQUM2Qzs2QkE5STlDLFNBZ0pOK0U7aUJEdHdCUDs2QkNzbkJhOztnRUFrSk5DOzZCQWxKTSxTQTJKTkUsU0FBT0MsR0FBR0M7OEJBQ1o7b0NBRFlBOytCQUNaLEtBRFNEOytCQUNUO2dDQUdTOztxQ0FKR0M7Z0NBSUgsS0FKQUQ7Z0NBSUE7Z0NBREs7O3FDQUhGQztnQ0FHRSxLQUhMRDtnQ0FHSzsrQkFEQTs7OzJDQUdiOzZCQWhLTyxTQWtLTkUsVUFBUzFDLEtBQU1DOzhCQUNqQjtvQ0FEaUJBOytCQUNqQixLQURXRDsrQkFDWDtnQ0FHUzs7cUNBSlFDO2dDQUlSLEtBSkVEO2dDQUlGO2dDQURGOztxQ0FIVUM7Z0NBR1YsS0FISUQ7Z0NBR0o7K0JBREE7OzsyQ0FHTjs2QkF2S08sU0F5S04yQyxHQUFLOUosSUFBVytIOytCQUFJLEdBQWYvSDtnQ0FBSSxpQ0FBSkEsU0FBSUc7O1dBQUp5QixFQXZCTDRIOytCQXVCb0IsVUFBSnpCLEVBQVhuRyxtQ0FBZ0M7NkJBeksvQixTQTBLTm1JLEdBQUsvSixJQUFXK0g7K0JBQUksR0FBZi9IO2dDQUFJLGlDQUFKQSxTQUFJRzs7V0FBSnlCLEVBeEJMNEg7K0JBd0JvQixVQUFmNUgsS0FBV21HLEVBQVhuRyw4QkFBZ0M7NkJBMUsvQixTQTJLTm9JLEtBQU9oSyxJQUFXK0g7K0JBQUksR0FBZi9IO2dDQUFJLGlDQUFKQSxTQUFJRzs7V0FBSnlCLEVBekJQNEg7K0JBeUJzQixVQUFmNUgsVUFBV21HLDJCQUF1Qjs2QkEzS25DLFNBNktOa0MsUUFBTXpGLEVBQUU1Rjs4QkFDVjtvQ0FEVUE7K0JBQ1YsS0FEUTRGOytCQUNSO2dDQUdTOzs7cUNBSkM1RjtnQ0FJRCxLQUpENEY7Z0NBSUM7Z0NBREY7OztxQ0FIRzVGO2dDQUdILEtBSEM0RjtnQ0FHRDsrQkFEQTs7OzJDQUdOOzZCQWxMTyxTQW9MTjBGLE1BQUlkLEdBQUczSzs4QkFDVDs7O29DQURTQTsrQkFDVDs4QkFDQSx3Q0FGTTJLOzhCQUNOOytCQUNBLEtBRlMzSzsrQkFFVDs4QkFDQSx3Q0FITTJLOzhCQUdOO3VCQUhNQSxHQUFHM0ssOEJBSVM7NkJBeExWOzs7OEJBMEx3Qjs7OzhCQUFsQjs7Ozs7OEJBQ3NCOzs7OEJBQXZCOzs7Ozs4QkFHOEI7Ozs7OzhCQUFwQzs7OzZCQUFQOzs7Ozs4QkFFaUM7Ozs4QkFBdEI7Ozs7OztPQW5EVDZLO09BR0FDO09BRUFDO09BT0FDO09BRUFDO09BT0FHO09BT0FDO09BQ0FDO09BQ0FDO09BRUFDO09BT0FDO09BTUFDO09BQ0FDO09BRUFDO09BR0FDOzhCQUFTOztzQ0FXVEUsSUFBSWhGOytCQUFJLFlBQUpBLGlDQUFrQzs2QkFYN0Isb0NBUVQrRSxRQUdBQzs2QkFYUyxTQWdDVEMsT0FBT0MsR0FBR0M7OEJBQ1o7O2dDQUFrRDtpREFEdENBO2dDQUNzQztnQ0FBUDtpREFEbENEO2dDQUNrQztnQ0FBWDs7O2dDQUFSO2lEQURaQztnQ0FDWTtnQ0FBUDtpREFEUkQ7Z0NBQ1E7Z0NBQVg7OzsyREFBb0Q7NkJBakMvQyxTQW9DVEUsZUFBZXhCLEdBQUdwRTsrQkFHTTtPQUZqQnZHOztnQ0FFaUI7aURBSFQySztnQ0FHUzs7OztnQ0FDSTtpREFKVnBFO2dDQUlnQixZQUQxQjZGO2dDQUMwQjtnQ0FBbkI7aURBSkc3RjsrQkFJSDsyQkFKQW9FLHVCQUNSM0s7NkJBckNFLFNBMENMcU0sT0FBSzFCLEdBQUdwRTtpQkRoMkJuQjs7O2lDQ2kyQmdCOzs7O21DQUVQOztxQ0FDRTtxREFKS29FLEdBQUdwRSxFQUVKdkc7cUNBRUo7Ozs7b0NBRVc7NkJBSDJCc00sUUFBakJDLE9BQU1DOztrQ0FJekJDOztvQ0FFSzs7WUFER0M7WUFBSkM7cUNBQ0M7NkNBVEZoQyxHQUFHcEUsRUFRRm9HO3FDQUNDOztxQ0FDa0I7c0RBRHZCVjtxQ0FDdUI7cUNBQUY7OztxQ0FBSjtzREFWWDFGO3FDQVVEOzZDQVZGb0UsUUFRSytCO3FDQUVIO3FDQUM4QjtzREFEbkNSO3FDQUNtQztxQ0FBUDtzREFGNUJEO3FDQUU0QjtxQ0FBWDs7O3FDQUFOO3NEQURYQztxQ0FDVztxQ0FBUjtzREFGSEQ7b0NBRU87OztvQ0FFRjs7WUFER1c7WUFBSkM7cUNBQ0M7NkNBYkZsQyxHQUFHcEUsRUFZRnNHO3FDQUNDO3FDQUNxQjtzREFEMUJDO3FDQUMwQjs7cUNBQUw7OztxQ0FBSjtzREFkWHZHO3FDQWNEOzZDQWRGb0UsUUFZS2lDO3FDQUVIO3FDQUNnQztzREFEckNHO3FDQUNxQztxQ0FBUjtzREFGN0JEO3FDQUVpQzs7cUNBQWI7c0RBRHBCQztxQ0FDb0I7cUNBQVA7c0RBRmJEO3FDQUVhO3FDQUFYOzs7OztvQ0FDbUM7O1lBQTdCRTtZQUFKQztxQ0FBaUM7NkNBaEJsQ3RDLEdBQUdwRSxFQWdCRXlHO29DQUFjO29EQWhCbkJyQyxHQUFHcEUsRUFnQkYwRzs7b0NBR3dCOztZQUZsQkM7WUFBTkM7WUFBSGhLOzs7cUNBRTJCO3NEQUZsQitKO3FDQUVrQjs7cUNBQWY7c0RBRlRDO3FDQUVTO3FDQUFMO3NEQW5CRjVHO3FDQW1CTjs2Q0FuQkdvRSxRQWlCRnhIO29DQUVEOzs7b0NBRTJCOztZQURsQmlLO1lBQUxDO1lBQUhDOzs7cUNBQzBCOzJEQURsQkY7cUNBQ2tCOztxQ0FBZDsyREFEVEM7cUNBQ1M7cUNBQUw7c0RBckJGOUc7cUNBcUJOOzZDQXJCR29FLFFBb0JGMkM7b0NBQ0Q7OztvQ0FDSztZQUFOQzs7b0NBQU07OEJBdEJDaEgsRUFzQlBnSDs2QkFoRUksNkJBa0VUQzs2QkFsRVMsU0FtRVRDLE9BQUt0RCxFQUFFbko7K0JBQUk7K0JBQUs7dURBQVhtSixFQUFFbkosNEJBQW1COzZCQW5FakIsU0FxRVQwTSxLQUFLM0gsRUFFTDVDO2lCRDczQlAsVUM2M0JPQTt1QkFEU3dLLFlBQUhMO2lDQUFzQjttQkFBdEJBLDZCQUFzQixnQkFBbkJLLEdBREo1SDsrQkFFQSxhQUFMNUMsRUFGSzRDOzZCQXJFSSxTQXlFVDZILFNBQVFqQixHQUFHRDs4QkFDYixjQURhQTtlQUFIQztzQ0FBR0QsU0FBSEMsR0FBR0QsNkJBSVc7NkJBN0ViLFNBK0VUbUIsU0FBUWxCLEdBQUdEOzhCQUNiLGNBRGFBO2VBQUhDO3NDQUFHRCxTQUFIQyxHQUFHRCw2QkFJVzs2QkFuRmIsU0FxRlRvQixTQUFRbkIsR0FBR0Q7OEJBQ2IsY0FEYUE7ZUFBSEM7c0NBQUdELFNBQUhDLEdBQUdELDZCQUlXOzZCQXpGYixTQTZGVHFCLE1BQU1aLEtBQUtELE1BQU1jOzhCQUVuQixhQUZtQkEsSUFBWGIsS0FBS0QsZ0NBRVc7NkJBL0ZiLFNBaUdUZSxNQUFNWixJQUFJRCxPQUFPWTs4QkFFbkIsYUFGbUJBLElBQVhYLElBQUlELGlDQUVZOzZCQW5HYixTQXFHVGMsS0FBTzNNLG1CQUFzQ3lNOzhCQUMvQyxHQURTek07Z0NBQUksaUNBQUpBLFNBQUlHOztXQUFKeU07OEJBQ1Q7Z0NBRHVCOztRQUFKMUssRUFBSTJLOztXQUFKM0s7OEJBQ25CO2dDQURpQzs7UUFBSk4sRUFBSWtMOztXQUFKbEw7OEJBQzdCO2dDQUQyQzs7UUFBSmhELEVBQUltTzs7V0FBSm5POztTQUE5QmdPLFdBQVUxSyxhQUNmOEssTUFEMkNQOytCQXcxRC9DO1dBdjFESU8sK0JBQWlDLE1BRDVCSixFQUFVMUssRUFBNEJ1SztTQUFsQjdLLFdBQVVoRCxpQ0FFTyxPQUQxQ29POytCQUN1QjtlQUZFcEwsRUFBVWhELEVBQ25Db08sK0JBQzZDOzZCQXZHdEMsU0F5R1RDLEtBQUtyQixLQUFLRCxNQUFNYzsrQkFBcUIsb0NBQTNCZDsrQkFBa0I7aUJBQXZCQyxVQUFXYSw2QkFBa0M7NkJBekd6QyxTQTBHVFMsS0FBS3BCLElBQUlELE9BQU9ZOytCQUFvQixvQ0FBM0JaOytCQUFtQjtpQkFBdkJDLFNBQVdXLDZCQUFrQzs2QkExR3pDLFNBNEdUVSxJQUFNbk4sbUJBQXNDeU07OEJBQzlDLEdBRFF6TTtnQ0FBSSxpQ0FBSkEsU0FBSUc7O1dBQUp5TTs4QkFDUjtnQ0FEc0I7O1FBQUoxSyxFQUFJMks7O1dBQUozSzs4QkFDbEI7Z0NBRGdDOztRQUFKTixFQUFJa0w7O1dBQUpsTDs4QkFDNUI7Z0NBRDBDOztRQUFKaEQsRUFBSW1POztXQUFKbk87K0JBQ0g7MENBREdBO2dDQUNaLFVBREVnRDtnQ0FDWCxVQURDTTsrQkFDVjtvQkFEQTBLLGtCQUFzQ0gsNkJBQ0Y7NkJBN0dqQyxTQStHTFcsUUFBUUMsRUFBRTlJLE9BQU04RDtpQkRyNkIzQixJQ3E2QjJCaUY7OEJBQ3RCOztTQUFRQzttQkFBTWhKLE9BQ1Y4RDt1QkR2NkJULEdDdTZCU0E7Ozt5Q0FDMkI7aUJBQWpCaUY7aUJBQUwxTztpQkFBTDRGLEVBREE2RDswQ0FDMkI7aURBRmpCOUQsT0FFQStJO3lDQUFNOzREQUZOL0ksT0FFVkMsRUFBSzVGOztxQ0FEaUIsT0FBdEJ5SjtnQ0FESixHQURzQmlGOztxQ0FRRTs7NkNBUlIvSSxPQUFNK0k7OzttQ0FPWCw2QkFBUDFNLEVBUGtCME07bUNBT1gsT0FBUDFNO2lDQURJLE9BTk15TSwyQkFRMEI7NkJBRS9CLFNBQVBJO2lCRC82QlAsT0NxNkJXTCxRQTdDSm5CLFFBT0FJOzZCQWlETyxTQUFQcUI7aUJEaDdCUCxPQ3E2QldOLFFBN0NKbkIsUUFhQUs7NkJBMkNPLFNBQ1BxQixLQUFLdEY7K0JBQUs7K0JBdENWa0UsU0FzQ0tsRSxHQXpETDRELGlDQXlEMEM7NkJBRG5DLFNBR1AyQixPQUFLekIsS0FBSzBCOzhCQUNaLEdBRE8xQjtpQ0FDbUIsNkJBQUwzSCxFQURkMkg7aUNBQ21CLGdCQURkMEIsSUFDU3JKOytCQUFpQyxVQUQxQ3FKLDRCQUNvRDs2QkFKdkQsU0FNUEMsT0FBUTNCLEtBQUsxTjsrQkFBSTsrQkFBVTtlQUFuQjBOLDhCQUFtQixnQkFBZDFOLDRCQUFnQzs2QkFOdEMsU0FPUHNQLE9BQVE1QixLQUFLM0g7K0JBQUk7K0JBQVU7ZUFBbkIySCw4QkFBbUIsZ0JBQWQzSCw0QkFBZ0M7NkJBUHRDLFNBU0h3SixRQUFRWCxFQUFFOUksT0FBTTNELEVBQUVvSCxFQUFFL0g7OEJBQzFCLEdBRHdCK0g7O21DQUtaO3NDQUxZQTtvQ0FNNkIsS0FON0JBLElBS2hCaUc7b0NBQ29DLEtBTnRCck4sSUFLZHFOO29DQUNvQjs2Q0FOZFosRUFBRTlJLGlCQUFVdEU7a0NBTXRCO21CQU5Zc0U7MkNBTVosUUFOVThJLEVBQUU5SSxPQUFNM0QsRUFLZHFOLEVBTGtCaE87O2lDQUdsQjtpQkFIa0JBLEVBQUpXOytCQUVkLE9BRk15TSwwQkFNaUQ7NkJBZnRELFNBaUJQYSxTQUFTRCxFQUFFakcsRUFBRS9IOzhCQUNmOzs7Z0NBQVE7aURBREdnTztnQ0FDSDs7Z0NBQWlCO2lEQURaakc7K0JBQ1k7ZUExRXZCaUU7ZUFhQUs7O2VBNkRtQjhCO3dCQUNXQzt5Q0FDNUI7MEJBNUVGcEM7MEJBT0FJOzswQkFtRUU4QjttQ0FFZ0N2TjtxREFBSztxQ0FIMUJYLEVBR3FCVyxFQURKeU4sMkJBQ2MsMkJBQUMsMkJBQUM7NkJBcEJ2QyxTQXNCUEMsTUFBTUMsS0FBTXBDLEtBQUtwRSxFQUFFYSxFQUFFbko7OEJBQ3ZCOzs7Z0NBQVE7c0RBRGFtSjtnQ0FDYjs7Z0NBQWlCO3NEQURGbko7WUFDbkIrTyxnQkFBaUJDO2lDQUdFOzs4Q0FKZkYsS0FDSkMsSUFEZXpHO2tDQUlOOzBDQUpDb0U7aUNBSUQ7O2lCQUhRc0M7OzRDQUlPLE9BRHRCQyw2QkFDMEI7K0JBSFAsdUNBRHJCRixJQUFpQkMsNkJBSVk7NkJBM0J4Qjs2QkE2QkEsU0FBUEU7aUJENzhCUCxPQ3M4Qk9MOzZCQU9PLFNBOEZMTSxXQUFXaFE7K0JBQ2I7O2lDQUM0QjtrREFGZkE7aUNBRWU7aUNBQWQ7a0RBRkRBO2lDQUVDO2dDQUFaO2lEQUZXQTtnQ0FFWDtpQ0FEbUQ7a0RBRHhDQTtnQ0FDd0M7bUZBQ1o7NkJBaEdsQyxTQWtHTGlRLFNBQVN6RixHQUFHMEYsTUFBTWxROytCQUNwQjsrQkFFQSx5Q0FIV3dLOytCQUNYLHlCQUVBOytCQUNBLHlDQUpXQTsrQkFDWDtnQ0FHQTtpQ0FFSztrREFOZXhLO2lDQU1mO2lDQUR5QztrREFMMUJBO2lDQUswQjtpQ0FBZjtrREFMWEE7aUNBS1c7aUNBQWY7a0RBTElBO2lDQUtKOytCQUFoQjthQUxXd0s7K0JBQ1gseUJBSUE7K0JBRUE7YUFQV0EsR0FBRzBGOytCQUNkLHlCQU1BOytCQUNBLHlDQVJXMUY7K0JBQ1gseUJBT0E7K0JBQ0EseUNBVFdBOytCQVNYO3lCQVRvQnhLLDRCQVdUOzZCQTdHSixTQStHTG1RLFNBQVMzRixHQUFHMEYsTUFBUTlPLElBQVlwQjsrQkFDbEMsR0FEc0JvQjtpQ0FBUTtzQ0FBUkE7Y0FBUUc7O1dBQVI2TzsrQkFDdEI7K0JBQ0EseUNBRlc1RjsrQkFDWDtnQ0FDQTtpQ0FFSztrREFKNkJ4SztpQ0FJN0I7aUNBRHlDO2tEQUhaQTtpQ0FHWTtpQ0FBZjtrREFIR0E7aUNBR0g7aUNBQWY7a0RBSGtCQTtpQ0FHbEI7K0JBQWhCO2FBSFd3SzsrQkFHWCxVQUhzQjRGO2tDQUtGOztlQUxUNUYsR0FBVzRGOytCQUN0QiwwQkFJa0Q7K0JBQ2xEO2FBTlc1RixHQUFHMEY7K0JBQ2QseUJBS0E7K0JBQ0EseUNBUFcxRjsrQkFPWDt5QkFQa0N4Syw0QkFRdkI7NkJBdkhKLFNBeUhMcVEsT0FBS0MsRUFBRTFLLEVBQUU1RjsrQkFDWCxVQURPc1E7a0NBSUM7O21DQUFrRDtvREFKL0N0UTttQ0FJK0M7bUNBQVY7b0RBSnZDNEY7bUNBSTZDOzttQ0FBakI7b0RBSjFCNUY7bUNBSTBCO21DQUFUO29EQUpuQjRGO21DQUltQjttQ0FBZjs7OztlQUpOMEs7a0NBTUg7O21DQUUwQjtvREFSbkJ0UTttQ0FRbUI7bUNBQVQ7b0RBUlo0RjttQ0FRWTttQ0FBZjs7O21DQUR3QjtvREFQbkI1RjttQ0FPbUI7bUNBQVQ7b0RBUFo0RjttQ0FPWTttQ0FBZjs7OztnQ0FKRjs7aUNBQWdEO2tEQUh6QzVGO2lDQUd5QztpQ0FBVDtrREFIbEM0RjtpQ0FHa0M7aUNBQWY7OztpQ0FBUjtrREFIVDVGO2lDQUdTO2lDQUFWO2tEQUhENEY7Z0NBR087bUVBS3VCOzZCQWpJaEMsU0FtSUQySyxLQUFLblAsSUFBZ0JsQjsrQkFDM0IsR0FEV2tCO2lDQUFPO3NDQUFQQTthQUFPRzs7V0FBUGdNOytCQUNYLHFDQURXQTtnQ0FFb0M7bUJEbGxDdEQsT0NnbENhZ0Q7Z0NBRXlDOztpQ0FBUjs7eUNBRjVCaEQ7Z0NBRWdCO21CRGxsQ2xDLE9DZ2xDYWdEO2dDQUVxQjs7aUNBQVI7Ozs7aUNBQUw7OztpQ0FDZDttQ0FDVzsrQkFKZ0JyUTs7a0NBRzNCOztzQ0FFZTthQUFMMEc7O3NDQUFLO2tDQUxZMUcsYUFLakIwRzs7c0NBS0E7O2FBSkNoQjthQUFINUM7O3VDQUlFOzJEQVZDdUssS0FNQTNILEdBQUg1Qzt1Q0FJRTt1Q0FEWTsyREFUWHVLLEtBTUEzSDt1Q0FHRjt3Q0R6bENoQixPQ2dsQ2EySzt1Q0FTRzs7O3VDQURIOzs7a0NBUnFCclE7O3NDQVdYO2FBQUx1UTs7c0NBQUs7a0NBWFd2USxJQUV2QnNRLFFBU09DOztzQ0FDSzthQUFMQzs7c0NBQUs7a0NBWld4USxJQUV2QnNRLFFBVU9FOztzQ0FDSzthQUFMQzs7c0NBQUs7a0NBYld6USxJQUV2QnNRLFFBV09HOztzQ0FFbUM7O2FBRDVCNUQ7YUFBTkM7YUFBSEc7cUJBZEVJO3VDQWVtQzt3Q0QvbENyRCxPQ2dsQ2FnRDtzQ0Fld0M7a0NBZm5CclEsSUFjZjhNLEtBQU1ELFdBQVRJOztzQ0FHcUM7O2FBRDdCRjthQUFMQzthQUFIMEQ7cUJBaEJFckQ7dUNBaUJtQzt3Q0RqbUNyRCxPQ2dsQ2FnRDtzQ0FpQndDO2tDQWpCbkJyUSxJQWdCZmdOLElBQUtELFlBQVIyRDs7c0NBRUs7Ozs7dUNBQWtCOzs7a0NBbEJMMVEsU0FrQnBCMlEsK0JBQTJDOzZCQXJKM0M7S0F1SkxDOzs2QkF2SkssU0F5SkRDLFFBQVF2RyxHQUFHcEU7Z0NBa0JDO09BakJUdkc7O2lDQWlCUztrREFsQkoySztpQ0FrQkk7O3NDQUFWd0c7aUNBQVU7aUNBRVI7a0RBcEJPNUs7aUNBb0JEOztpQ0FEUTtrREFuQlBBO2lDQW1CTztnQ0FBcEI7YUFuQlVvRSx1QkFDTDNLO2dDQWlCUztpQ0FDZCxLQURJbVI7aUNBQ0o7aUNBSzRCO2tEQXZCdkJuUjtpQ0F1QkU7aURBeEJHMkssR0FBR3BFO2lDQXdCTjtpQ0FBTDs7O2dDQUcyQjs7bURBM0JoQkEsRUF1QlQ2SyxJQXRCQ3BSO2dDQTBCd0IsT0FKekJvUjs2QkFoTEQsU0F1TExDLEtBQUsxRyxHQUFHK0MsS0FBS25ILEVBQUVnRDtpQkRwb0N4QjsrQkNzb0NPLFVBRmlCQTs7O2dDQUVqQixPQUZpQkE7O29DQUtHOzBDQUxIQTtXQUVicEosNEJBR2dCLFFBTGJ3SyxHQUFRcEUsRUFLSCtLOzs7b0NBRU07aUJBUEQvSDtXQU1KeEQ7V0FBSGM7O3FDQUNRO3NEQVBSNkcsS0FNRzNIO3FDQUNLLEtBRExBLFNBTkgySDtxQ0FPUSxVQUFSQztvQ0FJQztzQ0FBNEI7OytDQVhoQ2hELEdBQVFwRSxFQU1MTTt1Q0FLNkI7dUNBQVY7d0RBWGROO3VDQVdjLEtBSm5Cb0g7c0NBSUM7Y0FYSmhEO29DQVlELEdBWkkrQyxZQU1HM0g7c0NBTXFCOzRDQUx4QjRIO3VDQUt3QjtzQ0FDMUI7bUJBYkRoRDtzQ0FZMkI7dUNBQzFCLEtBTkVnRDt1Q0FNRjtzQ0FDQTttQkFkRGhEO29DQU9XO1dBTGR4SztzQ0FhRSxLQWZDd0ssR0FPR2dELEdBUEtwSCxFQU1MTTs7O29DQVdLO21CQWpCRTBDO1dBZ0JDZ0k7V0FBSkM7cUNBQ0M7MkNBakJSN0csR0FBRytDLEtBQUtuSCxFQWdCRGlMO3FDQUNDOztxQ0FDdUI7c0RBRDVCdkY7cUNBQzRCO3FDQUFGOzs7cUNBQUo7c0RBbEJqQjFGO3FDQWtCQTsyQ0FsQlJvRSxHQUFHK0MsVUFnQlE2RDtxQ0FFSDtxQ0FDOEI7c0RBRG5DckY7cUNBQ21DO3FDQUFQO3NEQUY1QkQ7cUNBRTRCO3FDQUFYOzs7cUNBQU47c0RBRFhDO3FDQUNXO3FDQUFSO3NEQUZIRDtxQ0FFTzs7V0FqQmI5TCw0QkFpQk07OztvQ0FFSzttQkFyQkVvSjtXQW9CQ2tJO1dBQUpDO3FDQUNDOzJDQXJCUi9HLEdBQUcrQyxLQUFLbkgsRUFvQkRtTDtxQ0FDQztxQ0FDMEI7c0RBRC9CNUU7cUNBQytCOztxQ0FBTDs7O3FDQUFKO3NEQXRCakJ2RztxQ0FzQkE7MkNBdEJSb0UsR0FBRytDLFVBb0JRK0Q7cUNBRUg7cUNBQ2dDO3NEQURyQzFFO3FDQUNxQztxQ0FBUjtzREFGN0JEO3FDQUVpQzs7cUNBQWI7c0RBRHBCQztxQ0FDb0I7cUNBQVA7c0RBRmJEO3FDQUVhO3FDQUFYOzs7V0FyQlIzTSw0QkFxQk07OztvQ0FFSzttQkF6QkVvSjtXQXdCQ29JO1dBQUpDO3FDQUNDOzJDQXpCUmpILEdBQUcrQyxLQUFLbkgsRUF3QkRxTDtxQ0FFQzsyQ0ExQlJqSCxHQUFHK0MsS0FBS25ILEVBd0JHb0w7V0F0QmR4Uiw0QkF5QkUsT0FGSTBSLEtBQ0FDOzs7b0NBR0s7bUJBN0JFdkk7V0E0QkcyRDtXQUFOQztXQUFINEU7cUNBQ0k7NkNBN0JScEgsR0FBUXBFLEVBNEJKd0w7cUNBQ0k7b0NBQ1Q7aUJBOUJDcEg7b0NBNkJRO3FDQUNUO3FDQUdLO3NEQUpEcUg7cUNBSUM7cUNBREM7c0RBSEZBO3FDQUdTLFlBSkM5RTtxQ0FJRDtxQ0FEeUI7c0RBL0I3QjNHO3FDQStCNkI7cUNBQVo7c0RBL0JqQkE7cUNBK0JpQjtvQ0FBMUI7aUJBL0JDb0U7b0NBNkJRO3FDQUVUOztxQ0FHOEI7c0RBTnRCd0M7cUNBTXNCO3FDQUFKO3NEQWxDakI1RztxQ0FrQ0E7MkNBbENSb0UsR0FBRytDLFVBNEJDcUU7cUNBTUk7b0NBQ1Q7aUJBbkNDcEg7b0NBNkJRO3FDQU1UO3FDQUNXLEtBUkh3QyxPQUFNRDtxQ0FRSDtxQ0FBRjs7O1dBbENYL00sNEJBa0NNLGdCQUZBOFI7OztvQ0FJSzttQkF0Q0UxSTtXQXFDRTZEO1dBQUxDO1dBQUg2RTtxQ0FDSTs2Q0F0Q1J2SCxHQUFRcEUsRUFxQ0oyTDtxQ0FDSTtvQ0FDVDtpQkF2Q0N2SDtvQ0FzQ1E7cUNBQ1Q7cUNBR007c0RBSkZ3SDtxQ0FJUyxZQUxBL0U7cUNBS0E7cUNBRFI7c0RBSEQrRTtxQ0FHQztxQ0FEaUM7c0RBeEM3QjVMO3FDQXdDNkI7cUNBQVo7c0RBeENqQkE7cUNBd0NpQjtvQ0FBMUI7aUJBeENDb0U7b0NBc0NRO3FDQUVUOztxQ0FHOEI7MkRBTnRCMEM7cUNBTXNCO3FDQUFKO3NEQTNDakI5RztxQ0EyQ0E7MkNBM0NSb0UsR0FBRytDLFVBcUNDd0U7cUNBTUk7b0NBQ1Q7aUJBNUNDdkg7b0NBc0NRO3FDQU9LLEtBUk4wQyxNQUFLRDtxQ0FRQzs7cUNBQUw7OztXQTNDWGpOLDRCQTJDTSxnQkFGQWlTOzs7K0JBb2tEWixnQkE3bURNalMsRUFGV29HOytCQW9EZixPQWxESXBHLDBCQWtERjs2QkEzT0s7OztPQThGTGdRO09BSUFDO09BYUFFO09BVUFFO09BVUlFO09Bb0JKTztPQUVJQztPQThCSkc7OEJBdkxLOztPQXZIUHJGO09BSUFHO09BTUlFO09Bd0JKbUI7T0FDQUM7T0FFQUM7T0FJQUU7T0FNQUM7T0FNQUM7T0FRQUM7T0FJQUU7T0FJQUM7T0FJQU07T0FDQUM7T0FFQUM7T0FHSUM7T0FVSks7T0FDQUM7T0FDQUM7T0FFQUM7T0FHQUU7T0FDQUM7T0FFSUM7T0FRSkU7T0FLQUk7T0FPQUs7OzZCQUFPLFNBZ1BQbUMsS0FBS2xRLEVBQUV5TjtnQ0FBVSxPQUFWQSxJQUFGek4sSUFBRXlOLDJCQUFnQzs2QkFoUGhDLFNBaVBQMEMsS0FBS25RLEVBQUV5TjtnQ0FBVSxPQUFaek4sSUFBRXlOLEVBQUZ6TixFQUFFeU4sMkJBQWdDOzZCQWpQaEMsU0EyUUwyQzsrQkFDRjs7O2lDQUFROzs4Q0FDWTFMO2tDQUFLLFVBQUxBLEVBRGhCRSw0QkFDa0M7Z0NBRDlCOztpQ0FDZ0M7a0RBRHBDQTtpQ0FDb0M7Z0NBQXBDO2NBREFBO3dDQUNBLHFEQUFnRDs2QkE3UTdDLDZCQStRTHlMOzZCQS9RSyxTQWdSTEMsU0FBUXpSO2dDQUE2QixPQUE3QkEsOEJBQWtDOzZCQWhSckMsU0FrUkwwUjtnQ0FBWTtpQ0FDSDtVQUNEN0w7Z0RBQTJCOzZCQXBSOUIsNkJBc1JMOEw7NkJBdFJLLFNBd1JMQyxZQUFhN0w7K0JBQ2Y7NkNBQ2V5STtrQ0FDWDt3Q0FMRm1EO21DQUtFO2tDQUFvQztpQkFEekJuRCxxQ0FDeUIsZ0JBSHpCekksa0NBRzRDOytCQUYzRDs7OytCQUNBOzs7dUJBRmVBLEVBRmI0TCxtQ0FNYzs2QkE1UlQsU0E4UkxFO2lCRDN1Q1QsSUMydUNtQjlMLGtCQU5WNkwsWUFNVTdMOzZCQTlSTCxTQWdTTCtMO2lCRDd1Q1QsSUM2dUNtQi9MLFdBVlY0TCxxQ0FVVTVMOzZCQWhTTCxTQW9TTGdNLFFBQU1DLEdBQUd2STtpQkRqdkNsQjtnQkNpdkNldUk7K0JBa2dEVjtXQWhnRDZCN1EsRUFGaEJzSTs7Ozs7OztvQkFBSHVJLG9DQUdFeEIsR0FIRndCOzs7c0JBQUd2STs7d0NBRzJCO2VBQVo4RztnQkFIZjlHO3dDQUcyQixZQUFaOEc7eUNBQXVCLE9BSHpDeUI7Z0JBR0V4Qjs7b0JBSEMvRztzQ0FJd0M7YUFBUmtIO2NBSmhDbEg7c0NBSXdDLEdBRHpDK0csS0FDaUNHO3VDQUFtQixPQUpuRGxIOzs7Z0JBS0FpSCxLQUxIc0IsTUFLa0N2QixLQUwvQmhIO2VBS0FpSCxPQUErQkQsK0JBQ3RDLFVBRHNDQTtvQkFMbEN1QjtxQ0FPc0MsT0FQdENBO29DQVEwQyw4QkFBeENwQixLQVJGb0I7b0NBUTBDLFVBQXhDcEI7WUFOaUJ6UCxFQUZuQjZRO2dDQUVxRCxPQUFsQzdRLDJCQU1rQzs2QkE1U3RELFNBOFNMOFEsT0FBTzVTLElBQUkwRztnQ0FBSTs7aUNBQWM7a0RBQWxCQTtnQ0FBa0I7c0JBQXRCMUcsd0NBQWtDOzZCQTlTcEMsU0FnVEw2UyxVQUFVN1M7aUJEN3ZDbkI7aUNDOHZDa0I7dUJBRENBOzs7Y0FFQzBHLFdBQUhGO21DQUZFeEcsU0FFRndHLEVBSlJvTSxPQUlXbE07a0NBQ0csOEJBQUxnTDtrQ0FBSzt3QkFISjFSLFNBR0QwUjs2QkFuVEo7OztPQTJRTFE7T0FtQkFNO09BTkFEO09BUUFFO09BakJBTjtPQUNBQztPQUVBQztPQWtCQUs7T0FVQUU7T0FFQUM7NkJBaFRLLFNBNlVMQyxPQUFNblMsRUFBRytGO2dDQUFJLFVBQVAvRixFQUFHK0YsNEJBQVk7NkJBN1VoQixTQThVTC9GLEVBQUVtQjtnQ0FBSSxPQUFKQSw4QkFBTzs2QkE5VUosU0ErVUxpUixJQUFFalI7Z0NBQUksT0FBSkEsOEJBQU87NkJBL1VKLFNBaVZMa1IsYUFBYWhULElBQUlpVDsrQkFDbkI7T0FBSWhDO3NCQURlZ0M7OzsrQkFPbkI7aUNBUGVqVCxJQUNYaVIsK0JBTTJCOzZCQXhWeEIsU0EwVkxpQyxLQUFHbFQsSUFBSW1UO2dDQUVNO29FQUZOQTtpQ0FDNEMsaUNBRDVDQTtnQ0FDNEM7O2VBRGhEblQ7O2VBVEhnVDs7OzhDQVdrQjs2QkE1VmIsU0FnV0xJLEtBQUs5RyxHQUFHRDtnQ0FBSyxVQUFSQyxHQUFHRCw2QkFBYTs2QkFoV2hCLFNBaVdMVDtpQkQ5eUNULElDOHlDYTlJOzZCQWpXQyxTQWtXTCtJO2lCRC95Q1QsSUMreUNnQi9JOzZCQWxXRjs7U0FpVkxrUSxhQVNBRSxLQWJBSixPQURBdlQsVUFFQW9CLEVBQ0FvUyxJQWlCQUssS0FDQXhILEdBQ0FDOzZCQWxXSyxTQW1YTHdILE9BQUt2UixFQUFFeU47Z0NBQUksVUFBTnpOLEVBQUV5Tiw0QkFBVTs2QkFuWFosU0FvWEwrRCxZQUFhbEQ7Z0NBQWE7T0FBaEJiO09BQUh6TjtpQ0FBbUIsS0FBaEJ5TixJQUFHYTtnQ0FBSyxVQUFYdE8sSUFBTXNPOzZCQXBYUixTQXFYTG1EO2lCRGwwQ1QsSUNrMENjelI7NkJBclhBLFNBc1hMMFI7VUFBU2pFLFdBQUh6TixxQ0FBUSxPQUFMeU4sSUFBSHpOOzZCQXRYRCxTQXVYTDJSO2lCRHAwQ1QsSUNvMENpQmxFOzZCQXZYSDs7U0FtWEw4RCxPQUNBQyxNQUNBQyxJQUVBRSxJQURBRCxPQUVBaFU7NkJBeFhLLFNBOFhMa1UsV0FBcUJoTixFQUFldkY7K0JBRXRDLEdBRnVCdUY7a0NBRUMsOEJBQU5xTSxJQUZLck07a0NBRUM7aUJBRmN2RixFQUVwQjRSO2dDQUFxQiwyQ0FBVTs2QkFoWTFDLFNBa1lMWSxjQUFjM1Q7aUJELzBDdkI7eUNDaTFDcUIsa0JBRkVBO3lDQUNBLGtCQURBQTs2QkFsWVQ7MkNBK1pFQSxJQUFJMEc7Z0NBQ1AsVUFET0E7O21DQUdLO3lCQUhUMUc7eUJBQUkwRzttQ0FFSTt5QkFGUjFHOzt3QkFBSTBHO21DQUtIO3dDQUxHQTtvQ0FLSDt3QkFES3FNOzs7OztrQ0FKTi9TO2dDQWFJO3NCQWJKQSxrQkFBSTBHLDRCQWEyQjs2QkE1YWpDOzs7OEJBOFpMOztzQ0FpRkVSLEVBcERPbEc7Z0NBQU07NEJBQU5BLDhCQUFzQjs2QkE3Qi9COzs7O3NDQXdFQWdVLFlBQWFsUjsrQkFDZixZQURlQSw4Q0FDMkI7NkJBekV4QyxTQTJFQW1SLGFBQWFuUjtnQ0FBSSxPQUFKQSw4QkFBTzs2QkEzRXBCLFNBNEVBb1IscUJBQXFCcFI7Z0NBQUksT0FBSkEsOEJBQVE7NkJBNUU3QixTQTZFQXFSLGNBQWNyUjtnQ0FBSSxPQUFKQSw4QkFBTzs2QkE3RXJCLFNBOEVBc1Isc0JBQXNCdFI7Z0NBQUksT0FBSkEsOEJBQVE7NkJBOUU5QixTQWdGQXVSLGVBQWVyVTtVQUFNOEosV0FBR25KLFdBQU8yVCxZQUFKQzs0Q0FBWnZVLFNBQ2JrRyxFQURtQjRELEVBQ25CNUQsRUFEc0J2RixFQUN0QnVGLEVBRHlCcU8sR0FDekJyTyxFQUQ2Qm9POzZCQWhGL0I7Ozt1Q0FpQ0FULGFBb0RBVzs2QkFyRkEsU0FxR0FFLEtBQUsvRzsrQkFDUDs7Ozs7aUJBRE9BOztjQXBFTGtHOztjQW9EQVcsK0JBMkJEOzZCQWhIQyxTQThIQUcsTUFBTTdTLEVBQUV5TjtnQ0FBSTtnQ0FBSzt5REFBWHpOLEVBQUV5Tiw2QkFBcUI7NkJBOUg3QixTQStIQXFGLFdBQVd6VCxFQUFFMkI7Z0NBQVE7Y0FBUkE7Ozs7bUJBQUYzQjtjQUFFMkI7Ozs2Q0FBOEM7NkJBL0gzRCxTQWlJQStSLGNBQWVDLE1BQU0zVCxFQUFHMkI7K0JBQzFCLEdBRGlCZ1M7aUNBSUM7MENBSkRBO2tDQUlDLEtBSlFoUztrQ0FJUjtRQUhka1Msa0NBR2MsZ0JBQVREOztXQUhMQyxRQURzQmxTOytCQU0xQjtjQU4wQkE7Ozs7bUJBQUgzQjtjQUNuQjZUO2NBRHNCbFM7OzZDQU1nQjs2QkF2SXhDLFNBeUlBbVMsV0FBV25ULEVBQUV5TixFQUFFek07Z0NBQVE7Y0FBUkE7Ozs7bUJBQUpoQixFQUFFeU47Y0FBRXpNOzs7NkNBQThDOzZCQXpJN0QsU0EySUFvUyxZQUFZQyxRQUFRclM7K0JBQ3RCO2NBRHNCQTs7OzttQkFBUnFTO2NBQVFyUzs7OzZDQUNvQjs2QkE1SXhDLFNBOElBc1MsaUJBQWlCQyxhQUFhdlM7K0JBQ2hDO2NBRGdDQTs7OzttQkFBYnVTO2NBQWF2Uzs7OzRDQUsvQjs2QkFuSkMsU0FxSkF3UyxpQkFBaUJELGFBQWF2UzsrQkFDaEM7Y0FEZ0NBOzs7O21CQUFidVM7Y0FBYXZTOzs7NENBSy9COzZCQTFKQyxTQTRKQXlTO2dDQUFrQjs7OztvQ0FHSztXQUFSMUg7O29DQUFRO21DQUFSQTtZQURWc0Y7Ozs7bUNBRFM7O1lBQ1RBO2dDQUEwQjswQkFBMUJBLDhCQUN5Qzs2QkEvSjlDLFNBaUtBcUMsT0FBUTFMLEVBQUduSixFQUFHNFQsR0FBSUQsR0FBSWpHLElBQUtSLEtBQU8zTTsrQkFHcEM7d0NBSHdCbU4sSUFBS1I7aUNBSXJCOzs7Ozs7c0NBSkUvRDtZQUFHbko7WUFBRzRUO09BU05rQixLQVRVbkI7Z0NBVWhCOzs7O2NBRE1tQjttQkFUQTNMLEVBQUduSixFQUlUd1M7Ozs7OzZCQXJLRixTQTZLQXVDLFVBQVc1SCxFQUFrQk8sSUFBS1IsS0FBTzNNLElBQWdCNEI7K0JBRzNEO3dDQUgrQnVMLElBQUtSO2lDQUc1Qjs7O2NBSG1EL0s7Ozs7c0JBQTlDZ0wsZUFHVHFGO2NBSHVEclE7Ozs2Q0FJUjs2QkFqTGpELFNBbUxBNlMsYUFBY2IsTUFBTTNULEVBQUcyQjsrQkFDekIsR0FEZ0JnUztpQ0FFbUM7MENBRm5DQTtRQUNaRSxRQUNzQ0Q7O1dBRHRDQyxRQURxQmxTOytCQUl6QjtjQUp5QkE7Ozs7bUJBQUgzQjtjQUNsQjZUO2NBRHFCbFM7OzZDQUltQjs2QkF2TDFDLFNBeUxBOFMsT0FBUWxRLEVBQVE1RjsrQkFDbEI7cUNBbEdFMlU7Z0NBa0dGLEtBbEdFQTtnQ0FrR0YsS0FEVS9PLE9BQVE1RjtnQ0FDbEIsS0FEa0JBO2dDQUNsQixLQURVNEY7Z0NBQ1Y7aUNBT1U7O3lDQVJBQSxFQUFRNUY7aUNBUVIsS0FSUUE7aUNBUVIsS0FSQTRGO2lDQVFBO2lDQUZIOztzQ0FOVzVGO2lDQU1YLEtBTkc0RjtpQ0FLSDtzQ0FMVzVGO2lDQUtYLEtBTEc0RjtpQ0FLSDtpQ0FERDs7c0NBSlk1RjtpQ0FJWixLQUpJNEY7Z0NBR0o7Ozs7Ozs7Ozs0Q0FPTDs2QkFuTUMsU0FxTUFtUSxPQUFRblEsRUFBUTVGOytCQUNsQjtxQ0E5R0UyVTtnQ0E4R0YsS0E5R0VBO2dDQThHRixLQURVL08sT0FBUTVGO2dDQUNsQixLQURrQkE7Z0NBQ2xCLEtBRFU0RjtnQ0FDVjtpQ0FPVTs7MENBUkFBLEVBQVE1RjtpQ0FRUixLQVJRQTtpQ0FRUixLQVJBNEY7aUNBTUg7c0NBTlc1RjtpQ0FNWCxLQU5HNEY7aUNBTUg7aUNBREE7O3NDQUxXNUY7aUNBS1gsS0FMRzRGO2lDQUlKO3NDQUpZNUY7aUNBSVosS0FKSTRGO2lDQUlKO2dDQURBOzs7Ozs7Ozs7NENBT0w7NkJBL01DLFNBaU5Bb1EsT0FBUXBRLEVBQVE1RjsrQkFDbEI7cUNBMUhFMlU7Z0NBMEhGLEtBMUhFQTtnQ0EwSEYsS0FEVS9PLE9BQVE1RjtnQ0FDbEIsS0FEa0JBO2dDQUNsQixLQURVNEY7Z0NBQ1Y7aUNBT1U7OzBDQVJBQSxFQUFRNUY7aUNBUVIsS0FSUUE7aUNBUVIsS0FSQTRGO2lDQVFBO2lDQUZIOztzQ0FOVzVGO2lDQU1YLEtBTkc0RjtpQ0FNSDtpQ0FEQTs7c0NBTFc1RjtpQ0FLWCxLQUxHNEY7aUNBS0g7aUNBREQ7O3NDQUpZNUY7aUNBSVosS0FKSTRGO2lDQUlKO2dDQURBOzs7Ozs7Ozs7NENBT0w7NkJBM05DO3dDQXdGQStPLE9BaUdBbUI7OEJBekxBLFVBd0ZBbkIsT0E2R0FvQjs4QkFyTUEsVUF3RkFwQixPQXlIQXFCOzZCQWpOQSxTQWdPQUksT0FBSzNNO2dDQUFLOzRCQUhWd00sT0FHS3hNLDZCQUErQjs2QkFoT3BDLFNBaU9BNE0sT0FBSzVNO2dDQUFLOzRCQUhWeU0sT0FHS3pNLDZCQUErQjs2QkFqT3BDLFNBa09BNk0sT0FBSzdNO2dDQUFLOzRCQUhWME0sT0FHSzFNLDZCQUErQjs2QkFsT3BDLFNBbU9BOE0sWUFBVXZUO2dDQUFJO3dCQUFKQSwrQkFBMkI7NkJBbk9yQyxTQXFPSXdULEtBQUd0VyxJQUFJOEM7K0JBQ2I7c0JBRFM5QyxtQkFBSThDLEtBSVh5VCxRQUpXelQsK0JBRUw7NkJBdk9OLFNBeU9BeVQsUUFBUXZXO2lCRHBsRGpCOzttQ0NzbERXOzs7O29DQUNFOzs7cUNBSElBLGNBQ0gwRjs7bUNBSUg7VUFEVzhROzttQ0FDWDtxQ0FMTXhXLFNBSkpzVyxLQVFTRTs7bUNBR1g7VUFEZ0JDOzttQ0FDaEI7cUNBUE16VyxTQUpKc1csS0FVY0c7O21DQUdoQjtVQURnQkM7O21DQUNoQjtxQ0FUTTFXLFNBSkpzVyxLQVljSTs7bUNBSWQ7VUFGYW5IO1VBQUh6TjtVQUFONlU7OztvQ0FFSjswREFwS0Z6UTtvQ0FvS0U7O29DQURrQzswREFuS3BDQTttQ0FtS29DO3lCQVg5QmxHLGNBVU04QixPQUFHeU4sRUFkYitHLEtBY0lLOzttQ0FPTiw4QkFEYXpOO21DQUNiO3FDQWpCTWxKLFNBSkpzVyxLQW9CV3BOOzttQ0FFTSw4QkFBVG9HO21DQUFTO3FDQWxCYnRQLFNBSkpzVyxLQXNCUWhIOzthQUNNc0gsYUFBSEMsYUFBSEM7OENBbkJKOVcsU0FtQk82VyxJQUFHRCxJQXZCZE4sS0F1QlFROzttQ0FHViw4QkFEWUM7bUNBQ1o7cUNBdEJNL1csU0FKSnNXLEtBeUJVUzs7YUFFUmpYLFdBQUh5UTs4Q0F2Qkt2USxTQUpKc1csS0EyQkQvRixJQTNCQytGLEtBMkJFeFc7O2FBQ0FrWCxhQUFIeEc7OENBeEJLeFEsU0FKSnNXLEtBNEJEOUYsSUE1QkM4RixLQTRCRVU7O2FBQ0FDLGFBQUh4Rzs4Q0F6Qkt6USxTQUpKc1csS0E2QkQ3RixJQTdCQzZGLEtBNkJFVzs2QkFsUU4sU0FvUUFDLE9BQUsvVixFQUFFZ1c7K0JBQ1Qsa0NBRFNBOytCQUNUO3lDQUNZOzs7O2FBVUhDLFdBQUpDO21DQUNELHFDQWJHbFcsRUFZRmtXO21DQUNEO2tCQWJHbFcsRUFZRWlXO29CQVRNRSw0QkFIUm5XLEVBR1FtVyw2QkFXUDs2QkFsUk47OztPQWhDQTVEO09BSUFDO09BMEJBQztPQW1GRTFOO09BaERGMk47T0FDQUM7T0FDQUM7T0FxQ0FDO09BR0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BRUFDO09BS0FHO09BR0FDO09BYUFDO09BeUJBQztPQUNBQztPQUVBQztPQVFBSTtPQUVBQztPQUdBRTtPQU9BRTtPQU9BQztPQUtBQztPQVlBRTtPQU1BQztPQU1BQztPQVlBQztPQVlBQztPQVlBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUVJQztPQUlKQztPQTJCQVc7NkJBcFFBLFNBc1NBSyxPQUFLak47K0JBQ1AsVUFET0EsK0NBQ2dEOzZCQXZTckQsU0F5U0FrTixPQUFLMVU7Z0NBQUksT0FBSkEsOEJBQVU7NkJBelNmLFNBMlNBMlUsWUFBYU4sR0FBUzNROytCQUN4QixTQUFRa1IsSUFBSVA7aUNBQ1Ysa0NBRFVBO2lDQUNWOztxQ0FJc0I7MkJBTGhCTyxJQUFJUDs7O3NDQUdrQixHQUpOM1E7dUNBSWdCO3NDQUNiLDhCQUFORTtzQ0FBTTs2QkFBTkE7a0NBRm9CLGtDQUdOOytCQUxuQyxvQ0FEZXlRLDZCQVFUOzZCQW5USixTQXFUQVEsTUFHRWpTLEVBSFFrUyxHQUdKOVgsRUFIVytYLEdBQUdDO2dDQUNSO3lDQURGRixLQUFPQztpQ0FFUixLQUZXQyxRQUdsQnBTO2lDQURpQixZQUNiNUY7O2NBRkppWSxnQkFDQUM7a0NBR0EsR0FMZUgsS0FBUEQ7bUNBTVU7eUNBSmxCSSxPQUZRSjtVQUtKSyxhQUpKRjs7bUNBTWdCO3lDQUxoQkMsT0FGZUg7b0NBT1csWUFOMUJFO1VBSUlFLE1BSEpEO2tDQU9hO3dDQU5UbFksSUFESmtZO21DQU9zQixXQUpsQkM7bUNBSUgsS0FORHZTLElBRUl1UztTQUZBaEI7U0FBSjFHOzsrQkFnbENOLGtCQWhsQ1UwRyxNQUFKMUc7K0JBY0osVUFkSUEsSUFBSTBHLDhCQWNBOzZCQXRVTixTQXdVQWlCLEtBQU1DLE1BQU9KLFFBQVFELE1BQU1NLEdBQUdDO2dDQUVuQjtzQ0FGVVAsUUFBZks7O2NBQU9KLGdCQUVUQztpQ0FDOEI7O1FBRjVCTSxHQURlUjtRQUNuQlM7OzsrQkErakNOO2tDQTNqQ007U0FBSUM7Z0JBSEZSLEtBRnVCSSxHQUFHQztrQ0FNNUIsaUJBRElHO21DQUVXOztVQU5YRixHQURBSDtVQUNKSTs7eUJBSUlDO29DQUdXOzBDQU5iUjtXQURFTSxHQURBSDtXQUNKSTs7Y0FBSUQsR0FEQUgsTUFDSkksR0FDRVA7K0JBWU4sVUFiSU8sR0FBSUQsNkJBYUE7NkJBdFZOLFNBd1ZBSSxxQkFBcUJDOytCQUN2QixjQUR1QkEsNENBQ2M7NkJBelZuQyxTQTJWQUMscUJBQXFCRDsrQkFDdkIsY0FEdUJBLDRDQUNjOzZCQTVWbkMsU0E4VklFLGVBQWVDLEdBQUdDLEdBQUd4RSxHQUFHRCxHQUFJNkM7VUFBYjZCLFFBQUdDLFFBQUdDLFFBQUd6RCxRQUFJMEQ7K0JBQ2xDOzt1Q0FEa0NBO2tDQUVoQzs7Ozs7b0NBQ0c7Z0JBSDZCQTtxQ0FHN0I7OztxQkFINkJBOzs7O2VBT05DO2VBQUxDO2VBQUxDO2VBQUxDO29CQVBRUCxRQU9STzs7eUJBUFdOLFFBT05LOzswQkFQU0osUUFPSkcsbUJBUE81RCxRQU9GMkQ7Ozs7Ozs7Ozs7O2tDQUV2Qjs7OztxQ0FDdUI7OzhDQVZNRDtvQ0FTN0IsMEJBQ3VCOztZQVZNQTtvQ0FXN0I7O3FDQUNELGdCQVppQkgsS0FBR0MsS0FBR0MsS0FBR3pEO29DQVN6Qix5QkFJSCxTQWJnQzBEO21DQWFoQzs2Q0FDWTs7aUJBTVdLLGVBQUgxVzthQXBCWXFXLFVBb0Jaclc7dUNBRUg7Y0FBVDJXO3lDQUFTO2lCQUZNRCxPQXBCSlIsS0FBR0MsS0FBR0MsS0FBR3pEO3VDQXVCeEI7ZUF2QmV1RCxLQUFHQyxLQUFHQyxLQUFHekQsS0FvQlIzUzt1Q0FHaEI7c0JBREkyVzs7dUNBSVM7Y0FETUM7Y0FBSHpNO3dDQUNIOztpQkFETXlNLFNBekJKVixLQUFHQyxLQUFHQyxLQUFHekQ7dUNBMkJ4QjtlQTNCZXVELEtBQUdDLEtBQUdDLEtBQUd6RCxLQXlCUnhJO3VDQUVoQjtzQkFESTBNOzt1Q0FVRztjQVBReEc7Y0FBSDVEO2NBQUh6TjtjQUFINE87O3dDQU9DO3lEQVBReUM7d0NBT1I7d0NBQUg7Ozt3Q0FERzt5REFOUUE7d0NBTVI7d0NBQUg7OzZDQU5FekM7d0NBTUYsS0FORUE7d0NBTUY7d0NBRk87eURBSkY1Tzt3Q0FHUDt3REFoQ21Cb1g7d0NBZ0NuQjs7O3dDQVdLO3lEQWRRL0Y7d0NBY1I7d0NBQUg7Ozt3Q0FERzt5REFiUUE7d0NBYVI7d0NBQUg7OzZDQWJFekM7d0NBYUYsS0FiRUE7d0NBYUY7d0NBRk87eURBWENuQjt3Q0FVVjt3REF2Q3NCa0c7d0NBdUN0Qjs7d0NBTXdCLEtBN0NSd0QsT0FzQ2RjO3dDQU9XLEtBN0NBZixPQStCWGE7Y0EvQldiO2NBQUdDO2NBQUdDLEtBK0JiVTtjQS9CZ0JuRSxLQXNDaEJxRTtjQXRDb0JYLEtBNkJ0QnpJOzs7dUNBa0JvQjtjQURUd0o7Y0FBSkM7Y0FBSEM7d0NBQ2dCLEtBL0NSbkIsT0E4Q0RpQjt3Q0FDRixLQS9DQWxCLE9BOENGbUI7Y0E5Q0VuQjtjQUFHQztjQUFVRSxLQThDbEJpQjs7O3VDQUdHO2NBRFR0YTtjQUFINEY7bUJBQUc1Rjs7bUJBQUg0Rjs7d0NBQ1k7bUVBakRRd1Q7d0NBaURSOzt1Q0FDYjtlQWxEZUYsS0FBR0MsS0FpRGR1QixHQWpEb0IvRSxLQWdEdkIvUDt1Q0FDWTt3Q0FFRSxLQW5EQXNULE9BaURYd0I7Y0FqRFd4QjtjQUFNRSxLQWlEYnFCO2NBakRvQnBCLEtBZ0R4QnJaOzs7dUNBS1M7Y0FEVGtYO2NBQUh6RzttQkFBR3lHOzttQkFBSHpHOzt3Q0FDWTttRUFyRFdrRjt3Q0FxRFg7O3VDQUNiO2VBdERldUQsS0FBR0MsS0FBR0MsS0FxRGpCeUIsR0FESHBLO3VDQUNZO3dDQUVLLEtBdkRBMEksT0FxRGQwQjtjQXJEYzFCO2NBQU14RCxLQXFEaEJpRjtjQXJEb0J2QixLQW9EeEJuQzs7O2lCQUlBQyxZQUFIekc7dUNBQ0Q7ZUF6RGV3SSxLQUFHQyxLQUFHQyxLQUFHekQsS0F3RHZCakY7aUJBeEQyQjJJLEtBd0R4QmxDOzt3QkF4RHdCNEQ7OENBMERDOzZCQXhaakMsU0EwWkFDLGFBQWEzRDsrQkFDZixrQ0FEZUE7K0JBQ2Y7a0NBRXNCLDhCQUFMM1E7a0NBQUs7aUJBSFAyUSxHQUdFM1E7Z0NBRGlCLGtDQUNJOzZCQTdacEMsU0FxZEF1VSxZQUFZelEsR0FBSUosS0FBY2lOOytCQUNoQztxQ0FEZ0NBO2lDQUNyQjttREFERzdNLEdBQUlKO2dDQUNQLE9BQVBzTTs7bUNBR1U7c0NBSFZBO29DQUdVO29DQUF1QjtxREFKbkJ0TTtvQ0FJbUI7b0NBQVg7cURBSlpJLFFBSUw5RDtvQ0FBaUI7Ozs7VUFGbkI3RjtVQUFIbUo7OzttQ0FXZ0M7VUFEbEI2RixJQVhkNkc7VUFXVzlHLElBWFg4RztVQVdRdkosSUFYUnVKO2VBV1F2Sjs7b0NBQ3dCO3FEQURsQjBDO29DQUNrQixLQUR4QjFDO29DQUN3QjtvQ0FBN0I7cURBRFF5QztVQVZSL087VUFBSG1KOzs7bUNBWW1DO1VBQWpCeUYsRUFibEJpSDtVQWFlMVUsRUFiZjBVO1VBYVk5RixJQWJaOEY7ZUFhWTlGO29DQUF1QixXQUFqQm5CO29DQUFpQixLQUF2Qm1CO29DQUFhLFlBQVY1TztVQVpabkI7VUFBSG1KOzs7bUNBYXlCO1VBQW5CaEssRUFkTjBXO1VBY0c5USxFQWRIOFE7ZUFjTTFXO2VBQUg0Rjs7b0NBQXNCOzt5Q0FBbkI1RjtvQ0FBbUIsS0FBdEI0RjtvQ0FBVTtVQWJWL0U7VUFBSG1KOzs7bUNBYzBCO1VBQXBCa04sSUFmTlI7VUFlR2pHLElBZkhpRztlQWVNUTtlQUFIekc7b0NBQXVCO3lDQUFwQnlHO29DQUFvQixLQUF2QnpHO29DQUF1QjtvQ0FBYjs7VUFkVjVQO1VBQUhtSjs7O21DQWUwQjtVQUFwQm1OLElBaEJOVDtVQWdCR2hHLElBaEJIZ0c7ZUFnQk1TO2VBQUh6Rzs7b0NBQXVCOzt5Q0FBcEJ5RztvQ0FBb0IsS0FBdkJ6RztvQ0FBdUI7b0NBQWI7O1VBZlY3UDtVQUFIbUo7O29CQUdhaEgsRUFKYjBULGFBSWExVCxlQUhWbkMsT0FBSG1KOytCQWlCSjtjQWpCSUE7Y0FBR25KO2NBRnlCd1c7O2NBQzVCWDtjQUQ0Qlc7OzsrQ0FtQmtCOzZCQXhlaEQsU0ErWkk2RCxpQkFBaUIxUSxHQUFJSixLQUFjaU47K0JBQ3pDLE9BRHlDQTt5Q0FFeEIsT0FGd0JBOzthQUd2QnpRLEVBSHVCeVEsTUFHMUJyVSxFQUgwQnFVO21DQUdKO3VEQUhkN00sR0FBSUosS0FHWnBIO2lCQUFHNEQ7O2FBS0txTSxJQVJrQm9FLE1BUXJCbEssSUFScUJrSzttQ0FTbkI7dURBVEM3TSxHQUFJSixLQVFQK0M7aUJBQUc4Rjs7YUFFQW9JLElBVmtCaEUsTUFVckJ6RyxJQVZxQnlHO21DQVduQjt1REFYQzdNLEdBQUlKLEtBVVB3RztpQkFBR3lLOzttQ0FRa0I7VUFOdEI5QyxHQVpzQmxCO1VBWXpCeFcsRUFaeUJ3VztVQVk1QnJOLEVBWjRCcU47VUFZL0JpRCxJQVorQmpEOztvQ0FrQkE7cURBbEJkak47b0NBa0JjO29DQUF6QjtxREFOQXZKO29DQU1BO29DQUR5QjtxREFqQmR1SjtvQ0FpQmM7b0NBQXpCO3FEQUxISjtvQ0FLRztvQ0FESDs7O29DQURLO3FEQWZTSTtvQ0FlVDtvQ0FBUjs7bUNBREY7dURBZGVJLFFBWWI4UDtpQkFBR3RRO2lCQUFHbko7aUJBQUcwWDs7YUFSQytDLElBSnFCakUsTUFJeEJrRSxJQUp3QmxFO21DQUt0Qjt1REFMSTdNLEdBQUlKLEtBSVZtUjtpQkFBR0Q7O2FBRUhFLElBTndCbkUsTUFNM0JvRSxJQU4yQnBFO21DQU1OO3VEQU5aN00sR0FBSUosS0FNYnFSO2lCQUFHRDs7bUNBc0JKO1VBTFFwQixHQXZCb0IvQztVQXVCeEJnRCxHQXZCd0JoRDtVQXVCM0JxRSxJQXZCMkJyRTs7b0NBNEI1QjtxREE1QmNqTjtvQ0E0QmQsUUFMSWlRLEdBQUlEO29DQUtSO29DQURrQjs7O29DQUFkO3FEQTNCVWhRO29DQTJCVjs7OztvQ0FEUDs7bUNBREY7dURBekJlSSxRQXVCVGtSO2lCQUFHckI7aUJBQUlEOzthQWhCRnVCLElBUHNCdEUsTUFPekJ1RSxJQVB5QnZFO21DQU9GO3VEQVBoQjdNLEdBQUlKLEtBT1h3UjtpQkFBR0Q7O21DQTBCTjtVQURMM2IsRUFoQ2lDcVg7VUFnQ3BDelIsRUFoQ29DeVI7b0NBaUM1QjtpREFqQ1U3TSxHQUFJSixLQWdDdEJ4RTtvQ0FDUTtvQ0FLRjtxREF0Q2dCd0U7b0NBc0NoQjtvQ0FEK0I7cURBckNmQTtvQ0FxQ2UsS0FKbENxRztvQ0FJa0M7b0NBQXhCO3FEQXJDU3JHO29DQXFDSzs7b0NBQWpCOzs7b0NBRFA7O29DQURGO2lEQW5DaUJJLFFBZ0NmeEs7bUNBR0YsVUFGRXlRLElBQ0F5Rzs7bUNBU0s7VUFETEMsSUExQ2lDRTtVQTBDcEMzRyxJQTFDb0MyRztvQ0EyQzVCO2lEQTNDVTdNLEdBQUlKLEtBMEN0QnNHO29DQUNRO29DQUtGO3FEQWhEZ0J0RztvQ0FnRGhCLEtBTEh1RztvQ0FLRztvQ0FEd0I7cURBL0NSdkc7b0NBK0NzQjs7b0NBQWhDO3FEQS9DVUE7b0NBK0NWO29DQUFGOzs7b0NBRFA7O29DQURGO2lEQTdDaUJJLFFBMENmMk07bUNBR0YsV0FGRXhHLElBQ0FrTDs7bUNBUWdDO1VBQWhDQyxJQXBEaUN6RTtVQW9EcEMwRSxJQXBEb0MxRTtvQ0FvREQ7aURBcERqQjdNLEdBQUlKLEtBb0RuQjBSO21DQUFTO3VEQXBETXRSLEdBQUlKLEtBb0R0QjJSO2lEQUF5RDs2QkFuZDVELFNBMGVBQyxPQUFPaFosRUFBRW9ILEtBQU1pTjsrQkFDakIsT0FEV2pOOytCQUNYOzs7aUNBQzJCO3VEQUZoQkE7aUNBRWdCLEtBRmxCcEg7Z0NBRUM7O3NEQUZPcVU7K0JBQ2pCO2lDQUNVLEtBRkRyVTtpQ0FFQztpQ0FDdUI7a0RBSHRCb0g7aUNBR3NCO2lDQUFaO2tEQUhWQTtpQ0FHVTs7K0JBQXJCOzs7ZUFIU3BILCtCQUlVOzZCQTllakIsY0FnZmVpWixHQUFHamEsRUFBRXlOLEVBQUV5TSxJQUFJbFMsRUFBRW5KLEVBQUVtQzsrQkFDaEMsU0FBSW1aLE9BQU9uRCxHQUFHQyxHQUFHNVg7a0NBQ1M7d0NBRkpvTyxJQUNSd0o7bUNBQ0QsS0FGT2pYLElBQ1RnWDttQ0FDSDsrQ0FEUzNYLFlBRE82YTtrQ0FFaEI7O2tDQUFrQiwwQkFJcEIsSUFESUU7a0NBQ0osV0FESUE7a0NBQ0osa0NBQ0k7K0JBTlYsU0FRUXhFLElBQUlvQixHQUFHQyxHQUFHeEUsR0FBR0QsR0FBR3hSO1lBQVprVyxRQUFHQyxRQUFHQyxRQUFHekQsUUFBR3hJO2lDQUN0QjtxRUFEc0JBO21DQUN0Qjs2Q0FDWTs7dUNBZ0N5QztjQUhsQ2tHO2NBQVRpSDs7d0NBRzJDO3lEQUhsQ2pIO3dDQUdrQzt3Q0FBSDs7O3dDQUFSO3lEQUh2QkE7d0NBR3VCO3dDQUFIOzs2Q0FIN0JpSDt3Q0FHNkIsS0FIN0JBO3dDQUdKO3dEQWxDVWxCO3dDQWtDVjs7O3dDQUcrQzt5REFObEMvRjt3Q0FNa0M7d0NBQUg7Ozt3Q0FBUjt5REFOdkJBO3dDQU11Qjt3Q0FBSDs7NkNBTjdCaUg7d0NBTTZCLEtBTjdCQTt3Q0FNSjt3REFyQ2EzRTt3Q0FxQ2I7O3dDQUVhLEtBdkNOd0QsT0FvQ0xjO3dDQUdBLEtBdkNFZixPQWlDRmE7Y0FqQ0ViO2NBQUdDO2NBQUdDLEtBaUNKVTtjQWpDT25FLEtBb0NQcUU7Y0FwQ1U3TSxJQStCWm1OOzs7dUNBakJKO2NBRmNqWjtjQUFIa2E7Ozs7O3dDQUVYO3dEQWRVbkM7d0NBY1Y7Ozs7NkNBRldtQzt3Q0FFWCxLQUZXQTt3Q0FJWDt3REFoQmE1Rjt3Q0FnQmI7OzhCQURFMkc7eUNBSUg7O3VCQTVCYXRhLElBU1JrWDt5Q0FtQkw7MkNBQ0U7O21CQTdCV2xYLElBU1JrWDsyQ0FvQkg7NENBQ0E7d0RBOUJhekosSUFTUDBKOzZDQXFCTjt5QkE5QmExSixJQVNQMEosUUFlS2tEOzs7Ozs7MkNBUVY7O2lEQXZCRW5ELEtBQUdDLEtBQUdDLEtBQUd6RCxLQVlGNEY7MkNBV1Q7eUJBL0JOWSxPQVFRakQsS0FBR0MsS0FZTzlYOzJDQVdaOzs7Ozs7dUNBT1c7Y0FESytZO2NBQUpDO2NBQU4zRDt3Q0FDSyxLQTlCTnlDLE9BNkJXaUI7d0NBQ2hCLEtBOUJFbEIsT0E2QlVtQjtjQTdCVm5CO2NBQUdDO2NBQVNoTSxJQTZCUnVKOzs7dUNBWUo7Y0FEUzBGO2NBQUhoVDtpREFqRE04UyxRQUFKbGEsRUFBRXlOO3dDQWtEVjtvREFEUzJNO3VDQUNUO3dDQUNRO3VDQURSLElBekNZalAsSUF3Q04vRDs7O3VDQXBDQztjQURUcEo7Y0FBSDRGO21CQUFHNUY7O21CQUFINEY7O3dDQUNZO21FQUpEd1Q7d0NBSUM7O3VDQUNWLEdBZFdwWCxJQVNSa1gsT0FJRndCO21CQUpRdEIsS0FJUnNCLEdBSmN2TixJQUdqQnZIO3VDQUNZO3dDQUVKLEtBTkhzVCxPQUlGd0I7Y0FKRXhCO2NBQU1FLEtBSUpxQjtjQUpVdE4sSUFHZG5OOzs7dUNBS1M7Y0FEVGtYO2NBQUh6RzttQkFBR3lHOzttQkFBSHpHOzt3Q0FDWTttRUFSRWtGO3dDQVFGOzt1Q0FDVixHQWxCYWxHLElBU1AwSixPQVFMMEI7bUJBUldsRixLQVFYa0YsR0FSYzFOLElBT2pCc0Q7dUNBQ1k7d0NBRUQsS0FWSDBJLE9BUUwwQjtjQVJLMUI7Y0FBTXhELEtBUVBpRjtjQVJVek4sSUFPZCtKOzs7dUNBSU07Y0FBTkM7Y0FBSHpHO3dDQUFTOzZDQVhKd0ksS0FBR0MsS0FBR0MsS0FBR3pELEtBV1h3Qjt1Q0FBTTsyQ0FYUWhLLElBV2pCdUQ7O3dCQVhpQkUsd0RBMkNnQjsrQkFuRHhDO3FCQUQ0QjVHLEVBQUVuSixFQUFFbUMsNEJBc0RqQjs2QkF0aUJiLFNBd2lCQXVaLGFBQWFOLEdBQUdqYSxFQUFFeU47K0JBQ3BCLGtDQURld007K0JBQ2Y7MEJBRVd0SjtRQUhJc0o7MEJBR0p0SixRQUhPM1EsRUFBRXlOO2dDQUVWLGtDQUdPOzZCQTdpQmYsU0EraUJBK00sY0FBY2hTLEdBQUdzUCxHQUFHRSxHQUFHeUM7K0JBQ3pCOzs7aUNBQTBCO2tEQURWalMsUUFBU2lTO2lDQUNDO2lDQUFmOzs7O1NBQVB6UyxLQURlOFAsTUFDWmpaLEtBRGVtWiw2QkFLakIsT0FMb0J5QzsrQkFDekI7aUNBR2lELFFBSjNCekMsS0FDZm5aO2lDQUcwQztnQ0FBYjswQkFKakJpWixLQUNmOVAsYUFEcUJ5UyxnQ0FLZjs2QkFwakJSLFNBc2pCQUMsZUFBZWxTLEdBQUd3TyxHQUFHQyxHQUFHYSxHQUFHRSxHQUFHeUM7K0JBQ2hDOzs7aUNBQTBCO2tEQURUalMsUUFBZWlTO2lDQUNOO2lDQUFmOzs7O2lDQUM4QixLQUZaekMsS0FDdEJuWjtpQ0FDeUMsZUFGekJvWTtpQ0FFeUIsUUFGekJBO2lDQUVELEtBRklhLEtBQ3RCOVA7Z0NBQ3lCO3dCQUZUZ1AsNEJBQVl5RCxnQ0FFNkI7NkJBeGpCM0QsU0EwakJBRSxVQUFVblMsR0FBR1IsRUFBRW5KLEVBQUU0YjsrQkFDbkI7OztpQ0FBNEI7a0RBRGhCalMsUUFBT2lTO2lDQUNTLFFBRGJ6UyxFQUFFbko7aUNBQ1c7aUNBQWxCOzs7NkRBQTRDOzZCQTNqQnBELFNBNmpCQStiLGVBQWU1Wjt5QkFBY3lNLFdBQUh6TixXQUFSNmE7OzttQ0FPUCxtQ0FQSTdaO21DQU9KOytCQUdDOFo7cUNBQ0o7YUFESUEsS0FWYzlhLEVBQUd5Tjs7OzttQ0FPbEI7O21DQU9QO1dBZFd6TSxFQUFXaEIsRUFBR3lOOzs7a0NBSXpCLDhCQURLeU0sSUFIU1c7a0NBSWQ7VUFKVzdaLEVBQVdoQixFQUFHeU47a0NBSXpCO3dDQUpXek07bUNBSVg7bUNBQ1c7Ozs7d0NBTEFBO3dDQU1YLEtBTldBLEVBQVdoQixFQUFHeU4sRUFHcEJ5TSxJQUVEbFMsRUFBR25KO2dDQVdSOzZCQTdrQkgsU0FnbEJJa2MsWUFBWXZTLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBQWF4UjsrQkFNM0M7c0NBTjJDQTtnQ0FNM0MsS0FDTTBSO2dDQUROO2lDQUVTOzJEQVRhc0k7Z0NBU2I7a0NBQ0c7Y0FGTnRJOzttQ0FFTTs2REFWd0J1STtrQ0FVeEI7b0NBQ0E7Z0JBSE52STs7cUNBR007WUFYc0N3SSxpQ0FXdEM7OztpQkFITnhJOztpQkFQSHlJLGlDQVdTOzs7Ozs7O3dDQUNQLE9BWnNDbmE7WUFET2thLGdCQUMvQ0MsZ0JBQWMxSSxLQURLdUksV0FDUXhJLEtBRE15STtpQ0FxQmxDLGtDQXBCeUNqYTtpQ0FvQnpDOztlQUVTeVosbUJBdEJnQ3paO3FDQXdCOUI7O3VDQUE2Qjs7d0JBQ2ZxTTsyQ0FBSzswQkFBTEEscUNBQW1DO3dDQURwQjs7dUNBQzlCOzt1Q0FEOEI7d0NBQzlCOztjQUZBK04sa0NBR0EscUJBSkRYOztnQkFDQ1csUUFERFg7cUNBVU87O3FEQWpDQWpTLEdBQ0RpSyxHQUFhRCxHQXVCbEI0STtzQ0FTTTs7c0NBREg7NERBL0JlNUk7c0NBK0JmOztZQVhUNkk7MENBVVMscUJBOUJFNUk7OztlQWtDUVksZ0JBQU5xQjtxQ0FDWDthQURpQnJCLFFBbENSWixHQUFhRDs7WUFvQnhCNkk7dUNBZ0JFO2VBckNVN1MsR0FBSXdTLElBQWNDLElBQWNDLElBQy9DQyxJQUFjMUksR0FBYUQsR0FrQ1hrQzs7O3FDQTZFc0M7WUFIbENyRDtZQUFUbEc7O3NDQUcyQzt1REFIbENrRztzQ0FHa0M7c0NBQUg7OztzQ0FBUjt1REFIdkJBO3NDQUd1QjtzQ0FBSDs7MkNBSDdCbEc7c0NBRzZCLEtBSDdCQTtzQ0FHSjtzREEvR09zSDtzQ0ErR1A7OztzQ0FHK0M7dURBTmxDcEI7c0NBTWtDO3NDQUFIOzs7c0NBQVI7dURBTnZCQTtzQ0FNdUI7c0NBQUg7OzJDQU43QmxHO3NDQU02QixLQU43QkE7c0NBTUo7c0RBbEhvQnFIO3NDQWtIcEI7O3NDQUlFLEtBdEhUMkksTUFpSFNsRDtzQ0FJcUMsS0F0SENpRCxNQStHdENuRDtzQ0FPeUIsS0F0SERrRCxNQWtIeEJoRDtzQ0FJYSxLQXRISCtDLE1BK0dWakQ7c0NBT0Y7O2VBdEhRdlAsdUJBK0dGc1AsR0FHQUUsR0FMRjdNO3NDQVNKLEtBREVoRTtzQ0FJUTtzREF6SEZxQixHQStHTnVQLEdBR0FFLEdBakhLeEYsR0FBYUQ7c0NBd0hWLEtBSlJyTDtzQ0FJUTtzQ0FDSDs0REFYTDRRO3NDQVdLLEtBTEw1UTtzQ0FLSztzQ0FDQTs0REFUTDhRO1lBN0ZOb0QsV0FxR01FLEdBQ0FDLEdBRkFGOzs7cUNBNUV1QjtZQUhUbEQ7WUFBSkM7WUFBSnpKO3NDQUdpQixLQUhUd0osS0F6Q0k1RjtzQ0E0Q04sS0FIRjZGLEtBekNMNUY7c0NBNENMLEtBNUNUMEksTUF5Q3VCL0M7c0NBRXVCLEtBNUNDOEMsTUEwQzVCN0M7c0NBRWUsS0E1Q0Q0QyxNQTBDVjdDO3NDQUVELEtBNUNINEMsTUEwQ0EzQztzQ0FFWjs7ZUE1Q1E3UCxpQ0EwQ0FvRztzQ0FFUjtzQ0FHTzt1REEvQ0tvTSxJQUE0QkU7c0NBK0NqQztzQ0FDQTt1REFoRG1CRCxJQUNqQ0U7c0NBK0NjLEtBTExNO3NDQUtLOzhDQU5TckQ7c0NBTVQ7OENBTktDO3NDQU1MO3NDQUdMOzs7c0NBREY7cURBbERRN1AsR0FDRGlLLEdBQWFEO1lBb0J4QjZJLFdBMEJNSyxLQUNBQyxLQUNBQzs7O3FDQTZFSjs7WUF6R0ZQO3VDQXlHRTtlQTlIVTdTLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBNEhWOEY7OztxQ0F0RUM7WUFEVHRhO1lBQUg0RjtpQkFBRzVGOztpQkFBSDRGOztzQ0FDWTtpRUF0REo2TztzQ0FzREk7O3NDQUNKO21EQXhEQ2pLLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFzRFN6QyxHQXREa0JsRyxHQXFEckI1TztzQ0FJZ0MsS0ExRFNzWCxNQXVEdEN4QztzQ0FHYSxLQTFESHNDLE1BdURWdEM7c0NBR0Y7O2VBMURRbFEsUUFBa0J5UyxTQUNqQ0UsSUFzRGExQyxHQXREY2pHLEdBcURsQnhVO3NDQUlGLEtBREU4ZDtzQ0FDRjtzQ0FPTTs7c0NBQWtCLFlBVnRCcEQ7c0NBVXNCLEtBVHRCbUQ7c0NBU3NCO3NDQURqQjs7O3NDQUFMOzsyQ0FQQUM7c0NBT0E7c0NBREk7O3NDQUFrQixZQVJ0QnBEO3NDQVFzQixLQVB0Qm1EO3NDQU9zQjtzQ0FEakI7OztzQ0FBTDs7O3NDQURGOzsyQ0FKRUM7c0NBSUY7c0NBUTRCOzsyQ0FiMUJEO3NDQWEwQjtzQ0FBckI7OztzQ0FBTDs7MkNBWkFDO3NDQVlBO3NDQUQwQjs7MkNBWjFCRDtzQ0FZMEI7c0NBQXJCOzs7c0NBQUw7OztzQ0FERjs7MkNBVkVDO3NDQVVGLEtBWEVEO3NDQVdGO3NDQUkwQjs7c0NBQTFCO3FEQXZFUXJULEdBQ0RpSyxHQUFhRDtZQW9CeEI2SSxXQXVDTVUsS0FNQUMsS0FJQUM7OztxQ0FLUztZQURUL0c7WUFBSHpHO2lCQUFHeUc7O2lCQUFIekc7O3NDQUNZO2lFQTFFUytEO3NDQTBFVDs7c0NBQ0o7O2VBNUVDaEssR0FBSXdTLElBQWNDLElBQWNDLElBQy9DQyxJQUFjMUksR0EwRUxvRyxHQURIcEs7c0NBSW9DLEtBN0UxQzBNLE1BMEVTdEM7c0NBR2lCLEtBOUVPb0MsTUEyRXhCcEM7c0NBR0Y7O2VBOUVRclEsR0FBSXdTLFNBQTRCRSxTQUNqQ3pJLEdBMEVEbUcsR0FESjFEO3NDQUlGLEtBREVpSDtzQ0FDRjtzQ0FLNEI7OzJDQVAxQkQ7c0NBTzBCO3NDQUFyQjs7O3NDQUFMOzsyQ0FOQUM7c0NBTUE7c0NBRDBCOzsyQ0FOMUJEO3NDQU0wQjtzQ0FBckI7OztzQ0FBTDs7O3NDQURGOzsyQ0FKRUM7c0NBSUY7c0NBUU07O3NDQUFrQixZQWR0QnREO3NDQWNzQixLQWJ0QnFEO3NDQWFzQjtzQ0FEakI7OztzQ0FBTDs7MkNBWEFDO3NDQVdBO3NDQURJOztzQ0FBa0IsWUFadEJ0RDtzQ0FZc0IsS0FYdEJxRDtzQ0FXc0I7c0NBRGpCOzs7c0NBQUw7OztzQ0FERjs7MkNBUkVDO3NDQVFGLEtBVEVEO3NDQVNGO3NDQU11Qjs7c0NBQXZCO3FEQTNGUTFULEdBQ0RpSyxHQUFhRDtZQW9CeEI2SSxXQTJETWUsS0FJQUMsS0FNQUM7OztxQ0FLSztZQURMbkg7WUFBSHpHO3NDQUNROztlQS9GQ2xHLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBNkZyQjlEO3NDQUVROztlQWhHQ2xHLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBNkZsQjJDO3NDQUVLLEtBQUxxSDtzQ0FBSztzQ0FJcUI7OzJDQUwxQkQ7c0NBSzBCO3NDQUFyQjs7O3NDQUFMOzsyQ0FKQUM7c0NBSUE7c0NBRDBCOzsyQ0FKMUJEO3NDQUkwQjtzQ0FBckI7OztzQ0FBTDs7O3NDQURGOzsyQ0FGRUM7c0NBRUY7c0NBTTRCOzsyQ0FUMUJEO3NDQVMwQjtzQ0FBckI7OztzQ0FBTDs7MkNBUkFDO3NDQVFBO3NDQUQwQjs7MkNBUjFCRDtzQ0FRMEI7c0NBQXJCOzs7c0NBQUw7OztzQ0FERjs7MkNBUEVBO3NDQU9GLEtBTkVDO3NDQU1GO3NDQUl1Qjs7c0NBQXZCO3FEQTFHUWhVLEdBQ0RpSyxHQUFhRDtZQW9CeEI2SSxXQTRFTW9CLEtBSUFDLEtBSUFDOzs7OztZQW5FWWhJO1lBakJsQjBHO3VDQWtCRTtlQXZDVTdTLEdBQUl3UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBcUNObUM7Ozs7WUFFTkM7WUFuQlp5Rzt1Q0FvQkU7ZUF6Q1U3UyxHQUFJd1MsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQXVDWm9DO2lDQXdGaEIsT0EzR0l5RztpQ0EyR0osT0EzR0lBOytCQWROO2dDQVFFO2lDQUdVO2tEQWpCSzVJLEdBQWFEO2lDQWlCbEI7aUNBREg7a0RBakIyQnlJLElBQ2pDRTtpQ0FnQk07Z0NBREE7d0RBaEJhSCxJQUE0QkU7OzZDQWlJM0M7NkJBanRCTCxTQW10QkFULE1BQU1qUztnQ0FDRztPQURFSjtPQUFNd1U7O2lDQUNSO2tEQURFeFU7aUNBQ0Y7OzhDQUNJaUY7a0NBQUs7aUJBQUxBLGtCQUZJdVAsK0JBRXVDO2dDQUQvQzs7OytCQUNYOztnQ0FEVztnQ0FDWDs7K0JBQ0E7Z0JBSFFwVSxhQUNKUixFQUFHbkosRUFBSG1KLEVBQUduSixFQURZK2Q7OzZCQW50QmpCLFNBd3RCQUMsaUJBQWlCNUMsR0FBRzZDOytCQUN0QixTQUFRQyxLQUFNOUM7bUJEcGtFckIsSUNva0VxQitDO2lDQUNaO3NDQURZQTtnQkFHSkMsR0FISUQsUUFHVjNILEdBSFUySCxhQUdWM0g7O3lCQUhVMkgsS0FHSkM7O3lDQVdNO2dCQURPNWQ7Z0JBQUg4TDs7MENBQ0o7OzswQ0FDUTt5Q0FEUiwwQkFHSTs7c0RBSkc5TCxFQWREeWQ7eUNBa0JGOzBDQUNRO3lDQUpaLElBZEZFLEtBR0pDOzs7eUNBeUJNO2dCQURTN0M7Z0JBQUh4TDtnQ0E1QkFrTzswQ0E2Qk47c0RBRFMxQzt5Q0FDVDswQ0FFUTt5Q0FGUjswQ0FDVSxRQUZKeEwsSUF4QlpxTztnQkFISUQ7Ozs7O3lDQVNDO2dCQUhEaGY7Z0JBQUg0RjtxQkFBRzVGOzswQ0FHQzs7c0JBSERBLEVBSEppZjtzQkFHQ3JaLEtBQUc1RixFQUhKaWY7Z0JBSElEOzswQkFvQlNoYyxVQXBCVG9jLFFBb0JTcGMsRUFqQmJpYyxJQUhJRDtvQ0FFSiw0Q0E0QndCOytCQTlCbEM7a0JBRG1CL0MsbUNBaUNIOzZCQXp2QmQ7Ozs7O3NDQTZ2QkFvRCxXQUFXaEk7K0JBQ2IsU0FBUU8sSUFBSVA7aUNBQ1Ysa0NBRFVBO2lDQUNWO21DQUNpQjs7bUNBRGpCO3NDQUdJOzs7O21CQURlelE7c0NBQ2Y7b0NBRWtCOzBCQU5oQmdSLElBQUlQLDhCQU11QjsrQkFObkMsY0FRZWhJO2tDQUFLO2lCQUFMQSxxQ0FBbUI7K0JBUmxDOzs7K0JBUUE7OztpQ0FFRSw2QkFYV2dJO2lDQVdYOzs7OzttQ0FHQTs7cUJBQWNoSTt3Q0FBSzt1QkFBTEEscUNBQTBDO29DQUF4RDs7Ozs7aUNBakRBLHFDQWtESTs2QkE1d0JKLFNBOHdCSWlRLGVBQWV0YyxFQUFFbVE7aUJEem5FOUIsSUN5bkU0QmhHOytCQUNyQjttRUFEcUJBO2lDQUNyQjsyQ0FDWTs7cUNBVVI7OzJDQURVbU47c0NBQ1Y7cUNBQUc7O3VDQUE4Qjs7d0JBQ2hCakw7MkNBQ1g7MEJBRFdBLHFDQUdIO3dDQUptQjs7dUNBQy9COzt1Q0FEK0IsMEJBTS9COzt3REFQUWlMLElBWFNuSDt1Q0FrQmpCLGlCQW5DSmtNLFdBaUJtQmxTO3FDQVlqQjtzQ0FPSyxLQW5CWUE7c0NBbUJaO3FDQUFHOzs7OENBQ0gsV0FwQllBOztlQXFCYm5OLFVBQUg0RjtxQ0FDRTs7dUNBQ0Q7O3dEQUZEQSxFQXJCa0J1Tjt1Q0F1QmpCO3dDQUtHOzhCQTVCY0E7d0NBMkJWO3VDQUpQLElBdkJlaEcsSUFxQmJuTjs7cUNBT0M7MkNBUERBO3NDQU9DO3FDQUFHOzt1Q0FDTjs7d0RBUkVBLEVBckJlbVQ7dUNBNkJqQjt3Q0FNQTs4QkFuQ2lCQTt3Q0FpQ1Y7dUNBSlAsSUE3QmVoRyxJQXFCaEJ2SDs7cUNBT0k7cUNBT0gsZ0JBbkNpQnVOOzs7O29DQTBuQnpCO3VDQW5sQlk7O3dEQWxCTHZOLEVBckJrQnVOO3VDQXVDYjsyQ0F2Q1doRyxJQXFCYm5OOztxQ0FPQywwQkFTQzs7c0RBaEJGQSxFQXJCZW1UO3FDQXFDYjtzQ0FFQTtxQ0FYRCxJQTVCWWhHLElBcUJoQnZIOzs7ZUFtQkdzUixZQUFIekc7cUNBQ0U7O3VDQUNEOzt3REFGREEsSUF4Q2tCMEM7dUNBMENqQjt3Q0FLRzs4QkEvQ2NBO3dDQThDVjt1Q0FKUCxJQTFDZWhHLElBd0NiK0o7O3FDQU9DOzJDQVBEQTtzQ0FPQztxQ0FBRzs7dUNBQ047O3dEQVJFQSxJQXhDZS9EO3VDQWdEakI7d0NBTUE7MEJBdERpQkE7d0NBb0RWO3VDQUpQLElBaERlaEcsSUF3Q2hCc0Q7O3dCQXhDa0IwQzt1Q0EwRGI7O3dEQWxCTDFDLElBeENrQjBDO3VDQTBEYjt3Q0FGQTt1Q0FFQSxJQTFEV2hHLElBd0NiK0o7O3FDQU9DLDBCQVNDOztzREFoQkZBLElBeENlL0Q7cUNBd0RiO3FDQVRELElBL0NZaEcsSUF3Q2hCc0Q7OztlQW1CRzBHLFlBQUh6RztxQ0FDRTs7aUJBNURjdkQsSUEyRGhCdUQ7cUNBRUk7O3NEQUZEeUcsSUEzRGVoRTtxQ0E2RGQ7c0NBaUJEO3FDQWpCQyxJQTdEWWhHLElBMkRoQnVEOztzQkEzRGdCRSx3REE2RGdDOzZCQTMwQm5ELFNBNjBCSTJPLGFBQWF0RCxHQUFHNkM7aUJEeHJFN0IsSUN3ckU2QlU7K0JBQ3RCO2tDQUFPOztxREFEWXZELEdBQUd1RDtrQ0FDZjttQ0FDVTtrQ0FEVixTQURlQTs7O3NDQVVsQjs0Q0FWa0JBO3VDQVVsQjs7dUNBQWE7NkRBRElDOzs7dUNBRWpCLHNCQURJdE0sS0FEYXNNO2FBVENEOzs7OztzQ0FhbEI7OzRDQWJldkQ7dUNBYVA7NERBRFUwRDt1Q0FDVjt1QkFDaUN0UTswQ0FDckM7eUJBRHFDQSxpQkFkdkJtUSxNQWFkbGMsNEJBRXFEO3VDQUZqRDs0Q0FBSkE7c0NBQ0o7OzZDQURJQTtxQ0FiY2tjO3NDQUlsQjs7NkRBQUlJO2FBSmNKOztrQ0FpQkgsNENBQVU7NkJBOTFCM0IsU0FnMkJBTSxlQUFlOWM7aUJEM3NFeEI7O2tDQzRzRXFCLDhCQUFQOGI7a0NBQU87aUJBREc5YixFQUNWOGI7O2tDQUNXO1NBQVRpQjs7a0NBQVM7aUJBRkQvYyxFQUVSK2M7Z0NBQ0s7NkJBbjJCWjs7O09Bc1NBdEk7T0FHQUM7T0FFQUM7T0FVQUU7T0FtQkFPO09BZ0JBUTtPQUdBRTtPQUdJQztPQTRESmlDO09BS0lFO09Bc0RKRDtPQXFCQWU7T0E4REFPO09BT0FDO09BT0FFO09BSUFDO09BR0FDO09BbUJJRztPQW1JSk47T0FLQW9DOztPQXFDQVE7T0FpQklDO09BK0RBQztPQW1CSk87OEJBaDJCQTtTQTlLRjVOLEtBQ0FDOzZCQTZLRSxTQTIyQkY2TixXQUFXQyxLQUFNNWUsRUFBRTZlOytCQUNyQjtrQ0FBOEIsa0NBQUk7K0JBQWxDOztpQ0FBVzt1REFERUQ7aUNBQ0Y7O2lDQUNROzs7O3lDQUNYckk7aUNBQ04sY0FDTzBJO21DQUNQLEdBRE9BO3NDQU1IO3lDQU5HQTt1Q0FNUTtzREFYRWpmLEVBVVZXO3NDQUNIO2NBVE1vZTtzQ0FTTjs7dUNBQ1M7d0RBWk1GO3NDQVlOO2lDQVRQdEk7b0NBS0Y7O1lBTk13STtvQ0FNTix3Q0FJb0M7aUNBUnhDOzs7bUNBQTZCO2FBSDNCRCxvQ0FHMkIsZ0JBSlZEO21DQUlVO21DQUFwQjs7O2lDQUFUOytGQVF3QztnQ0FWdkI7K0JBWW5CLHlDQVhRdEk7K0JBV1IsT0FaSXlJLGdDQWFFOzZCQTEzQkYsU0E0M0JGRSxPQUFPL1YsR0FBSXlWLEtBQU03VixLQUFLb1csT0FBT0M7K0JBQy9COzs7aUNBQWU7a0RBRE5qVztpQ0FDTTs7aUNBQ29COzs7Ozs7O3FDQUk3Qjs7c0NBQU87Ozt1REFKVG9XO3FDQUlTOzhDQUNMLFdBTFlEO2tEQUtVO2lDQUxLO2dDQUVqQztzREFKNkJGOytCQUk3QixHQUpXUjtXQVlKRSxPQVpJRixlQVVIWSxhQUFOQyxPQUVLWDs7aUNBRUg7OztrQ0FBVzs7OzsrQ0FBSjNJO1FBSkhxSjtRQUFOQyxPQUlNOWQ7K0JBR1YsY0FDaUM2QztrQ0FDMUIsT0FEMEJBLDJCQUN6QjsrQkFETjs7NENBUkVpYixZQVZvQk47Z0NBa0J0QixVQWxCaUJwVztnQ0FrQmpCOztpQ0FNaUI7Ozs7eUNBQ2Y2VztpQ0FFRjs7bUNBQVM7b0RBeEJQNWI7bUNBd0JPLEtBSlA2RzttQ0FJTztpQ0FDVDtlQTNCRXdVLGNBMEJFcko7aUNBQUoseUJBQ0E7OztrQ0FDVztpQkFMRCtJOzhDQUtDLGdCQTdCSjVWLEdBQ0xrVyxxQ0E0QnNDO2dDQUx2QjsrQkFPbkI7d0NBQ0lRLGNBQWNyYjtpQ0FDaEIsa0NBRGdCQTtpQ0FDaEI7bUJBRGdCQTs7Ozt3Q0FHTTtlQURQc0Q7Ozt5Q0FDTzs7O3dDQUFSOzBEQURDQTswQ0FDeUIsR0F6QmhDMFg7NENBMkJRO21CQUFMcko7b0JBM0JIcUo7NENBMkJRO21DQUFMcko7MENBQ0c7OzswQ0FBTzt1QkFyQ25Ca0osU0ErQmM3YTswQ0FNSzs7O3FDQVdqQiw4QkFETXVFLEtBaEJNdkU7cUNBaUJaLFlBRE11RTtxQ0FDTjs7aUNBaEJKO21DQU13QjttQ0FDZDtvREF2Q1JzVyxTQStCYzdhO2tDQVFOLHVEQVVJOytCQW5CaEI7aUNBc0JJO29DQUdJOztZQWhDSXVhO29DQWdDSix3Q0FDZTtpQ0FKbkI7b0NBQ2E7a0NBdEJiYyxjQWZBRixtQ0FxQ2lEO2lDQURqRDs0REFJb0I7K0JBMUJ4QjsrQkFxQkE7O2tDQU1xQjtnQ0FqQ2pCQyxRQXZCQUwseUNBd0R1RDsrQkFOM0Q7K0JBTUE7c0NBbENJTixnQ0FtQ0U7NkJBdjdCRjs7U0EyMkJGTixXQWlCQU87NkJBNTNCRSxTQXM4QkZZLFNBQVMvZixJQUFnQjBEO2dDQUFNLEdBQXRCMUQ7aUNBQU87c0NBQVBBO2FBQU9HOztXQUFQZ007Z0NBQXNCO3lDQUF0QkE7aUNBQXNCO2lDQUFRO3VEQUFkekk7Z0NBQWM7NERBQW9COzZCQXQ4QnpELFNBdThCRnNjLE1BQUs3VCxLQUFLdkw7Z0NBQUk7Z0NBQWE7ZUFBdEJ1TCwrQkFBc0IsZ0JBQWpCdkwsNkJBQWtDOzZCQXY4QjFDLFNBdzhCRnFmLEtBQU05VCxLQUFLdkw7Z0NBQUk7Z0NBQWE7ZUFBdEJ1TCwrQkFBc0IsZ0JBQWpCdkwsNkJBQW1DOzZCQXg4QjVDLFNBeThCRnNmLFFBQVEvVCxLQUFLdkw7Z0NBQUk7Z0NBQWE7ZUFBdEJ1TCwrQkFBc0IsZ0JBQWpCdkwsNkJBQW9DOzZCQXo4Qi9DLFNBMDhCRnVmLE9BQVFoVSxLQUFLM007Z0NBQXNCO21CRHJ6RTFDLE9DaXpFT3VnQixTQUlRNVQ7Z0NBQTJCO3NDQUF0QjNNLDhCQUF3Qzs2QkExOEJuRCxTQTI4QkZBLElBQUsyTSxLQUFLM007Z0NBQXVCO21CRHR6RXhDLE9DaXpFT3VnQixTQUtLNVQ7Z0NBQTRCO3VDQUF2QjNNLDhCQUF5Qzs2QkEzOEJqRCxTQTY4QkY0Z0IsUUFBUWpoQixFQUFHZ04sS0FBSzNNOytCQUNsQixjQUFxQmtFO2tDQUFTO2lCQURwQnZFLDRCQUNvQixTQURqQmdOLEtBQ1F6SSwrQkFBMkI7K0JBQWhEO3NDQURrQmxFLDhCQUNtQzs2QkE5OEJqRCxTQWc5QkY2Z0IsS0FBS2xoQixFQUFHZ04sS0FBSzNNOytCQUNmLGNBQXNCa0U7a0NBQVM7aUJBRHhCdkUsNEJBQ3dCLFNBRHJCZ04sS0FDWXpJLCtCQUEyQjsrQkFBakQ7dUNBRGVsRSw4QkFDdUM7NkJBajlCbEQsU0F3OUJGOGdCLGVBQWVDOytCQUNqQjs7O2lDQUFlOzs7O2lDQUdPOzs7Z0NBQWxCO3NEQUhBQztnQ0FHQTtnQ0FERjs7NkNBSWtDRCxLQUFLRztrQ0FDbkM7Ozs7O21DQUNnQjtvREFGY0g7bUNBRWQ7bUNBQWQ7O3FDQUZpQ0c7a0NBRWpDOytCQUY0Qkgsb0NBRWtCOytCQU5wRDs7Z0NBSUE7aURBUGVBLEtBRWJFOytCQUtGLFVBTkVELFNBS0FoRCwrQkFLYzs2QkFuK0JkLFNBcStCRm1ELG9CQUFvQkM7Z0NBQUssT0FBTEEsK0JBQVk7NkJBcitCOUIsU0FzK0JGQyx3QkFBd0JEO2dDQUFLLE9BQUxBLCtCQUFnQjs2QkF0K0J0QyxTQXcrQkZFLGFBQWFGLEdBQUczTyxFQUFJalMsU0FBb0JPLEtBQUt3Z0I7K0JBQy9DLEdBRHNCL2dCO2lDQUFLO3NDQUFMQTtXQUFLRzs7V0FBTHdZOytCQUN0QjtpQ0FEc0M7O1FBQUxFLEdBQUtoTTs7V0FBTGdNOytCQUNqQyxTQUFJUCxPQUFRMVgsRUFBR3lOLEVBQUd6RixFQUFHbko7a0NBQ1E7OzREQUZkbWhCO21DQUVjOzttQ0FBakI7OzttQ0FFRjtvREFKUTNPO2tDQUlSO21DQUNTOztvQ0FBUyxLQUpoQnJSLElBRFUrWDtvQ0FLTTtVQUZ0QnNJLGdDQUVhOzs7b0NBQ0Q7O3FDQUFxQixLQUxyQnJZO3FDQUtVLEtBTGhCaEksSUFEVStYO3FDQU1hOztXQUg3QnNJLGdDQUdZOztvQ0FDQzs7cUNBQVUsS0FOakJyZ0IsSUFEVStYO3FDQU9jLFlBTmxCL1A7cUNBTWtCO1dBSjlCcVksZ0NBSWE7a0NBTFU7bUNBR1c7bUNBSzlCO29EQVZRaFA7a0NBVVI7bUNBQ3FCO3lDQVZoQjVELElBRGtCd0s7b0NBV0Y7O1VBRnpCcUksZ0NBRWE7OztvQ0FDdUI7MENBWHJCemhCO3FDQVdVLEtBWGhCNE8sSUFEa0J3SztxQ0FZSzs7O1dBSGhDcUksZ0NBR1k7O29DQUNjOzBDQVpqQjdTLElBRGtCd0s7cUNBYU0sWUFabEJwWjtxQ0FZa0I7O1dBSmpDeWhCLGdDQUlhO2tDQUZxQixjQUtmM2dCO29DQUNqQjs7OztxQ0FDWTs7O3FDQUNJO3NEQUhDQSxLQUVYNE07cUNBQ1U7cUNBQWQ7c0RBRElBO3FDQUNKOzs7O3FDQUlXOzs7OztxQ0FERTtzREFMWHBNO3FDQUtXO3FDQUFiOzs7Ozs7Ozs7O3FDQVdFOzs7O3NDQUxBO3dDQUVNOzs7O3FCQTVCWmlnQjt3Q0E0Qlk7c0NBRUcsMENBQVM7b0NBQ2xCOztxQ0FORjs7O3FDQVNDO3NEQWZDalgsR0FKQWhKO3FDQW1CRDtxQ0FEc0M7c0RBaEMzQ2tnQjtxQ0FnQzBEOzs7cUNBQWxDO3NEQTFCeEJDO3FDQTBCdUM7OztvQ0FBckM7NkRBVElDLHlDQVVnQjtrQ0F6Qlk7O2tDQUtwQzttREFoQnNDNWdCO2lDQWdCdEM7K0JBZEV5Z0IsSUFhQXhELCtCQXVCa0I7K0JBckN4Qjs2QkFBSWxGLE9BRDJDeUksaUNBd0NkOzZCQWhoQzdCLDZCQStqQ0ZLOzZCQS9qQ0UsU0Fpa0NGQyxZQUFjcmhCLElBQW1CNEI7K0JBQ25DLEdBRGdCNUI7aUNBQVM7c0NBQVRBO2VBQVNHOztXQUFUbWhCOytCQUNoQjs7aUNBQWE7a0RBREdBO2dDQUNILFNBQ1RFLE9BQU9DLElBQUlDO2lDQUNiOzttQ0FBZTtvREFGYkg7bUNBRWE7O21DQUNFLEtBRGJLLE1BREtIO21DQUVROzttQ0FBUDs7bUNBQ08sS0FGUkUsTUFESUQ7bUNBR0k7O21DQUFQOzsyQ0FETkcsTUFDQUM7bUNBQU07aUNBQ1Y7ZUFMRVA7aUNBS0YsMENBQ1E7Z0NBTkcsU0FRVFE7a0NBQWdCOzs7Ozs7O3lDQUt5Qjs7Ozt3Q0FDWjs7Ozs7Ozs7NENBRlQ7OEJBZnRCWDs7OzRDQVlzQjs7OzRDQUFPOzs7OzsyQ0FDTjswQkFidkJBOzs7MENBYzhCOztrQ0FJdkIsMkNBQVU7Z0NBZk4sY0FzQnVCeGY7a0NBQUw7Ozs7bUNBQ3RCO29EQUQ4QmdnQixJQUFLRDttQ0FDZDtvREFETS9mO21DQUNOOztrQ0FFdkI7Z0VBakJIbWdCO2dEQWlCa0M7Z0NBekJ6Qjs7aUNBc0JGO2tEQXRCUFI7Z0NBc0JPO3NCQXZCd0IzZixzQ0EwQkc7NkJBM2xDbEMsU0E2bENGb2dCLGVBQWVwQixHQUFHN1EsS0FBSzlQOytCQUN6Qjs7aUNBQTJDO2tEQUR2QjhQO2lDQUN1QjtpQ0FBUDs7O2lDQUF6Qjs7OztpQ0FDRzs7O3lDQUVWbVM7bUJENThFVDtvQ0M4OEVXOzs7O29DQUNBO2lCQUxGckM7b0NBS0U7a0NBRUc7Z0NBUEs7aUNBVVY7O21DQUFTO29EQVJUcUMsU0FIQXRVO2tDQVdTLEdBVFRxVTtvQ0FVaUI7OztxQ0FJYjtpREFqQmlCaGlCO3FDQWlCakI7Ozs7O29DQURBO21CQWhCUzJnQjs2Q0FnQlQ7Ozs7bUJBSkEzSztrQ0FNQyxPQU5EQSw0QkFNRztnQ0FoQkc7O2lDQVNOO2tEQVRKNEo7Z0NBU0k7MERBT0k7NkJBL21DUixTQWluQ0ZzQyxjQUFjdkIsR0FBRzdRLEtBQUs5UDsrQkFDeEI7O2lDQUFXO2dEQURROFA7aUNBQ1I7O2lDQUNHOzs7eUNBRVZtUzttQkRoK0VUO29DQ2srRVc7Ozs7b0NBQ0E7aUJBTEZyQztvQ0FLRTtrQ0FFRztnQ0FQSztpQ0FVVjs7bUNBQVM7b0RBUlRxQyxTQUhBdFU7a0NBV1MsR0FUVHFVO29DQVVpQjs7O3FDQUliO2lEQWpCZ0JoaUI7cUNBaUJoQjs7Ozs7b0NBREE7bUJBaEJRMmdCOzZDQWdCUjs7OzttQkFKQTNLO2tDQU1DLE9BTkRBLDRCQU1HO2dDQWhCRzs7aUNBU047a0RBVEo0SjtnQ0FTSTswREFPSTs2QkFub0NSLFNBcW9DRnVDLFVBQVVyUyxLQUFLOVA7K0JBQ2pCOztpQ0FBVztnREFEQzhQO2dDQUNELFNBQ1BtUzttQkRsL0VUO29DQ28vRVc7O1lBSldqaUI7b0NBSVg7a0NBRUc7Z0NBTEU7NkJBQ1BpaUIsU0FEQXRVLGlDQU91Qjs2QkE3b0N2QixTQW1wQ0Z5VSxPQUFPelcsS0FBS0Q7K0JBQ2Q7O2lDQUFnQjs7eUNBQ1p3VCxPQUFPb0Q7a0NBRUQ7U0FGV3JnQjtTQUFIMEs7U0FDSDRWLElBREpEO1NBQ1NuaUIsSUFEVG1pQjs7OztpQkFDSUM7O21DQUNMOztvREFGUTVWO21DQUVSOzs7bUNBQ2lDLFFBRnZCeE0sTUFBTG9pQjttQ0FFNEI7bUNBQWpDOztvREFIV3RnQjttQ0FHWDs7OzttQ0FHSzs7Ozs7a0NBRFg7Ozs7b0NBTUU7c0NBRU07OzswQ0FVcUIsa0NBQUU7c0NBVnZCOzs7OEJBQ1V0QjtpREFDSjs7a0RBQU07bUVBaEJwQjBoQjtpREFnQm9COzZCQUNTbGlCLGFBQUxvaUI7bURBakJ4QkYsYUFpQndCRSxJQUFLcGlCLElBRlhRO2lEQUNKO3dCQUl1QmdpQjt3QkFBTEM7d0JBQUxDOzZCQUFVRixNQUxuQmhpQjs7MERBT0U7MENBdEJwQjBoQixhQW9CMkJRLE1BQUtELE1BTGRqaUI7OERBUW1DOztvQ0FFMUMsMkNBQVc7aUNBbkJ0Qjs7a0NBS0E7d0RBTkUraEI7a0NBTUY7bUNBaUJtQjtvREFsQmpCSSxXQU5BTDttQ0F3QmlCO21DQUFaO29EQXpCTEQ7bUNBeUJLOzs7O21DQUNBOztvREFETHhNO2tDQUNLLFNBNUJBc007YUE2Qkw1SSxLQURBMUI7OztVQUlXMkssR0FoQ05MOztvQkFrQ0szaEIsUUFBUWdJO3VDQUNxQjs4QkFwQ3pDMFosYUFpQ2FNLEtBRURoaUIsRUFBUWdJLDZCQUN3Qzs7VUFOMUQrUSwrQkFJRSxxQkFMRjFCO2lDQVVKLE9BVEkwQjtnQ0E5QlU7O2lDQXlDdUI7a0RBMUM5Qi9OLEtBQUtEO2lDQTBDeUI7aUNBQXBCO2tEQXpDZjJXO2dDQXlDZTtnQ0F4Q2ZuRCxpQ0F3Q3dEOzZCQTdyQ3hELFNBK3JDRjZELE9BQU9sWCxJQUFJbVg7K0JBQ2I7O2lDQUFnQjs7eUNBQ1o5RCxPQUFPb0Q7a0NBRUM7U0FGV1U7U0FBTG5YO1NBQ0gwVyxJQURKRDtTQUNTbmlCLElBRFRtaUI7Ozs7aUJBQ0lDOzttQ0FDSDs7b0RBRk0xVzttQ0FFTjs7O21DQUNpQyxRQUZ6QjFMLE1BQUxvaUI7bUNBRThCO21DQUFqQzs7b0RBSFdTO21DQUdYOzs7O21DQUdHOzs7OztrQ0FEWDs7OztvQ0FNRTtzQ0FFTTs7OzBDQVVxQixrQ0FBRTtzQ0FWdkI7OztvQ0FDZTVVO2lEQUNUOztrREFBTTttRUFoQnBCaVU7aURBZ0JvQjs2QkFDU2xpQixhQUFMb2lCO21EQWpCeEJGLGFBaUJ3QkUsSUFBS3BpQixJQUZOaU87aURBQ1Q7d0JBSXVCdVU7d0JBQUxDO3dCQUFMQzs2QkFBVUYsTUFMZHZVOzswREFPSDswQ0F0QnBCaVUsYUFvQjJCUSxNQUFLRCxNQUxUeFU7OERBUThCOztvQ0FFMUMsMkNBQVc7aUNBbkJ0Qjs7a0NBS0E7d0RBTkVzVTtrQ0FNRjttQ0FpQnFCO29EQWxCbkJJLFdBTkFJO21DQXdCbUI7bUNBQWQ7b0RBekJMRDttQ0F5Qks7Ozs7bUNBQ0E7O29EQURMak47a0NBQ0ssU0E1QkFzTTthQTZCTDVJLEtBREExQjs7O1VBSVcySyxHQWhDTkw7OzBCQWtDVWxVLE9BQVE1Tzt1Q0FDZ0I7OEJBcEN6QzZpQixhQWlDYU0sS0FFSXZVLEVBQVE1Tyw2QkFDbUM7O1VBTjFEa2EsK0JBSUUscUJBTEYxQjtpQ0FVSixPQVRJMEI7Z0NBOUJVOztpQ0F5Q3VCO2tEQTFDOUI3TixJQUFJbVg7aUNBMEMwQjtpQ0FBcEI7a0RBekNmWDtnQ0F5Q2U7Z0NBeENmbkQsaUNBd0NxRDs2QkF6dUNyRCxTQTJ1Q0ZpRSxRQUFRQyxHQUFHdGI7Z0NBQUk7O2lDQUFnQjtrREFBcEJBO2dDQUFvQjtnQ0FBdkJzYixrQ0FBbUM7NkJBM3VDekMsU0E2dUNGQyxXQUFhdGpCLFNBQTZDdWlCOytCQUU1RCxHQUZldmlCO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUnlULGdDQUFRO2dDQUFhO2lDQUFnQjs7UUFBWjJQLFVBQVkxVzs7V0FBWjBXLG9DRHhsRjdDO2dDQ3dsRnlELFNBRWhEM0ksT0FBTzRJLFFBQVE1UDtrQ0FDSDtTQURnQjRPO1NBQU56Uzs7OzttQ0FDVjt5REFEZ0J5UzttQ0FDaEI7bUNBQUo7OztrQ0FJTDtvREFMWTVPO29DQU1iOzs7NERBTm9CN0Q7b0NBTXBCLEdBQ0k3SCxPQU5KNGE7cUNBUUU7Ozs7c0NBQXVCOzs4Q0FIckIzVztzQ0FHcUI7OENBQXJCLHFCQVRnQjREOztxQ0FXbEI7OzRDQUpFN0gsTUFOSjRhO3NDQVVFLEtBVkZBO3NDQVVFO3NDQUlJO3VEQWZjL1M7c0NBZWQsUUFURjVEO3NDQVNFO3NDQURGOzs7O3NDQUR3Qjt1REFiUjRELEtBQ3BCK1M7c0NBWTRCOztzQ0FBeEI7Ozs7c0NBRGU7dURBWkMvUyxVQUNwQitTO3NDQVdtQixRQU5mM1c7c0NBTWU7OENBQWY7b0NBTko7O21DQVdHOztvQ0FBZTt1REFqQkU0RDs7OzRDQWlCZjtrQ0FoQks7bUNBZ0JQO21DQWRNOzs7a0NBQVg7OzBDQWdCRWtFLFFBQVE5VTttQ0FDVixTQUFJdWtCLFlBQVVsZjtzQ0FDRTs7bURBdkJvQitlLFVBc0J0Qi9lO3VDQUNFO3NDQUFkO21CQXZCc0QrZDtzQ0F1QnRELDBDQUNRO21DQUZWO3lDQURVcGpCOzttQ0FDVjs7bUJBRFVBOzBDQWNOLE9BaENGMmpCOzRDQWlDSTtvQkFqQ0pBOzs4Q0FpQ0ksc0JBbENnQi9TOzZDQW9DWjs7cUVBcENZQTs7cUJBQ3BCK1M7Ozs4Q0FtQ1E7OENBQ0U7K0RBckNVL1MsS0FDcEIrUzs4Q0FvQ1UsS0FwQ1ZBOzhDQW9DVTs7OENBREY7K0RBcENZL1M7OENBb0NaO29CQUZBbkMsaUNBRUE7OzZDQUVHO3lFQXRDU21DOzhDQXVDWjs7c0VBdkNZQTs7Ozs7K0NBdUNaOztxQkFMQW5DO2dEQUtBLGdCQXZDWW1DOzt3QkFrQ1puQyxPQWxDWW1DOzRDQTBDaEI7a0RBekNKK1M7NkNBeUNJOzs2Q0FBVTs7cURBUk5sVixPQVFBNFU7a0RBQ0o7Ozs7Ozt3Q0F4QklyakI7eUNBb0NOOzs7O3NCQXZER3FrQjt5Q0F1REg7Ozs7O3VCQXBDTXJrQjs7OzJDQU1pQjs7OzRDQUFlOzs7OzJDQUFSOztxREFDOUI7OzZDQUN1Qjs7Ozs7K0NBRXZCO3VCQTVCRjJqQjs7aURBNEJFLHNCQTdCa0IvUztnREE4QmhCOzs7aURBQVc7O21FQTlCS0EsVUFDcEIrUzs7c0RBNkJJOzs7Ozs7Ozs7OzBDQWdCRjs7MkNBQVE7OztrQkE3Q1ZBOzs0Q0E2Q1Usc0JBOUNVL1M7MkNBaURkOzttRUFqRGNBOzttQkFDcEIrUzs7OzRDQWdETTs0Q0FDRTs2REFsRFkvUyxLQUNwQitTOzRDQWlEUTs7NENBRHNCO2tFQUh4QnpqQjs0Q0FHd0I7Ozs7OzRDQUF4Qjs2REFqRGMwUSxVQUNwQitTOzRDQWdETTtrQkFGQWEsaUNBRUE7OzJDQUVHOzs7NENBQU87a0VBTFZ0a0I7NENBS1U7a0JBSlZza0IsaUNBSUcsZ0JBbkRXNVQ7MENBOENsQjsyQ0FLNkIsUUFKekI0VCxPQTlDTmI7Z0RBb0RFOzs7Ozs7bUJBbENNM2pCOzs7NENBNENOO21CQUFJeWtCO29CQTlETmQ7NENBOERFO29CQUFJYzs7OENBQUosc0JBL0RrQjdUOzZDQWdFZ0I7c0RBaEVoQkEsS0ErRGQ2VDttREFDOEI7Ozs0Q0FEbEM7OzJDQTVDTXprQjs0Q0EwQ04sT0E1REYyakI7NkNBNERrQjtzREE3REUvUyxLQUNwQitTO21EQTREa0I7Ozs7Ozs7Ozs7bUNBekNwQix5QkFxSUo7OzswQkF0Rlc1Z0I7NkNBQ1AsY0FBZStMO2dEQUNYOytCQURXQSx3QkFqREw5TyxlQWdESCtDLDRCQUdpQjs2Q0FGeEI7Ozs7O29EQURPQSwwQkFJTjs7aUNBcEVEO2tDQUhlMFIsT0FtQmJLLFFBakJBd1A7Z0NBMEVRO21CRHRxRm5CLE9DMGxGUzdJLE9BRldoSDtnQ0E4RUQ7O2lDQUFvQztrREE5RVUyTztpQ0E4RVY7aUNBQXJCO2tEQTlFZDNPO2lDQThFYztnQ0FBM0I7O3NDQURFOUQsNkJBR0E7NkJBN3pDQSxTQWsxQ0YrVDsrQkFDRjs7O2lDQUFZOzs7aUNBQ0E7Ozt5Q0FEUmpRO2dDQUVpQjtjQUZqQkE7Y0FDQTJPO3dDQUNpQixxQkFEakJBLGlDQUMwQzs2QkFyMUMxQyxTQXUxQ0Z1QixVQUFZOWpCLElBQXVCMEQ7K0JBQ3JDLEdBRGMxRDtpQ0FBUTtzQ0FBUkE7Y0FBUUc7Ozs7O1FBQVJ5VCxnQ0FBUTtnQ0FBYTt5Q0FBRWxRO2lDQUFGO2lDQUN2Qjs7O3lDQURFa1E7Z0NBRU87Y0FGUEE7Y0FDVjJPO3dDQUNpQixxQkFEakJBLGlDQUMwQzs2QkF6MUMxQyxTQTIxQ0Z3QixZQUFjL2pCLElBQTRCNFQsTUFBTWxROytCQUNsRCxHQURnQjFEO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjZqQixnQ0FBUTtnQ0FBaUI7OztpQ0FDL0I7dURBRE1BO2lDQUVFOzRDQUYwQnBRLE1BQU1sUTtnQ0FFaEM7NkJBRGRzZCxtQ0FDb0M7NkJBNzFDcEMsU0ErMUNGaUQsaUJBQWtCcmpCLEVBQVd5TjsrQkFDL0I7cUNBRG9Cek47Z0NBQ3BCO2lDQUFZOzs7c0NBRG1CeU47aUNBQ25CO2lDQUNBOzs7O3dEQUFSOFY7aUNBQVE7aUNBQ087a0RBRlpEO2lDQUVZOztpQ0FBVjs7O3VCQUhzQjdWLFFBRTNCOFYsR0FDQUMsOEJBQ29COzZCQW4yQ3BCLFNBcTJDRkMsY0FBYy9aLE9BQU9ySzsrQkFDdkIsY0FBcUMrZ0I7a0NBQU87aUJBRHJCL2dCLEVBQ2MrZ0IsOEJBQVk7K0JBQWpEOztpQ0FBYztrREFERTFXO2dDQUNGO2dFQUFvQzs2QkF0MkM5QyxTQXcyQ0ZnYSxlQUFlaGEsT0FDZHJLOytCQUVILGNBQXFDK2dCO2lDQUNqQyxjQUF1Q3RTO29DQUFRO21CQUhoRHpPLEVBRWtDK2dCLElBQ010UywrQkFBa0I7aUNBQXpEOzttQ0FBYztvREFEbUJzUztrQ0FDbkI7a0VBQTRDOytCQUQ5RDs7aUNBQWM7a0RBSEcxVztnQ0FHSDtnRUFDaUQ7NkJBNTJDM0QsU0E4MkNGaWEsWUFBWWphLE9BQ1hySzsrQkFDSDs7aUNBQU07a0RBRlFxSztnQ0FFUjtrQ0FDZTs7bUNBQ1g7K0NBSFBySyxFQUVJdWtCO2tDQUNHO29DQUVGOzs7cUNBQU87c0RBREpDO29DQUNJO3NDQUVIOzs7O3dEQUxMRDt1Q0FLSzt1QkFDb0JHOzBDQUNiO2tCQURhQSxZQUZqQkQ7MENBR0k7c0NBRGFDLHlDQUVrQjt1Q0FIdEM7dUNBQ0c7O3NDQUVvQzs7c0NBSHZDO3VDQUd1QyxLQUpwQ0Q7dUNBSW9DO3NDQUN2Qzs7b0NBTko7cUNBUUEsUUFUR0Q7cUNBU0g7O2lCQWRNbmE7b0NBY047a0NBRU07Z0NBQ0osMkNBQVU7NkJBLzNDaEIsU0FpNENGc2EscUJBQXVCNWtCO2lCRDV1RjlCLEdDNHVGOEJBO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjZqQixnQ0FBUTtnQ0FBaUI7OztpQ0FHbkI7O3lDQUhOQTtnQ0FHZjttQkQvdUZmLE9Dc3NGT0Q7Z0NBeUNRO21CRC91RmY7Z0NDK3VGZTs7OytCQUFWOztzQ0FIeUJDOzZCQWo0Q3JCLFNBdTRDRWEsY0FBY2pSOytCQUNwQixVQURvQkE7aUNBR1A7O2lDQUZiLFNBRG9CQTtvQ0FJQyw4QkFBVHRPLEVBSlFzTztvQ0FJQyxPQUFUdE87a0NBQ00sOEJBQUxrTCxJQUxPb0Q7a0NBS0YsT0FBTHBELDhCQUFPOzZCQTU0Q2hCLFNBODRDRXNVLFdBQVk3TztpQkR6dkZ2QixJQ3l2RnVCZ0M7K0JBQ2xCOzt1Q0FEa0JBO2tDQUNsQixLQURrQkE7aUNBQ2xCO21DQUVnQjs7bUNBRmhCO3FDQUd3QixPQUpOQTs7NkNBU1E7Ozs7dUNBSE87Y0FEVnJaO2NBQUg0RjttQkFBRzVGO3dDQUNVOzs2Q0FEYjRGO3VDQUNYOzttQkFOU3lULEtBS0tyWjt1Q0FDVSxJQU5mcVosS0FLRXpUOzt3QkFMRm1WLDREQW1CQzs2QkFqNkNmLFNBMDZDRm9MLFdBQVdmLE1BQU0vakI7Z0NBQUksMkNBQVU7NkJBMTZDN0IsU0E0NkNGK2tCLFVBQVlobEI7K0JBR2QsR0FIY0E7aUNBQVE7c0NBQVJBO2NBQVFHOzs7OztRQUFSNmpCLGdDQUFRO2dDQUFpQjtpQ0FBWTs7UUFBUnBRLE1BQVEvRzs7Ozs7UUFBUitHLGdDQUFRO2dDQUFhOztpQ0FHeEM7a0RBSFZvUTtpQ0FHVTtpQ0FBWDs7O2dDQUtYO2lEQUxFMVo7K0JBS0YsY0FIS0E7aUNBQ0g7O21DQUNHO29EQUZBQTtrQ0FFQSxjQURjMmE7b0NBQVM7Z0NBQVRBLG1DQUFrQztrQ0FDaEQ7OztpQ0FESDsrRkFDdUI7K0JBQ3pCOzs7K0JBSkY7OytCQUlFO2dDQUpGOztnQ0FTRTs7O2lDQURBLDZCQUFTaFA7aUNBQVQsT0FBU0EsNEJBQWM7K0JBQ3ZCOztnQ0FGRjsyREFYYytOO2dDQVdkOzs7O2dDQTJESztpREF0RXNDcFE7Z0NBc0V0Qzs7NkNBckRRQTtrQ0FDTixjQUE2QnpVO29DQUN6QixjQUFlOE87c0NBQ1g7cUJBRFdBLHdCQURVOU8sNEJBRWdCO29DQUR6Qzs7Ozs7dUVBRHlCQTtvQ0FDekI7O21CQUR5QkE7eUNBK0JyQjt3QkE5Q1htTDtpQ0E4Q3NDMFcsSUFBSXRTO29EQUMzQjswREFEMkJBO3FEQUMzQjtxREFBZTs7OztrRUFFUndXO3NEQUNILFNBSEsxQzt3REFJSDs7eUNBQ08yQzs0REFDSDtrRUFER0E7NkRBQ0g7NkRBQ0U7OztrRUFSZXpXOzZEQVFmOzREQUVGOzs0REFIQTs2REFHQSxLQUpHeVc7NkRBSUg7NERBQ0E7OzREQUpBOzZEQUlBO29GQUpJQzs2REFJSjs2REFFSTs7K0VBTkFBLFNBTlYxaEI7OzZEQVlVLEtBUER5aEI7NkRBT0M7NERBREo7OzREQUxBOzZEQUtBLFFBVEhEOzZEQVNHOzREQUdBO3lDQTdEekI1YTs0REFxRHlCLDBCQVFBOzs7NERBQ0E7eUNBaEJhMFc7NERBZ0JiLDBDQUNRO3lEQVpaO3lEQUFjOzBFQUZia0U7d0RBRWE7O3NEQWFYLDJDQUFVO29EQWpCSjs7cURBQ0Q7c0VBRlNsRTtvREFFVDtvRkFnQk07O3VDQWpESDdoQjt3Q0FpQnJCO3VCQWhDWG1MO2dDQWdDc0MrYSxRQUFRQzttREFDL0I7eURBRCtCQTtvREFDL0I7b0RBQWU7Ozs7OztvREFDSDtxRUFEUjVoQixTQUFLOGU7b0RBQ0c7MkVBRFI5ZTs7MkJBQUs4ZTs7O29EQUNHO29EQUVGO3FFQUhOOWUsSUFBSzhlO29EQUdDLFFBRk4rQyxNQURLL0M7b0RBR0MsS0FKcUI4QztvREFJckI7bURBRVY7O21EQUxBO29EQUtBO29EQUNlO29FQUpYRTtvREFJVyxLQVBnQkY7b0RBT2hCO21EQUNmOzttREFQQTtvREFPQSxLQURJWjtvREFDSjttREFDQTs7bURBUkE7b0RBUUEsUUFGSUE7b0RBRUo7b0RBRVE7NkVBWGVXO29EQVdmO21EQURSO2dDQTFDZi9hO21EQTBDZSwwQ0FFUTs7Ozt1QkE3QlNuTDs7Ozs7OENBSUU7Ozs7OytDQUN2Qjs4QkFwQlhtTDt1Q0FvQm1DdkM7MERBQUs7dURBQUxBLDRCQUFxQjs4Q0FEdEIsMEJBSUE7Ozs7OytDQUN2Qjs4QkF4Qlh1Qzt1Q0F3Qm1DdkM7MERBQUs7dURBQUxBLDRCQUFxQjs4Q0FMdEIsMEJBOENBOzs7OzsrQ0FBaUI7Ozs2Q0F0Q2pCOzs7Ozs4Q0FDdkI7NkJBNUJYdUM7O3lEQTRCd0M7cURBL0I5QjBaLGdDQStCbUQ7NkNBRDNCLDBCQUVBOzs7Ozs4Q0FDdkI7NkJBOUJYMVo7O3lEQThCd0M7cURBakM5QjBaLGdDQWlDa0Q7Ozs7OzBDQUpqRDt5QkExQlgxWjtrQ0EwQm1DdkM7cURBQUs7a0RBQUxBLDRCQUFxQjs7MENBSjdDO3lCQXRCWHVDO2tDQXNCbUN2QztxREFBSztrREFBTEEsNEJBQXFCO29DQTRDMUMsMkNBQVU7a0NBbkRyQjtrQ0FETTZMLHNDQW9EZ0I7K0JBQ3hCOzJCRDcxRlY7OENDNjFGOEI7NkJBbC9DckIsU0FxL0NGNlIsS0FBTUE7K0JBRVIsR0FGUUE7aUNBS0o7OzttQ0FBVTs7O21CQUNVRTtxQ0FDcEI7O3VDQUFXO3dEQVBQRixLQU1nQkU7dUNBQ1Q7b0RBR1NyZ0I7d0NBQUw7ZUFBUTdHOzt3Q0FBUixHQUFLNkcsTUFKQXFnQjt5Q0FNVzs7OztnQkFEbEJ4WiwrQkFDcUI7O21CQURyQkE7d0NBREU7eUNBSU4sUUFISUE7eUNBR1k7OzhEQUpGMU47d0NBSUUseUJBRUNtTzswQ0FDYixpQkFEYUE7NENBQ0s7Ozs0Q0FDaEI7eUJBYlg4WSxJQUtnQnBnQjs0Q0FRTDswQ0FFRywyQ0FBVTt3Q0FOSDswQ0FBWnNnQixvQ0FPUTtzQ0FkVjs7dUNBR047O3VDQVdnQjt3REFyQmpCSDt1Q0FxQmlCO3VDQVpuQjs7O3VDQWVPO3dEQWhCTEk7dUNBZ0JLO3NDQUFUO2tEQWpCTzVsQjtxQ0FpQlA7b0VBQTBCO21DQW5CaEI7a0NBQ1Y7bURBREl5bEI7aUNBQ0o7O2dDQUhJOzhEQXFCc0I7NkJBN2dEMUIsU0EwaURGSSxXQUFhOWxCLElBQTBCK2xCO2lCRHI1RjlDLEdDcTVGb0IvbEI7aUNBQW9CO3NDQUFwQkE7MEJBQW9CRzs7V0FBcEI2bEI7K0JBRWY7eUNBRmVBO2dDQUVmO2lDQUNhOzs7a0NBRVE7b0NBR2Y7Ozs7OztxQ0FBOEI7OztxQ0FBWDs7OzsrQkQ3NUY5Qjs7a0NDODVGa0I7Z0VBQW1CO2dDQU5uQjs7Z0NBRVg7aURBRkVDO2dDQUVGOzs7NkNBUXVCRTtpQ0FDdkIsY0FBZ0IxbkI7bUNBQ2hCOzRDQURnQkE7b0NBQ2hCO3FDQUdJOzswQ0FMbUIwbkI7O3FDQUluQjs7OytEQUdEO2lDQU5IOzRCQWR1Q0osc0NBb0JwQzsrQkFmSDs7Z0NBUUE7aURBVkVFO2dDQVVGOzs7d0NBU0UzYjttQkQzNkZUO29DQzQ2Rm9COzs7O3NEQXBCWDJiO3NDQXFCRTs7OzttQkFyQkZBO3NDQXFCRTtvQ0FEUztxQ0FJVDs7O2lCQXhCRkE7b0NBd0JFO2tDQUVHOytCQWhCUCxjQW1CZ0JoWTtrQ0FBSzsrQkFWbkIzRCxPQVVjMkQsNEJBQTJCOytCQW5CM0M7O2dDQW1CQTtpREFwQkVtWTsrQkFvQkYsY0FFa0NMLFFBQVFNO2lDQUd4Qzs7bUNBQWU7b0RBSGlCTjttQ0FHakI7bUNBQ0M7b0RBSndCTTttQ0FJeEIsV0FBWkU7a0NBQVk7YUFFWkM7O3lCQUZBRDs7OztpQkFEQUQ7WUFHQUU7OztpQ0FLSixHQUxJQTtvQ0FNRjs7cUNBQTZCOzs7cUNBQVg7MkRBWm9CSDtvQ0FZcEI7aUNBWllOO2tDQWEzQjsrQkFiMkJBLFFBQVFNLCtCQWFiOytCQWY3QjtzQkFERTFILE1BM0JBdUg7NkJBOWlEQSxTQTJsREZPLEtBQUs3WjtnQ0FBSTswQ0FBSkEsNEJBQThCOzZCQTNsRGpDLFNBNGxERjhaLEtBQUs5WjtnQ0FBSTswQ0FBSkEsNEJBQThCOzZCQTVsRGpDLFNBNmxERitaLEtBQUsvWjtnQ0FBSTswQ0FBSkEsNEJBQThCOzZCQTdsRGpDLFNBK2xERmdhLE1BQVE1bUI7aUJEMThGZixHQzA4RmVBO2lDQUFTO3NDQUFUQTtlQUFTRzs7V0FBVDBtQjsrQkFDVixjQUNpQjVRO2tDQUFNOzttQ0FBc0I7a0RBRm5DNFE7bUNBRW1DO21DQUFYOzs7d0JBQWpCNVEsa0NBQStDOytCQURoRTs7Z0NBQ0c7O2dDQUE4RDs7NkJBam1EN0QsU0FxbURGNlEsV0FBYTltQjtpQkRoOUZwQixHQ2c5Rm9CQTtpQ0FBUztzQ0FBVEE7ZUFBU0c7O1dBQVQwbUI7O2lDQUNGOztRQUFURSxPQUFTbGE7Ozs7O3FDQUFxQixrQ0FBSTtrQ0FBekI7UUFBVGthLGlDQUFTO2dDQUEwQixnQkFDcENuYTtpQ0FDSCxTQUNRb2EsV0FBWUMsSUFBSWhuQixFQUFFMk07Y0FBTnNhLFVBQU16RTttQ0FDeEI7d0NBRHdCQTt3Q0FLWjtlQUZMMEUsSUFIaUIxRTtlQUd0QjdoQixFQUhzQjZoQjt5Q0FLWjtxREFMVXhpQixFQUdwQlc7d0NBRVU7eUNBQWlDOztnQkFMM0J3bUIsU0FLc0IvWSxFQUx0QjZZOzs7d0NBS04sSUFMTUEsWUFBTXpFLElBR2pCMEU7O3NDQURDO29DQUZVRCxpQ0FPTztpQ0FSM0IsY0FZb0J0bUI7b0NBQ29DOzttREFEcENBO3FDQUNvQzs7cUNBQXBCO29EQWhCckJpbUI7cUNBZ0JxQjtxQ0FBWDs7O3VCRGgrRjlCO29DQ2crRnlEO2tCQURoQ2ptQjs0Q0FDZ0MscUNBQVE7aUNBYjVEOzttQ0FZTTs7O2tDQURKO21EQVpDZ007aUNBWUQsY0FLZW1hO21DQUNmO3NDQUNtQjs7O3NDQUNSO3NCQUhJQSxPQUVVbm1CO3dCQUFHcVY7Z0RBQ2U7bUNBRjNDO29DQUNJO3VCRHIrRlgsT0NvOUZhK1E7b0NBaUJGOzhCQVJGdkUsbUNBU3lDO2lDQVIzQzs7a0NBS0E7bURBbEJFc0U7a0NBa0JGOzttQ0FLVzs7OzRCQU5UTSx3Q0FNaUM7NkJBN25EakMsU0ErbkRGQyxjQUFnQnRuQjtpQkQxK0Z2QixHQzArRnVCQTtpQ0FBUTtzQ0FBUkE7Y0FBUUc7Ozs7O1FBQVJ5VCxnQ0FBUTtnQ0FBYTtpQ0FDckI7O1FBQWQyVCxZQUFjMWE7OztRQUFkMGE7O3FDQUF1QiwyQ0FBVTtnQ0FBbkI7O2lDQUNUO2tEQUZTM1Q7aUNBRVQ7OzhDQUE2QkEsTUFBTW5WO2lDQUN4Qzs7O21DQUE4Qjt5REFEVUE7a0NBQ1Y7cUJENytGdkMsT0NpekVPc2hCO2tDQTRyQmdDOzttQ0FBbkI7O21DQUFlOzs7a0NBQTFCOzswQ0FEa0NuTTtrQ0FDbEM7a0NBQ0c7Z0VBSEgyVDtnREFHc0M7Z0NBRmpDO21CRDUrRmQ7NkJDMjJDUyxTQW90REZDLFVBQVV2UixHQUFHaFc7K0JBQ2Y7aUNBQ0U7b0NBRU07O1lBSk9BO29DQUlQO2tDQUVHLDJDQUFXOytCQUx0QjtvQ0FEWWdXLDRCQVdSOzZCQS90REEsU0FrdURGd1IsT0FBU3puQixJQUFvQnZCLEVBQUV3QjtnQ0FBSSxHQUExQkQ7aUNBQU87c0NBQVBBO2FBQU9HOztXQUFQZ007Z0NBQTBCLHNDQUExQkE7Z0NBQW9DO3VEQUFoQjFOLEdBQUV3Qiw0QkFBZ0M7NkJBbHVEN0QsU0FxdURGeW5CLFlBQWMxbkIsSUFBYyttQjtpQkRobEduQyxHQ2dsR3FCL21CO2lDQUFNO3NDQUFOQTtZQUFNRzs7V0FBTnduQjs7aUNBRWhCLFNBQVFuUixJQUFLNlAsS0FBS3VCO21DQUNoQjtzQ0FDaUI7YUFBWEM7d0NBQVcsa0JBRkREOzs7cUNBR2Q7cUVBRElDO3dDQUVGO2VBQUk1Ujs7NENBQ1E7OztzQkFIVjRSOzZDQUdVOzZDQUVSOzhEQUZFQzs2Q0FFRjs2Q0FBOEI7OERBUHRCRjs2Q0FPc0I7NkNBQVQ7OzZDQUErQjs7K0NBVGhDYjs2Q0FlUjtnREFmUUE7OENBZVI7b0JBSFZ0RSw4QkFHVSxnQkFBTHhpQixFQVBMMk07O3VCQUlBNlYsSUFKQTdWOzRDQURNOzZDQVVWOzs2Q0FBc0I7bUVBTGxCNlY7NkNBS2tCOzZDQUFkOzs7NENBQ2M7OzhERGxtR25DLE9Da2xHYWpNOzJCQWVJMlEsOEJBQ29DO3dDQVoxQyxHQUpPZDt5Q0FtQkw7OzBDQUMyQjsyREFwQmpCdUI7MENBb0JpQjswQ0FBVjs7OzBDQUFmOzsrQ0FERixxQkFmRTNSOzt5Q0FrQkM7Ozt3Q0FsQkw7O3VDQW9CQTs7OzJDQUlnQjtvQ0E1QkoyUiwrQkE0QmtCO3dDQUo5Qjs7O3dDQUVjOzt3Q0FEWDtxREF6QlNBO3dDQXlCVDs2Q0FESDtxQ0FNRjtnQkFER25qQjs7cUNBQ0g7Ozt1Q0FNaUI7d0RBUGRBO3VDQU9jO3VDQUFWOzs7Ozt1Q0FGVzs7dUNBRFg7Ozs2REFqQ09takI7O3VDQWlDUDt1Q0FGSjs7OzREQU1HO2lDQXJDVjtTQXVDSUc7VUF6Q1lKLDhCQXlDUTtpQ0FDeEIsc0NBRElJLGdDQUNpQjs2QkEvd0RqQixTQWt4REFDLE9BQVFuTixHQUFJb04sSUFBcUJob0I7K0JBRW5DLFNBQUlpb0IsT0FBT0MsS0FBS0M7aUNBQ2Q7OzttQ0FLTTs7d0NBTkdEOzttQ0FLSDs7O21DQURBOzs7eURBSlFDOzttQ0FJUjttQ0FGSjs7O2lCQURFSDs7NkNBU0E7eURBVktFOzhDQVVMOzZDQUNBOzBCQWJJdE4sR0FZQXdOOzZDQUNKOzRCQWI2QnBvQixFQVl6Qm9vQixpQ0FFSSw0QkFBQzsrQkFaZjs7aUNBY21CO2tEQWhCVHhOO2dDQWdCUzsyQkFoQkxvTixJQUVWQyxpQ0FjK0I7NkJBbHlEakMsU0FpeERNSSxTQW9CR0wsSUFBcUJ6aUI7K0JBQ2hDO2dDQUFjO2VBRGtCQSxFQUFyQnlpQiw4QkFDRyxnQkFEa0J6aUIsNkJBQ1A7NkJBdHlEdkIsU0FpeERGK2lCLFNBdUJXdm9CO2lCRG5wR2xCLEdDbXBHa0JBO2lDQUFPO3NDQUFQQTthQUFPRzs7V0FBUDZEO3NCQUFvQy9EO2lDQUUvQzs7bUNBQVM7b0RBRkUrRDtrQ0FFRjtpQkFBTDZXLE9BRjJDNWEsNEJBRy9COzZCQTN5RGQsU0FzekRGdW9CLGNBQWNDLFFBQVE3UixNQUFNOFI7K0JBRXpCOztRQUZtQjlSLFFBQU04UixNQUFkRCxRQUFRN1IsUUFBUjZSLFFBQWNDO2dDQUk5QixNQUhJQzsrQkFJSixPQURJQyw4QkFDRDs2QkEzekRDLDZCQTZ6REZDOzZCQTd6REUsU0E4ekRGQyxRQUFRbG9CLEVBQUVtb0I7Z0NBQU8sT0FBUEEsS0FBRm5vQixtQ0FBaUQ7NkJBOXpEdkQ7OzsrQkErekRhOzs7OytCQUNBOzs7O3VDQVFmd29CLFdBQVdYLFFBQVE3UixNQUFNMEssT0FBUStIO2dDQUN0QjtzQ0FEYy9ILFNBQWRtSDtpQ0FDaUIsY0FEVDdSO2lDQUVQLEtBRk9BLFFBQU0wSztpQ0FFRSxZQUZoQm1IO2lDQUU0QixZQUY1QkE7aUNBRXVDLGNBRi9CN1I7aUNBR1IsS0FIQTZSLFVBQ1RhO2lDQUUwQixjQUQxQkM7Z0NBQzBCLFNBQzFCcEssT0FBT25XLEtBQUs4RjtpQ0FDZDs7bUNBQTZCO29EQURwQjlGLEtBZlQ2ZjttQ0FnQjZCOzttQ0FBYjt5REFERi9aO21DQUNFO21DQUFSOzs7OERBQW1EO2dDQUYvQixTQUkxQjBhLGNBQWU1b0I7bUJEMXJHeEI7O3NDQzRyR1csR0FGYUEsSUFOZjBvQjt3Q0FTMEI7OENBVmpCYjt5Q0FVaUI7O3lDQUFQOzt5Q0FBWCxLQVZlbkg7d0NBVW5CO2dCQVYyQitIO3dDQVUzQjtzQ0FFVSxHQVhkQyxTQUVBdk8sU0FJZW5hO3dDQU1XOzhDQWJqQjZuQjt5Q0FhaUI7O3lDQUFQOzt5Q0FBWCxLQWJlbkg7d0NBYW5CO2dCQWIyQitIO3dDQWEzQjtzQ0FHQTs7OzBDQUdxQixrQ0FBRTtzQ0FIdkI7Ozs4QkFDWTFUO2lEQUNVO3VEQURWQSxNQVZEL1U7a0RBV29CLFlBbEJsQmdXO2tEQWtCMkIsWUFsQm5DNlI7aURBa0JLO2dDQWxCaUJZLElBQVIvSCx3Q0FrQmtDOzs7O3FDQUd2RDs7eURBRE12UDtzQ0FJYyxLQXhCYjBXO3NDQXdCYTs7c0NBQVA7O3NDQUFSLEtBSERsSztzQ0FFRixLQXZCbUIrQztxQ0FzQnJCO2FBdEI2QitIO3FDQXNCN0I7a0NBSUc7Z0NBdkJxQjs7Z0NBNkJ6Qjt3Q0E5QkRFLE9BWEZQO2dDQXdDRzt3Q0E1QkRqTyxPQVhGa087Z0NBc0NDO3dDQTdCQ0ssT0FWRk47Z0NBdUNDOzRDQUZDemtCO2dDQUVGOzRDQUZFQTsrQkFFRjs2QkF2QkVpbEIsNkNBeUI0Qjs4QkF4Q2YsU0EwQ2ZDLFdBQVdoQixRQUFRN1IsTUFBTTBLLE9BQVErSDtnQ0FDdEI7c0NBRGMvSCxTQUFkbUg7aUNBQ2lCLGNBRFQ3UjtpQ0FFUCxLQUZPQSxRQUFNMEs7aUNBRUUsWUFGaEJtSDtpQ0FFNEIsWUFGNUJBO2lDQUV1QyxjQUYvQjdSO2lDQUdSLEtBSEE2UixVQUNUYTtpQ0FFMEIsY0FEMUJDO2dDQUMwQixTQUMxQnBLLE9BQU9uVyxLQUFLOEY7aUNBQ2Q7Ozs7O21DQUFzQjs0REFEUkE7bUNBQ1E7bUNBQWQ7bUVBREM5RjtrQ0FDRDs4REFBdUM7Z0NBRm5CLFNBSTFCd2dCLG9CQUFvQm5iO21CRDV0RzdCOztzQ0M4dEdXLEdBRmtCQSxJQU5wQmliO3dDQVMwQjs4Q0FWakJiO3lDQVVpQjs7eUNBQVA7O3lDQUFYLEtBVmVuSDt3Q0FVbkI7Z0JBVjJCK0g7d0NBVTNCO3NDQUVVLEdBWGRDLFNBRUF2TyxTQUlvQjFNO3dDQU1NOzhDQWJqQm9hO3lDQWFpQjs7eUNBQVA7O3lDQUFYLEtBYmVuSDt3Q0FhbkI7Z0JBYjJCK0g7d0NBYTNCO3NDQUdBOzs7MENBR3FCLGtDQUFFO3NDQUh2Qjs7O29DQUNpQjNUO2lEQUNLO3VEQURMQSxNQVZEckg7a0RBV2UsWUFsQmxCdUk7a0RBa0IyQixZQWxCbkM2UjtpREFrQks7Z0NBbEJpQlksSUFBUi9ILHdDQWtCa0M7Ozs7cUNBR3ZEOzt5REFETXZQO3NDQUljLEtBeEJiMFc7c0NBd0JhOztzQ0FBUDs7c0NBQVIsS0FIRGxLO3NDQUVGLEtBdkJtQitDO3FDQXNCckI7YUF0QjZCK0g7cUNBc0I3QjtrQ0FJRztnQ0F2QnFCOztnQ0E2QnpCO3dDQTlCREUsT0E3Q0ZQO2dDQTBFRzt3Q0E1QkRqTyxPQTdDRmtPO2dDQXdFQzt3Q0E3QkNLLE9BNUNGTjtnQ0F5RUM7NENBRkN6a0I7Z0NBRUY7NENBRkVBOytCQUVGOzZCQXZCRWlsQiw2Q0F5QjRCOzhCQTFFZixTQTRFZkUsVUFBVTluQjsrQkFFWjs7aUNBQWdCOzt5Q0FFWituQixZQUFhL2dCLEVBQUduSjtpQ0FDbEI7O21DQUFZO29EQUhWNmlCO21DQUdVLEtBQVJDLFlBRFczWjttQ0FDSCxjQUFSMlosWUFEYzlpQjtpQ0FHaEI7OzJCQUxBNmlCLGVBRWExWixFQUFHbkosRUFDZDhpQjsrQ0FFbUM7Z0NBTHpCLFNBT1pxSCxhQUFhcnBCO2lDQUNmOzs7OztrQ0FDRTs7b0RBRmFBO2lDQUViOytCQVBBb3BCLDJDQU8wQztnQ0FUOUIsU0FZWkUsYUFBYXRwQixLQUFLZ2lCO2lDQUNwQjs7bUNBQW9DO29EQURyQmhpQjttQ0FDcUI7bUNBQXRCO29EQURDQTttQ0FDRCxTQURNZ2lCLFdBQ2hCbEo7bUNBQVUsU0FETWtKLFdBQ1ovSTttQ0FBTTtVQUVWc1E7O1dBQTRCQyxTQUhaeEgsWUFDaEJsSixPQUU0QjBRO2tDQUVoQztVQUZnQ0E7O1dBQzVCQyxXQUpnQnpILFlBQ1ovSSxPQUdKd1E7a0NBR0osS0FQb0J6SDttQ0FPTjtpREFGVjBIO21DQUVVLEtBUE0xSDttQ0FRTjtpREFKVnlIO21DQUlVLEtBUk16SDttQ0FTTjtrREFGVjJILFFBTkE3UTttQ0FRVSxLQVRNa0o7bUNBVU47a0RBRlY0SCxRQVBJM1E7a0NBU00sU0FFVjdNLEtBQUsvTjttQ0FDUDs7cUNBQ0U7c0RBTEF3ckIsUUFDQUMsUUFFS3pyQjtvQ0FFTDs7OztzQkEzR0ppcUI7Ozs7O2tEQTJHcUM7a0NBSnZCLFNBTVZ5QixZQUFZamM7bUNBQ2Q7O3FDQUFZO3NEQTdCWmlVO3FDQTZCWSxLQUFSQyxZQURVbFU7b0NBQ0Y7NkNBQ1M7NkJBOUJyQmlVLGVBNkJJQywyQkFEVWxVO2lEQUV5QztrQ0FSM0MsU0FVVmtjLFlBQVkzcEI7bUNBQ2Q7O3FDQUFZO3NEQWpDWjBoQjtxQ0FpQ1ksS0FBUkMsWUFEVTNoQjtvQ0FDRjs2Q0FDUzs2QkFsQ3JCMGhCLGVBaUNJQyxrQkFEVTNoQixFQUNWMmhCO2lEQUNtRDtrQ0FaM0M7OztxQ0FOVnlIO2FBQ0FDO3NDQTJCQTs7dUNBR1E7O3FCQWhJWnBCO3VDQStIUzs7Z0JBM0JMcUIsUUFOQTdRLEdBUUErUSxRQVdBRzt1Q0FjSTttREFWb0J0akI7dUNBU3BCOztnQkF6QkprakIsUUFQSTNRLEdBU0o2USxRQU1BQzt1Q0FnQkE7NkNBaENXL3BCO3NDQWdDWDtxQkFSQWdFOytDQVFBLFdBUndCMEM7O29DQU1WOzs7Y0F2QmRpakIsUUFOQTdRLEdBUUErUSxRQVdBRztvQ0FVQTttQkFOQWhtQixpQ0FNQSxLQTlCV2hFO1dBS1gwcEI7b0NBdUJjOzs7Y0FwQmRFLFFBUEkzUSxHQVNKNlEsUUFNQUM7b0NBWUE7bUJBSndCcmpCLG1DQUl4QixLQTVCVzFHO2tDQTBCRyxPQTFCSEEsOEJBbUNzQztnQ0EvQ3ZDLGNBa0R1QjBWLEdBQUdqTjtrQ0FDekI7d0RBRHNCaU4sR0FBR2pOLGdDQUNIO2dDQW5EdkI7O2lDQWtETDtrREFsRFBzWjtnQ0FrRE87c0JBcERDMWdCLHNDQXFENEI7OEJBakl2Qjs7O09BMTNCZm1lO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0EzZ0I7T0FFQTRnQjtPQUdBQztPQVFBQztPQWFBSztPQUNBRTtPQUVBQztPQXVGQU07T0FFQUM7T0E0QkFXO09Bb0JBRztPQW9CQUM7T0FjQUM7T0E0Q0FXO09BNENBSTtPQUVBRTtPQXFHQU87T0FLQUM7T0FJQUM7T0FJQUU7T0FNQUk7T0FHQUM7T0FNQUM7T0FtQkFLO09BTUlDO09BT0FDO09BNEJKQztPQUVBQztPQXlFQVM7T0FxREFLO09BaURBVztPQUNBQztPQUNBQztPQUVBQztPQU1BRTtPQTBCQVE7T0FxRkFFO09BY0FDO09BR0FDO09BNENBYTtPQUFRRDtPQXFDUkU7T0FPQUs7T0FDQUM7T0FDQUU7T0FDQUM7T0FFQUM7T0FHQUM7T0FHQUM7T0FrQ0FLO09Ba0NBQzsrQkE1RWU7Ozs7Ozs7OztPQTFqRmpCcGlCOzs7Ozs7Ozs7OzhCQTBqRmlCOzsrQ0QzcUd0Qjs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7NkJDTXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQUFsQjs2QkFBa0I7NkJBQWxCOzs0QkFDQTs2QkFEa0I7NkJBQ2xCOzs2QkFFZ0I7c0NBSWRrakIsYUFBY0M7K0JBQ2hCLGNBQVVDO2tDQUFrQjs7bUJBQWxCQTs2Q0FBa0M7K0JBQTVDOzs7O21CRGRIO1VDY09DO29CQUNPRDs7Ozs2Q0FBNkI7eUNEZjNDO1VDZU9FLFVBRllIO29CQUdZQztrQ0FBTzs7bUJBQVBBOzZDQUFXO3lDRGhCMUM7b0JDZU9FO29CQUNRRjtrQ0FBTzs7bUJBQVBBOzZDQUFZO3lDRGhCM0I7Z0NDZ0IyQjtpQkFEcEJFO2lDQUNvQjs4Q0FDTUY7a0NBQU87a0VBQVBBOzZDQUFVO2dDQURoQjttQkRoQjNCO29CQ2VPRTtvQkFFU0Y7a0NBQU87O21CQUFQQTs2Q0FBYTt5Q0RqQjdCO2dDQ2lCNkI7aUJBRnRCRTtpQ0FFc0I7OENBQzFCRjs7Ozs2Q0FBYztnQ0FBSTs7UUFGZEcsUUFGQUY7Z0NBSWM7bUJEbEJyQjtXQ2FtQkY7b0JBTWhCQzs7OzZDQUFlO2dDQUFJOztRQUZmSSxTQUhBSDtnQ0FLZTttQkRuQnRCO1dDYW1CRjsrQkFRZDtZQUxFSTs7Z0NBS0Y7O2lDQUEwQzs7c0NBSnhDQztpQ0FJd0M7Z0NBRzFDOztpQ0FBMkM7OzhDQUU3Q0o7Ozs7NkNBQXNCO2dDQUZ1QixjQUU3Q0E7a0NBQVM7O21CQUFUQTs2Q0FBYztnQ0FGK0I7bUJEeEJoRDtvQkNhbUJEOzhDRGJuQjtnQkNvQk9NO29CQU9KTDs7Ozs2Q0FBdUI7b0JBQXZCQTtrQ0FBUzs7bUJBQVRBOzZDQUFjOzBDRDNCakI7b0JDYW1CRDtnRERibkI7b0JDdUJPTyx3Q0FJNkI7NkJBbEJqQixTQW9CZEMsaUJBQWlCUjsrQkFDbkIsc0NBRG1CQTsrQkFDbkI7T0FFSVM7OytCQUZKLGNBR0FSOzs7NkNBQWU7K0JBSGY7Ozs7bUJEOUJIO1dDZ0NPUTsrQkFHRjs7O2lEQU5pQlQsT0FHZlM7Z0NBR0Y7Ozs7a0NBS1ksOEJBQVBDO2tDQUFPLE9BQVBBOytCQUxMLHlCQUdFOzs7d0VBRWE7NkJBL0JELFNBaUNkQyxrQkFBa0JDOytCQUNwQjs7OztpQ0FHd0I7OztnQ0FEdEI7c0RBSGtCQTtnQ0FHbEI7K0JBS0Y7YUFOSUM7K0JBTUosY0FDQVo7Ozs7NkNBQXFCOytCQURyQjs7Ozs7O21CRGxESDtXQzBDdUJXO2FBRWhCQywyQkFRRjs2QkEzQ2MsU0E2Q2RDOytCQUNGOzs7aUNBQVc7Ozs7OENBRVRiOzs7OzZDQUFzQztnQ0FGN0IsY0FHaUJnQjtrQ0FBaUI7eUJBSHRDRixFQUdxQkUsK0JBQWtDO2dDQUF4Qzs7Ozs7bUJEMUR6Qjs7YUN1RE9ELDBCQUtIOzZCQW5EZSxTQXFEZEU7TUFBY2xCLE9BQU9ZLFVBQVVDLEdBQzlCTTsrQkFFSCxjQUF1QkM7aUNBQ25CLGNBQW1DSDttQ0FDbkM7Ozs7aURBQWdCO21DQUFoQixjQUdNaEI7c0NBQVk7O3VCQUFaQTtpREFBZ0M7bUNBSHRDO3VCRG5FUDt3QkM4RDBCVzt3QkFPYlg7c0NBQVk7O3VCQUFaQTtpREFBOEI7OENEckUzQzt3QkM4RDBCVzt3QkFNaEJYO3NDQUFZOzt1QkFBWkE7aURBQThCOzhDRHBFeEM7d0JDOEQwQlc7a0REOUQxQjtlQzhEMEJBO3dCQVNBWDtzQ0FBa0I7O3VCQUFsQkE7aURBQWtDOzs4Q0R2RTVEO2NDdUVXb0I7d0JBQzZDcEI7c0NBQVM7O3VCQUFUQTtpREFBZTs4Q0R4RXZFO3dCQzhEbUJEO3dCQVVjQztzQ0FBUzs7dUJBQVRBO2lEQUFjOzhDRHhFL0M7d0JDOERtQkQ7bUNBVVo7aUJBVjZCYSxhQVN6QlE7bUNBQ0o7OzttQ0FFQTtpQkFaNkJSLEdBU3pCUTttQ0FDSjtvQ0FFQTs0Q0FSbUNKO21DQVNuQztZQVpERSxPQUQ4Qk4sYUFHVk87bUNBT25CLHlCQUdBOzs7bUNBQ0E7aUJBZDZCUDttQ0FjN0Isd0NBQ2U7aUNBWGY7Ozs7O2dFQVdlOytCQVpuQjsrREFZb0I7NkJBcEVKOzsrQkEwRUc7OytCQUVIO2lEQUhaYjsrQkFJSztrREFETFk7K0JBQ0s7OzsrQkFHUzs7Ozs7K0JBQ0M7Ozs7K0JBQ0E7OzsrQkFBUjs7OytCQUNzQzsrQ0FEN0NZOytCQUM2QzsrQkFBVjs7OytCQUE5Qjs7Ozs7OytCQUtEOzs7Ozs4QkFGSjs7O3FDQU5BRjs4QkFNQSxPQUxBQzs2QkFLQTtpQkQvRlA7NkJDK0ZPO2lCRC9GUDs2QkMrRk87OytCQWtDQTsrQ0FwQ0FHOytCQW9DQTs4QkFERjtVQXJDRUY7NkJBSUE7K0JBaUNGOytCQUVBOytDQXRDRUM7K0JBc0NGOztnQ0FHdUI7Ozs7NENBR1N4QjtpQ0FBUzs7aUJBQVRBOzRDQUFlOytCQUh4QjtpQkRySTVCO2dCQ2tGT0Q7aUJBc0RlQztpQ0FBUzs7aUJBQVRBOzRDQUFjO3VDRHhJcEM7K0JDd0lhO2FBdERORDs7Z0NBc0RNOzs7OytCQURSOytDQWpERWEsV0ErQ0FnQixPQU5BRjs4QkFRRjtnQ0FLRTs7aUJBMURBM0I7aUJBR0FZO2lCQUNBQzswQkF1RE9BLEdBQUtrQixJQUFXQyxFQUFFWjs4Q0FFckIsY0FBZWE7Z0RBQ1g7OztpREFDRTs7OzhCQUZTQSxxQkFGSUQsT0FBRVosNkJBS2Q7OENBSFA7Ozs7Ozs7OytDQUlTO2dFQU5OUCxRQUFnQm1CLEVBQUVaOzhDQU1aLGNBQ09hO2dEQUNaOzhCQURZQSxxQkFEWkMsK0JBRXVDOzhDQUZsQzt1RUFFbUM7ZUFmaERKLGtDQWdCUTs4QkFmVjs7OzhCQUlGOzRDQWFPSztnQ0FDSDs7a0NBQzBCO2lFQUZ2QkE7aUNBRUE7NkNBckJLUDtnQ0FxQkw7c0RBQW1EOzhCQWYxRDs7Ozs7Ozs7Z0NBWWM7Ozs4QkFBZDs7OEJBWkEsMEJBWUE7Ozs7OytDRHZKSDs7Ozs7OztlQ0FBOzs7Ozs7Ozs4QkNrQlM7Ozs7K0NEbEJUIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZmZzZXRcbnZhciBjYW1sX2ludDY0X29mZnNldCA9IE1hdGgucG93KDIsIC0yNCk7XG5cbi8vUHJvdmlkZXM6IE1sSW50NjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBNbEludDY0IChsbyxtaSxoaSkge1xuICB0aGlzLmxvID0gbG8gJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9IG1pICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSBoaSAmIDB4ZmZmZjtcbn1cbk1sSW50NjQucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gXCJfalwiXG5NbEludDY0LnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyx0aGlzLm1pLHRoaXMuaGkpO1xufVxuXG5NbEludDY0LnByb3RvdHlwZS51Y29tcGFyZSA9IGZ1bmN0aW9uICh4KSB7XG4gIGlmICh0aGlzLmhpID4geC5oaSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmhpIDwgeC5oaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+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+IDAgPj0gcy5sKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGksIGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0Zjhfb2ZfdXRmMTYsIE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmcgKHMpIHtcbiAgdmFyIHRhZyA9IDkgLyogQllURVMgfCBBU0NJSSAqLztcbiAgaWYgKCFqc29vX2lzX2FzY2lpKHMpKVxuICAgIHRhZyA9IDggLyogQllURVMgfCBOT1RfQVNDSUkgKi8sIHMgPSBjYW1sX3V0Zjhfb2ZfdXRmMTYocyk7XG4gIHJldHVybiBuZXcgTWxCeXRlcyh0YWcsIHMsIHMubGVuZ3RoKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbEJ5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzLCBqc29vX2lzX2FzY2lpLCBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIE1sQnl0ZXMgKHRhZywgY29udGVudHMsIGxlbmd0aCkge1xuICB0aGlzLnQ9dGFnOyB0aGlzLmM9Y29udGVudHM7IHRoaXMubD1sZW5ndGg7XG59XG5NbEJ5dGVzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCl7XG4gIHN3aXRjaCAodGhpcy50KSB7XG4gIGNhc2UgOTogLypCWVRFUyB8IEFTQ0lJKi9cbiAgICByZXR1cm4gdGhpcy5jO1xuICBkZWZhdWx0OlxuICAgIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXModGhpcyk7XG4gIGNhc2UgMDogLypCWVRFUyB8IFVOS09XTiovXG4gICAgaWYgKGpzb29faXNfYXNjaWkodGhpcy5jKSkge1xuICAgICAgdGhpcy50ID0gOTsgLypCWVRFUyB8IEFTQ0lJKi9cbiAgICAgIHJldHVybiB0aGlzLmM7XG4gICAgfVxuICAgIHRoaXMudCA9IDg7IC8qQllURVMgfCBOT1RfQVNDSUkqL1xuICBjYXNlIDg6IC8qQllURVMgfCBOT1RfQVNDSUkqL1xuICAgIHJldHVybiB0aGlzLmM7XG4gIH1cbn07XG5NbEJ5dGVzLnByb3RvdHlwZS50b1V0ZjE2ID0gZnVuY3Rpb24gKCl7XG4gIHZhciByID0gdGhpcy50b1N0cmluZygpO1xuICBpZih0aGlzLnQgPT0gOSkgcmV0dXJuIHJcbiAgcmV0dXJuIGNhbWxfdXRmMTZfb2ZfdXRmOChyKTtcbn1cbk1sQnl0ZXMucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gKCl7XG4gIHZhciBjb250ZW50ID0gdGhpcy50ID09IDQgPyB0aGlzLmMuc2xpY2UoKSA6IHRoaXMuYztcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKHRoaXMudCxjb250ZW50LHRoaXMubCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyX3JlcGVhdCwgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzIChzKSB7XG4gIC8qIEFzc3VtZXMgbm90IEJZVEVTICovXG4gIGlmIChzLnQgPT0gMiAvKiBQQVJUSUFMICovKVxuICAgIHMuYyArPSBjYW1sX3N0cl9yZXBlYXQocy5sIC0gcy5jLmxlbmd0aCwgJ1xcMCcpXG4gIGVsc2VcbiAgICBzLmMgPSBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMgKHMuYywgMCwgcy5jLmxlbmd0aCk7XG4gIHMudCA9IDA7IC8qQllURVMgfCBVTktPV04qL1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheSAocykge1xuICAvKiBBc3N1bWVzIG5vdCBBUlJBWSAqL1xuICBpZihnbG9iYWxUaGlzLlVpbnQ4QXJyYXkpIHtcbiAgICB2YXIgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkocy5sKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgYSA9IG5ldyBBcnJheShzLmwpO1xuICB9XG4gIHZhciBiID0gcy5jLCBsID0gYi5sZW5ndGgsIGkgPSAwO1xuICBmb3IgKDsgaSA8IGw7IGkrKykgYVtpXSA9IGIuY2hhckNvZGVBdChpKTtcbiAgZm9yIChsID0gcy5sOyBpIDwgbDsgaSsrKSBhW2ldID0gMDtcbiAgcy5jID0gYTtcbiAgcy50ID0gNDsgLyogQVJSQVkgKi9cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfb2ZfYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2FycmF5X29mX2J5dGVzIChzKSB7XG4gIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMpO1xuICByZXR1cm4gcy5jO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X29mX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuZnVuY3Rpb24gY2FtbF9hcnJheV9vZl9zdHJpbmcgKHMpIHtcbiAgdmFyIGwgPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyk7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICB2YXIgaSA9IDA7XG4gIGZvciAoOyBpIDwgbDsgaSsrKSBhW2ldID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLGkpO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX3N0cmluZyhsZW4pIHtcbiAgaWYobGVuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyaW5nLmNyZWF0ZVwiKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKGxlbj8yOjksXCJcIixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9zdHJpbmcobGVuKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0cmluZy5jcmVhdGVcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKSB7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCeXRlcy5jcmVhdGVcIik7XG4gIHJldHVybiBuZXcgTWxCeXRlcyhsZW4/Mjo5LFwiXCIsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYXJyYXkgKGEpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKGEsMCxhLmxlbmd0aCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX2FycmF5IChhKSB7XG4gIHJldHVybiBuZXcgTWxCeXRlcyg0LGEsYS5sZW5ndGgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2NvbXBhcmUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19jb21wYXJlKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8tMTooczEuYyA+IHMyLmMpPzE6MDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA9PSBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ub3RlcXVhbChzMSwgczIpIHsgcmV0dXJuIDEtY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZXF1YWxcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbm90ZXF1YWwoczEsIHMyKSB7IHJldHVybiAxLWNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDw9IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19sZXNzdGhhbiBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dyZWF0ZXJlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczIsczEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ncmVhdGVyZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMyLHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVydGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW5cbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmlsbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfZmlsbF9ieXRlcyhzLCBpLCBsLCBjKSB7XG4gIGlmIChsID4gMCkge1xuICAgIGlmIChpID09IDAgJiYgKGwgPj0gcy5sIHx8IChzLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGwgPj0gcy5jLmxlbmd0aCkpKSB7XG4gICAgICBpZiAoYyA9PSAwKSB7XG4gICAgICAgIHMuYyA9IFwiXCI7XG4gICAgICAgIHMudCA9IDI7IC8qIFBBUlRJQUwgKi9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMuYyA9IGNhbWxfc3RyX3JlcGVhdCAobCwgU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gICAgICAgIHMudCA9IChsID09IHMubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzKTtcbiAgICAgIGZvciAobCArPSBpOyBpIDwgbDsgaSsrKSBzLmNbaV0gPSBjO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maWxsX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9maWxsX2J5dGVzXG52YXIgY2FtbF9maWxsX3N0cmluZyA9IGNhbWxfZmlsbF9ieXRlc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcywgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JsaXRfYnl0ZXMoczEsIGkxLCBzMiwgaTIsIGxlbikge1xuICBpZiAobGVuID09IDApIHJldHVybiAwO1xuICBpZiAoKGkyID09IDApICYmXG4gICAgICAobGVuID49IHMyLmwgfHwgKHMyLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGxlbiA+PSBzMi5jLmxlbmd0aCkpKSB7XG4gICAgczIuYyA9IChzMS50ID09IDQgLyogQVJSQVkgKi8pP1xuICAgICAgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKHMxLmMsIGkxLCBsZW4pOlxuICAgICAgKGkxID09IDAgJiYgczEuYy5sZW5ndGggPT0gbGVuKT9zMS5jOnMxLmMuc3Vic3RyKGkxLCBsZW4pO1xuICAgIHMyLnQgPSAoczIuYy5sZW5ndGggPT0gczIubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICB9IGVsc2UgaWYgKHMyLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGkyID09IHMyLmMubGVuZ3RoKSB7XG4gICAgczIuYyArPSAoczEudCA9PSA0IC8qIEFSUkFZICovKT9cbiAgICAgIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhzMS5jLCBpMSwgbGVuKTpcbiAgICAgIChpMSA9PSAwICYmIHMxLmMubGVuZ3RoID09IGxlbik/czEuYzpzMS5jLnN1YnN0cihpMSwgbGVuKTtcbiAgICBzMi50ID0gKHMyLmMubGVuZ3RoID09IHMyLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgfSBlbHNlIHtcbiAgICBpZiAoczIudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkoczIpO1xuICAgIHZhciBjMSA9IHMxLmMsIGMyID0gczIuYztcbiAgICBpZiAoczEudCA9PSA0IC8qIEFSUkFZICovKSB7XG4gICAgICBpZiAoaTIgPD0gaTEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYzIgW2kyICsgaV0gPSBjMSBbaTEgKyBpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkgYzIgW2kyICsgaV0gPSBjMSBbaTEgKyBpXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGwgPSBNYXRoLm1pbiAobGVuLCBjMS5sZW5ndGggLSBpMSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKykgYzIgW2kyICsgaV0gPSBjMS5jaGFyQ29kZUF0KGkxICsgaSk7XG4gICAgICBmb3IgKDsgaSA8IGxlbjsgaSsrKSBjMiBbaTIgKyBpXSA9IDA7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2JsaXRfc3RyaW5nKGEsYixjLGQsZSkge1xuICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9zdHJpbmcoYSksYixjLGQsZSk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoIGNvbnN0XG5mdW5jdGlvbiBjYW1sX21sX2J5dGVzX2xlbmd0aChzKSB7IHJldHVybiBzLmwgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgcmV0dXJuIHMuY2hhckNvZGVBdChpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ191bnNhZmVfc2V0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGggY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIHtcbiAgcmV0dXJuIHMubGVuZ3RoXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2NvbXBhcmUgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfY29tcGFyZShzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8IHMyKT8tMTooczEgPiBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19lcXVhbCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19lcXVhbChzMSwgczIpIHtcbiAgaWYoczEgPT09IHMyKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiAoczEgPD0gczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc3RoYW4gY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczEsIHMyKSB7XG4gIHJldHVybiAoczEgPCBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSB7XG4gIChzLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzLmMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHgpIHsgcmV0dXJuIHggfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNieXRlc19vZl9zdHJpbmcoeCkgeyByZXR1cm4geCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0ZjE2X29mX3V0Zjhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykge1xuICBpZihqc29vX2lzX2FzY2lpKHMpKVxuICAgIHJldHVybiBzO1xuICByZXR1cm4gY2FtbF91dGYxNl9vZl91dGY4KHMpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0Zjhfb2ZfdXRmMTYsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHMpIHtcbiAgaWYgKGpzb29faXNfYXNjaWkocykpXG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocylcbiAgZWxzZSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX3V0Zjhfb2ZfdXRmMTYocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhzKSB7IHJldHVybiBuZXcgTWxCeXRlcygwLHMscy5sZW5ndGgpOyB9XG5cblxuLy8gVGhlIHNlY3Rpb24gYmVsb3cgc2hvdWxkIGJlIHVzZWQgd2hlbiB1c2UtanMtc3RyaW5nPWZhbHNlXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSkge1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYykge1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfc2V0KHMsaSxjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIHtcbiAgcmV0dXJuIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2NvbXBhcmVcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfY29tcGFyZVxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfY29tcGFyZShzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfY29tcGFyZShzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZXF1YWxcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19lcXVhbChzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzZXF1YWwoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSB7IHJldHVybiBzIH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpIHsgcmV0dXJuIHMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgeyByZXR1cm4gY2FtbF9ieXRlc19vZl9qc2J5dGVzKHMpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNieXRlc19vZl9zdHJpbmcocykge1xuICAocy50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgcmV0dXJuIHMuYyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocyl7XG4gIHJldHVybiBzLnRvVXRmMTYoKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZ1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmcocyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfYnl0ZXMocykge1xuICByZXR1cm4gKHMgaW5zdGFuY2VvZiBNbEJ5dGVzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX2J5dGVzX2NvbnRlbnQocykge1xuICBzd2l0Y2ggKHMudCAmIDYpIHtcbiAgZGVmYXVsdDogLyogUEFSVElBTCAqL1xuICAgIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIGNhc2UgMDogLyogQllURVMgKi9cbiAgICByZXR1cm4gcy5jO1xuICBjYXNlIDQ6XG4gICAgcmV0dXJuIHMuY1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfc3RyaW5nKHMpIHtcbiAgcmV0dXJuICh0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiAmJiAhL1teXFx4MDAtXFx4ZmZdLy50ZXN0KHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfaXNfbWxfYnl0ZXMocyk7XG59XG5cbi8vIFRoZSBmdW5jdGlvbnMgYmVsb3cgYXJlIGRlcHJlY2F0ZWRcblxuLy9Qcm92aWRlczogY2FtbF9qc190b19ieXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9qc190b19ieXRlX3N0cmluZyhzKSB7IHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9uZXdfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX25ld19zdHJpbmcgKHMpIHsgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF90b19qc19zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF90b19qc19zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc190b19zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX3RvX3N0cmluZyAocykge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocyk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1JhaXNlIGV4Y2VwdGlvblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX2NvbnN0YW50IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfY29uc3RhbnQgKHRhZykgeyB0aHJvdyB0YWc7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yZXR1cm5fZXhuX2NvbnN0YW50IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmV0dXJuX2V4bl9jb25zdGFudCAodGFnKSB7IHJldHVybiB0YWc7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX2FyZyAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX2FyZyAodGFnLCBhcmcpIHsgdGhyb3cgWzAsIHRhZywgYXJnXTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfYXJncyAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX2FyZ3MgKHRhZywgYXJncykgeyB0aHJvdyBbMCwgdGFnXS5jb25jYXQoYXJncyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZyAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX2FyZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX3N0cmluZyAodGFnLCBtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX2FyZyAodGFnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG1zZykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZhaWx3aXRoIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmFpbHdpdGggKG1zZykge1xuICBpZighY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlKVxuICAgIGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZT1bMjQ4LGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJGYWlsdXJlXCIpLC0zXTtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUsIG1zZyk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfaW52YWxpZF9hcmd1bWVudCAobXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5JbnZhbGlkX2FyZ3VtZW50LCBtc2cpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLkVuZF9vZl9maWxlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5EaXZpc2lvbl9ieV96ZXJvKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm90X2ZvdW5kICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLk5vdF9mb3VuZCk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbF9nZW4gKGNvbnN0LCBzaGFsbG93KVxuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpIHtcbiAgaWYoZi5mdW4pXG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZi5mdW4sIGFyZ3MpO1xuICAvL0ZJWE1FLCBjYW4gaGFwcGVuIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzXG4gIGlmKHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmO1xuICB2YXIgbiA9IGYubGVuZ3RoIHwgMDtcbiAgaWYobiA9PT0gMCkgcmV0dXJuIGYuYXBwbHkobnVsbCxhcmdzKTtcbiAgdmFyIGFyZ3NMZW4gPSBhcmdzLmxlbmd0aCB8IDA7XG4gIHZhciBkID0gbiAtIGFyZ3NMZW4gfCAwO1xuICBpZiAoZCA9PSAwKVxuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICBlbHNlIGlmIChkIDwgMCkge1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYuYXBwbHkobnVsbCxhcmdzLnNsaWNlKDAsbikpLGFyZ3Muc2xpY2UobikpO1xuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKXtcbiAgICAgIHZhciBleHRyYV9hcmdzID0gKGFyZ3VtZW50cy5sZW5ndGggPT0gMCk/MTphcmd1bWVudHMubGVuZ3RoO1xuICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3MubGVuZ3RoK2V4dHJhX2FyZ3MpO1xuICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkgbmFyZ3NbYXJncy5sZW5ndGgraV0gPSBhcmd1bWVudHNbaV07XG4gICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBuYXJncylcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZXNcbnZhciBjYW1sX25hbWVkX3ZhbHVlcyA9IHt9O1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlIChjb25zdCxjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlKG5tLHYpIHtcbiAgY2FtbF9uYW1lZF92YWx1ZXNbY2FtbF9qc2J5dGVzX29mX3N0cmluZyhubSldID0gdjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmFtZWRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWVzXG5mdW5jdGlvbiBjYW1sX25hbWVkX3ZhbHVlKG5tKSB7XG4gIHJldHVybiBjYW1sX25hbWVkX3ZhbHVlc1tubV1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9nbG9iYWxfZGF0YVxudmFyIGNhbWxfZ2xvYmFsX2RhdGEgPSBbMF07XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChjb25zdCwgc2hhbGxvdywgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX2dsb2JhbCAobiwgdiwgbmFtZV9vcHQpIHtcbiAgaWYobmFtZV9vcHQgJiYgZ2xvYmFsVGhpcy50b3BsZXZlbFJlbG9jKVxuICAgIG4gPSBnbG9iYWxUaGlzLnRvcGxldmVsUmVsb2MobmFtZV9vcHQpO1xuICBjYW1sX2dsb2JhbF9kYXRhW24gKyAxXSA9IHY7XG4gIGlmKG5hbWVfb3B0KSBjYW1sX2dsb2JhbF9kYXRhW25hbWVfb3B0XSA9IHY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2dsb2JhbF9kYXRhIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZ2V0X2dsb2JhbF9kYXRhICgpIHsgcmV0dXJuIGNhbWxfZ2xvYmFsX2RhdGE7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pc19wcmludGFibGUgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pc19wcmludGFibGUoYykgeyByZXR1cm4gKyhjID4gMzEgJiYgYyA8IDEyNyk7IH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gRm9ybWF0XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZm9ybWF0XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZm9ybWF0IChmbXQpIHtcbiAgZm10ID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhmbXQpO1xuICB2YXIgbGVuID0gZm10Lmxlbmd0aDtcbiAgaWYgKGxlbiA+IDMxKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJmb3JtYXRfaW50OiBmb3JtYXQgdG9vIGxvbmdcIik7XG4gIHZhciBmID1cbiAgICAgIHsganVzdGlmeTonKycsIHNpZ25zdHlsZTonLScsIGZpbGxlcjonICcsIGFsdGVybmF0ZTpmYWxzZSxcbiAgICAgICAgYmFzZTowLCBzaWduZWRjb252OmZhbHNlLCB3aWR0aDowLCB1cHBlcmNhc2U6ZmFsc2UsXG4gICAgICAgIHNpZ246MSwgcHJlYzotMSwgY29udjonZicgfTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBjID0gZm10LmNoYXJBdChpKTtcbiAgICBzd2l0Y2ggKGMpIHtcbiAgICBjYXNlICctJzpcbiAgICAgIGYuanVzdGlmeSA9ICctJzsgYnJlYWs7XG4gICAgY2FzZSAnKyc6IGNhc2UgJyAnOlxuICAgICAgZi5zaWduc3R5bGUgPSBjOyBicmVhaztcbiAgICBjYXNlICcwJzpcbiAgICAgIGYuZmlsbGVyID0gJzAnOyBicmVhaztcbiAgICBjYXNlICcjJzpcbiAgICAgIGYuYWx0ZXJuYXRlID0gdHJ1ZTsgYnJlYWs7XG4gICAgY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOlxuICAgIGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOlxuICAgICAgZi53aWR0aCA9IDA7XG4gICAgICB3aGlsZSAoYz1mbXQuY2hhckNvZGVBdChpKSAtIDQ4LCBjID49IDAgJiYgYyA8PSA5KSB7XG4gICAgICAgIGYud2lkdGggPSBmLndpZHRoICogMTAgKyBjOyBpKytcbiAgICAgIH1cbiAgICAgIGktLTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJy4nOlxuICAgICAgZi5wcmVjID0gMDtcbiAgICAgIGkrKztcbiAgICAgIHdoaWxlIChjPWZtdC5jaGFyQ29kZUF0KGkpIC0gNDgsIGMgPj0gMCAmJiBjIDw9IDkpIHtcbiAgICAgICAgZi5wcmVjID0gZi5wcmVjICogMTAgKyBjOyBpKytcbiAgICAgIH1cbiAgICAgIGktLTtcbiAgICBjYXNlICdkJzogY2FzZSAnaSc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgJ3UnOlxuICAgICAgZi5iYXNlID0gMTA7IGJyZWFrO1xuICAgIGNhc2UgJ3gnOlxuICAgICAgZi5iYXNlID0gMTY7IGJyZWFrO1xuICAgIGNhc2UgJ1gnOlxuICAgICAgZi5iYXNlID0gMTY7IGYudXBwZXJjYXNlID0gdHJ1ZTsgYnJlYWs7XG4gICAgY2FzZSAnbyc6XG4gICAgICBmLmJhc2UgPSA4OyBicmVhaztcbiAgICBjYXNlICdlJzogY2FzZSAnZic6IGNhc2UgJ2cnOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgZi5jb252ID0gYzsgYnJlYWs7XG4gICAgY2FzZSAnRSc6IGNhc2UgJ0YnOiBjYXNlICdHJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IGYudXBwZXJjYXNlID0gdHJ1ZTtcbiAgICAgIGYuY29udiA9IGMudG9Mb3dlckNhc2UgKCk7IGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCByYXdidWZmZXIpIHtcbiAgaWYgKGYudXBwZXJjYXNlKSByYXdidWZmZXIgPSByYXdidWZmZXIudG9VcHBlckNhc2UoKTtcbiAgdmFyIGxlbiA9IHJhd2J1ZmZlci5sZW5ndGg7XG4gIC8qIEFkanVzdCBsZW4gdG8gcmVmbGVjdCBhZGRpdGlvbmFsIGNoYXJzIChzaWduLCBldGMpICovXG4gIGlmIChmLnNpZ25lZGNvbnYgJiYgKGYuc2lnbiA8IDAgfHwgZi5zaWduc3R5bGUgIT0gJy0nKSkgbGVuKys7XG4gIGlmIChmLmFsdGVybmF0ZSkge1xuICAgIGlmIChmLmJhc2UgPT0gOCkgbGVuICs9IDE7XG4gICAgaWYgKGYuYmFzZSA9PSAxNikgbGVuICs9IDI7XG4gIH1cbiAgLyogRG8gdGhlIGZvcm1hdHRpbmcgKi9cbiAgdmFyIGJ1ZmZlciA9IFwiXCI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJysnICYmIGYuZmlsbGVyID09ICcgJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJyAnO1xuICBpZiAoZi5zaWduZWRjb252KSB7XG4gICAgaWYgKGYuc2lnbiA8IDApIGJ1ZmZlciArPSAnLSc7XG4gICAgZWxzZSBpZiAoZi5zaWduc3R5bGUgIT0gJy0nKSBidWZmZXIgKz0gZi5zaWduc3R5bGU7XG4gIH1cbiAgaWYgKGYuYWx0ZXJuYXRlICYmIGYuYmFzZSA9PSA4KSBidWZmZXIgKz0gJzAnO1xuICBpZiAoZi5hbHRlcm5hdGUgJiYgZi5iYXNlID09IDE2KSBidWZmZXIgKz0gXCIweFwiO1xuICBpZiAoZi5qdXN0aWZ5ID09ICcrJyAmJiBmLmZpbGxlciA9PSAnMCcpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcwJztcbiAgYnVmZmVyICs9IHJhd2J1ZmZlcjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnLScpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcgJztcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoYnVmZmVyKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBqc29vX2Zsb29yX2xvZzJcbnZhciBsb2cyX29rID0gTWF0aC5sb2cyICYmIE1hdGgubG9nMigxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNykgPT0gMTAyMFxuZnVuY3Rpb24ganNvb19mbG9vcl9sb2cyKHgpIHtcbiAgaWYobG9nMl9vaykgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5sb2cyKHgpKVxuICB2YXIgaSA9IDA7XG4gIGlmICh4ID09IDApIHJldHVybiAtSW5maW5pdHk7XG4gIGlmKHg+PTEpIHt3aGlsZSAoeD49Mikge3gvPTI7IGkrK30gfVxuICBlbHNlIHt3aGlsZSAoeCA8IDEpIHt4Kj0yOyBpLS19IH07XG4gIHJldHVybiBpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMiwgY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGlcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAoeCkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDEsIDAsIDB4N2ZmMCk7XG4gICAgaWYgKHggPiAwKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDAsIDAsIDB4N2ZmMClcbiAgICBlbHNlXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMCwgMCwgMHhmZmYwKVxuICB9XG4gIHZhciBzaWduID0gKHg9PTAgJiYgMS94ID09IC1JbmZpbml0eSk/MHg4MDAwOih4Pj0wKT8wOjB4ODAwMDtcbiAgaWYgKHNpZ24pIHggPSAteDtcbiAgLy8gSW50NjQuYml0c19vZl9mbG9hdCAxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNyA9IDB4N2ZiMDAwMDAwMDAwMDAwMExcbiAgLy8gdXNpbmcgTWF0aC5MT0cyRSpNYXRoLmxvZyh4KSBpbiBwbGFjZSBvZiBNYXRoLmxvZzIgcmVzdWx0IGluIHByZWNpc2lvbiBsb3N0XG4gIHZhciBleHAgPSBqc29vX2Zsb29yX2xvZzIoeCkgKyAxMDIzO1xuICBpZiAoZXhwIDw9IDApIHtcbiAgICBleHAgPSAwO1xuICAgIHggLz0gTWF0aC5wb3coMiwtMTAyNik7XG4gIH0gZWxzZSB7XG4gICAgeCAvPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgICBpZiAoeCA8IDE2KSB7XG4gICAgICB4ICo9IDI7IGV4cCAtPTE7IH1cbiAgICBpZiAoZXhwID09IDApIHtcbiAgICAgIHggLz0gMjsgfVxuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwyNCk7XG4gIHZhciByMyA9IHh8MDtcbiAgeCA9ICh4IC0gcjMpICogaztcbiAgdmFyIHIyID0geHwwO1xuICB4ID0gKHggLSByMikgKiBrO1xuICB2YXIgcjEgPSB4fDA7XG4gIHIzID0gKHIzICYweGYpIHwgc2lnbiB8IGV4cCA8PCA0O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkocjEsIHIyLCByMyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyXG5mdW5jdGlvbiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQgKHgpIHtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IGdsb2JhbFRoaXMuRmxvYXQzMkFycmF5KDEpO1xuICBmbG9hdDMyYVswXSA9IHg7XG4gIHZhciBpbnQzMmEgPSBuZXcgZ2xvYmFsVGhpcy5JbnQzMkFycmF5KGZsb2F0MzJhLmJ1ZmZlcik7XG4gIHJldHVybiBpbnQzMmFbMF0gfCAwO1xufVxuXG4vL0ZQIGxpdGVyYWxzIGNhbiBiZSB3cml0dGVuIHVzaW5nIHRoZSBoZXhhZGVjaW1hbFxuLy9ub3RhdGlvbiAweDxtYW50aXNzYSBpbiBoZXg+cDxleHBvbmVudD4gZnJvbSBJU08gQzk5LlxuLy9odHRwczovL2dpdGh1Yi5jb20vZGFua29nYWkvanMtaGV4ZmxvYXQvYmxvYi9tYXN0ZXIvaGV4ZmxvYXQuanNcbi8vUHJvdmlkZXM6IGNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZywgY2FtbF9zdHJfcmVwZWF0XG5mdW5jdGlvbiBjYW1sX2hleHN0cmluZ19vZl9mbG9hdCAoeCwgcHJlYywgc3R5bGUpIHtcbiAgaWYgKCFpc0Zpbml0ZSh4KSkge1xuICAgIGlmIChpc05hTih4KSkgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKFwibmFuXCIpO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoKHggPiAwKT9cImluZmluaXR5XCI6XCItaW5maW5pdHlcIik7XG4gIH1cbiAgdmFyIHNpZ24gPSAoeD09MCAmJiAxL3ggPT0gLUluZmluaXR5KT8xOih4Pj0wKT8wOjE7XG4gIGlmKHNpZ24pIHggPSAteDtcbiAgdmFyIGV4cCA9IDA7XG4gIGlmICh4ID09IDApIHsgfVxuICBlbHNlIGlmICh4IDwgMSkge1xuICAgIHdoaWxlICh4IDwgMSAmJiBleHAgPiAtMTAyMikgIHsgeCAqPSAyOyBleHAtLSB9XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHggPj0gMikgeyB4IC89IDI7IGV4cCsrIH1cbiAgfVxuICB2YXIgZXhwX3NpZ24gPSBleHAgPCAwID8gJycgOiAnKyc7XG4gIHZhciBzaWduX3N0ciA9ICcnO1xuICBpZiAoc2lnbikgc2lnbl9zdHIgPSAnLSdcbiAgZWxzZSB7XG4gICAgc3dpdGNoKHN0eWxlKXtcbiAgICBjYXNlIDQzIC8qICcrJyAqLzogc2lnbl9zdHIgPSAnKyc7IGJyZWFrO1xuICAgIGNhc2UgMzIgLyogJyAnICovOiBzaWduX3N0ciA9ICcgJzsgYnJlYWs7XG4gICAgZGVmYXVsdDogYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChwcmVjID49IDAgJiYgcHJlYyA8IDEzKSB7XG4gICAgLyogSWYgYSBwcmVjaXNpb24gaXMgZ2l2ZW4sIGFuZCBpcyBzbWFsbCwgcm91bmQgbWFudGlzc2EgYWNjb3JkaW5nbHkgKi9cbiAgICB2YXIgY3N0ID0gTWF0aC5wb3coMixwcmVjICogNCk7XG4gICAgeCA9IE1hdGgucm91bmQoeCAqIGNzdCkgLyBjc3Q7XG4gIH1cbiAgdmFyIHhfc3RyID0geC50b1N0cmluZygxNik7XG4gIGlmKHByZWMgPj0gMCl7XG4gICAgdmFyIGlkeCA9IHhfc3RyLmluZGV4T2YoJy4nKTtcbiAgICBpZihpZHg8MCkge1xuICAgICAgeF9zdHIgKz0gJy4nICsgY2FtbF9zdHJfcmVwZWF0KHByZWMsICcwJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFyIHNpemUgPSBpZHgrMStwcmVjO1xuICAgICAgaWYoeF9zdHIubGVuZ3RoIDwgc2l6ZSlcbiAgICAgICAgeF9zdHIgKz0gY2FtbF9zdHJfcmVwZWF0KHNpemUgLSB4X3N0ci5sZW5ndGgsICcwJyk7XG4gICAgICBlbHNlXG4gICAgICAgIHhfc3RyID0geF9zdHIuc3Vic3RyKDAsc2l6ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoc2lnbl9zdHIgKyAnMHgnICsgeF9zdHIgKyAncCcgKyBleHBfc2lnbiArIGV4cC50b1N0cmluZygxMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyAoeCkge1xuICB2YXIgbG8gPSB4LmxvO1xuICB2YXIgbWkgPSB4Lm1pO1xuICB2YXIgaGkgPSB4LmhpO1xuICB2YXIgZXhwID0gKGhpICYgMHg3ZmZmKSA+PiA0O1xuICBpZiAoZXhwID09IDIwNDcpIHtcbiAgICBpZiAoKGxvfG1pfChoaSYweGYpKSA9PSAwKVxuICAgICAgcmV0dXJuIChoaSAmIDB4ODAwMCk/KC1JbmZpbml0eSk6SW5maW5pdHk7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIE5hTjtcbiAgfVxuICB2YXIgayA9IE1hdGgucG93KDIsLTI0KTtcbiAgdmFyIHJlcyA9IChsbyprK21pKSprKyhoaSYweGYpO1xuICBpZiAoZXhwID4gMCkge1xuICAgIHJlcyArPSAxNjtcbiAgICByZXMgKj0gTWF0aC5wb3coMixleHAtMTAyNyk7XG4gIH0gZWxzZVxuICAgIHJlcyAqPSBNYXRoLnBvdygyLC0xMDI2KTtcbiAgaWYgKGhpICYgMHg4MDAwKSByZXMgPSAtIHJlcztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uZXh0YWZ0ZXJfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cywgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2ludDY0X2FkZCwgY2FtbF9pbnQ2NF9zdWIsY2FtbF9pbnQ2NF9vZl9pbnQzMlxuZnVuY3Rpb24gY2FtbF9uZXh0YWZ0ZXJfZmxvYXQgKHgseSkge1xuICBpZihpc05hTih4KSB8fCBpc05hTih5KSkgcmV0dXJuIE5hTjtcbiAgaWYoeD09eSkgcmV0dXJuIHk7XG4gIGlmKHg9PTApe1xuICAgIGlmKHkgPCAwKVxuICAgICAgcmV0dXJuIC1NYXRoLnBvdygyLCAtMTA3NClcbiAgICBlbHNlXG4gICAgICByZXR1cm4gTWF0aC5wb3coMiwgLTEwNzQpXG4gIH1cbiAgdmFyIGJpdHMgPSBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoeCk7XG4gIHZhciBvbmUgPSBjYW1sX2ludDY0X29mX2ludDMyKDEpO1xuICBpZiAoKHg8eSkgPT0gKHg+MCkpXG4gICAgYml0cyA9IGNhbWxfaW50NjRfYWRkKGJpdHMsIG9uZSlcbiAgZWxzZVxuICAgIGJpdHMgPSBjYW1sX2ludDY0X3N1YihiaXRzLCBvbmUpXG4gIHJldHVybiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoYml0cyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdHJ1bmNfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfdHJ1bmNfZmxvYXQoeCl7XG4gIHJldHVybiBNYXRoLnRydW5jKHgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyAoeCkge1xuICB2YXIgaW50MzJhID0gbmV3IGdsb2JhbFRoaXMuSW50MzJBcnJheSgxKTtcbiAgaW50MzJhWzBdID0geDtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IGdsb2JhbFRoaXMuRmxvYXQzMkFycmF5KGludDMyYS5idWZmZXIpO1xuICByZXR1cm4gZmxvYXQzMmFbMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2xhc3NpZnlfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY2xhc3NpZnlfZmxvYXQgKHgpIHtcbiAgaWYgKGlzRmluaXRlICh4KSkge1xuICAgIGlmIChNYXRoLmFicyh4KSA+PSAyLjIyNTA3Mzg1ODUwNzIwMTRlLTMwOCkgcmV0dXJuIDA7XG4gICAgaWYgKHggIT0gMCkgcmV0dXJuIDE7XG4gICAgcmV0dXJuIDI7XG4gIH1cbiAgcmV0dXJuIGlzTmFOKHgpPzQ6Mztcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbW9kZl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tb2RmX2Zsb2F0ICh4KSB7XG4gIGlmIChpc0Zpbml0ZSAoeCkpIHtcbiAgICB2YXIgbmVnID0gKDEveCkgPCAwO1xuICAgIHggPSBNYXRoLmFicyh4KTtcbiAgICB2YXIgaSA9IE1hdGguZmxvb3IgKHgpO1xuICAgIHZhciBmID0geCAtIGk7XG4gICAgaWYgKG5lZykgeyBpID0gLWk7IGYgPSAtZjsgfVxuICAgIHJldHVybiBbMCwgZiwgaV07XG4gIH1cbiAgaWYgKGlzTmFOICh4KSkgcmV0dXJuIFswLCBOYU4sIE5hTl07XG4gIHJldHVybiBbMCwgMS94LCB4XTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbGRleHBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbGRleHBfZmxvYXQgKHgsZXhwKSB7XG4gIGV4cCB8PSAwO1xuICBpZiAoZXhwID4gMTAyMykge1xuICAgIGV4cCAtPSAxMDIzO1xuICAgIHggKj0gTWF0aC5wb3coMiwgMTAyMyk7XG4gICAgaWYgKGV4cCA+IDEwMjMpIHsgIC8vIGluIGNhc2UgeCBpcyBzdWJub3JtYWxcbiAgICAgIGV4cCAtPSAxMDIzO1xuICAgICAgeCAqPSBNYXRoLnBvdygyLCAxMDIzKTtcbiAgICB9XG4gIH1cbiAgaWYgKGV4cCA8IC0xMDIzKSB7XG4gICAgZXhwICs9IDEwMjM7XG4gICAgeCAqPSBNYXRoLnBvdygyLCAtMTAyMyk7XG4gIH1cbiAgeCAqPSBNYXRoLnBvdygyLCBleHApO1xuICByZXR1cm4geDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZnJleHBfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMlxuZnVuY3Rpb24gY2FtbF9mcmV4cF9mbG9hdCAoeCkge1xuICBpZiAoKHggPT0gMCkgfHwgIWlzRmluaXRlKHgpKSByZXR1cm4gWzAsIHgsIDBdO1xuICB2YXIgbmVnID0geCA8IDA7XG4gIGlmIChuZWcpIHggPSAtIHg7XG4gIHZhciBleHAgPSBNYXRoLm1heCgtMTAyMywganNvb19mbG9vcl9sb2cyKHgpICsgMSk7XG4gIHggKj0gTWF0aC5wb3coMiwtZXhwKTtcbiAgd2hpbGUgKHggPCAwLjUpIHtcbiAgICB4ICo9IDI7XG4gICAgZXhwLS07XG4gIH1cbiAgd2hpbGUgKHggPj0gMSkge1xuICAgIHggKj0gMC41O1xuICAgIGV4cCsrO1xuICB9XG4gIGlmIChuZWcpIHggPSAtIHg7XG4gIHJldHVybiBbMCwgeCwgZXhwXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9jb21wYXJlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Zsb2F0X2NvbXBhcmUgKHgsIHkpIHtcbiAgaWYgKHggPT09IHkpIHJldHVybiAwO1xuICBpZiAoeCA8IHkpIHJldHVybiAtMTtcbiAgaWYgKHggPiB5KSByZXR1cm4gMTtcbiAgaWYgKHggPT09IHgpIHJldHVybiAxO1xuICBpZiAoeSA9PT0geSkgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb3B5c2lnbl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb3B5c2lnbl9mbG9hdCAoeCwgeSkge1xuICBpZiAoeSA9PSAwKSB5ID0gMSAvIHk7XG4gIHggPSBNYXRoLmFicyh4KTtcbiAgcmV0dXJuICh5IDwgMCk/KC14KTp4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NpZ25iaXRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc2lnbmJpdF9mbG9hdCh4KSB7XG4gIGlmICh4ID09IDApIHggPSAxIC8geDtcbiAgcmV0dXJuICh4IDwgMCk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V4cG0xX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2V4cG0xX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmV4cG0xKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2V4cDJfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXhwMl9mbG9hdCh4KSB7IHJldHVybiBNYXRoLnBvdygyLCB4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cxcF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cxcF9mbG9hdCh4KSB7IHJldHVybiBNYXRoLmxvZzFwKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzJfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMl9mbG9hdCh4KSB7IHJldHVybiBNYXRoLmxvZzIoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaHlwb3RfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaHlwb3RfZmxvYXQgKHgsIHkpIHsgcmV0dXJuIE1hdGguaHlwb3QoeCwgeSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMTBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMTBfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgubG9nMTAoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY29zaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb3NoX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmNvc2goeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYWNvc2hfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYWNvc2hfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYWNvc2goeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc2luaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9zaW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnNpbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYXNpbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYXNpbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYXNpbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfdGFuaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF90YW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnRhbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYXRhbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYXRhbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYXRhbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfcm91bmRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfcm91bmRfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgucm91bmQoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY2JydF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jYnJ0X2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmNicnQoeCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9lcmZfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXJmX2Zsb2F0KHgpIHtcbiAgdmFyIGExID0gMC4yNTQ4Mjk1OTI7XG4gIHZhciBhMiA9IC0wLjI4NDQ5NjczNjtcbiAgdmFyIGEzID0gMS40MjE0MTM3NDE7XG4gIHZhciBhNCA9IC0xLjQ1MzE1MjAyNztcbiAgdmFyIGE1ID0gMS4wNjE0MDU0Mjk7XG4gIHZhciBwID0gMC4zMjc1OTExO1xuXG4gIHZhciBzaWduID0gMTtcbiAgaWYgKHggPCAwKSB7XG4gICAgc2lnbiA9IC0xO1xuICB9XG4gIHggPSBNYXRoLmFicyh4KTtcbiAgdmFyIHQgPSAxLjAgLyAoMS4wICsgcCAqIHgpO1xuICB2YXIgeSA9IDEuMCAtICgoKChhNSAqIHQgKyBhNCkgKiB0ICsgYTMpICogdCArIGEyKSAqIHQgKyBhMSkgKiB0ICogTWF0aC5leHAoLXggKiB4KTtcblxuICByZXR1cm4gc2lnbiAqIHk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXJmY19mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9lcmZfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfZXJmY19mbG9hdCh4KSB7XG4gIHJldHVybiAxIC0gY2FtbF9lcmZfZmxvYXQoeCk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9mbWFfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZm1hX2Zsb2F0KHgsIHksIHopIHtcbiAgdmFyIFNQTElUID0gTWF0aC5wb3coMiwgMjcpICsgMTtcbiAgdmFyIE1JTl9WQUxVRSA9IE1hdGgucG93KDIsIC0xMDIyKTtcbiAgdmFyIEVQU0lMT04gPSBNYXRoLnBvdygyLCAtNTIpO1xuICB2YXIgQyA9IDQxNjtcbiAgdmFyIEEgPSBNYXRoLnBvdygyLCArQyk7XG4gIHZhciBCID0gTWF0aC5wb3coMiwgLUMpO1xuXG4gIGZ1bmN0aW9uIG11bHRpcGx5IChhLCBiKSB7XG4gICAgdmFyIGF0ID0gU1BMSVQgKiBhO1xuICAgIHZhciBhaGkgPSBhdCAtIChhdCAtIGEpO1xuICAgIHZhciBhbG8gPSBhIC0gYWhpO1xuICAgIHZhciBidCA9IFNQTElUICogYjtcbiAgICB2YXIgYmhpID0gYnQgLSAoYnQgLSBiKTtcbiAgICB2YXIgYmxvID0gYiAtIGJoaTtcbiAgICB2YXIgcCA9IGEgKiBiO1xuICAgIHZhciBlID0gKChhaGkgKiBiaGkgLSBwKSArIGFoaSAqIGJsbyArIGFsbyAqIGJoaSkgKyBhbG8gKiBibG87XG4gICAgcmV0dXJuIHtcbiAgICAgIHA6IHAsXG4gICAgICBlOiBlXG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGQgKGEsIGIpIHtcbiAgICB2YXIgcyA9IGEgKyBiO1xuICAgIHZhciB2ID0gcyAtIGE7XG4gICAgdmFyIGUgPSAoYSAtIChzIC0gdikpICsgKGIgLSB2KTtcbiAgICByZXR1cm4ge1xuICAgICAgczogcyxcbiAgICAgIGU6IGVcbiAgICB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIGFkanVzdCAoeCwgeSkge1xuICAgIHJldHVybiB4ICE9PSAwICYmIHkgIT09IDAgJiYgU1BMSVQgKiB4IC0gKFNQTElUICogeCAtIHgpID09PSB4ID8geCAqICgxICsgKHggPCAwID8gLTEgOiArMSkgKiAoeSA8IDAgPyAtMSA6ICsxKSAqIEVQU0lMT04pIDogeDtcbiAgfTtcblxuICBpZiAoeCA9PT0gMCB8fCB4ICE9PSB4IHx8IHggPT09ICsxIC8gMCB8fCB4ID09PSAtMSAvIDAgfHxcbiAgICAgIHkgPT09IDAgfHwgeSAhPT0geSB8fCB5ID09PSArMSAvIDAgfHwgeSA9PT0gLTEgLyAwKSB7XG4gICAgcmV0dXJuIHggKiB5ICsgejtcbiAgfVxuICBpZiAoeiA9PT0gMCkge1xuICAgIHJldHVybiB4ICogeTtcbiAgfVxuICBpZiAoeiAhPT0geiB8fCB6ID09PSArMSAvIDAgfHwgeiA9PT0gLTEgLyAwKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cblxuICB2YXIgc2NhbGUgPSAxO1xuICB3aGlsZSAoTWF0aC5hYnMoeCkgPiBBKSB7XG4gICAgc2NhbGUgKj0gQTtcbiAgICB4ICo9IEI7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHkpID4gQSkge1xuICAgIHNjYWxlICo9IEE7XG4gICAgeSAqPSBCO1xuICB9XG4gIGlmIChzY2FsZSA9PT0gMSAvIDApIHtcbiAgICByZXR1cm4geCAqIHkgKiBzY2FsZTtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeCkgPCBCKSB7XG4gICAgc2NhbGUgKj0gQjtcbiAgICB4ICo9IEE7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHkpIDwgQikge1xuICAgIHNjYWxlICo9IEI7XG4gICAgeSAqPSBBO1xuICB9XG4gIGlmIChzY2FsZSA9PT0gMCkge1xuICAgIHJldHVybiB6O1xuICB9XG5cbiAgdmFyIHhzID0geDtcbiAgdmFyIHlzID0geTtcbiAgdmFyIHpzID0geiAvIHNjYWxlO1xuXG4gIGlmIChNYXRoLmFicyh6cykgPiBNYXRoLmFicyh4cyAqIHlzKSAqIDQgLyBFUFNJTE9OKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cbiAgaWYgKE1hdGguYWJzKHpzKSA8IE1hdGguYWJzKHhzICogeXMpICogRVBTSUxPTiAvIDQgKiBFUFNJTE9OIC8gNCkge1xuICAgIHpzID0gKHogPCAwID8gLTEgOiArMSkgKiBNSU5fVkFMVUU7XG4gIH1cblxuICB2YXIgeHkgPSBtdWx0aXBseSh4cywgeXMpO1xuICB2YXIgcyA9IGFkZCh4eS5wLCB6cyk7XG4gIHZhciB1ID0gYWRkKHh5LmUsIHMuZSk7XG4gIHZhciBpID0gYWRkKHMucywgdS5zKTtcblxuICB2YXIgZiA9IGkucyArIGFkanVzdChpLmUsIHUuZSk7XG4gIGlmIChmID09PSAwKSB7XG4gICAgcmV0dXJuIGY7XG4gIH1cblxuICB2YXIgZnMgPSBmICogc2NhbGU7XG4gIGlmIChNYXRoLmFicyhmcykgPiBNSU5fVkFMVUUpIHtcbiAgICByZXR1cm4gZnM7XG4gIH1cblxuICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZXJlIHdhcyBleHRyYSByb3VuZGluZyBmb3IgYSBkZW5vcm1hbGl6ZWQgdmFsdWUuXG4gIHJldHVybiBmcyArIGFkanVzdChmIC0gZnMgLyBzY2FsZSwgaS5lKSAqIHNjYWxlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2Zsb2F0IChmbXQsIHgpIHtcbiAgZnVuY3Rpb24gdG9GaXhlZCh4LGRwKSB7XG4gICAgaWYgKE1hdGguYWJzKHgpIDwgMS4wKSB7XG4gICAgICByZXR1cm4geC50b0ZpeGVkKGRwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGUgPSBwYXJzZUludCh4LnRvU3RyaW5nKCkuc3BsaXQoJysnKVsxXSk7XG4gICAgICBpZiAoZSA+IDIwKSB7XG4gICAgICAgIGUgLT0gMjA7XG4gICAgICAgIHggLz0gTWF0aC5wb3coMTAsZSk7XG4gICAgICAgIHggKz0gKG5ldyBBcnJheShlKzEpKS5qb2luKCcwJyk7XG4gICAgICAgIGlmKGRwID4gMCkge1xuICAgICAgICAgIHggPSB4ICsgJy4nICsgKG5ldyBBcnJheShkcCsxKSkuam9pbignMCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4O1xuICAgICAgfVxuICAgICAgZWxzZSByZXR1cm4geC50b0ZpeGVkKGRwKVxuICAgIH1cbiAgfVxuICB2YXIgcywgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIHZhciBwcmVjID0gKGYucHJlYyA8IDApPzY6Zi5wcmVjO1xuICBpZiAoeCA8IDAgfHwgKHggPT0gMCAmJiAxL3ggPT0gLUluZmluaXR5KSkgeyBmLnNpZ24gPSAtMTsgeCA9IC14OyB9XG4gIGlmIChpc05hTih4KSkgeyBzID0gXCJuYW5cIjsgZi5maWxsZXIgPSAnICc7IH1cbiAgZWxzZSBpZiAoIWlzRmluaXRlKHgpKSB7IHMgPSBcImluZlwiOyBmLmZpbGxlciA9ICcgJzsgfVxuICBlbHNlXG4gICAgc3dpdGNoIChmLmNvbnYpIHtcbiAgICBjYXNlICdlJzpcbiAgICAgIHZhciBzID0geC50b0V4cG9uZW50aWFsKHByZWMpO1xuICAgICAgLy8gZXhwb25lbnQgc2hvdWxkIGJlIGF0IGxlYXN0IHR3byBkaWdpdHNcbiAgICAgIHZhciBpID0gcy5sZW5ndGg7XG4gICAgICBpZiAocy5jaGFyQXQoaSAtIDMpID09ICdlJylcbiAgICAgICAgcyA9IHMuc2xpY2UgKDAsIGkgLSAxKSArICcwJyArIHMuc2xpY2UgKGkgLSAxKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2YnOlxuICAgICAgcyA9IHRvRml4ZWQoeCwgcHJlYyk7IGJyZWFrO1xuICAgIGNhc2UgJ2cnOlxuICAgICAgcHJlYyA9IHByZWM/cHJlYzoxO1xuICAgICAgcyA9IHgudG9FeHBvbmVudGlhbChwcmVjIC0gMSk7XG4gICAgICB2YXIgaiA9IHMuaW5kZXhPZignZScpO1xuICAgICAgdmFyIGV4cCA9ICtzLnNsaWNlKGogKyAxKTtcbiAgICAgIGlmIChleHAgPCAtNCB8fCB4ID49IDFlMjEgfHwgeC50b0ZpeGVkKDApLmxlbmd0aCA+IHByZWMpIHtcbiAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHplcm9lc1xuICAgICAgICB2YXIgaSA9IGogLSAxOyB3aGlsZSAocy5jaGFyQXQoaSkgPT0gJzAnKSBpLS07XG4gICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSAnLicpIGktLTtcbiAgICAgICAgcyA9IHMuc2xpY2UoMCwgaSArIDEpICsgcy5zbGljZShqKTtcbiAgICAgICAgaSA9IHMubGVuZ3RoO1xuICAgICAgICBpZiAocy5jaGFyQXQoaSAtIDMpID09ICdlJylcbiAgICAgICAgICBzID0gcy5zbGljZSAoMCwgaSAtIDEpICsgJzAnICsgcy5zbGljZSAoaSAtIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBwID0gcHJlYztcbiAgICAgICAgaWYgKGV4cCA8IDApIHsgcCAtPSBleHAgKyAxOyBzID0geC50b0ZpeGVkKHApOyB9XG4gICAgICAgIGVsc2Ugd2hpbGUgKHMgPSB4LnRvRml4ZWQocCksIHMubGVuZ3RoID4gcHJlYyArIDEpIHAtLTtcbiAgICAgICAgaWYgKHApIHtcbiAgICAgICAgICAvLyByZW1vdmUgdHJhaWxpbmcgemVyb2VzXG4gICAgICAgICAgdmFyIGkgPSBzLmxlbmd0aCAtIDE7IHdoaWxlIChzLmNoYXJBdChpKSA9PSAnMCcpIGktLTtcbiAgICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gJy4nKSBpLS07XG4gICAgICAgICAgcyA9IHMuc2xpY2UoMCwgaSArIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X29mX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2Zsb2F0X29mX3N0cmluZyhzKSB7XG4gIHZhciByZXM7XG4gIHMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpXG4gIHJlcyA9ICtzO1xuICBpZiAoKHMubGVuZ3RoID4gMCkgJiYgKHJlcyA9PT0gcmVzKSkgcmV0dXJuIHJlcztcbiAgcyA9IHMucmVwbGFjZSgvXy9nLFwiXCIpO1xuICByZXMgPSArcztcbiAgaWYgKCgocy5sZW5ndGggPiAwKSAmJiAocmVzID09PSByZXMpKSB8fCAvXlsrLV0/bmFuJC9pLnRlc3QocykpIHJldHVybiByZXM7XG4gIHZhciBtID0gL14gKihbKy1dPykweChbMC05YS1mXSspXFwuPyhbMC05YS1mXSopKHAoWystXT9bMC05XSspKT8vaS5leGVjKHMpO1xuICAvLyAgICAgICAgICAxICAgICAgICAyICAgICAgICAgICAgIDMgICAgICAgICAgIDVcbiAgaWYobSl7XG4gICAgdmFyIG0zID0gbVszXS5yZXBsYWNlKC8wKyQvLCcnKTtcbiAgICB2YXIgbWFudGlzc2EgPSBwYXJzZUludChtWzFdICsgbVsyXSArIG0zLCAxNik7XG4gICAgdmFyIGV4cG9uZW50ID0gKG1bNV18MCkgLSA0Km0zLmxlbmd0aDtcbiAgICByZXMgPSBtYW50aXNzYSAqIE1hdGgucG93KDIsIGV4cG9uZW50KTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGlmKC9eXFwrP2luZihpbml0eSk/JC9pLnRlc3QocykpIHJldHVybiBJbmZpbml0eTtcbiAgaWYoL14taW5mKGluaXR5KT8kL2kudGVzdChzKSkgcmV0dXJuIC1JbmZpbml0eTtcbiAgY2FtbF9mYWlsd2l0aChcImZsb2F0X29mX3N0cmluZ1wiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiBmc19ub2RlX3N1cHBvcnRlZCAoKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MudmVyc2lvbnMgIT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnKVxufVxuLy9Qcm92aWRlczogZnNfbm9kZV9zdXBwb3J0ZWRcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGZzX25vZGVfc3VwcG9ydGVkICgpIHtcbiAgcmV0dXJuIGZhbHNlXG59XG5cblxuLy9Qcm92aWRlczogTWxOb2RlRGV2aWNlXG4vL1JlcXVpcmVzOiBNbE5vZGVGaWxlLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV93aXRoX2FyZ3Ncbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIE1sTm9kZURldmljZShyb290KSB7XG4gIHRoaXMuZnMgPSByZXF1aXJlKCdmcycpO1xuICB0aGlzLnJvb3QgPSByb290O1xufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ubSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuICh0aGlzLnJvb3QgKyBuYW1lKTtcbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubShuYW1lKSk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ta2RpciA9IGZ1bmN0aW9uKG5hbWUsIG1vZGUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLm1rZGlyU3luYyh0aGlzLm5tKG5hbWUpLHttb2RlOm1vZGV9KTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJtZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMucm1kaXJTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiAwXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVhZGRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5yZWFkZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5pc19kaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNEaXJlY3RvcnkoKT8xOjA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS51bmxpbmsgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGIgPSB0aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubShuYW1lKSk/MTowO1xuICAgIHRoaXMuZnMudW5saW5rU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gYjtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZiwgcmFpc2VfdW5peCkge1xuICB2YXIgY29uc3RzID0gcmVxdWlyZSgnY29uc3RhbnRzJyk7XG4gIHZhciByZXMgPSAwO1xuICBmb3IodmFyIGtleSBpbiBmKXtcbiAgICBzd2l0Y2goa2V5KXtcbiAgICBjYXNlIFwicmRvbmx5XCIgIDogcmVzIHw9IGNvbnN0cy5PX1JET05MWTsgYnJlYWs7XG4gICAgY2FzZSBcIndyb25seVwiICA6IHJlcyB8PSBjb25zdHMuT19XUk9OTFk7IGJyZWFrO1xuICAgIGNhc2UgXCJhcHBlbmRcIiAgOlxuICAgICAgcmVzIHw9IGNvbnN0cy5PX1dST05MWSB8IGNvbnN0cy5PX0FQUEVORDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjcmVhdGVcIiAgIDogcmVzIHw9IGNvbnN0cy5PX0NSRUFUOyAgICBicmVhaztcbiAgICBjYXNlIFwidHJ1bmNhdGVcIiA6IHJlcyB8PSBjb25zdHMuT19UUlVOQzsgICAgYnJlYWs7XG4gICAgY2FzZSBcImV4Y2xcIiAgICAgOiByZXMgfD0gY29uc3RzLk9fRVhDTDsgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJiaW5hcnlcIiAgIDogcmVzIHw9IGNvbnN0cy5PX0JJTkFSWTsgICBicmVhaztcbiAgICBjYXNlIFwidGV4dFwiICAgICA6IHJlcyB8PSBjb25zdHMuT19URVhUOyAgICAgYnJlYWs7XG4gICAgY2FzZSBcIm5vbmJsb2NrXCIgOiByZXMgfD0gY29uc3RzLk9fTk9OQkxPQ0s7IGJyZWFrO1xuICAgIH1cbiAgfVxuICB0cnkge1xuICAgIHZhciBmZCA9IHRoaXMuZnMub3BlblN5bmModGhpcy5ubShuYW1lKSwgcmVzKTtcbiAgICByZXR1cm4gbmV3IE1sTm9kZUZpbGUoZmQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVuYW1lID0gZnVuY3Rpb24obywgbiwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMucmVuYW1lU3luYyh0aGlzLm5tKG8pLCB0aGlzLm5tKG4pKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zdGF0ID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBqc19zdGF0cyA9IHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHNfZnJvbV9qcyhqc19zdGF0cyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubHN0YXQgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGpzX3N0YXRzID0gdGhpcy5mcy5sc3RhdFN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHNfZnJvbV9qcyhqc19zdGF0cyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3ltbGluayA9IGZ1bmN0aW9uKHRvX2RpciwgdGFyZ2V0LCBwYXRoLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5zeW1saW5rU3luYyh0aGlzLm5tKHRhcmdldCksIHRoaXMubm0ocGF0aCksIHRvX2RpciA/ICdkaXInIDogJ2ZpbGUnKTtcbiAgICByZXR1cm4gMDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZWFkbGluayA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgbGluayA9IHRoaXMuZnMucmVhZGxpbmtTeW5jKHRoaXMubm0obmFtZSksICd1dGY4Jyk7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGxpbmspO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJhaXNlX25vZGVqc19lcnJvciA9IGZ1bmN0aW9uKGVyciwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IGNhbWxfbmFtZWRfdmFsdWUoXCJVbml4LlVuaXhfZXJyb3JcIik7XG4gIGlmIChyYWlzZV91bml4ICYmIHVuaXhfZXJyb3IpIHtcbiAgICB2YXIgYXJncyA9IG1ha2VfdW5peF9lcnJfYXJncyhlcnIuY29kZSwgZXJyLnN5c2NhbGwsIGVyci5wYXRoLCBlcnIuZXJybm8pO1xuICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zdGF0c19mcm9tX2pzID0gZnVuY3Rpb24oanNfc3RhdHMpIHtcbiAgLyogPT09VW5peC5maWxlX2tpbmQ9PT1cbiAgICogdHlwZSBmaWxlX2tpbmQgPVxuICAgKiAgICAgU19SRUcgICAgICAgICAgICAgICAgICAgICAgICgqKiBSZWd1bGFyIGZpbGUgKilcbiAgICogICB8IFNfRElSICAgICAgICAgICAgICAgICAgICAgICAoKiogRGlyZWN0b3J5ICopXG4gICAqICAgfCBTX0NIUiAgICAgICAgICAgICAgICAgICAgICAgKCoqIENoYXJhY3RlciBkZXZpY2UgKilcbiAgICogICB8IFNfQkxLICAgICAgICAgICAgICAgICAgICAgICAoKiogQmxvY2sgZGV2aWNlICopXG4gICAqICAgfCBTX0xOSyAgICAgICAgICAgICAgICAgICAgICAgKCoqIFN5bWJvbGljIGxpbmsgKilcbiAgICogICB8IFNfRklGTyAgICAgICAgICAgICAgICAgICAgICAoKiogTmFtZWQgcGlwZSAqKVxuICAgKiAgIHwgU19TT0NLICAgICAgICAgICAgICAgICAgICAgICgqKiBTb2NrZXQgKilcbiAgICovXG4gIHZhciBmaWxlX2tpbmQ7XG4gIGlmIChqc19zdGF0cy5pc0ZpbGUoKSkge1xuICAgIGZpbGVfa2luZCA9IDA7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVfa2luZCA9IDE7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNDaGFyYWN0ZXJEZXZpY2UoKSkge1xuICAgIGZpbGVfa2luZCA9IDI7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNCbG9ja0RldmljZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMztcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgZmlsZV9raW5kID0gNDtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0ZJRk8oKSkge1xuICAgIGZpbGVfa2luZCA9IDU7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNTb2NrZXQoKSkge1xuICAgIGZpbGVfa2luZCA9IDY7XG4gIH1cbiAgLyogPT09VW5peC5zdGF0cz09PVxuICAgKiB0eXBlIHN0YXRzID1cbiAgICogIHsgc3RfZGV2IDogaW50OyAgICAgICAgICAgICAgICgqKiBEZXZpY2UgbnVtYmVyICopXG4gICAqICAgIHN0X2lubyA6IGludDsgICAgICAgICAgICAgICAoKiogSW5vZGUgbnVtYmVyICopXG4gICAqICAgIHN0X2tpbmQgOiBmaWxlX2tpbmQ7ICAgICAgICAoKiogS2luZCBvZiB0aGUgZmlsZSAqKVxuICAgKiAgICBzdF9wZXJtIDogZmlsZV9wZXJtOyAgICAgICAgKCoqIEFjY2VzcyByaWdodHMgKilcbiAgICogICAgc3RfbmxpbmsgOiBpbnQ7ICAgICAgICAgICAgICgqKiBOdW1iZXIgb2YgbGlua3MgKilcbiAgICogICAgc3RfdWlkIDogaW50OyAgICAgICAgICAgICAgICgqKiBVc2VyIGlkIG9mIHRoZSBvd25lciAqKVxuICAgKiAgICBzdF9naWQgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAgKilcbiAgICogICAgc3RfcmRldiA6IGludDsgICAgICAgICAgICAgICgqKiBEZXZpY2UgSUQgKGlmIHNwZWNpYWwgZmlsZSkgKilcbiAgICogICAgc3Rfc2l6ZSA6IGludDsgICAgICAgICAgICAgICgqKiBTaXplIGluIGJ5dGVzICopXG4gICAqICAgIHN0X2F0aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBhY2Nlc3MgdGltZSAqKVxuICAgKiAgICBzdF9tdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3QgbW9kaWZpY2F0aW9uIHRpbWUgKilcbiAgICogICAgc3RfY3RpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IHN0YXR1cyBjaGFuZ2UgdGltZSAqKVxuICAgKiAgfVxuICAgKi9cbiAgcmV0dXJuIEJMT0NLKFxuICAgIDAsXG4gICAganNfc3RhdHMuZGV2LFxuICAgIGpzX3N0YXRzLmlubyxcbiAgICBmaWxlX2tpbmQsXG4gICAganNfc3RhdHMubW9kZSxcbiAgICBqc19zdGF0cy5ubGluayxcbiAgICBqc19zdGF0cy51aWQsXG4gICAganNfc3RhdHMuZ2lkLFxuICAgIGpzX3N0YXRzLnJkZXYsXG4gICAganNfc3RhdHMuc2l6ZSxcbiAgICBqc19zdGF0cy5hdGltZU1zLFxuICAgIGpzX3N0YXRzLm10aW1lTXMsXG4gICAganNfc3RhdHMuY3RpbWVNc1xuICApO1xufVxuXG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxOb2RlRGV2aWNlXG5cbi8vUHJvdmlkZXM6IE1sTm9kZURldmljZVxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gTWxOb2RlRGV2aWNlKCkge1xufVxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVGaWxlXG4vL1JlcXVpcmVzOiBNbEZpbGUsIGNhbWxfYXJyYXlfb2Zfc3RyaW5nLCBjYW1sX2FycmF5X29mX2J5dGVzLCBjYW1sX2J5dGVzX3NldCwgY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIE1sTm9kZUZpbGUoZmQpe1xuICB0aGlzLmZzID0gcmVxdWlyZSgnZnMnKTtcbiAgdGhpcy5mZCA9IGZkO1xufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUgPSBuZXcgTWxGaWxlICgpO1xuXG5NbE5vZGVGaWxlLnByb3RvdHlwZS50cnVuY2F0ZSA9IGZ1bmN0aW9uKGxlbil7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5mdHJ1bmNhdGVTeW5jKHRoaXMuZmQsbGVufDApXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmZzdGF0U3luYyh0aGlzLmZkKS5zaXplO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24ob2Zmc2V0LGJ1ZixidWZfb2Zmc2V0LGxlbil7XG4gIHZhciBhID0gY2FtbF9hcnJheV9vZl9zdHJpbmcoYnVmKTtcbiAgaWYoISAoYSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuVWludDhBcnJheSkpXG4gICAgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkoYSk7XG4gIHZhciBidWZmZXIgPSBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGEpO1xuICB0cnkge1xuICAgIHRoaXMuZnMud3JpdGVTeW5jKHRoaXMuZmQsIGJ1ZmZlciwgYnVmX29mZnNldCwgbGVuLCBvZmZzZXQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGJ1ZixidWZfb2Zmc2V0LGxlbil7XG4gIHZhciBhID0gY2FtbF9hcnJheV9vZl9ieXRlcyhidWYpO1xuICBpZighIChhIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5VaW50OEFycmF5KSlcbiAgICBhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheShhKTtcbiAgdmFyIGJ1ZmZlciA9IGdsb2JhbFRoaXMuQnVmZmVyLmZyb20oYSk7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5yZWFkU3luYyh0aGlzLmZkLCBidWZmZXIsIGJ1Zl9vZmZzZXQsIGxlbiwgb2Zmc2V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgY2FtbF9ieXRlc19zZXQoYnVmLGJ1Zl9vZmZzZXQgKyBpLGJ1ZmZlcltidWZfb2Zmc2V0K2ldKTtcbiAgfVxuICByZXR1cm4gMFxufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUucmVhZF9vbmUgPSBmdW5jdGlvbihvZmZzZXQpe1xuICB2YXIgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkoMSk7XG4gIHZhciBidWZmZXIgPSBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGEpO1xuICB0cnkge1xuICAgIHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYnVmZmVyLCAwLCAxLCBvZmZzZXQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbiAgcmV0dXJuIGJ1ZmZlclswXTtcbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24oKXtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLmNsb3NlU3luYyh0aGlzLmZkKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5cbk1sTm9kZUZpbGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxOb2RlRmlsZTtcblxuLy9Qcm92aWRlczogTWxOb2RlRmlsZVxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gTWxOb2RlRmlsZSgpe1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBEdW1teSBmaWxlc3lzdGVtXG5cbi8vUHJvdmlkZXM6IGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSl7XG4gIHJldHVybiAobmFtZS5zbGljZSgtMSkgIT09IFwiL1wiKSA/IChuYW1lICsgXCIvXCIpIDogbmFtZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jdXJyZW50X2RpclxuLy9SZXF1aXJlczogY2FtbF90cmFpbGluZ19zbGFzaCwgZnNfbm9kZV9zdXBwb3J0ZWRcbmlmKGZzX25vZGVfc3VwcG9ydGVkICgpICYmIGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuY3dkKVxuICB2YXIgY2FtbF9jdXJyZW50X2RpciA9IGdsb2JhbFRoaXMucHJvY2Vzcy5jd2QoKS5yZXBsYWNlKC9cXFxcL2csJy8nKTtcbmVsc2VcbiAgdmFyIGNhbWxfY3VycmVudF9kaXIgPSAgXCIvc3RhdGljXCI7XG5jYW1sX2N1cnJlbnRfZGlyID0gY2FtbF90cmFpbGluZ19zbGFzaChjYW1sX2N1cnJlbnRfZGlyKTtcblxuLy9Qcm92aWRlczogY2FtbF9nZXRfcm9vdFxuLy9SZXF1aXJlczogcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9nZXRfcm9vdChwYXRoKXtcbiAgdmFyIHggPSBwYXRoX2lzX2Fic29sdXRlKHBhdGgpO1xuICBpZiAoIXgpIHJldHVybjtcbiAgcmV0dXJuIHhbMF0gKyBcIi9cIn1cblxuLy9Qcm92aWRlczogY2FtbF9yb290XG4vL1JlcXVpcmVzOiBjYW1sX2dldF9yb290LCBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX2ZhaWx3aXRoXG52YXIgY2FtbF9yb290ID0gY2FtbF9nZXRfcm9vdChjYW1sX2N1cnJlbnRfZGlyKSB8fCBjYW1sX2ZhaWx3aXRoKFwidW5hYmxlIHRvIGNvbXB1dGUgY2FtbF9yb290XCIpO1xuXG5cbi8vUHJvdmlkZXM6IE1sRmlsZVxuZnVuY3Rpb24gTWxGaWxlKCl7ICB9XG5cbi8vUHJvdmlkZXM6IHBhdGhfaXNfYWJzb2x1dGVcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiBtYWtlX3BhdGhfaXNfYWJzb2x1dGUoKSB7XG4gIGZ1bmN0aW9uIHBvc2l4KHBhdGgpIHtcbiAgICBpZiAocGF0aC5jaGFyQXQoMCkgPT09ICcvJykgcmV0dXJuIFtcIlwiLCBwYXRoLnN1YnN0cmluZygxKV07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZnVuY3Rpb24gd2luMzIocGF0aCkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL2IzZmNjMjQ1ZmIyNTUzOTkwOWVmMWQ1ZWFhMDFkYmY5MmUxNjg2MzMvbGliL3BhdGguanMjTDU2XG4gICAgdmFyIHNwbGl0RGV2aWNlUmUgPSAvXihbYS16QS1aXTp8W1xcXFwvXXsyfVteXFxcXC9dK1tcXFxcL10rW15cXFxcL10rKT8oW1xcXFwvXSk/KFtcXHNcXFNdKj8pJC87XG4gICAgdmFyIHJlc3VsdCA9IHNwbGl0RGV2aWNlUmUuZXhlYyhwYXRoKTtcbiAgICB2YXIgZGV2aWNlID0gcmVzdWx0WzFdIHx8ICcnO1xuICAgIHZhciBpc1VuYyA9IEJvb2xlYW4oZGV2aWNlICYmIGRldmljZS5jaGFyQXQoMSkgIT09ICc6Jyk7XG5cbiAgICAvLyBVTkMgcGF0aHMgYXJlIGFsd2F5cyBhYnNvbHV0ZVxuICAgIGlmIChCb29sZWFuKHJlc3VsdFsyXSB8fCBpc1VuYykpIHtcbiAgICAgIHZhciByb290ID0gKHJlc3VsdFsxXSB8fCAnJyk7XG4gICAgICB2YXIgc2VwID0gKHJlc3VsdFsyXSB8fCAnJyk7XG4gICAgICByZXR1cm4gW3Jvb3QsIHBhdGguc3Vic3RyaW5nKHJvb3QubGVuZ3RoICsgc2VwLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZihmc19ub2RlX3N1cHBvcnRlZCAoKSAmJiBnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IHdpbjMyIDogcG9zaXg7XG4gIH1cbiAgZWxzZSByZXR1cm4gcG9zaXhcbn1cbnZhciBwYXRoX2lzX2Fic29sdXRlID0gbWFrZV9wYXRoX2lzX2Fic29sdXRlKCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV9wYXRoXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZywgcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9tYWtlX3BhdGggKG5hbWUpIHtcbiAgbmFtZT1jYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYoICFwYXRoX2lzX2Fic29sdXRlKG5hbWUpIClcbiAgICBuYW1lID0gY2FtbF9jdXJyZW50X2RpciArIG5hbWU7XG4gIHZhciBjb21wMCA9IHBhdGhfaXNfYWJzb2x1dGUobmFtZSk7XG4gIHZhciBjb21wID0gY29tcDBbMV0uc3BsaXQoXCIvXCIpO1xuICB2YXIgbmNvbXAgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpPGNvbXAubGVuZ3RoOyBpKyspe1xuICAgIHN3aXRjaChjb21wW2ldKXtcbiAgICBjYXNlIFwiLi5cIjogaWYobmNvbXAubGVuZ3RoPjEpIG5jb21wLnBvcCgpOyBicmVhaztcbiAgICBjYXNlIFwiLlwiOiBicmVhaztcbiAgICBkZWZhdWx0OiBuY29tcC5wdXNoKGNvbXBbaV0pO2JyZWFrXG4gICAgfVxuICB9XG4gIG5jb21wLnVuc2hpZnQoY29tcDBbMF0pO1xuICBuY29tcC5vcmlnID0gbmFtZTtcbiAgcmV0dXJuIG5jb21wO1xufVxuXG4vL1Byb3ZpZGVzOmpzb29fbW91bnRfcG9pbnRcbi8vUmVxdWlyZXM6IE1sRmFrZURldmljZSwgTWxOb2RlRGV2aWNlLCBjYW1sX3Jvb3QsIGZzX25vZGVfc3VwcG9ydGVkXG52YXIganNvb19tb3VudF9wb2ludCA9IFtdXG5pZiAoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6Y2FtbF9yb290LGRldmljZTpuZXcgTWxOb2RlRGV2aWNlKGNhbWxfcm9vdCl9KTtcbn0gZWxzZSB7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpjYW1sX3Jvb3QsZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UoY2FtbF9yb290KX0pO1xufVxuanNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOlwiL3N0YXRpYy9cIiwgZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UoXCIvc3RhdGljL1wiKX0pO1xuXG4vL1Byb3ZpZGVzOmNhbWxfbGlzdF9tb3VudF9wb2ludFxuLy9SZXF1aXJlczoganNvb19tb3VudF9wb2ludCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9saXN0X21vdW50X3BvaW50KCl7XG4gIHZhciBwcmV2ID0gMFxuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKyl7XG4gICAgdmFyIG9sZCA9IHByZXY7XG4gICAgcHJldiA9IFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGpzb29fbW91bnRfcG9pbnRbaV0ucGF0aCksIG9sZF1cbiAgfVxuICByZXR1cm4gcHJldjtcbn1cblxuLy9Qcm92aWRlczogcmVzb2x2ZV9mc19kZXZpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfbWFrZV9wYXRoLCBqc29vX21vdW50X3BvaW50LCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9nZXRfcm9vdCwgTWxOb2RlRGV2aWNlLCBjYW1sX3RyYWlsaW5nX3NsYXNoLCBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSl7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gcGF0aC5qb2luKFwiL1wiKTtcbiAgdmFyIG5hbWVfc2xhc2ggPSBjYW1sX3RyYWlsaW5nX3NsYXNoKG5hbWUpO1xuICB2YXIgcmVzO1xuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtID0ganNvb19tb3VudF9wb2ludFtpXTtcbiAgICBpZihuYW1lX3NsYXNoLnNlYXJjaChtLnBhdGgpID09IDBcbiAgICAgICAmJiAoIXJlcyB8fCByZXMucGF0aC5sZW5ndGggPCBtLnBhdGgubGVuZ3RoKSlcbiAgICAgIHJlcyA9IHtwYXRoOm0ucGF0aCxkZXZpY2U6bS5kZXZpY2UscmVzdDpuYW1lLnN1YnN0cmluZyhtLnBhdGgubGVuZ3RoLG5hbWUubGVuZ3RoKX07XG4gIH1cbiAgaWYoICFyZXMgJiYgZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgIHZhciByb290ID0gY2FtbF9nZXRfcm9vdChuYW1lKTtcbiAgICBpZiAocm9vdCAmJiByb290Lm1hdGNoKC9eW2EtekEtWl06XFwvJC8pKXtcbiAgICAgIHZhciBtID0ge3BhdGg6cm9vdCxkZXZpY2U6bmV3IE1sTm9kZURldmljZShyb290KX07XG4gICAgICBqc29vX21vdW50X3BvaW50LnB1c2gobSk7XG4gICAgICByZXMgPSB7cGF0aDptLnBhdGgsZGV2aWNlOm0uZGV2aWNlLHJlc3Q6bmFtZS5zdWJzdHJpbmcobS5wYXRoLmxlbmd0aCxuYW1lLmxlbmd0aCl9O1xuICAgIH1cbiAgfVxuICBpZiggcmVzICkgcmV0dXJuIHJlcztcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJubyBkZXZpY2UgZm91bmQgZm9yIFwiICsgbmFtZV9zbGFzaCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbW91bnRfYXV0b2xvYWRcbi8vUmVxdWlyZXM6IE1sRmFrZURldmljZSwgY2FtbF9tYWtlX3BhdGgsIGpzb29fbW91bnRfcG9pbnQsIGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfbW91bnRfYXV0b2xvYWQobmFtZSxmKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHBhdGguam9pbihcIi9cIikpO1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6bmFtZSxkZXZpY2U6bmV3IE1sRmFrZURldmljZShuYW1lLGYpfSlcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5tb3VudFxuLy9SZXF1aXJlczoganNvb19tb3VudF9wb2ludCwgY2FtbF9tYWtlX3BhdGgsIGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfdW5tb3VudChuYW1lKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHBhdGguam9pbihcIi9cIikpO1xuICB2YXIgaWR4ID0gLTE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKVxuICAgIGlmKGpzb29fbW91bnRfcG9pbnRbaV0ucGF0aCA9PSBuYW1lKSBpZHggPSBpO1xuICBpZihpZHggPiAtMSkganNvb19tb3VudF9wb2ludC5zcGxpY2UoaWR4LDEpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRjd2Rcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXIsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldGN3ZCgpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF9jdXJyZW50X2Rpcik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NoZGlyXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfdHJhaWxpbmdfc2xhc2gsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX2NoZGlyKGRpcikge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKGRpcik7XG4gIGlmKHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpKSB7XG4gICAgaWYocm9vdC5yZXN0KSBjYW1sX2N1cnJlbnRfZGlyID0gY2FtbF90cmFpbGluZ19zbGFzaChyb290LnBhdGggKyByb290LnJlc3QpO1xuICAgIGVsc2UgY2FtbF9jdXJyZW50X2RpciA9IHJvb3QucGF0aDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGRpcikpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUobmFtZSl7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm90X2FfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub3RfYV9kaXIobmFtZSl7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZmlsZV9leGlzdHNcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19maWxlX2V4aXN0cyAobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByZXR1cm4gcm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9hX2RpciwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5KG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgYSA9IHJvb3QuZGV2aWNlLnJlYWRkaXIocm9vdC5yZXN0KTtcbiAgdmFyIGwgPSBuZXcgQXJyYXkoYS5sZW5ndGggKyAxKTtcbiAgbFswXSA9IDA7XG4gIGZvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKVxuICAgIGxbaSsxXSA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoYVtpXSk7XG4gIHJldHVybiBsO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZW1vdmVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfcmVtb3ZlKG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgb2sgPSByb290LmRldmljZS51bmxpbmsocm9vdC5yZXN0KTtcbiAgaWYob2sgPT0gMCkgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc19kaXJlY3Rvcnlcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19pc19kaXJlY3RvcnkobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBhID0gcm9vdC5kZXZpY2UuaXNfZGlyKHJvb3QucmVzdCk7XG4gIHJldHVybiBhPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVuYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfcmVuYW1lKG8sbil7XG4gIHZhciBvX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShvKTtcbiAgdmFyIG5fcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG4pO1xuICBpZihvX3Jvb3QuZGV2aWNlICE9IG5fcm9vdC5kZXZpY2UpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3lzX3JlbmFtZTogY2Fubm90IG1vdmUgZmlsZSBiZXR3ZWVuIHR3byBmaWxlc3lzdGVtXCIpO1xuICBpZighb19yb290LmRldmljZS5yZW5hbWUpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3lzX3JlbmFtZTogbm8gaW1wbGVtZW50ZWRcIik7XG4gIG9fcm9vdC5kZXZpY2UucmVuYW1lKG9fcm9vdC5yZXN0LCBuX3Jvb3QucmVzdCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX21rZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfc3lzX21rZGlyKG5hbWUsIHBlcm0pe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByb290LmRldmljZS5ta2Rpcihyb290LnJlc3QscGVybSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19ybWRpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX25vdF9hX2RpclxuZnVuY3Rpb24gY2FtbF9zeXNfcm1kaXIobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJvb3QuZGV2aWNlLnJtZGlyKHJvb3QucmVzdCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX21hcF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2JhX21hcF9maWxlKHZmZCwga2luZCwgbGF5b3V0LCBzaGFyZWQsIGRpbXMsIHBvcykge1xuICAvLyB2YXIgZGF0YSA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRzW3ZmZF07XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2JhX21hcF9maWxlIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZVxuLy9SZXF1aXJlczogY2FtbF9iYV9tYXBfZmlsZVxuZnVuY3Rpb24gY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZShhcmd2LGFyZ24pe1xuICByZXR1cm4gY2FtbF9iYV9tYXBfZmlsZShhcmd2WzBdLGFyZ3ZbMV0sYXJndlsyXSxhcmd2WzNdLGFyZ3ZbNF0sYXJndls1XSk7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuXG5mdW5jdGlvbiBqc29vX2NyZWF0ZV9maWxlX2V4dGVybihuYW1lLGNvbnRlbnQpe1xuICBpZihnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUpXG4gICAgZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCk7XG4gIGVsc2Uge1xuICAgIGlmKCFnbG9iYWxUaGlzLmNhbWxfZnNfdG1wKSBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gICAgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcC5wdXNoKHtuYW1lOm5hbWUsY29udGVudDpjb250ZW50fSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnNfaW5pdFxuLy9SZXF1aXJlczoganNvb19jcmVhdGVfZmlsZVxuZnVuY3Rpb24gY2FtbF9mc19pbml0ICgpe1xuICB2YXIgdG1wPWdsb2JhbFRoaXMuY2FtbF9mc190bXBcbiAgaWYodG1wKXtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgdG1wLmxlbmd0aDsgaSsrKXtcbiAgICAgIGpzb29fY3JlYXRlX2ZpbGUodG1wW2ldLm5hbWUsdG1wW2ldLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuICBnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUgPSBqc29vX2NyZWF0ZV9maWxlO1xuICBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYoISByb290LmRldmljZS5yZWdpc3RlcikgY2FtbF9mYWlsd2l0aChcImNhbm5vdCByZWdpc3RlciBmaWxlXCIpO1xuICByb290LmRldmljZS5yZWdpc3Rlcihyb290LnJlc3QsY29udGVudCk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2ZpbGUsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGpzb29fY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KSB7XG4gIHZhciBuYW1lID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKTtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNvbnRlbnQpO1xuICByZXR1cm4gY2FtbF9jcmVhdGVfZmlsZShuYW1lLCBjb250ZW50KTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlYWRfZmlsZV9jb250ZW50XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9yZWFkX2ZpbGVfY29udGVudCAobmFtZSkge1xuICB2YXIgbmFtZSA9ICh0eXBlb2YgbmFtZSA9PSBcInN0cmluZ1wiKT9jYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpOm5hbWU7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmKHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpKSB7XG4gICAgdmFyIGZpbGUgPSByb290LmRldmljZS5vcGVuKHJvb3QucmVzdCx7cmRvbmx5OjF9KTtcbiAgICB2YXIgbGVuICA9IGZpbGUubGVuZ3RoKCk7XG4gICAgdmFyIGJ1ZiAgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pO1xuICAgIGZpbGUucmVhZCgwLGJ1ZiwwLGxlbik7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2J5dGVzKGJ1ZilcbiAgfVxuICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpKTtcbn1cbiIsIi8vUHJvdmlkZXM6IHVuaXhfZ2V0dGltZW9mZGF5XG5mdW5jdGlvbiB1bml4X2dldHRpbWVvZmRheSAoKSB7XG4gIHJldHVybiAobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMDtcbn1cblxuLy9Qcm92aWRlczogdW5peF90aW1lXG4vL1JlcXVpcmVzOiB1bml4X2dldHRpbWVvZmRheVxuZnVuY3Rpb24gdW5peF90aW1lICgpIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IodW5peF9nZXR0aW1lb2ZkYXkgKCkpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2dtdGltZVxuZnVuY3Rpb24gdW5peF9nbXRpbWUgKHQpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZSAodCAqIDEwMDApO1xuICB2YXIgZF9udW0gPSBkLmdldFRpbWUoKTtcbiAgdmFyIGphbnVhcnlmaXJzdCA9IChuZXcgRGF0ZShEYXRlLlVUQyhkLmdldFVUQ0Z1bGxZZWFyKCksIDAsIDEpKSkuZ2V0VGltZSgpO1xuICB2YXIgZG95ID0gTWF0aC5mbG9vcigoZF9udW0gLSBqYW51YXJ5Zmlyc3QpIC8gODY0MDAwMDApO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRVVENTZWNvbmRzKCksIGQuZ2V0VVRDTWludXRlcygpLCBkLmdldFVUQ0hvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldFVUQ0RhdGUoKSwgZC5nZXRVVENNb250aCgpLCBkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXRVVENEYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgZmFsc2UgfCAwIC8qIGZvciBVVEMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGlzIGZhbHNlICovKVxufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2xvY2FsdGltZVxuZnVuY3Rpb24gdW5peF9sb2NhbHRpbWUgKHQpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZSAodCAqIDEwMDApO1xuICB2YXIgZF9udW0gPSBkLmdldFRpbWUoKTtcbiAgdmFyIGphbnVhcnlmaXJzdCA9IChuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDEpKS5nZXRUaW1lKCk7XG4gIHZhciBkb3kgPSBNYXRoLmZsb29yKChkX251bSAtIGphbnVhcnlmaXJzdCkgLyA4NjQwMDAwMCk7XG4gIHZhciBqYW4gPSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xuICB2YXIganVsID0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCA2LCAxKTtcbiAgdmFyIHN0ZFRpbWV6b25lT2Zmc2V0ID0gTWF0aC5tYXgoamFuLmdldFRpbWV6b25lT2Zmc2V0KCksIGp1bC5nZXRUaW1lem9uZU9mZnNldCgpKTtcbiAgcmV0dXJuIEJMT0NLKDAsIGQuZ2V0U2Vjb25kcygpLCBkLmdldE1pbnV0ZXMoKSwgZC5nZXRIb3VycygpLFxuICAgICAgICAgICAgICAgZC5nZXREYXRlKCksIGQuZ2V0TW9udGgoKSwgZC5nZXRGdWxsWWVhcigpIC0gMTkwMCxcbiAgICAgICAgICAgICAgIGQuZ2V0RGF5KCksIGRveSxcbiAgICAgICAgICAgICAgIChkLmdldFRpbWV6b25lT2Zmc2V0KCkgPCBzdGRUaW1lem9uZU9mZnNldCkgfCAwIC8qIGRheWxpZ2h0IHNhdmluZ3MgdGltZSAgZmllbGQuICovKVxufVxuXG4vL1Byb3ZpZGVzOiB1bml4X21rdGltZVxuLy9SZXF1aXJlczogdW5peF9sb2NhbHRpbWVcbmZ1bmN0aW9uIHVuaXhfbWt0aW1lKHRtKXtcbiAgdmFyIGQgPSAobmV3IERhdGUodG1bNl0rMTkwMCx0bVs1XSx0bVs0XSx0bVszXSx0bVsyXSx0bVsxXSkpLmdldFRpbWUoKTtcbiAgdmFyIHQgPSBNYXRoLmZsb29yKGQgLyAxMDAwKTtcbiAgdmFyIHRtMiA9IHVuaXhfbG9jYWx0aW1lKHQpO1xuICByZXR1cm4gQkxPQ0soMCx0LHRtMik7XG59XG5cbi8vUHJvdmlkZXM6IHdpbl9zdGFydHVwIGNvbnN0XG5mdW5jdGlvbiB3aW5fc3RhcnR1cCgpIHt9XG5cbi8vUHJvdmlkZXM6IHdpbl9jbGVhbnVwIGNvbnN0XG5mdW5jdGlvbiB3aW5fY2xlYW51cCgpIHt9XG5cbi8vUHJvdmlkZXM6IHdpbl9oYW5kbGVfZmQgY29uc3RcbmZ1bmN0aW9uIHdpbl9oYW5kbGVfZmQoeCkge3JldHVybiB4O31cblxuLy9Qcm92aWRlczogdW5peF9pc2F0dHlcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiB1bml4X2lzYXR0eShmaWxlRGVzY3JpcHRvcikge1xuICBpZihmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgdmFyIHR0eSA9IHJlcXVpcmUoJ3R0eScpO1xuICAgIHJldHVybiB0dHkuaXNhdHR5KGZpbGVEZXNjcmlwdG9yKT8xOjA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogbWFrZV91bml4X2Vycl9hcmdzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xudmFyIHVuaXhfZXJyb3IgPSBbXG4gIC8qID09PVVuaXguZXJyb3I9PT1cbiAgICpcbiAgICogVGhpcyBhcnJheSBpcyBpbiBvcmRlciBvZiB0aGUgdmFyaWFudCBpbiBPQ2FtbFxuICAgKi9cbiAgXCJFMkJJR1wiLCBcIkVBQ0NFU1wiLCBcIkVBR0FJTlwiLCBcIkVCQURGXCIsIFwiRUJVU1lcIiwgXCJFQ0hJTERcIiwgXCJFREVBRExLXCIsIFwiRURPTVwiLFxuICBcIkVFWElTVFwiLCBcIkVGQVVMVFwiLCBcIkVGQklHXCIsIFwiRUlOVFJcIiwgXCJFSU5WQUxcIiwgXCJFSU9cIiwgXCJFSVNESVJcIiwgXCJFTUZJTEVcIixcbiAgXCJFTUxJTktcIiwgXCJFTkFNRVRPT0xPTkdcIiwgXCJFTkZJTEVcIiwgXCJFTk9ERVZcIiwgXCJFTk9FTlRcIiwgXCJFTk9FWEVDXCIsIFwiRU5PTENLXCIsXG4gIFwiRU5PTUVNXCIsIFwiRU5PU1BDXCIsIFwiRU5PU1lTXCIsIFwiRU5PVERJUlwiLCBcIkVOT1RFTVBUWVwiLCBcIkVOT1RUWVwiLCBcIkVOWElPXCIsXG4gIFwiRVBFUk1cIiwgXCJFUElQRVwiLCBcIkVSQU5HRVwiLCBcIkVST0ZTXCIsIFwiRVNQSVBFXCIsIFwiRVNSQ0hcIiwgXCJFWERFVlwiLCBcIkVXT1VMREJMT0NLXCIsXG4gIFwiRUlOUFJPR1JFU1NcIiwgXCJFQUxSRUFEWVwiLCBcIkVOT1RTT0NLXCIsIFwiRURFU1RBRERSUkVRXCIsIFwiRU1TR1NJWkVcIixcbiAgXCJFUFJPVE9UWVBFXCIsIFwiRU5PUFJPVE9PUFRcIiwgXCJFUFJPVE9OT1NVUFBPUlRcIiwgXCJFU09DS1ROT1NVUFBPUlRcIixcbiAgXCJFT1BOT1RTVVBQXCIsIFwiRVBGTk9TVVBQT1JUXCIsIFwiRUFGTk9TVVBQT1JUXCIsIFwiRUFERFJJTlVTRVwiLCBcIkVBRERSTk9UQVZBSUxcIixcbiAgXCJFTkVURE9XTlwiLCBcIkVORVRVTlJFQUNIXCIsIFwiRU5FVFJFU0VUXCIsIFwiRUNPTk5BQk9SVEVEXCIsIFwiRUNPTk5SRVNFVFwiLCBcIkVOT0JVRlNcIixcbiAgXCJFSVNDT05OXCIsIFwiRU5PVENPTk5cIiwgXCJFU0hVVERPV05cIiwgXCJFVE9PTUFOWVJFRlNcIiwgXCJFVElNRURPVVRcIiwgXCJFQ09OTlJFRlVTRURcIixcbiAgXCJFSE9TVERPV05cIiwgXCJFSE9TVFVOUkVBQ0hcIiwgXCJFTE9PUFwiLCBcIkVPVkVSRkxPV1wiXG5dO1xuZnVuY3Rpb24gbWFrZV91bml4X2Vycl9hcmdzKGNvZGUsIHN5c2NhbGwsIHBhdGgsIGVycm5vKSB7XG4gIHZhciB2YXJpYW50ID0gdW5peF9lcnJvci5pbmRleE9mKGNvZGUpO1xuICBpZiAodmFyaWFudCA8IDApIHtcbiAgICAvLyBEZWZhdWx0IGlmIHVuZGVmaW5lZFxuICAgIGlmIChlcnJubyA9PSBudWxsKSB7XG4gICAgICBlcnJubyA9IC05OTk5XG4gICAgfVxuICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIHZhcmlhbnRzLCBmYWxsYmFjayB0byBFVU5LTk9XTkVSUihpbnQpXG4gICAgdmFyaWFudCA9IEJMT0NLKDAsIGVycm5vKTtcbiAgfVxuICB2YXIgYXJncyA9IFtcbiAgICB2YXJpYW50LFxuICAgIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHN5c2NhbGwgfHwgXCJcIiksXG4gICAgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocGF0aCB8fCBcIlwiKVxuICBdO1xuICByZXR1cm4gYXJncztcbn1cblxuLy9Qcm92aWRlczogdW5peF9zdGF0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9zdGF0KG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5zdGF0KSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfc3RhdDogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5zdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9zdGF0XzY0XG4vL1JlcXVpcmVzOiB1bml4X3N0YXRcbnZhciB1bml4X3N0YXRfNjQgPSB1bml4X3N0YXQ7XG5cbi8vUHJvdmlkZXM6IHVuaXhfbHN0YXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X2xzdGF0KG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5sc3RhdCkge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X2xzdGF0OiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmxzdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9sc3RhdF82NFxuLy9SZXF1aXJlczogdW5peF9sc3RhdFxudmFyIHVuaXhfbHN0YXRfNjQgPSB1bml4X2xzdGF0O1xuXG4vL1Byb3ZpZGVzOiB1bml4X21rZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9ta2RpcihuYW1lLCBwZXJtKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UubWtkaXIpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9ta2Rpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5ta2Rpcihyb290LnJlc3QsIHBlcm0sIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfcm1kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X3JtZGlyKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5ybWRpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3JtZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnJtZGlyKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9zeW1saW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9zeW1saW5rKHRvX2Rpciwgc3JjLCBkc3QpIHtcbiAgdmFyIHNyY19yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uoc3JjKTtcbiAgdmFyIGRzdF9yb290ID0gcmVzb2x2ZV9mc19kZXZpY2UoZHN0KTtcbiAgaWYoc3JjX3Jvb3QuZGV2aWNlICE9IGRzdF9yb290LmRldmljZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9zeW1saW5rOiBjYW5ub3Qgc3ltbGluayBiZXR3ZWVuIHR3byBmaWxlc3lzdGVtc1wiKTtcbiAgaWYgKCFzcmNfcm9vdC5kZXZpY2Uuc3ltbGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3N5bWxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gc3JjX3Jvb3QuZGV2aWNlLnN5bWxpbmsodG9fZGlyLCBzcmNfcm9vdC5yZXN0LCBkc3Rfcm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3JlYWRsaW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9yZWFkbGluayhuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UucmVhZGxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9yZWFkbGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5yZWFkbGluayhyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfdW5saW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF91bmxpbmsobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnVubGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3VubGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS51bmxpbmsocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2dldHVpZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbmZ1bmN0aW9uIHVuaXhfZ2V0dWlkKHVuaXQpIHtcbiAgaWYoZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXR1aWQpe1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3MuZ2V0dWlkKCk7XG4gIH1cbiAgY2FtbF9yYWlzZV9ub3RfZm91bmQoKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9nZXRwd3VpZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbmZ1bmN0aW9uIHVuaXhfZ2V0cHd1aWQodW5pdCkge1xuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpXG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfaGFzX3N5bWxpbmtcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiB1bml4X2hhc19zeW1saW5rKHVuaXQpIHtcbiAgcmV0dXJuIGZzX25vZGVfc3VwcG9ydGVkKCk/MTowXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIFN5c1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3N5c19lcnJvciAobXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5TeXNfZXJyb3IsIG1zZyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2V4aXRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9zeXNfZXhpdCAoY29kZSkge1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIGlmKGcucXVpdCkgZy5xdWl0KGNvZGUpO1xuICAvL25vZGVqc1xuICBpZihnLnByb2Nlc3MgJiYgZy5wcm9jZXNzLmV4aXQpXG4gICAgZy5wcm9jZXNzLmV4aXQoY29kZSk7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkZ1bmN0aW9uICdleGl0JyBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuKXtcbiAgc3dpdGNoKGV4blsyXSkge1xuICBjYXNlIC04OiAvLyBNYXRjaF9mYWlsdXJlXG4gIGNhc2UgLTExOiAvLyBBc3NlcnRfZmFpbHVyZVxuICBjYXNlIC0xMjogLy8gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGVcbiAgICByZXR1cm4gMTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9leGNlcHRpb25cbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2V4Y2VwdGlvbihleG4pe1xuICB2YXIgciA9IFwiXCI7XG4gIGlmKGV4blswXSA9PSAwKSB7XG4gICAgciArPSBleG5bMV1bMV07XG4gICAgaWYoZXhuLmxlbmd0aCA9PSAzICYmIGV4blsyXVswXSA9PSAwICYmIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuWzFdKSkge1xuXG4gICAgICB2YXIgYnVja2V0ID0gZXhuWzJdO1xuICAgICAgdmFyIHN0YXJ0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHN0YXJ0ID0gMlxuICAgICAgdmFyIGJ1Y2tldCA9IGV4bjtcbiAgICB9XG4gICAgciArPSBcIihcIjtcbiAgICBmb3IodmFyIGkgPSBzdGFydDsgaSA8IGJ1Y2tldC5sZW5ndGg7IGkgKyspe1xuICAgICAgaWYoaSA+IHN0YXJ0KSByKz1cIiwgXCI7XG4gICAgICB2YXIgdiA9IGJ1Y2tldFtpXVxuICAgICAgaWYodHlwZW9mIHYgPT0gXCJudW1iZXJcIilcbiAgICAgICAgcis9IHYudG9TdHJpbmcoKTtcbiAgICAgIGVsc2UgaWYodiBpbnN0YW5jZW9mIE1sQnl0ZXMpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKHR5cGVvZiB2ID09IFwic3RyaW5nXCIpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIHIgKz0gXCJfXCI7XG4gICAgfVxuICAgIHIgKz0gXCIpXCJcbiAgfSBlbHNlIGlmIChleG5bMF0gPT0gMjQ4KXtcbiAgICByICs9IGV4blsxXVxuICB9XG4gIHJldHVybiByXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX2Zvcm1hdF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGVycil7XG4gIGlmKGVyciBpbnN0YW5jZW9mIEFycmF5ICYmIChlcnJbMF0gPT0gMCB8fCBlcnJbMF0gPT0gMjQ4KSkge1xuICAgIHZhciBoYW5kbGVyID0gY2FtbF9uYW1lZF92YWx1ZShcIlByaW50ZXhjLmhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cIik7XG4gICAgaWYoaGFuZGxlcikgaGFuZGxlcihlcnIsZmFsc2UpO1xuICAgIGVsc2Uge1xuICAgICAgdmFyIG1zZyA9IGNhbWxfZm9ybWF0X2V4Y2VwdGlvbihlcnIpO1xuICAgICAgdmFyIGF0X2V4aXQgPSBjYW1sX25hbWVkX3ZhbHVlKFwiUGVydmFzaXZlcy5kb19hdF9leGl0XCIpO1xuICAgICAgaWYoYXRfZXhpdCkgeyBhdF9leGl0KDApIH1cbiAgICAgIGdsb2JhbFRoaXMuY29uc29sZS5lcnJvcihcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gXCIgKyBtc2cgKyBcIlxcblwiKTtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9zdGF0aWNfZW52XG5mdW5jdGlvbiBjYW1sX3NldF9zdGF0aWNfZW52KGssdil7XG4gIGlmKCFnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudilcbiAgICBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudiA9IHt9XG4gIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W2tdID0gdjtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRlbnYgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKSB7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgdmFyIG4gPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgLy9ub2RlanMgZW52XG4gIGlmKGcucHJvY2Vzc1xuICAgICAmJiBnLnByb2Nlc3MuZW52XG4gICAgICYmIGcucHJvY2Vzcy5lbnZbbl0gIT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhnLnByb2Nlc3MuZW52W25dKTtcbiAgaWYoZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZcbiAgICAgJiYgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZbbl0pXG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W25dKVxuICBjYW1sX3JhaXNlX25vdF9mb3VuZCAoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdW5zYWZlX2dldGVudlxuLy9SZXF1aXJlczogY2FtbF9zeXNfZ2V0ZW52XG5mdW5jdGlvbiBjYW1sX3N5c191bnNhZmVfZ2V0ZW52KG5hbWUpe1xuICByZXR1cm4gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xudmFyIGNhbWxfYXJndiA9ICgoZnVuY3Rpb24gKCkge1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIHZhciBtYWluID0gXCJhLm91dFwiO1xuICB2YXIgYXJncyA9IFtdXG5cbiAgaWYoZy5wcm9jZXNzXG4gICAgICYmIGcucHJvY2Vzcy5hcmd2XG4gICAgICYmIGcucHJvY2Vzcy5hcmd2Lmxlbmd0aCA+IDEpIHtcbiAgICB2YXIgYXJndiA9IGcucHJvY2Vzcy5hcmd2XG4gICAgLy9ub2RlanNcbiAgICBtYWluID0gYXJndlsxXTtcbiAgICBhcmdzID0gYXJndi5zbGljZSgyKTtcbiAgfVxuXG4gIHZhciBwID0gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobWFpbik7XG4gIHZhciBhcmdzMiA9IFswLCBwXTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspXG4gICAgYXJnczIucHVzaChjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhhcmdzW2ldKSk7XG4gIHJldHVybiBhcmdzMjtcbn0pKCkpXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhlY3V0YWJsZV9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbnZhciBjYW1sX2V4ZWN1dGFibGVfbmFtZSA9IGNhbWxfYXJndlsxXVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19nZXRfYXJndiAoYSkge1xuICByZXR1cm4gWzAsIGNhbWxfYXJndlsxXSwgY2FtbF9hcmd2XTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19hcmd2IChhKSB7XG4gIHJldHVybiBjYW1sX2FyZ3Y7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX21vZGlmeV9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX21vZGlmeV9hcmd2KGFyZyl7XG4gIGNhbWxfYXJndiA9IGFyZztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9leGVjdXRhYmxlX25hbWVcbmZ1bmN0aW9uIGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZShhKXtcbiAgcmV0dXJuIGNhbWxfZXhlY3V0YWJsZV9uYW1lXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmQoY21kKXtcbiAgdmFyIGNtZCA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGNtZCk7XG4gIGlmICh0eXBlb2YgcmVxdWlyZSAhPSBcInVuZGVmaW5lZFwiXG4gICAgICAmJiByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJylcbiAgICAgICYmIHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKS5leGVjU3luYykge1xuICAgIHRyeSB7cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWNTeW5jKGNtZCx7c3RkaW86ICdpbmhlcml0J30pOyByZXR1cm4gMH1cbiAgICBjYXRjaCAoZSkge3JldHVybiAxfVxuICB9XG4gIGVsc2UgcmV0dXJuIDEyNztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdGltZSBtdXRhYmxlXG52YXIgY2FtbF9pbml0aWFsX3RpbWUgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpICogMC4wMDE7XG5mdW5jdGlvbiBjYW1sX3N5c190aW1lICgpIHtcbiAgdmFyIG5vdyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gIHJldHVybiBub3cgKiAwLjAwMSAtIGNhbWxfaW5pdGlhbF90aW1lO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW5cbi8vUmVxdWlyZXM6IGNhbWxfc3lzX3RpbWVcbmZ1bmN0aW9uIGNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbihiKSB7XG4gIHJldHVybiBjYW1sX3N5c190aW1lKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JhbmRvbV9zZWVkIG11dGFibGVcbi8vVGhlIGZ1bmN0aW9uIG5lZWRzIHRvIHJldHVybiBhbiBhcnJheSBzaW5jZSBPQ2FtbCA0LjAuLi5cbmZ1bmN0aW9uIGNhbWxfc3lzX3JhbmRvbV9zZWVkICgpIHtcbiAgaWYoZ2xvYmFsVGhpcy5jcnlwdG8pIHtcbiAgICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzID09PSAnZnVuY3Rpb24nKXtcbiAgICAgIC8vIFdlYmJyb3dzZXJzXG4gICAgICB2YXIgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQzMkFycmF5KDEpO1xuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO1xuICAgICAgcmV0dXJuIFswLGFbMF1dO1xuICAgIH0gZWxzZSBpZihnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21CeXRlcyA9PT0gJ2Z1bmN0aW9uJyl7XG4gICAgICAvLyBOb2RlanNcbiAgICAgIHZhciBidWZmID0gZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tQnl0ZXMoNCk7XG4gICAgICB2YXIgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQzMkFycmF5KGJ1ZmYpO1xuICAgICAgcmV0dXJuIFswLGFbMF1dO1xuICAgIH1cbiAgfVxuICB2YXIgbm93ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgdmFyIHggPSBub3deMHhmZmZmZmZmZipNYXRoLnJhbmRvbSgpO1xuICByZXR1cm4gWzAseF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4gY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4gKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF93b3JkX3NpemUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSAoKSB7IHJldHVybiAzMjsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9pbnRfc2l6ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfaW50X3NpemUgKCkgeyByZXR1cm4gMzI7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfbWF4X3dvc2l6ZSBjb25zdFxuLy8gbWF4X2ludCAvIDQgc28gdGhhdCB0aGUgZm9sbG93aW5nIGRvZXMgbm90IG92ZXJmbG93XG4vL2xldCBtYXhfc3RyaW5nX2xlbmd0aCA9IHdvcmRfc2l6ZSAvIDggKiBtYXhfYXJyYXlfbGVuZ3RoIC0gMTs7XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9tYXhfd29zaXplICgpIHsgcmV0dXJuICgweDdGRkZGRkZGLzQpIHwgMDt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4IGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCAoKSB7IHJldHVybiBvc190eXBlID09IFwiVW5peFwiID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3dpbjMyICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJXaW4zMlwiID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4gY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4gKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIkN5Z3dpblwiID8gMSA6IDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9iYWNrZW5kX3R5cGUgKCkge1xuICByZXR1cm4gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJqc19vZl9vY2FtbFwiKV07XG59XG5cbi8vUHJvdmlkZXM6IG9zX3R5cGVcbnZhciBvc190eXBlID0gKGdsb2JhbFRoaXMucHJvY2VzcyAmJlxuICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtICYmXG4gICAgICAgICAgICAgICBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gPT0gXCJ3aW4zMlwiKSA/IFwiQ3lnd2luXCIgOiBcIlVuaXhcIjtcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRfY29uZmlnIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19nZXRfY29uZmlnICgpIHtcbiAgcmV0dXJuIFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG9zX3R5cGUpLCAzMiwgMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzYXR0eVxuZnVuY3Rpb24gY2FtbF9zeXNfaXNhdHR5KF9jaGFuKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfdmFyaWFudFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ydW50aW1lX3ZhcmlhbnQoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfcGFyYW1ldGVyc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ydW50aW1lX3BhcmFtZXRlcnMoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnN0YWxsX3NpZ25hbF9oYW5kbGVyKCl7cmV0dXJuIDB9XG5cbi8vUHJvdmlkZXM6IHVuaXhfaW5ldF9hZGRyX29mX3N0cmluZ1xuZnVuY3Rpb24gdW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nICgpIHtyZXR1cm4gMDt9XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbnZhciBjYW1sX3J1bnRpbWVfd2FybmluZ3MgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3MgKGJvb2wpIHtcbiAgY2FtbF9ydW50aW1lX3dhcm5pbmdzID0gYm9vbDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkIChfdW5pdCkge1xuICByZXR1cm4gY2FtbF9ydW50aW1lX3dhcm5pbmdzO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3BhY2V0aW1lX2VuYWJsZWQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9zcGFjZXRpbWVfZW5hYmxlZChfdW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkKF91bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZShfY2hhbm5lbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiU3BhY2V0aW1lIHByb2ZpbGluZyBvbmx5IHdvcmtzIGZvciBuYXRpdmUgY29kZVwiKTtcbn1cblxuLy9BbHdheXNcbi8vUmVxdWlyZXM6IGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyKCkge1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIGlmKGcucHJvY2VzcyAmJiBnLnByb2Nlc3Mub24pIHtcbiAgICBnLnByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgZnVuY3Rpb24gKGVyciwgb3JpZ2luKSB7XG4gICAgICBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihlcnIpO1xuICAgICAgZy5wcm9jZXNzLmV4aXQgKDIpO1xuICAgIH0pXG4gIH1cbiAgZWxzZSBpZihnLmFkZEV2ZW50TGlzdGVuZXIpe1xuICAgIGcuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihldmVudCl7XG4gICAgICBpZihldmVudC5lcnJvcil7XG4gICAgICAgIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGV2ZW50LmVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlcigpO1xuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogTWxGYWtlRGV2aWNlXG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlLCBjYW1sX2NyZWF0ZV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9hcnJheSwgY2FtbF9ieXRlc19vZl9zdHJpbmcsIGNhbWxfYnl0ZXNfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlc1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzXG5mdW5jdGlvbiBNbEZha2VEZXZpY2UgKHJvb3QsIGYpIHtcbiAgdGhpcy5jb250ZW50PXt9O1xuICB0aGlzLnJvb3QgPSByb290O1xuICB0aGlzLmxvb2t1cEZ1biA9IGY7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm5tID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gKHRoaXMucm9vdCArIG5hbWUpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5jcmVhdGVfZGlyX2lmX25lZWRlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGNvbXAgPSBuYW1lLnNwbGl0KFwiL1wiKTtcbiAgdmFyIHJlcyA9IFwiXCI7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBjb21wLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgcmVzICs9IGNvbXBbaV0gKyBcIi9cIjtcbiAgICBpZih0aGlzLmNvbnRlbnRbcmVzXSkgY29udGludWU7XG4gICAgdGhpcy5jb250ZW50W3Jlc10gPSBTeW1ib2woXCJkaXJlY3RvcnlcIik7XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuc2xhc2ggPSBmdW5jdGlvbihuYW1lKXtcbiAgcmV0dXJuIC9cXC8kLy50ZXN0KG5hbWUpP25hbWU6KG5hbWUgKyBcIi9cIik7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYoIXRoaXMuY29udGVudFtuYW1lXSAmJiB0aGlzLmxvb2t1cEZ1bikge1xuICAgIHZhciByZXMgPSB0aGlzLmxvb2t1cEZ1bihjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHRoaXMucm9vdCksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSkpO1xuICAgIGlmKHJlcyAhPT0gMCkge1xuICAgICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICAgIHRoaXMuY29udGVudFtuYW1lXT1uZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhyZXNbMV0pKTtcbiAgICB9XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICAvLyBUaGUgcm9vdCBvZiB0aGUgZGV2aWNlIGV4aXN0c1xuICBpZihuYW1lID09IFwiXCIpIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGRpcmVjdG9yeSBleGlzdHNcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICBpZih0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF0pIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGZpbGUgZXhpc3RzXG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLG1vZGUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICBpZih0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFRVhJU1RcIiwgXCJta2RpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBGaWxlIGV4aXN0c1wiKTtcbiAgICB9XG4gIH1cbiAgdmFyIHBhcmVudCA9IC9eKC4qKVxcL1teL10rLy5leGVjKG5hbWUpO1xuICBwYXJlbnQgPSAocGFyZW50ICYmIHBhcmVudFsxXSkgfHwgJyc7XG4gIGlmKCF0aGlzLmV4aXN0cyhwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PRU5UXCIsIFwibWtkaXJcIiwgdGhpcy5ubShwYXJlbnQpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IocGFyZW50ICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcIm1rZGlyXCIsIHRoaXMubm0ocGFyZW50KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHBhcmVudCArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQodGhpcy5zbGFzaChuYW1lKSk7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJtZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gIHZhciBuYW1lX3NsYXNoID0gKG5hbWUgPT0gXCJcIik/XCJcIjoodGhpcy5zbGFzaChuYW1lKSk7XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIGlmKCF0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9FTlRcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBpZighdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIGlmKG4ubWF0Y2gocikpIHtcbiAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RFTVBUWVwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIjogRGlyZWN0b3J5IG5vdCBlbXB0eVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lX3NsYXNoXTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUucmVhZGRpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIG5hbWVfc2xhc2ggPSAobmFtZSA9PSBcIlwiKT9cIlwiOih0aGlzLnNsYXNoKG5hbWUpKTtcbiAgaWYoIXRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICB9XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIHZhciBzZWVuID0ge31cbiAgdmFyIGEgPSBbXTtcbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIHZhciBtID0gbi5tYXRjaChyKTtcbiAgICBpZihtICYmICFzZWVuW21bMV1dKSB7c2VlblttWzFdXSA9IHRydWU7IGEucHVzaChtWzFdKX1cbiAgfVxuICByZXR1cm4gYTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICBpZihuYW1lID09IFwiXCIpICByZXR1cm4gdHJ1ZTtcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVfc2xhc2hdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgb2sgPSB0aGlzLmNvbnRlbnRbbmFtZV0/dHJ1ZTpmYWxzZTtcbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lXTtcbiAgcmV0dXJuIG9rO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZikge1xuICBpZihmLnJkb25seSAmJiBmLndyb25seSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3Jkb25seSBhbmQgT3Blbl93cm9ubHkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICBpZihmLnRleHQgJiYgZi5iaW5hcnkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl90ZXh0IGFuZCBPcGVuX2JpbmFyeSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICBpZiAodGhpcy5jb250ZW50W25hbWVdKSB7XG4gICAgaWYgKHRoaXMuaXNfZGlyKG5hbWUpKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBpcyBhIGRpcmVjdG9yeVwiKTtcbiAgICBpZiAoZi5jcmVhdGUgJiYgZi5leGNsKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmaWxlIGFscmVhZHkgZXhpc3RzXCIpO1xuICAgIHZhciBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICAgIGlmKGYudHJ1bmNhdGUpIGZpbGUudHJ1bmNhdGUoKTtcbiAgICByZXR1cm4gZmlsZTtcbiAgfSBlbHNlIGlmIChmLmNyZWF0ZSkge1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpO1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUgKHRoaXMubm0obmFtZSkpO1xuICB9XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUucmVnaXN0ZXI9IGZ1bmN0aW9uIChuYW1lLGNvbnRlbnQpe1xuICB2YXIgZmlsZTtcbiAgaWYodGhpcy5jb250ZW50W25hbWVdKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmaWxlIGFscmVhZHkgZXhpc3RzXCIpO1xuICBpZihjYW1sX2lzX21sX2J5dGVzKGNvbnRlbnQpKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjb250ZW50KTtcbiAgaWYoY2FtbF9pc19tbF9zdHJpbmcoY29udGVudCkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGNvbnRlbnQpKTtcbiAgZWxzZSBpZihjb250ZW50IGluc3RhbmNlb2YgQXJyYXkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoY29udGVudCkpO1xuICBlbHNlIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX2pzYnl0ZXMoY29udGVudCkpO1xuICBlbHNlIGlmKGNvbnRlbnQudG9TdHJpbmcpIHtcbiAgICB2YXIgYnl0ZXMgPSBjYW1sX2J5dGVzX29mX3N0cmluZyhjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhjb250ZW50LnRvU3RyaW5nKCkpKTtcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoYnl0ZXMpO1xuICB9XG4gIGlmKGZpbGUpe1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gZmlsZTtcbiAgfVxuICBlbHNlIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IHJlZ2lzdGVyaW5nIGZpbGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQgdHlwZVwiKTtcbn1cblxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sRmFrZURldmljZVxuXG4vL1Byb3ZpZGVzOiBNbEZha2VGaWxlXG4vL1JlcXVpcmVzOiBNbEZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2JsaXRfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2dldFxuZnVuY3Rpb24gTWxGYWtlRmlsZShjb250ZW50KXtcbiAgdGhpcy5kYXRhID0gY29udGVudDtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcbk1sRmFrZUZpbGUucHJvdG90eXBlLnRydW5jYXRlID0gZnVuY3Rpb24obGVuKXtcbiAgdmFyIG9sZCA9IHRoaXMuZGF0YTtcbiAgdGhpcy5kYXRhID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVufDApO1xuICBjYW1sX2JsaXRfYnl0ZXMob2xkLCAwLCB0aGlzLmRhdGEsIDAsIGxlbik7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYW1sX21sX2J5dGVzX2xlbmd0aCh0aGlzLmRhdGEpO1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihvZmZzZXQsYnVmLHBvcyxsZW4pe1xuICB2YXIgY2xlbiA9IHRoaXMubGVuZ3RoKCk7XG4gIGlmKG9mZnNldCArIGxlbiA+PSBjbGVuKSB7XG4gICAgdmFyIG5ld19zdHIgPSBjYW1sX2NyZWF0ZV9ieXRlcyhvZmZzZXQgKyBsZW4pO1xuICAgIHZhciBvbGRfZGF0YSA9IHRoaXMuZGF0YTtcbiAgICB0aGlzLmRhdGEgPSBuZXdfc3RyO1xuICAgIGNhbWxfYmxpdF9ieXRlcyhvbGRfZGF0YSwgMCwgdGhpcy5kYXRhLCAwLCBjbGVuKTtcbiAgfVxuICBjYW1sX2JsaXRfc3RyaW5nKGJ1ZiwgcG9zLCB0aGlzLmRhdGEsIG9mZnNldCwgbGVuKTtcbiAgcmV0dXJuIDBcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbihvZmZzZXQsYnVmLHBvcyxsZW4pe1xuICB2YXIgY2xlbiA9IHRoaXMubGVuZ3RoKCk7XG4gIGNhbWxfYmxpdF9ieXRlcyh0aGlzLmRhdGEsIG9mZnNldCwgYnVmLCBwb3MsIGxlbik7XG4gIHJldHVybiAwXG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5yZWFkX29uZSA9IGZ1bmN0aW9uKG9mZnNldCl7XG4gIHJldHVybiBjYW1sX2J5dGVzX2dldCh0aGlzLmRhdGEsIG9mZnNldCk7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCl7XG5cbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxGYWtlRmlsZVxuIiwiLy9Qcm92aWRlczogaW5pdGlhbGl6ZV9uYXRcbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogc2VyaWFsaXplX25hdCwgZGVzZXJpYWxpemVfbmF0LCBjYW1sX2hhc2hfbmF0XG5mdW5jdGlvbiBpbml0aWFsaXplX25hdCgpIHtcbiAgY2FtbF9jdXN0b21fb3BzW1wiX25hdFwiXSA9XG4gICAgeyBkZXNlcmlhbGl6ZSA6IGRlc2VyaWFsaXplX25hdCxcbiAgICAgIHNlcmlhbGl6ZSA6IHNlcmlhbGl6ZV9uYXQsXG4gICAgICBoYXNoIDogY2FtbF9oYXNoX25hdFxuICAgIH1cbn1cblxuLy9Qcm92aWRlczogTWxOYXRcbmZ1bmN0aW9uIE1sTmF0KHgpe1xuICB0aGlzLmRhdGEgPSBuZXcgZ2xvYmFsVGhpcy5JbnQzMkFycmF5KHgpO1xuICAvLyBsZW5ndGhfbmF0IGlzbid0IGV4dGVybmFsLCBzbyB3ZSBoYXZlIHRvIG1ha2UgdGhlIE9iai5zaXplXG4gIC8vIHdvcmsgb3V0IHJpZ2h0LiBUaGUgKzIgdG8gYXJyYXkgbGVuZ3RoIHNlZW1zIHRvIHdvcmsuXG4gIHRoaXMubGVuZ3RoID0gdGhpcy5kYXRhLmxlbmd0aCArIDJcbn1cblxuTWxOYXQucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gXCJfbmF0XCI7XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9uYXRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50LCBudW1fZGlnaXRzX25hdFxuZnVuY3Rpb24gY2FtbF9oYXNoX25hdCh4KSB7XG4gIHZhciBsZW4gPSBudW1fZGlnaXRzX25hdCh4LCAwLCB4LmRhdGEubGVuZ3RoKTtcbiAgdmFyIGggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHguZGF0YVtpXSk7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cblxuLy9Qcm92aWRlczogbmF0X29mX2FycmF5XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gbmF0X29mX2FycmF5KGwpe1xuICByZXR1cm4gbmV3IE1sTmF0KGwpO1xufVxuXG4vL1Byb3ZpZGVzOiBjcmVhdGVfbmF0XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gY3JlYXRlX25hdChzaXplKSB7XG4gIHZhciBhcnIgPSBuZXcgTWxOYXQoc2l6ZSk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICBhcnIuZGF0YVtpXSA9IC0xO1xuICB9XG4gIHJldHVybiBhcnI7XG59XG5cbi8vUHJvdmlkZXM6IHNldF90b196ZXJvX25hdFxuZnVuY3Rpb24gc2V0X3RvX3plcm9fbmF0KG5hdCwgb2ZzLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0gMDtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogYmxpdF9uYXRcbmZ1bmN0aW9uIGJsaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IG5hdDIuZGF0YVtvZnMyK2ldO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfZGlnaXRfbmF0XG5mdW5jdGlvbiBzZXRfZGlnaXRfbmF0KG5hdCwgb2ZzLCBkaWdpdCkge1xuICBuYXQuZGF0YVtvZnNdID0gZGlnaXQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBudGhfZGlnaXRfbmF0XG5mdW5jdGlvbiBudGhfZGlnaXRfbmF0KG5hdCwgb2ZzKSB7XG4gIHJldHVybiBuYXQuZGF0YVtvZnNdO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfZGlnaXRfbmF0X25hdGl2ZVxuZnVuY3Rpb24gc2V0X2RpZ2l0X25hdF9uYXRpdmUobmF0LCBvZnMsIGRpZ2l0KSB7XG4gIG5hdC5kYXRhW29mc10gPSBkaWdpdDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG50aF9kaWdpdF9uYXRfbmF0aXZlXG5mdW5jdGlvbiBudGhfZGlnaXRfbmF0X25hdGl2ZShuYXQsIG9mcykge1xuICByZXR1cm4gbmF0LmRhdGFbb2ZzXTtcbn1cblxuLy9Qcm92aWRlczogbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIG51bV9kaWdpdHNfbmF0KG5hdCwgb2ZzLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZihuYXQuZGF0YVtvZnMraV0gIT0gMCkgcmV0dXJuIGkrMTtcbiAgfVxuICByZXR1cm4gMTsgLy8gMCBjb3VudHMgYXMgMSBkaWdpdFxufVxuXG4vL1Byb3ZpZGVzOiBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXRcbmZ1bmN0aW9uIG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdChuYXQsIG9mcykge1xuICB2YXIgYSA9IG5hdC5kYXRhW29mc107XG4gIHZhciBiID0gMDtcbiAgaWYoYSAmIDB4RkZGRjAwMDApIHsgYiArPTE2OyBhID4+Pj0xNjsgfVxuICBpZihhICYgMHhGRjAwKSAgICAgeyBiICs9IDg7IGEgPj4+PSA4OyB9XG4gIGlmKGEgJiAweEYwKSAgICAgICB7IGIgKz0gNDsgYSA+Pj49IDQ7IH1cbiAgaWYoYSAmIDEyKSAgICAgICAgIHsgYiArPSAyOyBhID4+Pj0gMjsgfVxuICBpZihhICYgMikgICAgICAgICAgeyBiICs9IDE7IGEgPj4+PSAxOyB9XG4gIGlmKGEgJiAxKSAgICAgICAgICB7IGIgKz0gMTsgfVxuICByZXR1cm4gMzIgLSBiO1xufVxuXG4vL1Byb3ZpZGVzOiBpc19kaWdpdF9pbnRcbmZ1bmN0aW9uIGlzX2RpZ2l0X2ludChuYXQsIG9mcykge1xuICBpZiAobmF0LmRhdGFbb2ZzXSA+PSAwKSByZXR1cm4gMVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfemVyb1xuZnVuY3Rpb24gaXNfZGlnaXRfemVybyhuYXQsIG9mcykge1xuICBpZihuYXQuZGF0YVtvZnNdID09IDApIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfb2RkXG5mdW5jdGlvbiBpc19kaWdpdF9vZGQobmF0LCBvZnMpIHtcbiAgaWYobmF0LmRhdGFbb2ZzXSAmIDEpIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaW5jcl9uYXRcbmZ1bmN0aW9uIGluY3JfbmF0KG5hdCwgb2ZzLCBsZW4sIGNhcnJ5X2luKSB7XG4gIHZhciBjYXJyeSA9IGNhcnJ5X2luO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQuZGF0YVtvZnMraV0gPj4+IDApICsgY2Fycnk7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0gKHggfCAwKTtcbiAgICBpZih4ID09ICh4ID4+PiAwKSkge1xuICAgICAgY2FycnkgPSAwO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhcnJ5ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhcnJ5O1xufVxuXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IGFkZF9uYXRcbi8vUmVxdWlyZXM6IGluY3JfbmF0XG5mdW5jdGlvbiBhZGRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIGNhcnJ5X2luKSB7XG4gIHZhciBjYXJyeSA9IGNhcnJ5X2luO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApICsgKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSArIGNhcnJ5O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geFxuICAgIGlmKHggPT0gKHggPj4+IDApKSB7XG4gICAgICBjYXJyeSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhcnJ5ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluY3JfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCBjYXJyeSk7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBsZW1lbnRfbmF0XG5mdW5jdGlvbiBjb21wbGVtZW50X25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdC5kYXRhW29mcytpXSA9ICgtMSA+Pj4gMCkgLSAobmF0LmRhdGFbb2ZzK2ldID4+PiAwKTtcbiAgfVxufVxuXG4vLyBvY2FtbCBmbGlwcyBjYXJyeV9pblxuLy9Qcm92aWRlczogZGVjcl9uYXRcbmZ1bmN0aW9uIGRlY3JfbmF0KG5hdCwgb2ZzLCBsZW4sIGNhcnJ5X2luKSB7XG4gIHZhciBib3Jyb3cgPSAoY2FycnlfaW4gPT0gMSkgPyAwIDogMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0LmRhdGFbb2ZzK2ldID4+PjApIC0gYm9ycm93O1xuICAgIG5hdC5kYXRhW29mcytpXSA9IHg7XG4gICAgaWYgKHggPj0gMCkge1xuICAgICAgYm9ycm93ID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBib3Jyb3cgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gKGJvcnJvdyA9PSAxKSA/IDAgOiAxO1xufVxuXG4vLyBvY2FtbCBmbGlwcyBjYXJyeV9pblxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBzdWJfbmF0XG4vL1JlcXVpcmVzOiBkZWNyX25hdFxuZnVuY3Rpb24gc3ViX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBjYXJyeV9pbikge1xuICB2YXIgYm9ycm93ID0gKGNhcnJ5X2luID09IDEpID8gMCA6IDE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4yOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgLSAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApIC0gYm9ycm93O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geDtcbiAgICBpZiAoeCA+PSAwKSB7XG4gICAgICBib3Jyb3cgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBib3Jyb3cgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGVjcl9uYXQobmF0MSwgb2ZzMStsZW4yLCBsZW4xLWxlbjIsIChib3Jyb3c9PTEpPzA6MSk7XG59XG5cbi8vIG5hdDEgKz0gbmF0MiAqIG5hdDNbb2ZzM11cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogbXVsdF9kaWdpdF9uYXRcbi8vUmVxdWlyZXM6IGFkZF9uYXQsIG5hdF9vZl9hcnJheVxuZnVuY3Rpb24gbXVsdF9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMykge1xuICB2YXIgY2FycnkgPSAwO1xuICB2YXIgYSA9IChuYXQzLmRhdGFbb2ZzM10gPj4+IDApO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHgxID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSArIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKiAoYSAmIDB4MDAwMEZGRkYpICsgY2Fycnk7XG4gICAgdmFyIHgyID0gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAqIChhID4+PiAxNik7XG4gICAgY2FycnkgPSBNYXRoLmZsb29yKHgyLzY1NTM2KTtcbiAgICB2YXIgeDMgPSB4MSArICh4MiAlIDY1NTM2KSAqIDY1NTM2O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geDM7XG4gICAgY2FycnkgKz0gTWF0aC5mbG9vcih4My80Mjk0OTY3Mjk2KTtcbiAgfVxuXG4gIGlmKGxlbjIgPCBsZW4xICYmIGNhcnJ5KSB7XG4gICAgcmV0dXJuIGFkZF9uYXQobmF0MSwgb2ZzMStsZW4yLCBsZW4xLWxlbjIsIG5hdF9vZl9hcnJheShbY2FycnldKSwgMCwgMSwgMCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhcnJ5O1xuICB9XG59XG5cbi8vIG5hdDEgKz0gbmF0MiAqIG5hdDNcbi8vIGxlbjEgPj0gbGVuMiArIGxlbjMuXG4vL1Byb3ZpZGVzOiBtdWx0X25hdFxuLy9SZXF1aXJlczogbXVsdF9kaWdpdF9uYXRcbmZ1bmN0aW9uIG11bHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMsIGxlbjMpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjM7IGkrKykge1xuICAgIGNhcnJ5ICs9IG11bHRfZGlnaXRfbmF0KG5hdDEsIG9mczEraSwgbGVuMS1pLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzK2kpO1xuICB9XG4gIHJldHVybiBjYXJyeTtcbn1cblxuLy8gbmF0MSA9IDIgKiBuYXQxICsgbmF0MiAqIG5hdDJcbi8vIGxlbjEgPj0gMiAqIGxlbjJcbi8vUHJvdmlkZXM6IHNxdWFyZV9uYXRcbi8vUmVxdWlyZXM6IG11bHRfbmF0LCBhZGRfbmF0XG5mdW5jdGlvbiBzcXVhcmVfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgY2FycnkgKz0gYWRkX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQxLCBvZnMxLCBsZW4xLCAwKTtcbiAgY2FycnkgKz0gbXVsdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Miwgb2ZzMiwgbGVuMik7XG4gIHJldHVybiBjYXJyeTtcbn1cblxuXG4vLyAwIDw9IHNoaWZ0IDwgMzJcbi8vUHJvdmlkZXM6IHNoaWZ0X2xlZnRfbmF0XG5mdW5jdGlvbiBzaGlmdF9sZWZ0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBuYml0cykge1xuICBpZihuYml0cyA9PSAwKSB7XG4gICAgbmF0Mi5kYXRhW29mczJdID0gMDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgd3JhcCA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4xOyBpKyspIHtcbiAgICB2YXIgYSA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCk7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSAoYSA8PCBuYml0cykgfCB3cmFwO1xuICAgIHdyYXAgPSBhID4+PiAoMzIgLSBuYml0cyk7XG4gIH1cbiAgbmF0Mi5kYXRhW29mczJdID0gd3JhcDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vIEFzc3VtaW5nIGMgPiBhLCByZXR1cm5zIFtxdW90aWVudCwgcmVtYWluZGVyXSBvZiAoYTw8MzIgKyBiKS9jXG4vL1Byb3ZpZGVzOiBkaXZfaGVscGVyXG5mdW5jdGlvbiBkaXZfaGVscGVyKGEsIGIsIGMpIHtcbiAgdmFyIHggPSBhICogNjU1MzYgKyAoYj4+PjE2KTtcbiAgdmFyIHkgPSBNYXRoLmZsb29yKHgvYykgKiA2NTUzNjtcbiAgdmFyIHogPSAoeCAlIGMpICogNjU1MzY7XG4gIHZhciB3ID0geiArIChiICYgMHgwMDAwRkZGRik7XG4gIHJldHVybiBbeSArIE1hdGguZmxvb3Iody9jKSwgdyAlIGNdO1xufVxuXG4vLyBuYXQxW29mczErbGVuXSA8IG5hdDJbb2ZzMl1cbi8vUHJvdmlkZXM6IGRpdl9kaWdpdF9uYXRcbi8vUmVxdWlyZXM6IGRpdl9oZWxwZXJcbmZ1bmN0aW9uIGRpdl9kaWdpdF9uYXQobmF0cSwgb2ZzcSwgbmF0ciwgb2ZzciwgbmF0MSwgb2ZzMSwgbGVuLCBuYXQyLCBvZnMyKSB7XG4gIHZhciByZW0gPSAobmF0MS5kYXRhW29mczErbGVuLTFdID4+PjApO1xuICAvLyBuYXRxW29mc3ErbGVuLTFdIGlzIGd1YXJhbnRlZWQgdG8gYmUgemVybyAoZHVlIHRvIHRoZSBNU0QgcmVxdWlyZW1lbnQpLFxuICAvLyBhbmQgc2hvdWxkIG5vdCBiZSB3cml0dGVuIHRvLlxuICBmb3IodmFyIGkgPSBsZW4tMjsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgeCA9IGRpdl9oZWxwZXIocmVtLCAobmF0MS5kYXRhW29mczEraV0gPj4+IDApLCAobmF0Mi5kYXRhW29mczJdID4+PiAwKSk7XG4gICAgbmF0cS5kYXRhW29mc3EraV0gPSB4WzBdO1xuICAgIHJlbSA9IHhbMV07XG4gIH1cbiAgbmF0ci5kYXRhW29mc3JdID0gcmVtO1xuICByZXR1cm4gMDtcbn1cblxuLy8gbmF0MVtuYXQyOl0gOj0gbmF0MSAvIG5hdDJcbi8vIG5hdDFbOm5hdDJdIDo9IG5hdDEgJSBuYXQyXG4vLyBsZW4xID4gbGVuMiwgbmF0MltvZnMyK2xlbjItMV0gPiBuYXQxW29mczErbGVuMS0xXVxuLy9Qcm92aWRlczogZGl2X25hdFxuLy9SZXF1aXJlczogZGl2X2RpZ2l0X25hdCwgZGl2X2hlbHBlciwgbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0LCBzaGlmdF9sZWZ0X25hdCwgc2hpZnRfcmlnaHRfbmF0LCBjcmVhdGVfbmF0LCBzZXRfdG9femVyb19uYXQsIG11bHRfZGlnaXRfbmF0LCBzdWJfbmF0LCBjb21wYXJlX25hdCwgbmF0X29mX2FycmF5XG5mdW5jdGlvbiBkaXZfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgaWYobGVuMiA9PSAxKSB7XG4gICAgZGl2X2RpZ2l0X25hdChuYXQxLCBvZnMxKzEsIG5hdDEsIG9mczEsIG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIpO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgdmFyIHMgPSBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQobmF0Miwgb2ZzMitsZW4yLTEpO1xuICBzaGlmdF9sZWZ0X25hdChuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7XG4gIHNoaWZ0X2xlZnRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTtcblxuICB2YXIgZCA9IChuYXQyLmRhdGFbb2ZzMitsZW4yLTFdID4+PiAwKSArIDE7XG4gIHZhciBhID0gY3JlYXRlX25hdChsZW4yKzEpO1xuICBmb3IgKHZhciBpID0gbGVuMSAtIDE7IGkgPj0gbGVuMjsgaS0tKSB7XG4gICAgLy8gRGVjZW50IGxvd2VyIGJvdW5kIG9uIHF1b1xuICAgIHZhciBxdW8gPSBkID09IDQyOTQ5NjcyOTYgPyAobmF0MS5kYXRhW29mczEraV0gPj4+IDApIDogZGl2X2hlbHBlcigobmF0MS5kYXRhW29mczEraV0gPj4+IDApLCAobmF0MS5kYXRhW29mczEraS0xXSA+Pj4wKSwgZClbMF07XG4gICAgc2V0X3RvX3plcm9fbmF0KGEsIDAsIGxlbjIrMSk7XG4gICAgbXVsdF9kaWdpdF9uYXQoYSwgMCwgbGVuMisxLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoW3F1b10pLCAwKTtcbiAgICBzdWJfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yKzEsIGEsIDAsIGxlbjIrMSwgMSk7XG5cbiAgICB3aGlsZSAobmF0MS5kYXRhW29mczEraV0gIT0gMCB8fCBjb21wYXJlX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMiwgbmF0Miwgb2ZzMiwgbGVuMikgPj0gMCkge1xuICAgICAgcXVvID0gcXVvICsgMTtcbiAgICAgIHN1Yl9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIrMSwgbmF0Miwgb2ZzMiwgbGVuMiwgMSk7XG4gICAgfVxuXG4gICAgbmF0MS5kYXRhW29mczEraV0gPSBxdW87XG4gIH1cblxuICBzaGlmdF9yaWdodF9uYXQobmF0MSwgb2ZzMSwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpOyAvLyBzaGlmdCByZW1haW5kZXJcbiAgc2hpZnRfcmlnaHRfbmF0KG5hdDIsIG9mczIsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTsgLy8gcmVzdG9yZVxuICByZXR1cm4gMDtcbn1cblxuXG4vLyAwIDw9IHNoaWZ0IDwgMzJcbi8vUHJvdmlkZXM6IHNoaWZ0X3JpZ2h0X25hdFxuZnVuY3Rpb24gc2hpZnRfcmlnaHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIG5iaXRzKSB7XG4gIGlmKG5iaXRzID09IDApIHtcbiAgICBuYXQyLmRhdGFbb2ZzMl0gPSAwO1xuICAgIHJldHVybiAwO1xuICB9XG4gIHZhciB3cmFwID0gMDtcbiAgZm9yKHZhciBpID0gbGVuMS0xOyBpID49IDA7IGktLSkge1xuICAgIHZhciBhID0gbmF0MS5kYXRhW29mczEraV0gPj4+IDA7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSAoYSA+Pj4gbmJpdHMpIHwgd3JhcDtcbiAgICB3cmFwID0gYSA8PCAoMzIgLSBuYml0cyk7XG4gIH1cbiAgbmF0Mi5kYXRhW29mczJdID0gd3JhcDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBhcmVfZGlnaXRzX25hdFxuZnVuY3Rpb24gY29tcGFyZV9kaWdpdHNfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgaWYobmF0MS5kYXRhW29mczFdID4gbmF0Mi5kYXRhW29mczJdKSByZXR1cm4gMTtcbiAgaWYobmF0MS5kYXRhW29mczFdIDwgbmF0Mi5kYXRhW29mczJdKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX25hdFxuLy9SZXF1aXJlczogbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgdmFyIGEgPSBudW1fZGlnaXRzX25hdChuYXQxLCBvZnMxLCBsZW4xKTtcbiAgdmFyIGIgPSBudW1fZGlnaXRzX25hdChuYXQyLCBvZnMyLCBsZW4yKTtcbiAgaWYoYSA+IGIpIHJldHVybiAxO1xuICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICBmb3IodmFyIGkgPSBsZW4xIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA+IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkpIHJldHVybiAxO1xuICAgIGlmICgobmF0MS5kYXRhW29mczEraV0gPj4+IDApIDwgKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSkgcmV0dXJuIC0xO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX25hdF9yZWFsXG4vL1JlcXVpcmVzOiBjb21wYXJlX25hdFxuZnVuY3Rpb24gY29tcGFyZV9uYXRfcmVhbChuYXQxLG5hdDIpe1xuICByZXR1cm4gY29tcGFyZV9uYXQobmF0MSwwLG5hdDEuZGF0YS5sZW5ndGgsbmF0MiwwLG5hdDIuZGF0YS5sZW5ndGgpO1xufVxuXG4vL1Byb3ZpZGVzOiBsYW5kX2RpZ2l0X25hdFxuZnVuY3Rpb24gbGFuZF9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gJj0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbG9yX2RpZ2l0X25hdFxuZnVuY3Rpb24gbG9yX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSB8PSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBseG9yX2RpZ2l0X25hdFxuZnVuY3Rpb24gbHhvcl9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gXj0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBzZXJpYWxpemVfbmF0XG5mdW5jdGlvbiBzZXJpYWxpemVfbmF0KHdyaXRlciwgbmF0LCBzeil7XG4gIHZhciBsZW4gPSBuYXQuZGF0YS5sZW5ndGg7XG4gIHdyaXRlci53cml0ZSgzMiwgbGVuKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICB3cml0ZXIud3JpdGUoMzIsIG5hdC5kYXRhW2ldKTtcbiAgfVxuICBzelswXSA9IGxlbiAqIDQ7XG4gIHN6WzFdID0gbGVuICogODtcbn1cblxuLy9Qcm92aWRlczogZGVzZXJpYWxpemVfbmF0XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gZGVzZXJpYWxpemVfbmF0KHJlYWRlciwgc3ope1xuICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgdmFyIG5hdCA9IG5ldyBNbE5hdChsZW4pO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIG5hdC5kYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgfVxuICBzelswXSA9IGxlbiAqIDQ7XG4gIHJldHVybiBuYXQ7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG5cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlXG52YXIgY2FtbF9ncl9zdGF0ZTtcblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfZ2V0KCkge1xuICBpZihjYW1sX2dyX3N0YXRlKSB7XG4gICAgcmV0dXJuIGNhbWxfZ3Jfc3RhdGU7XG4gIH1cbiAgdGhyb3cgWzAsY2FtbF9uYW1lZF92YWx1ZShcIkdyYXBoaWNzLkdyYXBoaWNfZmFpbHVyZVwiKSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIk5vdCBpbml0aWFsaXplZFwiKV1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlLGNhbWxfZ3Jfc3RhdGVfaW5pdFxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KSB7XG4gIGNhbWxfZ3Jfc3RhdGU9Y3R4O1xuICBjYW1sX2dyX3N0YXRlX2luaXQoKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9vcGVuX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fZ3JhcGgoaW5mbyl7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgdmFyIGluZm8gPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhpbmZvKTtcbiAgZnVuY3Rpb24gZ2V0KG5hbWUpe1xuICAgIHZhciByZXMgPSBpbmZvLm1hdGNoKFwiKF58LCkgKlwiK25hbWUrXCIgKj0gKihbYS16QS1aMC05X10rKSAqKCx8JClcIik7XG4gICAgaWYocmVzKSByZXR1cm4gcmVzWzJdO1xuICB9XG4gIHZhciBzcGVjcyA9IFtdO1xuICBpZighKGluZm89PVwiXCIpKSBzcGVjcy5wdXNoKGluZm8pO1xuICB2YXIgdGFyZ2V0ID0gZ2V0KFwidGFyZ2V0XCIpO1xuICBpZighdGFyZ2V0KSB0YXJnZXQ9XCJcIjtcbiAgdmFyIHN0YXR1cyA9IGdldChcInN0YXR1c1wiKTtcbiAgaWYoIXN0YXR1cykgc3BlY3MucHVzaChcInN0YXR1cz0xXCIpXG5cbiAgdmFyIHcgPSBnZXQoXCJ3aWR0aFwiKTtcbiAgdyA9IHc/cGFyc2VJbnQodyk6MjAwO1xuICBzcGVjcy5wdXNoKFwid2lkdGg9XCIrdyk7XG5cbiAgdmFyIGggPSBnZXQoXCJoZWlnaHRcIik7XG4gIGggPSBoP3BhcnNlSW50KGgpOjIwMDtcbiAgc3BlY3MucHVzaChcImhlaWdodD1cIitoKTtcblxuICB2YXIgd2luID0gZy5vcGVuKFwiYWJvdXQ6YmxhbmtcIix0YXJnZXQsc3BlY3Muam9pbihcIixcIikpO1xuICBpZighd2luKSB7Y2FtbF9mYWlsd2l0aChcIkdyYXBoaWNzLm9wZW5fZ3JhcGg6IGNhbm5vdCBvcGVuIHRoZSB3aW5kb3dcIil9XG4gIHZhciBkb2MgPSB3aW4uZG9jdW1lbnQ7XG4gIHZhciBjYW52YXMgPSBkb2MuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY2FudmFzLndpZHRoID0gdztcbiAgY2FudmFzLmhlaWdodCA9IGg7XG4gIHZhciBjdHggPSBjYW1sX2dyX3N0YXRlX2NyZWF0ZShjYW52YXMsdyxoKTtcbiAgY3R4LnNldF90aXRsZSA9IGZ1bmN0aW9uICh0aXRsZSkge1xuICAgIGRvYy50aXRsZSA9IHRpdGxlO1xuICB9O1xuICBjYW1sX2dyX3N0YXRlX3NldChjdHgpO1xuICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICBib2R5LnN0eWxlLm1hcmdpbiA9IFwiMHB4XCI7XG4gIGJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfaW5pdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfY29sb3IsY2FtbF9ncl9tb3ZldG8sY2FtbF9ncl9yZXNpemVfd2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF9saW5lX3dpZHRoLGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSxjYW1sX2dyX3NldF9mb250XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGVcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfaW5pdCgpe1xuICBjYW1sX2dyX21vdmV0byhjYW1sX2dyX3N0YXRlLngsY2FtbF9ncl9zdGF0ZS55KTtcbiAgY2FtbF9ncl9yZXNpemVfd2luZG93KGNhbWxfZ3Jfc3RhdGUud2lkdGgsY2FtbF9ncl9zdGF0ZS5oZWlnaHQpO1xuICBjYW1sX2dyX3NldF9saW5lX3dpZHRoKGNhbWxfZ3Jfc3RhdGUubGluZV93aWR0aCk7XG4gIGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZShjYW1sX2dyX3N0YXRlLnRleHRfc2l6ZSk7XG4gIGNhbWxfZ3Jfc2V0X2ZvbnQoY2FtbF9ncl9zdGF0ZS5mb250KTtcbiAgY2FtbF9ncl9zZXRfY29sb3IoY2FtbF9ncl9zdGF0ZS5jb2xvcik7XG4gIGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZShjYW1sX2dyX3N0YXRlLnRpdGxlKTtcbiAgLy9jYW1sX2dyX3Jlc2l6ZV93aW5kb3cgbWlnaHQgcmVzZXQgc29tZSBjYW52YXMnIHByb3BlcnRpZXNcbiAgY2FtbF9ncl9zdGF0ZS5jb250ZXh0LnRleHRCYXNlbGluZSA9ICdib3R0b20nO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9jcmVhdGUoY2FudmFzLHcsaCl7XG4gIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgIGNhbnZhcyA6IGNhbnZhcyxcbiAgICB4IDogMCxcbiAgICB5IDogMCxcbiAgICB3aWR0aCA6IHcsXG4gICAgaGVpZ2h0IDogaCxcbiAgICBsaW5lX3dpZHRoIDogMSxcbiAgICBmb250IDogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcImZpeGVkXCIpLFxuICAgIHRleHRfc2l6ZSA6IDI2LFxuICAgIGNvbG9yIDogMHgwMDAwMDAsXG4gICAgdGl0bGUgOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpXG4gIH07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZG9jX29mX3N0YXRlXG5mdW5jdGlvbiBjYW1sX2dyX2RvY19vZl9zdGF0ZShzdGF0ZSkge1xuICBpZihzdGF0ZS5jYW52YXMub3duZXJEb2N1bWVudClcbiAgICByZXR1cm4gc3RhdGUuY2FudmFzLm93bmVyRG9jdW1lbnQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xvc2VfZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2Nsb3NlX2dyYXBoKCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jYW52YXMud2lkdGggPSAwO1xuICBzLmNhbnZhcy5oZWlnaHQgPSAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZShuYW1lKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLnRpdGxlID0gbmFtZTtcbiAgdmFyIGpzbmFtZSA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpO1xuICBpZihzLnNldF90aXRsZSkgcy5zZXRfdGl0bGUoanNuYW1lKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcmVzaXplX3dpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcmVzaXplX3dpbmRvdyh3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KClcbiAgcy53aWR0aCA9IHc7XG4gIHMuaGVpZ2h0ID0gaDtcbiAgcy5jYW52YXMud2lkdGggPSB3O1xuICBzLmNhbnZhcy5oZWlnaHQgPSBoO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbGVhcl9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xlYXJfZ3JhcGgoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNhbnZhcy53aWR0aCA9IHMud2lkdGg7XG4gIHMuY2FudmFzLmhlaWdodCA9IHMuaGVpZ2h0O1xuICAvLyAgcy5jb250ZXh0LnN0cm9rZVJlY3QgKDAuLCAwLiwgcy53aWR0aCwgcy5oZWlnaHQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zaXplX3hcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NpemVfeCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLndpZHRoO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaXplX3lcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NpemVfeSgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLmhlaWdodDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9jb2xvclxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2NvbG9yKGNvbG9yKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBmdW5jdGlvbiBjb252ZXJ0KG51bWJlcikge1xuICAgIHZhciBzdHIgPSAnJyArIG51bWJlci50b1N0cmluZygxNik7XG4gICAgd2hpbGUgKHN0ci5sZW5ndGggPCAyKSBzdHIgPSAnMCcgKyBzdHI7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICB2YXJcbiAgciA9IChjb2xvciA+PiAxNikgJiAweGZmLFxuICBnID0gKGNvbG9yID4+IDgpICAmIDB4ZmYsXG4gIGIgPSAoY29sb3IgPj4gMCkgICYgMHhmZjtcbiAgcy5jb2xvcj1jb2xvcjtcbiAgdmFyIGNfc3RyID0gJyMnICsgY29udmVydChyKSArIGNvbnZlcnQoZykgKyBjb252ZXJ0KGIpO1xuICBzLmNvbnRleHQuZmlsbFN0eWxlID0gICBjX3N0cjtcbiAgcy5jb250ZXh0LnN0cm9rZVN0eWxlID0gY19zdHI7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9wbG90XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9wbG90KHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltPXMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEoMSwxKTtcbiAgdmFyIGQgPSBpbS5kYXRhO1xuICB2YXIgY29sb3IgPSBzLmNvbG9yO1xuICBkWzBdID0gKGNvbG9yID4+IDE2KSAmIDB4ZmY7IC8vclxuICBkWzFdID0gKGNvbG9yID4+IDgpICAmIDB4ZmYsIC8vZ1xuICBkWzJdID0gKGNvbG9yID4+IDApICAmIDB4ZmY7IC8vYlxuICBkWzNdID0gMHhGRjsgLy9hXG4gIHMueD14O1xuICBzLnk9eTtcbiAgcy5jb250ZXh0LnB1dEltYWdlRGF0YShpbSx4LHMuaGVpZ2h0IC0geSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3BvaW50X2NvbG9yXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9wb2ludF9jb2xvcih4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbT1zLmNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgscy5oZWlnaHQgLSB5LDEsMSk7XG4gIHZhciBkID0gaW0uZGF0YTtcbiAgcmV0dXJuIChkWzBdIDw8IDE2KSArIChkWzFdIDw8IDgpICsgZFsyXTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbW92ZXRvXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9tb3ZldG8oeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLng9eDtcbiAgcy55PXk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2N1cnJlbnRfeFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3VycmVudF94KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMueFxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9jdXJyZW50X3lcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2N1cnJlbnRfeSgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLnlcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbGluZXRvXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9saW5ldG8oeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIHMuY29udGV4dC5tb3ZlVG8ocy54LHMuaGVpZ2h0IC0gcy55KTtcbiAgcy5jb250ZXh0LmxpbmVUbyh4LHMuaGVpZ2h0IC0geSk7XG4gIHMuY29udGV4dC5zdHJva2UoKTtcbiAgcy54PXg7XG4gIHMueT15O1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19yZWN0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3JlY3QoeCx5LHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LnN0cm9rZVJlY3QoeCxzLmhlaWdodCAtIHksdywtaCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfYXJjX2F1eChjdHgsY3gsY3kscnkscngsYTEsYTIpe1xuICB3aGlsZShhMT5hMikgYTIrPTM2MDtcbiAgYTEgLz0gMTgwO1xuICBhMiAvPSAxODA7XG4gIHZhciByb3QgPSAwLHhQb3MseVBvcyx4UG9zX3ByZXYseVBvc19wcmV2O1xuICB2YXIgc3BhY2UgPSAyO1xuICB2YXIgbnVtID0gKCgoYTIgLSBhMSkgKiBNYXRoLlBJICogKChyeCtyeSkvMikpIC8gc3BhY2UpIHwgMDtcbiAgdmFyIGRlbHRhID0gKGEyIC0gYTEpICogTWF0aC5QSSAvIG51bTtcbiAgdmFyIGkgPSBhMSAqIE1hdGguUEk7XG4gIGZvciAodmFyIGo9MDtqPD1udW07aisrKXtcbiAgICB4UG9zID0gY3ggLSAocnggKiBNYXRoLnNpbihpKSkgKiBNYXRoLnNpbihyb3QgKiBNYXRoLlBJKSArIChyeSAqIE1hdGguY29zKGkpKSAqIE1hdGguY29zKHJvdCAqIE1hdGguUEkpO1xuICAgIHhQb3MgPSB4UG9zLnRvRml4ZWQoMik7XG4gICAgeVBvcyA9IGN5ICsgKHJ5ICogTWF0aC5jb3MoaSkpICogTWF0aC5zaW4ocm90ICogTWF0aC5QSSkgKyAocnggKiBNYXRoLnNpbihpKSkgKiBNYXRoLmNvcyhyb3QgKiBNYXRoLlBJKTtcbiAgICB5UG9zID0geVBvcy50b0ZpeGVkKDIpO1xuICAgIGlmIChqPT0wKSB7XG4gICAgICBjdHgubW92ZVRvKHhQb3MsIHlQb3MpO1xuICAgIH0gZWxzZSBpZiAoeFBvc19wcmV2IT14UG9zIHx8IHlQb3NfcHJldiE9eVBvcyl7XG4gICAgICBjdHgubGluZVRvKHhQb3MsIHlQb3MpO1xuICAgIH1cbiAgICB4UG9zX3ByZXY9eFBvcztcbiAgICB5UG9zX3ByZXY9eVBvcztcbiAgICBpLT0gZGVsdGE7Ly9jY3dcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfYXJjXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldCwgY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfYXJjKHgseSxyeCxyeSxhMSxhMil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBjYW1sX2dyX2FyY19hdXgocy5jb250ZXh0LHgscy5oZWlnaHQgLSB5LHJ4LHJ5LGExLGEyKTtcbiAgcy5jb250ZXh0LnN0cm9rZSgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfbGluZV93aWR0aFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgodyl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5saW5lX3dpZHRoID0gdztcbiAgcy5jb250ZXh0LmxpbmVXaWR0aCA9IHdcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9yZWN0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX3JlY3QoeCx5LHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmZpbGxSZWN0KHgscy5oZWlnaHQgLSB5LHcsLWgpO1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9wb2x5XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX3BvbHkoYXIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgcy5jb250ZXh0Lm1vdmVUbyhhclsxXVsxXSxzLmhlaWdodCAtIGFyWzFdWzJdKTtcbiAgZm9yKHZhciBpID0gMjsgaSA8IGFyLmxlbmd0aDsgaSsrKVxuICAgIHMuY29udGV4dC5saW5lVG8oYXJbaV1bMV0scy5oZWlnaHQgLSBhcltpXVsyXSk7XG4gIHMuY29udGV4dC5saW5lVG8oYXJbMV1bMV0scy5oZWlnaHQgLSBhclsxXVsyXSk7XG4gIHMuY29udGV4dC5maWxsKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfYXJjXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldCwgY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfYXJjKHgseSxyeCxyeSxhMSxhMil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBjYW1sX2dyX2FyY19hdXgocy5jb250ZXh0LHgscy5oZWlnaHQgLSB5LHJ4LHJ5LGExLGEyKTtcbiAgcy5jb250ZXh0LmZpbGwoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19zdHJcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfc3RyKHN0cil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIG0gPSBzLmNvbnRleHQubWVhc3VyZVRleHQoc3RyKTtcbiAgdmFyIGR4ID0gbS53aWR0aDtcbiAgcy5jb250ZXh0LmZpbGxUZXh0KHN0cixzLngscy5oZWlnaHQgLSBzLnkpO1xuICBzLnggKz0gZHggfCAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfZ3JfZHJhd19zdHJcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19jaGFyKGMpe1xuICBjYW1sX2dyX2RyYXdfc3RyKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ncl9kcmF3X3N0clxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19zdHJpbmcoc3RyKXtcbiAgY2FtbF9ncl9kcmF3X3N0cihjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzdHIpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2ZvbnRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfZm9udChmKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmZvbnQgPSBmO1xuICBzLmNvbnRleHQuZm9udCA9IHMudGV4dF9zaXplICsgXCJweCBcIiArIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMuZm9udCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF90ZXh0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfdGV4dF9zaXplKHNpemUpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMudGV4dF9zaXplID0gc2l6ZTtcbiAgcy5jb250ZXh0LmZvbnQgPSBzLnRleHRfc2l6ZSArIFwicHggXCIgKyBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzLmZvbnQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl90ZXh0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl90ZXh0X3NpemUodHh0KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgdyA9IHMuY29udGV4dC5tZWFzdXJlVGV4dChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyh0eHQpKS53aWR0aDtcbiAgcmV0dXJuIFswLHcscy50ZXh0X3NpemVdO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbWFrZV9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbWFrZV9pbWFnZShhcnIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBoID0gYXJyLmxlbmd0aCAtIDEgO1xuICB2YXIgdyA9IGFyclsxXS5sZW5ndGggLSAxO1xuICB2YXIgaW0gPSBzLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKHcsaCk7XG4gIGZvcih2YXIgaT0wO2k8aDtpKyspe1xuICAgIGZvcih2YXIgaj0wO2o8dztqKyspe1xuICAgICAgdmFyIGMgPSBhcnJbaSsxXVtqKzFdO1xuICAgICAgdmFyIG8gPSBpKih3KjQpICsgKGogKiA0KTtcbiAgICAgIGlmKGMgPT0gLTEpIHtcbiAgICAgICAgaW0uZGF0YVtvICsgMF0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAxXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDJdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgM10gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW0uZGF0YVtvICsgMF0gPSBjID4+IDE2ICYgMHhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgMV0gPSBjID4+ICA4ICYgMHhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgMl0gPSBjID4+ICAwICYgMFhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgM10gPSAweGZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaW1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHVtcF9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHVtcF9pbWFnZShpbSl7XG4gIHZhciBkYXRhID0gWzBdXG4gIGZvcih2YXIgaT0wOyBpPGltLmhlaWdodDtpKyspe1xuICAgIGRhdGFbaSsxXSA9IFswXVxuICAgIGZvcih2YXIgaj0wOyBqPGltLndpZHRoO2orKyl7XG4gICAgICB2YXIgbyA9IGkqKGltLndpZHRoKjQpICsgKGogKiA0KSxcbiAgICAgICAgICByID0gaW0uZGF0YVtvKzBdLFxuICAgICAgICAgIGcgPSBpbS5kYXRhW28rMV0sXG4gICAgICAgICAgYiA9IGltLmRhdGFbbysyXTtcbiAgICAgIGRhdGFbaSsxXVtqKzFdID0gKHIgPDwgMTYpICsgKGcgPDwgOCkgKyBiXG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfaW1hZ2UoaW0seCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBpZighaW0uaW1hZ2UpIHtcbiAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBjYW52YXMud2lkdGggPSBzLndpZHRoO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBzLmhlaWdodDtcbiAgICBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpLnB1dEltYWdlRGF0YShpbSwwLDApO1xuICAgIHZhciBpbWFnZSA9IG5ldyBnbG9iYWxUaGlzLkltYWdlKCk7XG4gICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgcy5jb250ZXh0LmRyYXdJbWFnZShpbWFnZSx4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSk7XG4gICAgICBpbS5pbWFnZSA9IGltYWdlO1xuICAgIH1cbiAgICBpbWFnZS5zcmMgPSBjYW52YXMudG9EYXRhVVJMKFwiaW1hZ2UvcG5nXCIpO1xuICB9IGVsc2Uge1xuICAgIHMuY29udGV4dC5kcmF3SW1hZ2UoaW0uaW1hZ2UseCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHkpO1xuICB9XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9jcmVhdGVfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2NyZWF0ZV9pbWFnZSh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKHgseSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2JsaXRfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2JsaXRfaW1hZ2UoaW0seCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW0yID0gcy5jb250ZXh0LmdldEltYWdlRGF0YSh4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSxpbS53aWR0aCxpbS5oZWlnaHQpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGltMi5kYXRhLmxlbmd0aDsgaSs9NCl7XG4gICAgaW0uZGF0YVtpXSA9IGltMi5kYXRhW2ldO1xuICAgIGltLmRhdGFbaSsxXSA9IGltMi5kYXRhW2krMV07XG4gICAgaW0uZGF0YVtpKzJdID0gaW0yLmRhdGFbaSsyXTtcbiAgICBpbS5kYXRhW2krM10gPSBpbTIuZGF0YVtpKzNdO1xuICB9XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaWdpb19oYW5kbGVyXG5mdW5jdGlvbiBjYW1sX2dyX3NpZ2lvX2hhbmRsZXIoKXtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2lnaW9fc2lnbmFsXG5mdW5jdGlvbiBjYW1sX2dyX3NpZ2lvX3NpZ25hbCgpe3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9ncl93YWl0X2V2ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3dhaXRfZXZlbnQoX2V2bCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3dhaXRfZXZlbnQgbm90IEltcGxlbWVudGVkOiB1c2UgR3JhcGhpY3NfanMgaW5zdGVhZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zeW5jaHJvbml6ZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9zeW5jaHJvbml6ZSAoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3N5bmNocm9uaXplIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcmVtZW1iZXJfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9yZW1lbWJlcl9tb2RlICgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfcmVtZW1iZXJfbW9kZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Rpc3BsYXlfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9kaXNwbGF5X21vZGUoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX2Rpc3BsYXlfbW9kZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfd2luZG93X2lkXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3dpbmRvd19pZChhKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3dpbmRvd19pZCBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3coYSxiLGMsZCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyhhKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2NvbnN0YW50c1xudmFyIGNhbWxfbWFyc2hhbF9jb25zdGFudHMgPSB7XG4gIFBSRUZJWF9TTUFMTF9CTE9DSzogICAgICAgICAweDgwLFxuICBQUkVGSVhfU01BTExfSU5UOiAgICAgICAgICAgMHg0MCxcbiAgUFJFRklYX1NNQUxMX1NUUklORzogICAgICAgIDB4MjAsXG4gIENPREVfSU5UODogICAgICAgICAgICAgICAgICAweDAwLFxuICBDT0RFX0lOVDE2OiAgICAgICAgICAgICAgICAgMHgwMSxcbiAgQ09ERV9JTlQzMjogICAgICAgICAgICAgICAgIDB4MDIsXG4gIENPREVfSU5UNjQ6ICAgICAgICAgICAgICAgICAweDAzLFxuICBDT0RFX1NIQVJFRDg6ICAgICAgICAgICAgICAgMHgwNCxcbiAgQ09ERV9TSEFSRUQxNjogICAgICAgICAgICAgIDB4MDUsXG4gIENPREVfU0hBUkVEMzI6ICAgICAgICAgICAgICAweDA2LFxuICBDT0RFX0JMT0NLMzI6ICAgICAgICAgICAgICAgMHgwOCxcbiAgQ09ERV9CTE9DSzY0OiAgICAgICAgICAgICAgIDB4MTMsXG4gIENPREVfU1RSSU5HODogICAgICAgICAgICAgICAweDA5LFxuICBDT0RFX1NUUklORzMyOiAgICAgICAgICAgICAgMHgwQSxcbiAgQ09ERV9ET1VCTEVfQklHOiAgICAgICAgICAgIDB4MEIsXG4gIENPREVfRE9VQkxFX0xJVFRMRTogICAgICAgICAweDBDLFxuICBDT0RFX0RPVUJMRV9BUlJBWThfQklHOiAgICAgMHgwRCxcbiAgQ09ERV9ET1VCTEVfQVJSQVk4X0xJVFRMRTogIDB4MEUsXG4gIENPREVfRE9VQkxFX0FSUkFZMzJfQklHOiAgICAweDBGLFxuICBDT0RFX0RPVUJMRV9BUlJBWTMyX0xJVFRMRTogMHgwNyxcbiAgQ09ERV9DT0RFUE9JTlRFUjogICAgICAgICAgIDB4MTAsXG4gIENPREVfSU5GSVhQT0lOVEVSOiAgICAgICAgICAweDExLFxuICBDT0RFX0NVU1RPTTogICAgICAgICAgICAgICAgMHgxMixcbiAgQ09ERV9DVVNUT01fTEVOOiAgICAgICAgICAgIDB4MTgsXG4gIENPREVfQ1VTVE9NX0ZJWEVEOiAgICAgICAgICAweDE5XG59XG5cblxuLy9Qcm92aWRlczogTWxTdHJpbmdSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIE1sU3RyaW5nUmVhZGVyIChzLCBpKSB7IHRoaXMucyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7IHRoaXMuaSA9IGk7IH1cbk1sU3RyaW5nUmVhZGVyLnByb3RvdHlwZSA9IHtcbiAgcmVhZDh1OmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMucy5jaGFyQ29kZUF0KHRoaXMuaSsrKTsgfSxcbiAgcmVhZDhzOmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMucy5jaGFyQ29kZUF0KHRoaXMuaSsrKSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSArIDEpXG4gIH0sXG4gIHJlYWQxNnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDI0ID4+IDE2KSB8IHMuY2hhckNvZGVBdChpICsgMSk7XG4gIH0sXG4gIHJlYWQzMnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoKHMuY2hhckNvZGVBdChpKSA8PCAyNCkgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgMTYpIHxcbiAgICAgICAgICAgIChzLmNoYXJDb2RlQXQoaSsyKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpKzMpKSA+Pj4gMDtcbiAgfSxcbiAgcmVhZDMyczpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgMjQpIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDE2KSB8XG4gICAgICAocy5jaGFyQ29kZUF0KGkrMikgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSszKTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh0aGlzLnMuc3Vic3RyaW5nKGksIGkgKyBsZW4pKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBCaWdTdHJpbmdSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5LCBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBCaWdTdHJpbmdSZWFkZXIgKGJzLCBpKSB7IHRoaXMucyA9IGJzOyB0aGlzLmkgPSBpOyB9XG5CaWdTdHJpbmdSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSA8PCA4KSB8IGNhbWxfYmFfZ2V0XzEocyxpICsgMSlcbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgPDwgMjQgPj4gMTYpIHwgY2FtbF9iYV9nZXRfMShzLGkgKyAxKTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgoY2FtbF9iYV9nZXRfMShzLGkpICAgPDwgMjQpIHwgKGNhbWxfYmFfZ2V0XzEocyxpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAoY2FtbF9iYV9nZXRfMShzLGkrMikgPDwgOCkgIHwgY2FtbF9iYV9nZXRfMShzLGkrMykgICAgICAgICApID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSAgIDw8IDI0KSB8IChjYW1sX2JhX2dldF8xKHMsaSsxKSA8PCAxNikgfFxuICAgICAgKGNhbWxfYmFfZ2V0XzEocyxpKzIpIDw8IDgpICB8IGNhbWxfYmFfZ2V0XzEocyxpKzMpO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB2YXIgYXJyID0gbmV3IEFycmF5KGxlbilcbiAgICBmb3IodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspe1xuICAgICAgYXJyW2pdID0gY2FtbF9iYV9nZXRfMSh0aGlzLnMsIGkraik7XG4gICAgfVxuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGFycik7XG4gIH1cbn1cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cywgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9mbG9hdF9vZl9ieXRlcyAoYSkge1xuICByZXR1cm4gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIChjYW1sX2ludDY0X29mX2J5dGVzIChhKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogTWxTdHJpbmdSZWFkZXIsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXJcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmcocyxvZnMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBNbFN0cmluZ1JlYWRlciAocywgdHlwZW9mIG9mcz09XCJudW1iZXJcIj9vZnM6b2ZzWzBdKTtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBNbFN0cmluZ1JlYWRlciwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciwgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyhzLG9mcykge1xuICB2YXIgcmVhZGVyID0gbmV3IE1sU3RyaW5nUmVhZGVyIChjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSwgdHlwZW9mIG9mcz09XCJudW1iZXJcIj9vZnM6b2ZzWzBdKTtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgc2l6ZVswXSA9IDg7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzICh0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X21hcnNoYWwod3JpdGVyLCB2LCBzaXplcykge1xuICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMgKHYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykgd3JpdGVyLndyaXRlICg4LCBiW2ldKTtcbiAgc2l6ZXNbMF0gPSA4OyBzaXplc1sxXSA9IDg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfdW5tYXJzaGFsXG5mdW5jdGlvbiBjYW1sX2ludDMyX3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICBzaXplWzBdID0gNDtcbiAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICBzd2l0Y2ggKHJlYWRlci5yZWFkOHUgKCkpIHtcbiAgY2FzZSAxOlxuICAgIHNpemVbMF0gPSA0O1xuICAgIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbiAgY2FzZSAyOlxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogbmF0aXZlIGludGVnZXIgdmFsdWUgdG9vIGxhcmdlXCIpO1xuICBkZWZhdWx0OiBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGlsbC1mb3JtZWQgbmF0aXZlIGludGVnZXJcIik7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3VubWFyc2hhbCwgY2FtbF9pbnQ2NF9tYXJzaGFsLCBjYW1sX2ludDY0X2NvbXBhcmUsIGNhbWxfaW50NjRfaGFzaFxuLy9SZXF1aXJlczogY2FtbF9pbnQzMl91bm1hcnNoYWwsIGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9iYV9zZXJpYWxpemUsIGNhbWxfYmFfZGVzZXJpYWxpemUsIGNhbWxfYmFfY29tcGFyZSwgY2FtbF9iYV9oYXNoXG52YXIgY2FtbF9jdXN0b21fb3BzID1cbiAgICB7XCJfalwiOiB7XG4gICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfaW50NjRfdW5tYXJzaGFsLFxuICAgICAgc2VyaWFsaXplICA6IGNhbWxfaW50NjRfbWFyc2hhbCxcbiAgICAgIGZpeGVkX2xlbmd0aCA6IDgsXG4gICAgICBjb21wYXJlIDogY2FtbF9pbnQ2NF9jb21wYXJlLFxuICAgICAgaGFzaCA6IGNhbWxfaW50NjRfaGFzaFxuICAgIH0sXG4gICAgIFwiX2lcIjoge1xuICAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9pbnQzMl91bm1hcnNoYWwsXG4gICAgICAgZml4ZWRfbGVuZ3RoIDogNCxcbiAgICAgfSxcbiAgICAgXCJfblwiOiB7XG4gICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWwsXG4gICAgICAgZml4ZWRfbGVuZ3RoIDogNCxcbiAgICAgfSxcbiAgICAgXCJfYmlnYXJyYXlcIjp7XG4gICAgICAgZGVzZXJpYWxpemUgOiAoZnVuY3Rpb24gKHJlYWRlciwgc3opIHtyZXR1cm4gY2FtbF9iYV9kZXNlcmlhbGl6ZSAocmVhZGVyLHN6LFwiX2JpZ2FycmF5XCIpfSksXG4gICAgICAgc2VyaWFsaXplIDogY2FtbF9iYV9zZXJpYWxpemUsXG4gICAgICAgY29tcGFyZSA6IGNhbWxfYmFfY29tcGFyZSxcbiAgICAgICBoYXNoOiBjYW1sX2JhX2hhc2gsXG4gICAgIH0sXG4gICAgIFwiX2JpZ2FycjAyXCI6e1xuICAgICAgIGRlc2VyaWFsaXplIDogKGZ1bmN0aW9uIChyZWFkZXIsIHN6KSB7cmV0dXJuIGNhbWxfYmFfZGVzZXJpYWxpemUgKHJlYWRlcixzeixcIl9iaWdhcnIwMlwiKX0pLFxuICAgICAgIHNlcmlhbGl6ZSA6IGNhbWxfYmFfc2VyaWFsaXplLFxuICAgICAgIGNvbXBhcmUgOiBjYW1sX2JhX2NvbXBhcmUsXG4gICAgICAgaGFzaDogY2FtbF9iYV9oYXNoLFxuICAgICB9XG4gICAgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfZmxvYXRfb2ZfYnl0ZXMsIGNhbWxfY3VzdG9tX29wc1xuXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKSB7XG4gIHZhciBfbWFnaWMgPSByZWFkZXIucmVhZDMydSAoKVxuICB2YXIgX2Jsb2NrX2xlbiA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICB2YXIgbnVtX29iamVjdHMgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgdmFyIF9zaXplXzMyID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gIHZhciBfc2l6ZV82NCA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIGludGVybl9vYmpfdGFibGUgPSAobnVtX29iamVjdHMgPiAwKT9bXTpudWxsO1xuICB2YXIgb2JqX2NvdW50ZXIgPSAwO1xuICBmdW5jdGlvbiBpbnRlcm5fcmVjICgpIHtcbiAgICB2YXIgY29kZSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgaWYgKGNvZGUgPj0gMHg0MCAvKmNzdC5QUkVGSVhfU01BTExfSU5UKi8pIHtcbiAgICAgIGlmIChjb2RlID49IDB4ODAgLypjc3QuUFJFRklYX1NNQUxMX0JMT0NLKi8pIHtcbiAgICAgICAgdmFyIHRhZyA9IGNvZGUgJiAweEY7XG4gICAgICAgIHZhciBzaXplID0gKGNvZGUgPj4gNCkgJiAweDc7XG4gICAgICAgIHZhciB2ID0gW3RhZ107XG4gICAgICAgIGlmIChzaXplID09IDApIHJldHVybiB2O1xuICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlXG4gICAgICAgIHJldHVybiAoY29kZSAmIDB4M0YpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29kZSA+PSAweDIwLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyAqLykge1xuICAgICAgICB2YXIgbGVuID0gY29kZSAmIDB4MUY7XG4gICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2goY29kZSkge1xuICAgICAgICBjYXNlIDB4MDA6IC8vY3N0LkNPREVfSU5UODpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQ4cyAoKTtcbiAgICAgICAgY2FzZSAweDAxOiAvL2NzdC5DT0RFX0lOVDE2OlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDE2cyAoKTtcbiAgICAgICAgY2FzZSAweDAyOiAvL2NzdC5DT0RFX0lOVDMyOlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbiAgICAgICAgY2FzZSAweDAzOiAvL2NzdC5DT0RFX0lOVDY0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaW50ZWdlciB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwNDogLy9jc3QuQ09ERV9TSEFSRUQ4OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyIC0gb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA1OiAvL2NzdC5DT0RFX1NIQVJFRDE2OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDE2dSAoKTtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlciAtIG9mZnNldF07XG4gICAgICAgIGNhc2UgMHgwNjogLy9jc3QuQ09ERV9TSEFSRUQzMjpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIgLSBvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDg6IC8vY3N0LkNPREVfQkxPQ0szMjpcbiAgICAgICAgICB2YXIgaGVhZGVyID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgdmFyIHRhZyA9IGhlYWRlciAmIDB4RkY7XG4gICAgICAgICAgdmFyIHNpemUgPSBoZWFkZXIgPj4gMTA7XG4gICAgICAgICAgdmFyIHYgPSBbdGFnXTtcbiAgICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gdjtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDEzOiAvL2NzdC5DT0RFX0JMT0NLNjQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogZGF0YSBibG9jayB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwOTogLy9jc3QuQ09ERV9TVFJJTkc4OlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQTogLy9jc3QuQ09ERV9TVFJJTkczMjpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBDOiAvL2NzdC5DT0RFX0RPVUJMRV9MSVRUTEU6XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCA4O2krKykgdFs3IC0gaV0gPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHZhciB2ID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEI6IC8vY3N0LkNPREVfRE9VQkxFX0JJRzpcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IDg7aSsrKSB0W2ldID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICB2YXIgdiA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBFOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWThfTElUVExFOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEQ6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZOF9CSUc6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdiBbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwNzogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVkzMl9MSVRUTEU6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEY6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZMzJfQklHOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHYgW2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MTA6IC8vY3N0LkNPREVfQ09ERVBPSU5URVI6XG4gICAgICAgIGNhc2UgMHgxMTogLy9jc3QuQ09ERV9JTkZJWFBPSU5URVI6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogY29kZSBwb2ludGVyXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MTI6IC8vY3N0LkNPREVfQ1VTVE9NOlxuICAgICAgICBjYXNlIDB4MTg6IC8vY3N0LkNPREVfQ1VTVE9NX0xFTjpcbiAgICAgICAgY2FzZSAweDE5OiAvL2NzdC5DT0RFX0NVU1RPTV9GSVhFRDpcbiAgICAgICAgICB2YXIgYywgcyA9IFwiXCI7XG4gICAgICAgICAgd2hpbGUgKChjID0gcmVhZGVyLnJlYWQ4dSAoKSkgIT0gMCkgcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlIChjKTtcbiAgICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW3NdO1xuICAgICAgICAgIHZhciBleHBlY3RlZF9zaXplO1xuICAgICAgICAgIGlmKCFvcHMpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHVua25vd24gY3VzdG9tIGJsb2NrIGlkZW50aWZpZXJcIik7XG4gICAgICAgICAgc3dpdGNoKGNvZGUpe1xuICAgICAgICAgIGNhc2UgMHgxMjogLy8gY3N0LkNPREVfQ1VTVE9NIChkZXByZWNhdGVkKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAweDE5OiAvLyBjc3QuQ09ERV9DVVNUT01fRklYRURcbiAgICAgICAgICAgIGlmKCFvcHMuZml4ZWRfbGVuZ3RoKVxuICAgICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGV4cGVjdGVkIGEgZml4ZWQtc2l6ZSBjdXN0b20gYmxvY2tcIik7XG4gICAgICAgICAgICBleHBlY3RlZF9zaXplID0gb3BzLmZpeGVkX2xlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMHgxODogLy8gY3N0LkNPREVfQ1VTVE9NX0xFTlxuICAgICAgICAgICAgZXhwZWN0ZWRfc2l6ZSA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgICAgLy8gU2tpcCBzaXplNjRcbiAgICAgICAgICAgIHJlYWRlci5yZWFkMzJzKCk7IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG9sZF9wb3MgPSByZWFkZXIuaTtcbiAgICAgICAgICB2YXIgc2l6ZSA9IFswXTtcbiAgICAgICAgICB2YXIgdiA9IG9wcy5kZXNlcmlhbGl6ZShyZWFkZXIsIHNpemUpO1xuICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gc2l6ZVswXSlcbiAgICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbmNvcnJlY3QgbGVuZ3RoIG9mIHNlcmlhbGl6ZWQgY3VzdG9tIGJsb2NrXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogaWxsLWZvcm1lZCBtZXNzYWdlXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHZhciByZXMgPSBpbnRlcm5fcmVjICgpO1xuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgIHZhciBzaXplID0gc3RhY2sucG9wKCk7XG4gICAgdmFyIHYgPSBzdGFjay5wb3AoKTtcbiAgICB2YXIgZCA9IHYubGVuZ3RoO1xuICAgIGlmIChkIDwgc2l6ZSkgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICB2W2RdID0gaW50ZXJuX3JlYyAoKTtcbiAgfVxuICBpZiAodHlwZW9mIG9mcyE9XCJudW1iZXJcIikgb2ZzWzBdID0gcmVhZGVyLmk7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG5mdW5jdGlvbiBjYW1sX21hcnNoYWxfZGF0YV9zaXplIChzLCBvZnMpIHtcbiAgZnVuY3Rpb24gZ2V0MzIocyxpKSB7XG4gICAgcmV0dXJuIChjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocywgaSkgPDwgMjQpIHxcbiAgICAgIChjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocywgaSArIDEpIDw8IDE2KSB8XG4gICAgICAoY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsIGkgKyAyKSA8PCA4KSB8XG4gICAgICBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocywgaSArIDMpO1xuICB9XG4gIGlmIChnZXQzMihzLCBvZnMpICE9ICgweDg0OTVBNkJFfDApKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJNYXJzaGFsLmRhdGFfc2l6ZTogYmFkIG9iamVjdFwiKTtcbiAgcmV0dXJuIChnZXQzMihzLCBvZnMgKyA0KSk7XG59XG5cbi8vUHJvdmlkZXM6IE1sT2JqZWN0VGFibGVcbnZhciBNbE9iamVjdFRhYmxlO1xuaWYgKHR5cGVvZiBnbG9iYWxUaGlzLldlYWtNYXAgPT09ICd1bmRlZmluZWQnKSB7XG4gIE1sT2JqZWN0VGFibGUgPSBmdW5jdGlvbigpIHtcbiAgICAvKiBwb2x5ZmlsbCAodXNpbmcgbGluZWFyIHNlYXJjaCkgKi9cbiAgICBmdW5jdGlvbiBOYWl2ZUxvb2t1cChvYmpzKSB7IHRoaXMub2JqcyA9IG9ianM7IH1cbiAgICBOYWl2ZUxvb2t1cC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24odikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMub2Jqc1tpXSA9PT0gdikgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfTtcbiAgICBOYWl2ZUxvb2t1cC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAvLyBEbyBub3RoaW5nIGhlcmUuIFtNbE9iamVjdFRhYmxlLnN0b3JlXSB3aWxsIHB1c2ggdG8gW3RoaXMub2Jqc10gZGlyZWN0bHkuXG4gICAgfTtcblxuICAgIHJldHVybiBmdW5jdGlvbiBNbE9iamVjdFRhYmxlKCkge1xuICAgICAgdGhpcy5vYmpzID0gW107IHRoaXMubG9va3VwID0gbmV3IE5haXZlTG9va3VwKHRoaXMub2Jqcyk7XG4gICAgfTtcbiAgfSgpO1xufVxuZWxzZSB7XG4gIE1sT2JqZWN0VGFibGUgPSBmdW5jdGlvbiBNbE9iamVjdFRhYmxlKCkge1xuICAgIHRoaXMub2JqcyA9IFtdOyB0aGlzLmxvb2t1cCA9IG5ldyBnbG9iYWxUaGlzLldlYWtNYXAoKTtcbiAgfTtcbn1cblxuTWxPYmplY3RUYWJsZS5wcm90b3R5cGUuc3RvcmUgPSBmdW5jdGlvbih2KSB7XG4gIHRoaXMubG9va3VwLnNldCh2LCB0aGlzLm9ianMubGVuZ3RoKTtcbiAgdGhpcy5vYmpzLnB1c2godik7XG59XG5cbk1sT2JqZWN0VGFibGUucHJvdG90eXBlLnJlY2FsbCA9IGZ1bmN0aW9uKHYpIHtcbiAgdmFyIGkgPSB0aGlzLmxvb2t1cC5nZXQodik7XG4gIHJldHVybiAoaSA9PT0gdW5kZWZpbmVkKVxuICAgID8gdW5kZWZpbmVkIDogdGhpcy5vYmpzLmxlbmd0aCAtIGk7ICAgLyogaW5kZXggaXMgcmVsYXRpdmUgKi9cbn1cblxuLy9Qcm92aWRlczogY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGVcbi8vVmVyc2lvbjogPj0gNC4wOFxudmFyIGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlID0gZmFsc2VcblxuLy9Qcm92aWRlczogY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGVcbi8vVmVyc2lvbjogPCA0LjA4XG52YXIgY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUgPSB0cnVlXG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0XG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBNbE9iamVjdFRhYmxlLCBjYW1sX2xpc3RfdG9fanNfYXJyYXksIGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG52YXIgY2FtbF9vdXRwdXRfdmFsID0gZnVuY3Rpb24gKCl7XG4gIGZ1bmN0aW9uIFdyaXRlciAoKSB7IHRoaXMuY2h1bmsgPSBbXTsgfVxuICBXcml0ZXIucHJvdG90eXBlID0ge1xuICAgIGNodW5rX2lkeDoyMCwgYmxvY2tfbGVuOjAsIG9ial9jb3VudGVyOjAsIHNpemVfMzI6MCwgc2l6ZV82NDowLFxuICAgIHdyaXRlOmZ1bmN0aW9uIChzaXplLCB2YWx1ZSkge1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfYXQ6ZnVuY3Rpb24gKHBvcywgc2l6ZSwgdmFsdWUpIHtcbiAgICAgIHZhciBwb3MgPSBwb3M7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1twb3MrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfY29kZTpmdW5jdGlvbiAoc2l6ZSwgY29kZSwgdmFsdWUpIHtcbiAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSBjb2RlO1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfc2hhcmVkOmZ1bmN0aW9uIChvZmZzZXQpIHtcbiAgICAgIGlmIChvZmZzZXQgPCAoMSA8PCA4KSkgdGhpcy53cml0ZV9jb2RlKDgsIDB4MDQgLypjc3QuQ09ERV9TSEFSRUQ4Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIGlmIChvZmZzZXQgPCAoMSA8PCAxNikpIHRoaXMud3JpdGVfY29kZSgxNiwgMHgwNSAvKmNzdC5DT0RFX1NIQVJFRDE2Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIHRoaXMud3JpdGVfY29kZSgzMiwgMHgwNiAvKmNzdC5DT0RFX1NIQVJFRDMyKi8sIG9mZnNldCk7XG4gICAgfSxcbiAgICBwb3M6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5jaHVua19pZHggfSxcbiAgICBmaW5hbGl6ZTpmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLmJsb2NrX2xlbiA9IHRoaXMuY2h1bmtfaWR4IC0gMjA7XG4gICAgICB0aGlzLmNodW5rX2lkeCA9IDA7XG4gICAgICB0aGlzLndyaXRlICgzMiwgMHg4NDk1QTZCRSk7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5ibG9ja19sZW4pO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMub2JqX2NvdW50ZXIpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuc2l6ZV8zMik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5zaXplXzY0KTtcbiAgICAgIHJldHVybiB0aGlzLmNodW5rO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKHYsIGZsYWdzKSB7XG4gICAgZmxhZ3MgPSBjYW1sX2xpc3RfdG9fanNfYXJyYXkoZmxhZ3MpO1xuXG4gICAgdmFyIG5vX3NoYXJpbmcgPSAoZmxhZ3MuaW5kZXhPZigwIC8qTWFyc2hhbC5Ob19zaGFyaW5nKi8pICE9PSAtMSksXG4gICAgICAgIGNsb3N1cmVzID0gIChmbGFncy5pbmRleE9mKDEgLypNYXJzaGFsLkNsb3N1cmVzKi8pICE9PSAtMSk7XG4gICAgLyogTWFyc2hhbC5Db21wYXRfMzIgaXMgcmVkdW5kYW50IHNpbmNlIGludGVnZXJzIGFyZSAzMi1iaXQgYW55d2F5ICovXG5cbiAgICBpZiAoY2xvc3VyZXMpXG4gICAgICBnbG9iYWxUaGlzLmNvbnNvbGUud2FybihcImluIGNhbWxfb3V0cHV0X3ZhbDogZmxhZyBNYXJzaGFsLkNsb3N1cmVzIGlzIG5vdCBzdXBwb3J0ZWQuXCIpO1xuXG4gICAgdmFyIHdyaXRlciA9IG5ldyBXcml0ZXIgKCk7XG4gICAgdmFyIHN0YWNrID0gW107XG4gICAgdmFyIGludGVybl9vYmpfdGFibGUgPSBub19zaGFyaW5nID8gbnVsbCA6IG5ldyBNbE9iamVjdFRhYmxlKCk7XG5cbiAgICBmdW5jdGlvbiBtZW1vKHYpIHtcbiAgICAgIGlmIChub19zaGFyaW5nKSByZXR1cm4gZmFsc2U7XG4gICAgICB2YXIgZXhpc3Rpbmdfb2Zmc2V0ID0gaW50ZXJuX29ial90YWJsZS5yZWNhbGwodik7XG4gICAgICBpZiAoZXhpc3Rpbmdfb2Zmc2V0KSB7IHdyaXRlci53cml0ZV9zaGFyZWQoZXhpc3Rpbmdfb2Zmc2V0KTsgcmV0dXJuIHRydWU7IH1cbiAgICAgIGVsc2UgeyBpbnRlcm5fb2JqX3RhYmxlLnN0b3JlKHYpOyByZXR1cm4gZmFsc2U7IH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHRlcm5fcmVjICh2KSB7XG4gICAgICBpZiAodi5jYW1sX2N1c3RvbSkge1xuICAgICAgICBpZiAobWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICB2YXIgbmFtZSA9IHYuY2FtbF9jdXN0b207XG4gICAgICAgIHZhciBvcHMgPSBjYW1sX2N1c3RvbV9vcHNbbmFtZV07XG4gICAgICAgIHZhciBzel8zMl82NCA9IFswLDBdO1xuICAgICAgICBpZighb3BzLnNlcmlhbGl6ZSlcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChDdXN0b20pXCIpO1xuICAgICAgICBpZihjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSkge1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxMiAvKmNzdC5DT0RFX0NVU1RPTSovKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIG5hbWUuY2hhckNvZGVBdChpKSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIG9wcy5zZXJpYWxpemUod3JpdGVyLCB2LCBzel8zMl82NCk7XG4gICAgICAgIH0gZWxzZSBpZihvcHMuZml4ZWRfbGVuZ3RoID09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDE4IC8qY3N0LkNPREVfQ1VTVE9NX0xFTiovKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIG5hbWUuY2hhckNvZGVBdChpKSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIHZhciBoZWFkZXJfcG9zID0gd3JpdGVyLnBvcyAoKTtcbiAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zLCAzMiwgc3pfMzJfNjRbMF0pO1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zICsgNCwgMzIsIDApOyAvLyB6ZXJvXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MgKyA4LCAzMiwgc3pfMzJfNjRbMV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxOSAvKmNzdC5DT0RFX0NVU1RPTV9GSVhFRCovKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIG5hbWUuY2hhckNvZGVBdChpKSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIHZhciBvbGRfcG9zID0gd3JpdGVyLnBvcygpO1xuICAgICAgICAgIG9wcy5zZXJpYWxpemUod3JpdGVyLCB2LCBzel8zMl82NCk7XG4gICAgICAgICAgaWYgKG9wcy5maXhlZF9sZW5ndGggIT0gd3JpdGVyLnBvcygpIC0gb2xkX3BvcylcbiAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGluY29ycmVjdCBmaXhlZCBzaXplcyBzcGVjaWZpZWQgYnkgXCIgKyBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAyICsgKChzel8zMl82NFswXSArIDMpID4+IDIpO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAyICsgKChzel8zMl82NFsxXSArIDcpID4+IDMpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEFycmF5ICYmIHZbMF0gPT09ICh2WzBdfDApKSB7XG4gICAgICAgIGlmICh2WzBdID09IDI1MSkge1xuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChBYnN0cmFjdClcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYubGVuZ3RoID4gMSAmJiBtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIGlmICh2WzBdIDwgMTYgJiYgdi5sZW5ndGggLSAxIDwgOClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4ODAgLypjc3QuUFJFRklYX1NNQUxMX0JMT0NLKi8gKyB2WzBdICsgKCh2Lmxlbmd0aCAtIDEpPDw0KSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgzMiwgMHgwOCAvKmNzdC5DT0RFX0JMT0NLMzIqLywgKCh2Lmxlbmd0aC0xKSA8PCAxMCkgfCB2WzBdKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gdi5sZW5ndGg7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IHYubGVuZ3RoO1xuICAgICAgICBpZiAodi5sZW5ndGggPiAxKSBzdGFjay5wdXNoICh2LCAxKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh2KSkge1xuICAgICAgICBpZighKGNhbWxfaXNfbWxfYnl0ZXMoY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKSkpKSB7XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogW0J5dGVzLnRdIGNhbm5vdCBzYWZlbHkgYmUgbWFyc2hhbGVkIHdpdGggWy0tZW5hYmxlIHVzZS1qcy1zdHJpbmddXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIHZhciBsZW4gPSBjYW1sX21sX2J5dGVzX2xlbmd0aCh2KTtcbiAgICAgICAgaWYgKGxlbiA8IDB4MjApXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDIwIC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcqLyArIGxlbik7XG4gICAgICAgIGVsc2UgaWYgKGxlbiA8IDB4MTAwKVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICg4LCAweDA5Lypjc3QuQ09ERV9TVFJJTkc4Ki8sIGxlbik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoMzIsIDB4MEEgLypjc3QuQ09ERV9TVFJJTkczMiovLCBsZW4pO1xuICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgbGVuO2krKylcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCh2LGkpKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMSArICgoKGxlbiArIDQpIC8gNCl8MCk7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDEgKyAoKChsZW4gKyA4KSAvIDgpfDApO1xuICAgICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh2KSkge1xuICAgICAgICB2YXIgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHYpO1xuICAgICAgICBpZiAobGVuIDwgMHgyMClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MjAgLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyovICsgbGVuKTtcbiAgICAgICAgZWxzZSBpZiAobGVuIDwgMHgxMDApXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDgsIDB4MDkvKmNzdC5DT0RFX1NUUklORzgqLywgbGVuKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICgzMiwgMHgwQSAvKmNzdC5DT0RFX1NUUklORzMyKi8sIGxlbik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCBsZW47aSsrKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldCh2LGkpKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMSArICgoKGxlbiArIDQpIC8gNCl8MCk7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDEgKyAoKChsZW4gKyA4KSAvIDgpfDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHYgIT0gKHZ8MCkpe1xuICAgICAgICAgIHZhciB0eXBlX29mX3YgPSB0eXBlb2YgdjtcbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIElmIGEgZmxvYXQgaGFwcGVucyB0byBiZSBhbiBpbnRlZ2VyIGl0IGlzIHNlcmlhbGl6ZWQgYXMgYW4gaW50ZWdlclxuICAgICAgICAgIC8vIChKc19vZl9vY2FtbCBjYW5ub3QgdGVsbCB3aGV0aGVyIHRoZSB0eXBlIG9mIGFuIGludGVnZXIgbnVtYmVyIGlzXG4gICAgICAgICAgLy8gZmxvYXQgb3IgaW50ZWdlci4pIFRoaXMgY2FuIHJlc3VsdCBpbiB1bmV4cGVjdGVkIGNyYXNoZXMgd2hlblxuICAgICAgICAgIC8vIHVubWFyc2hhbGxpbmcgdXNpbmcgdGhlIHN0YW5kYXJkIHJ1bnRpbWUuIEl0IHNlZW1zIGJldHRlciB0b1xuICAgICAgICAgIC8vIHN5c3RlbWF0aWNhbGx5IGZhaWwgb24gbWFyc2hhbGxpbmcuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyAgICAgICAgICBpZih0eXBlX29mX3YgIT0gXCJudW1iZXJcIilcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoXCIrdHlwZV9vZl92K1wiKVwiKTtcbiAgICAgICAgICAvLyAgICAgICAgICB2YXIgdCA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KHYpKTtcbiAgICAgICAgICAvLyAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MEIgLypjc3QuQ09ERV9ET1VCTEVfQklHKi8pO1xuICAgICAgICAgIC8vICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGk8ODsgaSsrKXt3cml0ZXIud3JpdGUoOCx0W2ldKX1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2ID49IDAgJiYgdiA8IDB4NDApIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDBYNDAgLypjc3QuUFJFRklYX1NNQUxMX0lOVCovICsgdik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHYgPj0gLSgxIDw8IDcpICYmIHYgPCAoMSA8PCA3KSlcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDgsIDB4MDAgLypjc3QuQ09ERV9JTlQ4Ki8sIHYpO1xuICAgICAgICAgIGVsc2UgaWYgKHYgPj0gLSgxIDw8IDE1KSAmJiB2IDwgKDEgPDwgMTUpKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMTYsIDB4MDEgLypjc3QuQ09ERV9JTlQxNiovLCB2KTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgzMiwgMHgwMiAvKmNzdC5DT0RFX0lOVDMyKi8sIHYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGV4dGVybl9yZWMgKHYpO1xuICAgIHdoaWxlIChzdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgaSA9IHN0YWNrLnBvcCAoKTtcbiAgICAgIHZhciB2ID0gc3RhY2sucG9wICgpO1xuICAgICAgaWYgKGkgKyAxIDwgdi5sZW5ndGgpIHN0YWNrLnB1c2ggKHYsIGkgKyAxKTtcbiAgICAgIGV4dGVybl9yZWMgKHZbaV0pO1xuICAgIH1cbiAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgd3JpdGVyLm9ial9jb3VudGVyID0gaW50ZXJuX29ial90YWJsZS5vYmpzLmxlbmd0aDtcbiAgICB3cml0ZXIuZmluYWxpemUoKTtcbiAgICByZXR1cm4gd3JpdGVyLmNodW5rO1xuICB9XG59ICgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX3N0cmluZ19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nICh2LCBmbGFncykge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkgKGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX2J5dGVzX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyAodiwgZmxhZ3MpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfYXJyYXkgKGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfZmFpbHdpdGgsIGNhbWxfYmxpdF9ieXRlc1xuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyIChzLCBvZnMsIGxlbiwgdiwgZmxhZ3MpIHtcbiAgdmFyIHQgPSBjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKTtcbiAgaWYgKHQubGVuZ3RoID4gbGVuKSBjYW1sX2ZhaWx3aXRoIChcIk1hcnNoYWwudG9fYnVmZmVyOiBidWZmZXIgb3ZlcmZsb3dcIik7XG4gIGNhbWxfYmxpdF9ieXRlcyh0LCAwLCBzLCBvZnMsIHQubGVuZ3RoKTtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIElvXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2Nsb3NlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3N5c19jbG9zZShmZCkge1xuICBkZWxldGUgY2FtbF9nbG9iYWxfZGF0YS5mZHNbZmRdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdGRfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfc3RkX291dHB1dChjaGFuaWQscyl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgc3RyID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKTtcbiAgdmFyIHNsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgoc3RyKTtcbiAgY2hhbi5maWxlLndyaXRlKGNoYW4ub2Zmc2V0LCBzdHIsIDAsIHNsZW4pO1xuICBjaGFuLm9mZnNldCArPSBzbGVuO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3BlblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfZ2xvYmFsX2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLE1sRmFrZUZpbGVcbi8vUmVxdWlyZXM6IGpzX3ByaW50X3N0ZGVyciwganNfcHJpbnRfc3Rkb3V0XG4vL1JlcXVpcmVzOiBjYW1sX3N0ZF9vdXRwdXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuX2ludGVybmFsKGlkeCxvdXRwdXQsZmlsZSxmbGFncykge1xuICBpZihjYW1sX2dsb2JhbF9kYXRhLmZkcyA9PT0gdW5kZWZpbmVkKSBjYW1sX2dsb2JhbF9kYXRhLmZkcyA9IG5ldyBBcnJheSgpO1xuICBmbGFncz1mbGFncz9mbGFnczp7fTtcbiAgdmFyIGluZm8gPSB7fTtcbiAgaW5mby5maWxlID0gZmlsZTtcbiAgaW5mby5vZmZzZXQgPSBmbGFncy5hcHBlbmQ/ZmlsZS5sZW5ndGgoKTowO1xuICBpbmZvLmZsYWdzID0gZmxhZ3M7XG4gIGluZm8ub3V0cHV0ID0gb3V0cHV0O1xuICBjYW1sX2dsb2JhbF9kYXRhLmZkc1tpZHhdID0gaW5mbztcbiAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuZmRfbGFzdF9pZHggfHwgaWR4ID4gY2FtbF9nbG9iYWxfZGF0YS5mZF9sYXN0X2lkeClcbiAgICBjYW1sX2dsb2JhbF9kYXRhLmZkX2xhc3RfaWR4ID0gaWR4O1xuICByZXR1cm4gaWR4O1xufVxuZnVuY3Rpb24gY2FtbF9zeXNfb3BlbiAobmFtZSwgZmxhZ3MsIF9wZXJtcykge1xuICB2YXIgZiA9IHt9O1xuICB3aGlsZShmbGFncyl7XG4gICAgc3dpdGNoKGZsYWdzWzFdKXtcbiAgICBjYXNlIDA6IGYucmRvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDE6IGYud3Jvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDI6IGYuYXBwZW5kID0gMTticmVhaztcbiAgICBjYXNlIDM6IGYuY3JlYXRlID0gMTticmVhaztcbiAgICBjYXNlIDQ6IGYudHJ1bmNhdGUgPSAxO2JyZWFrO1xuICAgIGNhc2UgNTogZi5leGNsID0gMTsgYnJlYWs7XG4gICAgY2FzZSA2OiBmLmJpbmFyeSA9IDE7YnJlYWs7XG4gICAgY2FzZSA3OiBmLnRleHQgPSAxO2JyZWFrO1xuICAgIGNhc2UgODogZi5ub25ibG9jayA9IDE7YnJlYWs7XG4gICAgfVxuICAgIGZsYWdzPWZsYWdzWzJdO1xuICB9XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGZpbGUgPSByb290LmRldmljZS5vcGVuKHJvb3QucmVzdCxmKTtcbiAgdmFyIGlkeCA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRfbGFzdF9pZHg/Y2FtbF9nbG9iYWxfZGF0YS5mZF9sYXN0X2lkeDowO1xuICByZXR1cm4gY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCAoaWR4KzEsY2FtbF9zdGRfb3V0cHV0LGZpbGUsZik7XG59XG5jYW1sX3N5c19vcGVuX2ludGVybmFsKDAsY2FtbF9zdGRfb3V0cHV0LCBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSkpOyAvL3N0ZGluXG5jYW1sX3N5c19vcGVuX2ludGVybmFsKDEsanNfcHJpbnRfc3Rkb3V0LCBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSkpOyAvL3N0ZG91dFxuY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCgyLGpzX3ByaW50X3N0ZGVyciwgbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpKTsgLy9zdGRlcnJcblxuXG4vLyBvY2FtbCBDaGFubmVsc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX25hbWVcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSgpIHtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsc1xudmFyIGNhbWxfbWxfY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTtcblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdCAoKSB7XG4gIHZhciBsID0gMDtcbiAgZm9yKHZhciBjID0gMDsgYyA8IGNhbWxfbWxfY2hhbm5lbHMubGVuZ3RoOyBjKyspe1xuICAgIGlmKGNhbWxfbWxfY2hhbm5lbHNbY10gJiYgY2FtbF9tbF9jaGFubmVsc1tjXS5vcGVuZWQgJiYgY2FtbF9tbF9jaGFubmVsc1tjXS5vdXQpXG4gICAgICBsPVswLGNhbWxfbWxfY2hhbm5lbHNbY10uZmQsbF07XG4gIH1cbiAgcmV0dXJuIGw7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX2dsb2JhbF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0IChmZCkge1xuICB2YXIgZGF0YSA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2ZkXTtcbiAgaWYoZGF0YS5mbGFncy5yZG9ubHkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiZmQgXCIrIGZkICsgXCIgaXMgcmVhZG9ubHlcIik7XG4gIHZhciBjaGFubmVsID0ge1xuICAgIGZpbGU6ZGF0YS5maWxlLFxuICAgIG9mZnNldDpkYXRhLm9mZnNldCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6dHJ1ZSxcbiAgICBidWZmZXI6XCJcIlxuICB9O1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5uZWwuZmRdPWNoYW5uZWw7XG4gIHJldHVybiBjaGFubmVsLmZkO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pblxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSxjYW1sX3N5c19vcGVuLGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZCwgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luIChmZCkgIHtcbiAgdmFyIGRhdGEgPSBjYW1sX2dsb2JhbF9kYXRhLmZkc1tmZF07XG4gIGlmKGRhdGEuZmxhZ3Mud3Jvbmx5KSBjYW1sX3JhaXNlX3N5c19lcnJvcihcImZkIFwiKyBmZCArIFwiIGlzIHdyaXRlb25seVwiKTtcbiAgdmFyIHJlZmlsbCA9IG51bGw7XG4gIGlmKGZkID09IDAgJiYgZnNfbm9kZV9zdXBwb3J0ZWQoKSl7XG4gICAgdmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICByZWZpbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoZnMucmVhZEZpbGVTeW5jKDAsICd1dGY4JykpfTtcbiAgfVxuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmRhdGEuZmlsZSxcbiAgICBvZmZzZXQ6ZGF0YS5vZmZzZXQsXG4gICAgZmQ6ZmQsXG4gICAgb3BlbmVkOnRydWUsXG4gICAgb3V0OiBmYWxzZSxcbiAgICByZWZpbGw6cmVmaWxsXG4gIH07XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbm5lbC5mZF09Y2hhbm5lbDtcbiAgcmV0dXJuIGNoYW5uZWwuZmQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5mZDtcbn1cblxuLy9Qcm92aWRlczogd2luX2ZpbGVkZXNjcl9vZl9jaGFubmVsXG4vL1JlcXVpcmVzOiBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvclxudmFyIHdpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbCA9IGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9iaW5hcnlfbW9kZShjaGFuaWQsbW9kZSl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgZGF0YSA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2NoYW4uZmRdO1xuICBkYXRhLmZsYWdzLnRleHQgPSAhbW9kZVxuICBkYXRhLmZsYWdzLmJpbmFyeSA9IG1vZGVcbiAgcmV0dXJuIDA7XG59XG5cbi8vSW5wdXQgZnJvbSBpbl9jaGFubmVsXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2xvc2VfY2hhbm5lbFxuLy9SZXF1aXJlczogY2FtbF9tbF9mbHVzaCwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9zeXNfY2xvc2VcbmZ1bmN0aW9uIGNhbWxfbWxfY2xvc2VfY2hhbm5lbCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIGNoYW4ub3BlbmVkID0gZmFsc2U7XG4gIGNoYW4uZmlsZS5jbG9zZSgpO1xuICBjYW1sX3N5c19jbG9zZShjaGFuLmZkKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfY2hhbm5lbF9zaXplKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4uZmlsZS5sZW5ndGgoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9jaGFubmVsX3NpemVfNjQoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdChjaGFuLmZpbGUubGVuZ3RoICgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0KGNoYW5pZCxmKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjYW1sX2dsb2JhbF9kYXRhLmZkc1tjaGFuLmZkXS5vdXRwdXQgPSBmO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGxcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsKGNoYW5pZCxmKSB7XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5yZWZpbGwgPSBmO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9yZWZpbGxfaW5wdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9tbF9yZWZpbGxfaW5wdXQgKGNoYW4pIHtcbiAgdmFyIHN0ciA9IGNoYW4ucmVmaWxsKCk7XG4gIHZhciBzdHJfbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHN0cik7XG4gIGlmIChzdHJfbGVuID09IDApIGNoYW4ucmVmaWxsID0gbnVsbDtcbiAgY2hhbi5maWxlLndyaXRlKGNoYW4uZmlsZS5sZW5ndGgoKSwgc3RyLCAwLCBzdHJfbGVuKTtcbiAgcmV0dXJuIHN0cl9sZW47XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9yZWZpbGxfaW5wdXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZiAoY2hhbi5yZWZpbGwgPT0gbnVsbCkgcmV0dXJuO1xuICBpZiAoY2hhbi5maWxlLmxlbmd0aCgpICE9IGNoYW4ub2Zmc2V0KSByZXR1cm47XG4gIGNhbWxfbWxfcmVmaWxsX2lucHV0IChjaGFuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9yZWZpbGxfaW5wdXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXQgKGNoYW5pZCwgcywgaSwgbCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIGwyID0gY2hhbi5maWxlLmxlbmd0aCgpIC0gY2hhbi5vZmZzZXQ7XG4gIGlmIChsMiA9PSAwICYmIGNoYW4ucmVmaWxsICE9IG51bGwpIGwyID0gY2FtbF9tbF9yZWZpbGxfaW5wdXQoY2hhbik7XG4gIGlmIChsMiA8IGwpIGwgPSBsMjtcbiAgY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsIHMsIGksIGwpO1xuICBjaGFuLm9mZnNldCArPSBsO1xuICByZXR1cm4gbDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZSAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuXG4gIHZhciBidWYgPSBjYW1sX2NyZWF0ZV9ieXRlcyg4KTtcbiAgY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsYnVmLDAsOCk7XG5cbiAgLy8gSGVhZGVyIGlzIDIwIGJ5dGVzXG4gIHZhciBsZW4gPSBjYW1sX21hcnNoYWxfZGF0YV9zaXplIChidWYsIDApICsgMjA7XG5cbiAgdmFyIGJ1ZiA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gIGNoYW4uZmlsZS5yZWFkKGNoYW4ub2Zmc2V0LGJ1ZiwwLGxlbik7XG5cbiAgdmFyIG9mZnNldCA9IFswXTtcbiAgdmFyIHJlcyA9IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyhidWYsIG9mZnNldCk7XG4gIGNoYW4ub2Zmc2V0ID0gY2hhbi5vZmZzZXQgKyBvZmZzZXRbMF07XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfY2hhclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X2NoYXIgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0KGNoYW5pZCk7XG4gIGlmIChjaGFuLm9mZnNldCA+PSBjaGFuLmZpbGUubGVuZ3RoKCkpXG4gICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB2YXIgcmVzID0gY2hhbi5maWxlLnJlYWRfb25lKGNoYW4ub2Zmc2V0KTtcbiAgY2hhbi5vZmZzZXQrKztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfcmVmaWxsX2lucHV0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X2ludCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgZmlsZSA9IGNoYW4uZmlsZTtcbiAgd2hpbGUgKChjaGFuLm9mZnNldCArIDMpID49IGZpbGUubGVuZ3RoKCkpIHtcbiAgICB2YXIgbCA9IGNhbWxfbWxfcmVmaWxsX2lucHV0KGNoYW4pO1xuICAgIGlmIChsID09IDApIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgfVxuICB2YXIgbyA9IGNoYW4ub2Zmc2V0O1xuICB2YXIgciA9KGZpbGUucmVhZF9vbmUobyAgKSA8PCAyNClcbiAgICAgIHwgIChmaWxlLnJlYWRfb25lKG8rMSkgPDwgMTYpXG4gICAgICB8ICAoZmlsZS5yZWFkX29uZShvKzIpIDw8IDgpXG4gICAgICB8ICAoZmlsZS5yZWFkX29uZShvKzMpKTtcbiAgY2hhbi5vZmZzZXQrPTQ7XG4gIHJldHVybiByO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5cbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfaW4oY2hhbmlkLHBvcyl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZiAoY2hhbi5yZWZpbGwgIT0gbnVsbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJJbGxlZ2FsIHNlZWtcIik7XG4gIGNoYW4ub2Zmc2V0ID0gcG9zO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX2luXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0LCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luXzY0KGNoYW5pZCxwb3Mpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYgKGNoYW4ucmVmaWxsICE9IG51bGwpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiSWxsZWdhbCBzZWVrXCIpO1xuICBjaGFuLm9mZnNldCA9IGNhbWxfaW50NjRfdG9fZmxvYXQocG9zKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX2luXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19pbihjaGFuaWQpIHtyZXR1cm4gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldH1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3NfaW5fNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX2luXzY0KGNoYW5pZCkge3JldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0KGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXQpfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X3NjYW5fbGluZVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X3NjYW5fbGluZShjaGFuaWQpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0KGNoYW5pZCk7XG4gIHZhciBwID0gY2hhbi5vZmZzZXQ7XG4gIHZhciBsZW4gPSBjaGFuLmZpbGUubGVuZ3RoKCk7XG4gIGlmKHAgPj0gbGVuKSB7IHJldHVybiAwO31cbiAgd2hpbGUodHJ1ZSkge1xuICAgIGlmKHAgPj0gbGVuKSByZXR1cm4gLSAocCAtIGNoYW4ub2Zmc2V0KTtcbiAgICBpZihjaGFuLmZpbGUucmVhZF9vbmUocCkgPT0gMTApIHJldHVybiBwIC0gY2hhbi5vZmZzZXQgKyAxO1xuICAgIHArKztcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2ZsdXNoXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9mbHVzaCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZighIGNoYW4ub3BlbmVkKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIkNhbm5vdCBmbHVzaCBhIGNsb3NlZCBjaGFubmVsXCIpO1xuICBpZighY2hhbi5idWZmZXIgfHwgY2hhbi5idWZmZXIgPT0gXCJcIikgcmV0dXJuIDA7XG4gIGlmKGNoYW4uZmRcbiAgICAgJiYgY2FtbF9nbG9iYWxfZGF0YS5mZHNbY2hhbi5mZF1cbiAgICAgJiYgY2FtbF9nbG9iYWxfZGF0YS5mZHNbY2hhbi5mZF0ub3V0cHV0KSB7XG4gICAgdmFyIG91dHB1dCA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2NoYW4uZmRdLm91dHB1dDtcbiAgICBzd2l0Y2gob3V0cHV0Lmxlbmd0aCl7XG4gICAgY2FzZSAyOiBvdXRwdXQoY2hhbmlkLGNoYW4uYnVmZmVyKTticmVhaztcbiAgICBkZWZhdWx0OiBvdXRwdXQoY2hhbi5idWZmZXIpXG4gICAgfTtcbiAgfVxuICBjaGFuLmJ1ZmZlciA9IFwiXCI7XG4gIHJldHVybiAwO1xufVxuXG4vL291dHB1dCB0byBvdXRfY2hhbm5lbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9mbHVzaCxjYW1sX21sX2J5dGVzX2xlbmd0aFxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfYmxpdF9ieXRlcywgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9ieXRlcyhjaGFuaWQsYnVmZmVyLG9mZnNldCxsZW4pIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKCEgY2hhbi5vcGVuZWQpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiQ2Fubm90IG91dHB1dCB0byBhIGNsb3NlZCBjaGFubmVsXCIpO1xuICB2YXIgYnl0ZXM7XG4gIGlmKG9mZnNldCA9PSAwICYmIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKGJ1ZmZlcikgPT0gbGVuKVxuICAgIGJ5dGVzID0gYnVmZmVyO1xuICBlbHNlIHtcbiAgICBieXRlcyA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gICAgY2FtbF9ibGl0X2J5dGVzKGJ1ZmZlcixvZmZzZXQsYnl0ZXMsMCxsZW4pO1xuICB9XG4gIHZhciBzdHJpbmcgPSBjYW1sX3N0cmluZ19vZl9ieXRlcyhieXRlcyk7XG4gIHZhciBqc3N0cmluZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoc3RyaW5nKTtcbiAgdmFyIGlkID0ganNzdHJpbmcubGFzdEluZGV4T2YoXCJcXG5cIik7XG4gIGlmKGlkIDwgMClcbiAgICBjaGFuLmJ1ZmZlcis9anNzdHJpbmc7XG4gIGVsc2Uge1xuICAgIGNoYW4uYnVmZmVyKz1qc3N0cmluZy5zdWJzdHIoMCxpZCsxKTtcbiAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIGNoYW4uYnVmZmVyICs9IGpzc3RyaW5nLnN1YnN0cihpZCsxKTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXQoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKXtcbiAgcmV0dXJuIGNhbWxfbWxfb3V0cHV0X2J5dGVzKGNoYW5pZCxjYW1sX2J5dGVzX29mX3N0cmluZyhidWZmZXIpLG9mZnNldCxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfY2hhciAoY2hhbmlkLGMpIHtcbiAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLDEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZywgY2FtbF9tbF9vdXRwdXQsY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZSAoY2hhbmlkLHYsZmxhZ3MpIHtcbiAgdmFyIHMgPSBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcodiwgZmxhZ3MpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXQoY2hhbmlkLHBvcyl7XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldCA9IHBvcztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXRfNjQoY2hhbmlkLHBvcyl7XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldCA9IGNhbWxfaW50NjRfdG9fZmxvYXQocG9zKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9tbF9wb3Nfb3V0KGNoYW5pZCkge1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIHJldHVybiBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX291dF82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCwgY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9tbF9wb3Nfb3V0XzY0KGNoYW5pZCkge1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0IChjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfaW50XG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2ludCAoY2hhbmlkLGkpIHtcbiAgdmFyIGFyciA9IFsoaT4+MjQpICYgMHhGRiwoaT4+MTYpICYgMHhGRiwoaT4+OCkgJiAweEZGLGkgJiAweEZGIF07XG4gIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYXJyKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCw0KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pc19idWZmZXJlZFxuZnVuY3Rpb24gY2FtbF9tbF9pc19idWZmZXJlZChjKSB7IHJldHVybiAxIH1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfYnVmZmVyZWRcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2J1ZmZlcmVkKGMsdikgeyByZXR1cm4gMCB9XG4iLCJcblxuLy9Qcm92aWRlczogY2FtbF9nY19taW5vclxuZnVuY3Rpb24gY2FtbF9nY19taW5vcigpeyByZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWFqb3JcbmZ1bmN0aW9uIGNhbWxfZ2NfbWFqb3IoKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2Z1bGxfbWFqb3JcbmZ1bmN0aW9uIGNhbWxfZ2NfZnVsbF9tYWpvcigpeyByZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfY29tcGFjdGlvblxuZnVuY3Rpb24gY2FtbF9nY19jb21wYWN0aW9uKCl7IHJldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9nY19jb3VudGVyc1xuZnVuY3Rpb24gY2FtbF9nY19jb3VudGVycygpIHsgcmV0dXJuIFsyNTQsMCwwLDBdIH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfcXVpY2tfc3RhdFxuZnVuY3Rpb24gY2FtbF9nY19xdWlja19zdGF0KCl7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXVxufVxuLy9Qcm92aWRlczogY2FtbF9nY19zdGF0XG5mdW5jdGlvbiBjYW1sX2djX3N0YXQoKSB7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX3NldFxuZnVuY3Rpb24gY2FtbF9nY19zZXQoX2NvbnRyb2wpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfZ2V0XG5mdW5jdGlvbiBjYW1sX2djX2dldCgpe1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc2V0XG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc2V0KF9jb250cm9sKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlZ2lzdGVyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlZ2lzdGVyICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWUgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWxlYXNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlbGVhc2UgKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc3RhcnRcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zdGFydChyYXRlLHN0YWNrX3NpemUsdHJhY2tlcil7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc3RvcFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3N0b3AodW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ldmVudGxvZ19yZXN1bWVcbmZ1bmN0aW9uIGNhbWxfZXZlbnRsb2dfcmVzdW1lKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ldmVudGxvZ19wYXVzZVxuZnVuY3Rpb24gY2FtbF9ldmVudGxvZ19wYXVzZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudFxuZnVuY3Rpb24gY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50KHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19tYWpvcl9zbGljZVxuZnVuY3Rpb24gY2FtbF9nY19tYWpvcl9zbGljZSh3b3JrKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWlub3Jfd29yZHNcbmZ1bmN0aW9uIGNhbWxfZ2NfbWlub3Jfd29yZHModW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9taW5vcl9mcmVlXG5mdW5jdGlvbiBjYW1sX2dldF9taW5vcl9mcmVlKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWFqb3JfYnVja2V0XG5mdW5jdGlvbiBjYW1sX2dldF9tYWpvcl9idWNrZXQobikgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9tYWpvcl9jcmVkaXRcbmZ1bmN0aW9uIGNhbWxfZ2V0X21ham9yX2NyZWRpdChuKSB7IHJldHVybiAwOyB9XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZCwgQW5keSBSYXlcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbi8vXG4vLyBCaWdhcnJheS5cbi8vXG4vLyAtIGFsbCBiaWdhcnJheSB0eXBlcyBpbmNsdWRpbmcgSW50NjQgYW5kIENvbXBsZXguXG4vLyAtIGZvcnRyYW4gKyBjIGxheW91dHNcbi8vIC0gc3ViL3NsaWNlL3Jlc2hhcGVcbi8vIC0gcmV0YWluIGZhc3QgcGF0aCBmb3IgMWQgYXJyYXkgYWNjZXNzXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfaW5pdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9iYV9pbml0KCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9zaXplKGRpbXMpIHtcbiAgdmFyIG5fZGltcyA9IGRpbXMubGVuZ3RoO1xuICB2YXIgc2l6ZSA9IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbl9kaW1zOyBpKyspIHtcbiAgICBpZiAoZGltc1tpXSA8IDApXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5jcmVhdGU6IG5lZ2F0aXZlIGRpbWVuc2lvblwiKTtcbiAgICBzaXplID0gc2l6ZSAqIGRpbXNbaV07XG4gIH1cbiAgcmV0dXJuIHNpemU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCl7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSA3OiBjYXNlIDEwOiBjYXNlIDExOiByZXR1cm4gMjtcbiAgZGVmYXVsdDogcmV0dXJuIDE7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBzaXplKXtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICB2YXIgdmlldztcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDA6ICB2aWV3ID0gZy5GbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDE6ICB2aWV3ID0gZy5GbG9hdDY0QXJyYXk7IGJyZWFrO1xuICBjYXNlIDI6ICB2aWV3ID0gZy5JbnQ4QXJyYXk7IGJyZWFrO1xuICBjYXNlIDM6ICB2aWV3ID0gZy5VaW50OEFycmF5OyBicmVhaztcbiAgY2FzZSA0OiAgdmlldyA9IGcuSW50MTZBcnJheTsgYnJlYWs7XG4gIGNhc2UgNTogIHZpZXcgPSBnLlVpbnQxNkFycmF5OyBicmVhaztcbiAgY2FzZSA2OiAgdmlldyA9IGcuSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgNzogIHZpZXcgPSBnLkludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDg6ICB2aWV3ID0gZy5JbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA5OiAgdmlldyA9IGcuSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTA6IHZpZXcgPSBnLkZsb2F0MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTE6IHZpZXcgPSBnLkZsb2F0NjRBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTI6IHZpZXcgPSBnLlVpbnQ4QXJyYXk7IGJyZWFrO1xuICB9XG4gIGlmICghdmlldykgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiB1bnN1cHBvcnRlZCBraW5kXCIpO1xuICB2YXIgZGF0YSA9IG5ldyB2aWV3KHNpemUgKiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpKTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vVmVyc2lvbjogPCA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycmF5XCJcblxuLy9Qcm92aWRlczogY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9WZXJzaW9uOiA+PSA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycjAyXCJcblxuLy9Qcm92aWRlczogTWxfQmlnYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGksIGNhbWxfaW50NjRfaGkzMiwgY2FtbF9pbnQ2NF9sbzMyXG5mdW5jdGlvbiBNbF9CaWdhcnJheSAoa2luZCwgbGF5b3V0LCBkaW1zLCBidWZmZXIpIHtcblxuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgPSBidWZmZXI7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IGNhbWxfYmFfY3VzdG9tX25hbWU7XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHZhciBvZnMgPSAwO1xuICBpZih0eXBlb2YgYXJnID09PSBcIm51bWJlclwiKSBhcmcgPSBbYXJnXTtcbiAgaWYgKCEgKGFyZyBpbnN0YW5jZW9mIEFycmF5KSkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiYmlnYXJyYXkuanM6IGludmFsaWQgb2Zmc2V0XCIpO1xuICBpZiAodGhpcy5kaW1zLmxlbmd0aCAhPSBhcmcubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmdldC9zZXQ6IGJhZCBudW1iZXIgb2YgZGltZW5zaW9uc1wiKTtcbiAgaWYodGhpcy5sYXlvdXQgPT0gMCAvKiBjX2xheW91dCAqLykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJnW2ldIDwgMCB8fCBhcmdbaV0gPj0gdGhpcy5kaW1zW2ldKVxuICAgICAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gICAgICBvZnMgPSAob2ZzICogdGhpcy5kaW1zW2ldKSArIGFyZ1tpXTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuZGltcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKGFyZ1tpXSA8IDEgfHwgYXJnW2ldID4gdGhpcy5kaW1zW2ldKXtcbiAgICAgICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICAgICAgfVxuICAgICAgb2ZzID0gKG9mcyAqIHRoaXMuZGltc1tpXSkgKyAoYXJnW2ldIC0gMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvZnM7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAob2ZzKSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB2YXIgbCA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMF07XG4gICAgdmFyIGggPSB0aGlzLmRhdGFbb2ZzICogMiArIDFdO1xuICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsLGgpO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdmFyIHIgPSB0aGlzLmRhdGFbb2ZzICogMiArIDBdO1xuICAgIHZhciBpID0gdGhpcy5kYXRhW29mcyAqIDIgKyAxXTtcbiAgICByZXR1cm4gWzI1NCwgciwgaV07XG4gIGRlZmF1bHQ6XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtvZnNdXG4gIH1cbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChvZnMsdikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IGNhbWxfaW50NjRfbG8zMih2KTtcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDFdID0gY2FtbF9pbnQ2NF9oaTMyKHYpO1xuICAgIGJyZWFrO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IHZbMV07XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAxXSA9IHZbMl07XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhW29mc10gPSB2O1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwXG59XG5cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdmFyIGEgPSBjYW1sX2ludDY0X2xvMzIodik7XG4gICAgdmFyIGIgPSBjYW1sX2ludDY0X2hpMzIodik7XG4gICAgaWYoYSA9PSBiKXtcbiAgICAgIHRoaXMuZGF0YS5maWxsKGEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5kYXRhW2ldID0gKGklMiA9PSAwKSA/IGEgOiBiO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHZhciBpbSA9IHZbMV07XG4gICAgdmFyIHJlID0gdlsyXTtcbiAgICBpZihpbSA9PSByZSl7XG4gICAgICB0aGlzLmRhdGEuZmlsbChpbSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgICB0aGlzLmRhdGFbaV0gPSAoaSUyID09IDApID8gaW0gOiByZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhLmZpbGwodik7XG4gICAgYnJlYWs7XG4gIH1cbn1cblxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIChiLCB0b3RhbCkge1xuICBpZiAodGhpcy5sYXlvdXQgIT0gYi5sYXlvdXQgfHwgdGhpcy5raW5kICE9IGIua2luZCkge1xuICAgIHZhciBrMSA9IHRoaXMua2luZCB8ICh0aGlzLmxheW91dCA8PCA4KTtcbiAgICB2YXIgazIgPSAgICBiLmtpbmQgfCAoYi5sYXlvdXQgPDwgOCk7XG4gICAgcmV0dXJuIGsyIC0gazE7XG4gIH1cbiAgaWYgKHRoaXMuZGltcy5sZW5ndGggIT0gYi5kaW1zLmxlbmd0aCkge1xuICAgIHJldHVybiBiLmRpbXMubGVuZ3RoIC0gdGhpcy5kaW1zLmxlbmd0aDtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGltcy5sZW5ndGg7IGkrKylcbiAgICBpZiAodGhpcy5kaW1zW2ldICE9IGIuZGltc1tpXSlcbiAgICAgIHJldHVybiAodGhpcy5kaW1zW2ldIDwgYi5kaW1zW2ldKSA/IC0xIDogMTtcbiAgc3dpdGNoICh0aGlzLmtpbmQpIHtcbiAgY2FzZSAwOlxuICBjYXNlIDE6XG4gIGNhc2UgMTA6XG4gIGNhc2UgMTE6XG4gICAgLy8gRmxvYXRzXG4gICAgdmFyIHgsIHk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHggPSB0aGlzLmRhdGFbaV07XG4gICAgICB5ID0gYi5kYXRhW2ldO1xuICAgICAgaWYgKHggPCB5KVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAoeCA+IHkpXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgaWYgKHggIT0geSkge1xuICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICBpZiAoeCA9PSB4KSByZXR1cm4gMTtcbiAgICAgICAgaWYgKHkgPT0geSkgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKz0yKSB7XG4gICAgICAvLyBDaGVjayBoaWdoZXN0IGJpdHMgZmlyc3RcbiAgICAgIGlmICh0aGlzLmRhdGFbaSsxXSA8IGIuZGF0YVtpKzFdKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2krMV0gPiBiLmRhdGFbaSsxXSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICBpZiAoKHRoaXMuZGF0YVtpXSA+Pj4gMCkgPCAoYi5kYXRhW2ldID4+PiAwKSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKCh0aGlzLmRhdGFbaV0gPj4+IDApID4gKGIuZGF0YVtpXSA+Pj4gMCkpXG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAyOlxuICBjYXNlIDM6XG4gIGNhc2UgNDpcbiAgY2FzZSA1OlxuICBjYXNlIDY6XG4gIGNhc2UgODpcbiAgY2FzZSA5OlxuICBjYXNlIDEyOlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldIDwgYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldID4gYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IE1sX0JpZ2FycmF5X2NfMV8xXG4vL1JlcXVpcmVzOiBNbF9CaWdhcnJheSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGJ1ZmZlcikge1xuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgICA9IGJ1ZmZlcjtcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlID0gbmV3IE1sX0JpZ2FycmF5KClcbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIGlmKHR5cGVvZiBhcmcgIT09IFwibnVtYmVyXCIpe1xuICAgIGlmKChhcmcgaW5zdGFuY2VvZiBBcnJheSkgJiYgYXJnLmxlbmd0aCA9PSAxKVxuICAgICAgYXJnID0gYXJnWzBdO1xuICAgIGVsc2UgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiTWxfQmlnYXJyYXlfY18xXzEub2Zmc2V0XCIpO1xuICB9XG4gIGlmIChhcmcgPCAwIHx8IGFyZyA+PSB0aGlzLmRpbXNbMF0pXG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJnO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG9mcykge1xuICByZXR1cm4gdGhpcy5kYXRhW29mc107XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAob2ZzLHYpIHtcbiAgdGhpcy5kYXRhW29mc10gPSB2O1xuICByZXR1cm4gMFxufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uICh2KSB7XG4gIHRoaXMuZGF0YS5maWxsKHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NvbXBhcmVcbmZ1bmN0aW9uIGNhbWxfYmFfY29tcGFyZShhLGIsdG90YWwpe1xuICByZXR1cm4gYS5jb21wYXJlKGIsdG90YWwpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuLy9SZXF1aXJlczogTWxfQmlnYXJyYXksIE1sX0JpZ2FycmF5X2NfMV8xLCBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpe1xuICB2YXIgc2l6ZV9wZXJfZWxlbWVudCA9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCk7XG4gIGlmKGNhbWxfYmFfZ2V0X3NpemUoZGltcykgKiBzaXplX3Blcl9lbGVtZW50ICE9IGRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwibGVuZ3RoIGRvZXNuJ3QgbWF0Y2ggZGltc1wiKTtcbiAgfVxuICBpZihsYXlvdXQgPT0gMCAmJiAvLyBjX2xheW91dFxuICAgICBkaW1zLmxlbmd0aCA9PSAxICYmIC8vIEFycmF5MVxuICAgICBzaXplX3Blcl9lbGVtZW50ID09IDEpIC8vIDEtdG8tMSBtYXBwaW5nXG4gICAgcmV0dXJuIG5ldyBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICByZXR1cm4gbmV3IE1sX0JpZ2FycmF5KGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG5cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGUoa2luZCwgbGF5b3V0LCBkaW1zX21sKSB7XG4gIHZhciBkaW1zID0gY2FtbF9qc19mcm9tX2FycmF5KGRpbXNfbWwpO1xuICB2YXIgZGF0YSA9IGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBjYW1sX2JhX2dldF9zaXplKGRpbXMpKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NoYW5nZV9sYXlvdXRcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gY2FtbF9iYV9jaGFuZ2VfbGF5b3V0KGJhLCBsYXlvdXQpIHtcbiAgaWYoYmEubGF5b3V0ID09IGxheW91dCkgcmV0dXJuIGJhO1xuICB2YXIgbmV3X2RpbXMgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2JhLmRpbXMubGVuZ3RoIC0gaSAtIDFdO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGxheW91dCwgbmV3X2RpbXMsIGJhLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2tpbmRcbmZ1bmN0aW9uIGNhbWxfYmFfa2luZChiYSkge1xuICByZXR1cm4gYmEua2luZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9sYXlvdXRcbmZ1bmN0aW9uIGNhbWxfYmFfbGF5b3V0KGJhKSB7XG4gIHJldHVybiBiYS5sYXlvdXQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbnVtX2RpbXNcbmZ1bmN0aW9uIGNhbWxfYmFfbnVtX2RpbXMoYmEpIHtcbiAgcmV0dXJuIGJhLmRpbXMubGVuZ3RoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2RpbShiYSwgaSkge1xuICBpZiAoaSA8IDAgfHwgaSA+PSBiYS5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5kaW1cIik7XG4gIHJldHVybiBiYS5kaW1zW2ldO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8xXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMShiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8yXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMihiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8zXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMyhiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9nZW5lcmljXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X2dlbmVyaWMoYmEsIGkpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChjYW1sX2pzX2Zyb21fYXJyYXkoaSkpO1xuICByZXR1cm4gYmEuZ2V0KG9mcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0MTYoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMpO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzICsgMSk7XG4gIHJldHVybiAoYjEgfCAoYjIgPDwgOCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDMyKGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKzApO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzKzEpO1xuICB2YXIgYjMgPSBiYS5nZXQob2ZzKzIpO1xuICB2YXIgYjQgPSBiYS5nZXQob2ZzKzMpO1xuICByZXR1cm4gKCAoYjEgPDwgMCkgIHxcbiAgICAgICAgICAgKGIyIDw8IDgpICB8XG4gICAgICAgICAgIChiMyA8PCAxNikgfFxuICAgICAgICAgICAoYjQgPDwgMjQpICk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0NjQoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMrMCk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMrMSk7XG4gIHZhciBiMyA9IGJhLmdldChvZnMrMik7XG4gIHZhciBiNCA9IGJhLmdldChvZnMrMyk7XG4gIHZhciBiNSA9IGJhLmdldChvZnMrNCk7XG4gIHZhciBiNiA9IGJhLmdldChvZnMrNSk7XG4gIHZhciBiNyA9IGJhLmdldChvZnMrNik7XG4gIHZhciBiOCA9IGJhLmdldChvZnMrNyk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFtiOCxiNyxiNixiNSxiNCxiMyxiMixiMV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8xKGJhLCBpMCkge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChpMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8yXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8yKGJhLCBpMCwgaTEpIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoW2kwLGkxXSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8zXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8zKGJhLCBpMCwgaTEsIGkyKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KFtpMCxpMSxpMl0pKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfZ2VuZXJpY1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JhX3NldF9nZW5lcmljKGJhLCBpLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoY2FtbF9qc19mcm9tX2FycmF5KGkpKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0MTYoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGJhLnNldChvZnMrMCwgIHYgICAgICAgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMSwgKHYgPj4+IDgpICYgMHhmZik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDMyKGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBiYS5zZXQob2ZzKzAsICB2ICAgICAgICAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysxLCAodiA+Pj4gOCkgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMiwgKHYgPj4+IDE2KSAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzMsICh2ID4+PiAyNCkgJiAweGZmKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0NjQoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciB2ID0gY2FtbF9pbnQ2NF90b19ieXRlcyh2KTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IDg7IGkrKykgYmEuc2V0KG9mcytpLCB2WzctaV0pXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8xXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8xKGJhLCBpMCwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KGkwKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzJcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzIoYmEsIGkwLCBpMSwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KFtpMCxpMV0pLCB2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzNcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzMoYmEsIGkwLCBpMSwgaTIsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChbaTAsaTEsaTJdKSwgdik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2ZpbGxcbmZ1bmN0aW9uIGNhbWxfYmFfZmlsbChiYSwgdikge1xuICBiYS5maWxsKHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfYmxpdChzcmMsIGRzdCkge1xuICBpZiAoZHN0LmRpbXMubGVuZ3RoICE9IHNyYy5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5ibGl0OiBkaW1lbnNpb24gbWlzbWF0Y2hcIik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZHN0LmRpbXMubGVuZ3RoOyBpKyspXG4gICAgaWYgKGRzdC5kaW1zW2ldICE9IHNyYy5kaW1zW2ldKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuYmxpdDogZGltZW5zaW9uIG1pc21hdGNoXCIpO1xuICBkc3QuZGF0YS5zZXQoc3JjLmRhdGEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zdWJcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX3N1YihiYSwgb2ZzLCBsZW4pIHtcbiAgdmFyIGNoYW5nZWRfZGltO1xuICB2YXIgbXVsID0gMTtcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IDA7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAoYmEuZGltcy5sZW5ndGggLSAxKTsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IGJhLmRpbXMubGVuZ3RoIC0gMTtcbiAgICBvZnMgPSBvZnMgLSAxO1xuICB9XG4gIGlmIChvZnMgPCAwIHx8IGxlbiA8IDAgfHwgKG9mcyArIGxlbikgPiBiYS5kaW1zW2NoYW5nZWRfZGltXSl7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuc3ViOiBiYWQgc3ViLWFycmF5XCIpO1xuICB9XG4gIHZhciBuZXdfZGltcyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2ldO1xuICBuZXdfZGltc1tjaGFuZ2VkX2RpbV0gPSBsZW47XG4gIG11bCAqPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGJhLmtpbmQpO1xuICB2YXIgbmV3X2RhdGEgPSBiYS5kYXRhLnN1YmFycmF5KG9mcyAqIG11bCwgKG9mcyArIGxlbikgKiBtdWwpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbXMsIG5ld19kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zbGljZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9zbGljZShiYSwgdmluZCkge1xuICB2aW5kID0gY2FtbF9qc19mcm9tX2FycmF5KHZpbmQpO1xuICB2YXIgbnVtX2luZHMgPSB2aW5kLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gW107XG4gIHZhciBzdWJfZGltcyA9IFtdO1xuICB2YXIgb2ZzO1xuXG4gIGlmIChudW1faW5kcyA+IGJhLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnNsaWNlOiB0b28gbWFueSBpbmRpY2VzXCIpO1xuXG4gIC8vIENvbXB1dGUgb2Zmc2V0IGFuZCBjaGVjayBib3VuZHNcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSB2aW5kW2ldO1xuICAgIGZvciAoOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICAgIGluZGV4W2ldID0gMDtcbiAgICBzdWJfZGltcyA9IGJhLmRpbXMuc2xpY2UobnVtX2luZHMpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2JhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMgKyBpXSA9IHZpbmRbaV07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtpXSA9IDE7XG4gICAgc3ViX2RpbXMgPSBiYS5kaW1zLnNsaWNlKDAsIGJhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMpO1xuICB9XG4gIG9mcyA9IGJhLm9mZnNldChpbmRleCk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShzdWJfZGltcyk7XG4gIHZhciBzaXplX3Blcl9lbGVtZW50ID0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChiYS5raW5kKTtcbiAgdmFyIG5ld19kYXRhID0gYmEuZGF0YS5zdWJhcnJheShvZnMgKiBzaXplX3Blcl9lbGVtZW50LCAob2ZzICsgc2l6ZSkgKiBzaXplX3Blcl9lbGVtZW50KTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIHN1Yl9kaW1zLCBuZXdfZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfcmVzaGFwZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9iYV9nZXRfc2l6ZVxuZnVuY3Rpb24gY2FtbF9iYV9yZXNoYXBlKGJhLCB2aW5kKSB7XG4gIHZpbmQgPSBjYW1sX2pzX2Zyb21fYXJyYXkodmluZCk7XG4gIHZhciBuZXdfZGltID0gW107XG4gIHZhciBudW1fZGltcyA9IHZpbmQubGVuZ3RoO1xuXG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNil7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogYmFkIG51bWJlciBvZiBkaW1lbnNpb25zXCIpO1xuICB9XG4gIHZhciBudW1fZWx0cyA9IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykge1xuICAgIG5ld19kaW1baV0gPSB2aW5kW2ldO1xuICAgIGlmIChuZXdfZGltW2ldIDwgMClcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IG5lZ2F0aXZlIGRpbWVuc2lvblwiKTtcbiAgICBudW1fZWx0cyA9IG51bV9lbHRzICogbmV3X2RpbVtpXTtcbiAgfVxuXG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShiYS5kaW1zKTtcbiAgLy8gQ2hlY2sgdGhhdCBzaXplcyBhZ3JlZVxuICBpZiAobnVtX2VsdHMgIT0gc2l6ZSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBzaXplIG1pc21hdGNoXCIpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbSwgYmEuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdFxuZnVuY3Rpb24gY2FtbF9iYV9zZXJpYWxpemUod3JpdGVyLCBiYSwgc3opIHtcbiAgd3JpdGVyLndyaXRlKDMyLCBiYS5kaW1zLmxlbmd0aCk7XG4gIHdyaXRlci53cml0ZSgzMiwgKGJhLmtpbmQgfCAoYmEubGF5b3V0IDw8IDgpKSk7XG4gIGlmKGJhLmNhbWxfY3VzdG9tID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKGJhLmRpbXNbaV0gPCAweGZmZmYpXG4gICAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGltc1tpXSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgd3JpdGVyLndyaXRlKDE2LCAweGZmZmYpO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIDApO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRpbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSB3cml0ZXIud3JpdGUoMzIsYmEuZGltc1tpXSlcbiAgc3dpdGNoKGJhLmtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDgsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgd3JpdGVyLndyaXRlKDgsMCk7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoYmEuZ2V0KGkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChiYS5nZXQoaSkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoYmEuZ2V0KGkpKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGogPSBiYS5nZXQoaSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzFdKSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzJdKSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGNvbXBsZXggPSBiYS5nZXQoaSk7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGNvbXBsZXhbMV0pKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChjb21wbGV4WzJdKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgc3pbMF0gPSAoNCArIGJhLmRpbXMubGVuZ3RoKSAqIDQ7XG4gIHN6WzFdID0gKDQgKyBiYS5kaW1zLmxlbmd0aCkgKiA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Rlc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMsIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1xuLy9SZXF1aXJlczogY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbmZ1bmN0aW9uIGNhbWxfYmFfZGVzZXJpYWxpemUocmVhZGVyLCBzeiwgbmFtZSl7XG4gIHZhciBudW1fZGltcyA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNilcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHdyb25nIG51bWJlciBvZiBiaWdhcnJheSBkaW1lbnNpb25zXCIpO1xuICB2YXIgdGFnID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgdmFyIGtpbmQgPSB0YWcgJiAweGZmXG4gIHZhciBsYXlvdXQgPSAodGFnID4+IDgpICYgMTtcbiAgdmFyIGRpbXMgPSBbXVxuICBpZihuYW1lID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSB7XG4gICAgICB2YXIgc2l6ZV9kaW0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgICAgaWYoc2l6ZV9kaW0gPT0gMHhmZmZmKXtcbiAgICAgICAgdmFyIHNpemVfZGltX2hpID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgdmFyIHNpemVfZGltX2xvID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgaWYoc2l6ZV9kaW1faGkgIT0gMClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGJpZ2FycmF5IGRpbWVuc2lvbiBvdmVyZmxvdyBpbiAzMmJpdFwiKTtcbiAgICAgICAgc2l6ZV9kaW0gPSBzaXplX2RpbV9sbztcbiAgICAgIH1cbiAgICAgIGRpbXMucHVzaChzaXplX2RpbSk7XG4gICAgfVxuICBlbHNlXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSBkaW1zLnB1c2gocmVhZGVyLnJlYWQzMnUoKSk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKTtcbiAgdmFyIGRhdGEgPSBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSk7XG4gIHZhciBiYSA9IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQ4cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIHZhciBzaXh0eSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICBpZihzaXh0eSkgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBjYW5ub3QgcmVhZCBiaWdhcnJheSB3aXRoIDY0LWJpdCBPQ2FtbCBpbnRzXCIpO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6IC8vIChpbnQ2NClcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgaW50NjQgPSBjYW1sX2ludDY0X29mX2J5dGVzKHQpO1xuICAgICAgYmEuc2V0KGksaW50NjQpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVha1xuICB9XG4gIHN6WzBdID0gKDQgKyBudW1fZGltcykgKiA0O1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG59XG5cbi8vRGVwcmVjYXRlZFxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfZnJvbVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX2Zyb20oZGF0YTEsIGRhdGEyLCBqc3R5cCwga2luZCwgbGF5b3V0LCBkaW1zKXtcbiAgaWYoZGF0YTIgfHwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKSA9PSAyKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2NyZWF0ZV9mcm9tOiB1c2UgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVwiKTtcbiAgfVxuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YTEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2hhc2ggY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfaGFzaF9taXhfaW50LCBjYW1sX2hhc2hfbWl4X2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2JhX2hhc2goYmEpe1xuICB2YXIgbnVtX2VsdHMgPSBjYW1sX2JhX2dldF9zaXplKGJhLmRpbXMpO1xuICB2YXIgaCA9IDA7XG4gIHN3aXRjaChiYS5raW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGlmKG51bV9lbHRzID4gMjU2KSBudW1fZWx0cyA9IDI1NjtcbiAgICB2YXIgdyA9IDAsIGkgPTA7XG4gICAgZm9yKGkgPSAwOyBpICsgNCA8PSBiYS5kYXRhLmxlbmd0aDsgaSs9NCl7XG4gICAgICB3ID0gYmEuZGF0YVtpKzBdIHwgKGJhLmRhdGFbaSsxXSA8PCA4KSB8IChiYS5kYXRhW2krMl0gPDwgMTYpIHwgKGJhLmRhdGFbaSszXSA8PCAyNCk7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCx3KTtcbiAgICB9XG4gICAgdyA9IDA7XG4gICAgc3dpdGNoIChudW1fZWx0cyAmIDMpIHtcbiAgICBjYXNlIDM6IHcgID0gYmEuZGF0YVtpKzJdIDw8IDE2OyAgICAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgMjogdyB8PSBiYS5kYXRhW2krMV0gPDwgODsgICAgIC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAxOiB3IHw9IGJhLmRhdGFbaSswXTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBpZihudW1fZWx0cyA+IDEyOCkgbnVtX2VsdHMgPSAxMjg7XG4gICAgdmFyIHcgPSAwLCBpID0wO1xuICAgIGZvcihpID0gMDsgaSArIDIgPD0gYmEuZGF0YS5sZW5ndGg7IGkrPTIpe1xuICAgICAgdyA9IGJhLmRhdGFbaSswXSB8IChiYS5kYXRhW2krMV0gPDwgMTYpO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsdyk7XG4gICAgfVxuICAgIGlmICgobnVtX2VsdHMgJiAxKSAhPSAwKVxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGlmIChudW1fZWx0cyA+IDMyKSBudW1fZWx0cyA9IDMyO1xuICAgIG51bV9lbHRzICo9IDJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIG51bV9lbHRzICo9MjsgLyogZmFsbHRocm91Z2ggKi9cbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgbnVtX2VsdHMgKj0yOyAvKiBmYWxsdGhyb3VnaCAqL1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICBpZiAobnVtX2VsdHMgPiAzMikgbnVtX2VsdHMgPSAzMjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYmFfdG9fdHlwZWRfYXJyYXkoYmEpe1xuICByZXR1cm4gYmEuZGF0YTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKXtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICB2YXIga2luZDtcbiAgaWYgKHRhIGluc3RhbmNlb2YgZy5GbG9hdDMyQXJyYXkpIGtpbmQgPSAwO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuRmxvYXQ2NEFycmF5KSBraW5kID0gMTtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLkludDhBcnJheSkga2luZCA9IDI7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5VaW50OEFycmF5KSBraW5kID0gMztcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLkludDE2QXJyYXkpIGtpbmQgPSA0O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuVWludDE2QXJyYXkpIGtpbmQgPSA1O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuSW50MzJBcnJheSkga2luZCA9IDY7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5VaW50MzJBcnJheSkga2luZCA9IDY7XG4gIGVsc2UgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5OiB1bnN1cHBvcnRlZCBraW5kXCIpO1xuICByZXR1cm4ga2luZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkodGEpe1xuICB2YXIga2luZCA9IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSh0YSk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF90YWcoYSl7XG4gIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIDEwMDA7IC8vIGludF90YWcgKHdlIHVzZSBpdCBmb3IgYWxsIG51bWJlcnMpXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMoYSkpIHJldHVybiAyNTI7IC8vIHN0cmluZ190YWdcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcoYSkpIHJldHVybiAxMjUyOyAvLyBvY2FtbCBzdHJpbmcgKGlmIGRpZmZlcmVudCBmcm9tIGJ5dGVzKVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgQXJyYXkgJiYgYVswXSA9PT0gKGFbMF0+Pj4wKSAmJiBhWzBdIDw9IDI1NSkge1xuICAgIC8vIExvb2sgbGlrZSBhbiBvY2FtbCBibG9ja1xuICAgIHZhciB0YWcgPSBhWzBdIHwgMDtcbiAgICAvLyBpZ25vcmUgZG91YmxlX2FycmF5X3RhZyBiZWNhdXNlIHdlIGNhbm5vdCBhY2N1cmF0ZWx5IHNldFxuICAgIC8vIHRoaXMgdGFnIHdoZW4gd2UgY3JlYXRlIGFuIGFycmF5IG9mIGZsb2F0LlxuICAgIHJldHVybiAodGFnID09IDI1NCk/MDp0YWdcbiAgfVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgU3RyaW5nKSByZXR1cm4gMTI1MjA7IC8vIGphdmFzY3JpcHQgc3RyaW5nLCBsaWtlIHN0cmluZ190YWcgKDI1MilcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJzdHJpbmdcIikgcmV0dXJuIDEyNTIwOyAvLyBqYXZhc2NyaXB0IHN0cmluZywgbGlrZSBzdHJpbmdfdGFnICgyNTIpXG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBOdW1iZXIpIHJldHVybiAxMDAwOyAvLyBpbnRfdGFnICh3ZSB1c2UgaXQgZm9yIGFsbCBudW1iZXJzKVxuICBlbHNlIGlmIChhICYmIGEuY2FtbF9jdXN0b20pIHJldHVybiAxMjU1OyAvLyBsaWtlIGN1c3RvbV90YWcgKDI1NSlcbiAgZWxzZSBpZiAoYSAmJiBhLmNvbXBhcmUpIHJldHVybiAxMjU2OyAvLyBsaWtlIGN1c3RvbV90YWcgKDI1NSlcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gMTI0NzsgLy8gbGlrZSBjbG9zdXJlX3RhZyAoMjQ3KVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcInN5bWJvbFwiKSByZXR1cm4gMTI1MTtcbiAgcmV0dXJuIDEwMDE7IC8vb3V0X29mX2hlYXBfdGFnXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9jdXN0b21fb3BzXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYSl7XG4gIHJldHVybiBjYW1sX2N1c3RvbV9vcHNbYS5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW2EuY2FtbF9jdXN0b21dLmNvbXBhcmU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20obnVtLCBjdXN0b20sIHN3YXAsIHRvdGFsKSB7XG4gIHZhciBjb21wID0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGN1c3RvbSk7XG4gIGlmKGNvbXApIHtcbiAgICB2YXIgeCA9IChzd2FwID4gMCk/Y29tcChjdXN0b20sbnVtLHRvdGFsKTpjb21wKG51bSxjdXN0b20sdG90YWwpO1xuICAgIGlmKHRvdGFsICYmIHggIT0geCkgcmV0dXJuIHN3YXA7IC8vIHRvdGFsICYmIG5hblxuICAgIGlmKCt4ICE9ICt4KSByZXR1cm4gK3g7IC8vIG5hblxuICAgIGlmKCh4IHwgMCkgIT0gMCkgcmV0dXJuICh4IHwgMCk7IC8vICFuYW5cbiAgfVxuICByZXR1cm4gc3dhcFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsIChjb25zdCwgY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9pbnRfY29tcGFyZSwgY2FtbF9zdHJpbmdfY29tcGFyZSwgY2FtbF9ieXRlc19jb21wYXJlXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbSwgY2FtbF9jb21wYXJlX3ZhbF90YWdcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdG90YWwpIHtcbiAgdmFyIHN0YWNrID0gW107XG4gIGZvcig7Oykge1xuICAgIGlmICghKHRvdGFsICYmIGEgPT09IGIpKSB7XG4gICAgICB2YXIgdGFnX2EgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhhKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19hID09IDI1MCkgeyBhID0gYVsxXTsgY29udGludWUgfVxuXG4gICAgICB2YXIgdGFnX2IgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhiKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19iID09IDI1MCkgeyBiID0gYlsxXTsgY29udGludWUgfVxuXG4gICAgICAvLyB0YWdzIGFyZSBkaWZmZXJlbnRcbiAgICAgIGlmKHRhZ19hICE9PSB0YWdfYikge1xuICAgICAgICBpZih0YWdfYSA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2IgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShhLCBiLCAtMSwgdG90YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZih0YWdfYiA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2EgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShiLCBhLCAxLCB0b3RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0YWdfYSA8IHRhZ19iKT8tMToxO1xuICAgICAgfVxuICAgICAgc3dpdGNoKHRhZ19hKXtcbiAgICAgICAgLy8gMjQ2OiBMYXp5X3RhZyBoYW5kbGVkIGJlbGxvd1xuICAgICAgY2FzZSAyNDc6IC8vIENsb3N1cmVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjQ4OiAvLyBPYmplY3RcbiAgICAgICAgdmFyIHggPSBjYW1sX2ludF9jb21wYXJlKGFbMl0sIGJbMl0pO1xuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI0OTogLy8gSW5maXhcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNTA6IC8vIEZvcndhcmQgdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW4sIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBGb3J3YXJkX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTE6IC8vQWJzdHJhY3RcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUyOiAvLyBPQ2FtbCBieXRlc1xuICAgICAgICBpZiAoYSAhPT0gYikge1xuICAgICAgICAgIHZhciB4ID0gY2FtbF9ieXRlc19jb21wYXJlKGEsIGIpO1xuICAgICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUzOiAvLyBEb3VibGVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBEb3VibGVfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5X3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuLCBoYW5kbGVkIGFib3ZlXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRG91YmxlX2FycmF5X3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI1NTogLy8gQ3VzdG9tX3RhZ1xuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IEN1c3RvbV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI0NzogLy8gRnVuY3Rpb25cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTU6IC8vIEN1c3RvbVxuICAgICAgICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShhKTtcbiAgICAgICAgaWYoY29tcCAhPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYikpe1xuICAgICAgICAgIHJldHVybiAoYS5jYW1sX2N1c3RvbTxiLmNhbWxfY3VzdG9tKT8tMToxO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFjb21wKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICB2YXIgeCA9IGNvbXAoYSxiLHRvdGFsKTtcbiAgICAgICAgaWYoeCAhPSB4KXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgVU5PUkRFUkVEXG4gICAgICAgICAgcmV0dXJuIHRvdGFsPy0xOng7XG4gICAgICAgIH1cbiAgICAgICAgaWYoeCAhPT0gKHh8MCkpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCByZXR1cm4gdmFsdWVcbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTY6IC8vIGNvbXBhcmUgZnVuY3Rpb25cbiAgICAgICAgdmFyIHggPSBhLmNvbXBhcmUoYix0b3RhbCk7XG4gICAgICAgIGlmKHggIT0geCkgeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBVTk9SREVSRURcbiAgICAgICAgICByZXR1cm4gdG90YWw/LTE6eDtcbiAgICAgICAgfVxuICAgICAgICBpZih4ICE9PSAoeHwwKSl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIHJldHVybiB2YWx1ZVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTAwMDogLy8gTnVtYmVyXG4gICAgICAgIGEgPSArYTtcbiAgICAgICAgYiA9ICtiO1xuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKGEgIT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgaWYgKGEgPT0gYSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGIgPT0gYikgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDAxOiAvLyBUaGUgcmVzdFxuICAgICAgICAvLyBIZXJlIHdlIGNhbiBiZSBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICAgICAgICAvLyAxLiBKYXZhU2NyaXB0IHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAyLiBKYXZhU2NyaXB0IG9iamVjdCB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAzLiBKYXZhU2NyaXB0IG9iamVjdCB0aGFuIGNhbm5vdCBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvL1xuICAgICAgICAvLyAoMykgd2lsbCByYWlzZSBhIFtUeXBlRXJyb3JdXG4gICAgICAgIC8vICgyKSB3aWxsIGNvZXJjZSB0byBwcmltaXRpdmUgdHlwZXMgdXNpbmcgW3ZhbHVlT2ZdIG9yIFt0b1N0cmluZ11cbiAgICAgICAgLy8gKDIpIGFuZCAoMyksIGFmdGVyIGV2ZW50dWFsIGNvZXJjaW9uXG4gICAgICAgIC8vIC0gaWYgYSBhbmQgYiBhcmUgc3RyaW5ncywgYXBwbHkgbGV4aWNvZ3JhcGhpYyBjb21wYXJpc29uXG4gICAgICAgIC8vIC0gaWYgYSBvciBiIGFyZSBub3Qgc3RyaW5ncywgY29udmVydCBhIGFuZCBiIHRvIG51bWJlclxuICAgICAgICAvLyAgIGFuZCBhcHBseSBzdGFuZGFyZCBjb21wYXJpc29uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEV4Y2VwdGlvbjogYCE9YCB3aWxsIG5vdCBjb2VyY2UvY29udmVydCBpZiBib3RoIGEgYW5kIGIgYXJlIG9iamVjdHNcbiAgICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChhICE9IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIGlmIChhID09IGEpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChiID09IGIpIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MTogLy8gSmF2YVNjcmlwdCBTeW1ib2wsIG5vIG9yZGVyaW5nLlxuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MjogLy8gb2NhbWwgc3RyaW5nc1xuICAgICAgICB2YXIgYSA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoYSk7XG4gICAgICAgIHZhciBiID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhiKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUyMDogLy8gamF2YXNjcmlwdCBzdHJpbmdzXG4gICAgICAgIHZhciBhID0gYS50b1N0cmluZygpO1xuICAgICAgICB2YXIgYiA9IGIudG9TdHJpbmcoKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNDY6IC8vIExhenlfdGFnXG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5XG4gICAgICBkZWZhdWx0OiAvLyBCbG9jayB3aXRoIG90aGVyIHRhZ1xuICAgICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiAoYS5sZW5ndGggPCBiLmxlbmd0aCk/LTE6MTtcbiAgICAgICAgaWYgKGEubGVuZ3RoID4gMSkgc3RhY2sucHVzaChhLCBiLCAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdGFjay5sZW5ndGggPT0gMCkgcmV0dXJuIDA7XG4gICAgdmFyIGkgPSBzdGFjay5wb3AoKTtcbiAgICBiID0gc3RhY2sucG9wKCk7XG4gICAgYSA9IHN0YWNrLnBvcCgpO1xuICAgIGlmIChpICsgMSA8IGEubGVuZ3RoKSBzdGFjay5wdXNoKGEsIGIsIGkgKyAxKTtcbiAgICBhID0gYVtpXTtcbiAgICBiID0gYltpXTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmUgKGEsIGIpIHsgcmV0dXJuIGNhbWxfY29tcGFyZV92YWwgKGEsIGIsIHRydWUpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2ludF9jb21wYXJlIG11dGFibGUgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfaW50X2NvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKGEgPCBiKSByZXR1cm4gKC0xKTsgaWYgKGEgPT0gYikgcmV0dXJuIDA7IHJldHVybiAxO1xufVxuLy9Qcm92aWRlczogY2FtbF9lcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2VxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA9PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX25vdGVxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSAhPSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ncmVhdGVyZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ncmVhdGVyZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID49IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyZWF0ZXJ0aGFuIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZ3JlYXRlcnRoYW4gKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID4gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbGVzc2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbGVzc2VxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA8PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9sZXNzdGhhbiBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2xlc3N0aGFuICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA8IDApOyB9XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgSW5oYWJpdGVkIFR5cGUgTExDLlxuXG4gICAgQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uc1xuICAgIGFyZSBtZXQ6XG5cbiAgICAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblxuICAgIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZVxuICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgICAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhdXRob3Igbm9yIHRoZSBuYW1lcyBvZiBoaXMgY29udHJpYnV0b3JzXG4gICAgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlXG4gICAgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG5cbiAgICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTU1xuICAgIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gICAgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICAgIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUlxuICAgIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUxcbiAgICBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EU1xuICAgIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKVxuICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCxcbiAgICBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU5cbiAgICBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEVcbiAgICBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX2JsaXRfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX2JsaXRfdG9fYnl0ZXMoc3JjLCBzcmNfb2ZmLCBkc3QsIGRzdF9vZmYsIGxlbikge1xuICByZXR1cm4gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyhzcmMsc3JjX29mZixkc3QsZHN0X29mZixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9ibGl0X3RvX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYVxuZnVuY3Rpb24gYmlnc3RyaW5nYWZfYmxpdF90b19iaWdzdHJpbmcoc3JjLCBzcmNfb2ZmLCBkc3QsIGRzdF9vZmYsIGxlbikge1xuICByZXR1cm4gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYShzcmMsIHNyY19vZmYsIGRzdCwgZHN0X29mZiwgbGVuKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfYmxpdF9mcm9tX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxuZnVuY3Rpb24gYmlnc3RyaW5nYWZfYmxpdF9mcm9tX2J5dGVzKHNyYywgc3JjX29mZiwgZHN0LCBkc3Rfb2ZmLCBsZW4pIHtcbiAgcmV0dXJuIGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhKHNyYywgc3JjX29mZiwgZHN0LCBkc3Rfb2ZmLCBsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xLCBjYW1sX2ludF9jb21wYXJlXG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nKGJhMSwgYmExX29mZiwgYmEyLCBiYTJfb2ZmLCBsZW4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBjID0gY2FtbF9pbnRfY29tcGFyZShjYW1sX2JhX2dldF8xKGJhMSwgYmExX29mZiArIGkpLCBjYW1sX2JhX2dldF8xKGJhMiwgYmEyX29mZiArIGkpKTtcbiAgICBpZiAoYyAhPSAwKSByZXR1cm4gY1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9tZW1jbXBfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xLCBjYW1sX2ludF9jb21wYXJlLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9tZW1jbXBfc3RyaW5nKGJhLCBiYV9vZmYsIHN0ciwgc3RyX29mZiwgbGVuKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGNhbWxfaW50X2NvbXBhcmUoY2FtbF9iYV9nZXRfMShiYSwgYmFfb2ZmICsgaSksIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQoc3RyLCBzdHJfb2ZmICsgaSkpO1xuICAgIGlmIChjICE9IDApIHJldHVybiBjXG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX21lbWNoclxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gYmlnc3RyaW5nYWZfbWVtY2hyKGJhLCBiYV9vZmYsIGNociwgbGVuKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoY2FtbF9iYV9nZXRfMShiYSwgYmFfb2ZmICsgaSkgPT0gY2hyKSB7XG4gICAgICByZXR1cm4gKGJhX29mZiArIGkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBsaWJyYXJ5XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSnNsaWJcblxuLy9Qcm92aWRlczogY2FtbF9qc19wdXJlX2V4cHIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfanNfcHVyZV9leHByIChmKSB7IHJldHVybiBmKCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19zZXQgKG11dGFibGUsIGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfc2V0KG8sZix2KSB7IG9bZl09djtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZ2V0IG11dGFibGUgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZ2V0KG8sZikgeyByZXR1cm4gb1tmXTsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19kZWxldGUgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19kZWxldGUobyxmKSB7IGRlbGV0ZSBvW2ZdOyByZXR1cm4gMH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19pbnN0YW5jZW9mIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2luc3RhbmNlb2YobyxjKSB7IHJldHVybiAobyBpbnN0YW5jZW9mIGMpID8gMSA6IDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc190eXBlb2YgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190eXBlb2YobykgeyByZXR1cm4gdHlwZW9mIG87IH1cblxuLy9Qcm92aWRlczpjYW1sX3RyYW1wb2xpbmVcbmZ1bmN0aW9uIGNhbWxfdHJhbXBvbGluZShyZXMpIHtcbiAgdmFyIGMgPSAxO1xuICB3aGlsZShyZXMgJiYgcmVzLmpvb190cmFtcCl7XG4gICAgcmVzID0gcmVzLmpvb190cmFtcC5hcHBseShudWxsLCByZXMuam9vX2FyZ3MpO1xuICAgIGMrKztcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOmNhbWxfdHJhbXBvbGluZV9yZXR1cm5cbmZ1bmN0aW9uIGNhbWxfdHJhbXBvbGluZV9yZXR1cm4oZixhcmdzKSB7XG4gIHJldHVybiB7am9vX3RyYW1wOmYsam9vX2FyZ3M6YXJnc307XG59XG5cbi8vUHJvdmlkZXM6IGpzX3ByaW50X3N0ZG91dCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIGpzX3ByaW50X3N0ZG91dChzKSB7XG4gIHZhciBzID0gY2FtbF91dGYxNl9vZl91dGY4KHMpO1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIGlmIChnLnByb2Nlc3MgJiYgZy5wcm9jZXNzLnN0ZG91dCAmJiBnLnByb2Nlc3Muc3Rkb3V0LndyaXRlKSB7XG4gICAgZy5wcm9jZXNzLnN0ZG91dC53cml0ZShzKVxuICB9IGVsc2Uge1xuICAgIC8vIERvIG5vdCBvdXRwdXQgdGhlIGxhc3QgXFxuIGlmIHByZXNlbnRcbiAgICAvLyBhcyBjb25zb2xlIGxvZ2dpbmcgZGlzcGxheSBhIG5ld2xpbmUgYXQgdGhlIGVuZFxuICAgIGlmKHMuY2hhckNvZGVBdChzLmxlbmd0aCAtIDEpID09IDEwKVxuICAgICAgcyA9IHMuc3Vic3RyKDAscy5sZW5ndGggLSAxICk7XG4gICAgdmFyIHYgPSBnLmNvbnNvbGU7XG4gICAgdiAgJiYgdi5sb2cgJiYgdi5sb2cocyk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGpzX3ByaW50X3N0ZGVyciAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIGpzX3ByaW50X3N0ZGVycihzKSB7XG4gIHZhciBzID0gY2FtbF91dGYxNl9vZl91dGY4KHMpO1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIGlmIChnLnByb2Nlc3MgJiYgZy5wcm9jZXNzLnN0ZG91dCAmJiBnLnByb2Nlc3Muc3Rkb3V0LndyaXRlKSB7XG4gICAgZy5wcm9jZXNzLnN0ZGVyci53cml0ZShzKVxuICB9IGVsc2Uge1xuICAgIC8vIERvIG5vdCBvdXRwdXQgdGhlIGxhc3QgXFxuIGlmIHByZXNlbnRcbiAgICAvLyBhcyBjb25zb2xlIGxvZ2dpbmcgZGlzcGxheSBhIG5ld2xpbmUgYXQgdGhlIGVuZFxuICAgIGlmKHMuY2hhckNvZGVBdChzLmxlbmd0aCAtIDEpID09IDEwKVxuICAgICAgcyA9IHMuc3Vic3RyKDAscy5sZW5ndGggLSAxICk7XG4gICAgdmFyIHYgPSBnLmNvbnNvbGU7XG4gICAgdiAmJiB2LmVycm9yICYmIHYuZXJyb3Iocyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19qc1xuZnVuY3Rpb24gY2FtbF9pc19qcygpIHtcbiAgcmV0dXJuIDE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd3JhcF9leGNlcHRpb24gY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSxjYW1sX3N0cmluZ19vZl9qc3N0cmluZyxjYW1sX25hbWVkX3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX3JldHVybl9leG5fY29uc3RhbnRcbmZ1bmN0aW9uIGNhbWxfd3JhcF9leGNlcHRpb24oZSkge1xuICBpZihlIGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBlO1xuICAvL1N0YWNrX292ZXJmbG93OiBjaHJvbWUsIHNhZmFyaVxuICBpZihnbG9iYWxUaGlzLlJhbmdlRXJyb3JcbiAgICAgJiYgZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuUmFuZ2VFcnJvclxuICAgICAmJiBlLm1lc3NhZ2VcbiAgICAgJiYgZS5tZXNzYWdlLm1hdGNoKC9tYXhpbXVtIGNhbGwgc3RhY2svaSkpXG4gICAgcmV0dXJuIGNhbWxfcmV0dXJuX2V4bl9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLlN0YWNrX292ZXJmbG93KTtcbiAgLy9TdGFja19vdmVyZmxvdzogZmlyZWZveFxuICBpZihnbG9iYWxUaGlzLkludGVybmFsRXJyb3JcbiAgICAgJiYgZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuSW50ZXJuYWxFcnJvclxuICAgICAmJiBlLm1lc3NhZ2VcbiAgICAgJiYgZS5tZXNzYWdlLm1hdGNoKC90b28gbXVjaCByZWN1cnNpb24vaSkpXG4gICAgcmV0dXJuIGNhbWxfcmV0dXJuX2V4bl9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLlN0YWNrX292ZXJmbG93KTtcbiAgLy9XcmFwIEVycm9yIGluIEpzLkVycm9yIGV4Y2VwdGlvblxuICBpZihlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5FcnJvciAmJiBjYW1sX25hbWVkX3ZhbHVlKFwianNFcnJvclwiKSlcbiAgICByZXR1cm4gWzAsY2FtbF9uYW1lZF92YWx1ZShcImpzRXJyb3JcIiksZV07XG4gIC8vZmFsbGJhY2s6IHdyYXBwZWQgaW4gRmFpbHVyZVxuICByZXR1cm4gWzAsY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlLGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChTdHJpbmcoZSkpXTtcbn1cblxuLy8gRXhwZXJpbWVudGFsXG4vL1Byb3ZpZGVzOiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UoZXhuLCBmb3JjZSkge1xuICAvL25ldmVyIHJlcmFpc2UgZm9yIGNvbnN0YW50IGV4blxuICBpZighZXhuLmpzX2Vycm9yIHx8IGZvcmNlIHx8IGV4blswXSA9PSAyNDgpIGV4bi5qc19lcnJvciA9IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiSnMgZXhjZXB0aW9uIGNvbnRhaW5pbmcgYmFja3RyYWNlXCIpO1xuICByZXR1cm4gZXhuO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uKGV4bikge1xuICBpZihleG4uanNfZXJyb3IpIHsgcmV0dXJuIFswLCBleG4uanNfZXJyb3JdOyB9XG4gIHJldHVybiAwO1xufVxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2Jvb2wgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2Jvb2woeCkgeyByZXR1cm4gISF4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2Jvb2wgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190b19ib29sKHgpIHsgcmV0dXJuICt4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fZmxvYXQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2Zsb2F0KHgpIHsgcmV0dXJuIHg7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fZmxvYXQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190b19mbG9hdCh4KSB7IHJldHVybiB4OyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9hcnJheSBtdXRhYmxlIChzaGFsbG93KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2FycmF5KGEpIHtcbiAgcmV0dXJuIGEuc2xpY2UoMSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2FycmF5IG11dGFibGUgKHNoYWxsb3cpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2FycmF5KGEpIHtcbiAgdmFyIGxlbiA9IGEubGVuZ3RoO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4rMSk7XG4gIGJbMF0gPSAwO1xuICBmb3IodmFyIGk9MDtpPGxlbjtpKyspIGJbaSsxXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xpc3Rfb2ZfanNfYXJyYXkgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9saXN0X29mX2pzX2FycmF5KGEpe1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgaT1hLmxlbmd0aCAtIDE7IGk+PTA7IGktLSl7XG4gICAgdmFyIGUgPSBhW2ldO1xuICAgIGwgPSBbMCxlLGxdO1xuICB9XG4gIHJldHVybiBsXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGlzdF90b19qc19hcnJheSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2xpc3RfdG9fanNfYXJyYXkobCl7XG4gIHZhciBhID0gW107XG4gIGZvcig7IGwgIT09IDA7IGwgPSBsWzJdKSB7XG4gICAgYS5wdXNoKGxbMV0pO1xuICB9XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3ZhciBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGpzX3ByaW50X3N0ZGVyclxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfdmFyKHgpIHtcbiAgdmFyIHggPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyh4KTtcbiAgLy9DaGVja3MgdGhhdCB4IGhhcyB0aGUgZm9ybSBpZGVudFsuaWRlbnRdKlxuICBpZigheC5tYXRjaCgvXlthLXpBLVpfJF1bYS16QS1aXyQwLTldKihcXC5bYS16QS1aXyRdW2EtekEtWl8kMC05XSopKiQvKSl7XG4gICAganNfcHJpbnRfc3RkZXJyKFwiY2FtbF9qc192YXI6IFxcXCJcIiArIHggKyBcIlxcXCIgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCB2YXJpYWJsZS4gY29udGludWluZyAuLlwiKTtcbiAgICAvL2dsb2JhbFRoaXMuY29uc29sZS5lcnJvcihcIkpzLlVuc2FmZS5ldmFsX3N0cmluZ1wiKVxuICB9XG4gIHJldHVybiBldmFsKHgpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19jYWxsIChjb25zdCwgbXV0YWJsZSwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19jYWxsKGYsIG8sIGFyZ3MpIHsgcmV0dXJuIGYuYXBwbHkobywgY2FtbF9qc19mcm9tX2FycmF5KGFyZ3MpKTsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mdW5fY2FsbCAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfZnVuX2NhbGwoZiwgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMTogcmV0dXJuIGYoKTtcbiAgY2FzZSAyOiByZXR1cm4gZiAoYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIGYgKGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sYVs3XSk7XG4gIH1cbiAgcmV0dXJuIGYuYXBwbHkobnVsbCwgY2FtbF9qc19mcm9tX2FycmF5KGEpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfbWV0aF9jYWxsIChtdXRhYmxlLCBjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbWV0aF9jYWxsKG8sIGYsIGFyZ3MpIHtcbiAgcmV0dXJuIG9bY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoZildLmFwcGx5KG8sIGNhbWxfanNfZnJvbV9hcnJheShhcmdzKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX25ldyAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbmV3KGMsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDE6IHJldHVybiBuZXcgYztcbiAgY2FzZSAyOiByZXR1cm4gbmV3IGMgKGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdLGFbN10pO1xuICB9XG4gIGZ1bmN0aW9uIEYoKSB7IHJldHVybiBjLmFwcGx5KHRoaXMsIGNhbWxfanNfZnJvbV9hcnJheShhKSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9vanNfbmV3X2FyciAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb2pzX25ld19hcnIoYywgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMDogcmV0dXJuIG5ldyBjO1xuICBjYXNlIDE6IHJldHVybiBuZXcgYyAoYVswXSk7XG4gIGNhc2UgMjogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIH1cbiAgZnVuY3Rpb24gRigpIHsgcmV0dXJuIGMuYXBwbHkodGhpcywgYSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgaWYobGVuID4gMCl7XG4gICAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBbdW5kZWZpbmVkXSk7XG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHNcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHMoZikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIFthcmdzXSk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QoYXJpdHksIGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgaWYobiA9PSBhcml0eSAmJiBmLmxlbmd0aCA9PSBhcml0eSkgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcml0eSk7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGgsIGFyaXR5KVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgYXJncyk7XG4gIH07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuICsgMSk7XG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsYXJncyk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50cyBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLFt0aGlzLGFyZ3NdKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QoYXJpdHksIGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcml0eSArIDEpO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoLCBhcml0eSlcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgYXJncyk7XG4gIH07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4gKyAxKTtcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7IH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXF1YWxzIG11dGFibGUgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZXF1YWxzICh4LCB5KSB7IHJldHVybiArKHggPT0geSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19ldmFsX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19ldmFsX3N0cmluZyAocykge3JldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXhwciAoY29uc3QpXG4vL1JlcXVpcmVzOiBqc19wcmludF9zdGRlcnJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2V4cHIocykge1xuICBqc19wcmludF9zdGRlcnIoXCJjYW1sX2pzX2V4cHI6IGZhbGxiYWNrIHRvIHJ1bnRpbWUgZXZhbHVhdGlvblxcblwiKTtcbiAgcmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9wdXJlX2pzX2V4cHIgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczoganNfcHJpbnRfc3RkZXJyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9wdXJlX2pzX2V4cHIgKHMpe1xuICBqc19wcmludF9zdGRlcnIoXCJjYW1sX3B1cmVfanNfZXhwcjogZmFsbGJhY2sgdG8gcnVudGltZSBldmFsdWF0aW9uXFxuXCIpO1xuICByZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX29iamVjdCAob2JqZWN0X2xpdGVyYWwpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19vYmplY3QgKGEpIHtcbiAgdmFyIG8gPSB7fTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHAgPSBhW2ldO1xuICAgIG9bY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocFsxXSldID0gcFsyXTtcbiAgfVxuICByZXR1cm4gbztcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0aXZlIENhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgKi9cbi8qICBlbiBBdXRvbWF0aXF1ZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgICAgKi9cbi8qICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2l0aCAgICAgKi9cbi8qICB0aGUgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSAuLi9MSUNFTlNFLiAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogJElkOiBwYXJzaW5nLmMgODk4MyAyMDA4LTA4LTA2IDA5OjM4OjI1WiB4bGVyb3kgJCAqL1xuXG4vKiBUaGUgUERBIGF1dG9tYXRvbiBmb3IgcGFyc2VycyBnZW5lcmF0ZWQgYnkgY2FtbHlhY2MgKi9cblxuLyogVGhlIHB1c2hkb3duIGF1dG9tYXRhICovXG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2xleF9hcnJheVxuZnVuY3Rpb24gY2FtbF9wYXJzZV9lbmdpbmUodGFibGVzLCBlbnYsIGNtZCwgYXJnKVxue1xuICB2YXIgRVJSQ09ERSA9IDI1NjtcblxuICAvL3ZhciBTVEFSVCA9IDA7XG4gIC8vdmFyIFRPS0VOX1JFQUQgPSAxO1xuICAvL3ZhciBTVEFDS1NfR1JPV05fMSA9IDI7XG4gIC8vdmFyIFNUQUNLU19HUk9XTl8yID0gMztcbiAgLy92YXIgU0VNQU5USUNfQUNUSU9OX0NPTVBVVEVEID0gNDtcbiAgLy92YXIgRVJST1JfREVURUNURUQgPSA1O1xuICB2YXIgbG9vcCA9IDY7XG4gIHZhciB0ZXN0c2hpZnQgPSA3O1xuICB2YXIgc2hpZnQgPSA4O1xuICB2YXIgc2hpZnRfcmVjb3ZlciA9IDk7XG4gIHZhciByZWR1Y2UgPSAxMDtcblxuICB2YXIgUkVBRF9UT0tFTiA9IDA7XG4gIHZhciBSQUlTRV9QQVJTRV9FUlJPUiA9IDE7XG4gIHZhciBHUk9XX1NUQUNLU18xID0gMjtcbiAgdmFyIEdST1dfU1RBQ0tTXzIgPSAzO1xuICB2YXIgQ09NUFVURV9TRU1BTlRJQ19BQ1RJT04gPSA0O1xuICB2YXIgQ0FMTF9FUlJPUl9GVU5DVElPTiA9IDU7XG5cbiAgdmFyIGVudl9zX3N0YWNrID0gMTtcbiAgdmFyIGVudl92X3N0YWNrID0gMjtcbiAgdmFyIGVudl9zeW1iX3N0YXJ0X3N0YWNrID0gMztcbiAgdmFyIGVudl9zeW1iX2VuZF9zdGFjayA9IDQ7XG4gIHZhciBlbnZfc3RhY2tzaXplID0gNTtcbiAgdmFyIGVudl9zdGFja2Jhc2UgPSA2O1xuICB2YXIgZW52X2N1cnJfY2hhciA9IDc7XG4gIHZhciBlbnZfbHZhbCA9IDg7XG4gIHZhciBlbnZfc3ltYl9zdGFydCA9IDk7XG4gIHZhciBlbnZfc3ltYl9lbmQgPSAxMDtcbiAgdmFyIGVudl9hc3AgPSAxMTtcbiAgdmFyIGVudl9ydWxlX2xlbiA9IDEyO1xuICB2YXIgZW52X3J1bGVfbnVtYmVyID0gMTM7XG4gIHZhciBlbnZfc3AgPSAxNDtcbiAgdmFyIGVudl9zdGF0ZSA9IDE1O1xuICB2YXIgZW52X2VycmZsYWcgPSAxNjtcblxuICAvLyB2YXIgX3RibF9hY3Rpb25zID0gMTtcbiAgdmFyIHRibF90cmFuc2xfY29uc3QgPSAyO1xuICB2YXIgdGJsX3RyYW5zbF9ibG9jayA9IDM7XG4gIHZhciB0YmxfbGhzID0gNDtcbiAgdmFyIHRibF9sZW4gPSA1O1xuICB2YXIgdGJsX2RlZnJlZCA9IDY7XG4gIHZhciB0YmxfZGdvdG8gPSA3O1xuICB2YXIgdGJsX3NpbmRleCA9IDg7XG4gIHZhciB0YmxfcmluZGV4ID0gOTtcbiAgdmFyIHRibF9naW5kZXggPSAxMDtcbiAgdmFyIHRibF90YWJsZXNpemUgPSAxMTtcbiAgdmFyIHRibF90YWJsZSA9IDEyO1xuICB2YXIgdGJsX2NoZWNrID0gMTM7XG4gIC8vIHZhciBfdGJsX2Vycm9yX2Z1bmN0aW9uID0gMTQ7XG4gIC8vIHZhciBfdGJsX25hbWVzX2NvbnN0ID0gMTU7XG4gIC8vIHZhciBfdGJsX25hbWVzX2Jsb2NrID0gMTY7XG5cbiAgaWYgKCF0YWJsZXMuZGdvdG8pIHtcbiAgICB0YWJsZXMuZGVmcmVkID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZGVmcmVkXSk7XG4gICAgdGFibGVzLnNpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3NpbmRleF0pO1xuICAgIHRhYmxlcy5jaGVjayAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9jaGVja10pO1xuICAgIHRhYmxlcy5yaW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9yaW5kZXhdKTtcbiAgICB0YWJsZXMudGFibGUgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfdGFibGVdKTtcbiAgICB0YWJsZXMubGVuICAgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfbGVuXSk7XG4gICAgdGFibGVzLmxocyAgICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2xoc10pO1xuICAgIHRhYmxlcy5naW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9naW5kZXhdKTtcbiAgICB0YWJsZXMuZGdvdG8gID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZGdvdG9dKTtcbiAgfVxuXG4gIHZhciByZXMgPSAwLCBuLCBuMSwgbjIsIHN0YXRlMTtcblxuICAvLyBSRVNUT1JFXG4gIHZhciBzcCA9IGVudltlbnZfc3BdO1xuICB2YXIgc3RhdGUgPSBlbnZbZW52X3N0YXRlXTtcbiAgdmFyIGVycmZsYWcgPSBlbnZbZW52X2VycmZsYWddO1xuXG4gIGV4aXQ6Zm9yICg7Oykge1xuICAgIHN3aXRjaChjbWQpIHtcbiAgICBjYXNlIDA6Ly9TVEFSVDpcbiAgICAgIHN0YXRlID0gMDtcbiAgICAgIGVycmZsYWcgPSAwO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG5cbiAgICBjYXNlIDY6Ly9sb29wOlxuICAgICAgbiA9IHRhYmxlcy5kZWZyZWRbc3RhdGVdO1xuICAgICAgaWYgKG4gIT0gMCkgeyBjbWQgPSByZWR1Y2U7IGJyZWFrOyB9XG4gICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID49IDApIHsgY21kID0gdGVzdHNoaWZ0OyBicmVhazsgfVxuICAgICAgcmVzID0gUkVBRF9UT0tFTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgbGV4ZXIgYW5kIHVwZGF0ZXMgKi9cbiAgICAgIC8qIHN5bWJfc3RhcnQgYW5kIHN5bWJfZW5kICovXG4gICAgY2FzZSAxOi8vVE9LRU5fUkVBRDpcbiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9ibG9ja11bYXJnWzBdICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSBhcmdbMV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9jb25zdF1bYXJnICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSAwO1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG5cbiAgICBjYXNlIDc6Ly90ZXN0c2hpZnQ6XG4gICAgICBuMSA9IHRhYmxlcy5zaW5kZXhbc3RhdGVdO1xuICAgICAgbjIgPSBuMSArIGVudltlbnZfY3Vycl9jaGFyXTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBlbnZbZW52X2N1cnJfY2hhcl0pIHtcbiAgICAgICAgY21kID0gc2hpZnQ7IGJyZWFrO1xuICAgICAgfVxuICAgICAgbjEgPSB0YWJsZXMucmluZGV4W3N0YXRlXTtcbiAgICAgIG4yID0gbjEgKyBlbnZbZW52X2N1cnJfY2hhcl07XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gZW52W2Vudl9jdXJyX2NoYXJdKSB7XG4gICAgICAgIG4gPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgICBjbWQgPSByZWR1Y2U7IGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKGVycmZsYWcgPD0gMCkge1xuICAgICAgICByZXMgPSBDQUxMX0VSUk9SX0ZVTkNUSU9OO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgZXJyb3IgZnVuY3Rpb24gKi9cbiAgICBjYXNlIDU6Ly9FUlJPUl9ERVRFQ1RFRDpcbiAgICAgIGlmIChlcnJmbGFnIDwgMykge1xuICAgICAgICBlcnJmbGFnID0gMztcbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgIHN0YXRlMSA9IGVudltlbnZfc19zdGFja11bc3AgKyAxXTtcbiAgICAgICAgICBuMSA9IHRhYmxlcy5zaW5kZXhbc3RhdGUxXTtcbiAgICAgICAgICBuMiA9IG4xICsgRVJSQ09ERTtcbiAgICAgICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IEVSUkNPREUpIHtcbiAgICAgICAgICAgIGNtZCA9IHNoaWZ0X3JlY292ZXI7IGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc3AgPD0gZW52W2Vudl9zdGFja2Jhc2VdKSByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgICAgICAgICAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgICAgIHNwLS07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID09IDApIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjtcbiAgICAgICAgLyogVGhlIE1MIGNvZGUgcmFpc2VzIFBhcnNlX2Vycm9yICovXG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IC0xO1xuICAgICAgICBjbWQgPSBsb29wOyBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgIGNhc2UgODovL3NoaWZ0OlxuICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gLTE7XG4gICAgICBpZiAoZXJyZmxhZyA+IDApIGVycmZsYWctLTtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgIGNhc2UgOTovL3NoaWZ0X3JlY292ZXI6XG4gICAgICBzdGF0ZSA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICBzcCsrO1xuICAgICAgaWYgKHNwID49IGVudltlbnZfc3RhY2tzaXplXSkge1xuICAgICAgICByZXMgPSBHUk9XX1NUQUNLU18xO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSByZXNpemVzIHRoZSBzdGFja3MgKi9cbiAgICBjYXNlIDI6Ly9TVEFDS1NfR1JPV05fMTpcbiAgICAgIGVudltlbnZfc19zdGFja11bc3AgKyAxXSA9IHN0YXRlO1xuICAgICAgZW52W2Vudl92X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9sdmFsXTtcbiAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9zdGFydF07XG4gICAgICBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF07XG4gICAgICBjbWQgPSBsb29wO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIDEwOi8vcmVkdWNlOlxuICAgICAgdmFyIG0gPSB0YWJsZXMubGVuW25dO1xuICAgICAgZW52W2Vudl9hc3BdID0gc3A7XG4gICAgICBlbnZbZW52X3J1bGVfbnVtYmVyXSA9IG47XG4gICAgICBlbnZbZW52X3J1bGVfbGVuXSA9IG07XG4gICAgICBzcCA9IHNwIC0gbSArIDE7XG4gICAgICBtID0gdGFibGVzLmxoc1tuXTtcbiAgICAgIHN0YXRlMSA9IGVudltlbnZfc19zdGFja11bc3BdO1xuICAgICAgbjEgPSB0YWJsZXMuZ2luZGV4W21dO1xuICAgICAgbjIgPSBuMSArIHN0YXRlMTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBzdGF0ZTEpXG4gICAgICAgIHN0YXRlID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgIGVsc2VcbiAgICAgICAgc3RhdGUgPSB0YWJsZXMuZGdvdG9bbV07XG4gICAgICBpZiAoc3AgPj0gZW52W2Vudl9zdGFja3NpemVdKSB7XG4gICAgICAgIHJlcyA9IEdST1dfU1RBQ0tTXzI7XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIHJlc2l6ZXMgdGhlIHN0YWNrcyAqL1xuICAgIGNhc2UgMzovL1NUQUNLU19HUk9XTl8yOlxuICAgICAgcmVzID0gQ09NUFVURV9TRU1BTlRJQ19BQ1RJT047XG4gICAgICBicmVhayBleGl0O1xuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIHNlbWFudGljIGFjdGlvbiAqL1xuICAgIGNhc2UgNDovL1NFTUFOVElDX0FDVElPTl9DT01QVVRFRDpcbiAgICAgIGVudltlbnZfc19zdGFja11bc3AgKyAxXSA9IHN0YXRlO1xuICAgICAgZW52W2Vudl92X3N0YWNrXVtzcCArIDFdID0gYXJnO1xuICAgICAgdmFyIGFzcCA9IGVudltlbnZfYXNwXTtcbiAgICAgIGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVthc3AgKyAxXTtcbiAgICAgIGlmIChzcCA+IGFzcCkge1xuICAgICAgICAvKiBUaGlzIGlzIGFuIGVwc2lsb24gcHJvZHVjdGlvbi4gVGFrZSBzeW1iX3N0YXJ0IGVxdWFsIHRvIHN5bWJfZW5kLiAqL1xuICAgICAgICBlbnZbZW52X3N5bWJfc3RhcnRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVthc3AgKyAxXTtcbiAgICAgIH1cbiAgICAgIGNtZCA9IGxvb3A7IGJyZWFrO1xuICAgICAgLyogU2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SO1xuICAgIH1cbiAgfVxuICAvLyBTQVZFXG4gIGVudltlbnZfc3BdID0gc3A7XG4gIGVudltlbnZfc3RhdGVdID0gc3RhdGU7XG4gIGVudltlbnZfZXJyZmxhZ10gPSBlcnJmbGFnO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9wYXJzZXJfdHJhY2UgY29uc3Rcbi8vRHVtbXkgZnVuY3Rpb24hXG5mdW5jdGlvbiBjYW1sX3NldF9wYXJzZXJfdHJhY2UoKSB7IHJldHVybiAwOyB9XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9pbnQgY29uc3QgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nLCBjYW1sX3N0cl9yZXBlYXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2ludChmbXQsIGkpIHtcbiAgaWYgKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KSA9PSBcIiVkXCIpIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIraSk7XG4gIHZhciBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgaWYgKGkgPCAwKSB7IGlmIChmLnNpZ25lZGNvbnYpIHsgZi5zaWduID0gLTE7IGkgPSAtaTsgfSBlbHNlIGkgPj4+PSAwOyB9XG4gIHZhciBzID0gaS50b1N0cmluZyhmLmJhc2UpO1xuICBpZiAoZi5wcmVjID49IDApIHtcbiAgICBmLmZpbGxlciA9ICcgJztcbiAgICB2YXIgbiA9IGYucHJlYyAtIHMubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgcyA9IGNhbWxfc3RyX3JlcGVhdCAobiwgJzAnKSArIHM7XG4gIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpIHtcbiAgdmFyIGkgPSAwLCBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyksIGJhc2UgPSAxMCwgc2lnbiA9IDE7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgc3dpdGNoIChjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSkpIHtcbiAgICBjYXNlIDQ1OiBpKys7IHNpZ24gPSAtMTsgYnJlYWs7XG4gICAgY2FzZSA0MzogaSsrOyBzaWduID0gMTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChpICsgMSA8IGxlbiAmJiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpID09IDQ4KVxuICAgIHN3aXRjaCAoY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpICsgMSkpIHtcbiAgICBjYXNlIDEyMDogY2FzZSA4ODogYmFzZSA9IDE2OyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgMTExOiBjYXNlIDc5OiBiYXNlID0gIDg7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAgOTg6IGNhc2UgNjY6IGJhc2UgPSAgMjsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlIDExNzogY2FzZSA4NTogaSArPSAyOyBicmVhaztcbiAgICB9XG4gIHJldHVybiBbaSwgc2lnbiwgYmFzZV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZGlnaXRcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZGlnaXQoYykge1xuICBpZiAoYyA+PSA0OCAmJiBjIDw9IDU3KSAgcmV0dXJuIGMgLSA0ODtcbiAgaWYgKGMgPj0gNjUgJiYgYyA8PSA5MCkgIHJldHVybiBjIC0gNTU7XG4gIGlmIChjID49IDk3ICYmIGMgPD0gMTIyKSByZXR1cm4gYyAtIDg3O1xuICByZXR1cm4gLTE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50X29mX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSwgY2FtbF9wYXJzZV9kaWdpdCwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9pbnRfb2Zfc3RyaW5nIChzKSB7XG4gIHZhciByID0gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKTtcbiAgdmFyIGkgPSByWzBdLCBzaWduID0gclsxXSwgYmFzZSA9IHJbMl07XG4gIHZhciBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyk7XG4gIHZhciB0aHJlc2hvbGQgPSAtMSA+Pj4gMDtcbiAgdmFyIGMgPSAoaSA8IGxlbik/Y2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTowO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gZDtcbiAgZm9yIChpKys7aTxsZW47aSsrKSB7XG4gICAgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gICAgaWYgKGMgPT0gOTUpIGNvbnRpbnVlO1xuICAgIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICAgIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGJyZWFrO1xuICAgIHJlcyA9IGJhc2UgKiByZXMgKyBkO1xuICAgIGlmIChyZXMgPiB0aHJlc2hvbGQpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGxlbikgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIC8vIEZvciBiYXNlIGRpZmZlcmVudCBmcm9tIDEwLCB3ZSBleHBlY3QgYW4gdW5zaWduZWQgcmVwcmVzZW50YXRpb24sXG4gIC8vIGhlbmNlIGFueSB2YWx1ZSBvZiAncmVzJyAobGVzcyB0aGFuICd0aHJlc2hvbGQnKSBpcyBhY2NlcHRhYmxlLlxuICAvLyBCdXQgd2UgaGF2ZSB0byBjb252ZXJ0IHRoZSByZXN1bHQgYmFjayB0byBhIHNpZ25lZCBpbnRlZ2VyLlxuICByZXMgPSBzaWduICogcmVzO1xuICBpZiAoKGJhc2UgPT0gMTApICYmICgocmVzIHwgMCkgIT0gcmVzKSlcbiAgICAvKiBTaWduZWQgcmVwcmVzZW50YXRpb24gZXhwZWN0ZWQsIGFsbG93IC0yXihuYml0cy0xKSB0byAyXihuYml0cy0xKSAtIDEgKi9cbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgcmV0dXJuIHJlcyB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbXVsIGNvbnN0XG5mdW5jdGlvbiBjYW1sX211bChhLGIpe1xuICByZXR1cm4gTWF0aC5pbXVsKGEsYik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZGl2XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX2Rpdih4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuICh4L3kpfDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbW9kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX21vZCh4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuIHgleTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ic3dhcDE2XG5mdW5jdGlvbiBjYW1sX2Jzd2FwMTYoeCkge1xuICByZXR1cm4gKCgoKHggJiAweDAwRkYpIDw8IDgpIHxcbiAgICAgICAgICAgKCh4ICYgMHhGRjAwKSA+PiA4KSkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9ic3dhcFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9ic3dhcCh4KSB7XG4gIHJldHVybiAoKCh4ICYgMHgwMDAwMDBGRikgPDwgMjQpIHxcbiAgICAgICAgICAoKHggJiAweDAwMDBGRjAwKSA8PCA4KSB8XG4gICAgICAgICAgKCh4ICYgMHgwMEZGMDAwMCkgPj4+IDgpIHxcbiAgICAgICAgICAoKHggJiAweEZGMDAwMDAwKSA+Pj4gMjQpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYnN3YXBcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYnN3YXAoeCkge1xuICB2YXIgeSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoeCk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFt5WzddLCB5WzZdLCB5WzVdLCB5WzRdLCB5WzNdLCB5WzJdLCB5WzFdLCB5WzBdXSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEhhc2h0YmxcblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX3VuaXZfcGFyYW0gbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2hhc2hfdW5pdl9wYXJhbSAoY291bnQsIGxpbWl0LCBvYmopIHtcbiAgdmFyIGhhc2hfYWNjdSA9IDA7XG4gIGZ1bmN0aW9uIGhhc2hfYXV4IChvYmopIHtcbiAgICBsaW1pdCAtLTtcbiAgICBpZiAoY291bnQgPCAwIHx8IGxpbWl0IDwgMCkgcmV0dXJuO1xuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSAmJiBvYmpbMF0gPT09IChvYmpbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAob2JqWzBdKSB7XG4gICAgICBjYXNlIDI0ODpcbiAgICAgICAgLy8gT2JqZWN0XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBvYmpbMl0pIHwgMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MDpcbiAgICAgICAgLy8gRm9yd2FyZFxuICAgICAgICBsaW1pdCsrOyBoYXNoX2F1eChvYmopOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBvYmpbMF0pIHwgMDtcbiAgICAgICAgZm9yICh2YXIgaSA9IG9iai5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSBoYXNoX2F1eCAob2JqW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMob2JqKSkge1xuICAgICAgY291bnQgLS07XG4gICAgICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudChvYmopO1xuICAgICAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcblx0Zm9yICh2YXIgYiA9IGNvbnRlbnQsIGwgPSBiLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgICB9IGVsc2UgeyAvKiBBUlJBWSAqL1xuICAgICAgICBmb3IgKHZhciBhID0gY29udGVudCwgbCA9IGEubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBhW2ldKSB8IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyhvYmopKSB7XG4gICAgICB2YXIganNieXRlcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcob2JqKTtcbiAgICAgIGZvciAodmFyIGIgPSBqc2J5dGVzLCBsID0ganNieXRlcy5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGZvciAodmFyIGIgPSBvYmosIGwgPSBvYmoubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09IChvYmp8MCkpIHtcbiAgICAgIC8vIEludGVnZXJcbiAgICAgIGNvdW50IC0tO1xuICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgb2JqKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09ICtvYmopIHtcbiAgICAgIC8vIEZsb2F0XG4gICAgICBjb3VudC0tO1xuICAgICAgdmFyIHAgPSBjYW1sX2ludDY0X3RvX2J5dGVzIChjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKG9iaikpO1xuICAgICAgZm9yICh2YXIgaSA9IDc7IGkgPj0gMDsgaS0tKSBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBwW2ldKSB8IDA7XG4gICAgfSBlbHNlIGlmKG9iaiAmJiBvYmouY2FtbF9jdXN0b20pIHtcbiAgICAgIGlmKGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dLmhhc2gpIHtcbiAgICAgICAgdmFyIGggPSBjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXS5oYXNoKG9iaikgfCAwO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBoKSB8IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhhc2hfYXV4IChvYmopO1xuICByZXR1cm4gaGFzaF9hY2N1ICYgMHgzRkZGRkZGRjtcbn1cblxuLy9mdW5jdGlvbiBST1RMMzIoeCxuKSB7IHJldHVybiAoKHggPDwgbikgfCAoeCA+Pj4gKDMyLW4pKSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfaW50XG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9pbnQoaCxkKSB7XG4gIGQgPSBjYW1sX211bChkLCAweGNjOWUyZDUxfDApO1xuICBkID0gKChkIDw8IDE1KSB8IChkID4+PiAoMzItMTUpKSk7IC8vIFJPVEwzMihkLCAxNSk7XG4gIGQgPSBjYW1sX211bChkLCAweDFiODczNTkzKTtcbiAgaCBePSBkO1xuICBoID0gKChoIDw8IDEzKSB8IChoID4+PiAoMzItMTMpKSk7ICAgLy9ST1RMMzIoaCwgMTMpO1xuICByZXR1cm4gKCgoaCArIChoIDw8IDIpKXwwKSArICgweGU2NTQ2YjY0fDApKXwwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9maW5hbChoKSB7XG4gIGggXj0gaCA+Pj4gMTY7XG4gIGggPSBjYW1sX211bCAoaCwgMHg4NWViY2E2YnwwKTtcbiAgaCBePSBoID4+PiAxMztcbiAgaCA9IGNhbWxfbXVsIChoLCAweGMyYjJhZTM1fDApO1xuICBoIF49IGggPj4+IDE2O1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9mbG9hdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2hhc2hfbWl4X2ludDY0XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2Zsb2F0IChoLCB2MCkge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9pbnQ2NChoLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKHYwKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ludDY0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9sbzMyLCBjYW1sX2ludDY0X2hpMzJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfaW50NjQgKGgsIHYpIHtcbiAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGNhbWxfaW50NjRfbG8zMih2KSk7XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBjYW1sX2ludDY0X2hpMzIodikpO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIHMpIHtcbiAgdmFyIGxlbiA9IHMubGVuZ3RoLCBpLCB3O1xuICBmb3IgKGkgPSAwOyBpICsgNCA8PSBsZW47IGkgKz0gNCkge1xuICAgIHcgPSBzLmNoYXJDb2RlQXQoaSlcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDgpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSsyKSA8PCAxNilcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzMpIDw8IDI0KTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIH1cbiAgdyA9IDA7XG4gIHN3aXRjaCAobGVuICYgMykge1xuICBjYXNlIDM6IHcgID0gcy5jaGFyQ29kZUF0KGkrMikgPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzLmNoYXJDb2RlQXQoaSsxKSA8PCA4O1xuICBjYXNlIDE6XG4gICAgdyB8PSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBzKSB7XG4gIHZhciBsZW4gPSBzLmxlbmd0aCwgaSwgdztcbiAgZm9yIChpID0gMDsgaSArIDQgPD0gbGVuOyBpICs9IDQpIHtcbiAgICB3ID0gc1tpXVxuICAgICAgfCAoc1tpKzFdIDw8IDgpXG4gICAgICB8IChzW2krMl0gPDwgMTYpXG4gICAgICB8IChzW2krM10gPDwgMjQpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgfVxuICB3ID0gMDtcbiAgc3dpdGNoIChsZW4gJiAzKSB7XG4gIGNhc2UgMzogdyAgPSBzW2krMl0gPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzW2krMV0gPDwgODtcbiAgY2FzZSAxOiB3IHw9IHNbaV07XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzKGgsIHYpIHtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQodik7XG4gIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgY29udGVudClcbiAgZWxzZSAvKiBBUlJBWSAqL1xuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBjb250ZW50KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9zdHJpbmcoaCwgdikge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmcodikpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnQsIGNhbWxfaGFzaF9taXhfZmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfZmxvYXQsIGNhbWxfaGFzaF9taXhfc3RyaW5nLCBjYW1sX2hhc2hfbWl4X2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9oYXNoIChjb3VudCwgbGltaXQsIHNlZWQsIG9iaikge1xuICB2YXIgcXVldWUsIHJkLCB3ciwgc3osIG51bSwgaCwgdiwgaSwgbGVuO1xuICBzeiA9IGxpbWl0O1xuICBpZiAoc3ogPCAwIHx8IHN6ID4gMjU2KSBzeiA9IDI1NjtcbiAgbnVtID0gY291bnQ7XG4gIGggPSBzZWVkO1xuICBxdWV1ZSA9IFtvYmpdOyByZCA9IDA7IHdyID0gMTtcbiAgd2hpbGUgKHJkIDwgd3IgJiYgbnVtID4gMCkge1xuICAgIHYgPSBxdWV1ZVtyZCsrXTtcbiAgICBpZiAodiAmJiB2LmNhbWxfY3VzdG9tKXtcbiAgICAgIGlmKGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0uaGFzaCkge1xuICAgICAgICB2YXIgaGggPSBjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0uaGFzaCh2KTtcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50IChoLCBoaCk7XG4gICAgICAgIG51bSAtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEFycmF5ICYmIHZbMF0gPT09ICh2WzBdfDApKSB7XG4gICAgICBzd2l0Y2ggKHZbMF0pIHtcbiAgICAgIGNhc2UgMjQ4OlxuICAgICAgICAvLyBPYmplY3RcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHZbMl0pO1xuICAgICAgICBudW0tLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MDpcbiAgICAgICAgLy8gRm9yd2FyZFxuICAgICAgICBxdWV1ZVstLXJkXSA9IHZbMV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIHRhZyA9ICgodi5sZW5ndGggLSAxKSA8PCAxMCkgfCB2WzBdO1xuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdGFnKTtcbiAgICAgICAgZm9yIChpID0gMSwgbGVuID0gdi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGlmICh3ciA+PSBzeikgYnJlYWs7XG4gICAgICAgICAgcXVldWVbd3IrK10gPSB2W2ldO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh2KSkge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfYnl0ZXMoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh2KSkge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfc3RyaW5nKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh2ID09PSAodnwwKSkge1xuICAgICAgLy8gSW50ZWdlclxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHYrdisxKTtcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodiA9PT0gK3YpIHtcbiAgICAgIC8vIEZsb2F0XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLHYpO1xuICAgICAgbnVtLS07XG4gICAgfVxuICB9XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpO1xuICByZXR1cm4gaCAmIDB4M0ZGRkZGRkY7XG59XG4iLCIvLy8vLy8vLy8gQklHU1RSSU5HXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9iaWdzdHJpbmcoaCwgYnMpIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsYnMuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ190b19hcnJheV9idWZmZXIgbXV0YWJsZVxuZnVuY3Rpb24gYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlcihicykge1xuICByZXR1cm4gYnMuZGF0YS5idWZmZXJcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGJpZ3N0cmluZ190b190eXBlZF9hcnJheShicykge1xuICByZXR1cm4gYnMuZGF0YVxufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlcihhYikge1xuICB2YXIgdGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KGFiKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSgxMiwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5KGJhKSB7XG4gIHZhciB0YSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkoYmEuYnVmZmVyLCBiYS5ieXRlT2Zmc2V0LCBiYS5sZW5ndGggKiBiYS5CWVRFU19QRVJfRUxFTUVOVCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoMTIsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX21lbWNtcFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfbWVtY21wKHMxLCBwb3MxLCBzMiwgcG9zMiwgbGVuKXtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBhID0gY2FtbF9iYV9nZXRfMShzMSxwb3MxICsgaSk7XG4gICAgdmFyIGIgPSBjYW1sX2JhX2dldF8xKHMyLHBvczIgKyBpKTtcbiAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmEoYmExLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMS5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczEgPSBiYTEub2Zmc2V0KHBvczEpO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKG9mczEgKyBsZW4gPiBiYTEuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gYmExLmRhdGEuc3ViYXJyYXkob2ZzMSxvZnMxK2xlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxwb3MyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9hcnJheV9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEoc3RyMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKHBvczEgKyBsZW4gPiBjYW1sX21sX3N0cmluZ19sZW5ndGgoc3RyMSkpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBjYW1sX2FycmF5X29mX3N0cmluZyhzdHIxKS5zbGljZShwb3MxLHBvczEgKyBsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2Usb2ZzMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYnl0ZXNfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9hcnJheV9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYnl0ZXNfdG9fYmEoc3RyMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKHBvczEgKyBsZW4gPiBjYW1sX21sX2J5dGVzX2xlbmd0aChzdHIxKSkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGNhbWxfYXJyYXlfb2ZfYnl0ZXMoc3RyMSkuc2xpY2UocG9zMSxwb3MxICsgbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLG9mczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMoYmExLCBwb3MxLCBieXRlczIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMS5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMxID0gYmExLm9mZnNldChwb3MxKTtcbiAgaWYob2ZzMSArIGxlbiA+IGJhMS5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKHBvczIgKyBsZW4gPiBjYW1sX21sX2J5dGVzX2xlbmd0aChieXRlczIpKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gYmExLmRhdGEuc2xpY2Uob2ZzMSwgb2ZzMStsZW4pO1xuICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9hcnJheShzbGljZSksIDAsIGJ5dGVzMiwgcG9zMiwgbGVuKTtcbiAgcmV0dXJuIDBcbn1cbiIsIi8vIEpzX29mX29jYW1sIGxpYnJhcnlcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBKc2xpYjogY29kZSBzcGVjaWZpYyB0byBKc19vZl9vY2FtbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX29uX2llIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX29uX2llICgpIHtcbiAgdmFyIHVhID1cbiAgICAgIGdsb2JhbFRoaXMubmF2aWdhdG9yP2dsb2JhbFRoaXMubmF2aWdhdG9yLnVzZXJBZ2VudDpcIlwiO1xuICByZXR1cm4gdWEuaW5kZXhPZihcIk1TSUVcIikgIT0gLTEgJiYgdWEuaW5kZXhPZihcIk9wZXJhXCIpICE9IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaHRtbF9lc2NhcGUgY29uc3QgKGNvbnN0KVxudmFyIGNhbWxfanNfcmVnZXhwcyA9IHsgYW1wOi8mL2csIGx0Oi88L2csIHF1b3Q6L1xcXCIvZywgYWxsOi9bJjxcXFwiXS8gfTtcbmZ1bmN0aW9uIGNhbWxfanNfaHRtbF9lc2NhcGUgKHMpIHtcbiAgaWYgKCFjYW1sX2pzX3JlZ2V4cHMuYWxsLnRlc3QocykpIHJldHVybiBzO1xuICByZXR1cm4gcy5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5hbXAsIFwiJmFtcDtcIilcbiAgICAucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMubHQsIFwiJmx0O1wiKVxuICAgIC5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5xdW90LCBcIiZxdW90O1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19odG1sX2VudGl0aWVzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2pzX2h0bWxfZW50aXRpZXMocykge1xuICB2YXIgZW50aXR5ID0gL14mIz9bMC05YS16QS1aXSs7JC9cbiAgaWYocy5tYXRjaChlbnRpdHkpKVxuICB7XG4gICAgdmFyIHN0ciwgdGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICB0ZW1wLmlubmVySFRNTD0gcztcbiAgICBzdHI9IHRlbXAudGV4dENvbnRlbnQgfHwgdGVtcC5pbm5lclRleHQ7XG4gICAgdGVtcD1udWxsO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgZWxzZSB7XG4gICAgY2FtbF9mYWlsd2l0aChcIkludmFsaWQgZW50aXR5IFwiICsgcyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19nZXRfY29uc29sZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19nZXRfY29uc29sZSAoKSB7XG4gIHZhciBjID0gZ2xvYmFsVGhpcy5jb25zb2xlP2dsb2JhbFRoaXMuY29uc29sZTp7fTtcbiAgdmFyIG0gPSBbXCJsb2dcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIiwgXCJhc3NlcnRcIiwgXCJkaXJcIiwgXCJkaXJ4bWxcIixcbiAgICAgICAgICAgXCJ0cmFjZVwiLCBcImdyb3VwXCIsIFwiZ3JvdXBDb2xsYXBzZWRcIiwgXCJncm91cEVuZFwiLCBcInRpbWVcIiwgXCJ0aW1lRW5kXCJdO1xuICBmdW5jdGlvbiBmICgpIHt9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgaWYgKCFjW21baV1dKSBjW21baV1dPWY7XG4gIHJldHVybiBjO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZSh1bml0KXtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICBpZih0eXBlb2YgZy5YTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGcuWE1MSHR0cFJlcXVlc3QgfSBjYXRjaCAoZSkgeyB9O1xuICB9XG4gIGlmKHR5cGVvZiBnLmFjdGl2ZVhPYmplY3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnLmFjdGl2ZVhPYmplY3QoXCJNc3htbDIuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICAgIHRyeSB7IHJldHVybiBuZXcgZy5hY3RpdmVYT2JqZWN0KFwiTXN4bWwzLlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGcuYWN0aXZlWE9iamVjdChcIk1pY3Jvc29mdC5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gIH1cbiAgY2FtbF9mYWlsd2l0aChcIkNhbm5vdCBjcmVhdGUgYSBYTUxIdHRwUmVxdWVzdFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uKGV4bikge1xuICBpZihleG4uanNfZXJyb3IpIHsgcmV0dXJuIGV4bi5qc19lcnJvcjsgfVxuICByZXR1cm4gbnVsbDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfdXBkYXRlX2R1bW15XG5mdW5jdGlvbiBjYW1sX3VwZGF0ZV9kdW1teSAoeCwgeSkge1xuICBpZiggdHlwZW9mIHk9PT1cImZ1bmN0aW9uXCIgKSB7IHguZnVuID0geTsgcmV0dXJuIDA7IH1cbiAgaWYoIHkuZnVuICkgeyB4LmZ1biA9IHkuZnVuOyByZXR1cm4gMDsgfVxuICB2YXIgaSA9IHkubGVuZ3RoOyB3aGlsZSAoaS0tKSB4W2ldID0geVtpXTsgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2lzX2Jsb2NrIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2lzX2Jsb2NrICh4KSB7IHJldHVybiArKHggaW5zdGFuY2VvZiBBcnJheSk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial90YWdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfaXNfbWxfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX29ial90YWcgKHgpIHtcbiAgaWYgKCh4IGluc3RhbmNlb2YgQXJyYXkpICYmIHhbMF0gPT0gKHhbMF0gPj4+IDApKVxuICAgIHJldHVybiB4WzBdXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMoeCkpXG4gICAgcmV0dXJuIDI1MlxuICBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh4KSlcbiAgICByZXR1cm4gMjUyXG4gIGVsc2UgaWYgKCh4IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8IHR5cGVvZiB4ID09IFwiZnVuY3Rpb25cIilcbiAgICByZXR1cm4gMjQ3XG4gIGVsc2UgaWYgKHggJiYgeC5jYW1sX2N1c3RvbSlcbiAgICByZXR1cm4gMjU1XG4gIGVsc2VcbiAgICByZXR1cm4gMTAwMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9zZXRfdGFnIChtdXRhYmxlLCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX3NldF90YWcgKHgsIHRhZykgeyB4WzBdID0gdGFnOyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9vYmpfYmxvY2sgY29uc3QgKGNvbnN0LGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfYmxvY2sgKHRhZywgc2l6ZSkge1xuICB2YXIgbyA9IG5ldyBBcnJheShzaXplKzEpO1xuICBvWzBdPXRhZztcbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gc2l6ZTsgaSsrKSBvW2ldID0gMDtcbiAgcmV0dXJuIG87XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3dpdGhfdGFnXG5mdW5jdGlvbiBjYW1sX29ial93aXRoX3RhZyh0YWcseCkge1xuICB2YXIgbCA9IHgubGVuZ3RoO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgYVswXSA9IHRhZztcbiAgZm9yKHZhciBpID0gMTsgaSA8IGw7IGkrKyApIGFbaV0gPSB4W2ldO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfZHVwIG11dGFibGUgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfZHVwICh4KSB7XG4gIHZhciBsID0geC5sZW5ndGg7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbDsgaSsrICkgYVtpXSA9IHhbaV07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial90cnVuY2F0ZSAobXV0YWJsZSwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfb2JqX3RydW5jYXRlICh4LCBzKSB7XG4gIGlmIChzPD0wIHx8IHMgKyAxID4geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIk9iai50cnVuY2F0ZVwiKTtcbiAgaWYgKHgubGVuZ3RoICE9IHMgKyAxKSB4Lmxlbmd0aCA9IHMgKyAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfbWFrZV9mb3J3YXJkXG5mdW5jdGlvbiBjYW1sX29ial9tYWtlX2ZvcndhcmQgKGIsdikge1xuICBiWzBdPTI1MDtcbiAgYlsxXT12O1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfbWFrZV9mb3J3YXJkIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfbGF6eV9tYWtlX2ZvcndhcmQgKHYpIHsgcmV0dXJuIFsyNTAsIHZdOyB9XG5cbi8vLy8vLy8vLy8vLy8gQ2FtbGludGVybmFsT09cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X3B1YmxpY19tZXRob2QgY29uc3RcbnZhciBjYW1sX21ldGhvZF9jYWNoZSA9IFtdO1xuZnVuY3Rpb24gY2FtbF9nZXRfcHVibGljX21ldGhvZCAob2JqLCB0YWcsIGNhY2hlaWQpIHtcbiAgdmFyIG1ldGhzID0gb2JqWzFdO1xuICB2YXIgb2ZzID0gY2FtbF9tZXRob2RfY2FjaGVbY2FjaGVpZF07XG4gIGlmIChvZnMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyYXkgaXMgbm90IHNwYXJzZVxuICAgIGZvciAodmFyIGkgPSBjYW1sX21ldGhvZF9jYWNoZS5sZW5ndGg7IGkgPCBjYWNoZWlkOyBpKyspXG4gICAgICBjYW1sX21ldGhvZF9jYWNoZVtpXSA9IDA7XG4gIH0gZWxzZSBpZiAobWV0aHNbb2ZzXSA9PT0gdGFnKSB7XG4gICAgcmV0dXJuIG1ldGhzW29mcyAtIDFdO1xuICB9XG4gIHZhciBsaSA9IDMsIGhpID0gbWV0aHNbMV0gKiAyICsgMSwgbWk7XG4gIHdoaWxlIChsaSA8IGhpKSB7XG4gICAgbWkgPSAoKGxpK2hpKSA+PiAxKSB8IDE7XG4gICAgaWYgKHRhZyA8IG1ldGhzW21pKzFdKSBoaSA9IG1pLTI7XG4gICAgZWxzZSBsaSA9IG1pO1xuICB9XG4gIGNhbWxfbWV0aG9kX2NhY2hlW2NhY2hlaWRdID0gbGkgKyAxO1xuICAvKiByZXR1cm4gMCBpZiB0YWcgaXMgbm90IHRoZXJlICovXG4gIHJldHVybiAodGFnID09IG1ldGhzW2xpKzFdID8gbWV0aHNbbGldIDogMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb29fbGFzdF9pZFxudmFyIGNhbWxfb29fbGFzdF9pZCA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X29vX2lkXG4vL1JlcXVpcmVzOiBjYW1sX29vX2xhc3RfaWRcbmZ1bmN0aW9uIGNhbWxfc2V0X29vX2lkIChiKSB7XG4gIGJbMl09Y2FtbF9vb19sYXN0X2lkKys7XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZyZXNoX29vX2lkIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX29vX2xhc3RfaWRcbmZ1bmN0aW9uIGNhbWxfZnJlc2hfb29faWQoKSB7XG4gIHJldHVybiBjYW1sX29vX2xhc3RfaWQrKztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfcmF3X2ZpZWxkXG5mdW5jdGlvbiBjYW1sX29ial9yYXdfZmllbGQobyxpKSB7IHJldHVybiBvW2krMV0gfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9zZXRfcmF3X2ZpZWxkXG5mdW5jdGlvbiBjYW1sX29ial9zZXRfcmF3X2ZpZWxkKG8saSx2KSB7IHJldHVybiBvW2krMV0gPSB2IH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzXG5mdW5jdGlvbiBjYW1sX29ial9yZWFjaGFibGVfd29yZHMobykgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9hZGRfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX29ial9hZGRfb2Zmc2V0KHYsb2Zmc2V0KSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJPYmouYWRkX29mZnNldCBpcyBub3Qgc3VwcG9ydGVkXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1cyAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2JhY2t0cmFjZV9zdGF0dXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYmFja3RyYWNlX3N0YXR1cyAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9leGNlcHRpb25fYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9leGNlcHRpb25fYmFja3RyYWNlICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSAoKSB7IHJldHVybiBbMF07IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yZWNvcmRfYmFja3RyYWNlICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSAoKSB7IHJldHVybiBbMF07IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGgoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90KCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdCAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlX3Nsb3Q6IGluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UoZXhuLCBidCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2sgKCkgeyByZXR1cm4gWzBdOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QoKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3RcIik7XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdGl2ZSBDYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICovXG4vKiAgZW4gQXV0b21hdGlxdWUuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkICAgICovXG4vKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpdGggICAgICovXG4vKiAgdGhlIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgLi4vTElDRU5TRS4gICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qICRJZDogbGV4aW5nLmMgNjA0NSAyMDA0LTAxLTAxIDE2OjQyOjQzWiBkb2xpZ2V6ICQgKi9cblxuLyogVGhlIHRhYmxlLWRyaXZlbiBhdXRvbWF0b24gZm9yIGxleGVycyBnZW5lcmF0ZWQgYnkgY2FtbGxleC4gKi9cblxuLy9Qcm92aWRlczogY2FtbF9sZXhfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbGV4X2FycmF5KHMpIHtcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7XG4gIHZhciBsID0gcy5sZW5ndGggLyAyO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgYVtpXSA9IChzLmNoYXJDb2RlQXQoMiAqIGkpIHwgKHMuY2hhckNvZGVBdCgyICogaSArIDEpIDw8IDgpKSA8PCAxNiA+PiAxNjtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGV4X2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9sZXhfYXJyYXksIGNhbWxfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG5cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHQpIHtcbiAgICB0YmwubGV4X2Jhc2UgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya10pO1xuICAgIHRibC5sZXhfY2hlY2sgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrXSk7XG4gICAgdGJsLmxleF90cmFucyA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNdKTtcbiAgICB0YmwubGV4X2RlZmF1bHQgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0XSk7XG4gIH1cblxuICB2YXIgYywgc3RhdGUgPSBzdGFydF9zdGF0ZTtcblxuICB2YXIgYnVmZmVyID0gY2FtbF9hcnJheV9vZl9ieXRlcyhsZXhidWZbbGV4X2J1ZmZlcl0pO1xuXG4gIGlmIChzdGF0ZSA+PSAwKSB7XG4gICAgLyogRmlyc3QgZW50cnkgKi9cbiAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfc3RhcnRfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgLyogUmVlbnRyeSBhZnRlciByZWZpbGwgKi9cbiAgICBzdGF0ZSA9IC1zdGF0ZSAtIDE7XG4gIH1cbiAgZm9yKDs7KSB7XG4gICAgLyogTG9va3VwIGJhc2UgYWRkcmVzcyBvciBhY3Rpb24gbnVtYmVyIGZvciBjdXJyZW50IHN0YXRlICovXG4gICAgdmFyIGJhc2UgPSB0YmwubGV4X2Jhc2Vbc3RhdGVdO1xuICAgIGlmIChiYXNlIDwgMCkgcmV0dXJuIC1iYXNlLTE7XG4gICAgLyogU2VlIGlmIGl0J3MgYSBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICB2YXIgYmFja3RyayA9IHRibC5sZXhfYmFja3Rya1tzdGF0ZV07XG4gICAgaWYgKGJhY2t0cmsgPj0gMCkge1xuICAgICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gYmFja3RyaztcbiAgICB9XG4gICAgLyogU2VlIGlmIHdlIG5lZWQgYSByZWZpbGwgKi9cbiAgICBpZiAobGV4YnVmW2xleF9jdXJyX3Bvc10gPj0gbGV4YnVmW2xleF9idWZmZXJfbGVuXSl7XG4gICAgICBpZiAobGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPT0gMClcbiAgICAgICAgcmV0dXJuIC1zdGF0ZSAtIDE7XG4gICAgICBlbHNlXG4gICAgICAgIGMgPSAyNTY7XG4gICAgfWVsc2V7XG4gICAgICAvKiBSZWFkIG5leHQgaW5wdXQgY2hhciAqL1xuICAgICAgYyA9IGJ1ZmZlcltsZXhidWZbbGV4X2N1cnJfcG9zXV07XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSArKztcbiAgICB9XG4gICAgLyogRGV0ZXJtaW5lIG5leHQgc3RhdGUgKi9cbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBOZXcgbGV4ZXIgZW5naW5lLCB3aXRoIG1lbW9yeSBvZiBwb3NpdGlvbnMgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X2xleF9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfbGV4X2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xleF9ydW5fbWVtKHMsIGksIG1lbSwgY3Vycl9wb3MpIHtcbiAgZm9yICg7Oykge1xuICAgIHZhciBkc3QgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoZHN0ID09IDB4ZmYpIHJldHVybjtcbiAgICB2YXIgc3JjID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKHNyYyA9PSAweGZmKVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IGN1cnJfcG9zO1xuICAgIGVsc2VcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBtZW0gW3NyYyArIDFdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbWxfbGV4X3J1bl90YWcocywgaSwgbWVtKSB7XG4gIGZvciAoOzspIHtcbiAgICB2YXIgZHN0ID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKGRzdCA9PSAweGZmKSByZXR1cm4gO1xuICAgIHZhciBzcmMgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoc3JjID09IDB4ZmYpXG4gICAgICBtZW0gW2RzdCArIDFdID0gLTE7XG4gICAgZWxzZVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IG1lbSBbc3JjICsgMV07XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FtbF9uZXdfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X21lbSA9IDEwO1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG4gIHZhciBsZXhfYmFzZV9jb2RlID0gNjtcbiAgdmFyIGxleF9iYWNrdHJrX2NvZGUgPSA3O1xuICB2YXIgbGV4X2RlZmF1bHRfY29kZSA9IDg7XG4gIHZhciBsZXhfdHJhbnNfY29kZSA9IDk7XG4gIHZhciBsZXhfY2hlY2tfY29kZSA9IDEwO1xuICB2YXIgbGV4X2NvZGUgPSAxMTtcblxuICBpZiAoIXRibC5sZXhfZGVmYXVsdCkge1xuICAgIHRibC5sZXhfYmFzZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VdKTtcbiAgICB0YmwubGV4X2JhY2t0cmsgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrXSk7XG4gICAgdGJsLmxleF9jaGVjayA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tdKTtcbiAgICB0YmwubGV4X3RyYW5zID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc10pO1xuICAgIHRibC5sZXhfZGVmYXVsdCA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRdKTtcbiAgfVxuICBpZiAoIXRibC5sZXhfZGVmYXVsdF9jb2RlKSB7XG4gICAgdGJsLmxleF9iYXNlX2NvZGUgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlX2NvZGVdKTtcbiAgICB0YmwubGV4X2JhY2t0cmtfY29kZSA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtfY29kZV0pO1xuICAgIHRibC5sZXhfY2hlY2tfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tfY29kZV0pO1xuICAgIHRibC5sZXhfdHJhbnNfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNfY29kZV0pO1xuICAgIHRibC5sZXhfZGVmYXVsdF9jb2RlID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF9jb2RlXSk7XG4gIH1cbiAgaWYgKHRibC5sZXhfY29kZSA9PSBudWxsKSB0YmwubGV4X2NvZGUgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHRibFtsZXhfY29kZV0pO1xuXG4gIHZhciBjLCBzdGF0ZSA9IHN0YXJ0X3N0YXRlO1xuXG4gIHZhciBidWZmZXIgPSBjYW1sX2FycmF5X29mX2J5dGVzKGxleGJ1ZltsZXhfYnVmZmVyXSk7XG5cbiAgaWYgKHN0YXRlID49IDApIHtcbiAgICAvKiBGaXJzdCBlbnRyeSAqL1xuICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9zdGFydF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICAvKiBSZWVudHJ5IGFmdGVyIHJlZmlsbCAqL1xuICAgIHN0YXRlID0gLXN0YXRlIC0gMTtcbiAgfVxuICBmb3IoOzspIHtcbiAgICAvKiBMb29rdXAgYmFzZSBhZGRyZXNzIG9yIGFjdGlvbiBudW1iZXIgZm9yIGN1cnJlbnQgc3RhdGUgKi9cbiAgICB2YXIgYmFzZSA9IHRibC5sZXhfYmFzZVtzdGF0ZV07XG4gICAgaWYgKGJhc2UgPCAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYXNlX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIHJldHVybiAtYmFzZS0xO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgaXQncyBhIGJhY2t0cmFjayBwb2ludCAqL1xuICAgIHZhciBiYWNrdHJrID0gdGJsLmxleF9iYWNrdHJrW3N0YXRlXTtcbiAgICBpZiAoYmFja3RyayA+PSAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYWNrdHJrX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IGJhY2t0cms7XG4gICAgfVxuICAgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgcmVmaWxsICovXG4gICAgaWYgKGxleGJ1ZltsZXhfY3Vycl9wb3NdID49IGxleGJ1ZltsZXhfYnVmZmVyX2xlbl0pe1xuICAgICAgaWYgKGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID09IDApXG4gICAgICAgIHJldHVybiAtc3RhdGUgLSAxO1xuICAgICAgZWxzZVxuICAgICAgICBjID0gMjU2O1xuICAgIH1lbHNle1xuICAgICAgLyogUmVhZCBuZXh0IGlucHV0IGNoYXIgKi9cbiAgICAgIGMgPSBidWZmZXJbbGV4YnVmW2xleF9jdXJyX3Bvc11dO1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gKys7XG4gICAgfVxuICAgIC8qIERldGVybWluZSBuZXh0IHN0YXRlICovXG4gICAgdmFyIHBzdGF0ZSA9IHN0YXRlIDtcbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIElmIHNvbWUgdHJhbnNpdGlvbiwgZ2V0IGFuZCBwZXJmb3JtIG1lbW9yeSBtb3ZlcyAqL1xuICAgICAgdmFyIGJhc2VfY29kZSA9IHRibC5sZXhfYmFzZV9jb2RlW3BzdGF0ZV0sIHBjX29mZjtcbiAgICAgIGlmICh0YmwubGV4X2NoZWNrX2NvZGVbYmFzZV9jb2RlICsgY10gPT0gcHN0YXRlKVxuICAgICAgICBwY19vZmYgPSB0YmwubGV4X3RyYW5zX2NvZGVbYmFzZV9jb2RlICsgY107XG4gICAgICBlbHNlXG4gICAgICAgIHBjX29mZiA9IHRibC5sZXhfZGVmYXVsdF9jb2RlW3BzdGF0ZV07XG4gICAgICBpZiAocGNfb2ZmID4gMClcbiAgICAgICAgY2FtbF9sZXhfcnVuX21lbVxuICAgICAgKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0sIGxleGJ1ZltsZXhfY3Vycl9wb3NdKTtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBBcnJheVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3N1YiBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X3N1YiAoYSwgaSwgbGVuKSB7XG4gIHZhciBhMiA9IG5ldyBBcnJheShsZW4rMSk7XG4gIGEyWzBdPTA7XG4gIGZvcih2YXIgaTIgPSAxLCBpMT0gaSsxOyBpMiA8PSBsZW47IGkyKyssaTErKyApe1xuICAgIGEyW2kyXT1hW2kxXTtcbiAgfVxuICByZXR1cm4gYTI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYXBwZW5kIG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYXBwZW5kKGExLCBhMikge1xuICB2YXIgbDEgPSBhMS5sZW5ndGgsIGwyID0gYTIubGVuZ3RoO1xuICB2YXIgbCA9IGwxK2wyLTFcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSAwO1xuICB2YXIgaSA9IDEsaiA9IDE7XG4gIGZvcig7aTxsMTtpKyspIGFbaV09YTFbaV07XG4gIGZvcig7aTxsO2krKyxqKyspIGFbaV09YTJbal07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2NvbmNhdCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X2NvbmNhdChsKSB7XG4gIHZhciBhID0gWzBdO1xuICB3aGlsZSAobCAhPT0gMCkge1xuICAgIHZhciBiID0gbFsxXTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGIubGVuZ3RoOyBpKyspIGEucHVzaChiW2ldKTtcbiAgICBsID0gbFsyXTtcbiAgfVxuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ibGl0XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICBpZiAoaTIgPD0gaTEpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBsZW47IGorKykgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaiA9IGxlbjsgaiA+PSAxOyBqLS0pIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdGFycmF5X2JsaXRcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgaWYgKGkyIDw9IGkxKSB7XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gbGVuOyBqKyspIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGogPSBsZW47IGogPj0gMTsgai0tKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vLy8vLy8vLy8vLy8gUGVydmFzaXZlXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3NldCAobXV0YWJsZSwgY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9hcnJheV9zZXQgKGFycmF5LCBpbmRleCwgbmV3dmFsKSB7XG4gIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gYXJyYXkubGVuZ3RoIC0gMSkpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYXJyYXlbaW5kZXgrMV09bmV3dmFsOyByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9nZXQgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9hcnJheV9nZXQgKGFycmF5LCBpbmRleCkge1xuICBpZiAoKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGFycmF5Lmxlbmd0aCAtIDEpKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcnJheVtpbmRleCsxXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9maWxsXG5mdW5jdGlvbiBjYW1sX2FycmF5X2ZpbGwoYXJyYXksIG9mcywgbGVuLCB2KXtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBhcnJheVtvZnMraSsxXSA9IHY7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hlY2tfYm91bmQgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfY2hlY2tfYm91bmQgKGFycmF5LCBpbmRleCkge1xuICBpZiAoaW5kZXggPj4+IDAgPj0gYXJyYXkubGVuZ3RoIC0gMSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV92ZWN0IGNvbnN0IChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX21ha2VfdmVjdCAobGVuLCBpbml0KSB7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0wO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gaW5pdDtcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV9mbG9hdF92ZWN0IGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWFrZV9mbG9hdF92ZWN0KGxlbil7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0yNTQ7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSAwO1xuICByZXR1cm4gYlxufVxuLy9Qcm92aWRlczogY2FtbF9mbG9hdGFycmF5X2NyZWF0ZSBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlKGxlbil7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0yNTQ7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSAwO1xuICByZXR1cm4gYlxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIFdlYWsgQVBJLCBidXQgd2l0aG91dCB0aGUgd2VhayBzZW1hbnRpY3NcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbnZhciBjYW1sX2VwaGVfa2V5X29mZnNldCA9IDNcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG52YXIgY2FtbF9lcGhlX2RhdGFfb2Zmc2V0ID0gMlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3dlYWtfY3JlYXRlIChuKSB7XG4gIGlmIChuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuY3JlYXRlXCIpO1xuICB2YXIgeCA9IFsyNTEsXCJjYW1sX2VwaGVfbGlzdF9oZWFkXCJdO1xuICB4Lmxlbmd0aCA9IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgbjtcbiAgcmV0dXJuIHg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfd2Vha19zZXQoeCwgaSwgdikge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuc2V0XCIpO1xuICB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gPSB2O1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfd2Vha19nZXQoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuZ2V0X2tleVwiKTtcbiAgcmV0dXJuICh4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSBdPT09dW5kZWZpbmVkKT8wOnhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19nZXRfY29weVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2dldCxjYW1sX2VwaGVfa2V5X29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfd2Vha19nZXRfY29weSh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5nZXRfY29weVwiKTtcbiAgdmFyIHkgPSBjYW1sX3dlYWtfZ2V0KHgsIGkpO1xuICBpZiAoeSA9PT0gMCkgcmV0dXJuIHk7XG4gIHZhciB6ID0geVsxXTtcbiAgaWYgKHogaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIFswLCBjYW1sX29ial9kdXAoeildO1xuICByZXR1cm4geTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2NoZWNrIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX3dlYWtfY2hlY2soeCwgaSkge1xuICBpZih4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0hPT11bmRlZmluZWQgJiYgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldICE9PTApXG4gICAgcmV0dXJuIDE7XG4gIGVsc2VcbiAgICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2JsaXRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfd2Vha19ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgLy8gbWludXMgb25lIGJlY2F1c2UgY2FtbF9hcnJheV9ibGl0IHdvcmtzIG9uIG9jYW1sIGFycmF5XG4gIGNhbWxfYXJyYXlfYmxpdChhMSwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpMSAtIDEsXG4gICAgICAgICAgICAgICAgICBhMiwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpMiAtIDEsXG4gICAgICAgICAgICAgICAgICBsZW4pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2NyZWF0ZVxudmFyIGNhbWxfZXBoZV9jcmVhdGUgPSBjYW1sX3dlYWtfY3JlYXRlXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9ibGl0X2tleVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2JsaXRcbnZhciBjYW1sX2VwaGVfYmxpdF9rZXkgPSBjYW1sX3dlYWtfYmxpdFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2dldFxudmFyIGNhbWxfZXBoZV9nZXRfa2V5ID0gY2FtbF93ZWFrX2dldFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2tleV9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfZ2V0X2NvcHlcbnZhciBjYW1sX2VwaGVfZ2V0X2tleV9jb3B5ID0gY2FtbF93ZWFrX2dldF9jb3B5XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jaGVja19rZXlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19jaGVja1xudmFyIGNhbWxfZXBoZV9jaGVja19rZXkgPSBjYW1sX3dlYWtfY2hlY2tcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3NldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19zZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9zZXRfa2V5KHgsIGksIHYpIHtcbiAgcmV0dXJuIGNhbWxfd2Vha19zZXQoeCwgaSwgWzAsIHZdKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfdW5zZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfdW5zZXRfa2V5KHgsIGkpIHtcbiAgcmV0dXJuIGNhbWxfd2Vha19zZXQoeCwgaSwgMClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2JsaXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfYmxpdF9kYXRhKHNyYywgZHN0KXtcbiAgZHN0W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSBzcmNbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2RhdGEoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIFswLCB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF1dO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2RhdGFfY29weVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX29ial9kdXBcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5KHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiBbMCwgY2FtbF9vYmpfZHVwKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSldO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfc2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9kYXRhKHgsIGRhdGEpe1xuICB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSBkYXRhO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3Vuc2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3Vuc2V0X2RhdGEoeCwgZGF0YSl7XG4gIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jaGVja19kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9jaGVja19kYXRhKHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiAxO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfY2hhblxuLy9SZXF1aXJlczogY2FtbF9tZDVfc3RyaW5nLCBjYW1sX3N0cmluZ19vZl9hcnJheSxjYW1sX21sX2NoYW5uZWxzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWQ1X2NoYW4oY2hhbmlkLGxlbil7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgY2hhbl9sZW4gPSBjaGFuLmZpbGUubGVuZ3RoKCk7XG4gIGlmKGxlbjwwKSBsZW4gPSBjaGFuX2xlbiAtIGNoYW4ub2Zmc2V0O1xuICBpZihjaGFuLm9mZnNldCArIGxlbiA+IGNoYW5fbGVuKSBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIHZhciBidWYgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pO1xuICBjaGFuLmZpbGUucmVhZChjaGFuLm9mZnNldCxidWYsMCxsZW4pO1xuICByZXR1cm4gY2FtbF9tZDVfc3RyaW5nKGNhbWxfc3RyaW5nX29mX2J5dGVzKGJ1ZiksMCxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX21kNV9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tZDVfc3RyaW5nKHMsIG9mcywgbGVuKSB7XG4gIHJldHVybiBjYW1sX21kNV9ieXRlcyhjYW1sX2J5dGVzX29mX3N0cmluZyhzKSxvZnMsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5LCBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbnZhciBjYW1sX21kNV9ieXRlcyA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gYWRkICh4LCB5KSB7IHJldHVybiAoeCArIHkpIHwgMDsgfVxuICBmdW5jdGlvbiB4eChxLGEsYix4LHMsdCkge1xuICAgIGEgPSBhZGQoYWRkKGEsIHEpLCBhZGQoeCwgdCkpO1xuICAgIHJldHVybiBhZGQoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpLCBiKTtcbiAgfVxuICBmdW5jdGlvbiBmZihhLGIsYyxkLHgscyx0KSB7XG4gICAgcmV0dXJuIHh4KChiICYgYykgfCAoKH5iKSAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbiAgfVxuICBmdW5jdGlvbiBnZyhhLGIsYyxkLHgscyx0KSB7XG4gICAgcmV0dXJuIHh4KChiICYgZCkgfCAoYyAmICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbiAgfVxuICBmdW5jdGlvbiBoaChhLGIsYyxkLHgscyx0KSB7IHJldHVybiB4eChiIF4gYyBeIGQsIGEsIGIsIHgsIHMsIHQpOyB9XG4gIGZ1bmN0aW9uIGlpKGEsYixjLGQseCxzLHQpIHsgcmV0dXJuIHh4KGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTsgfVxuXG4gIGZ1bmN0aW9uIG1kNShidWZmZXIsIGxlbmd0aCkge1xuICAgIHZhciBpID0gbGVuZ3RoO1xuICAgIGJ1ZmZlcltpID4+IDJdIHw9IDB4ODAgPDwgKDggKiAoaSAmIDMpKTtcbiAgICBmb3IgKGkgPSAoaSAmIH4weDMpICsgODsoaSAmIDB4M0YpIDwgNjAgO2kgKz0gNClcbiAgICAgIGJ1ZmZlclsoaSA+PiAyKSAtIDFdID0gMDtcbiAgICBidWZmZXJbKGkgPj4gMikgLTFdID0gbGVuZ3RoIDw8IDM7XG4gICAgYnVmZmVyW2kgPj4gMl0gPSAobGVuZ3RoID4+IDI5KSAmIDB4MUZGRkZGRkY7XG5cbiAgICB2YXIgdyA9IFsweDY3NDUyMzAxLCAweEVGQ0RBQjg5LCAweDk4QkFEQ0ZFLCAweDEwMzI1NDc2XTtcblxuICAgIGZvcihpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGg7IGkgKz0gMTYpIHtcbiAgICAgIHZhciBhID0gd1swXSwgYiA9IHdbMV0sIGMgPSB3WzJdLCBkID0gd1szXTtcblxuICAgICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyAwXSwgNywgMHhENzZBQTQ3OCk7XG4gICAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyW2krIDFdLCAxMiwgMHhFOEM3Qjc1Nik7XG4gICAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyW2krIDJdLCAxNywgMHgyNDIwNzBEQik7XG4gICAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyW2krIDNdLCAyMiwgMHhDMUJEQ0VFRSk7XG4gICAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyW2krIDRdLCA3LCAweEY1N0MwRkFGKTtcbiAgICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbaSsgNV0sIDEyLCAweDQ3ODdDNjJBKTtcbiAgICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbaSsgNl0sIDE3LCAweEE4MzA0NjEzKTtcbiAgICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbaSsgN10sIDIyLCAweEZENDY5NTAxKTtcbiAgICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbaSsgOF0sIDcsIDB4Njk4MDk4RDgpO1xuICAgICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA5XSwgMTIsIDB4OEI0NEY3QUYpO1xuICAgICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzEwXSwgMTcsIDB4RkZGRjVCQjEpO1xuICAgICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzExXSwgMjIsIDB4ODk1Q0Q3QkUpO1xuICAgICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKzEyXSwgNywgMHg2QjkwMTEyMik7XG4gICAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyW2krMTNdLCAxMiwgMHhGRDk4NzE5Myk7XG4gICAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyW2krMTRdLCAxNywgMHhBNjc5NDM4RSk7XG4gICAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyW2krMTVdLCAyMiwgMHg0OUI0MDgyMSk7XG5cbiAgICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbaSsgMV0sIDUsIDB4RjYxRTI1NjIpO1xuICAgICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA2XSwgOSwgMHhDMDQwQjM0MCk7XG4gICAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyW2krMTFdLCAxNCwgMHgyNjVFNUE1MSk7XG4gICAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyW2krIDBdLCAyMCwgMHhFOUI2QzdBQSk7XG4gICAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyW2krIDVdLCA1LCAweEQ2MkYxMDVEKTtcbiAgICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbaSsxMF0sIDksIDB4MDI0NDE0NTMpO1xuICAgICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzE1XSwgMTQsIDB4RDhBMUU2ODEpO1xuICAgICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA0XSwgMjAsIDB4RTdEM0ZCQzgpO1xuICAgICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA5XSwgNSwgMHgyMUUxQ0RFNik7XG4gICAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyW2krMTRdLCA5LCAweEMzMzcwN0Q2KTtcbiAgICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbaSsgM10sIDE0LCAweEY0RDUwRDg3KTtcbiAgICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbaSsgOF0sIDIwLCAweDQ1NUExNEVEKTtcbiAgICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbaSsxM10sIDUsIDB4QTlFM0U5MDUpO1xuICAgICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyAyXSwgOSwgMHhGQ0VGQTNGOCk7XG4gICAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyW2krIDddLCAxNCwgMHg2NzZGMDJEOSk7XG4gICAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyW2krMTJdLCAyMCwgMHg4RDJBNEM4QSk7XG5cbiAgICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbaSsgNV0sIDQsIDB4RkZGQTM5NDIpO1xuICAgICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA4XSwgMTEsIDB4ODc3MUY2ODEpO1xuICAgICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzExXSwgMTYsIDB4NkQ5RDYxMjIpO1xuICAgICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzE0XSwgMjMsIDB4RkRFNTM4MEMpO1xuICAgICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyAxXSwgNCwgMHhBNEJFRUE0NCk7XG4gICAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyW2krIDRdLCAxMSwgMHg0QkRFQ0ZBOSk7XG4gICAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyW2krIDddLCAxNiwgMHhGNkJCNEI2MCk7XG4gICAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyW2krMTBdLCAyMywgMHhCRUJGQkM3MCk7XG4gICAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyW2krMTNdLCA0LCAweDI4OUI3RUM2KTtcbiAgICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbaSsgMF0sIDExLCAweEVBQTEyN0ZBKTtcbiAgICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbaSsgM10sIDE2LCAweEQ0RUYzMDg1KTtcbiAgICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbaSsgNl0sIDIzLCAweDA0ODgxRDA1KTtcbiAgICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbaSsgOV0sIDQsIDB4RDlENEQwMzkpO1xuICAgICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzEyXSwgMTEsIDB4RTZEQjk5RTUpO1xuICAgICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzE1XSwgMTYsIDB4MUZBMjdDRjgpO1xuICAgICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyAyXSwgMjMsIDB4QzRBQzU2NjUpO1xuXG4gICAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyW2krIDBdLCA2LCAweEY0MjkyMjQ0KTtcbiAgICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbaSsgN10sIDEwLCAweDQzMkFGRjk3KTtcbiAgICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbaSsxNF0sIDE1LCAweEFCOTQyM0E3KTtcbiAgICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbaSsgNV0sIDIxLCAweEZDOTNBMDM5KTtcbiAgICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbaSsxMl0sIDYsIDB4NjU1QjU5QzMpO1xuICAgICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyAzXSwgMTAsIDB4OEYwQ0NDOTIpO1xuICAgICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzEwXSwgMTUsIDB4RkZFRkY0N0QpO1xuICAgICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyAxXSwgMjEsIDB4ODU4NDVERDEpO1xuICAgICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA4XSwgNiwgMHg2RkE4N0U0Rik7XG4gICAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyW2krMTVdLCAxMCwgMHhGRTJDRTZFMCk7XG4gICAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyW2krIDZdLCAxNSwgMHhBMzAxNDMxNCk7XG4gICAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyW2krMTNdLCAyMSwgMHg0RTA4MTFBMSk7XG4gICAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyW2krIDRdLCA2LCAweEY3NTM3RTgyKTtcbiAgICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbaSsxMV0sIDEwLCAweEJEM0FGMjM1KTtcbiAgICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbaSsgMl0sIDE1LCAweDJBRDdEMkJCKTtcbiAgICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbaSsgOV0sIDIxLCAweEVCODZEMzkxKTtcblxuICAgICAgd1swXSA9IGFkZChhLCB3WzBdKTtcbiAgICAgIHdbMV0gPSBhZGQoYiwgd1sxXSk7XG4gICAgICB3WzJdID0gYWRkKGMsIHdbMl0pO1xuICAgICAgd1szXSA9IGFkZChkLCB3WzNdKTtcbiAgICB9XG5cbiAgICB2YXIgdCA9IG5ldyBBcnJheSgxNik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7IGorKylcbiAgICAgICAgdFtpICogNCArIGpdID0gKHdbaV0gPj4gKDggKiBqKSkgJiAweEZGO1xuICAgIHJldHVybiB0O1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChzLCBvZnMsIGxlbikge1xuICAgIC8vIEZJWDogbWF5YmUgd2Ugc2hvdWxkIHBlcmZvcm0gdGhlIGNvbXB1dGF0aW9uIGJ5IGNodW5rIG9mIDY0IGJ5dGVzXG4gICAgLy8gYXMgaW4gaHR0cDovL3d3dy5teWVyc2RhaWx5Lm9yZy9qb3NlcGgvamF2YXNjcmlwdC9tZDUuanNcbiAgICB2YXIgYnVmID0gW107XG4gICAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQocyk7XG4gICAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpe1xuICAgICAgdmFyIGIgPSBjb250ZW50O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrPTQpIHtcbiAgICAgICAgdmFyIGogPSBpICsgb2ZzO1xuICAgICAgICBidWZbaT4+Ml0gPVxuICAgICAgICAgIGIuY2hhckNvZGVBdChqKSB8IChiLmNoYXJDb2RlQXQoaisxKSA8PCA4KSB8XG4gICAgICAgICAgKGIuY2hhckNvZGVBdChqKzIpIDw8IDE2KSB8IChiLmNoYXJDb2RlQXQoaiszKSA8PCAyNCk7XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IGxlbjsgaSsrKSBidWZbaT4+Ml0gfD0gYi5jaGFyQ29kZUF0KGkgKyBvZnMpIDw8ICg4ICogKGkgJiAzKSk7XG4gICAgfSBlbHNlIHsgLyogQVJSQVkgKi9cbiAgICAgIHZhciBhID0gY29udGVudDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKz00KSB7XG4gICAgICAgIHZhciBqID0gaSArIG9mcztcbiAgICAgICAgYnVmW2k+PjJdID0gYVtqXSB8IChhW2orMV0gPDwgOCkgfCAoYVtqKzJdIDw8IDE2KSB8IChhW2orM10gPDwgMjQpO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBsZW47IGkrKykgYnVmW2k+PjJdIHw9IGFbaSArIG9mc10gPDwgKDggKiAoaSAmIDMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KG1kNShidWYsIGxlbikpO1xuICB9XG59ICgpO1xuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDIwIC0gSHVnbyBIZXV6YXJkXG4vLyBDb3B5cmlnaHQgKEMpIDIwMjAgLSBTaGFjaGFyIEl0emhha3lcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9ibG9iLzQuMDcvb3RoZXJsaWJzL3N0ci9zdHJzdHVicy5jXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vanNjb3EvanNjb3EvYmxvYi92OC4xMS9jb3EtanMvanNfc3R1Yi9zdHIuanNcblxuLy9Qcm92aWRlczogcmVfbWF0Y2hcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF9hcnJheV9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2dldFxuXG52YXIgcmVfbWF0Y2ggPSBmdW5jdGlvbigpe1xuICB2YXIgcmVfd29yZF9sZXR0ZXJzID0gW1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4MDAtMHgxRjogbm9uZSAqL1xuICAgIDB4MDAsIDB4MDAsIDB4RkYsIDB4MDMsICAgICAgIC8qIDB4MjAtMHgzRjogZGlnaXRzIDAtOSAqL1xuICAgIDB4RkUsIDB4RkYsIDB4RkYsIDB4ODcsICAgICAgIC8qIDB4NDAtMHg1RjogQSB0byBaLCBfICovXG4gICAgMHhGRSwgMHhGRiwgMHhGRiwgMHgwNywgICAgICAgLyogMHg2MC0weDdGOiBhIHRvIHogKi9cbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweDgwLTB4OUY6IG5vbmUgKi9cbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweEEwLTB4QkY6IG5vbmUgKi9cbiAgICAweEZGLCAweEZGLCAweDdGLCAweEZGLCAgICAgICAvKiAweEMwLTB4REY6IExhdGluLTEgYWNjZW50ZWQgdXBwZXJjYXNlICovXG4gICAgMHhGRiwgMHhGRiwgMHg3RiwgMHhGRiAgICAgICAgLyogMHhFMC0weEZGOiBMYXRpbi0xIGFjY2VudGVkIGxvd2VyY2FzZSAqL1xuICBdO1xuXG4gIHZhciBvcGNvZGVzID0ge1xuICAgIENIQVI6IDAsIENIQVJOT1JNOiAxLCBTVFJJTkc6IDIsIFNUUklOR05PUk06IDMsIENIQVJDTEFTUzogNCxcbiAgICBCT0w6IDUsIEVPTDogNiwgV09SREJPVU5EQVJZOiA3LFxuICAgIEJFR0dST1VQOiA4LCBFTkRHUk9VUDogOSwgUkVGR1JPVVA6IDEwLFxuICAgIEFDQ0VQVDogMTEsXG4gICAgU0lNUExFT1BUOiAxMiwgU0lNUExFU1RBUjogMTMsIFNJTVBMRVBMVVM6IDE0LFxuICAgIEdPVE86IDE1LCBQVVNIQkFDSzogMTYsIFNFVE1BUks6IDE3LFxuICAgIENIRUNLUFJPR1JFU1M6IDE4XG4gIH07XG5cbiAgZnVuY3Rpb24gaXNfd29yZF9sZXR0ZXIoYykge1xuICAgIHJldHVybiAocmVfd29yZF9sZXR0ZXJzWyAgKGMgPj4gMyldID4+IChjICYgNykpICYgMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluX2JpdHNldChzLGkpIHtcbiAgICByZXR1cm4gKGNhbWxfc3RyaW5nX2dldChzLChpID4+IDMpKSA+PiAoaSAmIDcpKSAmIDE7XG4gIH1cblxuICBmdW5jdGlvbiByZV9tYXRjaF9pbXBsKHJlLCBzLCBwb3MsIHBhcnRpYWwpIHtcblxuICAgIHZhciBwcm9nICAgICAgICAgID0gY2FtbF9qc19mcm9tX2FycmF5KHJlWzFdKSxcbiAgICAgICAgY3Bvb2wgICAgICAgICA9IGNhbWxfanNfZnJvbV9hcnJheShyZVsyXSksXG4gICAgICAgIG5vcm10YWJsZSAgICAgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHJlWzNdKSxcbiAgICAgICAgbnVtZ3JvdXBzICAgICA9IHJlWzRdIHwgMCxcbiAgICAgICAgbnVtcmVnaXN0ZXJzICA9IHJlWzVdIHwgMCxcbiAgICAgICAgc3RhcnRjaGFycyAgICA9IHJlWzZdIHwgMDtcblxuICAgIHZhciBzID0gY2FtbF9hcnJheV9vZl9zdHJpbmcocyk7XG5cbiAgICB2YXIgcGMgPSAwLFxuICAgICAgICBxdWl0ID0gZmFsc2UsXG4gICAgICAgIHN0YWNrID0gW10sXG4gICAgICAgIGdyb3VwcyA9IG5ldyBBcnJheShudW1ncm91cHMpLFxuICAgICAgICByZV9yZWdpc3RlciA9IG5ldyBBcnJheShudW1yZWdpc3RlcnMpO1xuXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKyl7XG4gICAgICBncm91cHNbaV0gPSB7c3RhcnQ6IC0xLCBlbmQ6LTF9XG4gICAgfVxuICAgIGdyb3Vwc1swXS5zdGFydCA9IHBvcztcblxuICAgIHZhciBiYWNrdHJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICAgIHZhciBpdGVtID0gc3RhY2sucG9wKCk7XG4gICAgICAgIGlmIChpdGVtLnVuZG8pIHtcbiAgICAgICAgICBpdGVtLnVuZG8ub2JqW2l0ZW0udW5kby5wcm9wXSA9IGl0ZW0udW5kby52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGl0ZW0ucG9zKSB7XG4gICAgICAgICAgcGMgPSBpdGVtLnBvcy5wYztcbiAgICAgICAgICBwb3MgPSBpdGVtLnBvcy50eHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBxdWl0ID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFyIHB1c2ggPSBmdW5jdGlvbihpdGVtKSB7IHN0YWNrLnB1c2goaXRlbSk7IH07XG5cbiAgICB2YXIgYWNjZXB0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZ3JvdXBzWzBdLmVuZCA9IHBvcztcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkoMSArIGdyb3Vwcy5sZW5ndGgqMik7XG4gICAgICByZXN1bHRbMF0gPSAwOyAvLyB0YWdcbiAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspe1xuICAgICAgICB2YXIgZyA9IGdyb3Vwc1tpXTtcbiAgICAgICAgaWYoZy5zdGFydCA8IDAgfHwgZy5lbmQgPCAwKSB7XG4gICAgICAgICAgZy5zdGFydCA9IGcuZW5kID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0WzIqaSArIDEgXSA9IGcuc3RhcnQ7XG4gICAgICAgIHJlc3VsdFsyKmkgKyAxICsgMSBdID0gZy5lbmQ7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH07XG5cbiAgICB2YXIgcHJlZml4X21hdGNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYocGFydGlhbCkgcmV0dXJuIGFjY2VwdCAoKTtcbiAgICAgIGVsc2UgYmFja3RyYWNrICgpO1xuICAgIH1cblxuICAgIC8qIE1haW4gREZBIGludGVycHJldGVyIGxvb3AgKi9cbiAgICB3aGlsZSAoIXF1aXQpIHtcbiAgICAgIHZhciBvcCA9IHByb2dbcGNdICYgMHhmZixcbiAgICAgICAgICBzYXJnID0gcHJvZ1twY10gPj4gOCxcbiAgICAgICAgICB1YXJnID0gc2FyZyAmIDB4ZmYsXG4gICAgICAgICAgYyA9IHNbcG9zXSxcbiAgICAgICAgICBncm91cDtcblxuICAgICAgcGMrKztcblxuICAgICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVI6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGMgPT09IHVhcmcpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSTk9STTpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAobm9ybXRhYmxlLmNoYXJDb2RlQXQoYykgPT09IHVhcmcpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TVFJJTkc6XG4gICAgICAgIGZvciAodmFyIGFyZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoY3Bvb2xbdWFyZ10pLCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZiAoYyA9PT0gYXJnLmNoYXJDb2RlQXQoaSkpXG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgZWxzZSB7IGJhY2t0cmFjaygpOyBicmVhazsgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNUUklOR05PUk06XG4gICAgICAgIGZvciAodmFyIGFyZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoY3Bvb2xbdWFyZ10pLCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZiAobm9ybXRhYmxlLmNoYXJDb2RlQXQoYykgPT09IGFyZy5jaGFyQ29kZUF0KGkpKVxuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIGVsc2UgeyBiYWNrdHJhY2soKTsgYnJlYWs7IH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSQ0xBU1M6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5CT0w6XG4gICAgICAgIGlmKHBvcyA+IDAgJiYgc1twb3MgLSAxXSAhPSAxMCAvKiBcXG4gKi8pIHtiYWNrdHJhY2soKX1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuRU9MOlxuICAgICAgICBpZihwb3MgPCBzLmxlbmd0aCAmJiBzW3Bvc10gIT0gMTAgLyogXFxuICovKSB7YmFja3RyYWNrKCl9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLldPUkRCT1VOREFSWTpcbiAgICAgICAgaWYocG9zID09IDApIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1swXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBvcyA9PT0gcy5sZW5ndGgpIHtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzW3BvcyAtIDFdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrICgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbcG9zIC0gMV0pICE9IGlzX3dvcmRfbGV0dGVyKHNbcG9zXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjayAoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5CRUdHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6Z3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOidzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZ3JvdXAuc3RhcnR9fSk7XG4gICAgICAgIGdyb3VwLnN0YXJ0ID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5FTkRHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDonZW5kJyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC5lbmR9fSk7XG4gICAgICAgIGdyb3VwLmVuZCA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuUkVGR1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBpZihncm91cC5zdGFydCA8IDAgfHwgZ3JvdXAuZW5kIDwgMCkge2JhY2t0cmFjayAoKTsgYnJlYWt9XG4gICAgICAgIGZvciAodmFyIGkgPSBncm91cC5zdGFydDsgaSA8IGdyb3VwLmVuZDsgaSsrKXtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYoc1tpXSAhPSBzW3Bvc10pIHtiYWNrdHJhY2sgKCk7IGJyZWFrfVxuICAgICAgICAgIHBvcysrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRU9QVDpcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHBvcysrO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVTVEFSOlxuICAgICAgICB3aGlsZSAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSlcbiAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRVBMVVM6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgfSB3aGlsZSAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQUNDRVBUOlxuICAgICAgICByZXR1cm4gYWNjZXB0KCk7XG4gICAgICBjYXNlIG9wY29kZXMuR09UTzpcbiAgICAgICAgcGMgPSBwYyArIHNhcmc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlBVU0hCQUNLOlxuICAgICAgICBwdXNoKHtwb3M6IHtwYzogcGMgKyBzYXJnLCB0eHQ6IHBvc319KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0VUTUFSSzpcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajpyZV9yZWdpc3RlcixcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6IHVhcmcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVfcmVnaXN0ZXJbdWFyZ119fSk7XG4gICAgICAgIHJlX3JlZ2lzdGVyW3VhcmddID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEVDS1BST0dSRVNTOlxuICAgICAgICBpZiAocmVfcmVnaXN0ZXJbdWFyZ10gPT09IHBvcykgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBieXRlY29kZVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gcmVfbWF0Y2hfaW1wbDtcbn0oKTtcblxuXG4vL1Byb3ZpZGVzOiByZV9zZWFyY2hfZm9yd2FyZFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zZWFyY2hfZm9yd2FyZChyZSwgcywgcG9zKSB7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zZWFyY2hfZm9yd2FyZFwiKVxuICB3aGlsZSAocG9zIDw9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkge1xuICAgIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgIHBvcysrO1xuICB9XG5cbiAgcmV0dXJuIFswXTsgIC8qIFt8fF0gOiBpbnQgYXJyYXkgKi9cbn1cblxuLy9Qcm92aWRlczogcmVfc2VhcmNoX2JhY2t3YXJkXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3NlYXJjaF9iYWNrd2FyZChyZSwgcywgcG9zKSB7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zZWFyY2hfYmFja3dhcmRcIilcbiAgd2hpbGUgKHBvcyA+PSAwKSB7XG4gICAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICAgIGlmIChyZXMpIHJldHVybiByZXM7XG4gICAgcG9zLS07XG4gIH1cblxuICByZXR1cm4gWzBdOyAgLyogW3x8XSA6IGludCBhcnJheSAqL1xufVxuXG5cbi8vUHJvdmlkZXM6IHJlX3N0cmluZ19tYXRjaFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zdHJpbmdfbWF0Y2gocmUscyxwb3Mpe1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc3RyaW5nX21hdGNoXCIpXG4gIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgZWxzZSByZXR1cm4gWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiByZV9wYXJ0aWFsX21hdGNoXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3BhcnRpYWxfbWF0Y2gocmUscyxwb3Mpe1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIucGFydGlhbF9tYXRjaFwiKVxuICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMSk7XG4gIGlmIChyZXMpIHJldHVybiByZXM7XG4gIGVsc2UgcmV0dXJuIFswXTtcbn1cblxuLy9Qcm92aWRlczogcmVfcmVwbGFjZW1lbnRfdGV4dFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9hcnJheV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vIGV4dGVybmFsIHJlX3JlcGxhY2VtZW50X3RleHQ6IHN0cmluZyAtPiBpbnQgYXJyYXkgLT4gc3RyaW5nIC0+IHN0cmluZ1xuZnVuY3Rpb24gcmVfcmVwbGFjZW1lbnRfdGV4dChyZXBsLGdyb3VwcyxvcmlnKSB7XG4gIHZhciByZXBsID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhyZXBsKTtcbiAgdmFyIGxlbiA9IHJlcGwubGVuZ3RoO1xuICB2YXIgb3JpZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcob3JpZyk7XG4gIHZhciByZXMgPSBcIlwiOyAvL3Jlc3VsdFxuICB2YXIgbiA9IDA7IC8vIGN1cnJlbnQgcG9zaXRpb25cbiAgdmFyIGN1cjsgLy9jdXJyZW50IGNoYXJcbiAgdmFyIHN0YXJ0LCBlbmQsIGM7XG4gIHdoaWxlKG4gPCBsZW4pe1xuICAgIGN1ciA9IHJlcGwuY2hhckF0KG4rKyk7XG4gICAgaWYoY3VyICE9ICdcXFxcJyl7XG4gICAgICByZXMgKz0gY3VyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmKG4gPT0gbGVuKSBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IGlsbGVnYWwgYmFja3NsYXNoIHNlcXVlbmNlXCIpO1xuICAgICAgY3VyID0gcmVwbC5jaGFyQXQobisrKTtcbiAgICAgIHN3aXRjaChjdXIpe1xuICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgIHJlcyArPSBjdXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOlxuICAgICAgY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOlxuICAgICAgICBjID0gK2N1cjtcbiAgICAgICAgaWYgKGMqMiA+PSBncm91cHMubGVuZ3RoIC0gMSApXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiByZWZlcmVuY2UgdG8gdW5tYXRjaGVkIGdyb3VwXCIgKTtcbiAgICAgICAgc3RhcnQgPSBjYW1sX2FycmF5X2dldChncm91cHMsYyoyKTtcbiAgICAgICAgZW5kID0gY2FtbF9hcnJheV9nZXQoZ3JvdXBzLCBjKjIgKzEpO1xuICAgICAgICBpZiAoc3RhcnQgPT0gLTEpXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiByZWZlcmVuY2UgdG8gdW5tYXRjaGVkIGdyb3VwXCIpO1xuICAgICAgICByZXMrPW9yaWcuc2xpY2Uoc3RhcnQsZW5kKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXMgKz0gKCdcXFxcJyAgKyBjdXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhyZXMpOyB9XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IENpdHJpeCBJbmNcbiAqXG4gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbiAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmVcbiAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVNcbiAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0ZcbiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SXG4gKiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTXG4gKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU5cbiAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GXG4gKiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuICovXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhXG52YXIgY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmcgPSBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzXG52YXIgY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmcgPSBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9zdHJpbmdfdG9fYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxudmFyIGNhbWxfYmxpdF9zdHJpbmdfdG9fYmlnc3RyaW5nID0gY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmFcblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9pbnRfY29tcGFyZSwgY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gY2FtbF9jb21wYXJlX2JpZ3N0cmluZyhidWYxLCBidWYxX29mZiwgYnVmMiwgYnVmMl9vZmYsIGxlbikge1xuICB2YXIgaSwgcjtcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgciA9IGNhbWxfaW50X2NvbXBhcmUoY2FtbF9iYV9nZXRfMShidWYxLCBidWYxX29mZiArIGkpLCBjYW1sX2JhX2dldF8xKGJ1ZjIsIGJ1ZjJfb2ZmICsgaSkpO1xuICAgIGlmIChyICE9IDApIHJldHVybiByO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbGxfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JhX3NldF8xXG5mdW5jdGlvbiBjYW1sX2ZpbGxfYmlnc3RyaW5nKGJ1ZiwgYnVmX29mZiwgYnVmX2xlbiwgdikge1xuICB2YXIgaTtcbiAgZm9yIChpID0gMDsgaSA8IGJ1Zl9sZW47IGkrKykge1xuICAgIGNhbWxfYmFfc2V0XzEoYnVmLCBidWZfb2ZmICsgaSwgdik7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9jaGVja19hbGlnbm1lbnRfYmlnc3RyaW5nKGJ1Ziwgb2ZzLCBhbGlnbm1lbnQpIHtcbiAgcmV0dXJuIHRydWU7IC8vIEZJWE1FOiBObyBjb25jZXB0IG9mIGEgZml4ZWQgYnVmZmVyIGFkZHJlc3M/XG59XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgIERhbmllbCBDLiBCdWVuemxpICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcblxubGV0IGVycl9ub19wcmVkID0gXCJVKzAwMDAgaGFzIG5vIHByZWRlY2Vzc29yXCJcbmxldCBlcnJfbm9fc3VjYyA9IFwiVSsxMEZGRkYgaGFzIG5vIHN1Y2Nlc3NvclwiXG5sZXQgZXJyX25vdF9zdiBpID0gZm9ybWF0X2ludCBcIiVYXCIgaSBeIFwiIGlzIG5vdCBhbiBVbmljb2RlIHNjYWxhciB2YWx1ZVwiXG5sZXQgZXJyX25vdF9sYXRpbjEgdSA9IFwiVStcIiBeIGZvcm1hdF9pbnQgXCIlMDRYXCIgdSBeIFwiIGlzIG5vdCBhIGxhdGluMSBjaGFyYWN0ZXJcIlxuXG50eXBlIHQgPSBpbnRcblxubGV0IG1pbiA9IDB4MDAwMFxubGV0IG1heCA9IDB4MTBGRkZGXG5sZXQgbG9fYm91bmQgPSAweEQ3RkZcbmxldCBoaV9ib3VuZCA9IDB4RTAwMFxuXG5sZXQgYm9tID0gMHhGRUZGXG5sZXQgcmVwID0gMHhGRkZEXG5cbmxldCBzdWNjIHUgPVxuICBpZiB1ID0gbG9fYm91bmQgdGhlbiBoaV9ib3VuZCBlbHNlXG4gIGlmIHUgPSBtYXggdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fc3VjYyBlbHNlXG4gIHUgKyAxXG5cbmxldCBwcmVkIHUgPVxuICBpZiB1ID0gaGlfYm91bmQgdGhlbiBsb19ib3VuZCBlbHNlXG4gIGlmIHUgPSBtaW4gdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fcHJlZCBlbHNlXG4gIHUgLSAxXG5cbmxldCBpc192YWxpZCBpID0gKG1pbiA8PSBpICYmIGkgPD0gbG9fYm91bmQpIHx8IChoaV9ib3VuZCA8PSBpICYmIGkgPD0gbWF4KVxubGV0IG9mX2ludCBpID0gaWYgaXNfdmFsaWQgaSB0aGVuIGkgZWxzZSBpbnZhbGlkX2FyZyAoZXJyX25vdF9zdiBpKVxuZXh0ZXJuYWwgdW5zYWZlX29mX2ludCA6IGludCAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdG9faW50IDogdCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19jaGFyIHUgPSB1IDwgMjU2XG5sZXQgb2ZfY2hhciBjID0gQ2hhci5jb2RlIGNcbmxldCB0b19jaGFyIHUgPVxuICBpZiB1ID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgKGVycl9ub3RfbGF0aW4xIHUpIGVsc2VcbiAgQ2hhci51bnNhZmVfY2hyIHVcblxubGV0IHVuc2FmZV90b19jaGFyID0gQ2hhci51bnNhZmVfY2hyXG5cbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBoYXNoID0gdG9faW50XG5cbigqIFVURiBjb2RlY3MgdG9vbHMgKilcblxudHlwZSB1dGZfZGVjb2RlID0gaW50XG4oKiBUaGlzIGlzIGFuIGludCBbMHhEVVVVVVVVXSBkZWNvbXBvc2VkIGFzIGZvbGxvd3M6XG4gICAtIFtEXSBpcyBmb3VyIGJpdHMgZm9yIGRlY29kZSBpbmZvcm1hdGlvbiwgdGhlIGhpZ2hlc3QgYml0IGlzIHNldCBpZiB0aGVcbiAgICAgZGVjb2RlIGlzIHZhbGlkLiBUaGUgdGhyZWUgbG93ZXIgYml0cyBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzXG4gICAgIGZyb20gdGhlIHNvdXJjZSB0aGF0IHdlcmUgY29uc3VtZWQgYnkgdGhlIGRlY29kZS5cbiAgIC0gW1VVVVVVVV0gaXMgdGhlIGRlY29kZWQgVW5pY29kZSBjaGFyYWN0ZXIgb3IgdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnRcbiAgICAgY2hhcmFjdGVyIFUrRkZGRCBpZiBmb3IgaW52YWxpZCBkZWNvZGVzLiAqKVxuXG5sZXQgdmFsaWRfYml0ID0gMjdcbmxldCBkZWNvZGVfYml0cyA9IDI0XG5cbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2lzX3ZhbGlkIGQgPSAoZCBsc3IgdmFsaWRfYml0KSA9IDFcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2xlbmd0aCBkID0gKGQgbHNyIGRlY29kZV9iaXRzKSBsYW5kIDBiMTExXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV91Y2hhciBkID0gdW5zYWZlX29mX2ludCAoZCBsYW5kIDB4RkZGRkZGKVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGUgbiB1ID0gKCg4IGxvciBuKSBsc2wgZGVjb2RlX2JpdHMpIGxvciAodG9faW50IHUpXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9pbnZhbGlkIG4gPSAobiBsc2wgZGVjb2RlX2JpdHMpIGxvciByZXBcblxubGV0IHV0Zl84X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHgwMDdGIC0+IDFcbnwgdSB3aGVuIHUgPD0gMHgwN0ZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDNcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgdXRmXzE2X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0ludDY0XTogNjQtYml0IGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZyA6IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbmVnXCJcbmV4dGVybmFsIGFkZCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfYWRkXCJcbmV4dGVybmFsIHN1YiA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfc3ViXCJcbmV4dGVybmFsIG11bCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbXVsXCJcbmV4dGVybmFsIGRpdiA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfZGl2XCJcbmV4dGVybmFsIHJlbSA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfYW5kXCJcbmV4dGVybmFsIGxvZ29yIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vclwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGludDY0ID0gXCIlaW50NjRfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGludDY0IC0+IGludCA9IFwiJWludDY0X3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X29mX2Zsb2F0XCIgXCJjYW1sX2ludDY0X29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF90b19mbG9hdFwiIFwiY2FtbF9pbnQ2NF90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG9mX2ludDMyIDogaW50MzIgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9pbnQzMlwiXG5leHRlcm5hbCB0b19pbnQzMiA6IGludDY0IC0+IGludDMyID0gXCIlaW50NjRfdG9faW50MzJcIlxuZXh0ZXJuYWwgb2ZfbmF0aXZlaW50IDogbmF0aXZlaW50IC0+IGludDY0ID0gXCIlaW50NjRfb2ZfbmF0aXZlaW50XCJcbmV4dGVybmFsIHRvX25hdGl2ZWludCA6IGludDY0IC0+IG5hdGl2ZWludCA9IFwiJWludDY0X3RvX25hdGl2ZWludFwiXG5cbmxldCB6ZXJvID0gMExcbmxldCBvbmUgPSAxTFxubGV0IG1pbnVzX29uZSA9IC0xTFxubGV0IHN1Y2MgbiA9IGFkZCBuIDFMXG5sZXQgcHJlZCBuID0gc3ViIG4gMUxcbmxldCBhYnMgbiA9IGlmIG4gPj0gMEwgdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBtaW5faW50ID0gMHg4MDAwMDAwMDAwMDAwMDAwTFxubGV0IG1heF9pbnQgPSAweDdGRkZGRkZGRkZGRkZGRkZMXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFMKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgZnVuIG4gLT5cbiAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgU29tZSAodG9faW50IG4pXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50NjQgLT4gc3RyaW5nID0gXCJjYW1sX2ludDY0X2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDY0ID0gXCJjYW1sX2ludDY0X29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5cblxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50NjRfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbnR5cGUgdCA9IGludDY0XG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIGxleGVycyBnZW5lcmF0ZWQgYnkgY2FtbGxleCAqKVxuXG50eXBlIHBvc2l0aW9uID0ge1xuICBwb3NfZm5hbWUgOiBzdHJpbmc7XG4gIHBvc19sbnVtIDogaW50O1xuICBwb3NfYm9sIDogaW50O1xuICBwb3NfY251bSA6IGludDtcbn1cblxubGV0IGR1bW15X3BvcyA9IHtcbiAgcG9zX2ZuYW1lID0gXCJcIjtcbiAgcG9zX2xudW0gPSAwO1xuICBwb3NfYm9sID0gMDtcbiAgcG9zX2NudW0gPSAtMTtcbn1cblxudHlwZSBsZXhidWYgPVxuICB7IHJlZmlsbF9idWZmIDogbGV4YnVmIC0+IHVuaXQ7XG4gICAgbXV0YWJsZSBsZXhfYnVmZmVyIDogYnl0ZXM7XG4gICAgbXV0YWJsZSBsZXhfYnVmZmVyX2xlbiA6IGludDtcbiAgICBtdXRhYmxlIGxleF9hYnNfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X3N0YXJ0X3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9jdXJyX3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9sYXN0X3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9sYXN0X2FjdGlvbiA6IGludDtcbiAgICBtdXRhYmxlIGxleF9lb2ZfcmVhY2hlZCA6IGJvb2w7XG4gICAgbXV0YWJsZSBsZXhfbWVtIDogaW50IGFycmF5O1xuICAgIG11dGFibGUgbGV4X3N0YXJ0X3AgOiBwb3NpdGlvbjtcbiAgICBtdXRhYmxlIGxleF9jdXJyX3AgOiBwb3NpdGlvbjtcbiAgfVxuXG50eXBlIGxleF90YWJsZXMgPVxuICB7IGxleF9iYXNlOiBzdHJpbmc7XG4gICAgbGV4X2JhY2t0cms6IHN0cmluZztcbiAgICBsZXhfZGVmYXVsdDogc3RyaW5nO1xuICAgIGxleF90cmFuczogc3RyaW5nO1xuICAgIGxleF9jaGVjazogc3RyaW5nO1xuICAgIGxleF9iYXNlX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2JhY2t0cmtfY29kZSA6IHN0cmluZztcbiAgICBsZXhfZGVmYXVsdF9jb2RlIDogc3RyaW5nO1xuICAgIGxleF90cmFuc19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9jaGVja19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9jb2RlOiBzdHJpbmc7fVxuXG5leHRlcm5hbCBjX2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnQgPSBcImNhbWxfbGV4X2VuZ2luZVwiXG5leHRlcm5hbCBjX25ld19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbmV3X2xleF9lbmdpbmVcIlxuXG5sZXQgZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICBsZXQgcmVzdWx0ID0gY19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICBpZiByZXN1bHQgPj0gMCAmJiBidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3MgdGhlbiBiZWdpblxuICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICBlbmQ7XG4gIHJlc3VsdFxuXG5cbmxldCBuZXdfZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICBsZXQgcmVzdWx0ID0gY19uZXdfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgaWYgcmVzdWx0ID49IDAgJiYgYnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zIHRoZW4gYmVnaW5cbiAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgZW5kO1xuICByZXN1bHRcblxubGV0IGxleF9yZWZpbGwgcmVhZF9mdW4gYXV4X2J1ZmZlciBsZXhidWYgPVxuICBsZXQgcmVhZCA9XG4gICAgcmVhZF9mdW4gYXV4X2J1ZmZlciAoQnl0ZXMubGVuZ3RoIGF1eF9idWZmZXIpIGluXG4gIGxldCBuID1cbiAgICBpZiByZWFkID4gMFxuICAgIHRoZW4gcmVhZFxuICAgIGVsc2UgKGxleGJ1Zi5sZXhfZW9mX3JlYWNoZWQgPC0gdHJ1ZTsgMCkgaW5cbiAgKCogQ3VycmVudCBzdGF0ZSBvZiB0aGUgYnVmZmVyOlxuICAgICAgICA8LS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0+XG4gICAgICAgIHwgIGp1bmsgfCAgICAgIHZhbGlkIGRhdGEgICAgIHwgICBqdW5rICAgIHxcbiAgICAgICAgXiAgICAgICBeICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgXlxuICAgICAgICAwICAgIHN0YXJ0X3BvcyAgICAgICAgICAgICBidWZmZXJfZW5kICAgIEJ5dGVzLmxlbmd0aCBidWZmZXJcbiAgKilcbiAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuICsgbiA+IEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlciB0aGVuIGJlZ2luXG4gICAgKCogVGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgKilcbiAgICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIG5cbiAgICAgICA8PSBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXJcbiAgICB0aGVuIGJlZ2luXG4gICAgICAoKiBCdXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGlmIHdlIHJlY2xhaW0gdGhlIGp1bmsgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgb2YgdGhlIGJ1ZmZlciAqKVxuICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3Bvc1xuICAgICAgICAgICAgICAgICAgbGV4YnVmLmxleF9idWZmZXIgMFxuICAgICAgICAgICAgICAgICAgKGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zKVxuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAoKiBXZSBtdXN0IGdyb3cgdGhlIGJ1ZmZlci4gIERvdWJsaW5nIGl0cyBzaXplIHdpbGwgcHJvdmlkZSBlbm91Z2hcbiAgICAgICAgIHNwYWNlIHNpbmNlIG4gPD0gU3RyaW5nLmxlbmd0aCBhdXhfYnVmZmVyIDw9IFN0cmluZy5sZW5ndGggYnVmZmVyLlxuICAgICAgICAgV2F0Y2ggb3V0IGZvciBzdHJpbmcgbGVuZ3RoIG92ZXJmbG93LCB0aG91Z2guICopXG4gICAgICBsZXQgbmV3bGVuID1cbiAgICAgICAgSW50Lm1pbiAoMiAqIEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlcikgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIGluXG4gICAgICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIG4gPiBuZXdsZW5cbiAgICAgIHRoZW4gZmFpbHdpdGggXCJMZXhpbmcubGV4X3JlZmlsbDogY2Fubm90IGdyb3cgYnVmZmVyXCI7XG4gICAgICBsZXQgbmV3YnVmID0gQnl0ZXMuY3JlYXRlIG5ld2xlbiBpblxuICAgICAgKCogQ29weSB0aGUgdmFsaWQgZGF0YSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXcgYnVmZmVyICopXG4gICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zXG4gICAgICAgICAgICAgICAgICBuZXdidWYgMFxuICAgICAgICAgICAgICAgICAgKGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zKTtcbiAgICAgIGxleGJ1Zi5sZXhfYnVmZmVyIDwtIG5ld2J1ZlxuICAgIGVuZDtcbiAgICAoKiBSZWFsbG9jYXRpb24gb3Igbm90LCB3ZSBoYXZlIHNoaWZ0ZWQgdGhlIGRhdGEgbGVmdCBieVxuICAgICAgIHN0YXJ0X3BvcyBjaGFyYWN0ZXJzOyB1cGRhdGUgdGhlIHBvc2l0aW9ucyAqKVxuICAgIGxldCBzID0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBsZXhidWYubGV4X2Fic19wb3MgPC0gbGV4YnVmLmxleF9hYnNfcG9zICsgcztcbiAgICBsZXhidWYubGV4X2N1cnJfcG9zIDwtIGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBzO1xuICAgIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIDwtIDA7XG4gICAgbGV4YnVmLmxleF9sYXN0X3BvcyA8LSBsZXhidWYubGV4X2xhc3RfcG9zIC0gcztcbiAgICBsZXhidWYubGV4X2J1ZmZlcl9sZW4gPC0gbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gcyA7XG4gICAgbGV0IHQgPSBsZXhidWYubGV4X21lbSBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggdC0xIGRvXG4gICAgICBsZXQgdiA9IHQuKGkpIGluXG4gICAgICBpZiB2ID49IDAgdGhlblxuICAgICAgICB0LihpKSA8LSB2LXNcbiAgICBkb25lXG4gIGVuZDtcbiAgKCogVGhlcmUgaXMgbm93IGVub3VnaCBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgKilcbiAgQnl0ZXMuYmxpdCBhdXhfYnVmZmVyIDAgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9idWZmZXJfbGVuIG47XG4gIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiA8LSBsZXhidWYubGV4X2J1ZmZlcl9sZW4gKyBuXG5cbmxldCB6ZXJvX3BvcyA9IHtcbiAgcG9zX2ZuYW1lID0gXCJcIjtcbiAgcG9zX2xudW0gPSAxO1xuICBwb3NfYm9sID0gMDtcbiAgcG9zX2NudW0gPSAwO1xufVxuXG5sZXQgZnJvbV9mdW5jdGlvbiA/KHdpdGhfcG9zaXRpb25zID0gdHJ1ZSkgZiA9XG4gIHsgcmVmaWxsX2J1ZmYgPSBsZXhfcmVmaWxsIGYgKEJ5dGVzLmNyZWF0ZSA1MTIpO1xuICAgIGxleF9idWZmZXIgPSBCeXRlcy5jcmVhdGUgMTAyNDtcbiAgICBsZXhfYnVmZmVyX2xlbiA9IDA7XG4gICAgbGV4X2Fic19wb3MgPSAwO1xuICAgIGxleF9zdGFydF9wb3MgPSAwO1xuICAgIGxleF9jdXJyX3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9hY3Rpb24gPSAwO1xuICAgIGxleF9tZW0gPSBbfHxdO1xuICAgIGxleF9lb2ZfcmVhY2hlZCA9IGZhbHNlO1xuICAgIGxleF9zdGFydF9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgICBsZXhfY3Vycl9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgfVxuXG5sZXQgZnJvbV9jaGFubmVsID93aXRoX3Bvc2l0aW9ucyBpYyA9XG4gIGZyb21fZnVuY3Rpb24gP3dpdGhfcG9zaXRpb25zIChmdW4gYnVmIG4gLT4gaW5wdXQgaWMgYnVmIDAgbilcblxubGV0IGZyb21fc3RyaW5nID8od2l0aF9wb3NpdGlvbnMgPSB0cnVlKSBzID1cbiAgeyByZWZpbGxfYnVmZiA9IChmdW4gbGV4YnVmIC0+IGxleGJ1Zi5sZXhfZW9mX3JlYWNoZWQgPC0gdHJ1ZSk7XG4gICAgbGV4X2J1ZmZlciA9IEJ5dGVzLm9mX3N0cmluZyBzOyAoKiBoYXZlIHRvIG1ha2UgYSBjb3B5IGZvciBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHVuc2FmZS1zdHJpbmcgbW9kZSAqKVxuICAgIGxleF9idWZmZXJfbGVuID0gU3RyaW5nLmxlbmd0aCBzO1xuICAgIGxleF9hYnNfcG9zID0gMDtcbiAgICBsZXhfc3RhcnRfcG9zID0gMDtcbiAgICBsZXhfY3Vycl9wb3MgPSAwO1xuICAgIGxleF9sYXN0X3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfYWN0aW9uID0gMDtcbiAgICBsZXhfbWVtID0gW3x8XTtcbiAgICBsZXhfZW9mX3JlYWNoZWQgPSB0cnVlO1xuICAgIGxleF9zdGFydF9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgICBsZXhfY3Vycl9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgfVxuXG5sZXQgc2V0X3Bvc2l0aW9uIGxleGJ1ZiBwb3NpdGlvbiA9XG4gIGxleGJ1Zi5sZXhfY3Vycl9wICA8LSB7cG9zaXRpb24gd2l0aCBwb3NfZm5hbWUgPSBsZXhidWYubGV4X2N1cnJfcC5wb3NfZm5hbWV9O1xuICBsZXhidWYubGV4X2Fic19wb3MgPC0gcG9zaXRpb24ucG9zX2NudW1cblxubGV0IHNldF9maWxlbmFtZSBsZXhidWYgZm5hbWUgPVxuICBsZXhidWYubGV4X2N1cnJfcCA8LSB7bGV4YnVmLmxleF9jdXJyX3Agd2l0aCBwb3NfZm5hbWUgPSBmbmFtZX1cblxubGV0IHdpdGhfcG9zaXRpb25zIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3Bvc1xuXG5sZXQgbGV4ZW1lIGxleGJ1ZiA9XG4gIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW5cblxubGV0IHN1Yl9sZXhlbWUgbGV4YnVmIGkxIGkyID1cbiAgbGV0IGxlbiA9IGkyLWkxIGluXG4gIEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgaTEgbGVuXG5cbmxldCBzdWJfbGV4ZW1lX29wdCBsZXhidWYgaTEgaTIgPVxuICBpZiBpMSA+PSAwIHRoZW4gYmVnaW5cbiAgICBsZXQgbGVuID0gaTItaTEgaW5cbiAgICBTb21lIChCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGkxIGxlbilcbiAgZW5kIGVsc2UgYmVnaW5cbiAgICBOb25lXG4gIGVuZFxuXG5sZXQgc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiBpID0gQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIGlcblxubGV0IHN1Yl9sZXhlbWVfY2hhcl9vcHQgbGV4YnVmIGkgPVxuICBpZiBpID49IDAgdGhlblxuICAgIFNvbWUgKEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciBpKVxuICBlbHNlXG4gICAgTm9uZVxuXG5cbmxldCBsZXhlbWVfY2hhciBsZXhidWYgaSA9XG4gIEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciAobGV4YnVmLmxleF9zdGFydF9wb3MgKyBpKVxuXG5sZXQgbGV4ZW1lX3N0YXJ0IGxleGJ1ZiA9IGxleGJ1Zi5sZXhfc3RhcnRfcC5wb3NfY251bVxubGV0IGxleGVtZV9lbmQgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3AucG9zX2NudW1cblxubGV0IGxleGVtZV9zdGFydF9wIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfc3RhcnRfcFxubGV0IGxleGVtZV9lbmRfcCBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcFxuXG5sZXQgbmV3X2xpbmUgbGV4YnVmID1cbiAgbGV0IGxjcCA9IGxleGJ1Zi5sZXhfY3Vycl9wIGluXG4gIGlmIGxjcCAhPSBkdW1teV9wb3MgdGhlblxuICAgIGxleGJ1Zi5sZXhfY3Vycl9wIDwtXG4gICAgICB7IGxjcCB3aXRoXG4gICAgICAgIHBvc19sbnVtID0gbGNwLnBvc19sbnVtICsgMTtcbiAgICAgICAgcG9zX2JvbCA9IGxjcC5wb3NfY251bTtcbiAgICAgIH1cblxuXG5cbigqIERpc2NhcmQgZGF0YSBsZWZ0IGluIGxleGVyIGJ1ZmZlci4gKilcblxubGV0IGZsdXNoX2lucHV0IGxiID1cbiAgbGIubGV4X2N1cnJfcG9zIDwtIDA7XG4gIGxiLmxleF9hYnNfcG9zIDwtIDA7XG4gIGxldCBsY3AgPSBsYi5sZXhfY3Vycl9wIGluXG4gIGlmIGxjcCAhPSBkdW1teV9wb3MgdGhlblxuICAgIGxiLmxleF9jdXJyX3AgPC0ge3plcm9fcG9zIHdpdGggcG9zX2ZuYW1lID0gbGNwLnBvc19mbmFtZX07XG4gIGxiLmxleF9idWZmZXJfbGVuIDwtIDA7XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVub2l0IFZhdWdvbiwgRU5TVEEgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICgqIFRvb2xzIHRvIG1hbmlwdWxhdGUgc2Nhbm5pbmcgc2V0IG9mIGNoYXJzIChzZWUgJVsuLi5dKSAqKVxuXG50eXBlIG11dGFibGVfY2hhcl9zZXQgPSBieXRlc1xuXG4oKiBDcmVhdGUgYSBmcmVzaCwgZW1wdHksIG11dGFibGUgY2hhciBzZXQuICopXG5sZXQgY3JlYXRlX2NoYXJfc2V0ICgpID0gQnl0ZXMubWFrZSAzMiAnXFwwMDAnXG5cbigqIEFkZCBhIGNoYXIgaW4gYSBtdXRhYmxlIGNoYXIgc2V0LiAqKVxubGV0IGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCBjID1cbiAgbGV0IGluZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgbGV0IHN0cl9pbmQgPSBpbmQgbHNyIDMgYW5kIG1hc2sgPSAxIGxzbCAoaW5kIGxhbmQgMGIxMTEpIGluXG4gIEJ5dGVzLnNldCBjaGFyX3NldCBzdHJfaW5kXG4gICAgKGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciAoQnl0ZXMuZ2V0IGNoYXJfc2V0IHN0cl9pbmQpIGxvciBtYXNrKSlcblxubGV0IGZyZWV6ZV9jaGFyX3NldCBjaGFyX3NldCA9XG4gIEJ5dGVzLnRvX3N0cmluZyBjaGFyX3NldFxuXG4oKiBDb21wdXRlIHRoZSBjb21wbGVtZW50IG9mIGEgY2hhciBzZXQuICopXG5sZXQgcmV2X2NoYXJfc2V0IGNoYXJfc2V0ID1cbiAgbGV0IGNoYXJfc2V0JyA9IGNyZWF0ZV9jaGFyX3NldCAoKSBpblxuICBmb3IgaSA9IDAgdG8gMzEgZG9cbiAgICBCeXRlcy5zZXQgY2hhcl9zZXQnIGlcbiAgICAgIChjaGFyX29mX2ludCAoaW50X29mX2NoYXIgKFN0cmluZy5nZXQgY2hhcl9zZXQgaSkgbHhvciAweEZGKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgY2hhcl9zZXQnXG5cbigqIFJldHVybiB0cnVlIGlmIGEgYGMnIGlzIGluIGBjaGFyX3NldCcuICopXG5sZXQgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyA9XG4gIGxldCBpbmQgPSBpbnRfb2ZfY2hhciBjIGluXG4gIGxldCBzdHJfaW5kID0gaW5kIGxzciAzIGFuZCBtYXNrID0gMSBsc2wgKGluZCBsYW5kIDBiMTExKSBpblxuICAoaW50X29mX2NoYXIgKFN0cmluZy5nZXQgY2hhcl9zZXQgc3RyX2luZCkgbGFuZCBtYXNrKSA8PiAwXG5cblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAoKiBJZ25vcmVkIHBhcmFtIGNvbnZlcnNpb24gKilcblxuKCogR0FEVCB1c2VkIHRvIGFic3RyYWN0IGFuIGV4aXN0ZW50aWFsIHR5cGUgcGFyYW1ldGVyLiAqKVxuKCogU2VlIHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdC4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhcmFtX2Zvcm1hdF9lYmIgPSBQYXJhbV9mb3JtYXRfRUJCIDpcbiAgICAoJ3ggLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+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+IGEgPVxuICAgIGZ1biBwY3RfaW5kIHN0cl9pbmQgc3ltYiBvcHRpb24gLT5cbiAgICAgIGxldCBzdWJmbXQgPSBTdHJpbmcuc3ViIHN0ciBwY3RfaW5kIChzdHJfaW5kIC0gcGN0X2luZCkgaW5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgICVzIGlzIGluY29tcGF0aWJsZSB3aXRoICclYycgaW4gc3ViLWZvcm1hdCAlU1wiXG4gICAgICAgIHN0ciBwY3RfaW5kIG9wdGlvbiBzeW1iIHN1YmZtdFxuXG4gIGluIHBhcnNlIDAgKFN0cmluZy5sZW5ndGggc3RyKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgKCogR3VhcmRlZCBzdHJpbmcgdG8gZm9ybWF0IGNvbnZlcnNpb25zICopXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBmb3JtYXQgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgZm9ybWF0X29mX3N0cmluZ19mbXR0eSBzdHIgZm10dHkgPVxuICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzdHIgaW5cbiAgdHJ5IEZvcm1hdCAodHlwZV9mb3JtYXQgZm10IGZtdHR5LCBzdHIpXG4gIHdpdGggVHlwZV9taXNtYXRjaCAtPlxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiYmFkIGlucHV0OiBmb3JtYXQgdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICVTIGFuZCAlU1wiXG4gICAgICBzdHIgKHN0cmluZ19vZl9mbXR0eSBmbXR0eSlcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhIGZvcm1hdCBjb21wYXRpYmxlIHdpdGggYW4gb3RoZXIgZm9ybWF0LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgZm9ybWF0X29mX3N0cmluZ19mb3JtYXQgc3RyIChGb3JtYXQgKGZtdCcsIHN0cicpKSA9XG4gIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHN0ciBpblxuICB0cnkgRm9ybWF0ICh0eXBlX2Zvcm1hdCBmbXQgKGZtdHR5X29mX2ZtdCBmbXQnKSwgc3RyKVxuICB3aXRoIFR5cGVfbWlzbWF0Y2ggLT5cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImJhZCBpbnB1dDogZm9ybWF0IHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAlUyBhbmQgJVNcIiBzdHIgc3RyJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIFByaW50ZlxuXG50eXBlIHQgPSBleG4gPSAuLlxuXG5sZXQgcHJpbnRlcnMgPSBBdG9taWMubWFrZSBbXVxuXG5sZXQgbG9jZm10ID0gZm9ybWF0X29mX3N0cmluZyBcIkZpbGUgXFxcIiVzXFxcIiwgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZDogJXNcIlxuXG5sZXQgZmllbGQgeCBpID1cbiAgbGV0IGYgPSBPYmouZmllbGQgeCBpIGluXG4gIGlmIG5vdCAoT2JqLmlzX2Jsb2NrIGYpIHRoZW5cbiAgICBzcHJpbnRmIFwiJWRcIiAoT2JqLm1hZ2ljIGYgOiBpbnQpICAgICAgICAgICAoKiBjYW4gYWxzbyBiZSBhIGNoYXIgKilcbiAgZWxzZSBpZiBPYmoudGFnIGYgPSBPYmouc3RyaW5nX3RhZyB0aGVuXG4gICAgc3ByaW50ZiBcIiVTXCIgKE9iai5tYWdpYyBmIDogc3RyaW5nKVxuICBlbHNlIGlmIE9iai50YWcgZiA9IE9iai5kb3VibGVfdGFnIHRoZW5cbiAgICBzdHJpbmdfb2ZfZmxvYXQgKE9iai5tYWdpYyBmIDogZmxvYXQpXG4gIGVsc2VcbiAgICBcIl9cIlxuXG5sZXQgcmVjIG90aGVyX2ZpZWxkcyB4IGkgPVxuICBpZiBpID49IE9iai5zaXplIHggdGhlbiBcIlwiXG4gIGVsc2Ugc3ByaW50ZiBcIiwgJXMlc1wiIChmaWVsZCB4IGkpIChvdGhlcl9maWVsZHMgeCAoaSsxKSlcblxubGV0IGZpZWxkcyB4ID1cbiAgbWF0Y2ggT2JqLnNpemUgeCB3aXRoXG4gIHwgMCAtPiBcIlwiXG4gIHwgMSAtPiBcIlwiXG4gIHwgMiAtPiBzcHJpbnRmIFwiKCVzKVwiIChmaWVsZCB4IDEpXG4gIHwgXyAtPiBzcHJpbnRmIFwiKCVzJXMpXCIgKGZpZWxkIHggMSkgKG90aGVyX2ZpZWxkcyB4IDIpXG5cbmxldCB1c2VfcHJpbnRlcnMgeCA9XG4gIGxldCByZWMgY29udiA9IGZ1bmN0aW9uXG4gICAgfCBoZCA6OiB0bCAtPlxuICAgICAgICAobWF0Y2ggaGQgeCB3aXRoXG4gICAgICAgICB8IE5vbmUgfCBleGNlcHRpb24gXyAtPiBjb252IHRsXG4gICAgICAgICB8IFNvbWUgcyAtPiBTb21lIHMpXG4gICAgfCBbXSAtPiBOb25lIGluXG4gIGNvbnYgKEF0b21pYy5nZXQgcHJpbnRlcnMpXG5cbmxldCB0b19zdHJpbmdfZGVmYXVsdCA9IGZ1bmN0aW9uXG4gIHwgT3V0X29mX21lbW9yeSAtPiBcIk91dCBvZiBtZW1vcnlcIlxuICB8IFN0YWNrX292ZXJmbG93IC0+IFwiU3RhY2sgb3ZlcmZsb3dcIlxuICB8IE1hdGNoX2ZhaWx1cmUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzUpIFwiUGF0dGVybiBtYXRjaGluZyBmYWlsZWRcIlxuICB8IEFzc2VydF9mYWlsdXJlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIkFzc2VydGlvbiBmYWlsZWRcIlxuICB8IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIlVuZGVmaW5lZCByZWN1cnNpdmUgbW9kdWxlXCJcbiAgfCB4IC0+XG4gICAgICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgICAgIGlmIE9iai50YWcgeCA8PiAwIHRoZW5cbiAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIHggMCkgOiBzdHJpbmcpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBjb25zdHJ1Y3RvciA9XG4gICAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIChPYmouZmllbGQgeCAwKSAwKSA6IHN0cmluZykgaW5cbiAgICAgICAgY29uc3RydWN0b3IgXiAoZmllbGRzIHgpXG5cbmxldCB0b19zdHJpbmcgZSA9XG4gIG1hdGNoIHVzZV9wcmludGVycyBlIHdpdGhcbiAgfCBTb21lIHMgLT4gc1xuICB8IE5vbmUgLT4gdG9fc3RyaW5nX2RlZmF1bHQgZVxuXG5sZXQgcHJpbnQgZmN0IGFyZyA9XG4gIHRyeVxuICAgIGZjdCBhcmdcbiAgd2l0aCB4IC0+XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGZsdXNoIHN0ZGVycjtcbiAgICByYWlzZSB4XG5cbmxldCBjYXRjaCBmY3QgYXJnID1cbiAgdHJ5XG4gICAgZmN0IGFyZ1xuICB3aXRoIHggLT5cbiAgICBmbHVzaCBzdGRvdXQ7XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGV4aXQgMlxuXG50eXBlIHJhd19iYWNrdHJhY2Vfc2xvdFxudHlwZSByYXdfYmFja3RyYWNlX2VudHJ5ID0gcHJpdmF0ZSBpbnRcbnR5cGUgcmF3X2JhY2t0cmFjZSA9IHJhd19iYWNrdHJhY2VfZW50cnkgYXJyYXlcblxubGV0IHJhd19iYWNrdHJhY2VfZW50cmllcyBidCA9IGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlOlxuICB1bml0IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlXCJcblxuZXh0ZXJuYWwgcmFpc2Vfd2l0aF9iYWNrdHJhY2U6IGV4biAtPiByYXdfYmFja3RyYWNlIC0+ICdhXG4gID0gXCIlcmFpc2Vfd2l0aF9iYWNrdHJhY2VcIlxuXG50eXBlIGJhY2t0cmFjZV9zbG90ID1cbiAgfCBLbm93bl9sb2NhdGlvbiBvZiB7XG4gICAgICBpc19yYWlzZSAgICA6IGJvb2w7XG4gICAgICBmaWxlbmFtZSAgICA6IHN0cmluZztcbiAgICAgIGxpbmVfbnVtYmVyIDogaW50O1xuICAgICAgc3RhcnRfY2hhciAgOiBpbnQ7XG4gICAgICBlbmRfY2hhciAgICA6IGludDtcbiAgICAgIGlzX2lubGluZSAgIDogYm9vbDtcbiAgICAgIGRlZm5hbWUgICAgIDogc3RyaW5nO1xuICAgIH1cbiAgfCBVbmtub3duX2xvY2F0aW9uIG9mIHtcbiAgICAgIGlzX3JhaXNlIDogYm9vbFxuICAgIH1cblxuKCogdG8gYXZvaWQgd2FybmluZyAqKVxubGV0IF8gPSBbS25vd25fbG9jYXRpb24geyBpc19yYWlzZSA9IGZhbHNlOyBmaWxlbmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyID0gMDsgc3RhcnRfY2hhciA9IDA7IGVuZF9jaGFyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW5saW5lID0gZmFsc2U7IGRlZm5hbWUgPSBcIlwiIH07XG4gICAgICAgICBVbmtub3duX2xvY2F0aW9uIHsgaXNfcmFpc2UgPSBmYWxzZSB9XVxuXG5leHRlcm5hbCBjb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IGJhY2t0cmFjZV9zbG90ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgY29udmVydF9yYXdfYmFja3RyYWNlOlxuICByYXdfYmFja3RyYWNlIC0+IGJhY2t0cmFjZV9zbG90IGFycmF5ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZVwiXG5cbmxldCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UgYnQgPVxuICB0cnkgU29tZSAoY29udmVydF9yYXdfYmFja3RyYWNlIGJ0KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgcG9zIHNsb3QgPVxuICBsZXQgaW5mbyBpc19yYWlzZSA9XG4gICAgaWYgaXNfcmFpc2UgdGhlblxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGF0XCIgZWxzZSBcIlJlLXJhaXNlZCBhdFwiXG4gICAgZWxzZVxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGJ5IHByaW1pdGl2ZSBvcGVyYXRpb24gYXRcIiBlbHNlIFwiQ2FsbGVkIGZyb21cIlxuICBpblxuICBtYXRjaCBzbG90IHdpdGhcbiAgfCBVbmtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIGlmIGwuaXNfcmFpc2UgdGhlblxuICAgICAgICAoKiBjb21waWxlci1pbnNlcnRlZCByZS1yYWlzZSwgc2tpcHBlZCAqKSBOb25lXG4gICAgICBlbHNlXG4gICAgICAgIFNvbWUgKHNwcmludGYgXCIlcyB1bmtub3duIGxvY2F0aW9uXCIgKGluZm8gZmFsc2UpKVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIFNvbWUgKHNwcmludGYgXCIlcyAlcyBpbiBmaWxlIFxcXCIlc1xcXCIlcywgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZFwiXG4gICAgICAgICAgICAgIChpbmZvIGwuaXNfcmFpc2UpIGwuZGVmbmFtZSBsLmZpbGVuYW1lXG4gICAgICAgICAgICAgIChpZiBsLmlzX2lubGluZSB0aGVuIFwiIChpbmxpbmVkKVwiIGVsc2UgXCJcIilcbiAgICAgICAgICAgICAgbC5saW5lX251bWJlciBsLnN0YXJ0X2NoYXIgbC5lbmRfY2hhcilcblxubGV0IHByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2Ugb3V0Y2hhbiBiYWNrdHJhY2UgPVxuICBtYXRjaCBiYWNrdHJhY2Ugd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgIGZwcmludGYgb3V0Y2hhblxuICAgICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBhIC0gMSBkb1xuICAgICAgICBtYXRjaCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgaSBhLihpKSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIHN0ciAtPiBmcHJpbnRmIG91dGNoYW4gXCIlc1xcblwiIHN0clxuICAgICAgZG9uZVxuXG5sZXQgcHJpbnRfcmF3X2JhY2t0cmFjZSBvdXRjaGFuIHJhd19iYWNrdHJhY2UgPVxuICBwcmludF9leGNlcHRpb25fYmFja3RyYWNlIG91dGNoYW4gKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDogcHJpbnRzIHRoZSBnbG9iYWwgY3VycmVudCBiYWNrdHJhY2UgKilcbmxldCBwcmludF9iYWNrdHJhY2Ugb3V0Y2hhbiA9XG4gIHByaW50X3Jhd19iYWNrdHJhY2Ugb3V0Y2hhbiAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmxldCBiYWNrdHJhY2VfdG9fc3RyaW5nIGJhY2t0cmFjZSA9XG4gIG1hdGNoIGJhY2t0cmFjZSB3aXRoXG4gIHwgTm9uZSAtPlxuICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDEwMjQgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggYSAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZm9ybWF0X2JhY2t0cmFjZV9zbG90IGkgYS4oaSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBzdHIgLT4gYnByaW50ZiBiIFwiJXNcXG5cIiBzdHJcbiAgICAgIGRvbmU7XG4gICAgICBCdWZmZXIuY29udGVudHMgYlxuXG5sZXQgcmF3X2JhY2t0cmFjZV90b19zdHJpbmcgcmF3X2JhY2t0cmFjZSA9XG4gIGJhY2t0cmFjZV90b19zdHJpbmcgKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2UgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19yYWlzZVxuICB8IFVua25vd25fbG9jYXRpb24gbCAtPiBsLmlzX3JhaXNlXG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmUgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19pbmxpbmVcbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gZmFsc2VcblxudHlwZSBsb2NhdGlvbiA9IHtcbiAgZmlsZW5hbWUgOiBzdHJpbmc7XG4gIGxpbmVfbnVtYmVyIDogaW50O1xuICBzdGFydF9jaGFyIDogaW50O1xuICBlbmRfY2hhciA6IGludDtcbn1cblxubGV0IGJhY2t0cmFjZV9zbG90X2xvY2F0aW9uID0gZnVuY3Rpb25cbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gTm9uZVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICBTb21lIHtcbiAgICAgIGZpbGVuYW1lICAgID0gbC5maWxlbmFtZTtcbiAgICAgIGxpbmVfbnVtYmVyID0gbC5saW5lX251bWJlcjtcbiAgICAgIHN0YXJ0X2NoYXIgID0gbC5zdGFydF9jaGFyO1xuICAgICAgZW5kX2NoYXIgICAgPSBsLmVuZF9jaGFyO1xuICAgIH1cblxubGV0IGJhY2t0cmFjZV9zbG90X2RlZm5hbWUgPSBmdW5jdGlvblxuICB8IFVua25vd25fbG9jYXRpb24gX1xuICB8IEtub3duX2xvY2F0aW9uIHsgZGVmbmFtZSA9IFwiXCIgfSAtPiBOb25lXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBTb21lIGwuZGVmbmFtZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzIHJhd19iYWNrdHJhY2UgPVxuICAoKiBUaGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGd1YXJhbnRlZXMgdGhhdCBTb21lIGlzXG4gICAgIHJldHVybmVkIG9ubHkgaWYgYSBwYXJ0IG9mIHRoZSB0cmFjZSBpcyB1c2FibGUuIFRoaXMgZ2l2ZXMgdXNcbiAgICAgYSBiaXQgbW9yZSB3b3JrIHRoYW4ganVzdCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UsIGJ1dCBpdCBtYWtlcyB0aGVcbiAgICAgQVBJIG1vcmUgdXNlci1mcmllbmRseSAtLSBvdGhlcndpc2UgbW9zdCB1c2VycyB3b3VsZCBoYXZlIHRvXG4gICAgIHJlaW1wbGVtZW50IHRoZSBcIlByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBzb3JyeVwiIGxvZ2ljXG4gICAgIHRoZW1zZWx2ZXMuICopXG4gIG1hdGNoIGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBiYWNrdHJhY2UgLT5cbiAgICAgIGxldCB1c2FibGVfc2xvdCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IGZhbHNlXG4gICAgICAgIHwgS25vd25fbG9jYXRpb24gXyAtPiB0cnVlIGluXG4gICAgICBsZXQgcmVjIGV4aXN0c191c2FibGUgPSBmdW5jdGlvblxuICAgICAgICB8ICgtMSkgLT4gZmFsc2VcbiAgICAgICAgfCBpIC0+IHVzYWJsZV9zbG90IGJhY2t0cmFjZS4oaSkgfHwgZXhpc3RzX3VzYWJsZSAoaSAtIDEpIGluXG4gICAgICBpZiBleGlzdHNfdXNhYmxlIChBcnJheS5sZW5ndGggYmFja3RyYWNlIC0gMSlcbiAgICAgIHRoZW4gU29tZSBiYWNrdHJhY2VcbiAgICAgIGVsc2UgTm9uZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSBlbnRyeSA9XG4gIGJhY2t0cmFjZV9zbG90cyBbfCBlbnRyeSB8XVxuXG5tb2R1bGUgU2xvdCA9IHN0cnVjdFxuICB0eXBlIHQgPSBiYWNrdHJhY2Vfc2xvdFxuICBsZXQgZm9ybWF0ID0gZm9ybWF0X2JhY2t0cmFjZV9zbG90XG4gIGxldCBpc19yYWlzZSA9IGJhY2t0cmFjZV9zbG90X2lzX3JhaXNlXG4gIGxldCBpc19pbmxpbmUgPSBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmVcbiAgbGV0IGxvY2F0aW9uID0gYmFja3RyYWNlX3Nsb3RfbG9jYXRpb25cbiAgbGV0IG5hbWUgPSBiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lXG5lbmRcblxubGV0IHJhd19iYWNrdHJhY2VfbGVuZ3RoIGJ0ID0gQXJyYXkubGVuZ3RoIGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlX3Nsb3QgOlxuICByYXdfYmFja3RyYWNlIC0+IGludCAtPiByYXdfYmFja3RyYWNlX3Nsb3QgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IHJhd19iYWNrdHJhY2Vfc2xvdCBvcHRpb25cbiAgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3RcIlxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDpcbiAgIHJldHVybnMgdGhlICpzdHJpbmcqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdsb2JhbCBjdXJyZW50IGJhY2t0cmFjZSAqKVxubGV0IGdldF9iYWNrdHJhY2UgKCkgPSByYXdfYmFja3RyYWNlX3RvX3N0cmluZyAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmV4dGVybmFsIHJlY29yZF9iYWNrdHJhY2U6IGJvb2wgLT4gdW5pdCA9IFwiY2FtbF9yZWNvcmRfYmFja3RyYWNlXCJcbmV4dGVybmFsIGJhY2t0cmFjZV9zdGF0dXM6IHVuaXQgLT4gYm9vbCA9IFwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzXCJcblxubGV0IHJlYyByZWdpc3Rlcl9wcmludGVyIGZuID1cbiAgbGV0IG9sZF9wcmludGVycyA9IEF0b21pYy5nZXQgcHJpbnRlcnMgaW5cbiAgbGV0IG5ld19wcmludGVycyA9IGZuIDo6IG9sZF9wcmludGVycyBpblxuICBsZXQgc3VjY2VzcyA9IEF0b21pYy5jb21wYXJlX2FuZF9zZXQgcHJpbnRlcnMgb2xkX3ByaW50ZXJzIG5ld19wcmludGVycyBpblxuICBpZiBub3Qgc3VjY2VzcyB0aGVuIHJlZ2lzdGVyX3ByaW50ZXIgZm5cblxuZXh0ZXJuYWwgZ2V0X2NhbGxzdGFjazogaW50IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrXCJcblxubGV0IGV4bl9zbG90IHggPVxuICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgaWYgT2JqLnRhZyB4ID0gMCB0aGVuIE9iai5maWVsZCB4IDAgZWxzZSB4XG5cbmxldCBleG5fc2xvdF9pZCB4ID1cbiAgbGV0IHNsb3QgPSBleG5fc2xvdCB4IGluXG4gIChPYmoub2JqIChPYmouZmllbGQgc2xvdCAxKSA6IGludClcblxubGV0IGV4bl9zbG90X25hbWUgeCA9XG4gIGxldCBzbG90ID0gZXhuX3Nsb3QgeCBpblxuICAoT2JqLm9iaiAoT2JqLmZpZWxkIHNsb3QgMCkgOiBzdHJpbmcpXG5cbmV4dGVybmFsIGdldF9kZWJ1Z19pbmZvX3N0YXR1cyA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzXCJcblxuKCogRGVzY3JpcHRpb25zIGZvciBlcnJvcnMgaW4gc3RhcnR1cC5oLiBTZWUgYWxzbyBiYWNrdHJhY2UuYyAqKVxubGV0IGVycm9ycyA9IFt8IFwiXCI7XG4gICgqIEZJTEVfTk9UX0ZPVU5EICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBub3QgZm91bmQpXCI7XG4gICgqIEJBRF9CWVRFQ09ERSAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgYXBwZWFycyB0byBiZSBjb3JydXB0KVwiO1xuICAoKiBXUk9OR19NQUdJQyAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgaGFzIHdyb25nIG1hZ2ljIG51bWJlcilcIjtcbiAgKCogTk9fRkRTICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBjYW5ub3QgYmUgb3BlbmVkO1xcbiBcXFxuICAgICAgLS0gdG9vIG1hbnkgb3BlbiBmaWxlcy4gVHJ5IHJ1bm5pbmcgd2l0aCBPQ0FNTFJVTlBBUkFNPWI9MilcIlxufF1cblxubGV0IGRlZmF1bHRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZXhuIHJhd19iYWNrdHJhY2UgPVxuICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZTtcbiAgbGV0IHN0YXR1cyA9IGdldF9kZWJ1Z19pbmZvX3N0YXR1cyAoKSBpblxuICBpZiBzdGF0dXMgPCAwIHRoZW5cbiAgICBwcmVycl9lbmRsaW5lIGVycm9ycy4oYWJzIHN0YXR1cyk7XG4gIGZsdXNoIHN0ZGVyclxuXG5sZXQgdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgPSByZWYgZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlclxuXG5sZXQgc2V0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGZuID0gdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgOj0gZm5cblxubGV0IGVtcHR5X2JhY2t0cmFjZSA6IHJhd19iYWNrdHJhY2UgPSBbfCB8XVxuXG5sZXQgdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpID1cbiAgdHJ5XG4gICAgZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgd2l0aCBfICgqIE91dF9vZl9tZW1vcnk/ICopIC0+XG4gICAgZW1wdHlfYmFja3RyYWNlXG5cbmxldCBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uJyBleG4gZGVidWdnZXJfaW5fdXNlID1cbiAgdHJ5XG4gICAgKCogR2V0IHRoZSBiYWNrdHJhY2Ugbm93LCBpbiBjYXNlIG9uZSBvZiB0aGUgW2F0X2V4aXRdIGZ1bmN0aW9uXG4gICAgICAgZGVzdHJveXMgaXQuICopXG4gICAgbGV0IHJhd19iYWNrdHJhY2UgPVxuICAgICAgaWYgZGVidWdnZXJfaW5fdXNlICgqIFNhbWUgdGVzdCBhcyBpbiBbcnVudGltZS9wcmludGV4Yy5jXSAqKSB0aGVuXG4gICAgICAgIGVtcHR5X2JhY2t0cmFjZVxuICAgICAgZWxzZVxuICAgICAgICB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgICBpblxuICAgICh0cnkgU3RkbGliLmRvX2F0X2V4aXQgKCkgd2l0aCBfIC0+ICgpKTtcbiAgICB0cnlcbiAgICAgICF1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBleG4gcmF3X2JhY2t0cmFjZVxuICAgIHdpdGggZXhuJyAtPlxuICAgICAgbGV0IHJhd19iYWNrdHJhY2UnID0gdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgICAgIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2U7XG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3IgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXI6IGV4Y2VwdGlvbiAlc1xcblwiXG4gICAgICAgICh0b19zdHJpbmcgZXhuJyk7XG4gICAgICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlJztcbiAgICAgIGZsdXNoIHN0ZGVyclxuICB3aXRoXG4gICAgfCBPdXRfb2ZfbWVtb3J5IC0+XG4gICAgICAgIHByZXJyX2VuZGxpbmVcbiAgICAgICAgICBcIkZhdGFsIGVycm9yOiBvdXQgb2YgbWVtb3J5IGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyXCJcblxuKCogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgW2NhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXSBpblxuICAgW3J1bnRpbWUvcHJpbnRleGMuY10gd2hpY2ggZXhwZWN0cyBubyBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxubGV0IGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24gZXhuIGRlYnVnZ2VyX2luX3VzZSA9XG4gIHRyeVxuICAgIGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24nIGV4biBkZWJ1Z2dlcl9pbl91c2VcbiAgd2l0aCBfIC0+XG4gICAgKCogVGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvIGF0IHRoaXMgcG9pbnQgKilcbiAgICAoKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0ICgpID1cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQcmludGV4Yy5oYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXCJcbiAgICBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgWGF2aWVyIExlcm95IGFuZCBEYW1pZW4gRG9saWdleiwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmxldCBnZW5lcmljX3F1b3RlIHF1b3RlcXVvdGUgcyA9XG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAobCArIDIwKSBpblxuICBCdWZmZXIuYWRkX2NoYXIgYiAnXFwnJztcbiAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgaWYgcy5baV0gPSAnXFwnJ1xuICAgIHRoZW4gQnVmZmVyLmFkZF9zdHJpbmcgYiBxdW90ZXF1b3RlXG4gICAgZWxzZSBCdWZmZXIuYWRkX2NoYXIgYiAgcy5baV1cbiAgZG9uZTtcbiAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcJyc7XG4gIEJ1ZmZlci5jb250ZW50cyBiXG5cbigqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgT3BlbiBHcm91cCBzcGVjaWZpY2F0aW9uIGZvdW5kIGhlcmU6XG4gIFtbMV1dIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9iYXNlbmFtZS5odG1sXG4gIEluIHN0ZXAgMSBvZiBbWzFdXSwgd2UgY2hvb3NlIHRvIHJldHVybiBcIi5cIiBmb3IgZW1wdHkgaW5wdXQuXG4gICAgKGZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgdmVyc2lvbnMgb2YgT0NhbWwpXG4gIEluIHN0ZXAgMiwgd2UgY2hvb3NlIHRvIHByb2Nlc3MgXCIvL1wiIG5vcm1hbGx5LlxuICBTdGVwIDYgaXMgbm90IGltcGxlbWVudGVkOiB3ZSBjb25zaWRlciB0aGF0IHRoZSBbc3VmZml4XSBvcGVyYW5kIGlzXG4gICAgYWx3YXlzIGFic2VudC4gIFN1ZmZpeGVzIGFyZSBoYW5kbGVkIGJ5IFtjaG9wX3N1ZmZpeF0gYW5kIFtjaG9wX2V4dGVuc2lvbl0uXG4qKVxubGV0IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIG5hbWUgPVxuICBsZXQgcmVjIGZpbmRfZW5kIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBmaW5kX2VuZCAobiAtIDEpXG4gICAgZWxzZSBmaW5kX2JlZyBuIChuICsgMSlcbiAgYW5kIGZpbmRfYmVnIG4gcCA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCBwXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIFN0cmluZy5zdWIgbmFtZSAobiArIDEpIChwIC0gbiAtIDEpXG4gICAgZWxzZSBmaW5kX2JlZyAobiAtIDEpIHBcbiAgaW5cbiAgaWYgbmFtZSA9IFwiXCJcbiAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gIGVsc2UgZmluZF9lbmQgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbigqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgT3BlbiBHcm91cCBzcGVjaWZpY2F0aW9uIGZvdW5kIGhlcmU6XG4gIFtbMl1dIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9kaXJuYW1lLmh0bWxcbiAgSW4gc3RlcCA2IG9mIFtbMl1dLCB3ZSBjaG9vc2UgdG8gcHJvY2VzcyBcIi8vXCIgbm9ybWFsbHkuXG4qKVxubGV0IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgbmFtZSA9XG4gIGxldCByZWMgdHJhaWxpbmdfc2VwIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiB0cmFpbGluZ19zZXAgKG4gLSAxKVxuICAgIGVsc2UgYmFzZSBuXG4gIGFuZCBiYXNlIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBpbnRlcm1lZGlhdGVfc2VwIG5cbiAgICBlbHNlIGJhc2UgKG4gLSAxKVxuICBhbmQgaW50ZXJtZWRpYXRlX3NlcCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gaW50ZXJtZWRpYXRlX3NlcCAobiAtIDEpXG4gICAgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAobiArIDEpXG4gIGluXG4gIGlmIG5hbWUgPSBcIlwiXG4gIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICBlbHNlIHRyYWlsaW5nX3NlcCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxubW9kdWxlIHR5cGUgU1lTREVQUyA9IHNpZ1xuICB2YWwgbnVsbCA6IHN0cmluZ1xuICB2YWwgY3VycmVudF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgcGFyZW50X2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBkaXJfc2VwIDogc3RyaW5nXG4gIHZhbCBpc19kaXJfc2VwIDogc3RyaW5nIC0+IGludCAtPiBib29sXG4gIHZhbCBpc19yZWxhdGl2ZSA6IHN0cmluZyAtPiBib29sXG4gIHZhbCBpc19pbXBsaWNpdCA6IHN0cmluZyAtPiBib29sXG4gIHZhbCBjaGVja19zdWZmaXggOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGJvb2xcbiAgdmFsIGNob3Bfc3VmZml4X29wdCA6IHN1ZmZpeDpzdHJpbmcgLT4gc3RyaW5nIC0+IHN0cmluZyBvcHRpb25cbiAgdmFsIHRlbXBfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIHF1b3RlIDogc3RyaW5nIC0+IHN0cmluZ1xuICB2YWwgcXVvdGVfY29tbWFuZCA6XG4gICAgc3RyaW5nIC0+ID9zdGRpbjogc3RyaW5nIC0+ID9zdGRvdXQ6IHN0cmluZyAtPiA/c3RkZXJyOiBzdHJpbmdcbiAgICAgICAgICAgLT4gc3RyaW5nIGxpc3QgLT4gc3RyaW5nXG4gIHZhbCBiYXNlbmFtZSA6IHN0cmluZyAtPiBzdHJpbmdcbiAgdmFsIGRpcm5hbWUgOiBzdHJpbmcgLT4gc3RyaW5nXG5lbmRcblxubW9kdWxlIFVuaXggOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCIvZGV2L251bGxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIi9cIlxuICBsZXQgaXNfZGlyX3NlcCBzIGkgPSBzLltpXSA9ICcvJ1xuICBsZXQgaXNfcmVsYXRpdmUgbiA9IFN0cmluZy5sZW5ndGggbiA8IDEgfHwgbi5bMF0gPD4gJy8nXG4gIGxldCBpc19pbXBsaWNpdCBuID1cbiAgICBpc19yZWxhdGl2ZSBuXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi4vXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDMgfHwgU3RyaW5nLnN1YiBuIDAgMyA8PiBcIi4uL1wiKVxuICBsZXQgY2hlY2tfc3VmZml4IG5hbWUgc3VmZiA9XG4gICAgU3RyaW5nLmVuZHNfd2l0aCB+c3VmZml4OnN1ZmYgbmFtZVxuXG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgfnN1ZmZpeCBmaWxlbmFtZSA9XG4gICAgbGV0IGxlbl9zID0gU3RyaW5nLmxlbmd0aCBzdWZmaXggYW5kIGxlbl9mID0gU3RyaW5nLmxlbmd0aCBmaWxlbmFtZSBpblxuICAgIGlmIGxlbl9mID49IGxlbl9zIHRoZW5cbiAgICAgIGxldCByID0gU3RyaW5nLnN1YiBmaWxlbmFtZSAobGVuX2YgLSBsZW5fcykgbGVuX3MgaW5cbiAgICAgIGlmIHIgPSBzdWZmaXggdGhlblxuICAgICAgICBTb21lIChTdHJpbmcuc3ViIGZpbGVuYW1lIDAgKGxlbl9mIC0gbGVuX3MpKVxuICAgICAgZWxzZVxuICAgICAgICBOb25lXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG4gIGxldCB0ZW1wX2Rpcl9uYW1lID1cbiAgICB0cnkgU3lzLmdldGVudiBcIlRNUERJUlwiIHdpdGggTm90X2ZvdW5kIC0+IFwiL3RtcFwiXG4gIGxldCBxdW90ZSA9IGdlbmVyaWNfcXVvdGUgXCInXFxcXCcnXCJcbiAgbGV0IHF1b3RlX2NvbW1hbmQgY21kID9zdGRpbiA/c3Rkb3V0ID9zdGRlcnIgYXJncyA9XG4gICAgU3RyaW5nLmNvbmNhdCBcIiBcIiAoTGlzdC5tYXAgcXVvdGUgKGNtZCA6OiBhcmdzKSlcbiAgICBeIChtYXRjaCBzdGRpbiAgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPFwiIF4gcXVvdGUgZilcbiAgICBeIChtYXRjaCBzdGRvdXQgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPlwiIF4gcXVvdGUgZilcbiAgICBeIChtYXRjaCBzdGRlcnIgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gaWYgc3RkZXJyID0gc3Rkb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIFwiIDI+JjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBcIiAyPlwiIF4gcXVvdGUgZilcbiAgbGV0IGJhc2VuYW1lID0gZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbiAgbGV0IGRpcm5hbWUgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG5lbmRcblxubW9kdWxlIFdpbjMyIDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiTlVMXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCJcXFxcXCJcbiAgbGV0IGlzX2Rpcl9zZXAgcyBpID0gbGV0IGMgPSBzLltpXSBpbiBjID0gJy8nIHx8IGMgPSAnXFxcXCcgfHwgYyA9ICc6J1xuICBsZXQgaXNfcmVsYXRpdmUgbiA9XG4gICAgKFN0cmluZy5sZW5ndGggbiA8IDEgfHwgbi5bMF0gPD4gJy8nKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICdcXFxcJylcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMiB8fCBuLlsxXSA8PiAnOicpXG4gIGxldCBpc19pbXBsaWNpdCBuID1cbiAgICBpc19yZWxhdGl2ZSBuXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi4vXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi5cXFxcXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDMgfHwgU3RyaW5nLnN1YiBuIDAgMyA8PiBcIi4uL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLlxcXFxcIilcbiAgbGV0IGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICAgU3RyaW5nLmxlbmd0aCBuYW1lID49IFN0cmluZy5sZW5ndGggc3VmZiAmJlxuICAgKGxldCBzID0gU3RyaW5nLnN1YiBuYW1lIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBTdHJpbmcubGVuZ3RoIHN1ZmYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZy5sZW5ndGggc3VmZikgaW5cbiAgICBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHMgPSBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHN1ZmYpXG5cbiAgbGV0IGNob3Bfc3VmZml4X29wdCB+c3VmZml4IGZpbGVuYW1lID1cbiAgICBsZXQgbGVuX3MgPSBTdHJpbmcubGVuZ3RoIHN1ZmZpeCBhbmQgbGVuX2YgPSBTdHJpbmcubGVuZ3RoIGZpbGVuYW1lIGluXG4gICAgaWYgbGVuX2YgPj0gbGVuX3MgdGhlblxuICAgICAgbGV0IHIgPSBTdHJpbmcuc3ViIGZpbGVuYW1lIChsZW5fZiAtIGxlbl9zKSBsZW5fcyBpblxuICAgICAgaWYgU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSByID0gU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzdWZmaXggdGhlblxuICAgICAgICBTb21lIChTdHJpbmcuc3ViIGZpbGVuYW1lIDAgKGxlbl9mIC0gbGVuX3MpKVxuICAgICAgZWxzZVxuICAgICAgICBOb25lXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5cbiAgbGV0IHRlbXBfZGlyX25hbWUgPVxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiVEVNUFwiIHdpdGggTm90X2ZvdW5kIC0+IFwiLlwiXG4gIGxldCBxdW90ZSBzID1cbiAgICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAobCArIDIwKSBpblxuICAgIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJztcbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbCB0aGVuIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJyBlbHNlXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICB8ICdcXFwiJyAtPiBsb29wX2JzIDAgaTtcbiAgICAgIHwgJ1xcXFwnIC0+IGxvb3BfYnMgMCBpO1xuICAgICAgfCBjICAgIC0+IEJ1ZmZlci5hZGRfY2hhciBiIGM7IGxvb3AgKGkrMSk7XG4gICAgYW5kIGxvb3BfYnMgbiBpID1cbiAgICAgIGlmIGkgPSBsIHRoZW4gYmVnaW5cbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXCInO1xuICAgICAgICBhZGRfYnMgbjtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgfCAnXFxcIicgLT4gYWRkX2JzICgyKm4rMSk7IEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJzsgbG9vcCAoaSsxKTtcbiAgICAgICAgfCAnXFxcXCcgLT4gbG9vcF9icyAobisxKSAoaSsxKTtcbiAgICAgICAgfCBfICAgIC0+IGFkZF9icyBuOyBsb29wIGlcbiAgICAgIGVuZFxuICAgIGFuZCBhZGRfYnMgbiA9IGZvciBfaiA9IDEgdG8gbiBkbyBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcXCc7IGRvbmVcbiAgICBpblxuICAgIGxvb3AgMDtcbiAgICBCdWZmZXIuY29udGVudHMgYlxuKCpcblF1b3RpbmcgY29tbWFuZHMgZm9yIGV4ZWN1dGlvbiBieSBjbWQuZXhlIGlzIGRpZmZpY3VsdC5cbjEtIEVhY2ggYXJndW1lbnQgaXMgZmlyc3QgcXVvdGVkIHVzaW5nIHRoZSBcInF1b3RlXCIgZnVuY3Rpb24gYWJvdmUsIHRvXG4gICBwcm90ZWN0IGl0IGFnYWluc3QgdGhlIHByb2Nlc3NpbmcgcGVyZm9ybWVkIGJ5IHRoZSBDIHJ1bnRpbWUgc3lzdGVtLFxuICAgdGhlbiBjbWQuZXhlJ3Mgc3BlY2lhbCBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkIHdpdGggJ14nLCB1c2luZ1xuICAgdGhlIFwicXVvdGVfY21kXCIgZnVuY3Rpb24gYmVsb3cuICBGb3IgbW9yZSBkZXRhaWxzLCBzZWVcbiAgIGh0dHBzOi8vYmxvZ3MubXNkbi5taWNyb3NvZnQuY29tL3R3aXN0eWxpdHRsZXBhc3NhZ2VzYWxsYWxpa2UvMjAxMS8wNC8yM1xuMi0gVGhlIGNvbW1hbmQgYW5kIHRoZSByZWRpcmVjdGlvbiBmaWxlcywgaWYgYW55LCBtdXN0IGJlIGRvdWJsZS1xdW90ZWRcbiAgIGluIGNhc2UgdGhleSBjb250YWluIHNwYWNlcy4gIFRoaXMgcXVvdGluZyBpcyBpbnRlcnByZXRlZCBieSBjbWQuZXhlLFxuICAgbm90IGJ5IHRoZSBDIHJ1bnRpbWUgc3lzdGVtLCBoZW5jZSB0aGUgXCJxdW90ZVwiIGZ1bmN0aW9uIGFib3ZlXG4gICBjYW5ub3QgYmUgdXNlZC4gIFRoZSB0d28gY2hhcmFjdGVycyB3ZSBkb24ndCBrbm93IGhvdyB0byBxdW90ZVxuICAgaW5zaWRlIGEgZG91YmxlLXF1b3RlZCBjbWQuZXhlIHN0cmluZyBhcmUgZG91YmxlLXF1b3RlIGFuZCBwZXJjZW50LlxuICAgV2UganVzdCBmYWlsIGlmIHRoZSBjb21tYW5kIG5hbWUgb3IgdGhlIHJlZGlyZWN0aW9uIGZpbGUgbmFtZXNcbiAgIGNvbnRhaW4gYSBkb3VibGUgcXVvdGUgKG5vdCBhbGxvd2VkIGluIFdpbmRvd3MgZmlsZSBuYW1lcywgYW55d2F5KVxuICAgb3IgYSBwZXJjZW50LiAgU2VlIGZ1bmN0aW9uIFwicXVvdGVfY21kX2ZpbGVuYW1lXCIgYmVsb3cuXG4zLSBUaGUgd2hvbGUgc3RyaW5nIHBhc3NlZCB0byBTeXMuY29tbWFuZCBpcyB0aGVuIGVuY2xvc2VkIGluIGRvdWJsZVxuICAgcXVvdGVzLCB3aGljaCBhcmUgaW1tZWRpYXRlbHkgc3RyaXBwZWQgYnkgY21kLmV4ZS4gIE90aGVyd2lzZSxcbiAgIHNvbWUgb2YgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSBzdGVwIDIgYWJvdmUgY2FuIGJlIG1pc3BhcnNlZC5cbiAgIFNlZSBlLmcuIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS85OTY1MTQxXG4qKVxuICBsZXQgcXVvdGVfY21kIHMgPVxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAoU3RyaW5nLmxlbmd0aCBzICsgMjApIGluXG4gICAgU3RyaW5nLml0ZXJcbiAgICAgIChmdW4gYyAtPlxuICAgICAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgfCAnKCcgfCAnKScgfCAnIScgfCAnXicgfCAnJScgfCAnXFxcIicgfCAnPCcgfCAnPicgfCAnJicgfCAnfCcgLT5cbiAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiICdeJzsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiIGMpXG4gICAgICBzO1xuICAgIEJ1ZmZlci5jb250ZW50cyBiXG4gIGxldCBxdW90ZV9jbWRfZmlsZW5hbWUgZiA9XG4gICAgaWYgU3RyaW5nLmNvbnRhaW5zIGYgJ1xcXCInIHx8IFN0cmluZy5jb250YWlucyBmICclJyB0aGVuXG4gICAgICBmYWlsd2l0aCAoXCJGaWxlbmFtZS5xdW90ZV9jb21tYW5kOiBiYWQgZmlsZSBuYW1lIFwiIF4gZilcbiAgICBlbHNlIGlmIFN0cmluZy5jb250YWlucyBmICcgJyB0aGVuXG4gICAgICBcIlxcXCJcIiBeIGYgXiBcIlxcXCJcIlxuICAgIGVsc2VcbiAgICAgIGZcbiAgKCogUmVkaXJlY3Rpb25zIGluIGNtZC5leGU6IHNlZSBodHRwczovL3NzNjQuY29tL250L3N5bnRheC1yZWRpcmVjdGlvbi5odG1sXG4gICAgIGFuZCBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9wcmV2aW91cy12ZXJzaW9ucy93aW5kb3dzL2l0LXByby93aW5kb3dzLXhwL2JiNDkwOTgyKHY9dGVjaG5ldC4xMClcbiAgKilcbiAgbGV0IHF1b3RlX2NvbW1hbmQgY21kID9zdGRpbiA/c3Rkb3V0ID9zdGRlcnIgYXJncyA9XG4gICAgU3RyaW5nLmNvbmNhdCBcIlwiIFtcbiAgICAgIFwiXFxcIlwiO1xuICAgICAgcXVvdGVfY21kX2ZpbGVuYW1lIGNtZDtcbiAgICAgIFwiIFwiO1xuICAgICAgcXVvdGVfY21kIChTdHJpbmcuY29uY2F0IFwiIFwiIChMaXN0Lm1hcCBxdW90ZSBhcmdzKSk7XG4gICAgICAobWF0Y2ggc3RkaW4gIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiIDxcIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIChtYXRjaCBzdGRvdXQgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPlwiIF4gcXVvdGVfY21kX2ZpbGVuYW1lIGYpO1xuICAgICAgKG1hdGNoIHN0ZGVyciB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHN0ZGVyciA9IHN0ZG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gXCIgMj4mMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBcIiAyPlwiIF4gcXVvdGVfY21kX2ZpbGVuYW1lIGYpO1xuICAgICAgXCJcXFwiXCJcbiAgICBdXG4gIGxldCBoYXNfZHJpdmUgcyA9XG4gICAgbGV0IGlzX2xldHRlciA9IGZ1bmN0aW9uXG4gICAgICB8ICdBJyAuLiAnWicgfCAnYScgLi4gJ3onIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuICAgIGluXG4gICAgU3RyaW5nLmxlbmd0aCBzID49IDIgJiYgaXNfbGV0dGVyIHMuWzBdICYmIHMuWzFdID0gJzonXG4gIGxldCBkcml2ZV9hbmRfcGF0aCBzID1cbiAgICBpZiBoYXNfZHJpdmUgc1xuICAgIHRoZW4gKFN0cmluZy5zdWIgcyAwIDIsIFN0cmluZy5zdWIgcyAyIChTdHJpbmcubGVuZ3RoIHMgLSAyKSlcbiAgICBlbHNlIChcIlwiLCBzKVxuICBsZXQgZGlybmFtZSBzID1cbiAgICBsZXQgKGRyaXZlLCBwYXRoKSA9IGRyaXZlX2FuZF9wYXRoIHMgaW5cbiAgICBsZXQgZGlyID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBwYXRoIGluXG4gICAgZHJpdmUgXiBkaXJcbiAgbGV0IGJhc2VuYW1lIHMgPVxuICAgIGxldCAoX2RyaXZlLCBwYXRoKSA9IGRyaXZlX2FuZF9wYXRoIHMgaW5cbiAgICBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBwYXRoXG5lbmRcblxubW9kdWxlIEN5Z3dpbiA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIi9kZXYvbnVsbFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiL1wiXG4gIGxldCBpc19kaXJfc2VwID0gV2luMzIuaXNfZGlyX3NlcFxuICBsZXQgaXNfcmVsYXRpdmUgPSBXaW4zMi5pc19yZWxhdGl2ZVxuICBsZXQgaXNfaW1wbGljaXQgPSBXaW4zMi5pc19pbXBsaWNpdFxuICBsZXQgY2hlY2tfc3VmZml4ID0gV2luMzIuY2hlY2tfc3VmZml4XG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgPSBXaW4zMi5jaG9wX3N1ZmZpeF9vcHRcbiAgbGV0IHRlbXBfZGlyX25hbWUgPSBVbml4LnRlbXBfZGlyX25hbWVcbiAgbGV0IHF1b3RlID0gVW5peC5xdW90ZVxuICBsZXQgcXVvdGVfY29tbWFuZCA9IFVuaXgucXVvdGVfY29tbWFuZFxuICBsZXQgYmFzZW5hbWUgPSBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuICBsZXQgZGlybmFtZSA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbmVuZFxuXG5tb2R1bGUgU3lzZGVwcyA9XG4gICh2YWwgKG1hdGNoIFN5cy5vc190eXBlIHdpdGhcbiAgICAgICB8IFwiV2luMzJcIiAtPiAobW9kdWxlIFdpbjMyOiBTWVNERVBTKVxuICAgICAgIHwgXCJDeWd3aW5cIiAtPiAobW9kdWxlIEN5Z3dpbjogU1lTREVQUylcbiAgICAgICB8IF8gLT4gKG1vZHVsZSBVbml4OiBTWVNERVBTKSkpXG5cbmluY2x1ZGUgU3lzZGVwc1xuXG5sZXQgY29uY2F0IGRpcm5hbWUgZmlsZW5hbWUgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggZGlybmFtZSBpblxuICBpZiBsID0gMCB8fCBpc19kaXJfc2VwIGRpcm5hbWUgKGwtMSlcbiAgdGhlbiBkaXJuYW1lIF4gZmlsZW5hbWVcbiAgZWxzZSBkaXJuYW1lIF4gZGlyX3NlcCBeIGZpbGVuYW1lXG5cbmxldCBjaG9wX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICBpZiBjaGVja19zdWZmaXggbmFtZSBzdWZmXG4gIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIFN0cmluZy5sZW5ndGggc3VmZilcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkZpbGVuYW1lLmNob3Bfc3VmZml4XCJcblxubGV0IGV4dGVuc2lvbl9sZW4gbmFtZSA9XG4gIGxldCByZWMgY2hlY2sgaTAgaSA9XG4gICAgaWYgaSA8IDAgfHwgaXNfZGlyX3NlcCBuYW1lIGkgdGhlbiAwXG4gICAgZWxzZSBpZiBuYW1lLltpXSA9ICcuJyB0aGVuIGNoZWNrIGkwIChpIC0gMSlcbiAgICBlbHNlIFN0cmluZy5sZW5ndGggbmFtZSAtIGkwXG4gIGluXG4gIGxldCByZWMgc2VhcmNoX2RvdCBpID1cbiAgICBpZiBpIDwgMCB8fCBpc19kaXJfc2VwIG5hbWUgaSB0aGVuIDBcbiAgICBlbHNlIGlmIG5hbWUuW2ldID0gJy4nIHRoZW4gY2hlY2sgaSAoaSAtIDEpXG4gICAgZWxzZSBzZWFyY2hfZG90IChpIC0gMSlcbiAgaW5cbiAgc2VhcmNoX2RvdCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxubGV0IGV4dGVuc2lvbiBuYW1lID1cbiAgbGV0IGwgPSBleHRlbnNpb25fbGVuIG5hbWUgaW5cbiAgaWYgbCA9IDAgdGhlbiBcIlwiIGVsc2UgU3RyaW5nLnN1YiBuYW1lIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBsKSBsXG5cbmxldCBjaG9wX2V4dGVuc2lvbiBuYW1lID1cbiAgbGV0IGwgPSBleHRlbnNpb25fbGVuIG5hbWUgaW5cbiAgaWYgbCA9IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkZpbGVuYW1lLmNob3BfZXh0ZW5zaW9uXCJcbiAgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbClcblxubGV0IHJlbW92ZV9leHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gbmFtZSBlbHNlIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBsKVxuXG5leHRlcm5hbCBvcGVuX2Rlc2M6IHN0cmluZyAtPiBvcGVuX2ZsYWcgbGlzdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX3N5c19vcGVuXCJcbmV4dGVybmFsIGNsb3NlX2Rlc2M6IGludCAtPiB1bml0ID0gXCJjYW1sX3N5c19jbG9zZVwiXG5cbmxldCBwcm5nID0gbGF6eShSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQgKCkpXG5cbmxldCB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJuZCA9IChSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSkgbGFuZCAweEZGRkZGRiBpblxuICBjb25jYXQgdGVtcF9kaXIgKFByaW50Zi5zcHJpbnRmIFwiJXMlMDZ4JXNcIiBwcmVmaXggcm5kIHN1ZmZpeClcblxuXG5sZXQgY3VycmVudF90ZW1wX2Rpcl9uYW1lID0gcmVmIHRlbXBfZGlyX25hbWVcblxubGV0IHNldF90ZW1wX2Rpcl9uYW1lIHMgPSBjdXJyZW50X3RlbXBfZGlyX25hbWUgOj0gc1xubGV0IGdldF90ZW1wX2Rpcl9uYW1lICgpID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZVxuXG5sZXQgdGVtcF9maWxlID8odGVtcF9kaXIgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lKSBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJlYyB0cnlfbmFtZSBjb3VudGVyID1cbiAgICBsZXQgbmFtZSA9IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggaW5cbiAgICB0cnlcbiAgICAgIGNsb3NlX2Rlc2Mob3Blbl9kZXNjIG5hbWUgW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX2V4Y2xdIDBvNjAwKTtcbiAgICAgIG5hbWVcbiAgICB3aXRoIFN5c19lcnJvciBfIGFzIGUgLT5cbiAgICAgIGlmIGNvdW50ZXIgPj0gMTAwMCB0aGVuIHJhaXNlIGUgZWxzZSB0cnlfbmFtZSAoY291bnRlciArIDEpXG4gIGluIHRyeV9uYW1lIDBcblxubGV0IG9wZW5fdGVtcF9maWxlID8obW9kZSA9IFtPcGVuX3RleHRdKSA/KHBlcm1zID0gMG82MDApXG4gICAgICAgICAgICAgICAgICAgPyh0ZW1wX2RpciA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWUpIHByZWZpeCBzdWZmaXggPVxuICBsZXQgcmVjIHRyeV9uYW1lIGNvdW50ZXIgPVxuICAgIGxldCBuYW1lID0gdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCBpblxuICAgIHRyeVxuICAgICAgKG5hbWUsXG4gICAgICAgb3Blbl9vdXRfZ2VuIChPcGVuX3dyb25seTo6T3Blbl9jcmVhdDo6T3Blbl9leGNsOjptb2RlKSBwZXJtcyBuYW1lKVxuICAgIHdpdGggU3lzX2Vycm9yIF8gYXMgZSAtPlxuICAgICAgaWYgY291bnRlciA+PSAxMDAwIHRoZW4gcmFpc2UgZSBlbHNlIHRyeV9uYW1lIChjb3VudGVyICsgMSlcbiAgaW4gdHJ5X25hbWUgMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBDb21wbGV4IG51bWJlcnMgKilcblxudHlwZSB0ID0geyByZTogZmxvYXQ7IGltOiBmbG9hdCB9XG5cbmxldCB6ZXJvID0geyByZSA9IDAuMDsgaW0gPSAwLjAgfVxubGV0IG9uZSA9IHsgcmUgPSAxLjA7IGltID0gMC4wIH1cbmxldCBpID0geyByZSA9IDAuMDsgaW0gPSAxLjAgfVxuXG5sZXQgYWRkIHggeSA9IHsgcmUgPSB4LnJlICsuIHkucmU7IGltID0geC5pbSArLiB5LmltIH1cblxubGV0IHN1YiB4IHkgPSB7IHJlID0geC5yZSAtLiB5LnJlOyBpbSA9IHguaW0gLS4geS5pbSB9XG5cbmxldCBuZWcgeCA9IHsgcmUgPSAtLiB4LnJlOyBpbSA9IC0uIHguaW0gfVxuXG5sZXQgY29uaiB4ID0geyByZSA9IHgucmU7IGltID0gLS4geC5pbSB9XG5cbmxldCBtdWwgeCB5ID0geyByZSA9IHgucmUgKi4geS5yZSAtLiB4LmltICouIHkuaW07XG4gICAgICAgICAgICAgICAgaW0gPSB4LnJlICouIHkuaW0gKy4geC5pbSAqLiB5LnJlIH1cblxubGV0IGRpdiB4IHkgPVxuICBpZiBhYnNfZmxvYXQgeS5yZSA+PSBhYnNfZmxvYXQgeS5pbSB0aGVuXG4gICAgbGV0IHIgPSB5LmltIC8uIHkucmUgaW5cbiAgICBsZXQgZCA9IHkucmUgKy4gciAqLiB5LmltIGluXG4gICAgeyByZSA9ICh4LnJlICsuIHIgKi4geC5pbSkgLy4gZDtcbiAgICAgIGltID0gKHguaW0gLS4gciAqLiB4LnJlKSAvLiBkIH1cbiAgZWxzZVxuICAgIGxldCByID0geS5yZSAvLiB5LmltIGluXG4gICAgbGV0IGQgPSB5LmltICsuIHIgKi4geS5yZSBpblxuICAgIHsgcmUgPSAociAqLiB4LnJlICsuIHguaW0pIC8uIGQ7XG4gICAgICBpbSA9IChyICouIHguaW0gLS4geC5yZSkgLy4gZCB9XG5cbmxldCBpbnYgeCA9IGRpdiBvbmUgeFxuXG5sZXQgbm9ybTIgeCA9IHgucmUgKi4geC5yZSArLiB4LmltICouIHguaW1cblxubGV0IG5vcm0geCA9XG4gICgqIFdhdGNoIG91dCBmb3Igb3ZlcmZsb3cgaW4gY29tcHV0aW5nIHJlXjIgKyBpbV4yICopXG4gIGxldCByID0gYWJzX2Zsb2F0IHgucmUgYW5kIGkgPSBhYnNfZmxvYXQgeC5pbSBpblxuICBpZiByID0gMC4wIHRoZW4gaVxuICBlbHNlIGlmIGkgPSAwLjAgdGhlbiByXG4gIGVsc2UgaWYgciA+PSBpIHRoZW5cbiAgICBsZXQgcSA9IGkgLy4gciBpbiByICouIHNxcnQoMS4wICsuIHEgKi4gcSlcbiAgZWxzZVxuICAgIGxldCBxID0gciAvLiBpIGluIGkgKi4gc3FydCgxLjAgKy4gcSAqLiBxKVxuXG5sZXQgYXJnIHggPSBhdGFuMiB4LmltIHgucmVcblxubGV0IHBvbGFyIG4gYSA9IHsgcmUgPSBjb3MgYSAqLiBuOyBpbSA9IHNpbiBhICouIG4gfVxuXG5sZXQgc3FydCB4ID1cbiAgaWYgeC5yZSA9IDAuMCAmJiB4LmltID0gMC4wIHRoZW4geyByZSA9IDAuMDsgaW0gPSAwLjAgfVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBhYnNfZmxvYXQgeC5yZSBhbmQgaSA9IGFic19mbG9hdCB4LmltIGluXG4gICAgbGV0IHcgPVxuICAgICAgaWYgciA+PSBpIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IHEgPSBpIC8uIHIgaW5cbiAgICAgICAgc3FydChyKSAqLiBzcXJ0KDAuNSAqLiAoMS4wICsuIHNxcnQoMS4wICsuIHEgKi4gcSkpKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IHEgPSByIC8uIGkgaW5cbiAgICAgICAgc3FydChpKSAqLiBzcXJ0KDAuNSAqLiAocSArLiBzcXJ0KDEuMCArLiBxICouIHEpKSlcbiAgICAgIGVuZCBpblxuICAgIGlmIHgucmUgPj0gMC4wXG4gICAgdGhlbiB7IHJlID0gdzsgIGltID0gMC41ICouIHguaW0gLy4gdyB9XG4gICAgZWxzZSB7IHJlID0gMC41ICouIGkgLy4gdzsgIGltID0gaWYgeC5pbSA+PSAwLjAgdGhlbiB3IGVsc2UgLS4gdyB9XG4gIGVuZFxuXG5sZXQgZXhwIHggPVxuICBsZXQgZSA9IGV4cCB4LnJlIGluIHsgcmUgPSBlICouIGNvcyB4LmltOyBpbSA9IGUgKi4gc2luIHguaW0gfVxuXG5sZXQgbG9nIHggPSB7IHJlID0gbG9nIChub3JtIHgpOyBpbSA9IGF0YW4yIHguaW0geC5yZSB9XG5cbmxldCBwb3cgeCB5ID0gZXhwIChtdWwgeSAobG9nIHgpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgIEJlbm9pdCBWYXVnb24sIEVOU1RBICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBQYWRkaW5nIHBvc2l0aW9uLiAqKVxudHlwZSBwYWR0eSA9XG4gIHwgTGVmdCAgICgqIFRleHQgaXMgbGVmdCBqdXN0aWZpZWQgKCctJyBvcHRpb24pLiAgICAgICAgICAgICAgICopXG4gIHwgUmlnaHQgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIChubyAnLScgb3B0aW9uKS4gICAgICAgICAgICopXG4gIHwgWmVyb3MgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIGJ5IHplcm9zIChzZWUgJzAnIG9wdGlvbikuICopXG5cbigqKiopXG5cbigqIEludGVnZXIgY29udmVyc2lvbi4gKilcbnR5cGUgaW50X2NvbnYgPVxuICB8IEludF9kIHwgSW50X3BkIHwgSW50X3NkICAgICAgICAoKiAgJWQgfCAlK2QgfCAlIGQgICopXG4gIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2kgICAgICAgICgqICAlaSB8ICUraSB8ICUgaSAgKilcbiAgfCBJbnRfeCB8IEludF9DeCAgICAgICAgICAgICAgICAgKCogICV4IHwgJSN4ICAgICAgICAqKVxuICB8IEludF9YIHwgSW50X0NYICAgICAgICAgICAgICAgICAoKiAgJVggfCAlI1ggICAgICAgICopXG4gIHwgSW50X28gfCBJbnRfQ28gICAgICAgICAgICAgICAgICgqICAlbyB8ICUjbyAgICAgICAgKilcbiAgfCBJbnRfdSAgICAgICAgICAgICAgICAgICAgICAgICAgKCogICV1ICAgICAgICAgICAgICAqKVxuICB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAgICAgICAoKiAgJSNkIHwgJSNpIHwgJSN1ICopXG5cbigqIEZsb2F0IGNvbnZlcnNpb24uICopXG50eXBlIGZsb2F0X2ZsYWdfY29udiA9XG4gIHwgRmxvYXRfZmxhZ18gICAgICAgICAgICAgICAgICAgICgqICVbZmVFZ0dGaEhdICopXG4gIHwgRmxvYXRfZmxhZ19wICAgICAgICAgICAgICAgICAgICgqICUrW2ZlRWdHRmhIXSAqKVxuICB8IEZsb2F0X2ZsYWdfcyAgICAgICAgICAgICAgICAgICAoKiAlIFtmZUVnR0ZoSF0gKilcbnR5cGUgZmxvYXRfa2luZF9jb252ID1cbiAgfCBGbG9hdF9mICAgICAgICAgICAgICAgICAgICAgICAgKCogICVmIHwgJStmIHwgJSBmICAqKVxuICB8IEZsb2F0X2UgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWUgfCAlK2UgfCAlIGUgICopXG4gIHwgRmxvYXRfRSAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRSB8ICUrRSB8ICUgRSAgKilcbiAgfCBGbG9hdF9nICAgICAgICAgICAgICAgICAgICAgICAgKCogICVnIHwgJStnIHwgJSBnICAqKVxuICB8IEZsb2F0X0cgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUcgfCAlK0cgfCAlIEcgICopXG4gIHwgRmxvYXRfRiAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRiB8ICUrRiB8ICUgRiAgKilcbiAgfCBGbG9hdF9oICAgICAgICAgICAgICAgICAgICAgICAgKCogICVoIHwgJStoIHwgJSBoICAqKVxuICB8IEZsb2F0X0ggICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUggfCAlK0ggfCAlIEggICopXG4gIHwgRmxvYXRfQ0YgICAgICAgICAgICAgICAgICAgICAgICgqICAlI0Z8ICUrI0Z8ICUgI0YgKilcbnR5cGUgZmxvYXRfY29udiA9IGZsb2F0X2ZsYWdfY29udiAqIGZsb2F0X2tpbmRfY29udlxuXG4oKioqKVxuXG4oKiBDaGFyIHNldHMgKHNlZSAlWy4uLl0pIGFyZSBiaXRtYXBzIGltcGxlbWVudGVkIGFzIDMyLWNoYXIgc3RyaW5ncy4gKilcbnR5cGUgY2hhcl9zZXQgPSBzdHJpbmdcblxuKCoqKilcblxuKCogQ291bnRlciB1c2VkIGluIFNjYW5mLiAqKVxudHlwZSBjb3VudGVyID1cbiAgfCBMaW5lX2NvdW50ZXIgICAgICgqICAlbCAgICAgICopXG4gIHwgQ2hhcl9jb3VudGVyICAgICAoKiAgJW4gICAgICAqKVxuICB8IFRva2VuX2NvdW50ZXIgICAgKCogICVOLCAlTCAgKilcblxuKCoqKilcblxuKCogUGFkZGluZyBvZiBzdHJpbmdzIGFuZCBudW1iZXJzLiAqKVxudHlwZSAoJ2EsICdiKSBwYWRkaW5nID1cbiAgKCogTm8gcGFkZGluZyAoZXg6IFwiJWRcIikgKilcbiAgfCBOb19wYWRkaW5nICA6ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogTGl0ZXJhbCBwYWRkaW5nIChleDogXCIlOGRcIikgKilcbiAgfCBMaXRfcGFkZGluZyA6IHBhZHR5ICogaW50IC0+ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogUGFkZGluZyBhcyBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpkXCIpICopXG4gIHwgQXJnX3BhZGRpbmcgOiBwYWR0eSAtPiAoaW50IC0+ICdhLCAnYSkgcGFkZGluZ1xuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9kLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHBhZGRpbmcgb3B0aW9uIChubyBleHRyYSBhcmd1bWVudCkgKilcbnR5cGUgcGFkX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogUHJlY2lzaW9uIG9mIGZsb2F0cyBhbmQgJzAnLXBhZGRpbmcgb2YgaW50ZWdlcnMuICopXG50eXBlICgnYSwgJ2IpIHByZWNpc2lvbiA9XG4gICgqIE5vIHByZWNpc2lvbiAoZXg6IFwiJWZcIikgKilcbiAgfCBOb19wcmVjaXNpb24gOiAoJ2EsICdhKSBwcmVjaXNpb25cbiAgKCogTGl0ZXJhbCBwcmVjaXNpb24gKGV4OiBcIiUuM2ZcIikgKilcbiAgfCBMaXRfcHJlY2lzaW9uIDogaW50IC0+ICgnYSwgJ2EpIHByZWNpc2lvblxuICAoKiBQcmVjaXNpb24gYXMgZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUuKmZcIikgKilcbiAgfCBBcmdfcHJlY2lzaW9uIDogKGludCAtPiAnYSwgJ2EpIHByZWNpc2lvblxuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9mLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHByZWNpc2lvbiBvcHRpb24gKG5vIGV4dHJhIGFyZ3VtZW50KSAqKVxudHlwZSBwcmVjX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogc2VlIHRoZSBDdXN0b20gZm9ybWF0IGNvbWJpbmF0b3IgKilcbnR5cGUgKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSA9XG4gIHwgQ3VzdG9tX3plcm8gOiAoJ2EsIHN0cmluZywgJ2EpIGN1c3RvbV9hcml0eVxuICB8IEN1c3RvbV9zdWNjIDogKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSAtPlxuICAgICgnYSwgJ3ggLT4gJ2IsICd4IC0+ICdjKSBjdXN0b21fYXJpdHlcblxuKCoqKilcblxuKCogICAgICAgIFJlbGF0aW9uYWwgZm9ybWF0IHR5cGVzXG5cbkluIHRoZSBmaXJzdCBmb3JtYXQrZ2FkdHMgaW1wbGVtZW50YXRpb24sIHRoZSB0eXBlIGZvciAlKC4uJSkgaW4gdGhlXG5mbXQgR0FEVCB3YXMgYXMgZm9sbG93czpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqICgnZDEsICdxMSwgJ2QyLCAncTIpIHJlYWRlcl9uYl91bmlmaWVyICpcbiAgICAoJ3gsICdiLCAnYywgJ2QxLCAncTEsICd1KSBmbXR0eSAqXG4gICAgKCd1LCAnYiwgJ2MsICdxMSwgJ2UxLCAnZikgZm10IC0+XG4gICAgICAoKCd4LCAnYiwgJ2MsICdkMiwgJ3EyLCAndSkgZm9ybWF0NiAtPiAneCwgJ2IsICdjLCAnZDEsICdlMSwgJ2YpIGZtdFxuXG5Ob3RpY2UgdGhhdCB0aGUgJ3UgcGFyYW1ldGVyIGluICdmIHBvc2l0aW9uIGluIHRoZSBmb3JtYXQgYXJndW1lbnRcbigoJ3gsIC4uLCAndSkgZm9ybWF0NiAtPiAuLikgaXMgZXF1YWwgdG8gdGhlICd1IHBhcmFtZXRlciBpbiAnYVxucG9zaXRpb24gaW4gdGhlIGZvcm1hdCB0YWlsICgoJ3UsIC4uLCAnZikgZm10KS4gVGhpcyBtZWFucyB0aGF0IHRoZVxudHlwZSBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0IHBhcmFtZXRlciBkZXBlbmRzIG9mIHdoZXJlIHRoZSAlKC4uLiUpXG5hcmUgaW4gdGhlIGZvcm1hdCBzdHJpbmc6XG5cbiAgIyBQcmludGYucHJpbnRmIFwiJSglKVwiXG4gIC0gOiAodW5pdCwgb3V0X2NoYW5uZWwsIHVuaXQsICdfYSwgJ19hLCB1bml0KVxuICAgICAgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDYgLT4gdW5pdFxuICA9IDxmdW4+XG4gICMgUHJpbnRmLnByaW50ZiBcIiUoJSklZFwiXG4gIC0gOiAoaW50IC0+IHVuaXQsIG91dF9jaGFubmVsLCB1bml0LCAnX2EsICdfYSwgaW50IC0+IHVuaXQpXG4gICAgICBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NiAtPiBpbnQgLT4gdW5pdFxuICA9IDxmdW4+XG5cbk9uIHRoZSBjb250cmFyeSwgdGhlIGxlZ2FjeSB0eXBlciBnaXZlcyBhIGNsZXZlciB0eXBlIHRoYXQgZG9lcyBub3RcbmRlcGVuZCBvbiB0aGUgcG9zaXRpb24gb2YgJSguLiUpIGluIHRoZSBmb3JtYXQgc3RyaW5nLiBGb3IgZXhhbXBsZSxcbiUoJSkgd2lsbCBoYXZlIHRoZSBwb2x5bW9ycGhpYyB0eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKTogaXQgY2FuXG5iZSBjb25jYXRlbmF0ZWQgdG8gYW55IGZvcm1hdCB0eXBlLCBhbmQgb25seSBlbmZvcmNlcyB0aGUgY29uc3RyYWludFxudGhhdCBpdHMgJ2EgYW5kICdmIHBhcmFtZXRlcnMgYXJlIGVxdWFsIChubyBmb3JtYXQgYXJndW1lbnRzKSBhbmQgJ2RcbmFuZCAnZSBhcmUgZXF1YWwgKG5vIHJlYWRlciBhcmd1bWVudCkuXG5cblRoZSB3ZWFrZW5pbmcgb2YgdGhpcyBwYXJhbWV0ZXIgdHlwZSBpbiB0aGUgR0FEVCB2ZXJzaW9uIGJyb2tlIHVzZXJcbmNvZGUgKGluIGZhY3QgaXQgZXNzZW50aWFsbHkgbWFkZSAlKC4uLiUpIHVudXNhYmxlIGV4Y2VwdCBhdCB0aGUgbGFzdFxucG9zaXRpb24gb2YgYSBmb3JtYXQpLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5vdCB3b3JrXG5hbnltb3JlOlxuXG4gIGZ1biBzZXAgLT5cbiAgICBGb3JtYXQucHJpbnRmIFwiZm9vJSglKWJhciUoJSliYXpcIiBzZXAgc2VwXG5cbkFzIHRoZSB0eXBlLWNoZWNrZXIgd291bGQgcmVxdWlyZSB0d28gKmluY29tcGF0aWJsZSogdHlwZXMgZm9yIHRoZSAlKCUpXG5pbiBkaWZmZXJlbnQgcG9zaXRpb25zLlxuXG5UaGUgc29sdXRpb24gdG8gcmVnYWluIGEgZ2VuZXJhbCB0eXBlIGZvciAlKC4uJSkgaXMgdG8gZ2VuZXJhbGl6ZSB0aGlzXG50ZWNobmlxdWUsIG5vdCBvbmx5IG9uIHRoZSAnZCwgJ2UgcGFyYW1ldGVycywgYnV0IG9uIGFsbCBzaXhcbnBhcmFtZXRlcnMgb2YgYSBmb3JtYXQ6IHdlIGludHJvZHVjZSBhIFwicmVsYXRpb25hbFwiIHR5cGVcbiAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbndob3NlIHZhbHVlcyBhcmUgcHJvb2ZzIHRoYXQgKCdhMSwgLi4sICdmMSkgYW5kICgnYTIsIC4uLCAnZjIpIG1vcmFsbHlcbmNvcnJlc3BvbmQgdG8gdGhlIHNhbWUgZm9ybWF0IHR5cGU6ICdhMSBpcyBvYnRhaW5lZCBmcm9tICdmMSwnYjEsJ2MxXG5pbiB0aGUgZXhhY3Qgc2FtZSB3YXkgdGhhdCAnYTIgaXMgb2J0YWluZWQgZnJvbSAnZjIsJ2IyLCdjMiwgZXRjLlxuXG5Gb3IgZXhhbXBsZSwgdGhlIHJlbGF0aW9uIGJldHdlZW4gdHdvIGZvcm1hdCB0eXBlcyBiZWdpbm5pbmcgd2l0aCBhIENoYXJcbnBhcmFtZXRlciBpcyBhcyBmb2xsb3dzOlxuXG58IENoYXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAgKilcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKGNoYXIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgY2hhciAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuSW4gdGhlIGdlbmVyYWwgY2FzZSwgdGhlIHRlcm0gc3RydWN0dXJlIG9mIGZtdHR5X3JlbCBpcyAoYWxtb3N0WzFdKVxuaXNvbW9ycGhpYyB0byB0aGUgZm10dHkgb2YgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uOiBldmVyeVxuY29uc3RydWN0b3IgaXMgcmUtcmVhZCB3aXRoIGEgYmluYXJ5LCByZWxhdGlvbmFsIHR5cGUsIGluc3RlYWQgb2YgdGhlXG5wcmV2aW91cyB1bmFyeSB0eXBpbmcuIGZtdHR5IGNhbiB0aGVuIGJlIHJlLWRlZmluZWQgYXMgdGhlIGRpYWdvbmFsIG9mXG5mbXR0eV9yZWw6XG5cbiAgdHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgPVxuICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgICAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9yZWxcblxuT25jZSB3ZSBoYXZlIHRoaXMgZm10dHlfcmVsIHR5cGUgaW4gcGxhY2UsIHdlIGNhbiBnaXZlIHRoZSBtb3JlXG5nZW5lcmFsIHR5cGUgdG8gJSguLi4lKTpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMiwgJ2IsICdjLCAnajIsICdkLCAnYSkgZm10dHlfcmVsICpcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IsICdjLCAnajIsICdlLCAnZikgZm10XG5cbldlIGFjY2VwdCBhbnkgZm9ybWF0ICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NikgKHRoaXMgaXNcbmNvbXBsZXRlbHkgdW5yZWxhdGVkIHRvIHRoZSB0eXBlIG9mIHRoZSBjdXJyZW50IGZvcm1hdCksIGJ1dCBhbHNvXG5yZXF1aXJlIGEgcHJvb2YgdGhhdCB0aGlzIGZvcm1hdCBpcyBpbiByZWxhdGlvbiB0byBhbm90aGVyIGZvcm1hdCB0aGF0XG5pcyBjb25jYXRlbmFibGUgdG8gdGhlIGZvcm1hdCB0YWlsLiBXaGVuIGV4ZWN1dGluZyBhICUoLi4uJSkgZm9ybWF0XG4oaW4gY2FtbGludGVybmFsRm9ybWF0Lm1sOm1ha2VfcHJpbnRmIG9yIHNjYW5mLm1sOm1ha2Vfc2NhbmYpLCB3ZVxudHJhbnN0eXBlIHRoZSBmb3JtYXQgYWxvbmcgdGhpcyByZWxhdGlvbiB1c2luZyB0aGUgJ3JlY2FzdCcgZnVuY3Rpb25cbnRvIHRyYW5zcG9zZSBiZXR3ZWVuIHJlbGF0ZWQgZm9ybWF0IHR5cGVzLlxuXG4gIHZhbCByZWNhc3QgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSkgZm10XG4gIC0+ICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIC0+ICgnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXRcblxuTk9URSBbMV06IHRoZSB0eXBpbmcgb2YgRm9ybWF0X3N1YnN0X3R5IHJlcXVpcmVzIG5vdCBvbmUgZm9ybWF0IHR5cGUsIGJ1dFxudHdvLCBvbmUgdG8gZXN0YWJsaXNoIHRoZSBsaW5rIGJldHdlZW4gdGhlIGZvcm1hdCBhcmd1bWVudCBhbmQgdGhlXG5maXJzdCBzaXggcGFyYW1ldGVycywgYW5kIHRoZSBvdGhlciBmb3IgdGhlIGxpbmsgYmV0d2VlbiB0aGUgZm9ybWF0XG5hcmd1bWVudCBhbmQgdGhlIGxhc3Qgc2l4IHBhcmFtZXRlcnMuXG5cbnwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZDEsICdhMSkgZm10dHlfcmVsICpcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZDIsICdhMikgZm10dHlfcmVsICpcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2UxLCAnZjEsXG4gICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG5XaGVuIHdlIGdlbmVyYXRlIGEgZm9ybWF0IEFTVCwgd2UgZ2VuZXJhdGUgZXhhY3RseSB0aGUgc2FtZSB3aXRuZXNzXG5mb3IgYm90aCByZWxhdGlvbnMsIGFuZCB0aGUgd2l0bmVzcy1jb252ZXJzaW9uIGZ1bmN0aW9ucyBpblxuY2FtbGludGVybmFsRm9ybWF0IGRvIHJlbHkgb24gdGhpcyBpbnZhcmlhbnQuIEZvciBleGFtcGxlLCB0aGVcbmZ1bmN0aW9uIHRoYXQgcHJvdmVzIHRoYXQgdGhlIHJlbGF0aW9uIGlzIHRyYW5zaXRpdmVcblxuICB2YWwgdHJhbnMgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICAtPiAoJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMixcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuICAtPiAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuXG5kb2VzIGFzc3VtZSB0aGF0IHRoZSB0d28gaW5wdXRzIGhhdmUgZXhhY3RseSB0aGUgc2FtZSB0ZXJtIHN0cnVjdHVyZVxuKGFuZCBpcyBvbmx5IGV2ZXJ5IHVzZWQgZm9yIGFyZ3VtZW50IHdpdG5lc3NlcyBvZiB0aGVcbkZvcm1hdF9zdWJzdF90eSBjb25zdHJ1Y3RvcikuXG4qKVxuXG4oKiBUeXBlIG9mIGEgYmxvY2sgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBibG9ja190eXBlID1cbiAgfCBQcF9oYm94ICAgKCogSG9yaXpvbnRhbCBibG9jayBubyBsaW5lIGJyZWFraW5nICopXG4gIHwgUHBfdmJveCAgICgqIFZlcnRpY2FsIGJsb2NrIGVhY2ggYnJlYWsgbGVhZHMgdG8gYSBuZXcgbGluZSAqKVxuICB8IFBwX2h2Ym94ICAoKiBIb3Jpem9udGFsLXZlcnRpY2FsIGJsb2NrOiBzYW1lIGFzIHZib3gsIGV4Y2VwdCBpZiB0aGlzIGJsb2NrXG4gICAgICAgICAgICAgICAgIGlzIHNtYWxsIGVub3VnaCB0byBmaXQgb24gYSBzaW5nbGUgbGluZSAqKVxuICB8IFBwX2hvdmJveCAoKiBIb3Jpem9udGFsIG9yIFZlcnRpY2FsIGJsb2NrOiBicmVha3MgbGVhZCB0byBuZXcgbGluZVxuICAgICAgICAgICAgICAgICBvbmx5IHdoZW4gbmVjZXNzYXJ5IHRvIHByaW50IHRoZSBjb250ZW50IG9mIHRoZSBibG9jayAqKVxuICB8IFBwX2JveCAgICAoKiBIb3Jpem9udGFsIG9yIEluZGVudCBibG9jazogYnJlYWtzIGxlYWQgdG8gbmV3IGxpbmVcbiAgICAgICAgICAgICAgICAgb25seSB3aGVuIG5lY2Vzc2FyeSB0byBwcmludCB0aGUgY29udGVudCBvZiB0aGUgYmxvY2ssIG9yXG4gICAgICAgICAgICAgICAgIHdoZW4gaXQgbGVhZHMgdG8gYSBuZXcgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnQgbGluZSAqKVxuICB8IFBwX2ZpdHMgICAoKiBJbnRlcm5hbCB1c2FnZTogd2hlbiBhIGJsb2NrIGZpdHMgb24gYSBzaW5nbGUgbGluZSAqKVxuXG4oKiBGb3JtYXR0aW5nIGVsZW1lbnQgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBmb3JtYXR0aW5nX2xpdCA9XG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBdICAgKilcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQH0gICAqKVxuICB8IEJyZWFrIG9mIHN0cmluZyAqIGludCAqIGludCAgICAgICAgICAoKiBALCB8IEAgIHwgQDsgfCBAOzw+ICopXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEA/ICAgKilcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQFxcbiAgKilcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQC4gICAqKVxuICB8IE1hZ2ljX3NpemUgb2Ygc3RyaW5nICogaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAPG4+ICopXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBAICAgKilcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQCUlICAqKVxuICB8IFNjYW5faW5kaWMgb2YgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAWCAgICopXG5cbigqIEZvcm1hdHRpbmcgZWxlbWVudCB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlbiA9XG4gIHwgT3Blbl90YWcgOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAgICAgICgqIEB7ICAgKilcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW5cbiAgfCBPcGVuX2JveCA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICAgICAgKCogQFsgICAqKVxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlblxuXG4oKioqKVxuXG4oKiBMaXN0IG9mIGZvcm1hdCB0eXBlIGVsZW1lbnRzLiAqKVxuKCogSW4gcGFydGljdWxhciB1c2VkIHRvIHJlcHJlc2VudCAlKC4uLiUpIGFuZCAley4uLiV9IGNvbnRlbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSA9XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfcmVsXG5hbmQgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCA9XG4gIHwgQ2hhcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoY2hhciAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGNoYXIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgU3RyaW5nX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoc3RyaW5nIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgc3RyaW5nIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQzMl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQzMiAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDMyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IE5hdGl2ZWludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbmQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKG5hdGl2ZWludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIG5hdGl2ZWludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQ2NF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQ2NCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDY0IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEZsb2F0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZiAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGZsb2F0IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgZmxvYXQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgQm9vbF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVCICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoYm9vbCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGJvb2wgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBGb3JtYXRfYXJnX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXsuLi4lfSAqKVxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5ICpcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMilcbiAgICAgICAgICAgZm10dHlfcmVsXG4gIHwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2QxLCAnYTEpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiMiwgJ2MyLCAnajIsICdkMiwgJ2EyKSBmbXR0eV9yZWwgKlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZTEsICdmMSxcbiAgICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiMiwgJ2MyLCAnajIsICdlMiwgJ2YyKVxuICAgICAgICAgICBmbXR0eV9yZWxcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnMuICopXG4gIHwgQWxwaGFfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVhICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdiMSAtPiAneCAtPiAnYzEpIC0+ICd4IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdiMiAtPiAneCAtPiAnYzIpIC0+ICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IFRoZXRhX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnYjEgLT4gJ2MxKSAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnYjIgLT4gJ2MyKSAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBBbnlfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFVzZWQgZm9yIGN1c3RvbSBmb3JtYXRzICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgneCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yLiAqKVxuICB8IFJlYWRlcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCd4IC0+ICdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ3ggLT4gJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBFbmRfb2ZfZm10dHkgOlxuICAgICAgKCdmMSwgJ2IxLCAnYzEsICdkMSwgJ2QxLCAnZjEsXG4gICAgICAgJ2YyLCAnYjIsICdjMiwgJ2QyLCAnZDIsICdmMikgZm10dHlfcmVsXG5cbigqKiopXG5cbigqIExpc3Qgb2YgZm9ybWF0IGVsZW1lbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgPVxuICB8IENoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVDICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFN0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVTICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDMyIC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgTmF0aXZlaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJW5bZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBuYXRpdmVpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlTFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDY0IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRmxvYXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtmZUVnR0ZoSF0gKilcbiAgICAgIGZsb2F0X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBmbG9hdCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEJvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbYkJdICopXG4gICAgICAoJ3gsIGJvb2wgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGbHVzaCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlISAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBhYmMgKilcbiAgICAgIHN0cmluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENoYXJfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIHggKilcbiAgICAgIGNoYXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICB8IEZvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV7Li4uJX0gKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICAgcGFkX29wdGlvbiAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiLCAnYywgJ2oyLCAnZCwgJ2EpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYiwgJ2MsICdqMiwgJ2UsICdmKSBmbXRcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3Rvci4gKilcbiAgfCBBbHBoYSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYSAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICd4IC0+ICdjKSAtPiAneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBUaGV0YSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICdjKSAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3I6ICopXG4gIHwgRm9ybWF0dGluZ19saXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF8gKilcbiAgICAgIGZvcm1hdHRpbmdfbGl0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0dGluZ19nZW4gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBfICopXG4gICAgICAoJ2ExLCAnYiwgJ2MsICdkMSwgJ2UxLCAnZjEpIGZvcm1hdHRpbmdfZ2VuICpcbiAgICAgICgnZjEsICdiLCAnYywgJ2UxLCAnZTIsICdmMikgZm10IC0+ICgnYTEsICdiLCAnYywgJ2QxLCAnZTIsICdmMikgZm10XG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IFJlYWRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVyICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCAtPiAnYSwgJ2IsICdjLCAoJ2IgLT4gJ3gpIC0+ICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fY2hhcl9zZXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoc3RyaW5nIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChpbnQgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9uZXh0X2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJTBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJZ25vcmVkX3BhcmFtIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGlnbm9yZWQgKiAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBDdXN0b20gcHJpbnRpbmcgZm9ybWF0IChQUiM2NDUyLCBHUFIjMTQwKVxuXG4gICAgIFdlIGluY2x1ZGUgYSB0eXBlIEN1c3RvbSBvZiBcImN1c3RvbSBjb252ZXJ0ZXJzXCIsIHdoZXJlIGFuXG4gICAgIGFyYml0cmFyeSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IG9uZSBvciBtb3JlXG4gICAgIGFyZ3VtZW50cy4gVGhlcmUgaXMgbm8gc3ludGF4IGZvciBjdXN0b20gY29udmVydGVycywgaXQgaXMgb25seVxuICAgICBpbnRlbmRlZCBmb3IgY3VzdG9tIHByb2Nlc3NvcnMgdGhhdCB3aXNoIHRvIHJlbHkgb24gdGhlXG4gICAgIHN0ZGxpYi1kZWZpbmVkIGZvcm1hdCBHQURUcy5cblxuICAgICBGb3IgaW5zdGFuY2UgYSBwcmUtcHJvY2Vzc29yIGNvdWxkIGNob29zZSB0byBpbnRlcnByZXQgc3RyaW5nc1xuICAgICBwcmVmaXhlZCB3aXRoIFtcIiFcIl0gYXMgZm9ybWF0IHN0cmluZ3Mgd2hlcmUgWyV7eyAuLi4gfX1dIGlzXG4gICAgIGEgc3BlY2lhbCBmb3JtIHRvIHBhc3MgYSB0b19zdHJpbmcgZnVuY3Rpb24sIHNvIHRoYXQgb25lIGNvdWxkXG4gICAgIHdyaXRlOlxuXG4gICAgIHtbXG4gICAgICAgdHlwZSB0ID0geyB4IDogaW50OyB5IDogaW50IH1cblxuICAgICAgIGxldCBzdHJpbmdfb2ZfdCB0ID0gUHJpbnRmLnNwcmludGYgXCJ7IHggPSAlZDsgeSA9ICVkIH1cIiB0LnggdC55XG5cbiAgICAgICBQcmludGYucHJpbnRmICFcInQgPSAle3tzdHJpbmdfb2ZfdH19XCIgeyB4ID0gNDI7IHkgPSA0MiB9XG4gICAgIF19XG4gICopXG4gIHwgQ3VzdG9tIDpcbiAgICAgICgnYSwgJ3gsICd5KSBjdXN0b21fYXJpdHkgKiAodW5pdCAtPiAneCkgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoJ3ksICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogZW5kIG9mIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gKilcbiAgfCBFbmRfb2ZfZm9ybWF0IDpcbiAgICAgICAgKCdmLCAnYiwgJ2MsICdlLCAnZSwgJ2YpIGZtdFxuXG4oKioqKVxuXG4oKiBUeXBlIGZvciBpZ25vcmVkIHBhcmFtZXRlcnMgKHNlZSBcIiVfXCIpLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkID1cbiAgfCBJZ25vcmVkX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2MgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9DICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfcyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfUyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9sZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9uZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9MZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mbG9hdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9mICopXG4gICAgICBwYWRfb3B0aW9uICogcHJlY19vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Jvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0IgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3suLi4lfSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfKC4uLiUpICopXG4gICAgICBwYWRfb3B0aW9uICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9yZWFkZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9yICopXG4gICAgICAoJ2EsICdiLCAnYywgKCdiIC0+ICd4KSAtPiAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0IC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXzBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICBGb3JtYXQgb2YgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAqIHN0cmluZ1xuXG5sZXQgcmVjIGVyYXNlX3JlbCA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIGkgaiBrIGwgLlxuICAoYSwgYiwgYywgZCwgZSwgZixcbiAgIGcsIGgsIGksIGosIGssIGwpIGZtdHR5X3JlbCAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlcbj0gZnVuY3Rpb25cbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIFN0cmluZ190eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBJbnRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIE5hdGl2ZWludF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBCb29sX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIF90eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIEFscGhhX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgVGhldGFfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIFJlYWRlcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGUgY29uY2F0ZW5hdGlvbiAqKVxuXG4oKiBDb25jYXRlbmF0ZSB0d28gZm9ybWF0IHR5cGVzLiAqKVxuKCogVXNlZCBieTpcbiAgICogcmVhZGVyX25iX3VuaWZpZXJfb2ZfZm10dHkgdG8gY291bnQgcmVhZGVycyBpbiBhbiBmbXR0eSxcbiAgICogU2NhbmYudGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyB0byBleHRyYWN0IHJlYWRlcnMgaW5zaWRlICUoLi4uJSksXG4gICAqIENhbWxpbnRlcm5hbEZvcm1hdC5mbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCB0byBleHRyYWN0IGZvcm1hdCB0eXBlLiAqKVxuXG4oKlxubGV0IHJlYyBjb25jYXRfZm10dHkgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCAuXG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGYsIGIsIGMsIGUsIGcsIGgpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdHR5ID1cbiopXG5sZXQgcmVjIGNvbmNhdF9mbXR0eSA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMlxuICAgICAgIGcxIGoxIGcyIGoyXG4gIC5cbiAgICAoZzEsIGIxLCBjMSwgajEsIGQxLCBhMSxcbiAgICAgZzIsIGIyLCBjMiwgajIsIGQyLCBhMikgZm10dHlfcmVsIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbCAtPlxuICAgIChnMSwgYjEsIGMxLCBqMSwgZTEsIGYxLFxuICAgICBnMiwgYjIsIGMyLCBqMiwgZTIsIGYyKSBmbXR0eV9yZWwgPVxuZnVuIGZtdHR5MSBmbXR0eTIgLT4gbWF0Y2ggZm10dHkxIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBTdHJpbmdfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIEludF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgTmF0aXZlaW50X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgQm9vbF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBBbHBoYV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBUaGV0YV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBSZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEVuZF9vZl9mbXR0eSAtPiBmbXR0eTJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBjb25jYXRlbmF0aW9uICopXG5cbigqIENvbmNhdGVuYXRlIHR3byBmb3JtYXRzLiAqKVxubGV0IHJlYyBjb25jYXRfZm10IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggLlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoZiwgYiwgYywgZSwgZywgaCkgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdCA9XG5mdW4gZm10MSBmbXQyIC0+IG1hdGNoIGZtdDEgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIFN0cmluZyAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIENhbWxfc3RyaW5nIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludDY0IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBDaGFyIChyZXN0KSAtPlxuICAgIENoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgQ2FtbF9jaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgQm9vbCAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBBbHBoYSByZXN0IC0+XG4gICAgQWxwaGEgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFRoZXRhIHJlc3QgLT5cbiAgICBUaGV0YSAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBDdXN0b20gKGFyaXR5LCBmLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBSZWFkZXIgcmVzdCAtPlxuICAgIFJlYWRlciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIEZsdXNoIChjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgU3RyaW5nX2xpdGVyYWwgKHN0ciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgQ2hhcl9saXRlcmFsICAgKGNociwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBGb3JtYXRfYXJnIChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmcgICAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdCAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgIFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgKHJlc3QpIC0+XG4gICAgU2Nhbl9uZXh0X2NoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBJZ25vcmVkX3BhcmFtIChpZ24sIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAtPlxuICAgIEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBmbXQyXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBHYWJyaWVsIFNjaGVyZXIsIHByb2pldCBQYXJ0b3V0LCBJTlJJQSBQYXJpcy1TYWNsYXkgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIwIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENhbWxpbnRlcm5hbEF0b21pYyBpcyBhIGRlcGVuZGVuY3kgb2YgU3RkbGliLCBzbyBpdCBpcyBjb21waWxlZCB3aXRoXG4gICAtbm9wZXJ2YXNpdmVzLiAqKVxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5cbigqIFdlIGFyZSBub3QgcmV1c2luZyAoJ2EgcmVmKSBkaXJlY3RseSB0byBtYWtlIGl0IGVhc2llciB0byByZWFzb25cbiAgIGFib3V0IGF0b21pY2l0eSBpZiB3ZSB3aXNoIHRvOiBldmVuIGluIGEgc2VxdWVudGlhbCBpbXBsZW1lbnRhdGlvbixcbiAgIHNpZ25hbHMgYW5kIG90aGVyIGFzeW5jaHJvbm91cyBjYWxsYmFja3MgbWlnaHQgYnJlYWsgYXRvbWljaXR5LiAqKVxudHlwZSAnYSB0ID0ge211dGFibGUgdjogJ2F9XG5cbmxldCBtYWtlIHYgPSB7dn1cbmxldCBnZXQgciA9IHIudlxubGV0IHNldCByIHYgPSByLnYgPC0gdlxuXG4oKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgc2V0IHRvIG5ldmVyIGJlIGlubGluZWQ6IEZsYW1iZGEgaXNcbiAgIGFsbG93ZWQgdG8gbW92ZSBzdXJyb3VuZGluZyBjb2RlIGluc2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbixcbiAgIGluY2x1ZGluZyBhbGxvY2F0aW9ucy4gKilcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGV4Y2hhbmdlIHIgdiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIHIudiA8LSB2O1xuICAoKiBFTkQgQVRPTUlDICopXG4gIGN1clxuXG5sZXRbQGlubGluZSBuZXZlcl0gY29tcGFyZV9hbmRfc2V0IHIgc2VlbiB2ID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgaWYgY3VyID09IHNlZW4gdGhlbiAoXG4gICAgci52IDwtIHY7XG4gICAgKCogRU5EIEFUT01JQyAqKVxuICAgIHRydWVcbiAgKSBlbHNlXG4gICAgZmFsc2VcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGZldGNoX2FuZF9hZGQgciBuID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgci52IDwtIChjdXIgKyBuKTtcbiAgKCogRU5EIEFUT01JQyAqKVxuICBjdXJcblxubGV0IGluY3IgciA9IGlnbm9yZSAoZmV0Y2hfYW5kX2FkZCByIDEpXG5sZXQgZGVjciByID0gaWdub3JlIChmZXRjaF9hbmRfYWRkIHIgKC0xKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRXhjZXB0aW9ucyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCAoKSA9XG4gICgqIGZvciBydW50aW1lL2ZhaWxfbmF0LmMgKilcbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQZXJ2YXNpdmVzLmFycmF5X2JvdW5kX2Vycm9yXCJcbiAgICAoSW52YWxpZF9hcmd1bWVudCBcImluZGV4IG91dCBvZiBib3VuZHNcIilcblxuZXh0ZXJuYWwgcmFpc2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZVwiXG5leHRlcm5hbCByYWlzZV9ub3RyYWNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2Vfbm90cmFjZVwiXG5cbmxldCBmYWlsd2l0aCBzID0gcmFpc2UoRmFpbHVyZSBzKVxubGV0IGludmFsaWRfYXJnIHMgPSByYWlzZShJbnZhbGlkX2FyZ3VtZW50IHMpXG5cbmV4Y2VwdGlvbiBFeGl0XG5leGNlcHRpb24gTWF0Y2hfZmFpbHVyZSA9IE1hdGNoX2ZhaWx1cmVcbmV4Y2VwdGlvbiBBc3NlcnRfZmFpbHVyZSA9IEFzc2VydF9mYWlsdXJlXG5leGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCA9IEludmFsaWRfYXJndW1lbnRcbmV4Y2VwdGlvbiBGYWlsdXJlID0gRmFpbHVyZVxuZXhjZXB0aW9uIE5vdF9mb3VuZCA9IE5vdF9mb3VuZFxuZXhjZXB0aW9uIE91dF9vZl9tZW1vcnkgPSBPdXRfb2ZfbWVtb3J5XG5leGNlcHRpb24gU3RhY2tfb3ZlcmZsb3cgPSBTdGFja19vdmVyZmxvd1xuZXhjZXB0aW9uIFN5c19lcnJvciA9IFN5c19lcnJvclxuZXhjZXB0aW9uIEVuZF9vZl9maWxlID0gRW5kX29mX2ZpbGVcbmV4Y2VwdGlvbiBEaXZpc2lvbl9ieV96ZXJvID0gRGl2aXNpb25fYnlfemVyb1xuZXhjZXB0aW9uIFN5c19ibG9ja2VkX2lvID0gU3lzX2Jsb2NrZWRfaW9cbmV4Y2VwdGlvbiBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSA9IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlXG5cbigqIENvbXBvc2l0aW9uIG9wZXJhdG9ycyAqKVxuXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcblxuKCogRGVidWdnaW5nICopXG5cbmV4dGVybmFsIF9fTE9DX18gOiBzdHJpbmcgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fRklMRV9fIDogc3RyaW5nID0gXCIlbG9jX0ZJTEVcIlxuZXh0ZXJuYWwgX19MSU5FX18gOiBpbnQgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX01PRFVMRV9fIDogc3RyaW5nID0gXCIlbG9jX01PRFVMRVwiXG5leHRlcm5hbCBfX1BPU19fIDogc3RyaW5nICogaW50ICogaW50ICogaW50ID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCBfX0ZVTkNUSU9OX18gOiBzdHJpbmcgPSBcIiVsb2NfRlVOQ1RJT05cIlxuXG5leHRlcm5hbCBfX0xPQ19PRl9fIDogJ2EgLT4gc3RyaW5nICogJ2EgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fTElORV9PRl9fIDogJ2EgLT4gaW50ICogJ2EgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX1BPU19PRl9fIDogJ2EgLT4gKHN0cmluZyAqIGludCAqIGludCAqIGludCkgKiAnYSA9IFwiJWxvY19QT1NcIlxuXG4oKiBDb21wYXJpc29ucyAqKVxuXG5leHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5leHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5leHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcbmV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcblxubGV0IG1pbiB4IHkgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcblxuKCogQm9vbGVhbiBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggb3IgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcblxuKCogSW50ZWdlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxuXG5sZXQgYWJzIHggPSBpZiB4ID49IDAgdGhlbiB4IGVsc2UgLXhcblxuZXh0ZXJuYWwgKCBsYW5kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCAoIGxvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCAoIGx4b3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcblxubGV0IGxub3QgeCA9IHggbHhvciAoLTEpXG5cbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcblxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5cbigqIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgKCB+LS4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgKCB+Ky4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgKCArLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCAoIC0uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsICggKi4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgKCAvLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCAoICoqICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbmhfZmxvYXRcIiBcImNhbWxfYXNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuaF9mbG9hdFwiIFwiY2FtbF9hdGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxubGV0IGluZmluaXR5ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0YwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IG5lZ19pbmZpbml0eSA9XG4gIGZsb2F0X29mX2JpdHMgMHhGRl9GMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBuYW4gPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRjBfMDBfMDBfMDBfMDBfMDBfMDFMXG5sZXQgbWF4X2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0VGX0ZGX0ZGX0ZGX0ZGX0ZGX0ZGTFxubGV0IG1pbl9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHgwMF8xMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBlcHNpbG9uX2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDNDX0IwXzAwXzAwXzAwXzAwXzAwXzAwTFxuXG50eXBlIGZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cblxuKCogU3RyaW5nIGFuZCBieXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGVzIFN0cmluZyBhbmQgQnl0ZXMgKilcblxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGJ5dGVzX2xlbmd0aCA6IGJ5dGVzIC0+IGludCA9IFwiJWJ5dGVzX2xlbmd0aFwiXG5leHRlcm5hbCBieXRlc19jcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIHN0cmluZ19ibGl0IDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX2JsaXQgOiBieXRlcyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuXG5sZXQgKCBeICkgczEgczIgPVxuICBsZXQgbDEgPSBzdHJpbmdfbGVuZ3RoIHMxIGFuZCBsMiA9IHN0cmluZ19sZW5ndGggczIgaW5cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgKGwxICsgbDIpIGluXG4gIHN0cmluZ19ibGl0IHMxIDAgcyAwIGwxO1xuICBzdHJpbmdfYmxpdCBzMiAwIHMgbDEgbDI7XG4gIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgc1xuXG4oKiBDaGFyYWN0ZXIgb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZSBDaGFyICopXG5cbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB1bnNhZmVfY2hhcl9vZl9pbnQgOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcbmxldCBjaGFyX29mX2ludCBuID1cbiAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuIGludmFsaWRfYXJnIFwiY2hhcl9vZl9pbnRcIiBlbHNlIHVuc2FmZV9jaGFyX29mX2ludCBuXG5cbigqIFVuaXQgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcblxuKCogUGFpciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5cbigqIFJlZmVyZW5jZXMgKilcblxudHlwZSAnYSByZWYgPSB7IG11dGFibGUgY29udGVudHMgOiAnYSB9XG5leHRlcm5hbCByZWYgOiAnYSAtPiAnYSByZWYgPSBcIiVtYWtlbXV0YWJsZVwiXG5leHRlcm5hbCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCAoIDo9ICkgOiAnYSByZWYgLT4gJ2EgLT4gdW5pdCA9IFwiJXNldGZpZWxkMFwiXG5leHRlcm5hbCBpbmNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlaW5jclwiXG5leHRlcm5hbCBkZWNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlZGVjclwiXG5cbigqIFJlc3VsdCB0eXBlICopXG5cbnR5cGUgKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG5cbigqIFN0cmluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyAqKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5leHRlcm5hbCBmb3JtYXRfZmxvYXQgOiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5cbmxldCBzdHJpbmdfb2ZfYm9vbCBiID1cbiAgaWYgYiB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiXG5sZXQgYm9vbF9vZl9zdHJpbmcgPSBmdW5jdGlvblxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBfIC0+IGludmFsaWRfYXJnIFwiYm9vbF9vZl9zdHJpbmdcIlxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0ID0gZnVuY3Rpb25cbiAgfCBcInRydWVcIiAtPiBTb21lIHRydWVcbiAgfCBcImZhbHNlXCIgLT4gU29tZSBmYWxzZVxuICB8IF8gLT4gTm9uZVxuXG5sZXQgc3RyaW5nX29mX2ludCBuID1cbiAgZm9ybWF0X2ludCBcIiVkXCIgblxuXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcblxubGV0IGludF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuZXh0ZXJuYWwgc3RyaW5nX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5cbmxldCB2YWxpZF9mbG9hdF9sZXhlbSBzID1cbiAgbGV0IGwgPSBzdHJpbmdfbGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPj0gbCB0aGVuIHMgXiBcIi5cIiBlbHNlXG4gICAgbWF0Y2ggc3RyaW5nX2dldCBzIGkgd2l0aFxuICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBsb29wIChpICsgMSlcbiAgICB8IF8gLT4gc1xuICBpblxuICBsb29wIDBcblxubGV0IHN0cmluZ19vZl9mbG9hdCBmID0gdmFsaWRfZmxvYXRfbGV4ZW0gKGZvcm1hdF9mbG9hdCBcIiUuMTJnXCIgZilcblxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5cbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGUgTGlzdCAqKVxuXG5sZXQgcmVjICggQCApIGwxIGwyID1cbiAgbWF0Y2ggbDEgd2l0aFxuICAgIFtdIC0+IGwyXG4gIHwgaGQgOjogdGwgLT4gaGQgOjogKHRsIEAgbDIpXG5cbigqIEkvTyBvcGVyYXRpb25zICopXG5cbnR5cGUgaW5fY2hhbm5lbFxudHlwZSBvdXRfY2hhbm5lbFxuXG5leHRlcm5hbCBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDogaW50IC0+IG91dF9jaGFubmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXRcIlxuZXh0ZXJuYWwgb3Blbl9kZXNjcmlwdG9yX2luIDogaW50IC0+IGluX2NoYW5uZWwgPSBcImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luXCJcblxubGV0IHN0ZGluID0gb3Blbl9kZXNjcmlwdG9yX2luIDBcbmxldCBzdGRvdXQgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDFcbmxldCBzdGRlcnIgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDJcblxuKCogR2VuZXJhbCBvdXRwdXQgZnVuY3Rpb25zICopXG5cbnR5cGUgb3Blbl9mbGFnID1cbiAgICBPcGVuX3Jkb25seSB8IE9wZW5fd3Jvbmx5IHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0IHwgT3Blbl90cnVuYyB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5IHwgT3Blbl90ZXh0IHwgT3Blbl9ub25ibG9ja1xuXG5leHRlcm5hbCBvcGVuX2Rlc2MgOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5cbmV4dGVybmFsIHNldF9vdXRfY2hhbm5lbF9uYW1lOiBvdXRfY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5fb3V0X2dlbiBtb2RlIHBlcm0gbmFtZSA9XG4gIGxldCBjID0gb3Blbl9kZXNjcmlwdG9yX291dChvcGVuX2Rlc2MgbmFtZSBtb2RlIHBlcm0pIGluXG4gIHNldF9vdXRfY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9vdXQgbmFtZSA9XG4gIG9wZW5fb3V0X2dlbiBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fdHJ1bmM7IE9wZW5fdGV4dF0gMG82NjYgbmFtZVxuXG5sZXQgb3Blbl9vdXRfYmluIG5hbWUgPVxuICBvcGVuX291dF9nZW4gW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX3RydW5jOyBPcGVuX2JpbmFyeV0gMG82NjYgbmFtZVxuXG5leHRlcm5hbCBmbHVzaCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfZmx1c2hcIlxuXG5leHRlcm5hbCBvdXRfY2hhbm5lbHNfbGlzdCA6IHVuaXQgLT4gb3V0X2NoYW5uZWwgbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3RcIlxuXG5sZXQgZmx1c2hfYWxsICgpID1cbiAgbGV0IHJlYyBpdGVyID0gZnVuY3Rpb25cbiAgICAgIFtdIC0+ICgpXG4gICAgfCBhOjpsIC0+XG4gICAgICAgIGJlZ2luIHRyeVxuICAgICAgICAgICAgZmx1c2ggYVxuICAgICAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAgICAgKCkgKCogaWdub3JlIGNoYW5uZWxzIGNsb3NlZCBkdXJpbmcgYSBwcmVjZWRpbmcgZmx1c2guICopXG4gICAgICAgIGVuZDtcbiAgICAgICAgaXRlciBsXG4gIGluIGl0ZXIgKG91dF9jaGFubmVsc19saXN0ICgpKVxuXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0IDogb3V0X2NoYW5uZWwgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dF9ieXRlc1wiXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0X3N0cmluZyA6IG91dF9jaGFubmVsIC0+IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dFwiXG5cbmV4dGVybmFsIG91dHB1dF9jaGFyIDogb3V0X2NoYW5uZWwgLT4gY2hhciAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcblxubGV0IG91dHB1dF9ieXRlcyBvYyBzID1cbiAgdW5zYWZlX291dHB1dCBvYyBzIDAgKGJ5dGVzX2xlbmd0aCBzKVxuXG5sZXQgb3V0cHV0X3N0cmluZyBvYyBzID1cbiAgdW5zYWZlX291dHB1dF9zdHJpbmcgb2MgcyAwIChzdHJpbmdfbGVuZ3RoIHMpXG5cbmxldCBvdXRwdXQgb2MgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJvdXRwdXRcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXQgb2MgcyBvZnMgbGVuXG5cbmxldCBvdXRwdXRfc3Vic3RyaW5nIG9jIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBzdHJpbmdfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIm91dHB1dF9zdWJzdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXRfc3RyaW5nIG9jIHMgb2ZzIGxlblxuXG5leHRlcm5hbCBvdXRwdXRfYnl0ZSA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcbmV4dGVybmFsIG91dHB1dF9iaW5hcnlfaW50IDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2ludFwiXG5cbmV4dGVybmFsIG1hcnNoYWxfdG9fY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+ICdhIC0+IHVuaXQgbGlzdCAtPiB1bml0XG4gICAgID0gXCJjYW1sX291dHB1dF92YWx1ZVwiXG5sZXQgb3V0cHV0X3ZhbHVlIGNoYW4gdiA9IG1hcnNoYWxfdG9fY2hhbm5lbCBjaGFuIHYgW11cblxuZXh0ZXJuYWwgc2Vla19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dFwiXG5leHRlcm5hbCBwb3Nfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19vdXRcIlxuZXh0ZXJuYWwgb3V0X2NoYW5uZWxfbGVuZ3RoIDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9vdXRfY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfY2xvc2VfY2hhbm5lbFwiXG5sZXQgY2xvc2Vfb3V0IG9jID0gZmx1c2ggb2M7IGNsb3NlX291dF9jaGFubmVsIG9jXG5sZXQgY2xvc2Vfb3V0X25vZXJyIG9jID1cbiAgKHRyeSBmbHVzaCBvYyB3aXRoIF8gLT4gKCkpO1xuICAodHJ5IGNsb3NlX291dF9jaGFubmVsIG9jIHdpdGggXyAtPiAoKSlcbmV4dGVybmFsIHNldF9iaW5hcnlfbW9kZV9vdXQgOiBvdXRfY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXCJcblxuKCogR2VuZXJhbCBpbnB1dCBmdW5jdGlvbnMgKilcblxuZXh0ZXJuYWwgc2V0X2luX2NoYW5uZWxfbmFtZTogaW5fY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5faW5fZ2VuIG1vZGUgcGVybSBuYW1lID1cbiAgbGV0IGMgPSBvcGVuX2Rlc2NyaXB0b3JfaW4ob3Blbl9kZXNjIG5hbWUgbW9kZSBwZXJtKSBpblxuICBzZXRfaW5fY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9pbiBuYW1lID1cbiAgb3Blbl9pbl9nZW4gW09wZW5fcmRvbmx5OyBPcGVuX3RleHRdIDAgbmFtZVxuXG5sZXQgb3Blbl9pbl9iaW4gbmFtZSA9XG4gIG9wZW5faW5fZ2VuIFtPcGVuX3Jkb25seTsgT3Blbl9iaW5hcnldIDAgbmFtZVxuXG5leHRlcm5hbCBpbnB1dF9jaGFyIDogaW5fY2hhbm5lbCAtPiBjaGFyID0gXCJjYW1sX21sX2lucHV0X2NoYXJcIlxuXG5leHRlcm5hbCB1bnNhZmVfaW5wdXQgOiBpbl9jaGFubmVsIC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfaW5wdXRcIlxuXG5sZXQgaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJpbnB1dFwiXG4gIGVsc2UgdW5zYWZlX2lucHV0IGljIHMgb2ZzIGxlblxuXG5sZXQgcmVjIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgbGVuIDw9IDAgdGhlbiAoKSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSB1bnNhZmVfaW5wdXQgaWMgcyBvZnMgbGVuIGluXG4gICAgaWYgciA9IDBcbiAgICB0aGVuIHJhaXNlIEVuZF9vZl9maWxlXG4gICAgZWxzZSB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgKG9mcyArIHIpIChsZW4gLSByKVxuICBlbmRcblxubGV0IHJlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcInJlYWxseV9pbnB1dFwiXG4gIGVsc2UgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW5cblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgbGVuIGluXG4gIHJlYWxseV9pbnB1dCBpYyBzIDAgbGVuO1xuICBieXRlc191bnNhZmVfdG9fc3RyaW5nIHNcblxuZXh0ZXJuYWwgaW5wdXRfc2Nhbl9saW5lIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lXCJcblxubGV0IGlucHV0X2xpbmUgY2hhbiA9XG4gIGxldCByZWMgYnVpbGRfcmVzdWx0IGJ1ZiBwb3MgPSBmdW5jdGlvblxuICAgIFtdIC0+IGJ1ZlxuICB8IGhkIDo6IHRsIC0+XG4gICAgICBsZXQgbGVuID0gYnl0ZXNfbGVuZ3RoIGhkIGluXG4gICAgICBieXRlc19ibGl0IGhkIDAgYnVmIChwb3MgLSBsZW4pIGxlbjtcbiAgICAgIGJ1aWxkX3Jlc3VsdCBidWYgKHBvcyAtIGxlbikgdGwgaW5cbiAgbGV0IHJlYyBzY2FuIGFjY3UgbGVuID1cbiAgICBsZXQgbiA9IGlucHV0X3NjYW5fbGluZSBjaGFuIGluXG4gICAgaWYgbiA9IDAgdGhlbiBiZWdpbiAgICAgICAgICAgICAgICAgICAoKiBuID0gMDogd2UgYXJlIGF0IEVPRiAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJhaXNlIEVuZF9vZl9maWxlXG4gICAgICB8IF8gIC0+IGJ1aWxkX3Jlc3VsdCAoYnl0ZXNfY3JlYXRlIGxlbikgbGVuIGFjY3VcbiAgICBlbmQgZWxzZSBpZiBuID4gMCB0aGVuIGJlZ2luICAgICAgICAgICgqIG4gPiAwOiBuZXdsaW5lIGZvdW5kIGluIGJ1ZmZlciAqKVxuICAgICAgbGV0IHJlcyA9IGJ5dGVzX2NyZWF0ZSAobiAtIDEpIGluXG4gICAgICBpZ25vcmUgKHVuc2FmZV9pbnB1dCBjaGFuIHJlcyAwIChuIC0gMSkpO1xuICAgICAgaWdub3JlIChpbnB1dF9jaGFyIGNoYW4pOyAgICAgICAgICAgKCogc2tpcCB0aGUgbmV3bGluZSAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJlc1xuICAgICAgfCAgXyAtPiBsZXQgbGVuID0gbGVuICsgbiAtIDEgaW5cbiAgICAgICAgICAgICAgYnVpbGRfcmVzdWx0IChieXRlc19jcmVhdGUgbGVuKSBsZW4gKHJlcyA6OiBhY2N1KVxuICAgIGVuZCBlbHNlIGJlZ2luICAgICAgICAgICAgICAgICAgICAgICAgKCogbiA8IDA6IG5ld2xpbmUgbm90IGZvdW5kICopXG4gICAgICBsZXQgYmVnID0gYnl0ZXNfY3JlYXRlICgtbikgaW5cbiAgICAgIGlnbm9yZSh1bnNhZmVfaW5wdXQgY2hhbiBiZWcgMCAoLW4pKTtcbiAgICAgIHNjYW4gKGJlZyA6OiBhY2N1KSAobGVuIC0gbilcbiAgICBlbmRcbiAgaW4gYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyAoc2NhbiBbXSAwKVxuXG5leHRlcm5hbCBpbnB1dF9ieXRlIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfY2hhclwiXG5leHRlcm5hbCBpbnB1dF9iaW5hcnlfaW50IDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfaW50XCJcbmV4dGVybmFsIGlucHV0X3ZhbHVlIDogaW5fY2hhbm5lbCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZVwiXG5leHRlcm5hbCBzZWVrX2luIDogaW5fY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXCJcbmV4dGVybmFsIHBvc19pbiA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19pblwiXG5leHRlcm5hbCBpbl9jaGFubmVsX2xlbmd0aCA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9pbiA6IGluX2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9jbG9zZV9jaGFubmVsXCJcbmxldCBjbG9zZV9pbl9ub2VyciBpYyA9ICh0cnkgY2xvc2VfaW4gaWMgd2l0aCBfIC0+ICgpKVxuZXh0ZXJuYWwgc2V0X2JpbmFyeV9tb2RlX2luIDogaW5fY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcIlxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIG91dHB1dCAqKVxuXG5sZXQgcHJpbnRfY2hhciBjID0gb3V0cHV0X2NoYXIgc3Rkb3V0IGNcbmxldCBwcmludF9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IHNcbmxldCBwcmludF9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZG91dCBzXG5sZXQgcHJpbnRfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByaW50X2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJpbnRfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRvdXQgczsgb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcbmxldCBwcmludF9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBlcnJvciAqKVxuXG5sZXQgcHJlcnJfY2hhciBjID0gb3V0cHV0X2NoYXIgc3RkZXJyIGNcbmxldCBwcmVycl9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIHNcbmxldCBwcmVycl9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZGVyciBzXG5sZXQgcHJlcnJfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByZXJyX2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJlcnJfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRlcnIgczsgb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcbmxldCBwcmVycl9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcblxuKCogSW5wdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIGlucHV0ICopXG5cbmxldCByZWFkX2xpbmUgKCkgPSBmbHVzaCBzdGRvdXQ7IGlucHV0X2xpbmUgc3RkaW5cbmxldCByZWFkX2ludCAoKSA9IGludF9vZl9zdHJpbmcocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9pbnRfb3B0ICgpID0gaW50X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9mbG9hdCAoKSA9IGZsb2F0X29mX3N0cmluZyhyZWFkX2xpbmUoKSlcbmxldCByZWFkX2Zsb2F0X29wdCAoKSA9IGZsb2F0X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5cbigqIE9wZXJhdGlvbnMgb24gbGFyZ2UgZmlsZXMgKilcblxubW9kdWxlIExhcmdlRmlsZSA9XG4gIHN0cnVjdFxuICAgIGV4dGVybmFsIHNlZWtfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dF82NFwiXG4gICAgZXh0ZXJuYWwgcG9zX291dCA6IG91dF9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19vdXRfNjRcIlxuICAgIGV4dGVybmFsIG91dF9jaGFubmVsX2xlbmd0aCA6IG91dF9jaGFubmVsIC0+IGludDY0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gICAgZXh0ZXJuYWwgc2Vla19pbiA6IGluX2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXzY0XCJcbiAgICBleHRlcm5hbCBwb3NfaW4gOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19pbl82NFwiXG4gICAgZXh0ZXJuYWwgaW5fY2hhbm5lbF9sZW5ndGggOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gIGVuZFxuXG4oKiBGb3JtYXRzICopXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDZcbiAgID0gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG4gICA9IEZvcm1hdCBvZiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZtdFxuICAgICAgICAgICAgICAgKiBzdHJpbmdcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIGZvcm1hdDQgPSAoJ2EsICdiLCAnYywgJ2MsICdjLCAnZCkgZm9ybWF0NlxuXG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcblxubGV0IHN0cmluZ19vZl9mb3JtYXQgKEZvcm1hdCAoX2ZtdCwgc3RyKSkgPSBzdHJcblxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9IFwiJWlkZW50aXR5XCJcblxubGV0ICggXl4gKSAoRm9ybWF0IChmbXQxLCBzdHIxKSkgKEZvcm1hdCAoZm10Miwgc3RyMikpID1cbiAgRm9ybWF0IChDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuY29uY2F0X2ZtdCBmbXQxIGZtdDIsXG4gICAgICAgICAgc3RyMSBeIFwiJSxcIiBeIHN0cjIpXG5cbigqIE1pc2NlbGxhbmVvdXMgKilcblxuZXh0ZXJuYWwgc3lzX2V4aXQgOiBpbnQgLT4gJ2EgPSBcImNhbWxfc3lzX2V4aXRcIlxuXG5sZXQgZXhpdF9mdW5jdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGZsdXNoX2FsbFxuXG5sZXQgcmVjIGF0X2V4aXQgZiA9XG4gIGxldCBtb2R1bGUgQXRvbWljID0gQ2FtbGludGVybmFsQXRvbWljIGluXG4gICgqIE1QUiM3MjUzLCBNUFIjNzc5NjogbWFrZSBzdXJlIFwiZlwiIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSAqKVxuICBsZXQgZl95ZXRfdG9fcnVuID0gQXRvbWljLm1ha2UgdHJ1ZSBpblxuICBsZXQgb2xkX2V4aXQgPSBBdG9taWMuZ2V0IGV4aXRfZnVuY3Rpb24gaW5cbiAgbGV0IG5ld19leGl0ICgpID1cbiAgICBpZiBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGZfeWV0X3RvX3J1biB0cnVlIGZhbHNlIHRoZW4gZiAoKSA7XG4gICAgb2xkX2V4aXQgKClcbiAgaW5cbiAgbGV0IHN1Y2Nlc3MgPSBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGV4aXRfZnVuY3Rpb24gb2xkX2V4aXQgbmV3X2V4aXQgaW5cbiAgaWYgbm90IHN1Y2Nlc3MgdGhlbiBhdF9leGl0IGZcblxubGV0IGRvX2F0X2V4aXQgKCkgPSAoQ2FtbGludGVybmFsQXRvbWljLmdldCBleGl0X2Z1bmN0aW9uKSAoKVxuXG5sZXQgZXhpdCByZXRjb2RlID1cbiAgZG9fYXRfZXhpdCAoKTtcbiAgc3lzX2V4aXQgcmV0Y29kZVxuXG5sZXQgXyA9IHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUGVydmFzaXZlcy5kb19hdF9leGl0XCIgZG9fYXRfZXhpdFxuXG5leHRlcm5hbCBtYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19tYWpvclwiXG5leHRlcm5hbCBuYWtlZF9wb2ludGVyc19jaGVja2VkIDogdW5pdCAtPiBib29sXG4gID0gXCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkXCJcbmxldCAoKSA9IGlmIG5ha2VkX3BvaW50ZXJzX2NoZWNrZWQgKCkgdGhlbiBhdF9leGl0IG1ham9yXG5cbigqTU9EVUxFX0FMSUFTRVMqKVxubW9kdWxlIEFyZyAgICAgICAgICA9IEFyZ1xubW9kdWxlIEFycmF5ICAgICAgICA9IEFycmF5XG5tb2R1bGUgQXJyYXlMYWJlbHMgID0gQXJyYXlMYWJlbHNcbm1vZHVsZSBBdG9taWMgICAgICAgPSBBdG9taWNcbm1vZHVsZSBCaWdhcnJheSAgICAgPSBCaWdhcnJheVxubW9kdWxlIEJvb2wgICAgICAgICA9IEJvb2xcbm1vZHVsZSBCdWZmZXIgICAgICAgPSBCdWZmZXJcbm1vZHVsZSBCeXRlcyAgICAgICAgPSBCeXRlc1xubW9kdWxlIEJ5dGVzTGFiZWxzICA9IEJ5dGVzTGFiZWxzXG5tb2R1bGUgQ2FsbGJhY2sgICAgID0gQ2FsbGJhY2tcbm1vZHVsZSBDaGFyICAgICAgICAgPSBDaGFyXG5tb2R1bGUgQ29tcGxleCAgICAgID0gQ29tcGxleFxubW9kdWxlIERpZ2VzdCAgICAgICA9IERpZ2VzdFxubW9kdWxlIEVpdGhlciAgICAgICA9IEVpdGhlclxubW9kdWxlIEVwaGVtZXJvbiAgICA9IEVwaGVtZXJvblxubW9kdWxlIEZpbGVuYW1lICAgICA9IEZpbGVuYW1lXG5tb2R1bGUgRmxvYXQgICAgICAgID0gRmxvYXRcbm1vZHVsZSBGb3JtYXQgICAgICAgPSBGb3JtYXRcbm1vZHVsZSBGdW4gICAgICAgICAgPSBGdW5cbm1vZHVsZSBHYyAgICAgICAgICAgPSBHY1xubW9kdWxlIEdlbmxleCAgICAgICA9IEdlbmxleFxubW9kdWxlIEhhc2h0YmwgICAgICA9IEhhc2h0Ymxcbm1vZHVsZSBJbl9jaGFubmVsICAgPSBJbl9jaGFubmVsXG5tb2R1bGUgSW50ICAgICAgICAgID0gSW50XG5tb2R1bGUgSW50MzIgICAgICAgID0gSW50MzJcbm1vZHVsZSBJbnQ2NCAgICAgICAgPSBJbnQ2NFxubW9kdWxlIExhenkgICAgICAgICA9IExhenlcbm1vZHVsZSBMZXhpbmcgICAgICAgPSBMZXhpbmdcbm1vZHVsZSBMaXN0ICAgICAgICAgPSBMaXN0XG5tb2R1bGUgTGlzdExhYmVscyAgID0gTGlzdExhYmVsc1xubW9kdWxlIE1hcCAgICAgICAgICA9IE1hcFxubW9kdWxlIE1hcnNoYWwgICAgICA9IE1hcnNoYWxcbm1vZHVsZSBNb3JlTGFiZWxzICAgPSBNb3JlTGFiZWxzXG5tb2R1bGUgTmF0aXZlaW50ICAgID0gTmF0aXZlaW50XG5tb2R1bGUgT2JqICAgICAgICAgID0gT2JqXG5tb2R1bGUgT28gICAgICAgICAgID0gT29cbm1vZHVsZSBPcHRpb24gICAgICAgPSBPcHRpb25cbm1vZHVsZSBPdXRfY2hhbm5lbCAgPSBPdXRfY2hhbm5lbFxubW9kdWxlIFBhcnNpbmcgICAgICA9IFBhcnNpbmdcbm1vZHVsZSBQZXJ2YXNpdmVzICAgPSBQZXJ2YXNpdmVzXG5tb2R1bGUgUHJpbnRleGMgICAgID0gUHJpbnRleGNcbm1vZHVsZSBQcmludGYgICAgICAgPSBQcmludGZcbm1vZHVsZSBRdWV1ZSAgICAgICAgPSBRdWV1ZVxubW9kdWxlIFJhbmRvbSAgICAgICA9IFJhbmRvbVxubW9kdWxlIFJlc3VsdCAgICAgICA9IFJlc3VsdFxubW9kdWxlIFNjYW5mICAgICAgICA9IFNjYW5mXG5tb2R1bGUgU2VxICAgICAgICAgID0gU2VxXG5tb2R1bGUgU2V0ICAgICAgICAgID0gU2V0XG5tb2R1bGUgU3RhY2sgICAgICAgID0gU3RhY2tcbm1vZHVsZSBTdGRMYWJlbHMgICAgPSBTdGRMYWJlbHNcbm1vZHVsZSBTdHJlYW0gICAgICAgPSBTdHJlYW1cbm1vZHVsZSBTdHJpbmcgICAgICAgPSBTdHJpbmdcbm1vZHVsZSBTdHJpbmdMYWJlbHMgPSBTdHJpbmdMYWJlbHNcbm1vZHVsZSBTeXMgICAgICAgICAgPSBTeXNcbm1vZHVsZSBVY2hhciAgICAgICAgPSBVY2hhclxubW9kdWxlIFVuaXQgICAgICAgICA9IFVuaXRcbm1vZHVsZSBXZWFrICAgICAgICAgPSBXZWFrXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICBKZXJlbWllIERpbWlubywgSmFuZSBTdHJlZXQgRXVyb3BlICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEphbmUgU3RyZWV0IEdyb3VwIExMQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiBAZGVwcmVjYXRlZCBVc2UgeyFTdGRsaWJ9ICopXG5cbmV4dGVybmFsIHJhaXNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2VcIlxuZXh0ZXJuYWwgcmFpc2Vfbm90cmFjZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlX25vdHJhY2VcIlxubGV0IGludmFsaWRfYXJnID0gaW52YWxpZF9hcmdcbmxldCBmYWlsd2l0aCA9IGZhaWx3aXRoXG5leGNlcHRpb24gRXhpdFxuZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcbmV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcbmV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcbmV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5leHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgbWluID0gbWluXG5sZXQgbWF4ID0gbWF4XG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbiAgW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSAoJiYpIGluc3RlYWQuXCJdXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5leHRlcm5hbCAoIG9yICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG4gIFtAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgKHx8KSBpbnN0ZWFkLlwiXVxuZXh0ZXJuYWwgX19MT0NfXyA6IHN0cmluZyA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19GSUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfRklMRVwiXG5leHRlcm5hbCBfX0xJTkVfXyA6IGludCA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fTU9EVUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfTU9EVUxFXCJcbmV4dGVybmFsIF9fUE9TX18gOiBzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsIF9fTE9DX09GX18gOiAnYSAtPiBzdHJpbmcgKiAnYSA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19MSU5FX09GX18gOiAnYSAtPiBpbnQgKiAnYSA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fUE9TX09GX18gOiAnYSAtPiAoc3RyaW5nICogaW50ICogaW50ICogaW50KSAqICdhID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxubGV0IGFicyA9IGFic1xubGV0IG1heF9pbnQgPSBtYXhfaW50XG5sZXQgbWluX2ludCA9IG1pbl9pbnRcbmV4dGVybmFsICggbGFuZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgKCBsb3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgKCBseG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5sZXQgbG5vdCA9IGxub3RcbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcbmV4dGVybmFsICggfi0uICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsICggfisuICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsICggKy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgKCAtLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCAoICouICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsICggLy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgKCAqKiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5sZXQgaW5maW5pdHkgPSBpbmZpbml0eVxubGV0IG5lZ19pbmZpbml0eSA9IG5lZ19pbmZpbml0eVxubGV0IG5hbiA9IG5hblxubGV0IG1heF9mbG9hdCA9IG1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IG1pbl9mbG9hdFxubGV0IGVwc2lsb25fZmxvYXQgPSBlcHNpbG9uX2Zsb2F0XG50eXBlIG5vbnJlYyBmcGNsYXNzID0gZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxubGV0ICggXiApID0gKCBeIClcbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5sZXQgY2hhcl9vZl9pbnQgPSBjaGFyX29mX2ludFxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5sZXQgc3RyaW5nX29mX2Jvb2wgPSBzdHJpbmdfb2ZfYm9vbFxubGV0IGJvb2xfb2Zfc3RyaW5nID0gYm9vbF9vZl9zdHJpbmdcbmxldCBib29sX29mX3N0cmluZ19vcHQgPSBib29sX29mX3N0cmluZ19vcHRcbmxldCBzdHJpbmdfb2ZfaW50ID0gc3RyaW5nX29mX2ludFxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5sZXQgaW50X29mX3N0cmluZ19vcHQgPSBpbnRfb2Zfc3RyaW5nX29wdFxubGV0IHN0cmluZ19vZl9mbG9hdCA9IHN0cmluZ19vZl9mbG9hdFxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCA9IGZsb2F0X29mX3N0cmluZ19vcHRcbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5sZXQgKCBAICkgID0gKCBAIClcbnR5cGUgbm9ucmVjIGluX2NoYW5uZWwgPSBpbl9jaGFubmVsXG50eXBlIG5vbnJlYyBvdXRfY2hhbm5lbCA9IG91dF9jaGFubmVsXG5sZXQgc3RkaW4gPSBzdGRpblxubGV0IHN0ZG91dCA9IHN0ZG91dFxubGV0IHN0ZGVyciA9IHN0ZGVyclxubGV0IHByaW50X2NoYXIgPSBwcmludF9jaGFyXG5sZXQgcHJpbnRfc3RyaW5nID0gcHJpbnRfc3RyaW5nXG5sZXQgcHJpbnRfYnl0ZXMgPSBwcmludF9ieXRlc1xubGV0IHByaW50X2ludCA9IHByaW50X2ludFxubGV0IHByaW50X2Zsb2F0ID0gcHJpbnRfZmxvYXRcbmxldCBwcmludF9lbmRsaW5lID0gcHJpbnRfZW5kbGluZVxubGV0IHByaW50X25ld2xpbmUgPSBwcmludF9uZXdsaW5lXG5sZXQgcHJlcnJfY2hhciA9IHByZXJyX2NoYXJcbmxldCBwcmVycl9zdHJpbmcgPSBwcmVycl9zdHJpbmdcbmxldCBwcmVycl9ieXRlcyA9IHByZXJyX2J5dGVzXG5sZXQgcHJlcnJfaW50ID0gcHJlcnJfaW50XG5sZXQgcHJlcnJfZmxvYXQgPSBwcmVycl9mbG9hdFxubGV0IHByZXJyX2VuZGxpbmUgPSBwcmVycl9lbmRsaW5lXG5sZXQgcHJlcnJfbmV3bGluZSA9IHByZXJyX25ld2xpbmVcbmxldCByZWFkX2xpbmUgPSByZWFkX2xpbmVcbmxldCByZWFkX2ludCA9IHJlYWRfaW50XG5sZXQgcmVhZF9pbnRfb3B0ID0gcmVhZF9pbnRfb3B0XG5sZXQgcmVhZF9mbG9hdCA9IHJlYWRfZmxvYXRcbmxldCByZWFkX2Zsb2F0X29wdCA9IHJlYWRfZmxvYXRfb3B0XG50eXBlIG5vbnJlYyBvcGVuX2ZsYWcgPSBvcGVuX2ZsYWcgPVxuICAgIE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5sZXQgb3Blbl9vdXQgPSBvcGVuX291dFxubGV0IG9wZW5fb3V0X2JpbiA9IG9wZW5fb3V0X2JpblxubGV0IG9wZW5fb3V0X2dlbiA9IG9wZW5fb3V0X2dlblxubGV0IGZsdXNoID0gZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBmbHVzaF9hbGxcbmxldCBvdXRwdXRfY2hhciA9IG91dHB1dF9jaGFyXG5sZXQgb3V0cHV0X3N0cmluZyA9IG91dHB1dF9zdHJpbmdcbmxldCBvdXRwdXRfYnl0ZXMgPSBvdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBvdXRwdXRcbmxldCBvdXRwdXRfc3Vic3RyaW5nID0gb3V0cHV0X3N1YnN0cmluZ1xubGV0IG91dHB1dF9ieXRlID0gb3V0cHV0X2J5dGVcbmxldCBvdXRwdXRfYmluYXJ5X2ludCA9IG91dHB1dF9iaW5hcnlfaW50XG5sZXQgb3V0cHV0X3ZhbHVlID0gb3V0cHV0X3ZhbHVlXG5sZXQgc2Vla19vdXQgPSBzZWVrX291dFxubGV0IHBvc19vdXQgPSBwb3Nfb3V0XG5sZXQgb3V0X2NoYW5uZWxfbGVuZ3RoID0gb3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2Vfb3V0ID0gY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfb3V0X25vZXJyID0gY2xvc2Vfb3V0X25vZXJyXG5sZXQgc2V0X2JpbmFyeV9tb2RlX291dCA9IHNldF9iaW5hcnlfbW9kZV9vdXRcbmxldCBvcGVuX2luID0gb3Blbl9pblxubGV0IG9wZW5faW5fYmluID0gb3Blbl9pbl9iaW5cbmxldCBvcGVuX2luX2dlbiA9IG9wZW5faW5fZ2VuXG5sZXQgaW5wdXRfY2hhciA9IGlucHV0X2NoYXJcbmxldCBpbnB1dF9saW5lID0gaW5wdXRfbGluZVxubGV0IGlucHV0ID0gaW5wdXRcbmxldCByZWFsbHlfaW5wdXQgPSByZWFsbHlfaW5wdXRcbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nID0gcmVhbGx5X2lucHV0X3N0cmluZ1xubGV0IGlucHV0X2J5dGUgPSBpbnB1dF9ieXRlXG5sZXQgaW5wdXRfYmluYXJ5X2ludCA9IGlucHV0X2JpbmFyeV9pbnRcbmxldCBpbnB1dF92YWx1ZSA9IGlucHV0X3ZhbHVlXG5sZXQgc2Vla19pbiA9IHNlZWtfaW5cbmxldCBwb3NfaW4gPSBwb3NfaW5cbmxldCBpbl9jaGFubmVsX2xlbmd0aCA9IGluX2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2VfaW4gPSBjbG9zZV9pblxubGV0IGNsb3NlX2luX25vZXJyID0gY2xvc2VfaW5fbm9lcnJcbmxldCBzZXRfYmluYXJ5X21vZGVfaW4gPSBzZXRfYmluYXJ5X21vZGVfaW5cbm1vZHVsZSBMYXJnZUZpbGUgPSBMYXJnZUZpbGVcbnR5cGUgbm9ucmVjICdhIHJlZiA9ICdhIHJlZiA9IHsgbXV0YWJsZSBjb250ZW50cyA6ICdhIH1cbmV4dGVybmFsIHJlZiA6ICdhIC0+ICdhIHJlZiA9IFwiJW1ha2VtdXRhYmxlXCJcbmV4dGVybmFsICggISApIDogJ2EgcmVmIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsICggOj0gKSA6ICdhIHJlZiAtPiAnYSAtPiB1bml0ID0gXCIlc2V0ZmllbGQwXCJcbmV4dGVybmFsIGluY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVpbmNyXCJcbmV4dGVybmFsIGRlY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVkZWNyXCJcbnR5cGUgbm9ucmVjICgnYSwnYikgcmVzdWx0ID0gKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjLCAnZCkgZm9ybWF0NCA9ICgnYSwgJ2IsICdjLCAnYywgJ2MsICdkKSBmb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcbmxldCBzdHJpbmdfb2ZfZm9ybWF0ID0gc3RyaW5nX29mX2Zvcm1hdFxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID0gXCIlaWRlbnRpdHlcIlxubGV0ICggXl4gKSA9ICggXl4gKVxubGV0IGV4aXQgPSBleGl0XG5sZXQgYXRfZXhpdCA9IGF0X2V4aXRcbmxldCB2YWxpZF9mbG9hdF9sZXhlbSA9IHZhbGlkX2Zsb2F0X2xleGVtXG5sZXQgZG9fYXRfZXhpdCA9IGRvX2F0X2V4aXRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXG4gICBUaGlzIGlzIGEgbGFnZ2VkLUZpYm9uYWNjaSBGKDU1LCAyNCwgKykgd2l0aCBhIG1vZGlmaWVkIGFkZGl0aW9uXG4gICBmdW5jdGlvbiB0byBlbmhhbmNlIHRoZSBtaXhpbmcgb2YgYml0cy5cbiAgIElmIHdlIHVzZSBub3JtYWwgYWRkaXRpb24sIHRoZSBsb3ctb3JkZXIgYml0IGZhaWxzIHRlc3RzIDEgYW5kIDdcbiAgIG9mIHRoZSBEaWVoYXJkIHRlc3Qgc3VpdGUsIGFuZCBiaXRzIDEgYW5kIDIgYWxzbyBmYWlsIHRlc3QgNy5cbiAgIElmIHdlIHVzZSBtdWx0aXBsaWNhdGlvbiBhcyBzdWdnZXN0ZWQgYnkgTWFyc2FnbGlhLCBpdCBkb2Vzbid0IGZhcmVcbiAgIG11Y2ggYmV0dGVyLlxuICAgQnkgbWl4aW5nIHRoZSBiaXRzIG9mIG9uZSBvZiB0aGUgbnVtYmVycyBiZWZvcmUgYWRkaXRpb24gKFhPUiB0aGVcbiAgIDUgaGlnaC1vcmRlciBiaXRzIGludG8gdGhlIGxvdy1vcmRlciBiaXRzKSwgd2UgZ2V0IGEgZ2VuZXJhdG9yIHRoYXRcbiAgIHBhc3NlcyBhbGwgdGhlIERpZWhhcmQgdGVzdHMuXG4qKVxuXG5leHRlcm5hbCByYW5kb21fc2VlZDogdW5pdCAtPiBpbnQgYXJyYXkgPSBcImNhbWxfc3lzX3JhbmRvbV9zZWVkXCJcblxubW9kdWxlIFN0YXRlID0gc3RydWN0XG5cbiAgdHlwZSB0ID0geyBzdCA6IGludCBhcnJheTsgbXV0YWJsZSBpZHggOiBpbnQgfVxuXG4gIGxldCBuZXdfc3RhdGUgKCkgPSB7IHN0ID0gQXJyYXkubWFrZSA1NSAwOyBpZHggPSAwIH1cbiAgbGV0IGFzc2lnbiBzdDEgc3QyID1cbiAgICBBcnJheS5ibGl0IHN0Mi5zdCAwIHN0MS5zdCAwIDU1O1xuICAgIHN0MS5pZHggPC0gc3QyLmlkeFxuXG5cbiAgbGV0IGZ1bGxfaW5pdCBzIHNlZWQgPVxuICAgIGxldCBjb21iaW5lIGFjY3UgeCA9IERpZ2VzdC5zdHJpbmcgKGFjY3UgXiBJbnQudG9fc3RyaW5nIHgpIGluXG4gICAgbGV0IGV4dHJhY3QgZCA9XG4gICAgICBDaGFyLmNvZGUgZC5bMF0gKyAoQ2hhci5jb2RlIGQuWzFdIGxzbCA4KSArIChDaGFyLmNvZGUgZC5bMl0gbHNsIDE2KVxuICAgICAgKyAoQ2hhci5jb2RlIGQuWzNdIGxzbCAyNClcbiAgICBpblxuICAgIGxldCBzZWVkID0gaWYgQXJyYXkubGVuZ3RoIHNlZWQgPSAwIHRoZW4gW3wgMCB8XSBlbHNlIHNlZWQgaW5cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBzZWVkIGluXG4gICAgZm9yIGkgPSAwIHRvIDU0IGRvXG4gICAgICBzLnN0LihpKSA8LSBpO1xuICAgIGRvbmU7XG4gICAgbGV0IGFjY3UgPSByZWYgXCJ4XCIgaW5cbiAgICBmb3IgaSA9IDAgdG8gNTQgKyBJbnQubWF4IDU1IGwgZG9cbiAgICAgIGxldCBqID0gaSBtb2QgNTUgaW5cbiAgICAgIGxldCBrID0gaSBtb2QgbCBpblxuICAgICAgYWNjdSA6PSBjb21iaW5lICFhY2N1IHNlZWQuKGspO1xuICAgICAgcy5zdC4oaikgPC0gKHMuc3QuKGopIGx4b3IgZXh0cmFjdCAhYWNjdSkgbGFuZCAweDNGRkZGRkZGOyAgKCogUFIjNTU3NSAqKVxuICAgIGRvbmU7XG4gICAgcy5pZHggPC0gMFxuXG5cbiAgbGV0IG1ha2Ugc2VlZCA9XG4gICAgbGV0IHJlc3VsdCA9IG5ld19zdGF0ZSAoKSBpblxuICAgIGZ1bGxfaW5pdCByZXN1bHQgc2VlZDtcbiAgICByZXN1bHRcblxuXG4gIGxldCBtYWtlX3NlbGZfaW5pdCAoKSA9IG1ha2UgKHJhbmRvbV9zZWVkICgpKVxuXG4gIGxldCBjb3B5IHMgPVxuICAgIGxldCByZXN1bHQgPSBuZXdfc3RhdGUgKCkgaW5cbiAgICBhc3NpZ24gcmVzdWx0IHM7XG4gICAgcmVzdWx0XG5cblxuICAoKiBSZXR1cm5zIDMwIHJhbmRvbSBiaXRzIGFzIGFuIGludGVnZXIgMCA8PSB4IDwgMTA3Mzc0MTgyNCAqKVxuICBsZXQgYml0cyBzID1cbiAgICBzLmlkeCA8LSAocy5pZHggKyAxKSBtb2QgNTU7XG4gICAgbGV0IGN1cnZhbCA9IHMuc3QuKHMuaWR4KSBpblxuICAgIGxldCBuZXd2YWwgPSBzLnN0Ligocy5pZHggKyAyNCkgbW9kIDU1KVxuICAgICAgICAgICAgICAgICArIChjdXJ2YWwgbHhvciAoKGN1cnZhbCBsc3IgMjUpIGxhbmQgMHgxRikpIGluXG4gICAgbGV0IG5ld3ZhbDMwID0gbmV3dmFsIGxhbmQgMHgzRkZGRkZGRiBpbiAgKCogUFIjNTU3NSAqKVxuICAgIHMuc3QuKHMuaWR4KSA8LSBuZXd2YWwzMDtcbiAgICBuZXd2YWwzMFxuXG5cbiAgbGV0IHJlYyBpbnRhdXggcyBuID1cbiAgICBsZXQgciA9IGJpdHMgcyBpblxuICAgIGxldCB2ID0gciBtb2QgbiBpblxuICAgIGlmIHIgLSB2ID4gMHgzRkZGRkZGRiAtIG4gKyAxIHRoZW4gaW50YXV4IHMgbiBlbHNlIHZcblxuICBsZXQgaW50IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kID4gMHgzRkZGRkZGRiB8fCBib3VuZCA8PSAwXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnRcIlxuICAgIGVsc2UgaW50YXV4IHMgYm91bmRcblxuICBsZXQgcmVjIGludDYzYXV4IHMgbiA9XG4gICAgbGV0IG1heF9pbnRfMzIgPSAoMSBsc2wgMzApICsgMHgzRkZGRkZGRiBpbiAoKiAweDdGRkZGRkZGICopXG4gICAgbGV0IGIxID0gYml0cyBzIGluXG4gICAgbGV0IGIyID0gYml0cyBzIGluXG4gICAgbGV0IChyLCBtYXhfaW50KSA9XG4gICAgICBpZiBuIDw9IG1heF9pbnRfMzIgdGhlblxuICAgICAgICAoKiAzMSByYW5kb20gYml0cyBvbiBib3RoIDY0LWJpdCBPQ2FtbCBhbmQgSmF2YVNjcmlwdC5cbiAgICAgICAgICAgVXNlIHVwcGVyIDE1IGJpdHMgb2YgYjEgYW5kIDE2IGJpdHMgb2YgYjIuICopXG4gICAgICAgIGxldCBicG9zID1cbiAgICAgICAgICAoKChiMiBsYW5kIDB4M0ZGRkMwMDApIGxzbCAxKSBsb3IgKGIxIGxzciAxNSkpXG4gICAgICAgIGluXG4gICAgICAgICAgKGJwb3MsIG1heF9pbnRfMzIpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBiMyA9IGJpdHMgcyBpblxuICAgICAgICAoKiA2MiByYW5kb20gYml0cyBvbiA2NC1iaXQgT0NhbWw7IHVucmVhY2hhYmxlIG9uIEphdmFTY3JpcHQuXG4gICAgICAgICAgIFVzZSB1cHBlciAyMCBiaXRzIG9mIGIxIGFuZCAyMSBiaXRzIG9mIGIyIGFuZCBiMy4gKilcbiAgICAgICAgbGV0IGJwb3MgPVxuICAgICAgICAgICgoKChiMyBsYW5kIDB4M0ZGRkZFMDApIGxzbCAxMikgbG9yIChiMiBsc3IgOSkpIGxzbCAyMClcbiAgICAgICAgICAgIGxvciAoYjEgbHNyIDEwKVxuICAgICAgICBpblxuICAgICAgICAgIChicG9zLCBtYXhfaW50KVxuICAgIGluXG4gICAgbGV0IHYgPSByIG1vZCBuIGluXG4gICAgaWYgciAtIHYgPiBtYXhfaW50IC0gbiArIDEgdGhlbiBpbnQ2M2F1eCBzIG4gZWxzZSB2XG5cbiAgbGV0IGZ1bGxfaW50IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDAgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJSYW5kb20uZnVsbF9pbnRcIlxuICAgIGVsc2UgaWYgYm91bmQgPiAweDNGRkZGRkZGIHRoZW5cbiAgICAgIGludDYzYXV4IHMgYm91bmRcbiAgICBlbHNlXG4gICAgICBpbnRhdXggcyBib3VuZFxuXG5cbiAgbGV0IHJlYyBpbnQzMmF1eCBzIG4gPVxuICAgIGxldCBiMSA9IEludDMyLm9mX2ludCAoYml0cyBzKSBpblxuICAgIGxldCBiMiA9IEludDMyLnNoaWZ0X2xlZnQgKEludDMyLm9mX2ludCAoYml0cyBzIGxhbmQgMSkpIDMwIGluXG4gICAgbGV0IHIgPSBJbnQzMi5sb2dvciBiMSBiMiBpblxuICAgIGxldCB2ID0gSW50MzIucmVtIHIgbiBpblxuICAgIGlmIEludDMyLnN1YiByIHYgPiBJbnQzMi5hZGQgKEludDMyLnN1YiBJbnQzMi5tYXhfaW50IG4pIDFsXG4gICAgdGhlbiBpbnQzMmF1eCBzIG5cbiAgICBlbHNlIHZcblxuICBsZXQgaW50MzIgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMGxcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludDMyXCJcbiAgICBlbHNlIGludDMyYXV4IHMgYm91bmRcblxuXG4gIGxldCByZWMgaW50NjRhdXggcyBuID1cbiAgICBsZXQgYjEgPSBJbnQ2NC5vZl9pbnQgKGJpdHMgcykgaW5cbiAgICBsZXQgYjIgPSBJbnQ2NC5zaGlmdF9sZWZ0IChJbnQ2NC5vZl9pbnQgKGJpdHMgcykpIDMwIGluXG4gICAgbGV0IGIzID0gSW50NjQuc2hpZnRfbGVmdCAoSW50NjQub2ZfaW50IChiaXRzIHMgbGFuZCA3KSkgNjAgaW5cbiAgICBsZXQgciA9IEludDY0LmxvZ29yIGIxIChJbnQ2NC5sb2dvciBiMiBiMykgaW5cbiAgICBsZXQgdiA9IEludDY0LnJlbSByIG4gaW5cbiAgICBpZiBJbnQ2NC5zdWIgciB2ID4gSW50NjQuYWRkIChJbnQ2NC5zdWIgSW50NjQubWF4X2ludCBuKSAxTFxuICAgIHRoZW4gaW50NjRhdXggcyBuXG4gICAgZWxzZSB2XG5cbiAgbGV0IGludDY0IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDBMXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnQ2NFwiXG4gICAgZWxzZSBpbnQ2NGF1eCBzIGJvdW5kXG5cblxuICBsZXQgbmF0aXZlaW50ID1cbiAgICBpZiBOYXRpdmVpbnQuc2l6ZSA9IDMyXG4gICAgdGhlbiBmdW4gcyBib3VuZCAtPiBOYXRpdmVpbnQub2ZfaW50MzIgKGludDMyIHMgKE5hdGl2ZWludC50b19pbnQzMiBib3VuZCkpXG4gICAgZWxzZSBmdW4gcyBib3VuZCAtPiBJbnQ2NC50b19uYXRpdmVpbnQgKGludDY0IHMgKEludDY0Lm9mX25hdGl2ZWludCBib3VuZCkpXG5cblxuICAoKiBSZXR1cm5zIGEgZmxvYXQgMCA8PSB4IDw9IDEgd2l0aCBhdCBtb3N0IDYwIGJpdHMgb2YgcHJlY2lzaW9uLiAqKVxuICBsZXQgcmF3ZmxvYXQgcyA9XG4gICAgbGV0IHNjYWxlID0gMTA3Mzc0MTgyNC4wICAoKiAyXjMwICopXG4gICAgYW5kIHIxID0gU3RkbGliLmZsb2F0IChiaXRzIHMpXG4gICAgYW5kIHIyID0gU3RkbGliLmZsb2F0IChiaXRzIHMpXG4gICAgaW4gKHIxIC8uIHNjYWxlICsuIHIyKSAvLiBzY2FsZVxuXG5cbiAgbGV0IGZsb2F0IHMgYm91bmQgPSByYXdmbG9hdCBzICouIGJvdW5kXG5cbiAgbGV0IGJvb2wgcyA9IChiaXRzIHMgbGFuZCAxID0gMClcblxuICBsZXQgYml0czMyIHMgPVxuICAgIGxldCBiMSA9IEludDMyLihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDE0KSBpbiAgKCogMTYgYml0cyAqKVxuICAgIGxldCBiMiA9IEludDMyLihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDE0KSBpbiAgKCogMTYgYml0cyAqKVxuICAgIEludDMyLihsb2dvciBiMSAoc2hpZnRfbGVmdCBiMiAxNikpXG5cbiAgbGV0IGJpdHM2NCBzID1cbiAgICBsZXQgYjEgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA5KSBpbiAgKCogMjEgYml0cyAqKVxuICAgIGxldCBiMiA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDkpIGluICAoKiAyMSBiaXRzICopXG4gICAgbGV0IGIzID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOCkgaW4gICgqIDIyIGJpdHMgKilcbiAgICBJbnQ2NC4obG9nb3IgYjEgKGxvZ29yIChzaGlmdF9sZWZ0IGIyIDIxKSAoc2hpZnRfbGVmdCBiMyA0MikpKVxuXG4gIGxldCBuYXRpdmViaXRzID1cbiAgICBpZiBOYXRpdmVpbnQuc2l6ZSA9IDMyXG4gICAgdGhlbiBmdW4gcyAtPiBOYXRpdmVpbnQub2ZfaW50MzIgKGJpdHMzMiBzKVxuICAgIGVsc2UgZnVuIHMgLT4gSW50NjQudG9fbmF0aXZlaW50IChiaXRzNjQgcylcblxuZW5kXG5cbigqIFRoaXMgaXMgdGhlIHN0YXRlIHlvdSBnZXQgd2l0aCBbaW5pdCAyNzE4MjgxOF0gYW5kIHRoZW4gYXBwbHlpbmdcbiAgIHRoZSBcImxhbmQgMHgzRkZGRkZGRlwiIGZpbHRlciB0byB0aGVtLiAgU2VlICM1NTc1LCAjNTc5MywgIzU5NzcuICopXG5sZXQgZGVmYXVsdCA9IHtcbiAgU3RhdGUuc3QgPSBbfFxuICAgICAgMHgzYWUyNTIyYjsgMHgxZDhkNDYzNDsgMHgxNWI0ZmFkMDsgMHgxOGIxNGFjZTsgMHgxMmY4YTNjNDsgMHgzYjA4NmM0NztcbiAgICAgIDB4MTZkNDY3ZDY7IDB4MTAxZDkxYzc7IDB4MzIxZGYxNzc7IDB4MDE3NmMxOTM7IDB4MWZmNzJiZjE7IDB4MWU4ODkxMDk7XG4gICAgICAweDBiNDY0YjE4OyAweDJiODZiOTdjOyAweDA4OTFkYTQ4OyAweDAzMTM3NDYzOyAweDA4NWFjNWExOyAweDE1ZDYxZjJmO1xuICAgICAgMHgzYmNlZDM1OTsgMHgyOWMxYzEzMjsgMHgzYTg2NzY2ZTsgMHgzNjZkOGM4NjsgMHgxZjViNjIyMjsgMHgzY2UxYjU5ZjtcbiAgICAgIDB4MmViZjc4ZTE7IDB4MjdjZDFiODY7IDB4MjU4ZjNkYzM7IDB4Mzg5YTgxOTQ7IDB4MDJlNGM0NGM7IDB4MThjNDNmN2Q7XG4gICAgICAweDBmNmU1MzRmOyAweDFlN2RmMzU5OyAweDA1NWQwYjdlOyAweDEwZTg0ZTdlOyAweDEyNjE5OGU0OyAweDBlNzcyMmNiO1xuICAgICAgMHgxY2JlZGUyODsgMHgzMzkxYjk2NDsgMHgzZDQwZTkyYTsgMHgwYzU5OTMzZDsgMHgwYjhjZDBiNzsgMHgyNGVmZmYxYztcbiAgICAgIDB4MjgwM2ZkYWE7IDB4MDhlYmM3MmU7IDB4MGY1MjJlMzI7IDB4MDUzOThlZGM7IDB4MjE0NGEwNGM7IDB4MGFlZjNjYmQ7XG4gICAgICAweDAxYWQ0NzE5OyAweDM1YjkzY2Q2OyAweDJhNTU5ZDRmOyAweDFlNmZkNzY4OyAweDI2ZTI3ZjM2OyAweDE4NmYxOGMzO1xuICAgICAgMHgyZmJmOTY3YTtcbiAgICB8XTtcbiAgU3RhdGUuaWR4ID0gMDtcbn1cblxubGV0IGJpdHMgKCkgPSBTdGF0ZS5iaXRzIGRlZmF1bHRcbmxldCBpbnQgYm91bmQgPSBTdGF0ZS5pbnQgZGVmYXVsdCBib3VuZFxubGV0IGZ1bGxfaW50IGJvdW5kID0gU3RhdGUuZnVsbF9pbnQgZGVmYXVsdCBib3VuZFxubGV0IGludDMyIGJvdW5kID0gU3RhdGUuaW50MzIgZGVmYXVsdCBib3VuZFxubGV0IG5hdGl2ZWludCBib3VuZCA9IFN0YXRlLm5hdGl2ZWludCBkZWZhdWx0IGJvdW5kXG5sZXQgaW50NjQgYm91bmQgPSBTdGF0ZS5pbnQ2NCBkZWZhdWx0IGJvdW5kXG5sZXQgZmxvYXQgc2NhbGUgPSBTdGF0ZS5mbG9hdCBkZWZhdWx0IHNjYWxlXG5sZXQgYm9vbCAoKSA9IFN0YXRlLmJvb2wgZGVmYXVsdFxubGV0IGJpdHMzMiAoKSA9IFN0YXRlLmJpdHMzMiBkZWZhdWx0XG5sZXQgYml0czY0ICgpID0gU3RhdGUuYml0czY0IGRlZmF1bHRcbmxldCBuYXRpdmViaXRzICgpID0gU3RhdGUubmF0aXZlYml0cyBkZWZhdWx0XG5cbmxldCBmdWxsX2luaXQgc2VlZCA9IFN0YXRlLmZ1bGxfaW5pdCBkZWZhdWx0IHNlZWRcbmxldCBpbml0IHNlZWQgPSBTdGF0ZS5mdWxsX2luaXQgZGVmYXVsdCBbfCBzZWVkIHxdXG5sZXQgc2VsZl9pbml0ICgpID0gZnVsbF9pbml0IChyYW5kb21fc2VlZCgpKVxuXG4oKiBNYW5pcHVsYXRpbmcgdGhlIGN1cnJlbnQgc3RhdGUuICopXG5cbmxldCBnZXRfc3RhdGUgKCkgPSBTdGF0ZS5jb3B5IGRlZmF1bHRcbmxldCBzZXRfc3RhdGUgcyA9IFN0YXRlLmFzc2lnbiBkZWZhdWx0IHNcblxuKCoqKioqKioqKioqKioqKioqKioqXG5cbigqIFRlc3QgZnVuY3Rpb25zLiAgTm90IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5LlxuICAgVGhlIFtjaGlzcXVhcmVdIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBuID4gMTByLlxuICAgSXQgcmV0dXJucyBhIHRyaXBsZSAobG93LCBhY3R1YWwsIGhpZ2gpLlxuICAgSWYgbG93IDw9IGFjdHVhbCA8PSBoaWdoLCB0aGUgW2ddIGZ1bmN0aW9uIHBhc3NlZCB0aGUgdGVzdCxcbiAgIG90aGVyd2lzZSBpdCBmYWlsZWQuXG5cbiAgU29tZSByZXN1bHRzOlxuXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDUwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwMCAxMDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDI5OTc5MjY0MzsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAxNDE0MjEzNjsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmIDEwMjQ7IGNoaXNxdWFyZSBkaWZmIDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYgMTAwOyBjaGlzcXVhcmUgZGlmZiAxMDAwMDAgMTAwXG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYyIDEwMjQ7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG5pbml0IDE0MTQyMTM2OyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbmluaXQgMjk5NzkyNjQzOyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbi0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTM2Ljc1NDQ0Njc5NjYzMjQ2NSwgOTk3LjUsIDEwNjMuMjQ1NTUzMjAzMzY3NTQpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4OS43NDAwMDAwMDAwMDUyMzg3LCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDQ4NTguNTc4NjQzNzYyNjksIDUwNDUuNSwgNTE0MS40MjEzNTYyMzczMSlcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9XG4oOTM2Ljc1NDQ0Njc5NjYzMjQ2NSwgOTQ0LjgwNTk5OTk5OTk4MjMwNSwgMTA2My4yNDU1NTMyMDMzNjc1NClcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDE5LjE5NzQ0MDAwMDAwMzU1LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDU5LjMxNzc2MDAwMDAwNTM2LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDM5Ljk4NDYzOTk5OTk5NTEyLCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDU0LjM4MjA3OTk5OTk5NTc3LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDkwLjA5NjAwMDAwMDAwNSwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDc2Ljc4NzIwMDAwMDAwNjEyLCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg1LjE3NjAwMDAwMDAwNjc1MjEsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4NS4yMTYwMDAwMDAwMDAzNDkyLCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODAuNjIyMDAwMDAwMDAzMDI2OCwgMTIwLilcblxuKilcblxuKCogUmV0dXJuIHRoZSBzdW0gb2YgdGhlIHNxdWFyZXMgb2YgdltpMCxpMVsgKilcbmxldCByZWMgc3Vtc3EgdiBpMCBpMSA9XG4gIGlmIGkwID49IGkxIHRoZW4gMC4wXG4gIGVsc2UgaWYgaTEgPSBpMCArIDEgdGhlbiBTdGRsaWIuZmxvYXQgdi4oaTApICouIFN0ZGxpYi5mbG9hdCB2LihpMClcbiAgZWxzZSBzdW1zcSB2IGkwICgoaTAraTEpLzIpICsuIHN1bXNxIHYgKChpMCtpMSkvMikgaTFcblxuXG5sZXQgY2hpc3F1YXJlIGcgbiByID1cbiAgaWYgbiA8PSAxMCAqIHIgdGhlbiBpbnZhbGlkX2FyZyBcImNoaXNxdWFyZVwiO1xuICBsZXQgZiA9IEFycmF5Lm1ha2UgciAwIGluXG4gIGZvciBpID0gMSB0byBuIGRvXG4gICAgbGV0IHQgPSBnIHIgaW5cbiAgICBmLih0KSA8LSBmLih0KSArIDFcbiAgZG9uZTtcbiAgbGV0IHQgPSBzdW1zcSBmIDAgclxuICBhbmQgciA9IFN0ZGxpYi5mbG9hdCByXG4gIGFuZCBuID0gU3RkbGliLmZsb2F0IG4gaW5cbiAgbGV0IHNyID0gMi4wICouIHNxcnQgciBpblxuICAociAtLiBzciwgICAociAqLiB0IC8uIG4pIC0uIG4sICAgciArLiBzcilcblxuXG4oKiBUaGlzIGlzIHRvIHRlc3QgZm9yIGxpbmVhciBkZXBlbmRlbmNpZXMgYmV0d2VlbiBzdWNjZXNzaXZlIHJhbmRvbSBudW1iZXJzLlxuKilcbmxldCBzdCA9IHJlZiAwXG5sZXQgaW5pdF9kaWZmIHIgPSBzdCA6PSBpbnQgclxubGV0IGRpZmYgciA9XG4gIGxldCB4MSA9ICFzdFxuICBhbmQgeDIgPSBpbnQgclxuICBpblxuICBzdCA6PSB4MjtcbiAgaWYgeDEgPj0geDIgdGhlblxuICAgIHgxIC0geDJcbiAgZWxzZVxuICAgIHIgKyB4MSAtIHgyXG5cblxubGV0IHN0MSA9IHJlZiAwXG5hbmQgc3QyID0gcmVmIDBcblxuXG4oKiBUaGlzIGlzIHRvIHRlc3QgZm9yIHF1YWRyYXRpYyBkZXBlbmRlbmNpZXMgYmV0d2VlbiBzdWNjZXNzaXZlIHJhbmRvbVxuICAgbnVtYmVycy5cbiopXG5sZXQgaW5pdF9kaWZmMiByID0gc3QxIDo9IGludCByOyBzdDIgOj0gaW50IHJcbmxldCBkaWZmMiByID1cbiAgbGV0IHgxID0gIXN0MVxuICBhbmQgeDIgPSAhc3QyXG4gIGFuZCB4MyA9IGludCByXG4gIGluXG4gIHN0MSA6PSB4MjtcbiAgc3QyIDo9IHgzO1xuICAoeDMgLSB4MiAtIHgyICsgeDEgKyAyKnIpIG1vZCByXG5cblxuKioqKioqKioqKioqKioqKioqKiopXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgIE5pY29sYXMgT2plZGEgQmFyLCBMZXhpRmkgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIG5lZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgYWRkIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCBzdWIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsIG11bCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgZGl2IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCByZW0gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZtYSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2ZtYV9mbG9hdFwiIFwiY2FtbF9mbWFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5cbmxldCB6ZXJvID0gMC5cbmxldCBvbmUgPSAxLlxubGV0IG1pbnVzX29uZSA9IC0xLlxubGV0IGluZmluaXR5ID0gU3RkbGliLmluZmluaXR5XG5sZXQgbmVnX2luZmluaXR5ID0gU3RkbGliLm5lZ19pbmZpbml0eVxubGV0IG5hbiA9IFN0ZGxpYi5uYW5cbmxldCBpc19maW5pdGUgKHg6IGZsb2F0KSA9IHggLS4geCA9IDAuXG5sZXQgaXNfaW5maW5pdGUgKHg6IGZsb2F0KSA9IDEuIC8uIHggPSAwLlxubGV0IGlzX25hbiAoeDogZmxvYXQpID0geCA8PiB4XG5cbmxldCBwaSA9IDB4MS45MjFmYjU0NDQyZDE4cCsxXG5sZXQgbWF4X2Zsb2F0ID0gU3RkbGliLm1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IFN0ZGxpYi5taW5fZmxvYXRcbmxldCBlcHNpbG9uID0gU3RkbGliLmVwc2lsb25fZmxvYXRcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmdfb3B0ID0gU3RkbGliLmZsb2F0X29mX3N0cmluZ19vcHRcbmxldCB0b19zdHJpbmcgPSBTdGRsaWIuc3RyaW5nX29mX2Zsb2F0XG50eXBlIGZwY2xhc3MgPSBTdGRsaWIuZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcG93IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjYnJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2JydF9mbG9hdFwiIFwiY2FtbF9jYnJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cDIgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHAyX2Zsb2F0XCIgXCJjYW1sX2V4cDJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzJfZmxvYXRcIiBcImNhbWxfbG9nMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5oX2Zsb2F0XCIgXCJjYW1sX2FzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbmhfZmxvYXRcIiBcImNhbWxfYXRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXJmIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmX2Zsb2F0XCIgXCJjYW1sX2VyZlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBlcmZjIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmY19mbG9hdFwiIFwiY2FtbF9lcmZjXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRydW5jIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdHJ1bmNfZmxvYXRcIiBcImNhbWxfdHJ1bmNcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcm91bmQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9yb3VuZF9mbG9hdFwiIFwiY2FtbF9yb3VuZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG5bQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgaXNfaW50ZWdlciB4ID0geCA9IHRydW5jIHggJiYgaXNfZmluaXRlIHhcblxuZXh0ZXJuYWwgbmV4dF9hZnRlciA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gID0gXCJjYW1sX25leHRhZnRlcl9mbG9hdFwiIFwiY2FtbF9uZXh0YWZ0ZXJcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgc3VjYyB4ID0gbmV4dF9hZnRlciB4IGluZmluaXR5XG5sZXQgcHJlZCB4ID0gbmV4dF9hZnRlciB4IG5lZ19pbmZpbml0eVxuXG5leHRlcm5hbCBjb3B5X3NpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpZ25fYml0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGJvb2xcbiAgPSBcImNhbWxfc2lnbmJpdF9mbG9hdFwiIFwiY2FtbF9zaWduYml0XCIgW0BAbm9hbGxvY11cblxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbnR5cGUgdCA9IGZsb2F0XG5leHRlcm5hbCBjb21wYXJlIDogZmxvYXQgLT4gZmxvYXQgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgZXF1YWwgeCB5ID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldFtAaW5saW5lXSBtaW4gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuICBlbHNlIGlmIGlzX25hbiB4IHRoZW4geCBlbHNlIHlcblxubGV0W0BpbmxpbmVdIG1heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geCB0aGVuIHggZWxzZSB5XG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuXG5sZXRbQGlubGluZV0gbWluX21heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB8fCBpc19uYW4geSB0aGVuIChuYW4sIG5hbilcbiAgZWxzZSBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW4gKHgsIHkpIGVsc2UgKHksIHgpXG5cbmxldFtAaW5saW5lXSBtaW5fbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB4IHRoZW4geSBlbHNlIHhcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuIHggZWxzZSB5XG5cbmxldFtAaW5saW5lXSBtYXhfbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB5IHRoZW4geCBlbHNlIHlcbiAgZWxzZSBpZiBpc19uYW4geCB0aGVuIHkgZWxzZSB4XG5cbmxldFtAaW5saW5lXSBtaW5fbWF4X251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB0aGVuICh5LHkpXG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiAoeCx4KVxuICBlbHNlIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlbiAoeCx5KSBlbHNlICh5LHgpXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDogaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9oYXNoXCIgW0BAbm9hbGxvY11cbmxldCBoYXNoIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgMCB4XG5cbm1vZHVsZSBBcnJheSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IGZsb2F0YXJyYXlcblxuICBleHRlcm5hbCBsZW5ndGggOiB0IC0+IGludCA9IFwiJWZsb2F0YXJyYXlfbGVuZ3RoXCJcbiAgZXh0ZXJuYWwgZ2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgc2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9zZXRcIlxuICBleHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gdCA9IFwiY2FtbF9mbG9hdGFycmF5X2NyZWF0ZVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQgOiB0IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX2dldFwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQgOiB0IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcblxuICBsZXQgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGZvciBpID0gb2ZzIHRvIG9mcyArIGxlbiAtIDEgZG8gdW5zYWZlX3NldCBhIGkgdiBkb25lXG5cbiAgZXh0ZXJuYWwgdW5zYWZlX2JsaXQ6IHQgLT4gaW50IC0+IHQgLT4gaW50IC0+IGludCAtPiB1bml0ID1cbiAgICBcImNhbWxfZmxvYXRhcnJheV9ibGl0XCIgW0BAbm9hbGxvY11cblxuICBsZXQgY2hlY2sgYSBvZnMgbGVuIG1zZyA9XG4gICAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyArIGxlbiA8IDAgfHwgb2ZzICsgbGVuID4gbGVuZ3RoIGEgdGhlblxuICAgICAgaW52YWxpZF9hcmcgbXNnXG5cbiAgbGV0IG1ha2UgbiB2ID1cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIG4gaW5cbiAgICB1bnNhZmVfZmlsbCByZXN1bHQgMCBuIHY7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGluaXQgbCBmID1cbiAgICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuaW5pdFwiXG4gICAgZWxzZVxuICAgICAgbGV0IHJlcyA9IGNyZWF0ZSBsIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgICAgZG9uZTtcbiAgICAgIHJlc1xuXG4gIGxldCBhcHBlbmQgYTEgYTIgPVxuICAgIGxldCBsMSA9IGxlbmd0aCBhMSBpblxuICAgIGxldCBsMiA9IGxlbmd0aCBhMiBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKGwxICsgbDIpIGluXG4gICAgdW5zYWZlX2JsaXQgYTEgMCByZXN1bHQgMCBsMTtcbiAgICB1bnNhZmVfYmxpdCBhMiAwIHJlc3VsdCBsMSBsMjtcbiAgICByZXN1bHRcblxuICAoKiBuZXh0IDMgZnVuY3Rpb25zOiBtb2RpZmllZCBjb3B5IG9mIGNvZGUgZnJvbSBzdHJpbmcubWwgKilcbiAgbGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPVxuICAgIGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5LmNvbmNhdFwiXG5cbiAgbGV0IHJlYyBzdW1fbGVuZ3RocyBhY2MgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjXG4gICAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBhY2MpIGFjYykgdGxcblxuICBsZXQgY29uY2F0IGwgPVxuICAgIGxldCBsZW4gPSBzdW1fbGVuZ3RocyAwIGwgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIGxldCByZWMgbG9vcCBsIGkgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IGFzc2VydCAoaSA9IGxlbilcbiAgICAgIHwgaGQgOjogdGwgLT5cbiAgICAgICAgbGV0IGhsZW4gPSBsZW5ndGggaGQgaW5cbiAgICAgICAgdW5zYWZlX2JsaXQgaGQgMCByZXN1bHQgaSBobGVuO1xuICAgICAgICBsb29wIHRsIChpICsgaGxlbilcbiAgICBpblxuICAgIGxvb3AgbCAwO1xuICAgIHJlc3VsdFxuXG4gIGxldCBzdWIgYSBvZnMgbGVuID1cbiAgICBjaGVjayBhIG9mcyBsZW4gXCJGbG9hdC5BcnJheS5zdWJcIjtcbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IGEgb2ZzIHJlc3VsdCAwIGxlbjtcbiAgICByZXN1bHRcblxuICBsZXQgY29weSBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsIGluXG4gICAgdW5zYWZlX2JsaXQgYSAwIHJlc3VsdCAwIGw7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGNoZWNrIGEgb2ZzIGxlbiBcIkZsb2F0LkFycmF5LmZpbGxcIjtcbiAgICB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdlxuXG4gIGxldCBibGl0IHNyYyBzb2ZzIGRzdCBkb2ZzIGxlbiA9XG4gICAgY2hlY2sgc3JjIHNvZnMgbGVuIFwiRmxvYXQuYXJyYXkuYmxpdFwiO1xuICAgIGNoZWNrIGRzdCBkb2ZzIGxlbiBcIkZsb2F0LmFycmF5LmJsaXRcIjtcbiAgICB1bnNhZmVfYmxpdCBzcmMgc29mcyBkc3QgZG9mcyBsZW5cblxuICBsZXQgdG9fbGlzdCBhID1cbiAgICBMaXN0LmluaXQgKGxlbmd0aCBhKSAodW5zYWZlX2dldCBhKVxuXG4gIGxldCBvZl9saXN0IGwgPVxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKExpc3QubGVuZ3RoIGwpIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gcmVzdWx0XG4gICAgICB8IGggOjogdCAtPiB1bnNhZmVfc2V0IHJlc3VsdCBpIGg7IGZpbGwgKGkgKyAxKSB0XG4gICAgaW5cbiAgICBmaWxsIDAgbFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlciBmIGEgPVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXIyIGYgYSBiID1cbiAgICBpZiBsZW5ndGggYSA8PiBsZW5ndGggYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZVxuICAgICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSBkb25lXG5cbiAgbGV0IG1hcCBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gIGxldCBtYXAyIGYgYSBiID1cbiAgICBsZXQgbGEgPSBsZW5ndGggYSBpblxuICAgIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gICAgaWYgbGEgPD4gbGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5tYXAyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBsYSAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXJpIGYgYSA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbiAgbGV0IG1hcGkgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgaSAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgICBkb25lO1xuICAgICFyXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSBsZW5ndGggYSAtIDEgZG93bnRvIDAgZG9cbiAgICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gICAgZG9uZTtcbiAgICAhclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZXhpc3RzIHAgYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSkgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvcl9hbGwgcCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIGxvb3AgKGkgKyAxKVxuICAgICAgZWxzZSBmYWxzZSBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgbWVtIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwsIGJ1dCBzbGlnaHRseSBkaWZmZXJlbnQgKilcbiAgbGV0IG1lbV9pZWVlIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgeCA9ICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGV4Y2VwdGlvbiBCb3R0b20gb2YgaW50XG4gIGxldCBzb3J0IGNtcCBhID1cbiAgICBsZXQgbWF4c29uIGwgaSA9XG4gICAgICBsZXQgaTMxID0gaStpK2krMSBpblxuICAgICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgICBpZiBpMzErMiA8IGwgdGhlbiBiZWdpblxuICAgICAgICBpZiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMCB0aGVuIHggOj0gaTMxKzE7XG4gICAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgICAheFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICAgIHRoZW4gaTMxKzFcbiAgICAgICAgZWxzZSBpZiBpMzEgPCBsIHRoZW4gaTMxIGVsc2UgcmFpc2UgKEJvdHRvbSBpKVxuICAgIGluXG4gICAgbGV0IHJlYyB0cmlja2xlZG93biBsIGkgZSA9XG4gICAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgICAgdHJpY2tsZWRvd24gbCBqIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgdHJpY2tsZSBsIGkgZSA9IHRyeSB0cmlja2xlZG93biBsIGkgZSB3aXRoIEJvdHRvbSBpIC0+IHNldCBhIGkgZSBpblxuICAgIGxldCByZWMgYnViYmxlZG93biBsIGkgPVxuICAgICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgIGJ1YmJsZWRvd24gbCBqXG4gICAgaW5cbiAgICBsZXQgYnViYmxlIGwgaSA9IHRyeSBidWJibGVkb3duIGwgaSB3aXRoIEJvdHRvbSBpIC0+IGkgaW5cbiAgICBsZXQgcmVjIHRyaWNrbGV1cCBpIGUgPVxuICAgICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgICBhc3NlcnQgKGkgPD4gZmF0aGVyKTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgZmF0aGVyKSBlIDwgMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICAgIGlmIGZhdGhlciA+IDAgdGhlbiB0cmlja2xldXAgZmF0aGVyIGUgZWxzZSBzZXQgYSAwIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgZm9yIGkgPSAobCArIDEpIC8gMyAtIDEgZG93bnRvIDAgZG8gdHJpY2tsZSBsIGkgKGdldCBhIGkpOyBkb25lO1xuICAgIGZvciBpID0gbCAtIDEgZG93bnRvIDIgZG9cbiAgICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSAwKTtcbiAgICAgIHRyaWNrbGV1cCAoYnViYmxlIGkgMCkgZTtcbiAgICBkb25lO1xuICAgIGlmIGwgPiAxIHRoZW4gKGxldCBlID0gKGdldCBhIDEpIGluIHNldCBhIDEgKGdldCBhIDApOyBzZXQgYSAwIGUpXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sLCBleGNlcHQgZm9yIHRoZSBjYWxsIHRvIFtjcmVhdGVdICopXG4gIGxldCBjdXRvZmYgPSA1XG4gIGxldCBzdGFibGVfc29ydCBjbXAgYSA9XG4gICAgbGV0IG1lcmdlIHNyYzFvZnMgc3JjMWxlbiBzcmMyIHNyYzJvZnMgc3JjMmxlbiBkc3QgZHN0b2ZzID1cbiAgICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgICBsZXQgcmVjIGxvb3AgaTEgczEgaTIgczIgZCA9XG4gICAgICAgIGlmIGNtcCBzMSBzMiA8PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgICAgbGV0IGkxID0gaTEgKyAxIGluXG4gICAgICAgICAgaWYgaTEgPCBzcmMxciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgc3JjMiBpMiBkc3QgKGQgKyAxKSAoc3JjMnIgLSBpMilcbiAgICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczI7XG4gICAgICAgICAgbGV0IGkyID0gaTIgKyAxIGluXG4gICAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIHMxIGkyIChnZXQgc3JjMiBpMikgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgICAgZW5kXG4gICAgICBpbiBsb29wIHNyYzFvZnMgKGdldCBhIHNyYzFvZnMpIHNyYzJvZnMgKGdldCBzcmMyIHNyYzJvZnMpIGRzdG9mcztcbiAgICBpblxuICAgIGxldCBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICAgIGxldCBqID0gcmVmIChkc3RvZnMgKyBpIC0gMSkgaW5cbiAgICAgICAgd2hpbGUgKCFqID49IGRzdG9mcyAmJiBjbXAgKGdldCBkc3QgIWopIGUgPiAwKSBkb1xuICAgICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICAgIGRlY3IgajtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgICAgZG9uZTtcbiAgICBpblxuICAgIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBpZiBsZW4gPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gZWxzZSBiZWdpblxuICAgICAgICBsZXQgbDEgPSBsZW4gLyAyIGluXG4gICAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICAgIHNvcnR0byAoc3Jjb2ZzICsgbDEpIGRzdCAoZHN0b2ZzICsgbDEpIGwyO1xuICAgICAgICBzb3J0dG8gc3Jjb2ZzIGEgKHNyY29mcyArIGwyKSBsMTtcbiAgICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byAwIGEgMCBsIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGwgLyAyIGluXG4gICAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICAgIGxldCB0ID0gY3JlYXRlIGwyIGluXG4gICAgICBzb3J0dG8gbDEgdCAwIGwyO1xuICAgICAgc29ydHRvIDAgYSBsMiBsMTtcbiAgICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gICAgZW5kXG5cbiAgbGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCB0b19zZXEgYSA9XG4gICAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICAgIHRoZW5cbiAgICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgdG9fc2VxaSBhID1cbiAgICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAgIGlmIGkgPCBsZW5ndGggYVxuICAgICAgdGhlblxuICAgICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3Jldl9saXN0IGwgPVxuICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbGVuIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICBbXSAtPiBhXG4gICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaS0xKSB0bFxuICAgIGluXG4gICAgZmlsbCAobGVuLTEpIGxcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3NlcSBpID1cbiAgICBsZXQgbCA9IFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIGkgaW5cbiAgICBvZl9yZXZfbGlzdCBsXG5cblxuICBsZXQgbWFwX3RvX2FycmF5IGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPSAwIHRoZW4gW3wgfF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBBcnJheS5tYWtlIGwgKGYgKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICAgIGZvciBpID0gMSB0byBsIC0gMSBkb1xuICAgICAgICBBcnJheS51bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICBsZXQgbWFwX2Zyb21fYXJyYXkgZiBhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgKEFycmF5LnVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuZW5kXG5cbm1vZHVsZSBBcnJheUxhYmVscyA9IEFycmF5XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEFuIGFsaWFzIGZvciB0aGUgdHlwZSBvZiBsaXN0cy4gKilcbnR5cGUgJ2EgdCA9ICdhIGxpc3QgPSBbXSB8ICg6Oikgb2YgJ2EgKiAnYSBsaXN0XG5cbigqIExpc3Qgb3BlcmF0aW9ucyAqKVxuXG5sZXQgcmVjIGxlbmd0aF9hdXggbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBsZW5cbiAgfCBfOjpsIC0+IGxlbmd0aF9hdXggKGxlbiArIDEpIGxcblxubGV0IGxlbmd0aCBsID0gbGVuZ3RoX2F1eCAwIGxcblxubGV0IGNvbnMgYSBsID0gYTo6bFxuXG5sZXQgaGQgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhaWx3aXRoIFwiaGRcIlxuICB8IGE6Ol8gLT4gYVxuXG5sZXQgdGwgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhaWx3aXRoIFwidGxcIlxuICB8IF86OmwgLT4gbFxuXG5sZXQgbnRoIGwgbiA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0Lm50aFwiIGVsc2VcbiAgbGV0IHJlYyBudGhfYXV4IGwgbiA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBmYWlsd2l0aCBcIm50aFwiXG4gICAgfCBhOjpsIC0+IGlmIG4gPSAwIHRoZW4gYSBlbHNlIG50aF9hdXggbCAobi0xKVxuICBpbiBudGhfYXV4IGwgblxuXG5sZXQgbnRoX29wdCBsIG4gPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5udGhcIiBlbHNlXG4gIGxldCByZWMgbnRoX2F1eCBsIG4gPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gTm9uZVxuICAgIHwgYTo6bCAtPiBpZiBuID0gMCB0aGVuIFNvbWUgYSBlbHNlIG50aF9hdXggbCAobi0xKVxuICBpbiBudGhfYXV4IGwgblxuXG5sZXQgYXBwZW5kID0gKEApXG5cbmxldCByZWMgcmV2X2FwcGVuZCBsMSBsMiA9XG4gIG1hdGNoIGwxIHdpdGhcbiAgICBbXSAtPiBsMlxuICB8IGEgOjogbCAtPiByZXZfYXBwZW5kIGwgKGEgOjogbDIpXG5cbmxldCByZXYgbCA9IHJldl9hcHBlbmQgbCBbXVxuXG5sZXQgcmVjIGluaXRfdGFpbHJlY19hdXggYWNjIGkgbiBmID1cbiAgaWYgaSA+PSBuIHRoZW4gYWNjXG4gIGVsc2UgaW5pdF90YWlscmVjX2F1eCAoZiBpIDo6IGFjYykgKGkrMSkgbiBmXG5cbmxldCByZWMgaW5pdF9hdXggaSBuIGYgPVxuICBpZiBpID49IG4gdGhlbiBbXVxuICBlbHNlXG4gICAgbGV0IHIgPSBmIGkgaW5cbiAgICByIDo6IGluaXRfYXV4IChpKzEpIG4gZlxuXG5sZXQgcmV2X2luaXRfdGhyZXNob2xkID1cbiAgbWF0Y2ggU3lzLmJhY2tlbmRfdHlwZSB3aXRoXG4gIHwgU3lzLk5hdGl2ZSB8IFN5cy5CeXRlY29kZSAtPiAxMF8wMDBcbiAgKCogV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUgc3RhY2ssIGJldHRlciBiZSBzYWZlIGFuZCBhc3N1bWUgaXQnc1xuICAgICBzbWFsbC4gKilcbiAgfCBTeXMuT3RoZXIgXyAtPiA1MFxuXG5sZXQgaW5pdCBsZW4gZiA9XG4gIGlmIGxlbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QuaW5pdFwiIGVsc2VcbiAgaWYgbGVuID4gcmV2X2luaXRfdGhyZXNob2xkIHRoZW4gcmV2IChpbml0X3RhaWxyZWNfYXV4IFtdIDAgbGVuIGYpXG4gIGVsc2UgaW5pdF9hdXggMCBsZW4gZlxuXG5sZXQgcmVjIGZsYXR0ZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgbDo6ciAtPiBsIEAgZmxhdHRlbiByXG5cbmxldCBjb25jYXQgPSBmbGF0dGVuXG5cbmxldCByZWMgbWFwIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgYTo6bCAtPiBsZXQgciA9IGYgYSBpbiByIDo6IG1hcCBmIGxcblxubGV0IHJlYyBtYXBpIGkgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW11cbiAgfCBhOjpsIC0+IGxldCByID0gZiBpIGEgaW4gciA6OiBtYXBpIChpICsgMSkgZiBsXG5cbmxldCBtYXBpIGYgbCA9IG1hcGkgMCBmIGxcblxubGV0IHJldl9tYXAgZiBsID1cbiAgbGV0IHJlYyBybWFwX2YgYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBhY2N1XG4gICAgfCBhOjpsIC0+IHJtYXBfZiAoZiBhIDo6IGFjY3UpIGxcbiAgaW5cbiAgcm1hcF9mIFtdIGxcblxuXG5sZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCBhOjpsIC0+IGYgYTsgaXRlciBmIGxcblxubGV0IHJlYyBpdGVyaSBpIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgYTo6bCAtPiBmIGkgYTsgaXRlcmkgKGkgKyAxKSBmIGxcblxubGV0IGl0ZXJpIGYgbCA9IGl0ZXJpIDAgZiBsXG5cbmxldCByZWMgZm9sZF9sZWZ0IGYgYWNjdSBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgW10gLT4gYWNjdVxuICB8IGE6OmwgLT4gZm9sZF9sZWZ0IGYgKGYgYWNjdSBhKSBsXG5cbmxldCByZWMgZm9sZF9yaWdodCBmIGwgYWNjdSA9XG4gIG1hdGNoIGwgd2l0aFxuICAgIFtdIC0+IGFjY3VcbiAgfCBhOjpsIC0+IGYgYSAoZm9sZF9yaWdodCBmIGwgYWNjdSlcblxubGV0IHJlYyBtYXAyIGYgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gW11cbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGxldCByID0gZiBhMSBhMiBpbiByIDo6IG1hcDIgZiBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QubWFwMlwiXG5cbmxldCByZXZfbWFwMiBmIGwxIGwyID1cbiAgbGV0IHJlYyBybWFwMl9mIGFjY3UgbDEgbDIgPVxuICAgIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICB8IChbXSwgW10pIC0+IGFjY3VcbiAgICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcm1hcDJfZiAoZiBhMSBhMiA6OiBhY2N1KSBsMSBsMlxuICAgIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5yZXZfbWFwMlwiXG4gIGluXG4gIHJtYXAyX2YgW10gbDEgbDJcblxuXG5sZXQgcmVjIGl0ZXIyIGYgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gKClcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGYgYTEgYTI7IGl0ZXIyIGYgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0Lml0ZXIyXCJcblxubGV0IHJlYyBmb2xkX2xlZnQyIGYgYWNjdSBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBhY2N1XG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmb2xkX2xlZnQyIGYgKGYgYWNjdSBhMSBhMikgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmZvbGRfbGVmdDJcIlxuXG5sZXQgcmVjIGZvbGRfcmlnaHQyIGYgbDEgbDIgYWNjdSA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBhY2N1XG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmIGExIGEyIChmb2xkX3JpZ2h0MiBmIGwxIGwyIGFjY3UpXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb2xkX3JpZ2h0MlwiXG5cbmxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICBbXSAtPiB0cnVlXG4gIHwgYTo6bCAtPiBwIGEgJiYgZm9yX2FsbCBwIGxcblxubGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IHAgYSB8fCBleGlzdHMgcCBsXG5cbmxldCByZWMgZm9yX2FsbDIgcCBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiB0cnVlXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBwIGExIGEyICYmIGZvcl9hbGwyIHAgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmZvcl9hbGwyXCJcblxubGV0IHJlYyBleGlzdHMyIHAgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gZmFsc2VcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHAgYTEgYTIgfHwgZXhpc3RzMiBwIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5leGlzdHMyXCJcblxubGV0IHJlYyBtZW0geCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IGNvbXBhcmUgYSB4ID0gMCB8fCBtZW0geCBsXG5cbmxldCByZWMgbWVtcSB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWxzZVxuICB8IGE6OmwgLT4gYSA9PSB4IHx8IG1lbXEgeCBsXG5cbmxldCByZWMgYXNzb2MgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKGEsYik6OmwgLT4gaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gYiBlbHNlIGFzc29jIHggbFxuXG5sZXQgcmVjIGFzc29jX29wdCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBOb25lXG4gIHwgKGEsYik6OmwgLT4gaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gU29tZSBiIGVsc2UgYXNzb2Nfb3B0IHggbFxuXG5sZXQgcmVjIGFzc3EgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKGEsYik6OmwgLT4gaWYgYSA9PSB4IHRoZW4gYiBlbHNlIGFzc3EgeCBsXG5cbmxldCByZWMgYXNzcV9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gTm9uZVxuICB8IChhLGIpOjpsIC0+IGlmIGEgPT0geCB0aGVuIFNvbWUgYiBlbHNlIGFzc3Ffb3B0IHggbFxuXG5sZXQgcmVjIG1lbV9hc3NvYyB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBmYWxzZVxuICB8IChhLCBfKSA6OiBsIC0+IGNvbXBhcmUgYSB4ID0gMCB8fCBtZW1fYXNzb2MgeCBsXG5cbmxldCByZWMgbWVtX2Fzc3EgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gZmFsc2VcbiAgfCAoYSwgXykgOjogbCAtPiBhID09IHggfHwgbWVtX2Fzc3EgeCBsXG5cbmxldCByZWMgcmVtb3ZlX2Fzc29jIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgKGEsIF8gYXMgcGFpcikgOjogbCAtPlxuICAgICAgaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gbCBlbHNlIHBhaXIgOjogcmVtb3ZlX2Fzc29jIHggbFxuXG5sZXQgcmVjIHJlbW92ZV9hc3NxIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgKGEsIF8gYXMgcGFpcikgOjogbCAtPiBpZiBhID09IHggdGhlbiBsIGVsc2UgcGFpciA6OiByZW1vdmVfYXNzcSB4IGxcblxubGV0IHJlYyBmaW5kIHAgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiB4IGVsc2UgZmluZCBwIGxcblxubGV0IHJlYyBmaW5kX29wdCBwID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBOb25lXG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIFNvbWUgeCBlbHNlIGZpbmRfb3B0IHAgbFxuXG5sZXQgcmVjIGZpbmRfbWFwIGYgPSBmdW5jdGlvblxuICB8IFtdIC0+IE5vbmVcbiAgfCB4IDo6IGwgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZiB4IHdpdGhcbiAgICAgICB8IFNvbWUgXyBhcyByZXN1bHQgLT4gcmVzdWx0XG4gICAgICAgfCBOb25lIC0+IGZpbmRfbWFwIGYgbFxuICAgICBlbmRcblxubGV0IGZpbmRfYWxsIHAgPVxuICBsZXQgcmVjIGZpbmQgYWNjdSA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gcmV2IGFjY3VcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gZmluZCAoeCA6OiBhY2N1KSBsIGVsc2UgZmluZCBhY2N1IGwgaW5cbiAgZmluZCBbXVxuXG5sZXQgZmlsdGVyID0gZmluZF9hbGxcblxubGV0IGZpbHRlcmkgcCBsID1cbiAgbGV0IHJlYyBhdXggaSBhY2MgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJldiBhY2NcbiAgfCB4OjpsIC0+IGF1eCAoaSArIDEpIChpZiBwIGkgeCB0aGVuIHg6OmFjYyBlbHNlIGFjYykgbFxuICBpblxuICBhdXggMCBbXSBsXG5cbmxldCBmaWx0ZXJfbWFwIGYgPVxuICBsZXQgcmVjIGF1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IHJldiBhY2N1XG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgICAgfCBOb25lIC0+IGF1eCBhY2N1IGxcbiAgICAgICAgfCBTb21lIHYgLT4gYXV4ICh2IDo6IGFjY3UpIGxcbiAgaW5cbiAgYXV4IFtdXG5cbmxldCBjb25jYXRfbWFwIGYgbCA9XG4gIGxldCByZWMgYXV4IGYgYWNjID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IHJldiBhY2NcbiAgICB8IHggOjogbCAtPlxuICAgICAgIGxldCB4cyA9IGYgeCBpblxuICAgICAgIGF1eCBmIChyZXZfYXBwZW5kIHhzIGFjYykgbFxuICBpbiBhdXggZiBbXSBsXG5cbmxldCBmb2xkX2xlZnRfbWFwIGYgYWNjdSBsID1cbiAgbGV0IHJlYyBhdXggYWNjdSBsX2FjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjdSwgcmV2IGxfYWNjdVxuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgIGxldCBhY2N1LCB4ID0gZiBhY2N1IHggaW5cbiAgICAgICAgYXV4IGFjY3UgKHggOjogbF9hY2N1KSBsIGluXG4gIGF1eCBhY2N1IFtdIGxcblxubGV0IHBhcnRpdGlvbiBwIGwgPVxuICBsZXQgcmVjIHBhcnQgeWVzIG5vID0gZnVuY3Rpb25cbiAgfCBbXSAtPiAocmV2IHllcywgcmV2IG5vKVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBwYXJ0ICh4IDo6IHllcykgbm8gbCBlbHNlIHBhcnQgeWVzICh4IDo6IG5vKSBsIGluXG4gIHBhcnQgW10gW10gbFxuXG5sZXQgcGFydGl0aW9uX21hcCBwIGwgPVxuICBsZXQgcmVjIHBhcnQgbGVmdCByaWdodCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKHJldiBsZWZ0LCByZXYgcmlnaHQpXG4gIHwgeCA6OiBsIC0+XG4gICAgIGJlZ2luIG1hdGNoIHAgeCB3aXRoXG4gICAgICAgfCBFaXRoZXIuTGVmdCB2IC0+IHBhcnQgKHYgOjogbGVmdCkgcmlnaHQgbFxuICAgICAgIHwgRWl0aGVyLlJpZ2h0IHYgLT4gcGFydCBsZWZ0ICh2IDo6IHJpZ2h0KSBsXG4gICAgIGVuZFxuICBpblxuICBwYXJ0IFtdIFtdIGxcblxubGV0IHJlYyBzcGxpdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKFtdLCBbXSlcbiAgfCAoeCx5KTo6bCAtPlxuICAgICAgbGV0IChyeCwgcnkpID0gc3BsaXQgbCBpbiAoeDo6cngsIHk6OnJ5KVxuXG5sZXQgcmVjIGNvbWJpbmUgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gW11cbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IChhMSwgYTIpIDo6IGNvbWJpbmUgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmNvbWJpbmVcIlxuXG4oKiogc29ydGluZyAqKVxuXG5sZXQgcmVjIG1lcmdlIGNtcCBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIGwyIC0+IGwyXG4gIHwgbDEsIFtdIC0+IGwxXG4gIHwgaDEgOjogdDEsIGgyIDo6IHQyIC0+XG4gICAgICBpZiBjbXAgaDEgaDIgPD0gMFxuICAgICAgdGhlbiBoMSA6OiBtZXJnZSBjbXAgdDEgbDJcbiAgICAgIGVsc2UgaDIgOjogbWVyZ2UgY21wIGwxIHQyXG5cblxubGV0IHN0YWJsZV9zb3J0IGNtcCBsID1cbiAgbGV0IHJlYyByZXZfbWVyZ2UgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGlmIGNtcCBoMSBoMiA8PSAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlIHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2UgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHJldl9tZXJnZV9yZXYgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGlmIGNtcCBoMSBoMiA+IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2VfcmV2IHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2VfcmV2IGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyBzb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9IGlmIGNtcCB4MSB4MiA8PSAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXSBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgY21wIHgxIHgyIDw9IDAgdGhlblxuICAgICAgICAgICAgaWYgY21wIHgyIHgzIDw9IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzIDw9IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPD0gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgyIHgzIDw9IDAgdGhlbiBbeDI7IHgzOyB4MV1cbiAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSByZXZfc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSByZXZfc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlX3JldiBzMSBzMiBbXSwgdGwpXG4gIGFuZCByZXZfc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPSBpZiBjbXAgeDEgeDIgPiAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXSBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgY21wIHgxIHgyID4gMCB0aGVuXG4gICAgICAgICAgICBpZiBjbXAgeDIgeDMgPiAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA+IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPiAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDIgeDMgPiAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSBzb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2UgczEgczIgW10sIHRsKVxuICBpblxuICBsZXQgbGVuID0gbGVuZ3RoIGwgaW5cbiAgaWYgbGVuIDwgMiB0aGVuIGwgZWxzZSBmc3QgKHNvcnQgbGVuIGwpXG5cblxubGV0IHNvcnQgPSBzdGFibGVfc29ydFxubGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbigqIE5vdGU6IG9uIGEgbGlzdCBvZiBsZW5ndGggYmV0d2VlbiBhYm91dCAxMDAwMDAgKGRlcGVuZGluZyBvbiB0aGUgbWlub3JcbiAgIGhlYXAgc2l6ZSBhbmQgdGhlIHR5cGUgb2YgdGhlIGxpc3QpIGFuZCBTeXMubWF4X2FycmF5X3NpemUsIGl0IGlzXG4gICBhY3R1YWxseSBmYXN0ZXIgdG8gdXNlIHRoZSBmb2xsb3dpbmcsIGJ1dCBpdCBtaWdodCBhbHNvIHVzZSBtb3JlIG1lbW9yeVxuICAgYmVjYXVzZSB0aGUgYXJndW1lbnQgbGlzdCBjYW5ub3QgYmUgZGVhbGxvY2F0ZWQgaW5jcmVtZW50YWxseS5cblxuICAgQWxzbywgdGhlcmUgc2VlbXMgdG8gYmUgYSBidWcgaW4gdGhpcyBjb2RlIG9yIGluIHRoZVxuICAgaW1wbGVtZW50YXRpb24gb2Ygb2JqX3RydW5jYXRlLlxuXG5leHRlcm5hbCBvYmpfdHJ1bmNhdGUgOiAnYSBhcnJheSAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfdHJ1bmNhdGVcIlxuXG5sZXQgYXJyYXlfdG9fbGlzdF9pbl9wbGFjZSBhID1cbiAgbGV0IGwgPSBBcnJheS5sZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgYWNjdSBuIHAgPVxuICAgIGlmIHAgPD0gMCB0aGVuIGFjY3UgZWxzZSBiZWdpblxuICAgICAgaWYgcCA9IG4gdGhlbiBiZWdpblxuICAgICAgICBvYmpfdHJ1bmNhdGUgYSBwO1xuICAgICAgICBsb29wIChhLihwLTEpIDo6IGFjY3UpIChuLTEwMDApIChwLTEpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsb29wIChhLihwLTEpIDo6IGFjY3UpIG4gKHAtMSlcbiAgICAgIGVuZFxuICAgIGVuZFxuICBpblxuICBsb29wIFtdIChsLTEwMDApIGxcblxuXG5sZXQgc3RhYmxlX3NvcnQgY21wIGwgPVxuICBsZXQgYSA9IEFycmF5Lm9mX2xpc3QgbCBpblxuICBBcnJheS5zdGFibGVfc29ydCBjbXAgYTtcbiAgYXJyYXlfdG9fbGlzdF9pbl9wbGFjZSBhXG5cbiopXG5cblxuKCoqIHNvcnRpbmcgKyByZW1vdmluZyBkdXBsaWNhdGVzICopXG5cbmxldCBzb3J0X3VuaXEgY21wIGwgPVxuICBsZXQgcmVjIHJldl9tZXJnZSBsMSBsMiBhY2N1ID1cbiAgICBtYXRjaCBsMSwgbDIgd2l0aFxuICAgIHwgW10sIGwyIC0+IHJldl9hcHBlbmQgbDIgYWNjdVxuICAgIHwgbDEsIFtdIC0+IHJldl9hcHBlbmQgbDEgYWNjdVxuICAgIHwgaDE6OnQxLCBoMjo6dDIgLT5cbiAgICAgICAgbGV0IGMgPSBjbXAgaDEgaDIgaW5cbiAgICAgICAgaWYgYyA9IDAgdGhlbiByZXZfbWVyZ2UgdDEgdDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIGlmIGMgPCAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlIHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2UgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHJldl9tZXJnZV9yZXYgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGxldCBjID0gY21wIGgxIGgyIGluXG4gICAgICAgIGlmIGMgPSAwIHRoZW4gcmV2X21lcmdlX3JldiB0MSB0MiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgaWYgYyA+IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2VfcmV2IHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2VfcmV2IGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyBzb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MV0gZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyXSBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4M10gZWxzZSBbeDM7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHJldl9zb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHJldl9zb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2VfcmV2IHMxIHMyIFtdLCB0bClcbiAgYW5kIHJldl9zb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MV0gZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyXSBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4M10gZWxzZSBbeDM7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHNvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlIHMxIHMyIFtdLCB0bClcbiAgaW5cbiAgbGV0IGxlbiA9IGxlbmd0aCBsIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBsIGVsc2UgZnN0IChzb3J0IGxlbiBsKVxuXG5cbmxldCByZWMgY29tcGFyZV9sZW5ndGhzIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gMFxuICB8IFtdLCBfIC0+IC0xXG4gIHwgXywgW10gLT4gMVxuICB8IF8gOjogbDEsIF8gOjogbDIgLT4gY29tcGFyZV9sZW5ndGhzIGwxIGwyXG47O1xuXG5sZXQgcmVjIGNvbXBhcmVfbGVuZ3RoX3dpdGggbCBuID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT5cbiAgICBpZiBuID0gMCB0aGVuIDAgZWxzZVxuICAgICAgaWYgbiA+IDAgdGhlbiAtMSBlbHNlIDFcbiAgfCBfIDo6IGwgLT5cbiAgICBpZiBuIDw9IDAgdGhlbiAxIGVsc2VcbiAgICAgIGNvbXBhcmVfbGVuZ3RoX3dpdGggbCAobi0xKVxuOztcblxuKCoqIHsxIENvbXBhcmlzb259ICopXG5cbigqIE5vdGU6IHdlIGFyZSAqbm90KiBzaG9ydGN1dHRpbmcgdGhlIGxpc3QgYnkgdXNpbmdcbiAgIFtMaXN0LmNvbXBhcmVfbGVuZ3Roc10gZmlyc3Q7IHRoaXMgbWF5IGJlIHNsb3dlciBvbiBsb25nIGxpc3RzXG4gICBpbW1lZGlhdGVseSBzdGFydCB3aXRoIGRpc3RpbmN0IGVsZW1lbnRzLiBJdCBpcyBhbHNvIGluY29ycmVjdCBmb3JcbiAgIFtjb21wYXJlXSBiZWxvdywgYW5kIGl0IGlzIGJldHRlciAocHJpbmNpcGxlIG9mIGxlYXN0IHN1cnByaXNlKSB0b1xuICAgdXNlIHRoZSBzYW1lIGFwcHJvYWNoIGZvciBib3RoIGZ1bmN0aW9ucy4gKilcbmxldCByZWMgZXF1YWwgZXEgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBbXSAtPiB0cnVlXG4gIHwgW10sIF86Ol8gfCBfOjpfLCBbXSAtPiBmYWxzZVxuICB8IGExOjpsMSwgYTI6OmwyIC0+IGVxIGExIGEyICYmIGVxdWFsIGVxIGwxIGwyXG5cbmxldCByZWMgY29tcGFyZSBjbXAgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBbXSAtPiAwXG4gIHwgW10sIF86Ol8gLT4gLTFcbiAgfCBfOjpfLCBbXSAtPiAxXG4gIHwgYTE6OmwxLCBhMjo6bDIgLT5cbiAgICBsZXQgYyA9IGNtcCBhMSBhMiBpblxuICAgIGlmIGMgPD4gMCB0aGVuIGNcbiAgICBlbHNlIGNvbXBhcmUgY21wIGwxIGwyXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgbCA9XG4gIGxldCByZWMgYXV4IGwgKCkgPSBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IFNlcS5OaWxcbiAgICB8IHggOjogdGFpbCAtPiBTZXEuQ29ucyAoeCwgYXV4IHRhaWwpXG4gIGluXG4gIGF1eCBsXG5cbmxldCBvZl9zZXEgc2VxID1cbiAgbGV0IHJlYyBkaXJlY3QgZGVwdGggc2VxIDogXyBsaXN0ID1cbiAgICBpZiBkZXB0aD0wXG4gICAgdGhlblxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gc2VxXG4gICAgICB8PiByZXYgKCogdGFpbHJlYyAqKVxuICAgIGVsc2UgbWF0Y2ggc2VxKCkgd2l0aFxuICAgICAgfCBTZXEuTmlsIC0+IFtdXG4gICAgICB8IFNlcS5Db25zICh4LCBuZXh0KSAtPiB4IDo6IGRpcmVjdCAoZGVwdGgtMSkgbmV4dFxuICBpblxuICBkaXJlY3QgNTAwIHNlcVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBpbl9jaGFubmVsXG5cbnR5cGUgb3Blbl9mbGFnID0gU3RkbGliLm9wZW5fZmxhZyA9XG4gIHwgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcblxubGV0IHN0ZGluID0gU3RkbGliLnN0ZGluXG5sZXQgb3Blbl9iaW4gPSBTdGRsaWIub3Blbl9pbl9iaW5cbmxldCBvcGVuX3RleHQgPSBTdGRsaWIub3Blbl9pblxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5faW5fZ2VuXG5cbmxldCB3aXRoX29wZW4gb3BlbmZ1biBzIGYgPVxuICBsZXQgaWMgPSBvcGVuZnVuIHMgaW5cbiAgRnVuLnByb3RlY3QgfmZpbmFsbHk6KGZ1biAoKSAtPiBTdGRsaWIuY2xvc2VfaW5fbm9lcnIgaWMpXG4gICAgKGZ1biAoKSAtPiBmIGljKVxuXG5sZXQgd2l0aF9vcGVuX2JpbiBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5faW5fYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX2luIHMgZlxuXG5sZXQgd2l0aF9vcGVuX2dlbiBmbGFncyBwZXJtIHMgZiA9XG4gIHdpdGhfb3BlbiAoU3RkbGliLm9wZW5faW5fZ2VuIGZsYWdzIHBlcm0pIHMgZlxuXG5sZXQgc2VlayA9IFN0ZGxpYi5MYXJnZUZpbGUuc2Vla19pblxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX2luXG5sZXQgbGVuZ3RoID0gU3RkbGliLkxhcmdlRmlsZS5pbl9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlID0gU3RkbGliLmNsb3NlX2luXG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2VfaW5fbm9lcnJcblxubGV0IGlucHV0X2NoYXIgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gIHwgYyAtPiBTb21lIGNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXRfYnl0ZSBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9ieXRlIGljIHdpdGhcbiAgfCBuIC0+IFNvbWUgblxuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dF9saW5lIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2xpbmUgaWMgd2l0aFxuICB8IHMgLT4gU29tZSBzXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0ID0gU3RkbGliLmlucHV0XG5cbmxldCByZWFsbHlfaW5wdXQgaWMgYnVmIHBvcyBsZW4gPVxuICBtYXRjaCBTdGRsaWIucmVhbGx5X2lucHV0IGljIGJ1ZiBwb3MgbGVuIHdpdGhcbiAgfCAoKSAtPiBTb21lICgpXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbWF0Y2ggU3RkbGliLnJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuIHdpdGhcbiAgfCBzIC0+IFNvbWUgc1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbigqIFJlYWQgdXAgdG8gW2xlbl0gYnl0ZXMgaW50byBbYnVmXSwgc3RhcnRpbmcgYXQgW29mc10uIFJldHVybiB0b3RhbCBieXRlc1xuICAgcmVhZC4gKilcbmxldCByZWFkX3VwdG8gaWMgYnVmIG9mcyBsZW4gPVxuICBsZXQgcmVjIGxvb3Agb2ZzIGxlbiA9XG4gICAgaWYgbGVuID0gMCB0aGVuIG9mc1xuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gU3RkbGliLmlucHV0IGljIGJ1ZiBvZnMgbGVuIGluXG4gICAgICBpZiByID0gMCB0aGVuXG4gICAgICAgIG9mc1xuICAgICAgZWxzZVxuICAgICAgICBsb29wIChvZnMgKyByKSAobGVuIC0gcilcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBvZnMgbGVuIC0gb2ZzXG5cbigqIEJlc3QgZWZmb3J0IGF0dGVtcHQgdG8gcmV0dXJuIGEgYnVmZmVyIHdpdGggPj0gKG9mcyArIG4pIGJ5dGVzIG9mIHN0b3JhZ2UsXG4gICBhbmQgc3VjaCB0aGF0IGl0IGNvaW5jaWRlcyB3aXRoIFtidWZdIGF0IGluZGljZXMgPCBbb2ZzXS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBpcyBlcXVhbCB0byBbYnVmXSBpdHNlbGYgaWYgaXQgYWxyZWFkeSBoYXMgc3VmZmljaWVudFxuICAgZnJlZSBzcGFjZS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgaGF2ZSAqZmV3ZXIqIHRoYW4gW29mcyArIG5dIGJ5dGVzIG9mIHN0b3JhZ2UgaWYgdGhpc1xuICAgbnVtYmVyIGlzID4gW1N5cy5tYXhfc3RyaW5nX2xlbmd0aF0uIEhvd2V2ZXIgdGhlIHJldHVybmVkIGJ1ZmZlciB3aWxsXG4gICAqYWx3YXlzKiBoYXZlID4gW29mc10gYnl0ZXMgb2Ygc3RvcmFnZS4gSW4gdGhlIGxpbWl0aW5nIGNhc2Ugd2hlbiBbb2ZzID0gbGVuXG4gICA9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aF0gKHNvIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJlc2l6ZSB0aGUgYnVmZmVyIGF0XG4gICBhbGwpLCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxuXG5sZXQgZW5zdXJlIGJ1ZiBvZnMgbiA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmIGluXG4gIGlmIGxlbiA+PSBvZnMgKyBuIHRoZW4gYnVmXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgbmV3X2xlbiA9IHJlZiBsZW4gaW5cbiAgICB3aGlsZSAhbmV3X2xlbiA8IG9mcyArIG4gZG9cbiAgICAgIG5ld19sZW4gOj0gMiAqICFuZXdfbGVuICsgMVxuICAgIGRvbmU7XG4gICAgbGV0IG5ld19sZW4gPSAhbmV3X2xlbiBpblxuICAgIGxldCBuZXdfbGVuID1cbiAgICAgIGlmIG5ld19sZW4gPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgbmV3X2xlblxuICAgICAgZWxzZSBpZiBvZnMgPCBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgZmFpbHdpdGggXCJJbl9jaGFubmVsLmlucHV0X2FsbDogY2hhbm5lbCBjb250ZW50IFxcXG4gICAgICAgICAgICAgICAgICBpcyBsYXJnZXIgdGhhbiBtYXhpbXVtIHN0cmluZyBsZW5ndGhcIlxuICAgIGluXG4gICAgbGV0IG5ld19idWYgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmIDAgbmV3X2J1ZiAwIG9mcztcbiAgICBuZXdfYnVmXG4gIGVuZFxuXG5sZXQgaW5wdXRfYWxsIGljID1cbiAgbGV0IGNodW5rX3NpemUgPSA2NTUzNiBpbiAoKiBJT19CVUZGRVJfU0laRSAqKVxuICBsZXQgaW5pdGlhbF9zaXplID1cbiAgICB0cnlcbiAgICAgIFN0ZGxpYi5pbl9jaGFubmVsX2xlbmd0aCBpYyAtIFN0ZGxpYi5wb3NfaW4gaWNcbiAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAtMVxuICBpblxuICBsZXQgaW5pdGlhbF9zaXplID0gaWYgaW5pdGlhbF9zaXplIDwgMCB0aGVuIGNodW5rX3NpemUgZWxzZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IGluaXRpYWxfc2l6ZSA9XG4gICAgaWYgaW5pdGlhbF9zaXplIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICBpbml0aWFsX3NpemVcbiAgICBlbHNlXG4gICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgaW5cbiAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IG5yZWFkID0gcmVhZF91cHRvIGljIGJ1ZiAwIGluaXRpYWxfc2l6ZSBpblxuICBpZiBucmVhZCA8IGluaXRpYWxfc2l6ZSB0aGVuICgqIEVPRiByZWFjaGVkLCBidWZmZXIgcGFydGlhbGx5IGZpbGxlZCAqKVxuICAgIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmIDAgbnJlYWRcbiAgZWxzZSBiZWdpbiAoKiBucmVhZCA9IGluaXRpYWxfc2l6ZSwgbWF5YmUgRU9GIHJlYWNoZWQgKilcbiAgICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gICAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT5cbiAgICAgICAgKCogRU9GIHJlYWNoZWQsIGJ1ZmZlciBpcyBjb21wbGV0ZWx5IGZpbGxlZCAqKVxuICAgICAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGJ1ZlxuICAgIHwgYyAtPlxuICAgICAgICAoKiBFT0Ygbm90IHJlYWNoZWQgKilcbiAgICAgICAgbGV0IHJlYyBsb29wIGJ1ZiBvZnMgPVxuICAgICAgICAgIGxldCBidWYgPSBlbnN1cmUgYnVmIG9mcyBjaHVua19zaXplIGluXG4gICAgICAgICAgbGV0IHJlbSA9IEJ5dGVzLmxlbmd0aCBidWYgLSBvZnMgaW5cbiAgICAgICAgICAoKiBbcmVtXSBjYW4gYmUgPCBbY2h1bmtfc2l6ZV0gaWYgYnVmZmVyIHNpemUgY2xvc2UgdG9cbiAgICAgICAgICAgICBbU3lzLm1heF9zdHJpbmdfbGVuZ3RoXSAqKVxuICAgICAgICAgIGxldCByID0gcmVhZF91cHRvIGljIGJ1ZiBvZnMgcmVtIGluXG4gICAgICAgICAgaWYgciA8IHJlbSB0aGVuICgqIEVPRiByZWFjaGVkICopXG4gICAgICAgICAgICBCeXRlcy5zdWJfc3RyaW5nIGJ1ZiAwIChvZnMgKyByKVxuICAgICAgICAgIGVsc2UgKCogciA9IHJlbSAqKVxuICAgICAgICAgICAgbG9vcCBidWYgKG9mcyArIHJlbSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGJ1ZiA9IGVuc3VyZSBidWYgbnJlYWQgKGNodW5rX3NpemUgKyAxKSBpblxuICAgICAgICBCeXRlcy5zZXQgYnVmIG5yZWFkIGM7XG4gICAgICAgIGxvb3AgYnVmIChucmVhZCArIDEpXG4gIGVuZFxuXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9pblxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBvdXRfY2hhbm5lbFxuXG50eXBlIG9wZW5fZmxhZyA9IFN0ZGxpYi5vcGVuX2ZsYWcgPVxuICB8IE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5cbmxldCBzdGRvdXQgPSBTdGRsaWIuc3Rkb3V0XG5sZXQgc3RkZXJyID0gU3RkbGliLnN0ZGVyclxubGV0IG9wZW5fYmluID0gU3RkbGliLm9wZW5fb3V0X2JpblxubGV0IG9wZW5fdGV4dCA9IFN0ZGxpYi5vcGVuX291dFxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5fb3V0X2dlblxuXG5sZXQgd2l0aF9vcGVuIG9wZW5mdW4gcyBmID1cbiAgbGV0IG9jID0gb3BlbmZ1biBzIGluXG4gIEZ1bi5wcm90ZWN0IH5maW5hbGx5OihmdW4gKCkgLT4gU3RkbGliLmNsb3NlX291dF9ub2VyciBvYylcbiAgICAoZnVuICgpIC0+IGYgb2MpXG5cbmxldCB3aXRoX29wZW5fYmluIHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9vdXRfYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX291dCBzIGZcblxubGV0IHdpdGhfb3Blbl9nZW4gZmxhZ3MgcGVybSBzIGYgPVxuICB3aXRoX29wZW4gKFN0ZGxpYi5vcGVuX291dF9nZW4gZmxhZ3MgcGVybSkgcyBmXG5cbmxldCBzZWVrID0gU3RkbGliLkxhcmdlRmlsZS5zZWVrX291dFxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX291dFxubGV0IGxlbmd0aCA9IFN0ZGxpYi5MYXJnZUZpbGUub3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2UgPSBTdGRsaWIuY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2Vfb3V0X25vZXJyXG5sZXQgZmx1c2ggPSBTdGRsaWIuZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBTdGRsaWIuZmx1c2hfYWxsXG5sZXQgb3V0cHV0X2NoYXIgPSBTdGRsaWIub3V0cHV0X2NoYXJcbmxldCBvdXRwdXRfYnl0ZSA9IFN0ZGxpYi5vdXRwdXRfYnl0ZVxubGV0IG91dHB1dF9zdHJpbmcgPSBTdGRsaWIub3V0cHV0X3N0cmluZ1xubGV0IG91dHB1dF9ieXRlcyA9IFN0ZGxpYi5vdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBTdGRsaWIub3V0cHV0XG5sZXQgb3V0cHV0X3N1YnN0cmluZyA9IFN0ZGxpYi5vdXRwdXRfc3Vic3RyaW5nXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9vdXRcblxuZXh0ZXJuYWwgc2V0X2J1ZmZlcmVkIDogdCAtPiBib29sIC0+IHVuaXQgPSBcImNhbWxfbWxfc2V0X2J1ZmZlcmVkXCJcblxuZXh0ZXJuYWwgaXNfYnVmZmVyZWQgOiB0IC0+IGJvb2wgPSBcImNhbWxfbWxfaXNfYnVmZmVyZWRcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBHYWJyaWVsIFNjaGVyZXIsIHByb2pldCBQYXJzaWZhbCwgSU5SSUEgU2FjbGF5ICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICgnYSwgJ2IpIHQgPSBMZWZ0IG9mICdhIHwgUmlnaHQgb2YgJ2JcblxubGV0IGxlZnQgdiA9IExlZnQgdlxubGV0IHJpZ2h0IHYgPSBSaWdodCB2XG5cbmxldCBpc19sZWZ0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IHRydWVcbnwgUmlnaHQgXyAtPiBmYWxzZVxuXG5sZXQgaXNfcmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gZmFsc2VcbnwgUmlnaHQgXyAtPiB0cnVlXG5cbmxldCBmaW5kX2xlZnQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gU29tZSB2XG58IFJpZ2h0IF8gLT4gTm9uZVxuXG5sZXQgZmluZF9yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiBOb25lXG58IFJpZ2h0IHYgLT4gU29tZSB2XG5cbmxldCBtYXBfbGVmdCBmID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IExlZnQgKGYgdilcbnwgUmlnaHQgXyBhcyBlIC0+IGVcblxubGV0IG1hcF9yaWdodCBmID0gZnVuY3Rpb25cbnwgTGVmdCBfIGFzIGUgLT4gZVxufCBSaWdodCB2IC0+IFJpZ2h0IChmIHYpXG5cbmxldCBtYXAgfmxlZnQgfnJpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IExlZnQgKGxlZnQgdilcbnwgUmlnaHQgdiAtPiBSaWdodCAocmlnaHQgdilcblxubGV0IGZvbGQgfmxlZnQgfnJpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IGxlZnQgdlxufCBSaWdodCB2IC0+IHJpZ2h0IHZcblxubGV0IGl0ZXIgPSBmb2xkXG5cbmxldCBmb3JfYWxsID0gZm9sZFxuXG5sZXQgZXF1YWwgfmxlZnQgfnJpZ2h0IGUxIGUyID0gbWF0Y2ggZTEsIGUyIHdpdGhcbnwgTGVmdCB2MSwgTGVmdCB2MiAtPiBsZWZ0IHYxIHYyXG58IFJpZ2h0IHYxLCBSaWdodCB2MiAtPiByaWdodCB2MSB2MlxufCBMZWZ0IF8sIFJpZ2h0IF8gfCBSaWdodCBfLCBMZWZ0IF8gLT4gZmFsc2VcblxubGV0IGNvbXBhcmUgfmxlZnQgfnJpZ2h0IGUxIGUyID0gbWF0Y2ggZTEsIGUyIHdpdGhcbnwgTGVmdCB2MSwgTGVmdCB2MiAtPiBsZWZ0IHYxIHYyXG58IFJpZ2h0IHYxLCBSaWdodCB2MiAtPiByaWdodCB2MSB2MlxufCBMZWZ0IF8sIFJpZ2h0IF8gLT4gKC0xKVxufCBSaWdodCBfLCBMZWZ0IF8gLT4gMVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW05hdGl2ZWludF06IHByb2Nlc3Nvci1uYXRpdmUgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X25lZ1wiXG5leHRlcm5hbCBhZGQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FkZFwiXG5leHRlcm5hbCBzdWI6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X3N1YlwiXG5leHRlcm5hbCBtdWw6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X211bFwiXG5leHRlcm5hbCBkaXY6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2RpdlwiXG5leHRlcm5hbCByZW06IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X21vZFwiXG5leHRlcm5hbCBsb2dhbmQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FuZFwiXG5leHRlcm5hbCBsb2dvcjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb3JcIlxuZXh0ZXJuYWwgbG9neG9yOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0OiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNyXCJcbmV4dGVybmFsIG9mX2ludDogaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50OiBuYXRpdmVpbnQgLT4gaW50ID0gXCIlbmF0aXZlaW50X3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IG5hdGl2ZWludFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfb2ZfZmxvYXRcIiBcImNhbWxfbmF0aXZlaW50X29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBuYXRpdmVpbnQgLT4gZmxvYXRcbiAgPSBcImNhbWxfbmF0aXZlaW50X3RvX2Zsb2F0XCIgXCJjYW1sX25hdGl2ZWludF90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG9mX2ludDMyOiBpbnQzMiAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb2ZfaW50MzJcIlxuZXh0ZXJuYWwgdG9faW50MzI6IG5hdGl2ZWludCAtPiBpbnQzMiA9IFwiJW5hdGl2ZWludF90b19pbnQzMlwiXG5cbmxldCB6ZXJvID0gMG5cbmxldCBvbmUgPSAxblxubGV0IG1pbnVzX29uZSA9IC0xblxubGV0IHN1Y2MgbiA9IGFkZCBuIDFuXG5sZXQgcHJlZCBuID0gc3ViIG4gMW5cbmxldCBhYnMgbiA9IGlmIG4gPj0gMG4gdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBzaXplID0gU3lzLndvcmRfc2l6ZVxubGV0IG1pbl9pbnQgPSBzaGlmdF9sZWZ0IDFuIChzaXplIC0gMSlcbmxldCBtYXhfaW50ID0gc3ViIG1pbl9pbnQgMW5cbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMW4pXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBuYXRpdmVpbnQgLT4gc3RyaW5nID0gXCJjYW1sX25hdGl2ZWludF9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZzogc3RyaW5nIC0+IG5hdGl2ZWludCA9IFwiY2FtbF9uYXRpdmVpbnRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbnR5cGUgdCA9IG5hdGl2ZWludFxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE9wZXJhdGlvbnMgb24gaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zIG9mIHZhbHVlcyAqKVxuXG50eXBlIHRcblxudHlwZSByYXdfZGF0YSA9IG5hdGl2ZWludFxuXG5leHRlcm5hbCByZXByIDogJ2EgLT4gdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIG9iaiA6IHQgLT4gJ2EgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBtYWdpYyA6ICdhIC0+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+IHVuc2FmZV9jaHIoY29kZSBjICsgMzIpXG4gIHwgYyAtPiBjXG5cbmxldCB1cHBlcmNhc2VfYXNjaWkgPSBmdW5jdGlvblxuICB8ICdhJyAuLiAneicgYXMgYyAtPiB1bnNhZmVfY2hyKGNvZGUgYyAtIDMyKVxuICB8IGMgLT4gY1xuXG50eXBlIHQgPSBjaGFyXG5cbmxldCBjb21wYXJlIGMxIGMyID0gY29kZSBjMSAtIGNvZGUgYzJcbmxldCBlcXVhbCAoYzE6IHQpIChjMjogdCkgPSBjb21wYXJlIGMxIGMyID0gMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBCeXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgKilcblxuKCogV0FSTklORzogU29tZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCBmb3JcbiAgIGVmZmljaWVuY3kgcmVhc29ucy4gV2hlbiB5b3UgbW9kaWZ5IHRoZSBvbmUgaW4gdGhpcyBmaWxlIHlvdSBuZWVkIHRvXG4gICBtb2RpZnkgaXRzIGR1cGxpY2F0ZSBpbiBzdHJpbmcubWwuXG4gICBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIFwiZHVwbGljYXRlZFwiIGNvbW1lbnQgYWJvdmUgdGhlaXIgZGVmaW5pdGlvbi5cbiopXG5cbmV4dGVybmFsIGxlbmd0aCA6IGJ5dGVzIC0+IGludCA9IFwiJWJ5dGVzX2xlbmd0aFwiXG5leHRlcm5hbCBzdHJpbmdfbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgPSBcIiVieXRlc19zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlYnl0ZXNfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9ieXRlc1wiXG5leHRlcm5hbCB1bnNhZmVfZ2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgPSBcIiVieXRlc191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfZmlsbCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9maWxsX2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuZXh0ZXJuYWwgdW5zYWZlX29mX3N0cmluZyA6IHN0cmluZyAtPiBieXRlcyA9IFwiJWJ5dGVzX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIHVuc2FmZV9ibGl0IDogYnl0ZXMgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfYmxpdF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuXG5sZXQgbWFrZSBuIGMgPVxuICBsZXQgcyA9IGNyZWF0ZSBuIGluXG4gIHVuc2FmZV9maWxsIHMgMCBuIGM7XG4gIHNcblxubGV0IGluaXQgbiBmID1cbiAgbGV0IHMgPSBjcmVhdGUgbiBpblxuICBmb3IgaSA9IDAgdG8gbiAtIDEgZG9cbiAgICB1bnNhZmVfc2V0IHMgaSAoZiBpKVxuICBkb25lO1xuICBzXG5cbmxldCBlbXB0eSA9IGNyZWF0ZSAwXG5cbmxldCBjb3B5IHMgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gIHVuc2FmZV9ibGl0IHMgMCByIDAgbGVuO1xuICByXG5cbmxldCB0b19zdHJpbmcgYiA9IHVuc2FmZV90b19zdHJpbmcgKGNvcHkgYilcbmxldCBvZl9zdHJpbmcgcyA9IGNvcHkgKHVuc2FmZV9vZl9zdHJpbmcgcylcblxubGV0IHN1YiBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5zdWIgLyBCeXRlcy5zdWJcIlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gICAgdW5zYWZlX2JsaXQgcyBvZnMgciAwIGxlbjtcbiAgICByXG4gIGVuZFxuXG5sZXQgc3ViX3N0cmluZyBiIG9mcyBsZW4gPSB1bnNhZmVfdG9fc3RyaW5nIChzdWIgYiBvZnMgbGVuKVxuXG4oKiBhZGRpdGlvbiB3aXRoIGFuIG92ZXJmbG93IGNoZWNrICopXG5sZXQgKCsrKSBhIGIgPVxuICBsZXQgYyA9IGEgKyBiIGluXG4gIG1hdGNoIGEgPCAwLCBiIDwgMCwgYyA8IDAgd2l0aFxuICB8IHRydWUgLCB0cnVlICwgZmFsc2VcbiAgfCBmYWxzZSwgZmFsc2UsIHRydWUgIC0+IGludmFsaWRfYXJnIFwiQnl0ZXMuZXh0ZW5kXCIgKCogb3ZlcmZsb3cgKilcbiAgfCBfIC0+IGNcblxubGV0IGV4dGVuZCBzIGxlZnQgcmlnaHQgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgKysgbGVmdCArKyByaWdodCBpblxuICBsZXQgciA9IGNyZWF0ZSBsZW4gaW5cbiAgbGV0IChzcmNvZmYsIGRzdG9mZikgPSBpZiBsZWZ0IDwgMCB0aGVuIC1sZWZ0LCAwIGVsc2UgMCwgbGVmdCBpblxuICBsZXQgY3B5bGVuID0gSW50Lm1pbiAobGVuZ3RoIHMgLSBzcmNvZmYpIChsZW4gLSBkc3RvZmYpIGluXG4gIGlmIGNweWxlbiA+IDAgdGhlbiB1bnNhZmVfYmxpdCBzIHNyY29mZiByIGRzdG9mZiBjcHlsZW47XG4gIHJcblxubGV0IGZpbGwgcyBvZnMgbGVuIGMgPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5maWxsIC8gQnl0ZXMuZmlsbFwiXG4gIGVsc2UgdW5zYWZlX2ZpbGwgcyBvZnMgbGVuIGNcblxubGV0IGJsaXQgczEgb2ZzMSBzMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IGxlbmd0aCBzMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggczIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ5dGVzLmJsaXRcIlxuICBlbHNlIHVuc2FmZV9ibGl0IHMxIG9mczEgczIgb2ZzMiBsZW5cblxubGV0IGJsaXRfc3RyaW5nIHMxIG9mczEgczIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBzdHJpbmdfbGVuZ3RoIHMxIC0gbGVuXG4gICAgICAgICAgICAgfHwgb2ZzMiA8IDAgfHwgb2ZzMiA+IGxlbmd0aCBzMiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmJsaXQgLyBCeXRlcy5ibGl0X3N0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX2JsaXRfc3RyaW5nIHMxIG9mczEgczIgb2ZzMiBsZW5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpdGVyIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZih1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGl0ZXJpIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgZW5zdXJlX2dlICh4OmludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIkJ5dGVzLmNvbmNhdFwiXG5cbmxldCByZWMgc3VtX2xlbmd0aHMgYWNjIHNlcGxlbiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gYWNjXG4gIHwgaGQgOjogW10gLT4gbGVuZ3RoIGhkICsgYWNjXG4gIHwgaGQgOjogdGwgLT4gc3VtX2xlbmd0aHMgKGVuc3VyZV9nZSAobGVuZ3RoIGhkICsgc2VwbGVuICsgYWNjKSBhY2MpIHNlcGxlbiB0bFxuXG5sZXQgcmVjIHVuc2FmZV9ibGl0cyBkc3QgcG9zIHNlcCBzZXBsZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IGRzdFxuICB8IGhkIDo6IFtdIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpOyBkc3RcbiAgfCBoZCA6OiB0bCAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTtcbiAgICB1bnNhZmVfYmxpdCBzZXAgMCBkc3QgKHBvcyArIGxlbmd0aCBoZCkgc2VwbGVuO1xuICAgIHVuc2FmZV9ibGl0cyBkc3QgKHBvcyArIGxlbmd0aCBoZCArIHNlcGxlbikgc2VwIHNlcGxlbiB0bFxuXG5sZXQgY29uY2F0IHNlcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZW1wdHlcbiAgfCBsIC0+IGxldCBzZXBsZW4gPSBsZW5ndGggc2VwIGluXG4gICAgICAgICAgdW5zYWZlX2JsaXRzXG4gICAgICAgICAgICAoY3JlYXRlIChzdW1fbGVuZ3RocyAwIHNlcGxlbiBsKSlcbiAgICAgICAgICAgIDAgc2VwIHNlcGxlbiBsXG5cbmxldCBjYXQgczEgczIgPVxuICBsZXQgbDEgPSBsZW5ndGggczEgaW5cbiAgbGV0IGwyID0gbGVuZ3RoIHMyIGluXG4gIGxldCByID0gY3JlYXRlIChsMSArIGwyKSBpblxuICB1bnNhZmVfYmxpdCBzMSAwIHIgMCBsMTtcbiAgdW5zYWZlX2JsaXQgczIgMCByIGwxIGwyO1xuICByXG5cblxuZXh0ZXJuYWwgY2hhcl9jb2RlOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGNoYXJfY2hyOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcblxubGV0IGlzX3NwYWNlID0gZnVuY3Rpb25cbiAgfCAnICcgfCAnXFwwMTInIHwgJ1xcbicgfCAnXFxyJyB8ICdcXHQnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cbmxldCB0cmltIHMgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IGkgPSByZWYgMCBpblxuICB3aGlsZSAhaSA8IGxlbiAmJiBpc19zcGFjZSAodW5zYWZlX2dldCBzICFpKSBkb1xuICAgIGluY3IgaVxuICBkb25lO1xuICBsZXQgaiA9IHJlZiAobGVuIC0gMSkgaW5cbiAgd2hpbGUgIWogPj0gIWkgJiYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAhaikgZG9cbiAgICBkZWNyIGpcbiAgZG9uZTtcbiAgaWYgIWogPj0gIWkgdGhlblxuICAgIHN1YiBzICFpICghaiAtICFpICsgMSlcbiAgZWxzZVxuICAgIGVtcHR5XG5cbmxldCBlc2NhcGVkIHMgPVxuICBsZXQgbiA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG9cbiAgICBuIDo9ICFuICtcbiAgICAgIChtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICAgfCAnXFxcIicgfCAnXFxcXCcgfCAnXFxuJyB8ICdcXHQnIHwgJ1xccicgfCAnXFxiJyAtPiAyXG4gICAgICAgfCAnICcgLi4gJ34nIC0+IDFcbiAgICAgICB8IF8gLT4gNClcbiAgZG9uZTtcbiAgaWYgIW4gPSBsZW5ndGggcyB0aGVuIGNvcHkgcyBlbHNlIGJlZ2luXG4gICAgbGV0IHMnID0gY3JlYXRlICFuIGluXG4gICAgbiA6PSAwO1xuICAgIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG9cbiAgICAgIGJlZ2luIG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgKCdcXFwiJyB8ICdcXFxcJykgYXMgYyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gY1xuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ24nXG4gICAgICB8ICdcXHQnIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAndCdcbiAgICAgIHwgJ1xccicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICdyJ1xuICAgICAgfCAnXFxiJyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ2InXG4gICAgICB8ICgnICcgLi4gJ34nKSBhcyBjIC0+IHVuc2FmZV9zZXQgcycgIW4gY1xuICAgICAgfCBjIC0+XG4gICAgICAgICAgbGV0IGEgPSBjaGFyX2NvZGUgYyBpblxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyBhIC8gMTAwKSk7XG4gICAgICAgICAgaW5jciBuO1xuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gKGNoYXJfY2hyICg0OCArIChhIC8gMTApIG1vZCAxMCkpO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyBhIG1vZCAxMCkpO1xuICAgICAgZW5kO1xuICAgICAgaW5jciBuXG4gICAgZG9uZTtcbiAgICBzJ1xuICBlbmRcblxubGV0IG1hcCBmIHMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGwgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBzIGkpKSBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCBtYXBpIGYgcyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgbCA9IDAgdGhlbiBzIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgcyBpKSkgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvXG4gICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgZG9uZTtcbiAgIXJcblxubGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgZG9uZTtcbiAgIXJcblxubGV0IGV4aXN0cyBwIHMgPVxuICBsZXQgbiA9IGxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IHMgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbCBwIHMgPVxuICBsZXQgbiA9IGxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgcyBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgdXBwZXJjYXNlX2FzY2lpIHMgPSBtYXAgQ2hhci51cHBlcmNhc2VfYXNjaWkgc1xubGV0IGxvd2VyY2FzZV9hc2NpaSBzID0gbWFwIENoYXIubG93ZXJjYXNlX2FzY2lpIHNcblxubGV0IGFwcGx5MSBmIHMgPVxuICBpZiBsZW5ndGggcyA9IDAgdGhlbiBzIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNvcHkgcyBpblxuICAgIHVuc2FmZV9zZXQgciAwIChmKHVuc2FmZV9nZXQgcyAwKSk7XG4gICAgclxuICBlbmRcblxubGV0IGNhcGl0YWxpemVfYXNjaWkgcyA9IGFwcGx5MSBDaGFyLnVwcGVyY2FzZV9hc2NpaSBzXG5sZXQgdW5jYXBpdGFsaXplX2FzY2lpIHMgPSBhcHBseTEgQ2hhci5sb3dlcmNhc2VfYXNjaWkgc1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHN0YXJ0c193aXRoIH5wcmVmaXggcyA9XG4gIGxldCBsZW5fcyA9IGxlbmd0aCBzXG4gIGFuZCBsZW5fcHJlID0gbGVuZ3RoIHByZWZpeCBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBpZiBpID0gbGVuX3ByZSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHVuc2FmZV9nZXQgcyBpIDw+IHVuc2FmZV9nZXQgcHJlZml4IGkgdGhlbiBmYWxzZVxuICAgIGVsc2UgYXV4IChpICsgMSlcbiAgaW4gbGVuX3MgPj0gbGVuX3ByZSAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGVuZHNfd2l0aCB+c3VmZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3N1ZiA9IGxlbmd0aCBzdWZmaXggaW5cbiAgbGV0IGRpZmYgPSBsZW5fcyAtIGxlbl9zdWYgaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9zdWYgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgKGRpZmYgKyBpKSA8PiB1bnNhZmVfZ2V0IHN1ZmZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGRpZmYgPj0gMCAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWMgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgaW5kZXhfcmVjIHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4IHMgYyA9IGluZGV4X3JlYyBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIGluZGV4X3JlY19vcHQgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgaW5kZXhfcmVjX29wdCBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleF9vcHQgcyBjID0gaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tIC8gQnl0ZXMuaW5kZXhfZnJvbVwiIGVsc2VcbiAgaW5kZXhfcmVjIHMgbCBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMuaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgaW5kZXhfcmVjX29wdCBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWMgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSByaW5kZXhfcmVjIHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4IHMgYyA9IHJpbmRleF9yZWMgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb20gLyBCeXRlcy5yaW5kZXhfZnJvbVwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjIHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWNfb3B0IHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgcmluZGV4X3JlY19vcHQgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfb3B0IHMgYyA9IHJpbmRleF9yZWNfb3B0IHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5yaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgcmluZGV4X3JlY19vcHQgcyBpIGNcblxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb250YWluc19mcm9tIC8gQnl0ZXMuY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChpbmRleF9yZWMgcyBsIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGNvbnRhaW5zIHMgYyA9IGNvbnRhaW5zX2Zyb20gcyAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAwIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJjb250YWluc19mcm9tIC8gQnl0ZXMucmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAocmluZGV4X3JlYyBzIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuXG50eXBlIHQgPSBieXRlc1xuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5leHRlcm5hbCBlcXVhbCA6IHQgLT4gdCAtPiBib29sID0gXCJjYW1sX2J5dGVzX2VxdWFsXCIgW0BAbm9hbGxvY11cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBzcGxpdF9vbl9jaGFyIHNlcCBzID1cbiAgbGV0IHIgPSByZWYgW10gaW5cbiAgbGV0IGogPSByZWYgKGxlbmd0aCBzKSBpblxuICBmb3IgaSA9IGxlbmd0aCBzIC0gMSBkb3dudG8gMCBkb1xuICAgIGlmIHVuc2FmZV9nZXQgcyBpID0gc2VwIHRoZW4gYmVnaW5cbiAgICAgIHIgOj0gc3ViIHMgKGkgKyAxKSAoIWogLSBpIC0gMSkgOjogIXI7XG4gICAgICBqIDo9IGlcbiAgICBlbmRcbiAgZG9uZTtcbiAgc3ViIHMgMCAhaiA6OiAhclxuXG4oKiBEZXByZWNhdGVkIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCB2aWEgb3RoZXIgZGVwcmVjYXRlZCBmdW5jdGlvbnMgKilcbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl1cbmxldCB1cHBlcmNhc2UgcyA9IG1hcCBDaGFyLnVwcGVyY2FzZSBzXG5sZXQgbG93ZXJjYXNlIHMgPSBtYXAgQ2hhci5sb3dlcmNhc2Ugc1xuXG5sZXQgY2FwaXRhbGl6ZSBzID0gYXBwbHkxIENoYXIudXBwZXJjYXNlIHNcbmxldCB1bmNhcGl0YWxpemUgcyA9IGFwcGx5MSBDaGFyLmxvd2VyY2FzZSBzXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcyA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPSBsZW5ndGggcyB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IGdldCBzIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIHMgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpID0gbGVuZ3RoIHMgdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBnZXQgcyBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IG4gPSByZWYgMCBpblxuICBsZXQgYnVmID0gcmVmIChtYWtlIDI1NiAnXFwwMDAnKSBpblxuICBsZXQgcmVzaXplICgpID1cbiAgICAoKiByZXNpemUgKilcbiAgICBsZXQgbmV3X2xlbiA9IEludC5taW4gKDIgKiBsZW5ndGggIWJ1ZikgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIGluXG4gICAgaWYgbGVuZ3RoICFidWYgPSBuZXdfbGVuIHRoZW4gZmFpbHdpdGggXCJCeXRlcy5vZl9zZXE6IGNhbm5vdCBncm93IGJ5dGVzXCI7XG4gICAgbGV0IG5ld19idWYgPSBtYWtlIG5ld19sZW4gJ1xcMDAwJyBpblxuICAgIGJsaXQgIWJ1ZiAwIG5ld19idWYgMCAhbjtcbiAgICBidWYgOj0gbmV3X2J1ZlxuICBpblxuICBTZXEuaXRlclxuICAgIChmdW4gYyAtPlxuICAgICAgIGlmICFuID0gbGVuZ3RoICFidWYgdGhlbiByZXNpemUoKTtcbiAgICAgICBzZXQgIWJ1ZiAhbiBjO1xuICAgICAgIGluY3IgbilcbiAgICBpO1xuICBzdWIgIWJ1ZiAwICFuXG5cbigqKiB7NiBCaW5hcnkgZW5jb2RpbmcvZGVjb2Rpbmcgb2YgaW50ZWdlcnN9ICopXG5cbigqIFRoZSBnZXRfIGZ1bmN0aW9ucyBhcmUgYWxsIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5cbmV4dGVybmFsIHVuc2FmZV9nZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlYnl0ZXNfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfZ2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX2J5dGVzX2dldDE2dVwiXG5leHRlcm5hbCBnZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlYnl0ZXNfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX2J5dGVzX2dldDE2XCJcbmV4dGVybmFsIGdldF9pbnQzMl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQzMiA9IFwiJWNhbWxfYnl0ZXNfZ2V0MzJcIlxuZXh0ZXJuYWwgZ2V0X2ludDY0X25lIDogYnl0ZXMgLT4gaW50IC0+IGludDY0ID0gXCIlY2FtbF9ieXRlc19nZXQ2NFwiXG5cbmV4dGVybmFsIHVuc2FmZV9zZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfdWludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZ1XCJcbmV4dGVybmFsIHNldF9pbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgc2V0X2ludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQxNlwiXG5leHRlcm5hbCBzZXRfaW50MzJfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MzJcIlxuZXh0ZXJuYWwgc2V0X2ludDY0X25lIDogYnl0ZXMgLT4gaW50IC0+IGludDY0IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDY0XCJcbmV4dGVybmFsIHN3YXAxNiA6IGludCAtPiBpbnQgPSBcIiVic3dhcDE2XCJcbmV4dGVybmFsIHN3YXAzMiA6IGludDMyIC0+IGludDMyID0gXCIlYnN3YXBfaW50MzJcIlxuZXh0ZXJuYWwgc3dhcDY0IDogaW50NjQgLT4gaW50NjQgPSBcIiVic3dhcF9pbnQ2NFwiXG5cbmxldCB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHN3YXAxNiAodW5zYWZlX2dldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIHVuc2FmZV9nZXRfdWludDE2X25lIGIgaVxuXG5sZXQgdW5zYWZlX2dldF91aW50MTZfYmUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGlcbiAgZWxzZSBzd2FwMTYgKHVuc2FmZV9nZXRfdWludDE2X25lIGIgaSlcblxubGV0IGdldF9pbnQ4IGIgaSA9XG4gICgoZ2V0X3VpbnQ4IGIgaSkgbHNsIChTeXMuaW50X3NpemUgLSA4KSkgYXNyIChTeXMuaW50X3NpemUgLSA4KVxuXG5sZXQgZ2V0X3VpbnQxNl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiAoZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IGdldF91aW50MTZfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDE2IChnZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSBnZXRfdWludDE2X25lIGIgaVxuXG5sZXQgZ2V0X2ludDE2X25lIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9uZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDE2X2xlIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9sZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDE2X2JlIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9iZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDMyX2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIChnZXRfaW50MzJfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQzMl9uZSBiIGlcblxubGV0IGdldF9pbnQzMl9iZSBiIGkgPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMzIgKGdldF9pbnQzMl9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDMyX25lIGIgaVxuXG5sZXQgZ2V0X2ludDY0X2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IChnZXRfaW50NjRfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQ2NF9uZSBiIGlcblxubGV0IGdldF9pbnQ2NF9iZSBiIGkgPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgKGdldF9pbnQ2NF9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDY0X25lIGIgaVxuXG5sZXQgdW5zYWZlX3NldF91aW50MTZfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSAoc3dhcDE2IHgpXG4gIGVsc2UgdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIHhcblxubGV0IHVuc2FmZV9zZXRfdWludDE2X2JlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgeCBlbHNlXG4gIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSAoc3dhcDE2IHgpXG5cbmxldCBzZXRfaW50MTZfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHNldF9pbnQxNl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDE2X2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDE2X25lIGIgaSAoc3dhcDE2IHgpXG4gIGVsc2Ugc2V0X2ludDE2X25lIGIgaSB4XG5cbmxldCBzZXRfaW50MzJfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQzMl9uZSBiIGkgKHN3YXAzMiB4KVxuICBlbHNlIHNldF9pbnQzMl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDMyX2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDMyX25lIGIgaSAoc3dhcDMyIHgpXG4gIGVsc2Ugc2V0X2ludDMyX25lIGIgaSB4XG5cbmxldCBzZXRfaW50NjRfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQ2NF9uZSBiIGkgKHN3YXA2NCB4KVxuICBlbHNlIHNldF9pbnQ2NF9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDY0X2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDY0X25lIGIgaSAoc3dhcDY0IHgpXG4gIGVsc2Ugc2V0X2ludDY0X25lIGIgaSB4XG5cbmxldCBzZXRfdWludDggPSBzZXRfaW50OFxubGV0IHNldF91aW50MTZfbmUgPSBzZXRfaW50MTZfbmVcbmxldCBzZXRfdWludDE2X2JlID0gc2V0X2ludDE2X2JlXG5sZXQgc2V0X3VpbnQxNl9sZSA9IHNldF9pbnQxNl9sZVxuXG4oKiBVVEYgY29kZWNzIGFuZCB2YWxpZGF0aW9ucyAqKVxuXG5sZXQgZGVjX2ludmFsaWQgPSBVY2hhci51dGZfZGVjb2RlX2ludmFsaWRcbmxldFtAaW5saW5lXSBkZWNfcmV0IG4gdSA9IFVjaGFyLnV0Zl9kZWNvZGUgbiAoVWNoYXIudW5zYWZlX29mX2ludCB1KVxuXG4oKiBJbiBjYXNlIG9mIGRlY29kaW5nIGVycm9yLCBpZiB3ZSBlcnJvciBvbiB0aGUgZmlyc3QgYnl0ZSwgd2VcbiAgIGNvbnN1bWUgdGhlIGJ5dGUsIG90aGVyd2lzZSB3ZSBjb25zdW1lIHRoZSBbbl0gYnl0ZXMgcHJlY2VlZGluZ1xuICAgdGhlIGVycm9yaW5nIGJ5dGUuXG5cbiAgIFRoaXMgbWVhbnMgdGhhdCBpZiBhIGNsaWVudCB1c2VzIGRlY29kZXMgd2l0aG91dCBjYXJpbmcgYWJvdXRcbiAgIHZhbGlkaXR5IGl0IG5hdHVyYWxseSByZXBsYWNlIGJvZ3VzIGRhdGEgd2l0aCBVY2hhci5yZXAgYWNjb3JkaW5nXG4gICB0byB0aGUgV0hBVFdHIEVuY29kaW5nIHN0YW5kYXJkLiBPdGhlciBzY2hlbWVzIGFyZSBwb3NzaWJsZSBieVxuICAgY29uc3VsdGluZyB0aGUgbnVtYmVyIG9mIHVzZWQgYnl0ZXMgb24gaW52YWxpZCBkZWNvZGVzLiBGb3IgbW9yZVxuICAgZGV0YWlscyBzZWUgaHR0cHM6Ly9oc2l2b25lbi5maS9icm9rZW4tdXRmLTgvXG5cbiAgIEZvciB0aGlzIHJlYXNvbiBpbiBbZ2V0X3V0Zl84X3VjaGFyXSB3ZSBncmFkdWFsbHkgY2hlY2sgdGhlIG5leHRcbiAgIGJ5dGUgaXMgYXZhaWxhYmxlIHJhdGhlciB0aGFuIGRvaW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZVxuICAgZmlyc3QgYnl0ZS4gQ29udHJhc3Qgd2l0aCBbaXNfdmFsaWRfdXRmXzhdLiAqKVxuXG4oKiBVVEYtOCAqKVxuXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194QkYgYiA9IGIgbHNyIDYgPD4gMGIxMFxubGV0W0BpbmxpbmVdIG5vdF9pbl94QTBfdG9feEJGIGIgPSBiIGxzciA1IDw+IDBiMTAxXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194OUYgYiA9IGIgbHNyIDUgPD4gMGIxMDBcbmxldFtAaW5saW5lXSBub3RfaW5feDkwX3RvX3hCRiBiID0gYiA8IDB4OTAgfHwgMHhCRiA8IGJcbmxldFtAaW5saW5lXSBub3RfaW5feDgwX3RvX3g4RiBiID0gYiBsc3IgNCA8PiAweDhcblxubGV0W0BpbmxpbmVdIHV0Zl84X3VjaGFyXzIgYjAgYjEgPVxuICAoKGIwIGxhbmQgMHgxRikgbHNsIDYpIGxvclxuICAoKGIxIGxhbmQgMHgzRikpXG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl8zIGIwIGIxIGIyID1cbiAgKChiMCBsYW5kIDB4MEYpIGxzbCAxMikgbG9yXG4gICgoYjEgbGFuZCAweDNGKSBsc2wgNikgbG9yXG4gICgoYjIgbGFuZCAweDNGKSlcblxubGV0W0BpbmxpbmVdIHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMgPVxuICAoKGIwIGxhbmQgMHgwNykgbHNsIDE4KSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpIGxzbCAxMikgbG9yXG4gICgoYjIgbGFuZCAweDNGKSBsc2wgNikgbG9yXG4gICgoYjMgbGFuZCAweDNGKSlcblxubGV0IGdldF91dGZfOF91Y2hhciBiIGkgPVxuICBsZXQgYjAgPSBnZXRfdWludDggYiBpIGluICgqIHJhaXNlcyBpZiBbaV0gaXMgbm90IGEgdmFsaWQgaW5kZXguICopXG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQ4IGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgbWF0Y2ggQ2hhci51bnNhZmVfY2hyIGIwIHdpdGggKCogU2VlIFRoZSBVbmljb2RlIFN0YW5kYXJkLCBUYWJsZSAzLjcgKilcbiAgfCAnXFx4MDAnIC4uICdcXHg3RicgLT4gZGVjX3JldCAxIGIwXG4gIHwgJ1xceEMyJyAuLiAnXFx4REYnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGRlY19yZXQgMiAodXRmXzhfdWNoYXJfMiBiMCBiMSlcbiAgfCAnXFx4RTAnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3hBMF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgZGVjX3JldCAzICh1dGZfOF91Y2hhcl8zIGIwIGIxIGIyKVxuICB8ICdcXHhFMScgLi4gJ1xceEVDJyB8ICdcXHhFRScgLi4gJ1xceEVGJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RUQnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194OUYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgZGVjX3JldCAzICh1dGZfOF91Y2hhcl8zIGIwIGIxIGIyKVxuICB8ICdcXHhGMCcgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDkwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGxldCBiMyA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjMgdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGRlY19yZXQgNCAodXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMylcbiAgfCAnXFx4RjEnIC4uICdcXHhGMycgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGxldCBiMyA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjMgdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGRlY19yZXQgNCAodXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMylcbiAgfCAnXFx4RjQnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194OEYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgXyAtPiBkZWNfaW52YWxpZCAxXG5cbmxldCBzZXRfdXRmXzhfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50OCBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIG1hdGNoIFVjaGFyLnRvX2ludCB1IHdpdGhcbiAgfCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgdSB3aGVuIHUgPD0gMHgwMDdGIC0+XG4gICAgICBzZXRfdWludDggYiBpIHU7XG4gICAgICAxXG4gIHwgdSB3aGVuIHUgPD0gMHgwN0ZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICAoc2V0X3VpbnQ4IGIgaSAoMHhDMCBsb3IgKHUgbHNyIDYpKTtcbiAgICAgICBzZXQgYiBsYXN0ICgweDgwIGxvciAodSBsYW5kIDB4M0YpKTtcbiAgICAgICAyKVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4RTAgbG9yICh1IGxzciAxMikpO1xuICAgICAgIHNldCBiIChpICsgMSkgKDB4ODAgbG9yICgodSBsc3IgNikgbGFuZCAweDNGKSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgMylcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4RjAgbG9yICh1IGxzciAxOCkpO1xuICAgICAgIHNldCBiIChpICsgMSkgKDB4ODAgbG9yICgodSBsc3IgMTIpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIChpICsgMikgKDB4ODAgbG9yICgodSBsc3IgNikgbGFuZCAweDNGKSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgNClcbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgaXNfdmFsaWRfdXRmXzggYiA9XG4gIGxldCByZWMgbG9vcCBtYXggYiBpID1cbiAgICBpZiBpID4gbWF4IHRoZW4gdHJ1ZSBlbHNlXG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDggaW5cbiAgICBtYXRjaCBDaGFyLnVuc2FmZV9jaHIgKGdldCBiIGkpIHdpdGhcbiAgICB8ICdcXHgwMCcgLi4gJ1xceDdGJyAtPiBsb29wIG1heCBiIChpICsgMSlcbiAgICB8ICdcXHhDMicgLi4gJ1xceERGJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFMCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94QTBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEUxJyAuLiAnXFx4RUMnIHwgJ1xceEVFJyAuLiAnXFx4RUYnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFRCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feDlGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEYwJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g5MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEYxJyAuLiAnXFx4RjMnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMikpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RjQnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3g4RiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMikpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCBfIC0+IGZhbHNlXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG5cbigqIFVURi0xNkJFICopXG5cbmxldCBnZXRfdXRmXzE2YmVfdWNoYXIgYiBpID1cbiAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2JlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgaWYgaSA9IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19yZXQgMiB1XG4gIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZGVjX2ludmFsaWQgMlxuICB8IGhpIC0+ICgqIGNvbWJpbmUgW2hpXSB3aXRoIGEgbG93IHN1cnJvZ2F0ZSAqKVxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGRlY19pbnZhbGlkIChtYXggLSBpICsgMSkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZGVjX2ludmFsaWQgMiAoKiByZXRyeSBoZXJlICopXG4gICAgICB8IGxvIC0+XG4gICAgICAgICAgbGV0IHUgPSAoKChoaSBsYW5kIDB4M0ZGKSBsc2wgMTApIGxvciAobG8gbGFuZCAweDNGRikpICsgMHgxMDAwMCBpblxuICAgICAgICAgIGRlY19yZXQgNCB1XG5cbmxldCBzZXRfdXRmXzE2YmVfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50MTZfYmUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZSAoc2V0IGIgaSB1OyAyKVxuICB8IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICBsZXQgdScgPSB1IC0gMHgxMDAwMCBpblxuICAgICAgbGV0IGhpID0gKDB4RDgwMCBsb3IgKHUnIGxzciAxMCkpIGluXG4gICAgICBsZXQgbG8gPSAoMHhEQzAwIGxvciAodScgbGFuZCAweDNGRikpIGluXG4gICAgICBzZXQgYiBpIGhpOyBzZXQgYiAoaSArIDIpIGxvOyA0XG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl8xNmJlIGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2JlIGluXG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGlmIGkgPSBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGxvb3AgbWF4IGIgKGkgKyAyKVxuICAgIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZmFsc2VcbiAgICB8IF9oaSAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZmFsc2VcbiAgICAgICAgfCBfbG8gLT4gbG9vcCBtYXggYiAoaSArIDQpXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG5cbigqIFVURi0xNkxFICopXG5cbmxldCBnZXRfdXRmXzE2bGVfdWNoYXIgYiBpID1cbiAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2xlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgaWYgaSA9IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19yZXQgMiB1XG4gIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZGVjX2ludmFsaWQgMlxuICB8IGhpIC0+ICgqIGNvbWJpbmUgW2hpXSB3aXRoIGEgbG93IHN1cnJvZ2F0ZSAqKVxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGRlY19pbnZhbGlkIChtYXggLSBpICsgMSkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZGVjX2ludmFsaWQgMiAoKiByZXRyeSBoZXJlICopXG4gICAgICB8IGxvIC0+XG4gICAgICAgICAgbGV0IHUgPSAoKChoaSBsYW5kIDB4M0ZGKSBsc2wgMTApIGxvciAobG8gbGFuZCAweDNGRikpICsgMHgxMDAwMCBpblxuICAgICAgICAgIGRlY19yZXQgNCB1XG5cbmxldCBzZXRfdXRmXzE2bGVfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50MTZfbGUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZSAoc2V0IGIgaSB1OyAyKVxuICB8IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICBsZXQgdScgPSB1IC0gMHgxMDAwMCBpblxuICAgICAgbGV0IGhpID0gKDB4RDgwMCBsb3IgKHUnIGxzciAxMCkpIGluXG4gICAgICBsZXQgbG8gPSAoMHhEQzAwIGxvciAodScgbGFuZCAweDNGRikpIGluXG4gICAgICBzZXQgYiBpIGhpOyBzZXQgYiAoaSArIDIpIGxvOyA0XG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl8xNmxlIGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2xlIGluXG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGlmIGkgPSBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGxvb3AgbWF4IGIgKGkgKyAyKVxuICAgIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZmFsc2VcbiAgICB8IF9oaSAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZmFsc2VcbiAgICAgICAgfCBfbG8gLT4gbG9vcCBtYXggYiAoaSArIDQpXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGludFxuXG5sZXQgemVybyA9IDBcbmxldCBvbmUgPSAxXG5sZXQgbWludXNfb25lID0gLTFcbmV4dGVybmFsIG5lZyA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgYWRkIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgc3ViIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgbXVsIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgZGl2IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgcmVtIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5sZXQgYWJzIHggPSBpZiB4ID49IDAgdGhlbiB4IGVsc2UgLXhcbmxldCBtYXhfaW50ID0gKC0xKSBsc3IgMVxubGV0IG1pbl9pbnQgPSBtYXhfaW50ICsgMVxuZXh0ZXJuYWwgbG9nYW5kIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsIGxvZ3hvciA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcbmxldCBsb2dub3QgeCA9IGxvZ3hvciB4ICgtMSlcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5sZXQgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBpbnQgLT4gaW50IC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuXG4oKlxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5sZXQgb2Zfc3RyaW5nIHMgPSB0cnkgU29tZSAoaW50X29mX3N0cmluZyBzKSB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG4qKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5sZXQgdG9fc3RyaW5nIHggPSBmb3JtYXRfaW50IFwiJWRcIiB4XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBHYWxsaXVtLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFN0cmluZyBvcGVyYXRpb25zLCBiYXNlZCBvbiBieXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgKilcblxuKCogV0FSTklORzogU29tZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sIGZvclxuICAgZWZmaWNpZW5jeSByZWFzb25zLiBXaGVuIHlvdSBtb2RpZnkgdGhlIG9uZSBpbiB0aGlzIGZpbGUgeW91IG5lZWQgdG9cbiAgIG1vZGlmeSBpdHMgZHVwbGljYXRlIGluIGJ5dGVzLm1sLlxuICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBcImR1cGxpY2F0ZWRcIiBjb21tZW50IGFib3ZlIHRoZWlyIGRlZmluaXRpb24uXG4qKVxuXG5leHRlcm5hbCBsZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBnZXQgOiBzdHJpbmcgLT4gaW50IC0+IGNoYXIgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJXN0cmluZ19zYWZlX3NldFwiXG5leHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX3N0cmluZ1wiXG5leHRlcm5hbCB1bnNhZmVfZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVzdHJpbmdfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6IHN0cmluZyAtPiBpbnQgLT4gIGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfZmlsbF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuXG5tb2R1bGUgQiA9IEJ5dGVzXG5cbmxldCBidHMgPSBCLnVuc2FmZV90b19zdHJpbmdcbmxldCBib3MgPSBCLnVuc2FmZV9vZl9zdHJpbmdcblxubGV0IG1ha2UgbiBjID1cbiAgQi5tYWtlIG4gYyB8PiBidHNcbmxldCBpbml0IG4gZiA9XG4gIEIuaW5pdCBuIGYgfD4gYnRzXG5sZXQgZW1wdHkgPSBcIlwiXG5sZXQgY29weSBzID1cbiAgQi5jb3B5IChib3MgcykgfD4gYnRzXG5sZXQgb2ZfYnl0ZXMgPSBCLnRvX3N0cmluZ1xubGV0IHRvX2J5dGVzID0gQi5vZl9zdHJpbmdcbmxldCBzdWIgcyBvZnMgbGVuID1cbiAgQi5zdWIgKGJvcyBzKSBvZnMgbGVuIHw+IGJ0c1xubGV0IGZpbGwgPVxuICBCLmZpbGxcbmxldCBibGl0ID1cbiAgQi5ibGl0X3N0cmluZ1xuXG5sZXQgZW5zdXJlX2dlICh4OmludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb25jYXRcIlxuXG5sZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyBzZXBsZW4gPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY1xuICB8IGhkIDo6IFtdIC0+IGxlbmd0aCBoZCArIGFjY1xuICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIHNlcGxlbiArIGFjYykgYWNjKSBzZXBsZW4gdGxcblxubGV0IHJlYyB1bnNhZmVfYmxpdHMgZHN0IHBvcyBzZXAgc2VwbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBkc3RcbiAgfCBoZCA6OiBbXSAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTsgZHN0XG4gIHwgaGQgOjogdGwgLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7XG4gICAgdW5zYWZlX2JsaXQgc2VwIDAgZHN0IChwb3MgKyBsZW5ndGggaGQpIHNlcGxlbjtcbiAgICB1bnNhZmVfYmxpdHMgZHN0IChwb3MgKyBsZW5ndGggaGQgKyBzZXBsZW4pIHNlcCBzZXBsZW4gdGxcblxubGV0IGNvbmNhdCBzZXAgPSBmdW5jdGlvblxuICAgIFtdIC0+IFwiXCJcbiAgfCBsIC0+IGxldCBzZXBsZW4gPSBsZW5ndGggc2VwIGluIGJ0cyBAQFxuICAgICAgICAgIHVuc2FmZV9ibGl0c1xuICAgICAgICAgICAgKEIuY3JlYXRlIChzdW1fbGVuZ3RocyAwIHNlcGxlbiBsKSlcbiAgICAgICAgICAgIDAgc2VwIHNlcGxlbiBsXG5cbmxldCBjYXQgPSAoIF4gKVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaXRlciBmIHMgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvIGYgKHVuc2FmZV9nZXQgcyBpKSBkb25lXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpdGVyaSBmIHMgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBzIGkpIGRvbmVcblxubGV0IG1hcCBmIHMgPVxuICBCLm1hcCBmIChib3MgcykgfD4gYnRzXG5sZXQgbWFwaSBmIHMgPVxuICBCLm1hcGkgZiAoYm9zIHMpIHw+IGJ0c1xubGV0IGZvbGRfcmlnaHQgZiB4IGEgPVxuICBCLmZvbGRfcmlnaHQgZiAoYm9zIHgpIGFcbmxldCBmb2xkX2xlZnQgZiBhIHggPVxuICBCLmZvbGRfbGVmdCBmIGEgKGJvcyB4KVxubGV0IGV4aXN0cyBmIHMgPVxuICBCLmV4aXN0cyBmIChib3MgcylcbmxldCBmb3JfYWxsIGYgcyA9XG4gIEIuZm9yX2FsbCBmIChib3MgcylcblxuKCogQmV3YXJlOiB3ZSBjYW5ub3QgdXNlIEIudHJpbSBvciBCLmVzY2FwZSBiZWNhdXNlIHRoZXkgYWx3YXlzIG1ha2UgYVxuICAgY29weSwgYnV0IFN0cmluZy5tbGkgc3BlbGxzIG91dCBzb21lIGNhc2VzIHdoZXJlIHdlIGFyZSBub3QgYWxsb3dlZFxuICAgdG8gbWFrZSBhIGNvcHkuICopXG5cbmxldCBpc19zcGFjZSA9IGZ1bmN0aW9uXG4gIHwgJyAnIHwgJ1xcMDEyJyB8ICdcXG4nIHwgJ1xccicgfCAnXFx0JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5sZXQgdHJpbSBzID1cbiAgaWYgcyA9IFwiXCIgdGhlbiBzXG4gIGVsc2UgaWYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAwKSB8fCBpc19zcGFjZSAodW5zYWZlX2dldCBzIChsZW5ndGggcyAtIDEpKVxuICAgIHRoZW4gYnRzIChCLnRyaW0gKGJvcyBzKSlcbiAgZWxzZSBzXG5cbmxldCBlc2NhcGVkIHMgPVxuICBsZXQgcmVjIGVzY2FwZV9pZl9uZWVkZWQgcyBuIGkgPVxuICAgIGlmIGkgPj0gbiB0aGVuIHMgZWxzZVxuICAgICAgbWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgfCAnXFxcIicgfCAnXFxcXCcgfCAnXFwwMDAnLi4nXFwwMzEnIHwgJ1xcMTI3Jy4uICdcXDI1NScgLT5cbiAgICAgICAgICBidHMgKEIuZXNjYXBlZCAoYm9zIHMpKVxuICAgICAgfCBfIC0+IGVzY2FwZV9pZl9uZWVkZWQgcyBuIChpKzEpXG4gIGluXG4gIGVzY2FwZV9pZl9uZWVkZWQgcyAobGVuZ3RoIHMpIDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWMgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgaW5kZXhfcmVjIHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXggcyBjID0gaW5kZXhfcmVjIHMgKGxlbmd0aCBzKSAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWNfb3B0IHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIGluZGV4X3JlY19vcHQgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9vcHQgcyBjID0gaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb20gLyBCeXRlcy5pbmRleF9mcm9tXCIgZWxzZVxuICAgIGluZGV4X3JlYyBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMuaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgaW5kZXhfcmVjX29wdCBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgcmluZGV4X3JlYyBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIHJpbmRleF9yZWMgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleCBzIGMgPSByaW5kZXhfcmVjIHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4X2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb20gLyBCeXRlcy5yaW5kZXhfZnJvbVwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjIHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgcmluZGV4X3JlY19vcHQgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSByaW5kZXhfcmVjX29wdCBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4X29wdCBzIGMgPSByaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5yaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgcmluZGV4X3JlY19vcHQgcyBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb250YWluc19mcm9tIC8gQnl0ZXMuY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChpbmRleF9yZWMgcyBsIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGNvbnRhaW5zIHMgYyA9IGNvbnRhaW5zX2Zyb20gcyAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJjb250YWluc19mcm9tIHMgaSBjID1cbiAgaWYgaSA8IDAgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmNvbnRhaW5zX2Zyb20gLyBCeXRlcy5yY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChyaW5kZXhfcmVjIHMgaSBjKTsgdHJ1ZSB3aXRoIE5vdF9mb3VuZCAtPiBmYWxzZVxuXG5sZXQgdXBwZXJjYXNlX2FzY2lpIHMgPVxuICBCLnVwcGVyY2FzZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xubGV0IGxvd2VyY2FzZV9hc2NpaSBzID1cbiAgQi5sb3dlcmNhc2VfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCBjYXBpdGFsaXplX2FzY2lpIHMgPVxuICBCLmNhcGl0YWxpemVfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCB1bmNhcGl0YWxpemVfYXNjaWkgcyA9XG4gIEIudW5jYXBpdGFsaXplX2FzY2lpIChib3MgcykgfD4gYnRzXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBzdGFydHNfd2l0aCB+cHJlZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3ByZSA9IGxlbmd0aCBwcmVmaXggaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9wcmUgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgaSA8PiB1bnNhZmVfZ2V0IHByZWZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGxlbl9zID49IGxlbl9wcmUgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGVuZHNfd2l0aCB+c3VmZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3N1ZiA9IGxlbmd0aCBzdWZmaXggaW5cbiAgbGV0IGRpZmYgPSBsZW5fcyAtIGxlbl9zdWYgaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9zdWYgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgKGRpZmYgKyBpKSA8PiB1bnNhZmVfZ2V0IHN1ZmZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGRpZmYgPj0gMCAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgc3BsaXRfb25fY2hhciBzZXAgcyA9XG4gIGxldCByID0gcmVmIFtdIGluXG4gIGxldCBqID0gcmVmIChsZW5ndGggcykgaW5cbiAgZm9yIGkgPSBsZW5ndGggcyAtIDEgZG93bnRvIDAgZG9cbiAgICBpZiB1bnNhZmVfZ2V0IHMgaSA9IHNlcCB0aGVuIGJlZ2luXG4gICAgICByIDo9IHN1YiBzIChpICsgMSkgKCFqIC0gaSAtIDEpIDo6ICFyO1xuICAgICAgaiA6PSBpXG4gICAgZW5kXG4gIGRvbmU7XG4gIHN1YiBzIDAgIWogOjogIXJcblxuKCogRGVwcmVjYXRlZCBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgdmlhIG90aGVyIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICopXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdXG5sZXQgdXBwZXJjYXNlIHMgPVxuICBCLnVwcGVyY2FzZSAoYm9zIHMpIHw+IGJ0c1xubGV0IGxvd2VyY2FzZSBzID1cbiAgQi5sb3dlcmNhc2UgKGJvcyBzKSB8PiBidHNcbmxldCBjYXBpdGFsaXplIHMgPVxuICBCLmNhcGl0YWxpemUgKGJvcyBzKSB8PiBidHNcbmxldCB1bmNhcGl0YWxpemUgcyA9XG4gIEIudW5jYXBpdGFsaXplIChib3MgcykgfD4gYnRzXG5cbnR5cGUgdCA9IHN0cmluZ1xuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5leHRlcm5hbCBlcXVhbCA6IHN0cmluZyAtPiBzdHJpbmcgLT4gYm9vbCA9IFwiY2FtbF9zdHJpbmdfZXF1YWxcIiBbQEBub2FsbG9jXVxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPSBib3MgcyB8PiBCLnRvX3NlcVxuXG5sZXQgdG9fc2VxaSBzID0gYm9zIHMgfD4gQi50b19zZXFpXG5cbmxldCBvZl9zZXEgZyA9IEIub2Zfc2VxIGcgfD4gYnRzXG5cbigqIFVURiBkZWNvZGVycyBhbmQgdmFsaWRhdG9ycyAqKVxuXG5sZXQgZ2V0X3V0Zl84X3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl84X3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl84IHMgPSBCLmlzX3ZhbGlkX3V0Zl84IChib3MgcylcblxubGV0IGdldF91dGZfMTZiZV91Y2hhciBzIGkgPSBCLmdldF91dGZfMTZiZV91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfMTZiZSBzID0gQi5pc192YWxpZF91dGZfMTZiZSAoYm9zIHMpXG5cbmxldCBnZXRfdXRmXzE2bGVfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzE2bGVfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzE2bGUgcyA9IEIuaXNfdmFsaWRfdXRmXzE2bGUgKGJvcyBzKVxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nL2RlY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG5leHRlcm5hbCBnZXRfdWludDggOiBzdHJpbmcgLT4gaW50IC0+IGludCA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5leHRlcm5hbCBnZXRfdWludDE2X25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX3N0cmluZ19nZXQxNlwiXG5leHRlcm5hbCBnZXRfaW50MzJfbmUgOiBzdHJpbmcgLT4gaW50IC0+IGludDMyID0gXCIlY2FtbF9zdHJpbmdfZ2V0MzJcIlxuZXh0ZXJuYWwgZ2V0X2ludDY0X25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQ2NCA9IFwiJWNhbWxfc3RyaW5nX2dldDY0XCJcblxubGV0IGdldF9pbnQ4IHMgaSA9IEIuZ2V0X2ludDggKGJvcyBzKSBpXG5sZXQgZ2V0X3VpbnQxNl9sZSBzIGkgPSBCLmdldF91aW50MTZfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X3VpbnQxNl9iZSBzIGkgPSBCLmdldF91aW50MTZfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X25lIHMgaSA9IEIuZ2V0X2ludDE2X25lIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9sZSBzIGkgPSBCLmdldF9pbnQxNl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfYmUgcyBpID0gQi5nZXRfaW50MTZfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDMyX2xlIHMgaSA9IEIuZ2V0X2ludDMyX2xlIChib3MgcykgaVxubGV0IGdldF9pbnQzMl9iZSBzIGkgPSBCLmdldF9pbnQzMl9iZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50NjRfbGUgcyBpID0gQi5nZXRfaW50NjRfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDY0X2JlIHMgaSA9IEIuZ2V0X2ludDY0X2JlIChib3MgcykgaVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSB1bml0ID0gKClcblxubGV0IGVxdWFsICgpICgpID0gdHJ1ZVxubGV0IGNvbXBhcmUgKCkgKCkgPSAwXG5sZXQgdG9fc3RyaW5nICgpID0gXCIoKVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgZXh0ZXJuX2ZsYWdzID1cbiAgICBOb19zaGFyaW5nXG4gIHwgQ2xvc3VyZXNcbiAgfCBDb21wYXRfMzJcbigqIG5vdGU6IHRoaXMgdHlwZSBkZWZpbml0aW9uIGlzIHVzZWQgaW4gJ3J1bnRpbWUvZGVidWdnZXIuYycgKilcblxuZXh0ZXJuYWwgdG9fY2hhbm5lbDogb3V0X2NoYW5uZWwgLT4gJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gdW5pdFxuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZVwiXG5leHRlcm5hbCB0b19ieXRlczogJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gYnl0ZXNcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXNcIlxuZXh0ZXJuYWwgdG9fc3RyaW5nOiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBzdHJpbmdcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nXCJcbmV4dGVybmFsIHRvX2J1ZmZlcl91bnNhZmU6XG4gICAgICBieXRlcyAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IGludFxuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXJcIlxuXG5sZXQgdG9fYnVmZmVyIGJ1ZmYgb2ZzIGxlbiB2IGZsYWdzID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLnRvX2J1ZmZlcjogc3Vic3RyaW5nIG91dCBvZiBib3VuZHNcIlxuICBlbHNlIHRvX2J1ZmZlcl91bnNhZmUgYnVmZiBvZnMgbGVuIHYgZmxhZ3NcblxuKCogVGhlIGZ1bmN0aW9ucyBiZWxvdyB1c2UgYnl0ZSBzZXF1ZW5jZXMgYXMgaW5wdXQsIG5ldmVyIHVzaW5nIGFueVxuICAgbXV0YXRpb24uIEl0IG1ha2VzIHNlbnNlIHRvIHVzZSBub24tbXV0YXRlZCBbYnl0ZXNdIHJhdGhlciB0aGFuXG4gICBbc3RyaW5nXSwgYmVjYXVzZSB3ZSByZWFsbHkgd29yayB3aXRoIHNlcXVlbmNlcyBvZiBieXRlcywgbm90XG4gICBhIHRleHQgcmVwcmVzZW50YXRpb24uXG4qKVxuXG5leHRlcm5hbCBmcm9tX2NoYW5uZWw6IGluX2NoYW5uZWwgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVcIlxuZXh0ZXJuYWwgZnJvbV9ieXRlc191bnNhZmU6IGJ5dGVzIC0+IGludCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzXCJcbmV4dGVybmFsIGRhdGFfc2l6ZV91bnNhZmU6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcImNhbWxfbWFyc2hhbF9kYXRhX3NpemVcIlxuXG5sZXQgaGVhZGVyX3NpemUgPSAyMFxubGV0IGRhdGFfc2l6ZSBidWZmIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID4gQnl0ZXMubGVuZ3RoIGJ1ZmYgLSBoZWFkZXJfc2l6ZVxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5kYXRhX3NpemVcIlxuICBlbHNlIGRhdGFfc2l6ZV91bnNhZmUgYnVmZiBvZnNcbmxldCB0b3RhbF9zaXplIGJ1ZmYgb2ZzID0gaGVhZGVyX3NpemUgKyBkYXRhX3NpemUgYnVmZiBvZnNcblxubGV0IGZyb21fYnl0ZXMgYnVmZiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gaGVhZGVyX3NpemVcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZnJvbV9ieXRlc1wiXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgbGVuID0gZGF0YV9zaXplX3Vuc2FmZSBidWZmIG9mcyBpblxuICAgIGlmIG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gKGhlYWRlcl9zaXplICsgbGVuKVxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmZyb21fYnl0ZXNcIlxuICAgIGVsc2UgZnJvbV9ieXRlc191bnNhZmUgYnVmZiBvZnNcbiAgZW5kXG5cbmxldCBmcm9tX3N0cmluZyBidWZmIG9mcyA9XG4gICgqIEJ5dGVzLnVuc2FmZV9vZl9zdHJpbmcgaXMgc2FmZSBoZXJlLCBhcyB0aGUgcHJvZHVjZWQgYnl0ZVxuICAgICBzZXF1ZW5jZSBpcyBuZXZlciBtdXRhdGVkICopXG4gIGZyb21fYnl0ZXMgKEJ5dGVzLnVuc2FmZV9vZl9zdHJpbmcgYnVmZikgb2ZzXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEFuIGFsaWFzIGZvciB0aGUgdHlwZSBvZiBhcnJheXMuICopXG50eXBlICdhIHQgPSAnYSBhcnJheVxuXG4oKiBBcnJheSBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGxlbmd0aCA6ICdhIGFycmF5IC0+IGludCA9IFwiJWFycmF5X2xlbmd0aFwiXG5leHRlcm5hbCBnZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSA9IFwiJWFycmF5X3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVhcnJheV9zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfZ2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgPSBcIiVhcnJheV91bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlYXJyYXlfdW5zYWZlX3NldFwiXG5leHRlcm5hbCBtYWtlOiBpbnQgLT4gJ2EgLT4gJ2EgYXJyYXkgPSBcImNhbWxfbWFrZV92ZWN0XCJcbmV4dGVybmFsIGNyZWF0ZTogaW50IC0+ICdhIC0+ICdhIGFycmF5ID0gXCJjYW1sX21ha2VfdmVjdFwiXG5leHRlcm5hbCB1bnNhZmVfc3ViIDogJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9zdWJcIlxuZXh0ZXJuYWwgYXBwZW5kX3ByaW0gOiAnYSBhcnJheSAtPiAnYSBhcnJheSAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9hcHBlbmRcIlxuZXh0ZXJuYWwgY29uY2F0IDogJ2EgYXJyYXkgbGlzdCAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9jb25jYXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOlxuICAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2FycmF5X2JsaXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOlxuICAnYSBhcnJheSAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYXJyYXlfZmlsbFwiXG5leHRlcm5hbCBjcmVhdGVfZmxvYXQ6IGludCAtPiBmbG9hdCBhcnJheSA9IFwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3RcIlxubGV0IG1ha2VfZmxvYXQgPSBjcmVhdGVfZmxvYXRcblxubW9kdWxlIEZsb2F0YXJyYXkgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGZsb2F0YXJyYXkgPSBcImNhbWxfZmxvYXRhcnJheV9jcmVhdGVcIlxuICBleHRlcm5hbCBsZW5ndGggOiBmbG9hdGFycmF5IC0+IGludCA9IFwiJWZsb2F0YXJyYXlfbGVuZ3RoXCJcbiAgZXh0ZXJuYWwgZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgc2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9zZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9nZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdFxuICAgICAgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9zZXRcIlxuZW5kXG5cbmxldCBpbml0IGwgZiA9XG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlXG4gIGlmIGwgPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5pbml0XCJcbiAgKCogU2VlICM2NTc1LiBXZSBjb3VsZCBhbHNvIGNoZWNrIGZvciBtYXhpbXVtIGFycmF5IHNpemUsIGJ1dCB0aGlzIGRlcGVuZHNcbiAgICAgb24gd2hldGhlciB3ZSBjcmVhdGUgYSBmbG9hdCBhcnJheSBvciBhIHJlZ3VsYXIgb25lLi4uICopXG4gIGVsc2VcbiAgIGxldCByZXMgPSBjcmVhdGUgbCAoZiAwKSBpblxuICAgZm9yIGkgPSAxIHRvIHByZWQgbCBkb1xuICAgICB1bnNhZmVfc2V0IHJlcyBpIChmIGkpXG4gICBkb25lO1xuICAgcmVzXG5cbmxldCBtYWtlX21hdHJpeCBzeCBzeSBpbml0ID1cbiAgbGV0IHJlcyA9IGNyZWF0ZSBzeCBbfHxdIGluXG4gIGZvciB4ID0gMCB0byBwcmVkIHN4IGRvXG4gICAgdW5zYWZlX3NldCByZXMgeCAoY3JlYXRlIHN5IGluaXQpXG4gIGRvbmU7XG4gIHJlc1xuXG5sZXQgY3JlYXRlX21hdHJpeCA9IG1ha2VfbWF0cml4XG5cbmxldCBjb3B5IGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIHVuc2FmZV9zdWIgYSAwIGxcblxubGV0IGFwcGVuZCBhMSBhMiA9XG4gIGxldCBsMSA9IGxlbmd0aCBhMSBpblxuICBpZiBsMSA9IDAgdGhlbiBjb3B5IGEyXG4gIGVsc2UgaWYgbGVuZ3RoIGEyID0gMCB0aGVuIHVuc2FmZV9zdWIgYTEgMCBsMVxuICBlbHNlIGFwcGVuZF9wcmltIGExIGEyXG5cbmxldCBzdWIgYSBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5zdWJcIlxuICBlbHNlIHVuc2FmZV9zdWIgYSBvZnMgbGVuXG5cbmxldCBmaWxsIGEgb2ZzIGxlbiB2ID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5maWxsXCJcbiAgZWxzZSB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdlxuXG5sZXQgYmxpdCBhMSBvZnMxIGEyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gbGVuZ3RoIGExIC0gbGVuXG4gICAgICAgICAgICAgfHwgb2ZzMiA8IDAgfHwgb2ZzMiA+IGxlbmd0aCBhMiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuYmxpdFwiXG4gIGVsc2UgdW5zYWZlX2JsaXQgYTEgb2ZzMSBhMiBvZnMyIGxlblxuXG5sZXQgaXRlciBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IGl0ZXIyIGYgYSBiID1cbiAgaWYgbGVuZ3RoIGEgPD4gbGVuZ3RoIGIgdGhlblxuICAgIGludmFsaWRfYXJnIFwiQXJyYXkuaXRlcjI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgZWxzZVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkgZG9uZVxuXG5sZXQgbWFwIGYgYSA9XG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIChmKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCBtYXAyIGYgYSBiID1cbiAgbGV0IGxhID0gbGVuZ3RoIGEgaW5cbiAgbGV0IGxiID0gbGVuZ3RoIGIgaW5cbiAgaWYgbGEgPD4gbGIgdGhlblxuICAgIGludmFsaWRfYXJnIFwiQXJyYXkubWFwMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICBlbHNlIGJlZ2luXG4gICAgaWYgbGEgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IGNyZWF0ZSBsYSAoZiAodW5zYWZlX2dldCBhIDApICh1bnNhZmVfZ2V0IGIgMCkpIGluXG4gICAgICBmb3IgaSA9IDEgdG8gbGEgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG4gIGVuZFxuXG5sZXQgaXRlcmkgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBtYXBpIGYgYSA9XG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIChmIDAgKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCB0b19saXN0IGEgPVxuICBsZXQgcmVjIHRvbGlzdCBpIHJlcyA9XG4gICAgaWYgaSA8IDAgdGhlbiByZXMgZWxzZSB0b2xpc3QgKGkgLSAxKSAodW5zYWZlX2dldCBhIGkgOjogcmVzKSBpblxuICB0b2xpc3QgKGxlbmd0aCBhIC0gMSkgW11cblxuKCogQ2Fubm90IHVzZSBMaXN0Lmxlbmd0aCBoZXJlIGJlY2F1c2UgdGhlIExpc3QgbW9kdWxlIGRlcGVuZHMgb24gQXJyYXkuICopXG5sZXQgcmVjIGxpc3RfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY3VcbiAgfCBfOjp0IC0+IGxpc3RfbGVuZ3RoIChzdWNjIGFjY3UpIHRcblxubGV0IG9mX2xpc3QgPSBmdW5jdGlvblxuICAgIFtdIC0+IFt8fF1cbiAgfCBoZDo6dGwgYXMgbCAtPlxuICAgICAgbGV0IGEgPSBjcmVhdGUgKGxpc3RfbGVuZ3RoIDAgbCkgaGQgaW5cbiAgICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgICBbXSAtPiBhXG4gICAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpKzEpIHRsIGluXG4gICAgICBmaWxsIDEgdGxcblxubGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gIGRvbmU7XG4gICFyXG5cbmxldCBmb2xkX2xlZnRfbWFwIGYgYWNjIGlucHV0X2FycmF5ID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBpbnB1dF9hcnJheSBpblxuICBpZiBsZW4gPSAwIHRoZW4gKGFjYywgW3x8XSkgZWxzZSBiZWdpblxuICAgIGxldCBhY2MsIGVsdCA9IGYgYWNjICh1bnNhZmVfZ2V0IGlucHV0X2FycmF5IDApIGluXG4gICAgbGV0IG91dHB1dF9hcnJheSA9IGNyZWF0ZSBsZW4gZWx0IGluXG4gICAgbGV0IGFjYyA9IHJlZiBhY2MgaW5cbiAgICBmb3IgaSA9IDEgdG8gbGVuIC0gMSBkb1xuICAgICAgbGV0IGFjYycsIGVsdCA9IGYgIWFjYyAodW5zYWZlX2dldCBpbnB1dF9hcnJheSBpKSBpblxuICAgICAgYWNjIDo9IGFjYyc7XG4gICAgICB1bnNhZmVfc2V0IG91dHB1dF9hcnJheSBpIGVsdDtcbiAgICBkb25lO1xuICAgICFhY2MsIG91dHB1dF9hcnJheVxuICBlbmRcblxubGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgZG9uZTtcbiAgIXJcblxubGV0IGV4aXN0cyBwIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbCBwIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbDIgcCBsMSBsMiA9XG4gIGxldCBuMSA9IGxlbmd0aCBsMVxuICBhbmQgbjIgPSBsZW5ndGggbDIgaW5cbiAgaWYgbjEgPD4gbjIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmZvcl9hbGwyXCJcbiAgZWxzZSBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4xIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBsMSBpKSAodW5zYWZlX2dldCBsMiBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgZXhpc3RzMiBwIGwxIGwyID1cbiAgbGV0IG4xID0gbGVuZ3RoIGwxXG4gIGFuZCBuMiA9IGxlbmd0aCBsMiBpblxuICBpZiBuMSA8PiBuMiB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZXhpc3RzMlwiXG4gIGVsc2UgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuMSB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGwxIGkpICh1bnNhZmVfZ2V0IGwyIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IG1lbSB4IGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBjb21wYXJlICh1bnNhZmVfZ2V0IGEgaSkgeCA9IDAgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgbWVtcSB4IGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiB4ID09ICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZmluZF9vcHQgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBOb25lXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgaWYgcCB4IHRoZW4gU29tZSB4XG4gICAgICBlbHNlIGxvb3AgKHN1Y2MgaSlcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBmaW5kX21hcCBmIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIE5vbmVcbiAgICBlbHNlXG4gICAgICBtYXRjaCBmICh1bnNhZmVfZ2V0IGEgaSkgd2l0aFxuICAgICAgfCBOb25lIC0+IGxvb3AgKHN1Y2MgaSlcbiAgICAgIHwgU29tZSBfIGFzIHIgLT4gclxuICBpblxuICBsb29wIDBcblxubGV0IHNwbGl0IHggPVxuICBpZiB4ID0gW3x8XSB0aGVuIFt8fF0sIFt8fF1cbiAgZWxzZSBiZWdpblxuICAgIGxldCBhMCwgYjAgPSB1bnNhZmVfZ2V0IHggMCBpblxuICAgIGxldCBuID0gbGVuZ3RoIHggaW5cbiAgICBsZXQgYSA9IGNyZWF0ZSBuIGEwIGluXG4gICAgbGV0IGIgPSBjcmVhdGUgbiBiMCBpblxuICAgIGZvciBpID0gMSB0byBuIC0gMSBkb1xuICAgICAgbGV0IGFpLCBiaSA9IHVuc2FmZV9nZXQgeCBpIGluXG4gICAgICB1bnNhZmVfc2V0IGEgaSBhaTtcbiAgICAgIHVuc2FmZV9zZXQgYiBpIGJpXG4gICAgZG9uZTtcbiAgICBhLCBiXG4gIGVuZFxuXG5sZXQgY29tYmluZSBhIGIgPVxuICBsZXQgbmEgPSBsZW5ndGggYSBpblxuICBsZXQgbmIgPSBsZW5ndGggYiBpblxuICBpZiBuYSA8PiBuYiB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuY29tYmluZVwiO1xuICBpZiBuYSA9IDAgdGhlbiBbfHxdXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgeCA9IGNyZWF0ZSBuYSAodW5zYWZlX2dldCBhIDAsIHVuc2FmZV9nZXQgYiAwKSBpblxuICAgIGZvciBpID0gMSB0byBuYSAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgeCBpICh1bnNhZmVfZ2V0IGEgaSwgdW5zYWZlX2dldCBiIGkpXG4gICAgZG9uZTtcbiAgICB4XG4gIGVuZFxuXG5leGNlcHRpb24gQm90dG9tIG9mIGludFxubGV0IHNvcnQgY21wIGEgPVxuICBsZXQgbWF4c29uIGwgaSA9XG4gICAgbGV0IGkzMSA9IGkraStpKzEgaW5cbiAgICBsZXQgeCA9IHJlZiBpMzEgaW5cbiAgICBpZiBpMzErMiA8IGwgdGhlbiBiZWdpblxuICAgICAgaWYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDAgdGhlbiB4IDo9IGkzMSsxO1xuICAgICAgaWYgY21wIChnZXQgYSAheCkgKGdldCBhIChpMzErMikpIDwgMCB0aGVuIHggOj0gaTMxKzI7XG4gICAgICAheFxuICAgIGVuZCBlbHNlXG4gICAgICBpZiBpMzErMSA8IGwgJiYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDBcbiAgICAgIHRoZW4gaTMxKzFcbiAgICAgIGVsc2UgaWYgaTMxIDwgbCB0aGVuIGkzMSBlbHNlIHJhaXNlIChCb3R0b20gaSlcbiAgaW5cbiAgbGV0IHJlYyB0cmlja2xlZG93biBsIGkgZSA9XG4gICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgaWYgY21wIChnZXQgYSBqKSBlID4gMCB0aGVuIGJlZ2luXG4gICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgIHRyaWNrbGVkb3duIGwgaiBlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICBzZXQgYSBpIGU7XG4gICAgZW5kO1xuICBpblxuICBsZXQgdHJpY2tsZSBsIGkgZSA9IHRyeSB0cmlja2xlZG93biBsIGkgZSB3aXRoIEJvdHRvbSBpIC0+IHNldCBhIGkgZSBpblxuICBsZXQgcmVjIGJ1YmJsZWRvd24gbCBpID1cbiAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICBidWJibGVkb3duIGwgalxuICBpblxuICBsZXQgYnViYmxlIGwgaSA9IHRyeSBidWJibGVkb3duIGwgaSB3aXRoIEJvdHRvbSBpIC0+IGkgaW5cbiAgbGV0IHJlYyB0cmlja2xldXAgaSBlID1cbiAgICBsZXQgZmF0aGVyID0gKGkgLSAxKSAvIDMgaW5cbiAgICBhc3NlcnQgKGkgPD4gZmF0aGVyKTtcbiAgICBpZiBjbXAgKGdldCBhIGZhdGhlcikgZSA8IDAgdGhlbiBiZWdpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgZmF0aGVyKTtcbiAgICAgIGlmIGZhdGhlciA+IDAgdGhlbiB0cmlja2xldXAgZmF0aGVyIGUgZWxzZSBzZXQgYSAwIGU7XG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgIHNldCBhIGkgZTtcbiAgICBlbmQ7XG4gIGluXG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgZm9yIGkgPSAobCArIDEpIC8gMyAtIDEgZG93bnRvIDAgZG8gdHJpY2tsZSBsIGkgKGdldCBhIGkpOyBkb25lO1xuICBmb3IgaSA9IGwgLSAxIGRvd250byAyIGRvXG4gICAgbGV0IGUgPSAoZ2V0IGEgaSkgaW5cbiAgICBzZXQgYSBpIChnZXQgYSAwKTtcbiAgICB0cmlja2xldXAgKGJ1YmJsZSBpIDApIGU7XG4gIGRvbmU7XG4gIGlmIGwgPiAxIHRoZW4gKGxldCBlID0gKGdldCBhIDEpIGluIHNldCBhIDEgKGdldCBhIDApOyBzZXQgYSAwIGUpXG5cblxubGV0IGN1dG9mZiA9IDVcbmxldCBzdGFibGVfc29ydCBjbXAgYSA9XG4gIGxldCBtZXJnZSBzcmMxb2ZzIHNyYzFsZW4gc3JjMiBzcmMyb2ZzIHNyYzJsZW4gZHN0IGRzdG9mcyA9XG4gICAgbGV0IHNyYzFyID0gc3JjMW9mcyArIHNyYzFsZW4gYW5kIHNyYzJyID0gc3JjMm9mcyArIHNyYzJsZW4gaW5cbiAgICBsZXQgcmVjIGxvb3AgaTEgczEgaTIgczIgZCA9XG4gICAgICBpZiBjbXAgczEgczIgPD0gMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBkc3QgZCBzMTtcbiAgICAgICAgbGV0IGkxID0gaTEgKyAxIGluXG4gICAgICAgIGlmIGkxIDwgc3JjMXIgdGhlblxuICAgICAgICAgIGxvb3AgaTEgKGdldCBhIGkxKSBpMiBzMiAoZCArIDEpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBibGl0IHNyYzIgaTIgZHN0IChkICsgMSkgKHNyYzJyIC0gaTIpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgZHN0IGQgczI7XG4gICAgICAgIGxldCBpMiA9IGkyICsgMSBpblxuICAgICAgICBpZiBpMiA8IHNyYzJyIHRoZW5cbiAgICAgICAgICBsb29wIGkxIHMxIGkyIChnZXQgc3JjMiBpMikgKGQgKyAxKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgYmxpdCBhIGkxIGRzdCAoZCArIDEpIChzcmMxciAtIGkxKVxuICAgICAgZW5kXG4gICAgaW4gbG9vcCBzcmMxb2ZzIChnZXQgYSBzcmMxb2ZzKSBzcmMyb2ZzIChnZXQgc3JjMiBzcmMyb2ZzKSBkc3RvZnM7XG4gIGluXG4gIGxldCBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgIGxldCBlID0gKGdldCBhIChzcmNvZnMgKyBpKSkgaW5cbiAgICAgIGxldCBqID0gcmVmIChkc3RvZnMgKyBpIC0gMSkgaW5cbiAgICAgIHdoaWxlICghaiA+PSBkc3RvZnMgJiYgY21wIChnZXQgZHN0ICFqKSBlID4gMCkgZG9cbiAgICAgICAgc2V0IGRzdCAoIWogKyAxKSAoZ2V0IGRzdCAhaik7XG4gICAgICAgIGRlY3IgajtcbiAgICAgIGRvbmU7XG4gICAgICBzZXQgZHN0ICghaiArIDEpIGU7XG4gICAgZG9uZTtcbiAgaW5cbiAgbGV0IHJlYyBzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICBpZiBsZW4gPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gZWxzZSBiZWdpblxuICAgICAgbGV0IGwxID0gbGVuIC8gMiBpblxuICAgICAgbGV0IGwyID0gbGVuIC0gbDEgaW5cbiAgICAgIHNvcnR0byAoc3Jjb2ZzICsgbDEpIGRzdCAoZHN0b2ZzICsgbDEpIGwyO1xuICAgICAgc29ydHRvIHNyY29mcyBhIChzcmNvZnMgKyBsMikgbDE7XG4gICAgICBtZXJnZSAoc3Jjb2ZzICsgbDIpIGwxIGRzdCAoZHN0b2ZzICsgbDEpIGwyIGRzdCBkc3RvZnM7XG4gICAgZW5kO1xuICBpblxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byAwIGEgMCBsIGVsc2UgYmVnaW5cbiAgICBsZXQgbDEgPSBsIC8gMiBpblxuICAgIGxldCBsMiA9IGwgLSBsMSBpblxuICAgIGxldCB0ID0gbWFrZSBsMiAoZ2V0IGEgMCkgaW5cbiAgICBzb3J0dG8gbDEgdCAwIGwyO1xuICAgIHNvcnR0byAwIGEgbDIgbDE7XG4gICAgbWVyZ2UgbDIgbDEgdCAwIGwyIGEgMDtcbiAgZW5kXG5cblxubGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgYSA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPCBsZW5ndGggYVxuICAgIHRoZW5cbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gICAgZWxzZSBTZXEuTmlsXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIGEgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICB0aGVuXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgICBlbHNlIFNlcS5OaWxcbiAgaW5cbiAgYXV4IDBcblxubGV0IG9mX3Jldl9saXN0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbfHxdXG4gIHwgaGQ6OnRsIGFzIGwgLT5cbiAgICAgIGxldCBsZW4gPSBsaXN0X2xlbmd0aCAwIGwgaW5cbiAgICAgIGxldCBhID0gY3JlYXRlIGxlbiBoZCBpblxuICAgICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICAgIFtdIC0+IGFcbiAgICAgICAgfCBoZDo6dGwgLT4gdW5zYWZlX3NldCBhIGkgaGQ7IGZpbGwgKGktMSkgdGxcbiAgICAgIGluXG4gICAgICBmaWxsIChsZW4tMikgdGxcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IGwgPSBTZXEuZm9sZF9sZWZ0IChmdW4gYWNjIHggLT4geDo6YWNjKSBbXSBpIGluXG4gIG9mX3Jldl9saXN0IGxcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtJbnQzMl06IDMyLWJpdCBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWcgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX25lZ1wiXG5leHRlcm5hbCBhZGQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FkZFwiXG5leHRlcm5hbCBzdWIgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3N1YlwiXG5leHRlcm5hbCBtdWwgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX211bFwiXG5leHRlcm5hbCBkaXYgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2RpdlwiXG5leHRlcm5hbCByZW0gOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX21vZFwiXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FuZFwiXG5leHRlcm5hbCBsb2dvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfb3JcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNyXCJcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBpbnQzMiA9IFwiJWludDMyX29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQgOiBpbnQzMiAtPiBpbnQgPSBcIiVpbnQzMl90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfdG9fZmxvYXRcIiBcImNhbWxfaW50MzJfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IHplcm8gPSAwbFxubGV0IG9uZSA9IDFsXG5sZXQgbWludXNfb25lID0gLTFsXG5sZXQgc3VjYyBuID0gYWRkIG4gMWxcbmxldCBwcmVkIG4gPSBzdWIgbiAxbFxubGV0IGFicyBuID0gaWYgbiA+PSAwbCB0aGVuIG4gZWxzZSBuZWcgblxubGV0IG1pbl9pbnQgPSAweDgwMDAwMDAwbFxubGV0IG1heF9pbnQgPSAweDdGRkZGRkZGbFxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xbClcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIG1hdGNoIFN5cy53b3JkX3NpemUgd2l0aFxuICB8IDMyIC0+XG4gICAgICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICAgICAgZnVuIG4gLT5cbiAgICAgICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgICAgICBTb21lICh0b19pbnQgbilcbiAgICAgICAgZWxzZVxuICAgICAgICAgIE5vbmVcbiAgfCA2NCAtPlxuICAgICAgKCogU28gdGhhdCBpdCBjb21waWxlcyBpbiAzMi1iaXQgKilcbiAgICAgIGxldCBtYXNrID0gMHhGRkZGIGxzbCAxNiBsb3IgMHhGRkZGIGluXG4gICAgICBmdW4gbiAtPiBTb21lICh0b19pbnQgbiBsYW5kIG1hc2spXG4gIHwgXyAtPlxuICAgICAgYXNzZXJ0IGZhbHNlXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQzMiAtPiBzdHJpbmcgPSBcImNhbWxfaW50MzJfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50MzIgPSBcImNhbWxfaW50MzJfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbnR5cGUgdCA9IGludDMyXG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogVGhlIHBhcnNpbmcgZW5naW5lICopXG5cbm9wZW4gTGV4aW5nXG5cbigqIEludGVybmFsIGludGVyZmFjZSB0byB0aGUgcGFyc2luZyBlbmdpbmUgKilcblxudHlwZSBwYXJzZXJfZW52ID1cbiAgeyBtdXRhYmxlIHNfc3RhY2sgOiBpbnQgYXJyYXk7ICAgICAgICAoKiBTdGF0ZXMgKilcbiAgICBtdXRhYmxlIHZfc3RhY2sgOiBPYmoudCBhcnJheTsgICAgICAoKiBTZW1hbnRpYyBhdHRyaWJ1dGVzICopXG4gICAgbXV0YWJsZSBzeW1iX3N0YXJ0X3N0YWNrIDogcG9zaXRpb24gYXJyYXk7ICgqIFN0YXJ0IHBvc2l0aW9ucyAqKVxuICAgIG11dGFibGUgc3ltYl9lbmRfc3RhY2sgOiBwb3NpdGlvbiBhcnJheTsgICAoKiBFbmQgcG9zaXRpb25zICopXG4gICAgbXV0YWJsZSBzdGFja3NpemUgOiBpbnQ7ICAgICAgICAgICAgKCogU2l6ZSBvZiB0aGUgc3RhY2tzICopXG4gICAgbXV0YWJsZSBzdGFja2Jhc2UgOiBpbnQ7ICAgICAgICAgICAgKCogQmFzZSBzcCBmb3IgY3VycmVudCBwYXJzZSAqKVxuICAgIG11dGFibGUgY3Vycl9jaGFyIDogaW50OyAgICAgICAgICAgICgqIExhc3QgdG9rZW4gcmVhZCAqKVxuICAgIG11dGFibGUgbHZhbCA6IE9iai50OyAgICAgICAgICAgICAgICgqIEl0cyBzZW1hbnRpYyBhdHRyaWJ1dGUgKilcbiAgICBtdXRhYmxlIHN5bWJfc3RhcnQgOiBwb3NpdGlvbjsgICAgICAoKiBTdGFydCBwb3MuIG9mIHRoZSBjdXJyZW50IHN5bWJvbCopXG4gICAgbXV0YWJsZSBzeW1iX2VuZCA6IHBvc2l0aW9uOyAgICAgICAgKCogRW5kIHBvcy4gb2YgdGhlIGN1cnJlbnQgc3ltYm9sICopXG4gICAgbXV0YWJsZSBhc3AgOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogVGhlIHN0YWNrIHBvaW50ZXIgZm9yIGF0dHJpYnV0ZXMgKilcbiAgICBtdXRhYmxlIHJ1bGVfbGVuIDogaW50OyAgICAgICAgICAgICAoKiBOdW1iZXIgb2YgcmhzIGl0ZW1zIGluIHRoZSBydWxlICopXG4gICAgbXV0YWJsZSBydWxlX251bWJlciA6IGludDsgICAgICAgICAgKCogUnVsZSBudW1iZXIgdG8gcmVkdWNlIGJ5ICopXG4gICAgbXV0YWJsZSBzcCA6IGludDsgICAgICAgICAgICAgICAgICAgKCogU2F2ZWQgc3AgZm9yIHBhcnNlX2VuZ2luZSAqKVxuICAgIG11dGFibGUgc3RhdGUgOiBpbnQ7ICAgICAgICAgICAgICAgICgqIFNhdmVkIHN0YXRlIGZvciBwYXJzZV9lbmdpbmUgKilcbiAgICBtdXRhYmxlIGVycmZsYWcgOiBpbnQgfSAgICAgICAgICAgICAoKiBTYXZlZCBlcnJvciBmbGFnIGZvciBwYXJzZV9lbmdpbmUgKilcbltAQHdhcm5pbmcgXCItdW51c2VkLWZpZWxkXCJdXG5cbnR5cGUgcGFyc2VfdGFibGVzID1cbiAgeyBhY3Rpb25zIDogKHBhcnNlcl9lbnYgLT4gT2JqLnQpIGFycmF5O1xuICAgIHRyYW5zbF9jb25zdCA6IGludCBhcnJheTtcbiAgICB0cmFuc2xfYmxvY2sgOiBpbnQgYXJyYXk7XG4gICAgbGhzIDogc3RyaW5nO1xuICAgIGxlbiA6IHN0cmluZztcbiAgICBkZWZyZWQgOiBzdHJpbmc7XG4gICAgZGdvdG8gOiBzdHJpbmc7XG4gICAgc2luZGV4IDogc3RyaW5nO1xuICAgIHJpbmRleCA6IHN0cmluZztcbiAgICBnaW5kZXggOiBzdHJpbmc7XG4gICAgdGFibGVzaXplIDogaW50O1xuICAgIHRhYmxlIDogc3RyaW5nO1xuICAgIGNoZWNrIDogc3RyaW5nO1xuICAgIGVycm9yX2Z1bmN0aW9uIDogc3RyaW5nIC0+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+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMTtcbiAgdW5zYWZlX3NldF9pbnQ4IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQxNl9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDIgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiAyO1xuICB1bnNhZmVfc2V0X2ludDE2IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQzMl9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDQgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiA0O1xuICB1bnNhZmVfc2V0X2ludDMyIGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQ2NF9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDggaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiA4O1xuICB1bnNhZmVfc2V0X2ludDY0IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQxNl9sZSBiIHggPVxuICBhZGRfaW50MTZfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50MTZfYmUgYiB4ID1cbiAgYWRkX2ludDE2X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXAxNiB4KVxuXG5sZXQgYWRkX2ludDMyX2xlIGIgeCA9XG4gIGFkZF9pbnQzMl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQzMl9iZSBiIHggPVxuICBhZGRfaW50MzJfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDMyIHgpXG5cbmxldCBhZGRfaW50NjRfbGUgYiB4ID1cbiAgYWRkX2ludDY0X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDY0X2JlIGIgeCA9XG4gIGFkZF9pbnQ2NF9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwNjQgeClcblxubGV0IGFkZF91aW50OCA9IGFkZF9pbnQ4XG5sZXQgYWRkX3VpbnQxNl9uZSA9IGFkZF9pbnQxNl9uZVxubGV0IGFkZF91aW50MTZfbGUgPSBhZGRfaW50MTZfbGVcbmxldCBhZGRfdWludDE2X2JlID0gYWRkX2ludDE2X2JlXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIFhhdmllciBMZXJveSBhbmQgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG5sZXQga2ZwcmludGYgayBvIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGYgKGZ1biBhY2MgLT4gb3V0cHV0X2FjYyBvIGFjYzsgayBvKSBFbmRfb2ZfYWNjIGZtdFxubGV0IGticHJpbnRmIGsgYiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmIChmdW4gYWNjIC0+IGJ1ZnB1dF9hY2MgYiBhY2M7IGsgYikgRW5kX29mX2FjYyBmbXRcbmxldCBpa2ZwcmludGYgayBvYyAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBrIG9jIGZtdFxubGV0IGlrYnByaW50ZiA9IGlrZnByaW50ZlxuXG5sZXQgZnByaW50ZiBvYyBmbXQgPSBrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgYnByaW50ZiBiIGZtdCA9IGticHJpbnRmIGlnbm9yZSBiIGZtdFxubGV0IGlmcHJpbnRmIG9jIGZtdCA9IGlrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgaWJwcmludGYgYiBmbXQgPSBpa2JwcmludGYgaWdub3JlIGIgZm10XG5sZXQgcHJpbnRmIGZtdCA9IGZwcmludGYgc3Rkb3V0IGZtdFxubGV0IGVwcmludGYgZm10ID0gZnByaW50ZiBzdGRlcnIgZm10XG5cbmxldCBrc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGsnIGFjYyA9XG4gICAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgNjQgaW5cbiAgICBzdHJwdXRfYWNjIGJ1ZiBhY2M7XG4gICAgayAoQnVmZmVyLmNvbnRlbnRzIGJ1ZikgaW5cbiAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXRcblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgKGZ1biBzIC0+IHMpIGZtdFxuXG5sZXQga3ByaW50ZiA9IGtzcHJpbnRmXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUga2V5ID0gc3RyaW5nXG50eXBlIGRvYyA9IHN0cmluZ1xudHlwZSB1c2FnZV9tc2cgPSBzdHJpbmdcbnR5cGUgYW5vbl9mdW4gPSAoc3RyaW5nIC0+IHVuaXQpXG5cbnR5cGUgc3BlYyA9XG4gIHwgVW5pdCBvZiAodW5pdCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB1bml0IGFyZ3VtZW50ICopXG4gIHwgQm9vbCBvZiAoYm9vbCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIGJvb2wgYXJndW1lbnQgKilcbiAgfCBTZXQgb2YgYm9vbCByZWYgICAgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0cnVlICopXG4gIHwgQ2xlYXIgb2YgYm9vbCByZWYgICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gZmFsc2UgKilcbiAgfCBTdHJpbmcgb2YgKHN0cmluZyAtPiB1bml0KSAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgc3RyaW5nIGFyZ3VtZW50ICopXG4gIHwgU2V0X3N0cmluZyBvZiBzdHJpbmcgcmVmICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIHN0cmluZyBhcmd1bWVudCAqKVxuICB8IEludCBvZiAoaW50IC0+IHVuaXQpICAgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYW4gaW50IGFyZ3VtZW50ICopXG4gIHwgU2V0X2ludCBvZiBpbnQgcmVmICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIGludCBhcmd1bWVudCAqKVxuICB8IEZsb2F0IG9mIChmbG9hdCAtPiB1bml0KSAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFNldF9mbG9hdCBvZiBmbG9hdCByZWYgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFR1cGxlIG9mIHNwZWMgbGlzdCAgICAgICAgICgqIFRha2Ugc2V2ZXJhbCBhcmd1bWVudHMgYWNjb3JkaW5nIHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMgbGlzdCAqKVxuICB8IFN5bWJvbCBvZiBzdHJpbmcgbGlzdCAqIChzdHJpbmcgLT4gdW5pdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUYWtlIG9uZSBvZiB0aGUgc3ltYm9scyBhcyBhcmd1bWVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzeW1ib2wuICopXG4gIHwgUmVzdCBvZiAoc3RyaW5nIC0+IHVuaXQpICAgKCogU3RvcCBpbnRlcnByZXRpbmcga2V5d29yZHMgYW5kIGNhbGwgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2l0aCBlYWNoIHJlbWFpbmluZyBhcmd1bWVudCAqKVxuICB8IFJlc3RfYWxsIG9mIChzdHJpbmcgbGlzdCAtPiB1bml0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFN0b3AgaW50ZXJwcmV0aW5nIGtleXdvcmRzIGFuZCBjYWxsIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggYWxsIHJlbWFpbmluZyBhcmd1bWVudHMuICopXG4gIHwgRXhwYW5kIG9mIChzdHJpbmcgLT4gc3RyaW5nIGFycmF5KSAoKiBJZiB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyB0byBwcm9jZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgb2YgdGhlIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbXCItZm9vXCI7IFwiYXJnXCJdIEAgcmVzdF0gd2hlcmUgXCJmb29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVnaXN0ZXJlZCBhcyBbRXhwYW5kIGZdLCB0aGVuIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzIFtmIFwiYXJnXCIgQCByZXN0XSBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZC4gT25seSBhbGxvd2VkIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNdLiAqKVxuXG5leGNlcHRpb24gQmFkIG9mIHN0cmluZ1xuZXhjZXB0aW9uIEhlbHAgb2Ygc3RyaW5nXG5cbnR5cGUgZXJyb3IgPVxuICB8IFVua25vd24gb2Ygc3RyaW5nXG4gIHwgV3Jvbmcgb2Ygc3RyaW5nICogc3RyaW5nICogc3RyaW5nICAoKiBvcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQgKilcbiAgfCBNaXNzaW5nIG9mIHN0cmluZ1xuICB8IE1lc3NhZ2Ugb2Ygc3RyaW5nXG5cbmV4Y2VwdGlvbiBTdG9wIG9mIGVycm9yICgqIHVzZWQgaW50ZXJuYWxseSAqKVxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcmVjIGFzc29jMyB4IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCAoeTEsIHkyLCBfKSA6OiBfIHdoZW4geTEgPSB4IC0+IHkyXG4gIHwgXyA6OiB0IC0+IGFzc29jMyB4IHRcblxuXG5sZXQgc3BsaXQgcyA9XG4gIGxldCBpID0gU3RyaW5nLmluZGV4IHMgJz0nIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgU3RyaW5nLnN1YiBzIDAgaSwgU3RyaW5nLnN1YiBzIChpKzEpIChsZW4tKGkrMSkpXG5cblxubGV0IG1ha2Vfc3ltbGlzdCBwcmVmaXggc2VwIHN1ZmZpeCBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT4gXCI8bm9uZT5cIlxuICB8IGg6OnQgLT4gKExpc3QuZm9sZF9sZWZ0IChmdW4geCB5IC0+IHggXiBzZXAgXiB5KSAocHJlZml4IF4gaCkgdCkgXiBzdWZmaXhcblxuXG5sZXQgcHJpbnRfc3BlYyBidWYgKGtleSwgc3BlYywgZG9jKSA9XG4gIGlmIFN0cmluZy5sZW5ndGggZG9jID4gMCB0aGVuXG4gICAgbWF0Y2ggc3BlYyB3aXRoXG4gICAgfCBTeW1ib2wgKGwsIF8pIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlcyVzXFxuXCIga2V5IChtYWtlX3N5bWxpc3QgXCJ7XCIgXCJ8XCIgXCJ9XCIgbCkgZG9jXG4gICAgfCBfIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlc1xcblwiIGtleSBkb2NcblxuXG5sZXQgaGVscF9hY3Rpb24gKCkgPSByYWlzZSAoU3RvcCAoVW5rbm93biBcIi1oZWxwXCIpKVxuXG5sZXQgYWRkX2hlbHAgc3BlY2xpc3QgPVxuICBsZXQgYWRkMSA9XG4gICAgdHJ5IGlnbm9yZSAoYXNzb2MzIFwiLWhlbHBcIiBzcGVjbGlzdCk7IFtdXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICAgIFtcIi1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgYW5kIGFkZDIgPVxuICAgIHRyeSBpZ25vcmUgKGFzc29jMyBcIi0taGVscFwiIHNwZWNsaXN0KTsgW11cbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgICAgW1wiLS1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgaW5cbiAgc3BlY2xpc3QgQCAoYWRkMSBAIGFkZDIpXG5cblxubGV0IHVzYWdlX2IgYnVmIHNwZWNsaXN0IGVycm1zZyA9XG4gIGJwcmludGYgYnVmIFwiJXNcXG5cIiBlcnJtc2c7XG4gIExpc3QuaXRlciAocHJpbnRfc3BlYyBidWYpIChhZGRfaGVscCBzcGVjbGlzdClcblxuXG5sZXQgdXNhZ2Vfc3RyaW5nIHNwZWNsaXN0IGVycm1zZyA9XG4gIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgdXNhZ2VfYiBiIHNwZWNsaXN0IGVycm1zZztcbiAgQnVmZmVyLmNvbnRlbnRzIGJcblxuXG5sZXQgdXNhZ2Ugc3BlY2xpc3QgZXJybXNnID1cbiAgZXByaW50ZiBcIiVzXCIgKHVzYWdlX3N0cmluZyBzcGVjbGlzdCBlcnJtc2cpXG5cblxubGV0IGN1cnJlbnQgPSByZWYgMFxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoYm9vbF9vZl9zdHJpbmcgeClcbiAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IF8gLT4gTm9uZVxuXG5sZXQgaW50X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHgpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgeClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IGFsbG93X2V4cGFuZCBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cgPVxuICBsZXQgaW5pdHBvcyA9ICFjdXJyZW50IGluXG4gIGxldCBjb252ZXJ0X2Vycm9yIGVycm9yID1cbiAgICAoKiBjb252ZXJ0IGFuIGludGVybmFsIGVycm9yIHRvIGEgQmFkL0hlbHAgZXhjZXB0aW9uXG4gICAgICAgKm9yKiBhZGQgdGhlIHByb2dyYW0gbmFtZSBhcyBhIHByZWZpeCBhbmQgdGhlIHVzYWdlIG1lc3NhZ2UgYXMgYSBzdWZmaXhcbiAgICAgICB0byBhbiB1c2VyLXJhaXNlZCBCYWQgZXhjZXB0aW9uLlxuICAgICopXG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICAgIGxldCBwcm9nbmFtZSA9XG4gICAgICBpZiBpbml0cG9zIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oaW5pdHBvcykgZWxzZSBcIig/KVwiIGluXG4gICAgYmVnaW4gbWF0Y2ggZXJyb3Igd2l0aFxuICAgICAgfCBVbmtub3duIFwiLWhlbHBcIiAtPiAoKVxuICAgICAgfCBVbmtub3duIFwiLS1oZWxwXCIgLT4gKClcbiAgICAgIHwgVW5rbm93biBzIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IHVua25vd24gb3B0aW9uICclcycuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBNaXNzaW5nIHMgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogb3B0aW9uICclcycgbmVlZHMgYW4gYXJndW1lbnQuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBXcm9uZyAob3B0LCBhcmcsIGV4cGVjdGVkKSAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiB3cm9uZyBhcmd1bWVudCAnJXMnOyBvcHRpb24gJyVzJyBleHBlY3RzICVzLlxcblwiXG4gICAgICAgICAgICAgICAgICBwcm9nbmFtZSBhcmcgb3B0IGV4cGVjdGVkXG4gICAgICB8IE1lc3NhZ2UgcyAtPiAoKiB1c2VyIGVycm9yIG1lc3NhZ2UgKilcbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogJXMuXFxuXCIgcHJvZ25hbWUgc1xuICAgIGVuZDtcbiAgICB1c2FnZV9iIGIgIXNwZWNsaXN0IGVycm1zZztcbiAgICBpZiBlcnJvciA9IFVua25vd24gXCItaGVscFwiIHx8IGVycm9yID0gVW5rbm93biBcIi0taGVscFwiXG4gICAgdGhlbiBIZWxwIChCdWZmZXIuY29udGVudHMgYilcbiAgICBlbHNlIEJhZCAoQnVmZmVyLmNvbnRlbnRzIGIpXG4gIGluXG4gIGluY3IgY3VycmVudDtcbiAgd2hpbGUgIWN1cnJlbnQgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSBkb1xuICAgIGJlZ2luIHRyeVxuICAgICAgbGV0IHMgPSAhYXJndi4oIWN1cnJlbnQpIGluXG4gICAgICBpZiBTdHJpbmcubGVuZ3RoIHMgPj0gMSAmJiBzLlswXSA9ICctJyB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBhY3Rpb24sIGZvbGxvdyA9XG4gICAgICAgICAgdHJ5IGFzc29jMyBzICFzcGVjbGlzdCwgTm9uZVxuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICBsZXQga2V5d29yZCwgYXJnID0gc3BsaXQgcyBpblxuICAgICAgICAgICAgYXNzb2MzIGtleXdvcmQgIXNwZWNsaXN0LCBTb21lIGFyZ1xuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+IHJhaXNlIChTdG9wIChVbmtub3duIHMpKVxuICAgICAgICBpblxuICAgICAgICBsZXQgbm9fYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwibm8gYXJndW1lbnRcIikpKSBpblxuICAgICAgICBsZXQgZ2V0X2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgaWYgIWN1cnJlbnQgKyAxIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgICBlbHNlIHJhaXNlIChTdG9wIChNaXNzaW5nIHMpKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gYXJnXG4gICAgICAgIGluXG4gICAgICAgIGxldCBjb25zdW1lX2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gaW5jciBjdXJyZW50XG4gICAgICAgICAgfCBTb21lIF8gLT4gKClcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHJlYyB0cmVhdF9hY3Rpb24gPSBmdW5jdGlvblxuICAgICAgICB8IFVuaXQgZiAtPiBub19hcmcgKCk7IGYgKCk7XG4gICAgICAgIHwgQm9vbCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggYm9vbF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBib29sZWFuXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSBzIC0+IGYgc1xuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0IHIgLT4gbm9fYXJnICgpOyByIDo9IHRydWU7XG4gICAgICAgIHwgQ2xlYXIgciAtPiBub19hcmcgKCk7IHIgOj0gZmFsc2U7XG4gICAgICAgIHwgU3RyaW5nIGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBmIGFyZztcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFN5bWJvbCAoc3ltYiwgZikgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBpZiBMaXN0Lm1lbSBhcmcgc3ltYiB0aGVuIGJlZ2luXG4gICAgICAgICAgICAgIGYgYXJnO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcIm9uZSBvZjogXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gKG1ha2Vfc3ltbGlzdCBcIlwiIFwiIFwiIFwiXCIgc3ltYikpKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IFNldF9zdHJpbmcgciAtPlxuICAgICAgICAgICAgciA6PSBnZXRfYXJnICgpO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgSW50IGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfaW50IHIgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gciA6PSB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBGbG9hdCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggZmxvYXRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgZmxvYXRcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfZmxvYXQgciAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGZsb2F0X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGZsb2F0XCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IHIgOj0geFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgVHVwbGUgc3BlY3MgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIExpc3QuaXRlciB0cmVhdF9hY3Rpb24gc3BlY3M7XG4gICAgICAgIHwgUmVzdCBmIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICB3aGlsZSAhY3VycmVudCA8IChBcnJheS5sZW5ndGggIWFyZ3YpIC0gMSBkb1xuICAgICAgICAgICAgICBmICFhcmd2LighY3VycmVudCArIDEpO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgIHwgUmVzdF9hbGwgZiAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgd2hpbGUgIWN1cnJlbnQgPCBBcnJheS5sZW5ndGggIWFyZ3YgLSAxIGRvXG4gICAgICAgICAgICAgIGFjYyA6PSAhYXJndi4oIWN1cnJlbnQgKyAxKSA6OiAhYWNjO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICBmIChMaXN0LnJldiAhYWNjKVxuICAgICAgICB8IEV4cGFuZCBmIC0+XG4gICAgICAgICAgICBpZiBub3QgYWxsb3dfZXhwYW5kIHRoZW5cbiAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJBcmcuRXhwYW5kIGlzIGlzIG9ubHkgYWxsb3dlZCB3aXRoIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcucGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNcIik7XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgbGV0IG5ld2FyZyA9IGYgYXJnIGluXG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGxldCBiZWZvcmUgPSBBcnJheS5zdWIgIWFyZ3YgMCAoIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgYW5kIGFmdGVyID1cbiAgICAgICAgICAgICAgQXJyYXkuc3ViICFhcmd2ICghY3VycmVudCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAoKEFycmF5Lmxlbmd0aCAhYXJndikgLSAhY3VycmVudCAtIDEpIGluXG4gICAgICAgICAgICBhcmd2Oj0gQXJyYXkuY29uY2F0IFtiZWZvcmU7bmV3YXJnO2FmdGVyXTtcbiAgICAgICAgaW5cbiAgICAgICAgdHJlYXRfYWN0aW9uIGFjdGlvbiBlbmRcbiAgICAgIGVsc2UgYW5vbmZ1biBzXG4gICAgd2l0aCB8IEJhZCBtIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIChNZXNzYWdlIG0pKTtcbiAgICAgICAgIHwgU3RvcCBlIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIGUpO1xuICAgIGVuZDtcbiAgICBpbmNyIGN1cnJlbnRcbiAgZG9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IHRydWUgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnXG5cbmxldCBwYXJzZV9hcmd2X2R5bmFtaWMgPyhjdXJyZW50PWN1cnJlbnQpIGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggZmFsc2UgY3VycmVudCAocmVmIGFyZ3YpIHNwZWNsaXN0IGFub25mdW5cbiAgICBlcnJtc2dcblxuXG5sZXQgcGFyc2VfYXJndiA/KGN1cnJlbnQ9Y3VycmVudCkgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FyZ3ZfZHluYW1pYyB+Y3VycmVudDpjdXJyZW50IGFyZ3YgKHJlZiBzcGVjbGlzdCkgYW5vbmZ1biBlcnJtc2dcblxuXG5sZXQgcGFyc2UgbCBmIG1zZyA9XG4gIHRyeVxuICAgIHBhcnNlX2FyZ3YgU3lzLmFyZ3YgbCBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgcGFyc2VfZHluYW1pYyBsIGYgbXNnID1cbiAgdHJ5XG4gICAgcGFyc2VfYXJndl9keW5hbWljIFN5cy5hcmd2IGwgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cbmxldCBwYXJzZV9leHBhbmQgbCBmIG1zZyA9XG4gIHRyeVxuICAgIGxldCBhcmd2ID0gcmVmIFN5cy5hcmd2IGluXG4gICAgbGV0IHNwZWMgPSByZWYgbCBpblxuICAgIGxldCBjdXJyZW50ID0gcmVmICghY3VycmVudCkgaW5cbiAgICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyBjdXJyZW50IGFyZ3Ygc3BlYyBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgc2Vjb25kX3dvcmQgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIG4gPVxuICAgIGlmIG4gPj0gbGVuIHRoZW4gbGVuXG4gICAgZWxzZSBpZiBzLltuXSA9ICcgJyB0aGVuIGxvb3AgKG4rMSlcbiAgICBlbHNlIG5cbiAgaW5cbiAgbWF0Y2ggU3RyaW5nLmluZGV4IHMgJ1xcdCcgd2l0aFxuICB8IG4gLT4gbG9vcCAobisxKVxuICB8IGV4Y2VwdGlvbiBOb3RfZm91bmQgLT5cbiAgICAgIGJlZ2luIG1hdGNoIFN0cmluZy5pbmRleCBzICcgJyB3aXRoXG4gICAgICB8IG4gLT4gbG9vcCAobisxKVxuICAgICAgfCBleGNlcHRpb24gTm90X2ZvdW5kIC0+IGxlblxuICAgICAgZW5kXG5cblxubGV0IG1heF9hcmdfbGVuIGN1ciAoa3dkLCBzcGVjLCBkb2MpID1cbiAgbWF0Y2ggc3BlYyB3aXRoXG4gIHwgU3ltYm9sIF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkKVxuICB8IF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkICsgc2Vjb25kX3dvcmQgZG9jKVxuXG5cbmxldCByZXBsYWNlX2xlYWRpbmdfdGFiIHMgPVxuICBsZXQgc2VlbiA9IHJlZiBmYWxzZSBpblxuICBTdHJpbmcubWFwIChmdW5jdGlvbiAnXFx0JyB3aGVuIG5vdCAhc2VlbiAtPiBzZWVuIDo9IHRydWU7ICcgJyB8IGMgLT4gYykgc1xuXG5sZXQgYWRkX3BhZGRpbmcgbGVuIGtzZCA9XG4gIG1hdGNoIGtzZCB3aXRoXG4gIHwgKF8sIF8sIFwiXCIpIC0+XG4gICAgICAoKiBEbyBub3QgcGFkIHVuZG9jdW1lbnRlZCBvcHRpb25zLCBzbyB0aGF0IHRoZXkgc3RpbGwgZG9uJ3Qgc2hvdyB1cCB3aGVuXG4gICAgICAgKiBydW4gdGhyb3VnaCBbdXNhZ2VdIG9yIFtwYXJzZV0uICopXG4gICAgICBrc2RcbiAgfCAoa3dkLCAoU3ltYm9sIF8gYXMgc3BlYyksIG1zZykgLT5cbiAgICAgIGxldCBjdXRjb2wgPSBzZWNvbmRfd29yZCBtc2cgaW5cbiAgICAgIGxldCBzcGFjZXMgPSBTdHJpbmcubWFrZSAoKEludC5tYXggMCAobGVuIC0gY3V0Y29sKSkgKyAzKSAnICcgaW5cbiAgICAgIChrd2QsIHNwZWMsIFwiXFxuXCIgXiBzcGFjZXMgXiByZXBsYWNlX2xlYWRpbmdfdGFiIG1zZylcbiAgfCAoa3dkLCBzcGVjLCBtc2cpIC0+XG4gICAgICBsZXQgY3V0Y29sID0gc2Vjb25kX3dvcmQgbXNnIGluXG4gICAgICBsZXQga3dkX2xlbiA9IFN0cmluZy5sZW5ndGgga3dkIGluXG4gICAgICBsZXQgZGlmZiA9IGxlbiAtIGt3ZF9sZW4gLSBjdXRjb2wgaW5cbiAgICAgIGlmIGRpZmYgPD0gMCB0aGVuXG4gICAgICAgIChrd2QsIHNwZWMsIHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgc3BhY2VzID0gU3RyaW5nLm1ha2UgZGlmZiAnICcgaW5cbiAgICAgICAgbGV0IHByZWZpeCA9IFN0cmluZy5zdWIgKHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKSAwIGN1dGNvbCBpblxuICAgICAgICBsZXQgc3VmZml4ID0gU3RyaW5nLnN1YiBtc2cgY3V0Y29sIChTdHJpbmcubGVuZ3RoIG1zZyAtIGN1dGNvbCkgaW5cbiAgICAgICAgKGt3ZCwgc3BlYywgcHJlZml4IF4gc3BhY2VzIF4gc3VmZml4KVxuXG5cbmxldCBhbGlnbiA/KGxpbWl0PW1heF9pbnQpIHNwZWNsaXN0ID1cbiAgbGV0IGNvbXBsZXRlZCA9IGFkZF9oZWxwIHNwZWNsaXN0IGluXG4gIGxldCBsZW4gPSBMaXN0LmZvbGRfbGVmdCBtYXhfYXJnX2xlbiAwIGNvbXBsZXRlZCBpblxuICBsZXQgbGVuID0gSW50Lm1pbiBsZW4gbGltaXQgaW5cbiAgTGlzdC5tYXAgKGFkZF9wYWRkaW5nIGxlbikgY29tcGxldGVkXG5cbmxldCB0cmltX2NyIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGlmIGxlbiA+IDAgJiYgU3RyaW5nLmdldCBzIChsZW4gLSAxKSA9ICdcXHInIHRoZW5cbiAgICBTdHJpbmcuc3ViIHMgMCAobGVuIC0gMSlcbiAgZWxzZVxuICAgIHNcblxubGV0IHJlYWRfYXV4IHRyaW0gc2VwIGZpbGUgPVxuICBsZXQgaWMgPSBvcGVuX2luX2JpbiBmaWxlIGluXG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICBsZXQgd29yZHMgPSByZWYgW10gaW5cbiAgbGV0IHN0YXNoICgpID1cbiAgICBsZXQgd29yZCA9IEJ1ZmZlci5jb250ZW50cyBidWYgaW5cbiAgICBsZXQgd29yZCA9IGlmIHRyaW0gdGhlbiB0cmltX2NyIHdvcmQgZWxzZSB3b3JkIGluXG4gICAgd29yZHMgOj0gd29yZCA6OiAhd29yZHM7XG4gICAgQnVmZmVyLmNsZWFyIGJ1ZlxuICBpblxuICBiZWdpblxuICAgIHRyeSB3aGlsZSB0cnVlIGRvXG4gICAgICAgIGxldCBjID0gaW5wdXRfY2hhciBpYyBpblxuICAgICAgICBpZiBjID0gc2VwIHRoZW4gc3Rhc2ggKCkgZWxzZSBCdWZmZXIuYWRkX2NoYXIgYnVmIGNcbiAgICAgIGRvbmVcbiAgICB3aXRoIEVuZF9vZl9maWxlIC0+ICgpXG4gIGVuZDtcbiAgaWYgQnVmZmVyLmxlbmd0aCBidWYgPiAwIHRoZW4gc3Rhc2ggKCk7XG4gIGNsb3NlX2luIGljO1xuICBBcnJheS5vZl9saXN0IChMaXN0LnJldiAhd29yZHMpXG5cbmxldCByZWFkX2FyZyA9IHJlYWRfYXV4IHRydWUgJ1xcbidcblxubGV0IHJlYWRfYXJnMCA9IHJlYWRfYXV4IGZhbHNlICdcXHgwMCdcblxubGV0IHdyaXRlX2F1eCBzZXAgZmlsZSBhcmdzID1cbiAgbGV0IG9jID0gb3Blbl9vdXRfYmluIGZpbGUgaW5cbiAgQXJyYXkuaXRlciAoZnVuIHMgLT4gZnByaW50ZiBvYyBcIiVzJWNcIiBzIHNlcCkgYXJncztcbiAgY2xvc2Vfb3V0IG9jXG5cbmxldCB3cml0ZV9hcmcgPSB3cml0ZV9hdXggJ1xcbidcblxubGV0IHdyaXRlX2FyZzAgPSB3cml0ZV9hdXggJ1xceDAwJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBpZCA6ICdhIC0+ICdhID0gXCIlaWRlbnRpdHlcIlxubGV0IGNvbnN0IGMgXyA9IGNcbmxldCBmbGlwIGYgeCB5ID0gZiB5IHhcbmxldCBuZWdhdGUgcCB2ID0gbm90IChwIHYpXG5cbmV4Y2VwdGlvbiBGaW5hbGx5X3JhaXNlZCBvZiBleG5cblxubGV0ICgpID0gUHJpbnRleGMucmVnaXN0ZXJfcHJpbnRlciBAQCBmdW5jdGlvblxufCBGaW5hbGx5X3JhaXNlZCBleG4gLT4gU29tZSAoXCJGdW4uRmluYWxseV9yYWlzZWQ6IFwiIF4gUHJpbnRleGMudG9fc3RyaW5nIGV4bilcbnwgXyAtPiBOb25lXG5cbmxldCBwcm90ZWN0IH4oZmluYWxseSA6IHVuaXQgLT4gdW5pdCkgd29yayA9XG4gIGxldCBmaW5hbGx5X25vX2V4biAoKSA9XG4gICAgdHJ5IGZpbmFsbHkgKCkgd2l0aCBlIC0+XG4gICAgICBsZXQgYnQgPSBQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgUHJpbnRleGMucmFpc2Vfd2l0aF9iYWNrdHJhY2UgKEZpbmFsbHlfcmFpc2VkIGUpIGJ0XG4gIGluXG4gIG1hdGNoIHdvcmsgKCkgd2l0aFxuICB8IHJlc3VsdCAtPiBmaW5hbGx5X25vX2V4biAoKSA7IHJlc3VsdFxuICB8IGV4Y2VwdGlvbiB3b3JrX2V4biAtPlxuICAgICAgbGV0IHdvcmtfYnQgPSBQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgZmluYWxseV9ub19leG4gKCkgO1xuICAgICAgUHJpbnRleGMucmFpc2Vfd2l0aF9iYWNrdHJhY2Ugd29ya19leG4gd29ya19idFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICBKYWNxdWVzLUhlbnJpIEpvdXJkYW4sIHByb2pldCBHYWxsaXVtLCBJTlJJQSBQYXJpcyAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5Ni0yMDE2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgICAqKVxuKCogICAgIGV0IGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHN0YXQgPSB7XG4gIG1pbm9yX3dvcmRzIDogZmxvYXQ7XG4gIHByb21vdGVkX3dvcmRzIDogZmxvYXQ7XG4gIG1ham9yX3dvcmRzIDogZmxvYXQ7XG4gIG1pbm9yX2NvbGxlY3Rpb25zIDogaW50O1xuICBtYWpvcl9jb2xsZWN0aW9ucyA6IGludDtcbiAgaGVhcF93b3JkcyA6IGludDtcbiAgaGVhcF9jaHVua3MgOiBpbnQ7XG4gIGxpdmVfd29yZHMgOiBpbnQ7XG4gIGxpdmVfYmxvY2tzIDogaW50O1xuICBmcmVlX3dvcmRzIDogaW50O1xuICBmcmVlX2Jsb2NrcyA6IGludDtcbiAgbGFyZ2VzdF9mcmVlIDogaW50O1xuICBmcmFnbWVudHMgOiBpbnQ7XG4gIGNvbXBhY3Rpb25zIDogaW50O1xuICB0b3BfaGVhcF93b3JkcyA6IGludDtcbiAgc3RhY2tfc2l6ZSA6IGludDtcbiAgZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zOiBpbnQ7XG59XG5cbnR5cGUgY29udHJvbCA9IHtcbiAgbXV0YWJsZSBtaW5vcl9oZWFwX3NpemUgOiBpbnQ7XG4gIG11dGFibGUgbWFqb3JfaGVhcF9pbmNyZW1lbnQgOiBpbnQ7XG4gIG11dGFibGUgc3BhY2Vfb3ZlcmhlYWQgOiBpbnQ7XG4gIG11dGFibGUgdmVyYm9zZSA6IGludDtcbiAgbXV0YWJsZSBtYXhfb3ZlcmhlYWQgOiBpbnQ7XG4gIG11dGFibGUgc3RhY2tfbGltaXQgOiBpbnQ7XG4gIG11dGFibGUgYWxsb2NhdGlvbl9wb2xpY3kgOiBpbnQ7XG4gIHdpbmRvd19zaXplIDogaW50O1xuICBjdXN0b21fbWFqb3JfcmF0aW8gOiBpbnQ7XG4gIGN1c3RvbV9taW5vcl9yYXRpbyA6IGludDtcbiAgY3VzdG9tX21pbm9yX21heF9zaXplIDogaW50O1xufVxuXG5leHRlcm5hbCBzdGF0IDogdW5pdCAtPiBzdGF0ID0gXCJjYW1sX2djX3N0YXRcIlxuZXh0ZXJuYWwgcXVpY2tfc3RhdCA6IHVuaXQgLT4gc3RhdCA9IFwiY2FtbF9nY19xdWlja19zdGF0XCJcbmV4dGVybmFsIGNvdW50ZXJzIDogdW5pdCAtPiAoZmxvYXQgKiBmbG9hdCAqIGZsb2F0KSA9IFwiY2FtbF9nY19jb3VudGVyc1wiXG5leHRlcm5hbCBtaW5vcl93b3JkcyA6IHVuaXQgLT4gKGZsb2F0IFtAdW5ib3hlZF0pXG4gID0gXCJjYW1sX2djX21pbm9yX3dvcmRzXCIgXCJjYW1sX2djX21pbm9yX3dvcmRzX3VuYm94ZWRcIlxuZXh0ZXJuYWwgZ2V0IDogdW5pdCAtPiBjb250cm9sID0gXCJjYW1sX2djX2dldFwiXG5leHRlcm5hbCBzZXQgOiBjb250cm9sIC0+IHVuaXQgPSBcImNhbWxfZ2Nfc2V0XCJcbmV4dGVybmFsIG1pbm9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21pbm9yXCJcbmV4dGVybmFsIG1ham9yX3NsaWNlIDogaW50IC0+IGludCA9IFwiY2FtbF9nY19tYWpvcl9zbGljZVwiXG5leHRlcm5hbCBtYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19tYWpvclwiXG5leHRlcm5hbCBmdWxsX21ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX2Z1bGxfbWFqb3JcIlxuZXh0ZXJuYWwgY29tcGFjdCA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19jb21wYWN0aW9uXCJcbmV4dGVybmFsIGdldF9taW5vcl9mcmVlIDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2V0X21pbm9yX2ZyZWVcIlxuZXh0ZXJuYWwgZ2V0X2J1Y2tldCA6IGludCAtPiBpbnQgPSBcImNhbWxfZ2V0X21ham9yX2J1Y2tldFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBnZXRfY3JlZGl0IDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2V0X21ham9yX2NyZWRpdFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBodWdlX2ZhbGxiYWNrX2NvdW50IDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudFwiXG5leHRlcm5hbCBldmVudGxvZ19wYXVzZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9ldmVudGxvZ19wYXVzZVwiXG5leHRlcm5hbCBldmVudGxvZ19yZXN1bWUgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZXZlbnRsb2dfcmVzdW1lXCJcblxub3BlbiBQcmludGZcblxubGV0IHByaW50X3N0YXQgYyA9XG4gIGxldCBzdCA9IHN0YXQgKCkgaW5cbiAgZnByaW50ZiBjIFwibWlub3JfY29sbGVjdGlvbnM6ICAgICAgJWRcXG5cIiBzdC5taW5vcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwibWFqb3JfY29sbGVjdGlvbnM6ICAgICAgJWRcXG5cIiBzdC5tYWpvcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwiY29tcGFjdGlvbnM6ICAgICAgICAgICAgJWRcXG5cIiBzdC5jb21wYWN0aW9ucztcbiAgZnByaW50ZiBjIFwiZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zOiAlZFxcblwiIHN0LmZvcmNlZF9tYWpvcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGxldCBsMSA9IFN0cmluZy5sZW5ndGggKHNwcmludGYgXCIlLjBmXCIgc3QubWlub3Jfd29yZHMpIGluXG4gIGZwcmludGYgYyBcIm1pbm9yX3dvcmRzOiAgICAlKi4wZlxcblwiIGwxIHN0Lm1pbm9yX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJwcm9tb3RlZF93b3JkczogJSouMGZcXG5cIiBsMSBzdC5wcm9tb3RlZF93b3JkcztcbiAgZnByaW50ZiBjIFwibWFqb3Jfd29yZHM6ICAgICUqLjBmXFxuXCIgbDEgc3QubWFqb3Jfd29yZHM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBsZXQgbDIgPSBTdHJpbmcubGVuZ3RoIChzcHJpbnRmIFwiJWRcIiBzdC50b3BfaGVhcF93b3JkcykgaW5cbiAgZnByaW50ZiBjIFwidG9wX2hlYXBfd29yZHM6ICUqZFxcblwiIGwyIHN0LnRvcF9oZWFwX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJoZWFwX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QuaGVhcF93b3JkcztcbiAgZnByaW50ZiBjIFwibGl2ZV93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmxpdmVfd29yZHM7XG4gIGZwcmludGYgYyBcImZyZWVfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5mcmVlX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJsYXJnZXN0X2ZyZWU6ICAgJSpkXFxuXCIgbDIgc3QubGFyZ2VzdF9mcmVlO1xuICBmcHJpbnRmIGMgXCJmcmFnbWVudHM6ICAgICAgJSpkXFxuXCIgbDIgc3QuZnJhZ21lbnRzO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgZnByaW50ZiBjIFwibGl2ZV9ibG9ja3M6ICVkXFxuXCIgc3QubGl2ZV9ibG9ja3M7XG4gIGZwcmludGYgYyBcImZyZWVfYmxvY2tzOiAlZFxcblwiIHN0LmZyZWVfYmxvY2tzO1xuICBmcHJpbnRmIGMgXCJoZWFwX2NodW5rczogJWRcXG5cIiBzdC5oZWFwX2NodW5rc1xuXG5cbmxldCBhbGxvY2F0ZWRfYnl0ZXMgKCkgPVxuICBsZXQgKG1pLCBwcm8sIG1hKSA9IGNvdW50ZXJzICgpIGluXG4gIChtaSArLiBtYSAtLiBwcm8pICouIGZsb2F0X29mX2ludCAoU3lzLndvcmRfc2l6ZSAvIDgpXG5cblxuZXh0ZXJuYWwgZmluYWxpc2UgOiAoJ2EgLT4gdW5pdCkgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9maW5hbF9yZWdpc3RlclwiXG5leHRlcm5hbCBmaW5hbGlzZV9sYXN0IDogKHVuaXQgLT4gdW5pdCkgLT4gJ2EgLT4gdW5pdCA9XG4gIFwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZVwiXG5leHRlcm5hbCBmaW5hbGlzZV9yZWxlYXNlIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2ZpbmFsX3JlbGVhc2VcIlxuXG5cbnR5cGUgYWxhcm0gPSBib29sIHJlZlxudHlwZSBhbGFybV9yZWMgPSB7YWN0aXZlIDogYWxhcm07IGYgOiB1bml0IC0+IHVuaXR9XG5cbmxldCByZWMgY2FsbF9hbGFybSBhcmVjID1cbiAgaWYgIShhcmVjLmFjdGl2ZSkgdGhlbiBiZWdpblxuICAgIGZpbmFsaXNlIGNhbGxfYWxhcm0gYXJlYztcbiAgICBhcmVjLmYgKCk7XG4gIGVuZFxuXG5cbmxldCBjcmVhdGVfYWxhcm0gZiA9XG4gIGxldCBhcmVjID0geyBhY3RpdmUgPSByZWYgdHJ1ZTsgZiA9IGYgfSBpblxuICBmaW5hbGlzZSBjYWxsX2FsYXJtIGFyZWM7XG4gIGFyZWMuYWN0aXZlXG5cblxubGV0IGRlbGV0ZV9hbGFybSBhID0gYSA6PSBmYWxzZVxuXG5tb2R1bGUgTWVtcHJvZiA9XG4gIHN0cnVjdFxuICAgIHR5cGUgYWxsb2NhdGlvbl9zb3VyY2UgPSBOb3JtYWwgfCBNYXJzaGFsIHwgQ3VzdG9tXG4gICAgdHlwZSBhbGxvY2F0aW9uID1cbiAgICAgIHsgbl9zYW1wbGVzIDogaW50O1xuICAgICAgICBzaXplIDogaW50O1xuICAgICAgICBzb3VyY2UgOiBhbGxvY2F0aW9uX3NvdXJjZTtcbiAgICAgICAgY2FsbHN0YWNrIDogUHJpbnRleGMucmF3X2JhY2t0cmFjZSB9XG5cbiAgICB0eXBlICgnbWlub3IsICdtYWpvcikgdHJhY2tlciA9IHtcbiAgICAgIGFsbG9jX21pbm9yOiBhbGxvY2F0aW9uIC0+ICdtaW5vciBvcHRpb247XG4gICAgICBhbGxvY19tYWpvcjogYWxsb2NhdGlvbiAtPiAnbWFqb3Igb3B0aW9uO1xuICAgICAgcHJvbW90ZTogJ21pbm9yIC0+ICdtYWpvciBvcHRpb247XG4gICAgICBkZWFsbG9jX21pbm9yOiAnbWlub3IgLT4gdW5pdDtcbiAgICAgIGRlYWxsb2NfbWFqb3I6ICdtYWpvciAtPiB1bml0O1xuICAgIH1cblxuICAgIGxldCBudWxsX3RyYWNrZXIgPSB7XG4gICAgICBhbGxvY19taW5vciA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIGFsbG9jX21ham9yID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgcHJvbW90ZSA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIGRlYWxsb2NfbWlub3IgPSAoZnVuIF8gLT4gKCkpO1xuICAgICAgZGVhbGxvY19tYWpvciA9IChmdW4gXyAtPiAoKSk7XG4gICAgfVxuXG4gICAgZXh0ZXJuYWwgY19zdGFydCA6XG4gICAgICBmbG9hdCAtPiBpbnQgLT4gKCdtaW5vciwgJ21ham9yKSB0cmFja2VyIC0+IHVuaXRcbiAgICAgID0gXCJjYW1sX21lbXByb2Zfc3RhcnRcIlxuXG4gICAgbGV0IHN0YXJ0XG4gICAgICB+c2FtcGxpbmdfcmF0ZVxuICAgICAgPyhjYWxsc3RhY2tfc2l6ZSA9IG1heF9pbnQpXG4gICAgICB0cmFja2VyID1cbiAgICAgIGNfc3RhcnQgc2FtcGxpbmdfcmF0ZSBjYWxsc3RhY2tfc2l6ZSB0cmFja2VyXG5cbiAgICBleHRlcm5hbCBzdG9wIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX21lbXByb2Zfc3RvcFwiXG4gIGVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNZXNzYWdlIGRpZ2VzdCAoTUQ1KSAqKVxuXG50eXBlIHQgPSBzdHJpbmdcblxubGV0IGNvbXBhcmUgPSBTdHJpbmcuY29tcGFyZVxubGV0IGVxdWFsID0gU3RyaW5nLmVxdWFsXG5cbmV4dGVybmFsIHVuc2FmZV9zdHJpbmc6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHQgPSBcImNhbWxfbWQ1X3N0cmluZ1wiXG5leHRlcm5hbCBjaGFubmVsOiBpbl9jaGFubmVsIC0+IGludCAtPiB0ID0gXCJjYW1sX21kNV9jaGFuXCJcblxubGV0IHN0cmluZyBzdHIgPVxuICB1bnNhZmVfc3RyaW5nIHN0ciAwIChTdHJpbmcubGVuZ3RoIHN0cilcblxubGV0IGJ5dGVzIGIgPSBzdHJpbmcgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYilcblxubGV0IHN1YnN0cmluZyBzdHIgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBTdHJpbmcubGVuZ3RoIHN0ciAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LnN1YnN0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX3N0cmluZyBzdHIgb2ZzIGxlblxuXG5sZXQgc3ViYnl0ZXMgYiBvZnMgbGVuID0gc3Vic3RyaW5nIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGIpIG9mcyBsZW5cblxubGV0IGZpbGUgZmlsZW5hbWUgPVxuICBsZXQgaWMgPSBvcGVuX2luX2JpbiBmaWxlbmFtZSBpblxuICBtYXRjaCBjaGFubmVsIGljICgtMSkgd2l0aFxuICAgIHwgZCAtPiBjbG9zZV9pbiBpYzsgZFxuICAgIHwgZXhjZXB0aW9uIGUgLT4gY2xvc2VfaW4gaWM7IHJhaXNlIGVcblxubGV0IG91dHB1dCBjaGFuIGRpZ2VzdCA9XG4gIG91dHB1dF9zdHJpbmcgY2hhbiBkaWdlc3RcblxubGV0IGlucHV0IGNoYW4gPSByZWFsbHlfaW5wdXRfc3RyaW5nIGNoYW4gMTZcblxubGV0IGNoYXJfaGV4IG4gPVxuICBDaGFyLnVuc2FmZV9jaHIgKG4gKyBpZiBuIDwgMTAgdGhlbiBDaGFyLmNvZGUgJzAnIGVsc2UgKENoYXIuY29kZSAnYScgLSAxMCkpXG5cbmxldCB0b19oZXggZCA9XG4gIGlmIFN0cmluZy5sZW5ndGggZCA8PiAxNiB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LnRvX2hleFwiO1xuICBsZXQgcmVzdWx0ID0gQnl0ZXMuY3JlYXRlIDMyIGluXG4gIGZvciBpID0gMCB0byAxNSBkb1xuICAgIGxldCB4ID0gQ2hhci5jb2RlIGQuW2ldIGluXG4gICAgQnl0ZXMudW5zYWZlX3NldCByZXN1bHQgKGkqMikgKGNoYXJfaGV4ICh4IGxzciA0KSk7XG4gICAgQnl0ZXMudW5zYWZlX3NldCByZXN1bHQgKGkqMisxKSAoY2hhcl9oZXggKHggbGFuZCAweDBmKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzdWx0XG5cbmxldCBmcm9tX2hleCBzID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBzIDw+IDMyIHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3QuZnJvbV9oZXhcIjtcbiAgbGV0IGRpZ2l0IGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJzAnLi4nOScgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJzAnXG4gICAgfCAnQScuLidGJyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnQScgKyAxMFxuICAgIHwgJ2EnLi4nZicgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJ2EnICsgMTBcbiAgICB8IF8gLT4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJEaWdlc3QuZnJvbV9oZXhcIilcbiAgaW5cbiAgbGV0IGJ5dGUgaSA9IGRpZ2l0IHMuW2ldIGxzbCA0ICsgZGlnaXQgcy5baSsxXSBpblxuICBsZXQgcmVzdWx0ID0gQnl0ZXMuY3JlYXRlIDE2IGluXG4gIGZvciBpID0gMCB0byAxNSBkb1xuICAgIEJ5dGVzLnNldCByZXN1bHQgaSAoQ2hhci5jaHIgKGJ5dGUgKDIgKiBpKSkpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc3VsdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBIYXNoIHRhYmxlcyAqKVxuXG4oKiBXZSBkbyBkeW5hbWljIGhhc2hpbmcsIGFuZCByZXNpemUgdGhlIHRhYmxlIGFuZCByZWhhc2ggdGhlIGVsZW1lbnRzXG4gICB3aGVuIGJ1Y2tldHMgYmVjb21lIHRvbyBsb25nLiAqKVxuXG50eXBlICgnYSwgJ2IpIHQgPVxuICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgbXV0YWJsZSBkYXRhOiAoJ2EsICdiKSBidWNrZXRsaXN0IGFycmF5OyAgKCogdGhlIGJ1Y2tldHMgKilcbiAgICBzZWVkOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgKCogZm9yIHJhbmRvbWl6YXRpb24gKilcbiAgICBtdXRhYmxlIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAoKiBpbml0aWFsIGFycmF5IHNpemUgKilcbiAgfVxuXG5hbmQgKCdhLCAnYikgYnVja2V0bGlzdCA9XG4gICAgRW1wdHlcbiAgfCBDb25zIG9mIHsgbXV0YWJsZSBrZXk6ICdhO1xuICAgICAgICAgICAgICBtdXRhYmxlIGRhdGE6ICdiO1xuICAgICAgICAgICAgICBtdXRhYmxlIG5leHQ6ICgnYSwgJ2IpIGJ1Y2tldGxpc3QgfVxuXG4oKiBUaGUgc2lnbiBvZiBpbml0aWFsX3NpemUgZW5jb2RlcyB0aGUgZmFjdCB0aGF0IGEgdHJhdmVyc2FsIGlzXG4gICBvbmdvaW5nIG9yIG5vdC5cblxuICAgVGhpcyBkaXNhYmxlcyB0aGUgZWZmaWNpZW50IGluIHBsYWNlIGltcGxlbWVudGF0aW9uIG9mIHJlc2l6aW5nLlxuKilcblxubGV0IG9uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgfHwgaC5pbml0aWFsX3NpemUgPCAwXG5cbmxldCBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBoLmluaXRpYWxfc2l6ZSA8LSAtIGguaW5pdGlhbF9zaXplXG5cbigqIFRvIHBpY2sgcmFuZG9tIHNlZWRzIGlmIHJlcXVlc3RlZCAqKVxuXG5sZXQgcmFuZG9taXplZF9kZWZhdWx0ID1cbiAgbGV0IHBhcmFtcyA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJPQ0FNTFJVTlBBUkFNXCIgd2l0aCBOb3RfZm91bmQgLT5cbiAgICB0cnkgU3lzLmdldGVudiBcIkNBTUxSVU5QQVJBTVwiIHdpdGggTm90X2ZvdW5kIC0+IFwiXCIgaW5cbiAgU3RyaW5nLmNvbnRhaW5zIHBhcmFtcyAnUidcblxubGV0IHJhbmRvbWl6ZWQgPSByZWYgcmFuZG9taXplZF9kZWZhdWx0XG5cbmxldCByYW5kb21pemUgKCkgPSByYW5kb21pemVkIDo9IHRydWVcbmxldCBpc19yYW5kb21pemVkICgpID0gIXJhbmRvbWl6ZWRcblxubGV0IHBybmcgPSBsYXp5IChSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQoKSlcblxuKCogRnVuY3Rpb25zIHdoaWNoIGFwcGVhciBiZWZvcmUgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIG11c3QgZWl0aGVyIGJlXG4gICBpbmRlcGVuZGVudCBvZiB0aGUgaGFzaCBmdW5jdGlvbiBvciB0YWtlIGl0IGFzIGEgcGFyYW1ldGVyIChzZWUgIzIyMDIgYW5kXG4gICBjb2RlIGJlbG93IHRoZSBmdW5jdG9yIGRlZmluaXRpb25zLiAqKVxuXG4oKiBDcmVhdGluZyBhIGZyZXNoLCBlbXB0eSB0YWJsZSAqKVxuXG5sZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgaWYgeCA+PSBuIHRoZW4geFxuICBlbHNlIGlmIHggKiAyID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiB4XG4gIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxubGV0IGNyZWF0ZSA/KHJhbmRvbSA9ICFyYW5kb21pemVkKSBpbml0aWFsX3NpemUgPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gIGxldCBzZWVkID0gaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykgZWxzZSAwIGluXG4gIHsgaW5pdGlhbF9zaXplID0gczsgc2l6ZSA9IDA7IHNlZWQgPSBzZWVkOyBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5IH1cblxubGV0IGNsZWFyIGggPVxuICBpZiBoLnNpemUgPiAwIHRoZW4gYmVnaW5cbiAgICBoLnNpemUgPC0gMDtcbiAgICBBcnJheS5maWxsIGguZGF0YSAwIChBcnJheS5sZW5ndGggaC5kYXRhKSBFbXB0eVxuICBlbmRcblxubGV0IHJlc2V0IGggPVxuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgICB8fCBsZW4gPSBhYnMgaC5pbml0aWFsX3NpemUgdGhlblxuICAgIGNsZWFyIGhcbiAgZWxzZSBiZWdpblxuICAgIGguc2l6ZSA8LSAwO1xuICAgIGguZGF0YSA8LSBBcnJheS5tYWtlIChhYnMgaC5pbml0aWFsX3NpemUpIEVtcHR5XG4gIGVuZFxuXG5sZXQgY29weV9idWNrZXRsaXN0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBFbXB0eVxuICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGxldCByZWMgbG9vcCBwcmVjID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiAoKVxuICAgICAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgfCBDb25zIHByZWMgLT4gIHByZWMubmV4dCA8LSByXG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBsb29wIHIgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgbG9vcCByIG5leHQ7XG4gICAgICByXG5cbmxldCBjb3B5IGggPSB7IGggd2l0aCBkYXRhID0gQXJyYXkubWFwIGNvcHlfYnVja2V0bGlzdCBoLmRhdGEgfVxuXG5sZXQgbGVuZ3RoIGggPSBoLnNpemVcblxubGV0IGluc2VydF9hbGxfYnVja2V0cyBpbmRleGZ1biBpbnBsYWNlIG9kYXRhIG5kYXRhID1cbiAgbGV0IG5zaXplID0gQXJyYXkubGVuZ3RoIG5kYXRhIGluXG4gIGxldCBuZGF0YV90YWlsID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT4gKClcbiAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gYXMgY2VsbCAtPlxuICAgICAgICBsZXQgY2VsbCA9XG4gICAgICAgICAgaWYgaW5wbGFjZSB0aGVuIGNlbGxcbiAgICAgICAgICBlbHNlIENvbnMge2tleTsgZGF0YTsgbmV4dCA9IEVtcHR5fVxuICAgICAgICBpblxuICAgICAgICBsZXQgbmlkeCA9IGluZGV4ZnVuIGtleSBpblxuICAgICAgICBiZWdpbiBtYXRjaCBuZGF0YV90YWlsLihuaWR4KSB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gbmRhdGEuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBjZWxsO1xuICAgICAgICBlbmQ7XG4gICAgICAgIG5kYXRhX3RhaWwuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIGluc2VydF9idWNrZXQgbmV4dFxuICBpblxuICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIG9kYXRhIC0gMSBkb1xuICAgIGluc2VydF9idWNrZXQgb2RhdGEuKGkpXG4gIGRvbmU7XG4gIGlmIGlucGxhY2UgdGhlblxuICAgIGZvciBpID0gMCB0byBuc2l6ZSAtIDEgZG9cbiAgICAgIG1hdGNoIG5kYXRhX3RhaWwuKGkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gKClcbiAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBFbXB0eVxuICAgIGRvbmVcblxubGV0IHJlc2l6ZSBpbmRleGZ1biBoID1cbiAgbGV0IG9kYXRhID0gaC5kYXRhIGluXG4gIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICBsZXQgbnNpemUgPSBvc2l6ZSAqIDIgaW5cbiAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIGJlZ2luXG4gICAgbGV0IG5kYXRhID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICAgIGxldCBpbnBsYWNlID0gbm90IChvbmdvaW5nX3RyYXZlcnNhbCBoKSBpblxuICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgICAgKCogc28gdGhhdCBpbmRleGZ1biBzZWVzIHRoZSBuZXcgYnVja2V0IGNvdW50ICopXG4gICAgaW5zZXJ0X2FsbF9idWNrZXRzIChpbmRleGZ1biBoKSBpbnBsYWNlIG9kYXRhIG5kYXRhXG4gIGVuZFxuXG5sZXQgaXRlciBmIGggPVxuICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPlxuICAgICAgICAoKVxuICAgIHwgQ29uc3trZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIGYga2V5IGRhdGE7IGRvX2J1Y2tldCBuZXh0IGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGRvX2J1Y2tldCBkLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxubGV0IHJlYyBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHByZWMgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIEVtcHR5XG4gICAgICBlbmRcbiAgfCAoQ29ucyAoe2tleTsgZGF0YTsgbmV4dH0gYXMgYykpIGFzIHNsb3QgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGYga2V5IGRhdGEgd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBwcmVjIG5leHRcbiAgICAgIHwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIHNsb3RcbiAgICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gc2xvdFxuICAgICAgICAgIGVuZDtcbiAgICAgICAgICBjLmRhdGEgPC0gZGF0YTtcbiAgICAgICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHNsb3QgbmV4dFxuICAgICAgZW5kXG5cbmxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgRW1wdHkgaC5kYXRhLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoXG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG5sZXQgZm9sZCBmIGggaW5pdCA9XG4gIGxldCByZWMgZG9fYnVja2V0IGIgYWNjdSA9XG4gICAgbWF0Y2ggYiB3aXRoXG4gICAgICBFbXB0eSAtPlxuICAgICAgICBhY2N1XG4gICAgfCBDb25ze2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgZG9fYnVja2V0IG5leHQgKGYga2V5IGRhdGEgYWNjdSkgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgbGV0IGFjY3UgPSByZWYgaW5pdCBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgIWFjY3VcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbnR5cGUgc3RhdGlzdGljcyA9IHtcbiAgbnVtX2JpbmRpbmdzOiBpbnQ7XG4gIG51bV9idWNrZXRzOiBpbnQ7XG4gIG1heF9idWNrZXRfbGVuZ3RoOiBpbnQ7XG4gIGJ1Y2tldF9oaXN0b2dyYW06IGludCBhcnJheVxufVxuXG5sZXQgcmVjIGJ1Y2tldF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYWNjdVxuICB8IENvbnN7bmV4dH0gLT4gYnVja2V0X2xlbmd0aCAoYWNjdSArIDEpIG5leHRcblxubGV0IHN0YXRzIGggPVxuICBsZXQgbWJsID1cbiAgICBBcnJheS5mb2xkX2xlZnQgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoIDAgYikpIDAgaC5kYXRhIGluXG4gIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgQXJyYXkuaXRlclxuICAgIChmdW4gYiAtPlxuICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgaC5kYXRhO1xuICB7IG51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSB0YmwgPVxuICAoKiBjYXB0dXJlIGN1cnJlbnQgYXJyYXksIHNvIHRoYXQgZXZlbiBpZiB0aGUgdGFibGUgaXMgcmVzaXplZCB3ZVxuICAgICBrZWVwIGl0ZXJhdGluZyBvbiB0aGUgc2FtZSBhcnJheSAqKVxuICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAoKiBzdGF0ZTogaW5kZXggKiBuZXh0IGJ1Y2tldCB0byB0cmF2ZXJzZSAqKVxuICBsZXQgcmVjIGF1eCBpIGJ1Y2sgKCkgPSBtYXRjaCBidWNrIHdpdGhcbiAgICB8IEVtcHR5IC0+XG4gICAgICAgIGlmIGkgPSBBcnJheS5sZW5ndGggdGJsX2RhdGFcbiAgICAgICAgdGhlbiBTZXEuTmlsXG4gICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIFNlcS5Db25zICgoa2V5LCBkYXRhKSwgYXV4IGkgbmV4dClcbiAgaW5cbiAgYXV4IDAgRW1wdHlcblxubGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbmxldCB0b19zZXFfdmFsdWVzIG0gPSBTZXEubWFwIHNuZCAodG9fc2VxIG0pXG5cbigqIEZ1bmN0b3JpYWwgaW50ZXJmYWNlICopXG5cbm1vZHVsZSB0eXBlIEhhc2hlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGhhc2g6IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRIYXNoZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBoYXNoOiBpbnQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISdhIHRcbiAgICB2YWwgY3JlYXRlOiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5OiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgYWRkOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIHJlbW92ZTogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kOiAnYSB0IC0+IGtleSAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfYWxsOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gICAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQ6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgbGVuZ3RoOiAnYSB0IC0+IGludFxuICAgIHZhbCBzdGF0czogJ2EgdCAtPiBzdGF0aXN0aWNzXG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICEnYSB0XG4gICAgdmFsIGNyZWF0ZSA6ID9yYW5kb206Ym9vbCAtPiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICAgIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gICAgdmFsIHN0YXRzOiAnYSB0IC0+IHN0YXRpc3RpY3NcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlU2VlZGVkKEg6IFNlZWRlZEhhc2hlZFR5cGUpOiAoU2VlZGVkUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIHR5cGUga2V5ID0gSC50XG4gICAgdHlwZSAnYSBoYXNodGJsID0gKGtleSwgJ2EpIHRcbiAgICB0eXBlICdhIHQgPSAnYSBoYXNodGJsXG4gICAgbGV0IGNyZWF0ZSA9IGNyZWF0ZVxuICAgIGxldCBjbGVhciA9IGNsZWFyXG4gICAgbGV0IHJlc2V0ID0gcmVzZXRcbiAgICBsZXQgY29weSA9IGNvcHlcblxuICAgIGxldCBrZXlfaW5kZXggaCBrZXkgPVxuICAgICAgKEguaGFzaCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcblxuICAgIGxldCBhZGQgaCBrZXkgZGF0YSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gICAgICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG4gICAgbGV0IHJlYyByZW1vdmVfYnVja2V0IGggaSBrZXkgcHJlYyA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgKClcbiAgICAgIHwgKENvbnMge2tleT1rOyBuZXh0fSkgYXMgYyAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIGJlZ2luXG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIG5leHRcbiAgICAgICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICAgICAgZW5kXG4gICAgICAgICAgZWxzZSByZW1vdmVfYnVja2V0IGggaSBrZXkgYyBuZXh0XG5cbiAgICBsZXQgcmVtb3ZlIGgga2V5ID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICByZW1vdmVfYnVja2V0IGggaSBrZXkgRW1wdHkgaC5kYXRhLihpKVxuXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMSB0aGVuIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMiB0aGVuIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazMgdGhlbiBkMyBlbHNlIGZpbmRfcmVjIGtleSBuZXh0M1xuXG4gICAgbGV0IHJlYyBmaW5kX3JlY19vcHQga2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgayB0aGVuIFNvbWUgZGF0YSBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dFxuXG4gICAgbGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazEgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazIgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGszIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxuICAgIGxldCBmaW5kX2FsbCBoIGtleSA9XG4gICAgICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBbXVxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhPWQ7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gZCA6OiBmaW5kX2luX2J1Y2tldCBuZXh0XG4gICAgICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxuICAgIGxldCByZWMgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHRydWVcbiAgICAgIHwgQ29ucyAoe2tleT1rOyBuZXh0fSBhcyBzbG90KSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgICAgICBlbHNlIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIG5leHRcblxuICAgIGxldCByZXBsYWNlIGgga2V5IGRhdGEgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIGxldCBsID0gaC5kYXRhLihpKSBpblxuICAgICAgaWYgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbCB0aGVuIGJlZ2luXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG4gICAgICBlbmRcblxuICAgIGxldCBtZW0gaCBrZXkgPVxuICAgICAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25ze2tleT1rOyBuZXh0fSAtPlxuICAgICAgICAgIEguZXF1YWwgayBrZXkgfHwgbWVtX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICAgIGxldCBpdGVyID0gaXRlclxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgPSBmaWx0ZXJfbWFwX2lucGxhY2VcbiAgICBsZXQgZm9sZCA9IGZvbGRcbiAgICBsZXQgbGVuZ3RoID0gbGVuZ3RoXG4gICAgbGV0IHN0YXRzID0gc3RhdHNcbiAgICBsZXQgdG9fc2VxID0gdG9fc2VxXG4gICAgbGV0IHRvX3NlcV9rZXlzID0gdG9fc2VxX2tleXNcbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyA9IHRvX3NlcV92YWx1ZXNcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKEg6IEhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuKCogUG9seW1vcnBoaWMgaGFzaCBmdW5jdGlvbi1iYXNlZCB0YWJsZXMgKilcbigqIENvZGUgaW5jbHVkZWQgYmVsb3cgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIHRvIGd1YXJkIGFnYWluc3QgYWNjaWRlbnRhbFxuICAgdXNlIC0gc2VlICMyMjAyICopXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDpcbiAgaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gaW50ID0gXCJjYW1sX2hhc2hcIiBbQEBub2FsbG9jXVxuXG5sZXQgaGFzaCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIDAgeFxubGV0IGhhc2hfcGFyYW0gbjEgbjIgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIG4xIG4yIDAgeFxubGV0IHNlZWRlZF9oYXNoIHNlZWQgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBzZWVkIHhcblxubGV0IGtleV9pbmRleCBoIGtleSA9XG4gIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0XG4gIHRoZW4gKHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkhhc2h0Ymw6IHVuc3VwcG9ydGVkIGhhc2ggdGFibGUgZm9ybWF0XCJcblxubGV0IGFkZCBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG5sZXQgcmVjIHJlbW92ZV9idWNrZXQgaCBpIGtleSBwcmVjID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgKClcbiAgfCAoQ29ucyB7a2V5PWs7IG5leHR9KSBhcyBjIC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiBiZWdpblxuICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBuZXh0XG4gICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICBlbmRcbiAgICAgIGVsc2UgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IGMgbmV4dFxuXG5sZXQgcmVtb3ZlIGgga2V5ID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IEVtcHR5IGguZGF0YS4oaSlcblxubGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICByYWlzZSBOb3RfZm91bmRcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxubGV0IGZpbmQgaCBrZXkgPVxuICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgazEgPSAwIHRoZW4gZDEgZWxzZVxuICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgaWYgY29tcGFyZSBrZXkgazIgPSAwIHRoZW4gZDIgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGszID0gMCB0aGVuIGQzIGVsc2UgZmluZF9yZWMga2V5IG5leHQzXG5cbmxldCByZWMgZmluZF9yZWNfb3B0IGtleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIE5vbmVcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBTb21lIGRhdGEgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHRcblxubGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgfCBFbXB0eSAtPiBOb25lXG4gIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrMSA9IDAgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMiA9IDAgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgaWYgY29tcGFyZSBrZXkgazMgPSAwIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxubGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIFtdXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIGRhdGEgOjogZmluZF9pbl9idWNrZXQgbmV4dFxuICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgcmVjIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHtrZXk9azsgbmV4dH0gYXMgc2xvdCkgLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgIGVsc2UgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbmV4dFxuXG5sZXQgcmVwbGFjZSBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gIGlmIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIGwgdGhlbiBiZWdpblxuICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuICBlbmRcblxubGV0IG1lbSBoIGtleSA9XG4gIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29uc3trZXk9azsgbmV4dH0gLT5cbiAgICAgIGNvbXBhcmUgayBrZXkgPSAwIHx8IG1lbV9pbl9idWNrZXQgbmV4dCBpblxuICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgYWRkX3NlcSB0YmwgaSA9XG4gIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxubGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgdGJsXG5cbmxldCByZWJ1aWxkID8ocmFuZG9tID0gIXJhbmRvbWl6ZWQpIGggPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgKEFycmF5Lmxlbmd0aCBoLmRhdGEpIGluXG4gIGxldCBzZWVkID1cbiAgICBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKVxuICAgIGVsc2UgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDQgdGhlbiBoLnNlZWRcbiAgICBlbHNlIDAgaW5cbiAgbGV0IGgnID0ge1xuICAgIHNpemUgPSBoLnNpemU7XG4gICAgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eTtcbiAgICBzZWVkID0gc2VlZDtcbiAgICBpbml0aWFsX3NpemUgPSBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNCB0aGVuIGguaW5pdGlhbF9zaXplIGVsc2Ugc1xuICB9IGluXG4gIGluc2VydF9hbGxfYnVja2V0cyAoa2V5X2luZGV4IGgnKSBmYWxzZSBoLmRhdGEgaCcuZGF0YTtcbiAgaCdcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIFdlYWsgYXJyYXkgb3BlcmF0aW9ucyAqKVxuXG50eXBlICEnYSB0XG5cbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiAnYSB0ID0gXCJjYW1sX3dlYWtfY3JlYXRlXCJcblxubGV0IGNyZWF0ZSBsID1cbiAgaWYgbm90ICgwIDw9IGwgJiYgbCA8PSBPYmouRXBoZW1lcm9uLm1heF9lcGhlX2xlbmd0aCkgdGhlblxuICAgIGludmFsaWRfYXJnKFwiV2Vhay5jcmVhdGVcIik7XG4gIGNyZWF0ZSBsXG5cbigqKiBudW1iZXIgb2YgYWRkaXRpb25hbCB2YWx1ZXMgaW4gYSB3ZWFrIHBvaW50ZXIgKilcbmxldCBhZGRpdGlvbmFsX3ZhbHVlcyA9IDJcblxubGV0IGxlbmd0aCB4ID0gT2JqLnNpemUoT2JqLnJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG5sZXQgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIG1zZyA9XG4gIGlmIG5vdCAoMCA8PSBvICYmIG8gPCBsZW5ndGggZSkgdGhlblxuICAgIGludmFsaWRfYXJnKG1zZylcblxuZXh0ZXJuYWwgc2V0JyA6ICdhIHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfa2V5XCJcbmV4dGVybmFsIHVuc2V0IDogJ2EgdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG5sZXQgc2V0IGUgbyB4ID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5zZXRcIjtcbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB1bnNldCBlIG9cbiAgfCBTb21lIHggLT4gc2V0JyBlIG8geFxuXG5leHRlcm5hbCBnZXQgOiAnYSB0IC0+IGludCAtPiAnYSBvcHRpb24gPSBcImNhbWxfd2Vha19nZXRcIlxubGV0IGdldCBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmdldFwiO1xuICBnZXQgZSBvXG5cbmV4dGVybmFsIGdldF9jb3B5IDogJ2EgdCAtPiBpbnQgLT4gJ2Egb3B0aW9uID0gXCJjYW1sX3dlYWtfZ2V0X2NvcHlcIlxubGV0IGdldF9jb3B5IGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuZ2V0X2NvcHlcIjtcbiAgZ2V0X2NvcHkgZSBvXG5cbmV4dGVybmFsIGNoZWNrIDogJ2EgdCAtPiBpbnQgLT4gYm9vbCA9IFwiY2FtbF93ZWFrX2NoZWNrXCJcbmxldCBjaGVjayBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmNoZWNrXCI7XG4gIGNoZWNrIGUgb1xuXG5leHRlcm5hbCBibGl0IDogJ2EgdCAtPiBpbnQgLT4gJ2EgdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfd2Vha19ibGl0XCJcblxuKCogYmxpdDogc3JjIHNyY29mZiBkc3QgZHN0b2ZmIGxlbiAqKVxubGV0IGJsaXQgZTEgbzEgZTIgbzIgbCA9XG4gIGlmIGwgPCAwIHx8IG8xIDwgMCB8fCBvMSA+IGxlbmd0aCBlMSAtIGxcbiAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICB0aGVuIGludmFsaWRfYXJnIFwiV2Vhay5ibGl0XCJcbiAgZWxzZSBpZiBsIDw+IDAgdGhlbiBibGl0IGUxIG8xIGUyIG8yIGxcblxubGV0IGZpbGwgYXIgb2ZzIGxlbiB4ID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhciAtIGxlblxuICB0aGVuIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiV2Vhay5maWxsXCIpXG4gIGVsc2UgYmVnaW5cbiAgICBmb3IgaSA9IG9mcyB0byAob2ZzICsgbGVuIC0gMSkgZG9cbiAgICAgIHNldCBhciBpIHhcbiAgICBkb25lXG4gIGVuZFxuXG5cbigqKiBXZWFrIGhhc2ggdGFibGVzICopXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcbiAgdHlwZSBkYXRhXG4gIHR5cGUgdFxuICB2YWwgY3JlYXRlIDogaW50IC0+IHRcbiAgdmFsIGNsZWFyIDogdCAtPiB1bml0XG4gIHZhbCBtZXJnZSA6IHQgLT4gZGF0YSAtPiBkYXRhXG4gIHZhbCBhZGQgOiB0IC0+IGRhdGEgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogdCAtPiBkYXRhIC0+IHVuaXRcbiAgdmFsIGZpbmQgOiB0IC0+IGRhdGEgLT4gZGF0YVxuICB2YWwgZmluZF9vcHQgOiB0IC0+IGRhdGEgLT4gZGF0YSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogdCAtPiBkYXRhIC0+IGRhdGEgbGlzdFxuICB2YWwgbWVtIDogdCAtPiBkYXRhIC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoZGF0YSAtPiB1bml0KSAtPiB0IC0+IHVuaXRcbiAgdmFsIGZvbGQgOiAoZGF0YSAtPiAnYSAtPiAnYSkgLT4gdCAtPiAnYSAtPiAnYVxuICB2YWwgY291bnQgOiB0IC0+IGludFxuICB2YWwgc3RhdHMgOiB0IC0+IGludCAqIGludCAqIGludCAqIGludCAqIGludCAqIGludFxuZW5kXG5cbm1vZHVsZSBNYWtlIChIIDogSGFzaHRibC5IYXNoZWRUeXBlKSA6IChTIHdpdGggdHlwZSBkYXRhID0gSC50KSA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egd2Vha190ID0gJ2EgdFxuICBsZXQgd2Vha19jcmVhdGUgPSBjcmVhdGVcbiAgbGV0IGVtcHR5YnVja2V0ID0gd2Vha19jcmVhdGUgMFxuXG4gIHR5cGUgZGF0YSA9IEgudFxuXG4gIHR5cGUgdCA9IHtcbiAgICBtdXRhYmxlIHRhYmxlIDogZGF0YSB3ZWFrX3QgYXJyYXk7XG4gICAgbXV0YWJsZSBoYXNoZXMgOiBpbnQgYXJyYXkgYXJyYXk7XG4gICAgbXV0YWJsZSBsaW1pdCA6IGludDsgICAgICAgICAgICAgICAoKiBidWNrZXQgc2l6ZSBsaW1pdCAqKVxuICAgIG11dGFibGUgb3ZlcnNpemUgOiBpbnQ7ICAgICAgICAgICAgKCogbnVtYmVyIG9mIG92ZXJzaXplIGJ1Y2tldHMgKilcbiAgICBtdXRhYmxlIHJvdmVyIDogaW50OyAgICAgICAgICAgICAgICgqIGZvciBpbnRlcm5hbCBib29ra2VlcGluZyAqKVxuICB9XG5cbiAgbGV0IGdldF9pbmRleCB0IGggPSAoaCBsYW5kIG1heF9pbnQpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cbiAgbGV0IGxpbWl0ID0gN1xuICBsZXQgb3Zlcl9saW1pdCA9IDJcblxuICBsZXQgY3JlYXRlIHN6ID1cbiAgICBsZXQgc3ogPSBpZiBzeiA8IDcgdGhlbiA3IGVsc2Ugc3ogaW5cbiAgICBsZXQgc3ogPSBpZiBzeiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4gU3lzLm1heF9hcnJheV9sZW5ndGggZWxzZSBzeiBpblxuICAgIHtcbiAgICAgIHRhYmxlID0gQXJyYXkubWFrZSBzeiBlbXB0eWJ1Y2tldDtcbiAgICAgIGhhc2hlcyA9IEFycmF5Lm1ha2Ugc3ogW3wgfF07XG4gICAgICBsaW1pdCA9IGxpbWl0O1xuICAgICAgb3ZlcnNpemUgPSAwO1xuICAgICAgcm92ZXIgPSAwO1xuICAgIH1cblxuICBsZXQgY2xlYXIgdCA9XG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCB0LnRhYmxlIC0gMSBkb1xuICAgICAgdC50YWJsZS4oaSkgPC0gZW1wdHlidWNrZXQ7XG4gICAgICB0Lmhhc2hlcy4oaSkgPC0gW3wgfF07XG4gICAgZG9uZTtcbiAgICB0LmxpbWl0IDwtIGxpbWl0O1xuICAgIHQub3ZlcnNpemUgPC0gMFxuXG5cbiAgbGV0IGZvbGQgZiB0IGluaXQgPVxuICAgIGxldCByZWMgZm9sZF9idWNrZXQgaSBiIGFjY3UgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIChmIHYgYWNjdSlcbiAgICAgIHwgTm9uZSAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIGFjY3VcbiAgICBpblxuICAgIEFycmF5LmZvbGRfcmlnaHQgKGZvbGRfYnVja2V0IDApIHQudGFibGUgaW5pdFxuXG5cbiAgbGV0IGl0ZXIgZiB0ID1cbiAgICBsZXQgcmVjIGl0ZXJfYnVja2V0IGkgYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmIHY7IGl0ZXJfYnVja2V0IChpKzEpIGJcbiAgICAgIHwgTm9uZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBiXG4gICAgaW5cbiAgICBBcnJheS5pdGVyIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgaXRlcl93ZWFrIGYgdCA9XG4gICAgbGV0IHJlYyBpdGVyX2J1Y2tldCBpIGogYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggY2hlY2sgYiBpIHdpdGhcbiAgICAgIHwgdHJ1ZSAtPiBmIGIgdC5oYXNoZXMuKGopIGk7IGl0ZXJfYnVja2V0IChpKzEpIGogYlxuICAgICAgfCBmYWxzZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBqIGJcbiAgICBpblxuICAgIEFycmF5Lml0ZXJpIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgcmVjIGNvdW50X2J1Y2tldCBpIGIgYWNjdSA9XG4gICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgIGNvdW50X2J1Y2tldCAoaSsxKSBiIChhY2N1ICsgKGlmIGNoZWNrIGIgaSB0aGVuIDEgZWxzZSAwKSlcblxuXG4gIGxldCBjb3VudCB0ID1cbiAgICBBcnJheS5mb2xkX3JpZ2h0IChjb3VudF9idWNrZXQgMCkgdC50YWJsZSAwXG5cblxuICBsZXQgbmV4dF9zeiBuID0gSW50Lm1pbiAoMyAqIG4gLyAyICsgMykgU3lzLm1heF9hcnJheV9sZW5ndGhcbiAgbGV0IHByZXZfc3ogbiA9ICgobiAtIDMpICogMiArIDIpIC8gM1xuXG4gIGxldCB0ZXN0X3Nocmlua19idWNrZXQgdCA9XG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKHQucm92ZXIpIGluXG4gICAgbGV0IGhidWNrZXQgPSB0Lmhhc2hlcy4odC5yb3ZlcikgaW5cbiAgICBsZXQgbGVuID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCBwcmV2X2xlbiA9IHByZXZfc3ogbGVuIGluXG4gICAgbGV0IGxpdmUgPSBjb3VudF9idWNrZXQgMCBidWNrZXQgMCBpblxuICAgIGlmIGxpdmUgPD0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IHJlYyBsb29wIGkgaiA9XG4gICAgICAgIGlmIGogPj0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgICAgIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gbG9vcCAoaSArIDEpIGpcbiAgICAgICAgICBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBqIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIGJsaXQgYnVja2V0IGogYnVja2V0IGkgMTtcbiAgICAgICAgICAgIGhidWNrZXQuKGkpIDwtIGhidWNrZXQuKGopO1xuICAgICAgICAgICAgbG9vcCAoaSArIDEpIChqIC0gMSk7XG4gICAgICAgICAgZW5kIGVsc2UgbG9vcCBpIChqIC0gMSk7XG4gICAgICAgIGVuZDtcbiAgICAgIGluXG4gICAgICBsb29wIDAgKGxlbmd0aCBidWNrZXQgLSAxKTtcbiAgICAgIGlmIHByZXZfbGVuID0gMCB0aGVuIGJlZ2luXG4gICAgICAgIHQudGFibGUuKHQucm92ZXIpIDwtIGVtcHR5YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gW3wgfF07XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsZXQgbmV3YnVja2V0ID0gd2Vha19jcmVhdGUgcHJldl9sZW4gaW5cbiAgICAgICAgYmxpdCBidWNrZXQgMCBuZXdidWNrZXQgMCBwcmV2X2xlbjtcbiAgICAgICAgdC50YWJsZS4odC5yb3ZlcikgPC0gbmV3YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gQXJyYXkuc3ViIGhidWNrZXQgMCBwcmV2X2xlblxuICAgICAgZW5kO1xuICAgICAgaWYgbGVuID4gdC5saW1pdCAmJiBwcmV2X2xlbiA8PSB0LmxpbWl0IHRoZW4gdC5vdmVyc2l6ZSA8LSB0Lm92ZXJzaXplIC0gMTtcbiAgICBlbmQ7XG4gICAgdC5yb3ZlciA8LSAodC5yb3ZlciArIDEpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cblxuICBsZXQgcmVjIHJlc2l6ZSB0ID1cbiAgICBsZXQgb2xkbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbmV3bGVuID0gbmV4dF9zeiBvbGRsZW4gaW5cbiAgICBpZiBuZXdsZW4gPiBvbGRsZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IG5ld3QgPSBjcmVhdGUgbmV3bGVuIGluXG4gICAgICBsZXQgYWRkX3dlYWsgb2Igb2ggb2kgPVxuICAgICAgICBsZXQgc2V0dGVyIG5iIG5pIF8gPSBibGl0IG9iIG9pIG5iIG5pIDEgaW5cbiAgICAgICAgbGV0IGggPSBvaC4ob2kpIGluXG4gICAgICAgIGFkZF9hdXggbmV3dCBzZXR0ZXIgTm9uZSBoIChnZXRfaW5kZXggbmV3dCBoKTtcbiAgICAgIGluXG4gICAgICBpdGVyX3dlYWsgYWRkX3dlYWsgdDtcbiAgICAgIHQudGFibGUgPC0gbmV3dC50YWJsZTtcbiAgICAgIHQuaGFzaGVzIDwtIG5ld3QuaGFzaGVzO1xuICAgICAgdC5saW1pdCA8LSBuZXd0LmxpbWl0O1xuICAgICAgdC5vdmVyc2l6ZSA8LSBuZXd0Lm92ZXJzaXplO1xuICAgICAgdC5yb3ZlciA8LSB0LnJvdmVyIG1vZCBBcnJheS5sZW5ndGggbmV3dC50YWJsZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgdC5saW1pdCA8LSBtYXhfaW50OyAgICAgICAgICAgICAoKiBtYXhpbXVtIHNpemUgYWxyZWFkeSByZWFjaGVkICopXG4gICAgICB0Lm92ZXJzaXplIDwtIDA7XG4gICAgZW5kXG5cbiAgYW5kIGFkZF9hdXggdCBzZXR0ZXIgZCBoIGluZGV4ID1cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBuZXdzeiA9XG4gICAgICAgICAgSW50Lm1pbiAoMyAqIHN6IC8gMiArIDMpIChTeXMubWF4X2FycmF5X2xlbmd0aCAtIGFkZGl0aW9uYWxfdmFsdWVzKVxuICAgICAgICBpblxuICAgICAgICBpZiBuZXdzeiA8PSBzeiB0aGVuIGZhaWx3aXRoIFwiV2Vhay5NYWtlOiBoYXNoIGJ1Y2tldCBjYW5ub3QgZ3JvdyBtb3JlXCI7XG4gICAgICAgIGxldCBuZXdidWNrZXQgPSB3ZWFrX2NyZWF0ZSBuZXdzeiBpblxuICAgICAgICBsZXQgbmV3aGFzaGVzID0gQXJyYXkubWFrZSBuZXdzeiAwIGluXG4gICAgICAgIGJsaXQgYnVja2V0IDAgbmV3YnVja2V0IDAgc3o7XG4gICAgICAgIEFycmF5LmJsaXQgaGFzaGVzIDAgbmV3aGFzaGVzIDAgc3o7XG4gICAgICAgIHNldHRlciBuZXdidWNrZXQgc3ogZDtcbiAgICAgICAgbmV3aGFzaGVzLihzeikgPC0gaDtcbiAgICAgICAgdC50YWJsZS4oaW5kZXgpIDwtIG5ld2J1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKGluZGV4KSA8LSBuZXdoYXNoZXM7XG4gICAgICAgIGlmIHN6IDw9IHQubGltaXQgJiYgbmV3c3ogPiB0LmxpbWl0IHRoZW4gYmVnaW5cbiAgICAgICAgICB0Lm92ZXJzaXplIDwtIHQub3ZlcnNpemUgKyAxO1xuICAgICAgICAgIGZvciBfaSA9IDAgdG8gb3Zlcl9saW1pdCBkbyB0ZXN0X3Nocmlua19idWNrZXQgdCBkb25lO1xuICAgICAgICBlbmQ7XG4gICAgICAgIGlmIHQub3ZlcnNpemUgPiBBcnJheS5sZW5ndGggdC50YWJsZSAvIG92ZXJfbGltaXQgdGhlbiByZXNpemUgdDtcbiAgICAgIGVuZCBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gYmVnaW5cbiAgICAgICAgbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXR0ZXIgYnVja2V0IGkgZDtcbiAgICAgICAgaGFzaGVzLihpKSA8LSBoO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgYWRkIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGFkZF9hdXggdCBzZXQgKFNvbWUgZCkgaCAoZ2V0X2luZGV4IHQgaClcblxuXG4gIGxldCBmaW5kX29yIHQgZCBpZm5vdGZvdW5kID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gaWZub3Rmb3VuZCBoIGluZGV4XG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSB2IC0+IHZcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBtZXJnZSB0IGQgPVxuICAgIGZpbmRfb3IgdCBkIChmdW4gaCBpbmRleCAtPiBhZGRfYXV4IHQgc2V0IChTb21lIGQpIGggaW5kZXg7IGQpXG5cblxuICBsZXQgZmluZCB0IGQgPSBmaW5kX29yIHQgZCAoZnVuIF9oIF9pbmRleCAtPiByYWlzZSBOb3RfZm91bmQpXG5cbiAgbGV0IGZpbmRfb3B0IHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIE5vbmVcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIF8gYXMgdiAtPiB2XG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSlcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgZmluZF9zaGFkb3cgdCBkIGlmZm91bmQgaWZub3Rmb3VuZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGlmbm90Zm91bmRcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGQgLT4gaWZmb3VuZCBidWNrZXQgaVxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IHJlbW92ZSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biB3IGkgLT4gc2V0IHcgaSBOb25lKSAoKVxuXG5cbiAgbGV0IG1lbSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biBfdyBfaSAtPiB0cnVlKSBmYWxzZVxuXG5cbiAgbGV0IGZpbmRfYWxsIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgYWNjdSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gYWNjdVxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgdiAtPiBsb29wIChpICsgMSkgKHYgOjogYWNjdSlcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpIGFjY3VcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgaW5cbiAgICBsb29wIDAgW11cblxuXG4gIGxldCBzdGF0cyB0ID1cbiAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbGVucyA9IEFycmF5Lm1hcCBsZW5ndGggdC50YWJsZSBpblxuICAgIEFycmF5LnNvcnQgY29tcGFyZSBsZW5zO1xuICAgIGxldCB0b3RsZW4gPSBBcnJheS5mb2xkX2xlZnQgKCArICkgMCBsZW5zIGluXG4gICAgKGxlbiwgY291bnQgdCwgdG90bGVuLCBsZW5zLigwKSwgbGVucy4obGVuLzIpLCBsZW5zLihsZW4tMSkpXG5cblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEEgcHJldHR5LXByaW50aW5nIGZhY2lsaXR5IGFuZCBkZWZpbml0aW9uIG9mIGZvcm1hdHRlcnMgZm9yICdwYXJhbGxlbCdcbiAgIChpLmUuIHVucmVsYXRlZCBvciBpbmRlcGVuZGVudCkgcHJldHR5LXByaW50aW5nIG9uIG11bHRpcGxlIG91dCBjaGFubmVscy4gKilcblxuKCpcbiAgIFRoZSBwcmV0dHktcHJpbnRpbmcgZW5naW5lIGludGVybmFsIGRhdGEgc3RydWN0dXJlcy5cbiopXG5cbmxldCBpZCB4ID0geFxuXG4oKiBBIGRldm90ZWQgdHlwZSBmb3Igc2l6ZXMgdG8gYXZvaWQgY29uZnVzaW9uXG4gICBiZXR3ZWVuIHNpemVzIGFuZCBtZXJlIGludGVnZXJzLiAqKVxubW9kdWxlIFNpemUgOiBzaWdcbiAgdHlwZSB0XG5cbiAgdmFsIHRvX2ludCA6IHQgLT4gaW50XG4gIHZhbCBvZl9pbnQgOiBpbnQgLT4gdFxuICB2YWwgemVybyA6IHRcbiAgdmFsIHVua25vd24gOiB0XG4gIHZhbCBpc19rbm93biA6IHQgLT4gYm9vbFxuZW5kICA9IHN0cnVjdFxuICB0eXBlIHQgPSBpbnRcblxuICBsZXQgdG9faW50ID0gaWRcbiAgbGV0IG9mX2ludCA9IGlkXG4gIGxldCB6ZXJvID0gMFxuICBsZXQgdW5rbm93biA9IC0xXG4gIGxldCBpc19rbm93biBuID0gbiA+PSAwXG5lbmRcblxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRpbmcgYm94ZXMgZGVmaW5pdGlvbjpcbiAgIGEgcHJldHR5LXByaW50aW5nIGJveCBpcyBlaXRoZXJcbiAgIC0gaGJveDogaG9yaXpvbnRhbCBib3ggKG5vIGxpbmUgc3BsaXR0aW5nKVxuICAgLSB2Ym94OiB2ZXJ0aWNhbCBib3ggKGV2ZXJ5IGJyZWFrIGhpbnQgc3BsaXRzIHRoZSBsaW5lKVxuICAgLSBodmJveDogaG9yaXpvbnRhbC92ZXJ0aWNhbCBib3hcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIGJveCBpZiBpdCBmaXRzIG9uXG4gICAgICB0aGUgY3VycmVudCBsaW5lLCBvdGhlcndpc2UgdGhlIGJveCBiZWhhdmVzIGFzIGEgdmVydGljYWwgYm94KVxuICAgLSBob3Zib3g6IGhvcml6b250YWwgb3IgdmVydGljYWwgY29tcGFjdGluZyBib3hcbiAgICAgKHRoZSBib3ggaXMgY29tcGFjdGluZyBtYXRlcmlhbCwgcHJpbnRpbmcgYXMgbXVjaCBtYXRlcmlhbCBhcyBwb3NzaWJsZVxuICAgICAgb24gZXZlcnkgbGluZXMpXG4gICAtIGJveDogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBjb21wYWN0aW5nIGJveCB3aXRoIGVuaGFuY2VkIGJveCBzdHJ1Y3R1cmVcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGJveCBidXQgYnJlYWsgaGludHMgc3BsaXRcbiAgICAgIHRoZSBsaW5lIGlmIHNwbGl0dGluZyB3b3VsZCBtb3ZlIHRvIHRoZSBsZWZ0KVxuKilcbnR5cGUgYm94X3R5cGUgPSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuYmxvY2tfdHlwZSA9XG4gIHwgUHBfaGJveCB8IFBwX3Zib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCB8IFBwX2ZpdHNcblxuXG4oKiBUaGUgcHJldHR5LXByaW50aW5nIHRva2VucyBkZWZpbml0aW9uOlxuICAgYXJlIGVpdGhlciB0ZXh0IHRvIHByaW50IG9yIHByZXR0eSBwcmludGluZ1xuICAgZWxlbWVudHMgdGhhdCBkcml2ZSBpbmRlbnRhdGlvbiBhbmQgbGluZSBzcGxpdHRpbmcuICopXG50eXBlIHBwX3Rva2VuID1cbiAgfCBQcF90ZXh0IG9mIHN0cmluZyAgICAgICAgICAoKiBub3JtYWwgdGV4dCAqKVxuICB8IFBwX2JyZWFrIG9mIHsgICAgICAgICAgICAgICgqIGNvbXBsZXRlIGJyZWFrICopXG4gICAgICBmaXRzOiBzdHJpbmcgKiBpbnQgKiBzdHJpbmc7ICAgKCogbGluZSBpcyBub3Qgc3BsaXQgKilcbiAgICAgIGJyZWFrczogc3RyaW5nICogaW50ICogc3RyaW5nOyAoKiBsaW5lIGlzIHNwbGl0ICopXG4gICAgfVxuICB8IFBwX3RicmVhayBvZiBpbnQgKiBpbnQgICAgICgqIGdvIHRvIG5leHQgdGFidWxhdGlvbiAqKVxuICB8IFBwX3N0YWIgICAgICAgICAgICAgICAgICAgICgqIHNldCBhIHRhYnVsYXRpb24gKilcbiAgfCBQcF9iZWdpbiBvZiBpbnQgKiBib3hfdHlwZSAoKiBiZWdpbm5pbmcgb2YgYSBib3ggKilcbiAgfCBQcF9lbmQgICAgICAgICAgICAgICAgICAgICAoKiBlbmQgb2YgYSBib3ggKilcbiAgfCBQcF90YmVnaW4gb2YgdGJveCAgICAgICAgICAoKiBiZWdpbm5pbmcgb2YgYSB0YWJ1bGF0aW9uIGJveCAqKVxuICB8IFBwX3RlbmQgICAgICAgICAgICAgICAgICAgICgqIGVuZCBvZiBhIHRhYnVsYXRpb24gYm94ICopXG4gIHwgUHBfbmV3bGluZSAgICAgICAgICAgICAgICAgKCogdG8gZm9yY2UgYSBuZXdsaW5lIGluc2lkZSBhIGJveCAqKVxuICB8IFBwX2lmX25ld2xpbmUgICAgICAgICAgICAgICgqIHRvIGRvIHNvbWV0aGluZyBvbmx5IGlmIHRoaXMgdmVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgaGFzIGJlZW4gYnJva2VuICopXG4gIHwgUHBfb3Blbl90YWcgb2Ygc3RhZyAgICAgICAgICgqIG9wZW5pbmcgYSB0YWcgbmFtZSAqKVxuICB8IFBwX2Nsb3NlX3RhZyAgICAgICAgICAgICAgICgqIGNsb3NpbmcgdGhlIG1vc3QgcmVjZW50bHkgb3BlbiB0YWcgKilcblxuYW5kIHN0YWcgPSAuLlxuXG5hbmQgdGJveCA9IFBwX3Rib3ggb2YgaW50IGxpc3QgcmVmICAoKiBUYWJ1bGF0aW9uIGJveCAqKVxuXG50eXBlIHRhZyA9IHN0cmluZ1xudHlwZSBzdGFnICs9IFN0cmluZ190YWcgb2YgdGFnXG5cblxuKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlOlxuICAgcHJldHR5LXByaW50aW5nIG1hdGVyaWFsIGlzIG5vdCB3cml0dGVuIGluIHRoZSBvdXRwdXQgYXMgc29vbiBhcyBlbWl0dGVkO1xuICAgaW5zdGVhZCwgdGhlIG1hdGVyaWFsIGlzIHNpbXBseSByZWNvcmRlZCBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUsXG4gICB1bnRpbCB0aGUgZW5jbG9zaW5nIGJveCBoYXMgYSBrbm93biBjb21wdXRlZCBzaXplIGFuZCBwcm9wZXIgc3BsaXR0aW5nXG4gICBkZWNpc2lvbnMgY2FuIGJlIG1hZGUuXG5cbiAgIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBjb250YWlucyBmb3JtYXR0aW5nIGVsZW1lbnRzIHRvIGJlIHByaW50ZWQuXG4gICBFYWNoIGZvcm1hdHRpbmcgZWxlbWVudCBpcyBhIHR1cGxlIChzaXplLCB0b2tlbiwgbGVuZ3RoKSwgd2hlcmVcbiAgIC0gbGVuZ3RoIGlzIHRoZSBkZWNsYXJlZCBsZW5ndGggb2YgdGhlIHRva2VuLFxuICAgLSBzaXplIGlzIGVmZmVjdGl2ZSBzaXplIG9mIHRoZSB0b2tlbiB3aGVuIGl0IGlzIHByaW50ZWRcbiAgICAgKHNpemUgaXMgc2V0IHdoZW4gdGhlIHNpemUgb2YgdGhlIGJveCBpcyBrbm93biwgc28gdGhhdCBzaXplIG9mIGJyZWFrXG4gICAgICBoaW50cyBhcmUgZGVmaW5pdGl2ZSkuICopXG50eXBlIHBwX3F1ZXVlX2VsZW0gPSB7XG4gIG11dGFibGUgc2l6ZSA6IFNpemUudDtcbiAgdG9rZW4gOiBwcF90b2tlbjtcbiAgbGVuZ3RoIDogaW50O1xufVxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9xdWV1ZSA9IHBwX3F1ZXVlX2VsZW0gUXVldWUudFxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjazogc2Nhbm5pbmcgZWxlbWVudCBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9zY2FuX2VsZW0gPSB7XG4gIGxlZnRfdG90YWwgOiBpbnQ7ICgqIFZhbHVlIG9mIHBwX2xlZnRfdG90YWwgd2hlbiB0aGUgZWxlbWVudCB3YXMgZW5xdWV1ZWQuICopXG4gIHF1ZXVlX2VsZW0gOiBwcF9xdWV1ZV9lbGVtXG59XG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOlxuICAgdGhlIGZvcm1hdHRpbmcgc3RhY2sgY29udGFpbnMgdGhlIGRlc2NyaXB0aW9uIG9mIGFsbCB0aGUgY3VycmVudGx5IGFjdGl2ZVxuICAgYm94ZXM7IHRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrIGlzIHVzZWQgdG8gc3BsaXQgdGhlIGxpbmVzXG4gICB3aGlsZSBwcmludGluZyB0b2tlbnMuICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOiBmb3JtYXR0aW5nIHN0YWNrIGVsZW1lbnQgZGVmaW5pdGlvbi5cbiAgIEVhY2ggc3RhY2sgZWxlbWVudCBkZXNjcmliZXMgYSBwcmV0dHktcHJpbnRpbmcgYm94LiAqKVxudHlwZSBwcF9mb3JtYXRfZWxlbSA9IHsgYm94X3R5cGUgOiBib3hfdHlwZTsgd2lkdGggOiBpbnQgfVxuXG4oKiBUaGUgZm9ybWF0dGVyIGRlZmluaXRpb24uXG4gICBFYWNoIGZvcm1hdHRlciB2YWx1ZSBpcyBhIHByZXR0eS1wcmludGVyIGluc3RhbmNlIHdpdGggYWxsIGl0c1xuICAgbWFjaGluZXJ5LiAqKVxudHlwZSBmb3JtYXR0ZXIgPSB7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay4gKilcbiAgcHBfc2Nhbl9zdGFjayA6IHBwX3NjYW5fZWxlbSBTdGFjay50O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjay4gKilcbiAgcHBfZm9ybWF0X3N0YWNrIDogcHBfZm9ybWF0X2VsZW0gU3RhY2sudDtcbiAgcHBfdGJveF9zdGFjayA6IHRib3ggU3RhY2sudDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHNlbWFudGljcyB0YWcgc3RhY2suICopXG4gIHBwX3RhZ19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgcHBfbWFya19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgKCogVmFsdWUgb2YgcmlnaHQgbWFyZ2luLiAqKVxuICBtdXRhYmxlIHBwX21hcmdpbiA6IGludDtcbiAgKCogTWluaW1hbCBzcGFjZSBsZWZ0IGJlZm9yZSBtYXJnaW4sIHdoZW4gb3BlbmluZyBhIGJveC4gKilcbiAgbXV0YWJsZSBwcF9taW5fc3BhY2VfbGVmdCA6IGludDtcbiAgKCogTWF4aW11bSB2YWx1ZSBvZiBpbmRlbnRhdGlvbjpcbiAgICAgbm8gYm94IGNhbiBiZSBvcGVuZWQgZnVydGhlci4gKilcbiAgbXV0YWJsZSBwcF9tYXhfaW5kZW50IDogaW50O1xuICAoKiBTcGFjZSByZW1haW5pbmcgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbiAgbXV0YWJsZSBwcF9zcGFjZV9sZWZ0IDogaW50O1xuICAoKiBDdXJyZW50IHZhbHVlIG9mIGluZGVudGF0aW9uLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJlbnRfaW5kZW50IDogaW50O1xuICAoKiBUcnVlIHdoZW4gdGhlIGxpbmUgaGFzIGJlZW4gYnJva2VuIGJ5IHRoZSBwcmV0dHktcHJpbnRlci4gKilcbiAgbXV0YWJsZSBwcF9pc19uZXdfbGluZSA6IGJvb2w7XG4gICgqIFRvdGFsIHdpZHRoIG9mIHRva2VucyBhbHJlYWR5IHByaW50ZWQuICopXG4gIG11dGFibGUgcHBfbGVmdF90b3RhbCA6IGludDtcbiAgKCogVG90YWwgd2lkdGggb2YgdG9rZW5zIGV2ZXIgcHV0IGluIHF1ZXVlLiAqKVxuICBtdXRhYmxlIHBwX3JpZ2h0X3RvdGFsIDogaW50O1xuICAoKiBDdXJyZW50IG51bWJlciBvZiBvcGVuIGJveGVzLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJfZGVwdGggOiBpbnQ7XG4gICgqIE1heGltdW0gbnVtYmVyIG9mIGJveGVzIHdoaWNoIGNhbiBiZSBzaW11bHRhbmVvdXNseSBvcGVuLiAqKVxuICBtdXRhYmxlIHBwX21heF9ib3hlcyA6IGludDtcbiAgKCogRWxsaXBzaXMgc3RyaW5nLiAqKVxuICBtdXRhYmxlIHBwX2VsbGlwc2lzIDogc3RyaW5nO1xuICAoKiBPdXRwdXQgZnVuY3Rpb24uICopXG4gIG11dGFibGUgcHBfb3V0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXQ7XG4gICgqIEZsdXNoaW5nIGZ1bmN0aW9uLiAqKVxuICBtdXRhYmxlIHBwX291dF9mbHVzaCA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIG5ldyBsaW5lcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfbmV3bGluZSA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIGJyZWFrIGhpbnRzIHNwYWNlcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBpbmRlbnRhdGlvbiBvZiBuZXcgbGluZXMuICopXG4gIG11dGFibGUgcHBfb3V0X2luZGVudCA6IGludCAtPiB1bml0O1xuICAoKiBBcmUgdGFncyBwcmludGVkID8gKilcbiAgbXV0YWJsZSBwcF9wcmludF90YWdzIDogYm9vbDtcbiAgKCogQXJlIHRhZ3MgbWFya2VkID8gKilcbiAgbXV0YWJsZSBwcF9tYXJrX3RhZ3MgOiBib29sO1xuICAoKiBGaW5kIG9wZW5pbmcgYW5kIGNsb3NpbmcgbWFya2VycyBvZiB0YWdzLiAqKVxuICBtdXRhYmxlIHBwX21hcmtfb3Blbl90YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbXV0YWJsZSBwcF9tYXJrX2Nsb3NlX3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtdXRhYmxlIHBwX3ByaW50X29wZW5fdGFnIDogc3RhZyAtPiB1bml0O1xuICBtdXRhYmxlIHBwX3ByaW50X2Nsb3NlX3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxuICBwcF9xdWV1ZSA6IHBwX3F1ZXVlO1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgc3BlY2lmaWMgdGFnIGhhbmRsaW5nIGZ1bmN0aW9ucy4gKilcbnR5cGUgZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID0ge1xuICBtYXJrX29wZW5fc3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3N0YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgcHJpbnRfb3Blbl9zdGFnIDogc3RhZyAtPiB1bml0O1xuICBwcmludF9jbG9zZV9zdGFnIDogc3RhZyAtPiB1bml0O1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgZnVuY3Rpb25zIHRvIG91dHB1dCBtYXRlcmlhbC4gKilcbnR5cGUgZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPSB7XG4gIG91dF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0O1xuICBvdXRfZmx1c2ggOiB1bml0IC0+IHVuaXQ7XG4gIG91dF9uZXdsaW5lIDogdW5pdCAtPiB1bml0O1xuICBvdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gIG91dF9pbmRlbnQgOiBpbnQgLT4gdW5pdDtcbn1cblxuXG4oKlxuXG4gIEF1eGlsaWFyaWVzIGFuZCBiYXNpYyBmdW5jdGlvbnMuXG5cbiopXG5cbigqIEVudGVyIGEgdG9rZW4gaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxubGV0IHBwX2VucXVldWUgc3RhdGUgdG9rZW4gPVxuICBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSBzdGF0ZS5wcF9yaWdodF90b3RhbCArIHRva2VuLmxlbmd0aDtcbiAgUXVldWUuYWRkIHRva2VuIHN0YXRlLnBwX3F1ZXVlXG5cblxubGV0IHBwX2NsZWFyX3F1ZXVlIHN0YXRlID1cbiAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSAxOyBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSAxO1xuICBRdWV1ZS5jbGVhciBzdGF0ZS5wcF9xdWV1ZVxuXG5cbigqIFBwX2luZmluaXR5OiBsYXJnZSB2YWx1ZSBmb3IgZGVmYXVsdCB0b2tlbnMgc2l6ZS5cblxuICAgUHBfaW5maW5pdHkgaXMgZG9jdW1lbnRlZCBhcyBiZWluZyBncmVhdGVyIHRoYW4gMWUxMDsgdG8gYXZvaWRcbiAgIGNvbmZ1c2lvbiBhYm91dCB0aGUgd29yZCAnZ3JlYXRlcicsIHdlIGNob29zZSBwcF9pbmZpbml0eSBncmVhdGVyXG4gICB0aGFuIDFlMTAgKyAxOyBmb3IgY29ycmVjdCBoYW5kbGluZyBvZiB0ZXN0cyBpbiB0aGUgYWxnb3JpdGhtLFxuICAgcHBfaW5maW5pdHkgbXVzdCBiZSBldmVuIG9uZSBtb3JlIHRoYW4gMWUxMCArIDE7IGxldCdzIHN0YW5kIG9uIHRoZVxuICAgc2FmZSBzaWRlIGJ5IGNob29zaW5nIDEuZTEwKzEwLlxuXG4gICBQcF9pbmZpbml0eSBjb3VsZCBwcm9iYWJseSBiZSAxMDczNzQxODIzIHRoYXQgaXMgMl4zMCAtIDEsIHRoYXQgaXNcbiAgIHRoZSBtaW5pbWFsIHVwcGVyIGJvdW5kIGZvciBpbnRlZ2Vyczsgbm93IHRoYXQgbWF4X2ludCBpcyBkZWZpbmVkLFxuICAgdGhpcyBsaW1pdCBjb3VsZCBhbHNvIGJlIGRlZmluZWQgYXMgbWF4X2ludCAtIDEuXG5cbiAgIEhvd2V2ZXIsIGJlZm9yZSBzZXR0aW5nIHBwX2luZmluaXR5IHRvIHNvbWV0aGluZyBhcm91bmQgbWF4X2ludCwgd2VcbiAgIG11c3QgY2FyZWZ1bGx5IGRvdWJsZS1jaGVjayBhbGwgdGhlIGludGVnZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25zXG4gICB0aGF0IGludm9sdmUgcHBfaW5maW5pdHksIHNpbmNlIGFueSBvdmVyZmxvdyB3b3VsZCB3cmVjayBoYXZvYyB0aGVcbiAgIHByZXR0eS1wcmludGluZyBhbGdvcml0aG0ncyBpbnZhcmlhbnRzLiBHaXZlbiB0aGF0IHRoaXMgYXJpdGhtZXRpY1xuICAgY29ycmVjdG5lc3MgY2hlY2sgaXMgZGlmZmljdWx0IGFuZCBlcnJvciBwcm9uZSBhbmQgZ2l2ZW4gdGhhdCAxZTEwXG4gICArIDEgaXMgaW4gcHJhY3RpY2UgbGFyZ2UgZW5vdWdoLCB0aGVyZSBpcyBubyBuZWVkIHRvIGF0dGVtcHQgdG8gc2V0XG4gICBwcF9pbmZpbml0eSB0byB0aGUgdGhlb3JldGljYWxseSBtYXhpbXVtIGxpbWl0LiBJdCBpcyBub3Qgd29ydGggdGhlXG4gICBidXJkZW4gISAqKVxubGV0IHBwX2luZmluaXR5ID0gMTAwMDAwMDAxMFxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIGZvciB0aGUgZm9ybWF0dGVyLiAqKVxubGV0IHBwX291dHB1dF9zdHJpbmcgc3RhdGUgcyA9IHN0YXRlLnBwX291dF9zdHJpbmcgcyAwIChTdHJpbmcubGVuZ3RoIHMpXG5hbmQgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGUgPSBzdGF0ZS5wcF9vdXRfbmV3bGluZSAoKVxuYW5kIHBwX291dHB1dF9zcGFjZXMgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9zcGFjZXMgblxuYW5kIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9pbmRlbnQgblxuXG4oKiBGb3JtYXQgYSB0ZXh0dWFsIHRva2VuICopXG5sZXQgZm9ybWF0X3BwX3RleHQgc3RhdGUgc2l6ZSB0ZXh0ID1cbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gc2l6ZTtcbiAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSB0ZXh0O1xuICBzdGF0ZS5wcF9pc19uZXdfbGluZSA8LSBmYWxzZVxuXG4oKiBGb3JtYXQgYSBzdHJpbmcgYnkgaXRzIGxlbmd0aCwgaWYgbm90IGVtcHR5ICopXG5sZXQgZm9ybWF0X3N0cmluZyBzdGF0ZSBzID1cbiAgaWYgcyA8PiBcIlwiIHRoZW4gZm9ybWF0X3BwX3RleHQgc3RhdGUgKFN0cmluZy5sZW5ndGggcykgc1xuXG4oKiBUbyBmb3JtYXQgYSBicmVhaywgaW5kZW50aW5nIGEgbmV3IGxpbmUuICopXG5sZXQgYnJlYWtfbmV3X2xpbmUgc3RhdGUgKGJlZm9yZSwgb2Zmc2V0LCBhZnRlcikgd2lkdGggPVxuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGJlZm9yZTtcbiAgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGU7XG4gIHN0YXRlLnBwX2lzX25ld19saW5lIDwtIHRydWU7XG4gIGxldCBpbmRlbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSB3aWR0aCArIG9mZnNldCBpblxuICAoKiBEb24ndCBpbmRlbnQgbW9yZSB0aGFuIHBwX21heF9pbmRlbnQuICopXG4gIGxldCByZWFsX2luZGVudCA9IEludC5taW4gc3RhdGUucHBfbWF4X2luZGVudCBpbmRlbnQgaW5cbiAgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPC0gcmVhbF9pbmRlbnQ7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYWZ0ZXJcblxuXG4oKiBUbyBmb3JjZSBhIGxpbmUgYnJlYWsgaW5zaWRlIGEgYm94OiBubyBvZmZzZXQgaXMgYWRkZWQuICopXG5sZXQgYnJlYWtfbGluZSBzdGF0ZSB3aWR0aCA9IGJyZWFrX25ld19saW5lIHN0YXRlIChcIlwiLCAwLCBcIlwiKSB3aWR0aFxuXG4oKiBUbyBmb3JtYXQgYSBicmVhayB0aGF0IGZpdHMgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbmxldCBicmVha19zYW1lX2xpbmUgc3RhdGUgKGJlZm9yZSwgd2lkdGgsIGFmdGVyKSA9XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYmVmb3JlO1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgLSB3aWR0aDtcbiAgcHBfb3V0cHV0X3NwYWNlcyBzdGF0ZSB3aWR0aDtcbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBhZnRlclxuXG5cbigqIFRvIGluZGVudCBubyBtb3JlIHRoYW4gcHBfbWF4X2luZGVudCwgaWYgb25lIHRyaWVzIHRvIG9wZW4gYSBib3hcbiAgIGJleW9uZCBwcF9tYXhfaW5kZW50LCB0aGVuIHRoZSBib3ggaXMgcmVqZWN0ZWQgb24gdGhlIGxlZnRcbiAgIGJ5IHNpbXVsYXRpbmcgYSBicmVhay4gKilcbmxldCBwcF9mb3JjZV9icmVha19saW5lIHN0YXRlID1cbiAgbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGVcbiAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICBpZiB3aWR0aCA+IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlblxuICAgICAgbWF0Y2ggYm94X3R5cGUgd2l0aFxuICAgICAgfCBQcF9maXRzIHwgUHBfaGJveCAtPiAoKVxuICAgICAgfCBQcF92Ym94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggLT4gYnJlYWtfbGluZSBzdGF0ZSB3aWR0aFxuXG5cbigqIFRvIHNraXAgYSB0b2tlbiwgaWYgdGhlIHByZXZpb3VzIGxpbmUgaGFzIGJlZW4gYnJva2VuLiAqKVxubGV0IHBwX3NraXBfdG9rZW4gc3RhdGUgPVxuICBtYXRjaCBRdWV1ZS50YWtlX29wdCBzdGF0ZS5wcF9xdWV1ZSB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBwcmludF9pZl9uZXdsaW5lIG11c3QgaGF2ZSBiZWVuIHRoZSBsYXN0IHByaW50aW5nIGNvbW1hbmQgKilcbiAgfCBTb21lIHsgc2l6ZTsgbGVuZ3RoOyBfIH0gLT5cbiAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIHN0YXRlLnBwX2xlZnRfdG90YWwgLSBsZW5ndGg7XG4gICAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0ICsgU2l6ZS50b19pbnQgc2l6ZVxuXG5cbigqXG5cbiAgVGhlIG1haW4gcHJldHR5IHByaW50aW5nIGZ1bmN0aW9ucy5cblxuKilcblxuKCogRm9ybWF0dGluZyBhIHRva2VuIHdpdGggYSBnaXZlbiBzaXplLiAqKVxubGV0IGZvcm1hdF9wcF90b2tlbiBzdGF0ZSBzaXplID0gZnVuY3Rpb25cblxuICB8IFBwX3RleHQgcyAtPlxuICAgIGZvcm1hdF9wcF90ZXh0IHN0YXRlIHNpemUgc1xuXG4gIHwgUHBfYmVnaW4gKG9mZiwgdHkpIC0+XG4gICAgbGV0IGluc2VydGlvbl9wb2ludCA9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQgaW5cbiAgICBpZiBpbnNlcnRpb25fcG9pbnQgPiBzdGF0ZS5wcF9tYXhfaW5kZW50IHRoZW5cbiAgICAgICgqIGNhbiBub3Qgb3BlbiBhIGJveCByaWdodCB0aGVyZS4gKilcbiAgICAgIGJlZ2luIHBwX2ZvcmNlX2JyZWFrX2xpbmUgc3RhdGUgZW5kO1xuICAgIGxldCB3aWR0aCA9IHN0YXRlLnBwX3NwYWNlX2xlZnQgLSBvZmYgaW5cbiAgICBsZXQgYm94X3R5cGUgPVxuICAgICAgbWF0Y2ggdHkgd2l0aFxuICAgICAgfCBQcF92Ym94IC0+IFBwX3Zib3hcbiAgICAgIHwgUHBfaGJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IHwgUHBfZml0cyAtPlxuICAgICAgICBpZiBzaXplID4gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuIHR5IGVsc2UgUHBfZml0cyBpblxuICAgIFN0YWNrLnB1c2ggeyBib3hfdHlwZTsgd2lkdGggfSBzdGF0ZS5wcF9mb3JtYXRfc3RhY2tcblxuICB8IFBwX2VuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHw+IGlnbm9yZVxuXG4gIHwgUHBfdGJlZ2luIChQcF90Ym94IF8gYXMgdGJveCkgLT5cbiAgICBTdGFjay5wdXNoIHRib3ggc3RhdGUucHBfdGJveF9zdGFja1xuXG4gIHwgUHBfdGVuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB8PiBpZ25vcmVcblxuICB8IFBwX3N0YWIgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIHRhYnVsYXRpb24gYm94LiAqKVxuICAgIHwgU29tZSAoUHBfdGJveCB0YWJzKSAtPlxuICAgICAgbGV0IHJlYyBhZGRfdGFiIG4gPSBmdW5jdGlvblxuICAgICAgICB8IFtdIC0+IFtuXVxuICAgICAgICB8IHggOjogbCBhcyBscyAtPiBpZiBuIDwgeCB0aGVuIG4gOjogbHMgZWxzZSB4IDo6IGFkZF90YWIgbiBsIGluXG4gICAgICB0YWJzIDo9IGFkZF90YWIgKHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQpICF0YWJzXG4gICAgZW5kXG5cbiAgfCBQcF90YnJlYWsgKG4sIG9mZikgLT5cbiAgICBsZXQgaW5zZXJ0aW9uX3BvaW50ID0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gdGFidWxhdGlvbiBib3guICopXG4gICAgfCBTb21lIChQcF90Ym94IHRhYnMpIC0+XG4gICAgICBsZXQgdGFiID1cbiAgICAgICAgbWF0Y2ggIXRhYnMgd2l0aFxuICAgICAgICB8IFtdIC0+IGluc2VydGlvbl9wb2ludFxuICAgICAgICB8IGZpcnN0IDo6IF8gLT5cbiAgICAgICAgICBsZXQgcmVjIGZpbmQgPSBmdW5jdGlvblxuICAgICAgICAgICAgfCBoZWFkIDo6IHRhaWwgLT5cbiAgICAgICAgICAgICAgaWYgaGVhZCA+PSBpbnNlcnRpb25fcG9pbnQgdGhlbiBoZWFkIGVsc2UgZmluZCB0YWlsXG4gICAgICAgICAgICB8IFtdIC0+IGZpcnN0IGluXG4gICAgICAgICAgZmluZCAhdGFicyBpblxuICAgICAgbGV0IG9mZnNldCA9IHRhYiAtIGluc2VydGlvbl9wb2ludCBpblxuICAgICAgaWYgb2Zmc2V0ID49IDBcbiAgICAgIHRoZW4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIChcIlwiLCBvZmZzZXQgKyBuLCBcIlwiKVxuICAgICAgZWxzZSBicmVha19uZXdfbGluZSBzdGF0ZSAoXCJcIiwgdGFiICsgb2ZmLCBcIlwiKSBzdGF0ZS5wcF9tYXJnaW5cbiAgICBlbmRcblxuICB8IFBwX25ld2xpbmUgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+IHBwX291dHB1dF9uZXdsaW5lIHN0YXRlICgqIE5vIG9wZW4gYm94LiAqKVxuICAgIHwgU29tZSB7IHdpZHRoOyBffSAtPiBicmVha19saW5lIHN0YXRlIHdpZHRoXG4gICAgZW5kXG5cbiAgfCBQcF9pZl9uZXdsaW5lIC0+XG4gICAgaWYgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgIT0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgIHRoZW4gcHBfc2tpcF90b2tlbiBzdGF0ZVxuXG4gIHwgUHBfYnJlYWsgeyBmaXRzOyBicmVha3MgfSAtPlxuICAgIGxldCBiZWZvcmUsIG9mZiwgXyA9IGJyZWFrcyBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiBib3guICopXG4gICAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICAgIGJlZ2luIG1hdGNoIGJveF90eXBlIHdpdGhcbiAgICAgIHwgUHBfaG92Ym94IC0+XG4gICAgICAgIGlmIHNpemUgKyBTdHJpbmcubGVuZ3RoIGJlZm9yZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgICAgZWxzZSBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF9ib3ggLT5cbiAgICAgICAgKCogSGF2ZSB0aGUgbGluZSBqdXN0IGJlZW4gYnJva2VuIGhlcmUgPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9pc19uZXdfbGluZSB0aGVuIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzIGVsc2VcbiAgICAgICAgaWYgc2l6ZSArIFN0cmluZy5sZW5ndGggYmVmb3JlID4gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoIGVsc2VcbiAgICAgICAgKCogYnJlYWsgdGhlIGxpbmUgaGVyZSBsZWFkcyB0byBuZXcgaW5kZW50YXRpb24gPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA+IHN0YXRlLnBwX21hcmdpbiAtIHdpZHRoICsgb2ZmXG4gICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICAgIGVsc2UgYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfaHZib3ggLT4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICB8IFBwX2ZpdHMgLT4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfdmJveCAtPiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgIHwgUHBfaGJveCAtPiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgZW5kXG4gICAgZW5kXG5cbiAgIHwgUHBfb3Blbl90YWcgdGFnX25hbWUgLT5cbiAgICAgbGV0IG1hcmtlciA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWcgdGFnX25hbWUgaW5cbiAgICAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBtYXJrZXI7XG4gICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfbWFya19zdGFja1xuXG4gICB8IFBwX2Nsb3NlX3RhZyAtPlxuICAgICBiZWdpbiBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX21hcmtfc3RhY2sgd2l0aFxuICAgICB8IE5vbmUgLT4gKCkgKCogTm8gbW9yZSB0YWcgdG8gY2xvc2UuICopXG4gICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgIGxldCBtYXJrZXIgPSBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyB0YWdfbmFtZSBpblxuICAgICAgIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgbWFya2VyXG4gICAgIGVuZFxuXG5cbigqIFByaW50IGlmIHRva2VuIHNpemUgaXMga25vd24gZWxzZSBwcmludGluZyBpcyBkZWxheWVkLlxuICAgUHJpbnRpbmcgaXMgZGVsYXllZCB3aGVuIHRoZSB0ZXh0IHdhaXRpbmcgaW4gdGhlIHF1ZXVlIHJlcXVpcmVzXG4gICBtb3JlIHJvb20gdG8gZm9ybWF0IHRoYW4gZXhpc3RzIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG5sZXQgcmVjIGFkdmFuY2VfbGVmdCBzdGF0ZSA9XG4gIG1hdGNoIFF1ZXVlLnBlZWtfb3B0IHN0YXRlLnBwX3F1ZXVlIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIE5vIHRva2VucyB0byBwcmludCAqKVxuICB8IFNvbWUgeyBzaXplOyB0b2tlbjsgbGVuZ3RoIH0gLT5cbiAgICBsZXQgcGVuZGluZ19jb3VudCA9IHN0YXRlLnBwX3JpZ2h0X3RvdGFsIC0gc3RhdGUucHBfbGVmdF90b3RhbCBpblxuICAgIGlmIFNpemUuaXNfa25vd24gc2l6ZSB8fCBwZW5kaW5nX2NvdW50ID49IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlbiBiZWdpblxuICAgICAgUXVldWUudGFrZSBzdGF0ZS5wcF9xdWV1ZSB8PiBpZ25vcmU7ICgqIE5vdCBlbXB0eTogd2UgcGVlayBpbnRvIGl0ICopXG4gICAgICBsZXQgc2l6ZSA9IGlmIFNpemUuaXNfa25vd24gc2l6ZSB0aGVuIFNpemUudG9faW50IHNpemUgZWxzZSBwcF9pbmZpbml0eSBpblxuICAgICAgZm9ybWF0X3BwX3Rva2VuIHN0YXRlIHNpemUgdG9rZW47XG4gICAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIGxlbmd0aCArIHN0YXRlLnBwX2xlZnRfdG90YWw7XG4gICAgICAoYWR2YW5jZV9sZWZ0IFtAdGFpbGNhbGxdKSBzdGF0ZVxuICAgIGVuZFxuXG5cbigqIFRvIGVucXVldWUgYSB0b2tlbiA6IHRyeSB0byBhZHZhbmNlLiAqKVxubGV0IGVucXVldWVfYWR2YW5jZSBzdGF0ZSB0b2sgPSBwcF9lbnF1ZXVlIHN0YXRlIHRvazsgYWR2YW5jZV9sZWZ0IHN0YXRlXG5cblxuKCogVG8gZW5xdWV1ZSBzdHJpbmdzLiAqKVxubGV0IGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIHNpemUgcyA9XG4gIGVucXVldWVfYWR2YW5jZSBzdGF0ZSB7IHNpemU7IHRva2VuID0gUHBfdGV4dCBzOyBsZW5ndGggPSBTaXplLnRvX2ludCBzaXplIH1cblxuXG5sZXQgZW5xdWV1ZV9zdHJpbmcgc3RhdGUgcyA9XG4gIGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIChTaXplLm9mX2ludCAoU3RyaW5nLmxlbmd0aCBzKSkgc1xuXG5cbigqIFJvdXRpbmVzIGZvciBzY2FuIHN0YWNrXG4gICBkZXRlcm1pbmUgc2l6ZSBvZiBib3hlcy4gKilcblxuKCogVGhlIHNjYW5fc3RhY2sgaXMgbmV2ZXIgZW1wdHkuICopXG5sZXQgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YWNrID1cbiAgU3RhY2suY2xlYXIgc3RhY2s7XG4gIGxldCBxdWV1ZV9lbGVtID0geyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX3RleHQgXCJcIjsgbGVuZ3RoID0gMCB9IGluXG4gIFN0YWNrLnB1c2ggeyBsZWZ0X3RvdGFsID0gLTE7IHF1ZXVlX2VsZW0gfSBzdGFja1xuXG4oKiBTZXR0aW5nIHRoZSBzaXplIG9mIGJveGVzIG9uIHNjYW4gc3RhY2s6XG4gICBpZiB0eSA9IHRydWUgdGhlbiBzaXplIG9mIGJyZWFrIGlzIHNldCBlbHNlIHNpemUgb2YgYm94IGlzIHNldDtcbiAgIGluIGVhY2ggY2FzZSBwcF9zY2FuX3N0YWNrIGlzIHBvcHBlZC5cblxuICAgTm90ZTpcbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gc2NhbiBzdGFjayBpcyBleGhhdXN0aXZlLCBzaW5jZSBzY2FuX3N0YWNrIGlzIG5ldmVyXG4gICBlbXB0eS5cbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gdG9rZW4gaW4gc2NhbiBzdGFjayBpcyBhbHNvIGV4aGF1c3RpdmUsXG4gICBzaW5jZSBzY2FuX3B1c2ggaXMgdXNlZCBvbiBicmVha3MgYW5kIG9wZW5pbmcgb2YgYm94ZXMuICopXG5sZXQgc2V0X3NpemUgc3RhdGUgdHkgPVxuICBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogc2Nhbl9zdGFjayBpcyBuZXZlciBlbXB0eS4gKilcbiAgfCBTb21lIHsgbGVmdF90b3RhbDsgcXVldWVfZWxlbSB9IC0+XG4gICAgbGV0IHNpemUgPSBTaXplLnRvX2ludCBxdWV1ZV9lbGVtLnNpemUgaW5cbiAgICAoKiB0ZXN0IGlmIHNjYW4gc3RhY2sgY29udGFpbnMgYW55IGRhdGEgdGhhdCBpcyBub3Qgb2Jzb2xldGUuICopXG4gICAgaWYgbGVmdF90b3RhbCA8IHN0YXRlLnBwX2xlZnRfdG90YWwgdGhlblxuICAgICAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2tcbiAgICBlbHNlXG4gICAgICBtYXRjaCBxdWV1ZV9lbGVtLnRva2VuIHdpdGhcbiAgICAgIHwgUHBfYnJlYWsgXyB8IFBwX3RicmVhayAoXywgXykgLT5cbiAgICAgICAgaWYgdHkgdGhlbiBiZWdpblxuICAgICAgICAgIHF1ZXVlX2VsZW0uc2l6ZSA8LSBTaXplLm9mX2ludCAoc3RhdGUucHBfcmlnaHRfdG90YWwgKyBzaXplKTtcbiAgICAgICAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgfD4gaWdub3JlXG4gICAgICAgIGVuZFxuICAgICAgfCBQcF9iZWdpbiAoXywgXykgLT5cbiAgICAgICAgaWYgbm90IHR5IHRoZW4gYmVnaW5cbiAgICAgICAgICBxdWV1ZV9lbGVtLnNpemUgPC0gU2l6ZS5vZl9pbnQgKHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgc2l6ZSk7XG4gICAgICAgICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHw+IGlnbm9yZVxuICAgICAgICBlbmRcbiAgICAgIHwgUHBfdGV4dCBfIHwgUHBfc3RhYiB8IFBwX3RiZWdpbiBfIHwgUHBfdGVuZCB8IFBwX2VuZFxuICAgICAgfCBQcF9uZXdsaW5lIHwgUHBfaWZfbmV3bGluZSB8IFBwX29wZW5fdGFnIF8gfCBQcF9jbG9zZV90YWcgLT5cbiAgICAgICAgKCkgKCogc2Nhbl9wdXNoIGlzIG9ubHkgdXNlZCBmb3IgYnJlYWtzIGFuZCBib3hlcy4gKilcblxuXG4oKiBQdXNoIGEgdG9rZW4gb24gcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suXG4gICBJZiBiIGlzIHRydWUgc2V0X3NpemUgaXMgY2FsbGVkLiAqKVxubGV0IHNjYW5fcHVzaCBzdGF0ZSBiIHRva2VuID1cbiAgcHBfZW5xdWV1ZSBzdGF0ZSB0b2tlbjtcbiAgaWYgYiB0aGVuIHNldF9zaXplIHN0YXRlIHRydWU7XG4gIGxldCBlbGVtID0geyBsZWZ0X3RvdGFsID0gc3RhdGUucHBfcmlnaHRfdG90YWw7IHF1ZXVlX2VsZW0gPSB0b2tlbiB9IGluXG4gIFN0YWNrLnB1c2ggZWxlbSBzdGF0ZS5wcF9zY2FuX3N0YWNrXG5cblxuKCogVG8gb3BlbiBhIG5ldyBib3ggOlxuICAgdGhlIHVzZXIgbWF5IHNldCB0aGUgZGVwdGggYm91bmQgcHBfbWF4X2JveGVzXG4gICBhbnkgdGV4dCBuZXN0ZWQgZGVlcGVyIGlzIHByaW50ZWQgYXMgdGhlIGVsbGlwc2lzIHN0cmluZy4gKilcbmxldCBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IGJyX3R5ID1cbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoICsgMTtcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF9iZWdpbiAoaW5kZW50LCBicl90eSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSBmYWxzZSBlbGVtIGVsc2VcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuICB0aGVuIGVucXVldWVfc3RyaW5nIHN0YXRlIHN0YXRlLnBwX2VsbGlwc2lzXG5cblxuKCogVGhlIGJveCB3aGljaCBpcyBhbHdheXMgb3Blbi4gKilcbmxldCBwcF9vcGVuX3N5c19ib3ggc3RhdGUgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgMCBQcF9ob3Zib3hcblxuKCogQ2xvc2UgYSBib3gsIHNldHRpbmcgc2l6ZXMgb2YgaXRzIHN1YiBib3hlcy4gKilcbmxldCBwcF9jbG9zZV9ib3ggc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSB0aGVuXG4gIGJlZ2luXG4gICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgYmVnaW5cbiAgICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2VuZDsgbGVuZ3RoID0gMCB9O1xuICAgICAgc2V0X3NpemUgc3RhdGUgdHJ1ZTsgc2V0X3NpemUgc3RhdGUgZmFsc2VcbiAgICBlbmQ7XG4gICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMTtcbiAgZW5kXG5cblxuKCogT3BlbiBhIHRhZywgcHVzaGluZyBpdCBvbiB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX29wZW5fc3RhZyBzdGF0ZSB0YWdfbmFtZSA9XG4gIGlmIHN0YXRlLnBwX3ByaW50X3RhZ3MgdGhlblxuICBiZWdpblxuICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfdGFnX3N0YWNrO1xuICAgIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIHRhZ19uYW1lXG4gIGVuZDtcbiAgaWYgc3RhdGUucHBfbWFya190YWdzIHRoZW5cbiAgICBsZXQgdG9rZW4gPSBQcF9vcGVuX3RhZyB0YWdfbmFtZSBpblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbjsgbGVuZ3RoID0gMCB9XG5cblxuKCogQ2xvc2UgYSB0YWcsIHBvcHBpbmcgaXQgZnJvbSB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX2Nsb3NlX3N0YWcgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9tYXJrX3RhZ3MgdGhlblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2Nsb3NlX3RhZzsgbGVuZ3RoID0gMCB9O1xuICBpZiBzdGF0ZS5wcF9wcmludF90YWdzIHRoZW5cbiAgICBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3RhZ19zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG1vcmUgdGFnIHRvIGNsb3NlLiAqKVxuICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIHRhZ19uYW1lXG5cbmxldCBwcF9vcGVuX3RhZyBzdGF0ZSBzID0gcHBfb3Blbl9zdGFnIHN0YXRlIChTdHJpbmdfdGFnIHMpXG5sZXQgcHBfY2xvc2VfdGFnIHN0YXRlICgpID0gcHBfY2xvc2Vfc3RhZyBzdGF0ZSAoKVxuXG5sZXQgcHBfc2V0X3ByaW50X3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX3ByaW50X3RhZ3MgPC0gYlxubGV0IHBwX3NldF9tYXJrX3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX21hcmtfdGFncyA8LSBiXG5sZXQgcHBfZ2V0X3ByaW50X3RhZ3Mgc3RhdGUgKCkgPSBzdGF0ZS5wcF9wcmludF90YWdzXG5sZXQgcHBfZ2V0X21hcmtfdGFncyBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmtfdGFnc1xubGV0IHBwX3NldF90YWdzIHN0YXRlIGIgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGF0ZSBiOyBwcF9zZXRfbWFya190YWdzIHN0YXRlIGJcblxuXG4oKiBIYW5kbGluZyB0YWcgaGFuZGxpbmcgZnVuY3Rpb25zOiBnZXQvc2V0IGZ1bmN0aW9ucy4gKilcbmxldCBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0YXRlICgpID0ge1xuICBtYXJrX29wZW5fc3RhZyA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWc7XG4gIG1hcmtfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnO1xuICBwcmludF9vcGVuX3N0YWcgPSBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZztcbiAgcHJpbnRfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZztcbn1cblxuXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgIG1hcmtfb3Blbl9zdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3N0YWcgPSBtY3Q7XG4gICAgIHByaW50X29wZW5fc3RhZyA9IHBvdDtcbiAgICAgcHJpbnRfY2xvc2Vfc3RhZyA9IHBjdDtcbiAgfSA9XG4gIHN0YXRlLnBwX21hcmtfb3Blbl90YWcgPC0gbW90O1xuICBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyA8LSBtY3Q7XG4gIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIDwtIHBvdDtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHBjdFxuXG5cbigqIEluaXRpYWxpemUgcHJldHR5LXByaW50ZXIuICopXG5sZXQgcHBfcmluaXQgc3RhdGUgPVxuICBwcF9jbGVhcl9xdWV1ZSBzdGF0ZTtcbiAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX2Zvcm1hdF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGJveF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGFnX3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF9tYXJrX3N0YWNrO1xuICBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA8LSAwO1xuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIDA7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luO1xuICBwcF9vcGVuX3N5c19ib3ggc3RhdGVcblxubGV0IGNsZWFyX3RhZ19zdGFjayBzdGF0ZSA9XG4gIFN0YWNrLml0ZXIgKGZ1biBfIC0+IHBwX2Nsb3NlX3RhZyBzdGF0ZSAoKSkgc3RhdGUucHBfdGFnX3N0YWNrXG5cblxuKCogRmx1c2hpbmcgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG5sZXQgcHBfZmx1c2hfcXVldWUgc3RhdGUgYiA9XG4gIGNsZWFyX3RhZ19zdGFjayBzdGF0ZTtcbiAgd2hpbGUgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgZG9cbiAgICBwcF9jbG9zZV9ib3ggc3RhdGUgKClcbiAgZG9uZTtcbiAgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gcHBfaW5maW5pdHk7XG4gIGFkdmFuY2VfbGVmdCBzdGF0ZTtcbiAgaWYgYiB0aGVuIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlO1xuICBwcF9yaW5pdCBzdGF0ZVxuXG4oKlxuXG4gIFByb2NlZHVyZXMgdG8gZm9ybWF0IHZhbHVlcyBhbmQgdXNlIGJveGVzLlxuXG4qKVxuXG4oKiBUbyBmb3JtYXQgYSBzdHJpbmcuICopXG5sZXQgcHBfcHJpbnRfYXNfc2l6ZSBzdGF0ZSBzaXplIHMgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzXG4gIHRoZW4gZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgc2l6ZSBzXG5cblxubGV0IHBwX3ByaW50X2FzIHN0YXRlIGlzaXplIHMgPVxuICBwcF9wcmludF9hc19zaXplIHN0YXRlIChTaXplLm9mX2ludCBpc2l6ZSkgc1xuXG5cbmxldCBwcF9wcmludF9zdHJpbmcgc3RhdGUgcyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIChTdHJpbmcubGVuZ3RoIHMpIHNcblxubGV0IHBwX3ByaW50X2J5dGVzIHN0YXRlIHMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAoQnl0ZXMubGVuZ3RoIHMpIChCeXRlcy50b19zdHJpbmcgcylcblxuKCogVG8gZm9ybWF0IGFuIGludGVnZXIuICopXG5sZXQgcHBfcHJpbnRfaW50IHN0YXRlIGkgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKEludC50b19zdHJpbmcgaSlcblxuKCogVG8gZm9ybWF0IGEgZmxvYXQuICopXG5sZXQgcHBfcHJpbnRfZmxvYXQgc3RhdGUgZiA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoc3RyaW5nX29mX2Zsb2F0IGYpXG5cbigqIFRvIGZvcm1hdCBhIGJvb2xlYW4uICopXG5sZXQgcHBfcHJpbnRfYm9vbCBzdGF0ZSBiID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChzdHJpbmdfb2ZfYm9vbCBiKVxuXG4oKiBUbyBmb3JtYXQgYSBjaGFyLiAqKVxubGV0IHBwX3ByaW50X2NoYXIgc3RhdGUgYyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIDEgKFN0cmluZy5tYWtlIDEgYylcblxuXG4oKiBPcGVuaW5nIGJveGVzLiAqKVxubGV0IHBwX29wZW5faGJveCBzdGF0ZSAoKSA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSAwIFBwX2hib3hcbmFuZCBwcF9vcGVuX3Zib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF92Ym94XG5cbmFuZCBwcF9vcGVuX2h2Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfaHZib3hcbmFuZCBwcF9vcGVuX2hvdmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2hvdmJveFxuYW5kIHBwX29wZW5fYm94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfYm94XG5cblxuKCogUHJpbnRpbmcgcXVldWVkIHRleHQuXG5cbiAgIFtwcF9wcmludF9mbHVzaF0gcHJpbnRzIGFsbCBwZW5kaW5nIGl0ZW1zIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBhbmRcbiAgIHRoZW4gZmx1c2hlcyB0aGUgbG93IGxldmVsIG91dHB1dCBkZXZpY2Ugb2YgdGhlIGZvcm1hdHRlciB0byBhY3R1YWxseVxuICAgZGlzcGxheSBwcmludGluZyBtYXRlcmlhbC5cblxuICAgW3BwX3ByaW50X25ld2xpbmVdIGJlaGF2ZXMgYXMgW3BwX3ByaW50X2ZsdXNoXSBhZnRlciBwcmludGluZyBhbiBhZGRpdGlvbmFsXG4gICBuZXcgbGluZS4gKilcbmxldCBwcF9wcmludF9uZXdsaW5lIHN0YXRlICgpID1cbiAgcHBfZmx1c2hfcXVldWUgc3RhdGUgdHJ1ZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5hbmQgcHBfcHJpbnRfZmx1c2ggc3RhdGUgKCkgPVxuICBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSBmYWxzZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5cblxuKCogVG8gZ2V0IGEgbmV3bGluZSB3aGVuIG9uZSBkb2VzIG5vdCB3YW50IHRvIGNsb3NlIHRoZSBjdXJyZW50IGJveC4gKilcbmxldCBwcF9mb3JjZV9uZXdsaW5lIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9uZXdsaW5lOyBsZW5ndGggPSAwIH1cblxuXG4oKiBUbyBmb3JtYXQgc29tZXRoaW5nLCBvbmx5IGluIGNhc2UgdGhlIGxpbmUgaGFzIGp1c3QgYmVlbiBicm9rZW4uICopXG5sZXQgcHBfcHJpbnRfaWZfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZVxuICAgICAgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2lmX25ld2xpbmU7IGxlbmd0aCA9IDAgfVxuXG5cbigqIEdlbmVyYWxpemVkIGJyZWFrIGhpbnQgdGhhdCBhbGxvd3MgcHJpbnRpbmcgc3RyaW5ncyBiZWZvcmUvYWZ0ZXJcbiAgIHNhbWUtbGluZSBvZmZzZXQgKHdpZHRoKSBvciBuZXctbGluZSBvZmZzZXQgKilcbmxldCBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGUgfmZpdHMgfmJyZWFrcyA9XG4gIGxldCBiZWZvcmUsIHdpZHRoLCBhZnRlciA9IGZpdHMgaW5cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgdG9rZW4gPSBQcF9icmVhayB7IGZpdHM7IGJyZWFrcyB9IGluXG4gICAgbGV0IGxlbmd0aCA9IFN0cmluZy5sZW5ndGggYmVmb3JlICsgd2lkdGggKyBTdHJpbmcubGVuZ3RoIGFmdGVyIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuOyBsZW5ndGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuKCogUHJpbnRpbmcgYnJlYWsgaGludHM6XG4gICBBIGJyZWFrIGhpbnQgaW5kaWNhdGVzIHdoZXJlIGEgYm94IG1heSBiZSBicm9rZW4uXG4gICBJZiBsaW5lIGlzIGJyb2tlbiB0aGVuIG9mZnNldCBpcyBhZGRlZCB0byB0aGUgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnRcbiAgIGJveCBlbHNlICh0aGUgdmFsdWUgb2YpIHdpZHRoIGJsYW5rcyBhcmUgcHJpbnRlZC4gKilcbmxldCBwcF9wcmludF9icmVhayBzdGF0ZSB3aWR0aCBvZmZzZXQgPVxuICBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGVcbiAgICB+Zml0czooXCJcIiwgd2lkdGgsIFwiXCIpIH5icmVha3M6KFwiXCIsIG9mZnNldCwgXCJcIilcblxuXG4oKiBQcmludCBhIHNwYWNlIDpcbiAgIGEgc3BhY2UgaXMgYSBicmVhayBoaW50IHRoYXQgcHJpbnRzIGEgc2luZ2xlIHNwYWNlIGlmIHRoZSBicmVhayBkb2VzIG5vdFxuICAgc3BsaXQgdGhlIGxpbmU7XG4gICBhIGN1dCBpcyBhIGJyZWFrIGhpbnQgdGhhdCBwcmludHMgbm90aGluZyBpZiB0aGUgYnJlYWsgZG9lcyBub3Qgc3BsaXQgdGhlXG4gICBsaW5lLiAqKVxubGV0IHBwX3ByaW50X3NwYWNlIHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMSAwXG5hbmQgcHBfcHJpbnRfY3V0IHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMCAwXG5cblxuKCogVGFidWxhdGlvbiBib3hlcy4gKilcbmxldCBwcF9vcGVuX3Rib3ggc3RhdGUgKCkgPVxuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggKyAxO1xuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUuemVybyBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX3RiZWdpbiAoUHBfdGJveCAocmVmIFtdKSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCogQ2xvc2UgYSB0YWJ1bGF0aW9uIGJveC4gKilcbmxldCBwcF9jbG9zZV90Ym94IHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgdGhlblxuICBiZWdpblxuICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3RlbmQ7IGxlbmd0aCA9IDAgfSBpblxuICAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbTtcbiAgICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMVxuICBlbmRcblxuXG4oKiBQcmludCBhIHRhYnVsYXRpb24gYnJlYWsuICopXG5sZXQgcHBfcHJpbnRfdGJyZWFrIHN0YXRlIHdpZHRoIG9mZnNldCA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfdGJyZWFrICh3aWR0aCwgb2Zmc2V0KTsgbGVuZ3RoID0gd2lkdGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuXG5sZXQgcHBfcHJpbnRfdGFiIHN0YXRlICgpID0gcHBfcHJpbnRfdGJyZWFrIHN0YXRlIDAgMFxuXG5sZXQgcHBfc2V0X3RhYiBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3N0YWI7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCpcblxuICBQcm9jZWR1cmVzIHRvIGNvbnRyb2wgdGhlIHByZXR0eS1wcmludGVyc1xuXG4qKVxuXG4oKiBTZXRfbWF4X2JveGVzLiAqKVxubGV0IHBwX3NldF9tYXhfYm94ZXMgc3RhdGUgbiA9IGlmIG4gPiAxIHRoZW4gc3RhdGUucHBfbWF4X2JveGVzIDwtIG5cblxuKCogVG8ga25vdyB0aGUgY3VycmVudCBtYXhpbXVtIG51bWJlciBvZiBib3hlcyBhbGxvd2VkLiAqKVxubGV0IHBwX2dldF9tYXhfYm94ZXMgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfYm94ZXNcblxubGV0IHBwX292ZXJfbWF4X2JveGVzIHN0YXRlICgpID0gc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuXG4oKiBFbGxpcHNpcy4gKilcbmxldCBwcF9zZXRfZWxsaXBzaXNfdGV4dCBzdGF0ZSBzID0gc3RhdGUucHBfZWxsaXBzaXMgPC0gc1xuYW5kIHBwX2dldF9lbGxpcHNpc190ZXh0IHN0YXRlICgpID0gc3RhdGUucHBfZWxsaXBzaXNcblxuXG4oKiBUbyBzZXQgdGhlIG1hcmdpbiBvZiBwcmV0dHktcHJpbnRlci4gKilcbmxldCBwcF9saW1pdCBuID1cbiAgaWYgbiA8IHBwX2luZmluaXR5IHRoZW4gbiBlbHNlIHByZWQgcHBfaW5maW5pdHlcblxuXG4oKiBJbnRlcm5hbCBwcmV0dHktcHJpbnRlciBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X21pbl9zcGFjZV9sZWZ0IHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0IDwtIG47XG4gICAgc3RhdGUucHBfbWF4X2luZGVudCA8LSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9yaW5pdCBzdGF0ZVxuXG5cbigqIEluaXRpYWxseSwgd2UgaGF2ZSA6XG4gICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQsIGFuZFxuICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbi4gKilcbmxldCBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBuID1cbiAgaWYgbiA+IDEgdGhlblxuICAgIHBwX3NldF9taW5fc3BhY2VfbGVmdCBzdGF0ZSAoc3RhdGUucHBfbWFyZ2luIC0gbilcblxuXG5sZXQgcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfaW5kZW50XG5cbmxldCBwcF9zZXRfbWFyZ2luIHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21hcmdpbiA8LSBuO1xuICAgIGxldCBuZXdfbWF4X2luZGVudCA9XG4gICAgICAoKiBUcnkgdG8gbWFpbnRhaW4gbWF4X2luZGVudCB0byBpdHMgYWN0dWFsIHZhbHVlLiAqKVxuICAgICAgaWYgc3RhdGUucHBfbWF4X2luZGVudCA8PSBzdGF0ZS5wcF9tYXJnaW5cbiAgICAgIHRoZW4gc3RhdGUucHBfbWF4X2luZGVudCBlbHNlXG4gICAgICAoKiBJZiBwb3NzaWJsZSBtYWludGFpbiBwcF9taW5fc3BhY2VfbGVmdCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgICAgICAgaWYgdGhpcyBsZWFkcyB0byBhIHRvbyBzbWFsbCBtYXhfaW5kZW50LCB0YWtlIGhhbGYgb2YgdGhlXG4gICAgICAgICBuZXcgbWFyZ2luLCBpZiBpdCBpcyBncmVhdGVyIHRoYW4gMS4gKilcbiAgICAgICBJbnQubWF4IChJbnQubWF4IChzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdClcbiAgICAgICAgICAgICAgICAoc3RhdGUucHBfbWFyZ2luIC8gMikpIDEgaW5cbiAgICAoKiBSZWJ1aWxkIGludmFyaWFudHMuICopXG4gICAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbmV3X21heF9pbmRlbnRcblxuXG4oKiogR2VvbWV0cnkgZnVuY3Rpb25zIGFuZCB0eXBlcyAqKVxudHlwZSBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDppbnQ7IG1hcmdpbjogaW50fVxuXG5sZXQgdmFsaWRhdGVfZ2VvbWV0cnkge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBpZiBtYXhfaW5kZW50IDwgMiB0aGVuXG4gICAgRXJyb3IgXCJtYXhfaW5kZW50IDwgMlwiXG4gIGVsc2UgaWYgbWFyZ2luIDw9IG1heF9pbmRlbnQgdGhlblxuICAgIEVycm9yIFwibWFyZ2luIDw9IG1heF9pbmRlbnRcIlxuICBlbHNlIE9rICgpXG5cbmxldCBjaGVja19nZW9tZXRyeSBnZW9tZXRyeSA9XG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBPayAoKSAtPiB0cnVlXG4gIHwgRXJyb3IgXyAtPiBmYWxzZVxuXG5sZXQgcHBfZ2V0X21hcmdpbiBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmdpblxuXG5sZXQgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBwcF9zZXRfbWFyZ2luIHN0YXRlIG1hcmdpbjtcbiAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbWF4X2luZGVudDtcbiAgKClcblxubGV0IHBwX3NldF9nZW9tZXRyeSBzdGF0ZSB+bWF4X2luZGVudCB+bWFyZ2luID1cbiAgbGV0IGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OyBtYXJnaW4gfSBpblxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgRXJyb3IgbXNnIC0+XG4gICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwiRm9ybWF0LnBwX3NldF9nZW9tZXRyeTogXCIgXiBtc2cpKVxuICB8IE9rICgpIC0+XG4gICAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgZ2VvbWV0cnlcblxubGV0IHBwX3NhZmVfc2V0X2dlb21ldHJ5IHN0YXRlIH5tYXhfaW5kZW50IH5tYXJnaW4gPVxuICBsZXQgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ7IG1hcmdpbiB9IGluXG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBFcnJvciBfbXNnIC0+XG4gICAgICgpXG4gIHwgT2sgKCkgLT5cbiAgICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSBnZW9tZXRyeVxuXG5sZXQgcHBfZ2V0X2dlb21ldHJ5IHN0YXRlICgpID1cbiAgeyBtYXJnaW4gPSBwcF9nZXRfbWFyZ2luIHN0YXRlICgpOyBtYXhfaW5kZW50ID0gcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgfVxuXG5sZXQgcHBfdXBkYXRlX2dlb21ldHJ5IHN0YXRlIHVwZGF0ZSA9XG4gIGxldCBnZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGF0ZSAoKSBpblxuICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSAodXBkYXRlIGdlb21ldHJ5KVxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgIG91dF9zdHJpbmcgPSBmO1xuICAgICAgb3V0X2ZsdXNoID0gZztcbiAgICAgIG91dF9uZXdsaW5lID0gaDtcbiAgICAgIG91dF9zcGFjZXMgPSBpO1xuICAgICAgb3V0X2luZGVudCA9IGo7XG4gICAgfSA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gZjtcbiAgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIGc7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGg7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gaTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBqXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RhdGUgKCkgPSB7XG4gIG91dF9zdHJpbmcgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nO1xuICBvdXRfZmx1c2ggPSBzdGF0ZS5wcF9vdXRfZmx1c2g7XG4gIG91dF9uZXdsaW5lID0gc3RhdGUucHBfb3V0X25ld2xpbmU7XG4gIG91dF9zcGFjZXMgPSBzdGF0ZS5wcF9vdXRfc3BhY2VzO1xuICBvdXRfaW5kZW50ID0gc3RhdGUucHBfb3V0X2luZGVudDtcbn1cblxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIHN0cmluZyBvdXRwdXQgYW5kIGZsdXNoIGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBmOyBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gZ1xuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlICgpID1cbiAgKHN0YXRlLnBwX291dF9zdHJpbmcsIHN0YXRlLnBwX291dF9mbHVzaClcblxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgbmV3IGxpbmVzLiAqKVxubGV0IGRpc3BsYXlfbmV3bGluZSBzdGF0ZSAoKSA9IHN0YXRlLnBwX291dF9zdHJpbmcgXCJcXG5cIiAwICAxXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBzcGFjZXMuICopXG5sZXQgYmxhbmtfbGluZSA9IFN0cmluZy5tYWtlIDgwICcgJ1xubGV0IHJlYyBkaXNwbGF5X2JsYW5rcyBzdGF0ZSBuID1cbiAgaWYgbiA+IDAgdGhlblxuICBpZiBuIDw9IDgwIHRoZW4gc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgbiBlbHNlXG4gIGJlZ2luXG4gICAgc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgODA7XG4gICAgZGlzcGxheV9ibGFua3Mgc3RhdGUgKG4gLSA4MClcbiAgZW5kXG5cblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IGluZGVudGF0aW9uIG9mIG5ldyBsaW5lcy4gKilcbmxldCBkaXNwbGF5X2luZGVudCA9IGRpc3BsYXlfYmxhbmtzXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucyBhcyBwcmludGluZyB0byBhIGdpdmVuXG4gICBbUGVydmFzaXZlLm91dF9jaGFubmVsXSB2YWx1ZS4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0YXRlIG9jID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBvdXRwdXRfc3Vic3RyaW5nIG9jO1xuICBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gKGZ1biAoKSAtPiBmbHVzaCBvYyk7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGRpc3BsYXlfbmV3bGluZSBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBkaXNwbGF5X2luZGVudCBzdGF0ZVxuXG4oKlxuXG4gIERlZmluaW5nIHNwZWNpZmljIGZvcm1hdHRlcnNcblxuKilcblxubGV0IGRlZmF1bHRfcHBfbWFya19vcGVuX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPFwiIF4gcyBeIFwiPlwiXG4gIHwgXyAtPiBcIlwiXG5sZXQgZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPC9cIiBeIHMgXiBcIj5cIlxuICB8IF8gLT4gXCJcIlxuXG5sZXQgZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyA9IGlnbm9yZVxubGV0IGRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnID0gaWdub3JlXG5cbigqIEJ1aWxkaW5nIGEgZm9ybWF0dGVyIGdpdmVuIGl0cyBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zLlxuICAgT3RoZXIgZmllbGRzIGdldCByZWFzb25hYmxlIGRlZmF1bHQgdmFsdWVzLiAqKVxubGV0IHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgaiA9XG4gICgqIFRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBmb3JtYXR0ZXIgY29udGFpbnMgYSBkdW1teSBib3guICopXG4gIGxldCBwcF9xdWV1ZSA9IFF1ZXVlLmNyZWF0ZSAoKSBpblxuICBsZXQgc3lzX3RvayA9XG4gICAgeyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX2JlZ2luICgwLCBQcF9ob3Zib3gpOyBsZW5ndGggPSAwIH0gaW5cbiAgUXVldWUuYWRkIHN5c190b2sgcHBfcXVldWU7XG4gIGxldCBzY2FuX3N0YWNrID0gU3RhY2suY3JlYXRlICgpIGluXG4gIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzY2FuX3N0YWNrO1xuICBTdGFjay5wdXNoIHsgbGVmdF90b3RhbCA9IDE7IHF1ZXVlX2VsZW0gPSBzeXNfdG9rIH0gc2Nhbl9zdGFjaztcbiAgbGV0IHBwX21hcmdpbiA9IDc4XG4gIGFuZCBwcF9taW5fc3BhY2VfbGVmdCA9IDEwIGluXG4gIHtcbiAgICBwcF9zY2FuX3N0YWNrID0gc2Nhbl9zdGFjaztcbiAgICBwcF9mb3JtYXRfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfdGJveF9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF90YWdfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfbWFya19zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF9tYXJnaW4gPSBwcF9tYXJnaW47XG4gICAgcHBfbWluX3NwYWNlX2xlZnQgPSBwcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbjtcbiAgICBwcF9jdXJyZW50X2luZGVudCA9IDA7XG4gICAgcHBfaXNfbmV3X2xpbmUgPSB0cnVlO1xuICAgIHBwX2xlZnRfdG90YWwgPSAxO1xuICAgIHBwX3JpZ2h0X3RvdGFsID0gMTtcbiAgICBwcF9jdXJyX2RlcHRoID0gMTtcbiAgICBwcF9tYXhfYm94ZXMgPSBtYXhfaW50O1xuICAgIHBwX2VsbGlwc2lzID0gXCIuXCI7XG4gICAgcHBfb3V0X3N0cmluZyA9IGY7XG4gICAgcHBfb3V0X2ZsdXNoID0gZztcbiAgICBwcF9vdXRfbmV3bGluZSA9IGg7XG4gICAgcHBfb3V0X3NwYWNlcyA9IGk7XG4gICAgcHBfb3V0X2luZGVudCA9IGo7XG4gICAgcHBfcHJpbnRfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfb3Blbl90YWcgPSBkZWZhdWx0X3BwX21hcmtfb3Blbl90YWc7XG4gICAgcHBfbWFya19jbG9zZV90YWcgPSBkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnO1xuICAgIHBwX3ByaW50X29wZW5fdGFnID0gZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZztcbiAgICBwcF9wcmludF9jbG9zZV90YWcgPSBkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZztcbiAgICBwcF9xdWV1ZSA9IHBwX3F1ZXVlO1xuICB9XG5cblxuKCogQnVpbGQgYSBmb3JtYXR0ZXIgb3V0IG9mIGl0cyBvdXQgZnVuY3Rpb25zLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9vdXRfZnVuY3Rpb25zIG91dF9mdW5zID1cbiAgcHBfbWFrZV9mb3JtYXR0ZXJcbiAgICBvdXRfZnVucy5vdXRfc3RyaW5nXG4gICAgb3V0X2Z1bnMub3V0X2ZsdXNoXG4gICAgb3V0X2Z1bnMub3V0X25ld2xpbmVcbiAgICBvdXRfZnVucy5vdXRfc3BhY2VzXG4gICAgb3V0X2Z1bnMub3V0X2luZGVudFxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd2l0aCBkZWZhdWx0IGZ1bmN0aW9ucyB0byBvdXRwdXQgc3BhY2VzLFxuICBpbmRlbnRhdGlvbiwgYW5kIG5ldyBsaW5lcy4gKilcbmxldCBtYWtlX2Zvcm1hdHRlciBvdXRwdXQgZmx1c2ggPVxuICBsZXQgcHBmID0gcHBfbWFrZV9mb3JtYXR0ZXIgb3V0cHV0IGZsdXNoIGlnbm9yZSBpZ25vcmUgaWdub3JlIGluXG4gIHBwZi5wcF9vdXRfbmV3bGluZSA8LSBkaXNwbGF5X25ld2xpbmUgcHBmO1xuICBwcGYucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBwcGY7XG4gIHBwZi5wcF9vdXRfaW5kZW50IDwtIGRpc3BsYXlfaW5kZW50IHBwZjtcbiAgcHBmXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW1BlcnZhc2l2ZS5vdXRfY2hhbm5lbF0gdmFsdWUuICopXG5sZXQgZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jID1cbiAgbWFrZV9mb3JtYXR0ZXIgKG91dHB1dF9zdWJzdHJpbmcgb2MpIChmdW4gKCkgLT4gZmx1c2ggb2MpXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW0J1ZmZlci50XSB2YWx1ZS4gKilcbmxldCBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgPVxuICBtYWtlX2Zvcm1hdHRlciAoQnVmZmVyLmFkZF9zdWJzdHJpbmcgYikgaWdub3JlXG5cblxuKCogQWxsb2NhdGluZyBidWZmZXIgZm9yIHByZXR0eS1wcmludGluZyBwdXJwb3Nlcy5cbiAgIERlZmF1bHQgYnVmZmVyIHNpemUgaXMgcHBfYnVmZmVyX3NpemUgb3IgNTEyLlxuKilcbmxldCBwcF9idWZmZXJfc2l6ZSA9IDUxMlxubGV0IHBwX21ha2VfYnVmZmVyICgpID0gQnVmZmVyLmNyZWF0ZSBwcF9idWZmZXJfc2l6ZVxuXG4oKiBUaGUgc3RhbmRhcmQgKHNoYXJlZCkgYnVmZmVyLiAqKVxubGV0IHN0ZGJ1ZiA9IHBwX21ha2VfYnVmZmVyICgpXG5cbigqIFByZWRlZmluZWQgZm9ybWF0dGVycyBzdGFuZGFyZCBmb3JtYXR0ZXIgdG8gcHJpbnRcbiAgIHRvIFtTdGRsaWIuc3Rkb3V0XSwgW1N0ZGxpYi5zdGRlcnJdLCBhbmQgeyFzdGRidWZ9LiAqKVxubGV0IHN0ZF9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZG91dFxuYW5kIGVycl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZGVyclxuYW5kIHN0cl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIHN0ZGJ1ZlxuXG5cbigqIFtmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGZdIGZsdXNoZXMgZm9ybWF0dGVyIFtwcGZdLFxuICAgdGhlbiByZXR1cm5zIHRoZSBjb250ZW50cyBvZiBidWZmZXIgW2J1Zl0gdGhhdCBpcyByZXNldC5cbiAgIEZvcm1hdHRlciBbcHBmXSBpcyBzdXBwb3NlZCB0byBwcmludCB0byBidWZmZXIgW2J1Zl0sIG90aGVyd2lzZSB0aGlzXG4gICBmdW5jdGlvbiBpcyBub3QgcmVhbGx5IHVzZWZ1bC4gKilcbmxldCBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGYgPVxuICBwcF9mbHVzaF9xdWV1ZSBwcGYgZmFsc2U7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIGJ1ZiBpblxuICBCdWZmZXIucmVzZXQgYnVmO1xuICBzXG5cblxuKCogRmx1c2ggW3N0cl9mb3JtYXR0ZXJdIGFuZCBnZXQgdGhlIGNvbnRlbnRzIG9mIFtzdGRidWZdLiAqKVxubGV0IGZsdXNoX3N0cl9mb3JtYXR0ZXIgKCkgPSBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIHN0ZGJ1ZiBzdHJfZm9ybWF0dGVyXG5cbigqXG4gIFN5bWJvbGljIHByZXR0eS1wcmludGluZ1xuKilcblxuKCpcbiAgU3ltYm9saWMgcHJldHR5LXByaW50aW5nIGlzIHByZXR0eS1wcmludGluZyB3aXRoIG5vIGxvdyBsZXZlbCBvdXRwdXQuXG5cbiAgV2hlbiB1c2luZyBhIHN5bWJvbGljIGZvcm1hdHRlciwgYWxsIHJlZ3VsYXIgcHJldHR5LXByaW50aW5nIGFjdGl2aXRpZXNcbiAgb2NjdXIgYnV0IG91dHB1dCBtYXRlcmlhbCBpcyBzeW1ib2xpYyBhbmQgc3RvcmVkIGluIGEgYnVmZmVyIG9mIG91dHB1dFxuICBpdGVtcy4gQXQgdGhlIGVuZCBvZiBwcmV0dHktcHJpbnRpbmcsIGZsdXNoaW5nIHRoZSBvdXRwdXQgYnVmZmVyIGFsbG93c1xuICBwb3N0LXByb2Nlc3Npbmcgb2Ygc3ltYm9saWMgb3V0cHV0IGJlZm9yZSBsb3cgbGV2ZWwgb3V0cHV0IG9wZXJhdGlvbnMuXG4qKVxuXG50eXBlIHN5bWJvbGljX291dHB1dF9pdGVtID1cbiAgfCBPdXRwdXRfZmx1c2hcbiAgfCBPdXRwdXRfbmV3bGluZVxuICB8IE91dHB1dF9zdHJpbmcgb2Ygc3RyaW5nXG4gIHwgT3V0cHV0X3NwYWNlcyBvZiBpbnRcbiAgfCBPdXRwdXRfaW5kZW50IG9mIGludFxuXG50eXBlIHN5bWJvbGljX291dHB1dF9idWZmZXIgPSB7XG4gIG11dGFibGUgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDogc3ltYm9saWNfb3V0cHV0X2l0ZW0gbGlzdDtcbn1cblxubGV0IG1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciAoKSA9XG4gIHsgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzID0gW10gfVxuXG5sZXQgY2xlYXJfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDwtIFtdXG5cbmxldCBnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBMaXN0LnJldiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmbHVzaF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIGxldCBpdGVtcyA9IGdldF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiBpblxuICBjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYjtcbiAgaXRlbXNcblxubGV0IGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgaXRlbSA9XG4gIHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHMgPC0gaXRlbSA6OiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBsZXQgc3ltYm9saWNfZmx1c2ggc29iICgpID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIE91dHB1dF9mbHVzaFxuICBhbmQgc3ltYm9saWNfbmV3bGluZSBzb2IgKCkgPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgT3V0cHV0X25ld2xpbmVcbiAgYW5kIHN5bWJvbGljX3N0cmluZyBzb2IgcyBpIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9zdHJpbmcgKFN0cmluZy5zdWIgcyBpIG4pKVxuICBhbmQgc3ltYm9saWNfc3BhY2VzIHNvYiBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfc3BhY2VzIG4pXG4gIGFuZCBzeW1ib2xpY19pbmRlbnQgc29iIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9pbmRlbnQgbikgaW5cblxuICBsZXQgZiA9IHN5bWJvbGljX3N0cmluZyBzb2JcbiAgYW5kIGcgPSBzeW1ib2xpY19mbHVzaCBzb2JcbiAgYW5kIGggPSBzeW1ib2xpY19uZXdsaW5lIHNvYlxuICBhbmQgaSA9IHN5bWJvbGljX3NwYWNlcyBzb2JcbiAgYW5kIGogPSBzeW1ib2xpY19pbmRlbnQgc29iIGluXG4gIHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgalxuXG4oKlxuXG4gIEJhc2ljIGZ1bmN0aW9ucyBvbiB0aGUgJ3N0YW5kYXJkJyBmb3JtYXR0ZXJcbiAgKHRoZSBmb3JtYXR0ZXIgdGhhdCBwcmludHMgdG8gW1N0ZGxpYi5zdGRvdXRdKS5cblxuKilcblxubGV0IG9wZW5faGJveCA9IHBwX29wZW5faGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl92Ym94ID0gcHBfb3Blbl92Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2h2Ym94ID0gcHBfb3Blbl9odmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ob3Zib3ggPSBwcF9vcGVuX2hvdmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ib3ggPSBwcF9vcGVuX2JveCBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfYm94ID0gcHBfY2xvc2VfYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3RhZyA9IHBwX29wZW5fdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV90YWcgPSBwcF9jbG9zZV90YWcgc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fc3RhZyA9IHBwX29wZW5fc3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2Vfc3RhZyA9IHBwX2Nsb3NlX3N0YWcgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2FzID0gcHBfcHJpbnRfYXMgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3N0cmluZyA9IHBwX3ByaW50X3N0cmluZyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYnl0ZXMgPSBwcF9wcmludF9ieXRlcyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfaW50ID0gcHBfcHJpbnRfaW50IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9mbG9hdCA9IHBwX3ByaW50X2Zsb2F0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9jaGFyID0gcHBfcHJpbnRfY2hhciBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYm9vbCA9IHBwX3ByaW50X2Jvb2wgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2JyZWFrID0gcHBfcHJpbnRfYnJlYWsgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2N1dCA9IHBwX3ByaW50X2N1dCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfc3BhY2UgPSBwcF9wcmludF9zcGFjZSBzdGRfZm9ybWF0dGVyXG5hbmQgZm9yY2VfbmV3bGluZSA9IHBwX2ZvcmNlX25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2ZsdXNoID0gcHBfcHJpbnRfZmx1c2ggc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X25ld2xpbmUgPSBwcF9wcmludF9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9pZl9uZXdsaW5lID0gcHBfcHJpbnRfaWZfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5cbmFuZCBvcGVuX3Rib3ggPSBwcF9vcGVuX3Rib3ggc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3Rib3ggPSBwcF9jbG9zZV90Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF90YnJlYWsgPSBwcF9wcmludF90YnJlYWsgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X3RhYiA9IHBwX3NldF90YWIgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3RhYiA9IHBwX3ByaW50X3RhYiBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWFyZ2luID0gcHBfc2V0X21hcmdpbiBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21hcmdpbiA9IHBwX2dldF9tYXJnaW4gc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21heF9pbmRlbnQgPSBwcF9zZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21heF9pbmRlbnQgPSBwcF9nZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZ2VvbWV0cnkgPSBwcF9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIHNhZmVfc2V0X2dlb21ldHJ5ID0gcHBfc2FmZV9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9nZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgdXBkYXRlX2dlb21ldHJ5ID0gcHBfdXBkYXRlX2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXhfYm94ZXMgPSBwcF9zZXRfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWF4X2JveGVzID0gcHBfZ2V0X21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5hbmQgb3Zlcl9tYXhfYm94ZXMgPSBwcF9vdmVyX21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZWxsaXBzaXNfdGV4dCA9IHBwX3NldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZWxsaXBzaXNfdGV4dCA9IHBwX2dldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X3ByaW50X3RhZ3MgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X3ByaW50X3RhZ3MgPVxuICBwcF9nZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X21hcmtfdGFncyA9XG4gIHBwX3NldF9tYXJrX3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXJrX3RhZ3MgPVxuICBwcF9nZXRfbWFya190YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfdGFncyA9XG4gIHBwX3NldF90YWdzIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBDb252ZW5pZW5jZSBmdW5jdGlvbnMgKilcblxuKCogVG8gZm9ybWF0IGEgbGlzdCAqKVxubGV0IHJlYyBwcF9wcmludF9saXN0ID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKClcbiAgfCBbdl0gLT4gcHBfdiBwcGYgdlxuICB8IHYgOjogdnMgLT5cbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3NlcCBwcGYgKCk7XG4gICAgcHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBwX3YgcHBmIHZzXG5cbigqIFRvIGZvcm1hdCBhIHNlcXVlbmNlICopXG5sZXQgcmVjIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgU2VxLk5pbCAtPiAoKVxuICB8IFNlcS5Db25zICh2LCBzZXEpIC0+XG4gICAgcHBfc2VwIHBwZiAoKTtcbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcVxuXG5sZXQgcHBfcHJpbnRfc2VxID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IFNlcS5OaWwgLT4gKClcbiAgfCBTZXEuQ29ucyAodiwgc2VxKSAtPlxuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxXG5cbigqIFRvIGZvcm1hdCBmcmVlLWZsb3dpbmcgdGV4dCAqKVxubGV0IHBwX3ByaW50X3RleHQgcHBmIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBsZWZ0ID0gcmVmIDAgaW5cbiAgbGV0IHJpZ2h0ID0gcmVmIDAgaW5cbiAgbGV0IGZsdXNoICgpID1cbiAgICBwcF9wcmludF9zdHJpbmcgcHBmIChTdHJpbmcuc3ViIHMgIWxlZnQgKCFyaWdodCAtICFsZWZ0KSk7XG4gICAgaW5jciByaWdodDsgbGVmdCA6PSAhcmlnaHQ7XG4gIGluXG4gIHdoaWxlICghcmlnaHQgPD4gbGVuKSBkb1xuICAgIG1hdGNoIHMuWyFyaWdodF0gd2l0aFxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBmbHVzaCAoKTtcbiAgICAgICAgcHBfZm9yY2VfbmV3bGluZSBwcGYgKClcbiAgICAgIHwgJyAnIC0+XG4gICAgICAgIGZsdXNoICgpOyBwcF9wcmludF9zcGFjZSBwcGYgKClcbiAgICAgICgqIHRoZXJlIGlzIG5vIHNwZWNpZmljIHN1cHBvcnQgZm9yICdcXHQnXG4gICAgICAgICBhcyBpdCBpcyB1bmNsZWFyIHdoYXQgYSByaWdodCBzZW1hbnRpY3Mgd291bGQgYmUgKilcbiAgICAgIHwgXyAtPiBpbmNyIHJpZ2h0XG4gIGRvbmU7XG4gIGlmICFsZWZ0IDw+IGxlbiB0aGVuIGZsdXNoICgpXG5cbmxldCBwcF9wcmludF9vcHRpb24gPyhub25lID0gZnVuIF8gKCkgLT4gKCkpIHBwX3YgcHBmID0gZnVuY3Rpb25cbnwgTm9uZSAtPiBub25lIHBwZiAoKVxufCBTb21lIHYgLT4gcHBfdiBwcGYgdlxuXG5sZXQgcHBfcHJpbnRfcmVzdWx0IH5vayB+ZXJyb3IgcHBmID0gZnVuY3Rpb25cbnwgT2sgdiAtPiBvayBwcGYgdlxufCBFcnJvciBlIC0+IGVycm9yIHBwZiBlXG5cbmxldCBwcF9wcmludF9laXRoZXIgfmxlZnQgfnJpZ2h0IHBwZiA9IGZ1bmN0aW9uXG58IEVpdGhlci5MZWZ0IGwgLT4gbGVmdCBwcGYgbFxufCBFaXRoZXIuUmlnaHQgciAtPiByaWdodCBwcGYgclxuXG4gKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgY29tcHV0ZV90YWcgb3V0cHV0IHRhZ19hY2MgPVxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAxNiBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBidWYgaW5cbiAgb3V0cHV0IHBwZiB0YWdfYWNjO1xuICBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIGxldCBsZW4gPSBCdWZmZXIubGVuZ3RoIGJ1ZiBpblxuICBpZiBsZW4gPCAyIHRoZW4gQnVmZmVyLmNvbnRlbnRzIGJ1ZlxuICBlbHNlIEJ1ZmZlci5zdWIgYnVmIDEgKGxlbiAtIDIpXG5cbiAoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuICBEZWZpbmluZyBjb250aW51YXRpb25zIHRvIGJlIHBhc3NlZCBhcyBhcmd1bWVudHMgb2ZcbiAgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLlxuXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogSW50ZXJwcmV0IGEgZm9ybWF0dGluZyBlbnRpdHkgb24gYSBmb3JtYXR0ZXIuICopXG5sZXQgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmbXRpbmdfbGl0ID0gbWF0Y2ggZm10aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV9ib3ggcHBmICgpXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV90YWcgcHBmICgpXG4gIHwgQnJlYWsgKF8sIHdpZHRoLCBvZmZzZXQpICAtPiBwcF9wcmludF9icmVhayBwcGYgd2lkdGggb2Zmc2V0XG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAtPiBwcF9wcmludF9mbHVzaCBwcGYgKClcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgIC0+IHBwX2ZvcmNlX25ld2xpbmUgcHBmICgpXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgICAgICAtPiBwcF9wcmludF9uZXdsaW5lIHBwZiAoKVxuICB8IE1hZ2ljX3NpemUgKF8sIF8pICAgICAgICAgLT4gKClcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICdAJ1xuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJyUnXG4gIHwgU2Nhbl9pbmRpYyBjICAgICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnQCc7IHBwX3ByaW50X2NoYXIgcHBmIGNcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhbiBvdXRwdXRfc3RyZWFtLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLm91dHB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgb3V0cHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIG91dHB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBvdXRwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgZiBwcGY7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gb3V0cHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLmJ1ZnB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZGVsYXkgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBmKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChmICgpKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIHN0cnB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBzdHJwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiAoZiAoKSk7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gc3RycHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKlxuXG4gIERlZmluaW5nIFtmcHJpbnRmXSBhbmQgdmFyaW91cyBmbGF2b3JzIG9mIFtmcHJpbnRmXS5cblxuKilcblxubGV0IGtmcHJpbnRmIGsgcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBvdXRwdXRfYWNjIHBwZiBhY2M7IGsgcHBmKVxuICAgIEVuZF9vZl9hY2MgZm10XG5cbmFuZCBpa2ZwcmludGYgayBwcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgayBwcGYgZm10XG5cbmxldCBpZnByaW50ZiBfcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGlnbm9yZSAoKSBmbXRcblxubGV0IGZwcmludGYgcHBmID0ga2ZwcmludGYgaWdub3JlIHBwZlxubGV0IHByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZF9mb3JtYXR0ZXIgZm10XG5sZXQgZXByaW50ZiBmbXQgPSBmcHJpbnRmIGVycl9mb3JtYXR0ZXIgZm10XG5cbmxldCBrZHByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBrIChmdW4gcHBmIC0+IG91dHB1dF9hY2MgcHBmIGFjYykpXG4gICAgRW5kX29mX2FjYyBmbXRcblxubGV0IGRwcmludGYgZm10ID0ga2RwcmludGYgKGZ1biBpIC0+IGkpIGZtdFxuXG5sZXQga3NwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIHN0cnB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgaWQgZm10XG5cbmxldCBrYXNwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIG91dHB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IGFzcHJpbnRmIGZtdCA9IGthc3ByaW50ZiBpZCBmbXRcblxuKCogRmx1c2hpbmcgc3RhbmRhcmQgZm9ybWF0dGVycyBhdCBlbmQgb2YgZXhlY3V0aW9uLiAqKVxuXG5sZXQgZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyAoKSA9XG4gIHBwX3ByaW50X2ZsdXNoIHN0ZF9mb3JtYXR0ZXIgKCk7XG4gIHBwX3ByaW50X2ZsdXNoIGVycl9mb3JtYXR0ZXIgKClcblxubGV0ICgpID0gYXRfZXhpdCBmbHVzaF9zdGFuZGFyZF9mb3JtYXR0ZXJzXG5cbigqXG5cbiAgRGVwcmVjYXRlZCBzdHVmZi5cblxuKilcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGVcbiAgICB+b3V0OmYgfmZsdXNoOmcgfm5ld2xpbmU6aCB+c3BhY2VzOmkgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBoO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGlcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgKCkgPVxuICAoc3RhdGUucHBfb3V0X3N0cmluZywgc3RhdGUucHBfb3V0X2ZsdXNoLFxuICAgc3RhdGUucHBfb3V0X25ld2xpbmUsIHN0YXRlLnBwX291dF9zcGFjZXMpXG5cblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5cbigqIERlcHJlY2F0ZWQgOiBlcnJvciBwcm9uZSBmdW5jdGlvbiwgZG8gbm90IHVzZSBpdC5cbiAgIFRoaXMgZnVuY3Rpb24gaXMgbmVpdGhlciBjb21wb3NpdGlvbmFsIG5vciBpbmNyZW1lbnRhbCwgc2luY2UgaXQgZmx1c2hlc1xuICAgdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGF0IGVhY2ggY2FsbC5cbiAgIFRvIGdldCB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5LCBkZWZpbmUgYSBmb3JtYXR0ZXIgb2YgeW91ciBvd24gd3JpdGluZyB0b1xuICAgdGhlIGJ1ZmZlciBhcmd1bWVudCwgYXMgaW5cbiAgIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGJcbiAgIHRoZW4gdXNlIHshZnByaW50ZiBwcGZ9IGFzIHVzdWFsLiAqKVxubGV0IGJwcmludGYgYiAoRm9ybWF0IChmbXQsIF8pIDogKCdhLCBmb3JtYXR0ZXIsIHVuaXQpIGZvcm1hdCkgPVxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9IG91dHB1dF9hY2MgcHBmIGFjYzsgcHBfZmx1c2hfcXVldWUgcHBmIGZhbHNlIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG4oKiBEZXByZWNhdGVkIDogYWxpYXMgZm9yIGtzcHJpbnRmLiAqKVxubGV0IGtwcmludGYgPSBrc3ByaW50ZlxuXG5cblxuKCogRGVwcmVjYXRlZCB0YWcgZnVuY3Rpb25zICopXG5cbnR5cGUgZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPSB7XG4gIG1hcmtfb3Blbl90YWcgOiB0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3RhZyA6IHRhZyAtPiBzdHJpbmc7XG4gIHByaW50X29wZW5fdGFnIDogdGFnIC0+IHVuaXQ7XG4gIHByaW50X2Nsb3NlX3RhZyA6IHRhZyAtPiB1bml0O1xufVxuXG5cbmxldCBwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RhdGUge1xuICAgICBtYXJrX29wZW5fdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3RhZyA9IG1jdDtcbiAgICAgcHJpbnRfb3Blbl90YWcgPSBwb3Q7XG4gICAgIHByaW50X2Nsb3NlX3RhZyA9IHBjdDtcbiAgIH0gPVxuICBsZXQgc3RyaW5naWZ5IGYgZSA9IGZ1bmN0aW9uIFN0cmluZ190YWcgcyAtPiBmIHMgfCBfIC0+IGUgaW5cbiAgc3RhdGUucHBfbWFya19vcGVuX3RhZyA8LSBzdHJpbmdpZnkgbW90IFwiXCI7XG4gIHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBtY3QgXCJcIjtcbiAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgPC0gc3RyaW5naWZ5IHBvdCAoKTtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBwY3QgKClcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBmbXQgKCkgPVxuICBsZXQgZnVucyA9IHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10ICgpIGluXG4gIGxldCBtYXJrX29wZW5fdGFnIHMgPSBmdW5zLm1hcmtfb3Blbl9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBtYXJrX2Nsb3NlX3RhZyBzID0gZnVucy5tYXJrX2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IHByaW50X29wZW5fdGFnIHMgPSBmdW5zLnByaW50X29wZW5fc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgcHJpbnRfY2xvc2VfdGFnIHMgPSBmdW5zLnByaW50X2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAge21hcmtfb3Blbl90YWc7IG1hcmtfY2xvc2VfdGFnOyBwcmludF9vcGVuX3RhZzsgcHJpbnRfY2xvc2VfdGFnfVxuXG5sZXQgc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogYWxpYXMgdG8gYXZvaWQgd2FybmluZyBmb3IgYW1iaWd1aXR5IGJldHdlZW5cbiAgIFN0ZGxpYi5mb3JtYXQ2XG4gICBhbmQgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcblxuICAgKHRoZSBmb3JtZXIgaXMgaW4gZmFjdCBhbiBhbGlhcyBmb3IgdGhlIGxhdHRlcixcbiAgICBidXQgdGhlIGFtYmlndWl0eSB3YXJuaW5nIGRvZXNuJ3QgY2FyZSlcbiopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIFN0ZGxpYi5mb3JtYXQ2XG5cblxuKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIHNjYW5uZXJzLiAqKVxuXG4oKiBTY2FubmluZyBidWZmZXJzLiAqKVxubW9kdWxlIHR5cGUgU0NBTk5JTkcgPSBzaWdcblxuICB0eXBlIGluX2NoYW5uZWxcblxuICB0eXBlIHNjYW5idWYgPSBpbl9jaGFubmVsXG5cbiAgdHlwZSBmaWxlX25hbWUgPSBzdHJpbmdcblxuICB2YWwgc3RkaW4gOiBpbl9jaGFubmVsXG4gICgqIFRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLlxuICAgICBbc3RkaWJdIGlzIGVxdWl2YWxlbnQgdG8gW1NjYW5uaW5nLmZyb21fY2hhbm5lbCBTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBzdGRpYiA6IGluX2NoYW5uZWxcbiAgKCogQW4gYWxpYXMgZm9yIFtTY2FuZi5zdGRpbl0sIHRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tXG4gICAgIFtTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBuZXh0X2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogW1NjYW5uaW5nLm5leHRfY2hhciBpYl0gYWR2YW5jZSB0aGUgc2Nhbm5pbmcgYnVmZmVyIGZvclxuICAgICBvbmUgY2hhcmFjdGVyLlxuICAgICBJZiBubyBtb3JlIGNoYXJhY3RlciBjYW4gYmUgcmVhZCwgc2V0cyBhIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJdIG1hcmsgdGhlIGN1cnJlbnRfY2hhciBhcyBhbHJlYWR5XG4gICAgIHNjYW5uZWQuICopXG5cbiAgdmFsIHBlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBbU2Nhbm5pbmcucGVla19jaGFyIGliXSByZXR1cm5zIHRoZSBjdXJyZW50IGNoYXIgYXZhaWxhYmxlIGluXG4gICAgIHRoZSBidWZmZXIgb3IgcmVhZHMgb25lIGlmIG5lY2Vzc2FyeSAod2hlbiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXNcbiAgICAgYWxyZWFkeSBzY2FubmVkKS5cbiAgICAgSWYgbm8gY2hhcmFjdGVyIGNhbiBiZSByZWFkLCBzZXRzIGFuIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBjaGVja2VkX3BlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBTYW1lIGFzIFtTY2FubmluZy5wZWVrX2NoYXJdIGFib3ZlIGJ1dCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGNoYXIgb3JcbiAgICAgZmFpbHM6IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgbnVsbCBjaGFyIHdoZW4gdGhlIHJlYWRpbmcgbWV0aG9kIG9mIHRoZVxuICAgICBpbnB1dCBidWZmZXIgaGFzIHJlYWNoZWQgYW4gZW5kIG9mIGZpbGUsIHRoZSBmdW5jdGlvbiByYWlzZXMgZXhjZXB0aW9uXG4gICAgIFtFbmRfb2ZfZmlsZV0uICopXG5cbiAgdmFsIHN0b3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBjaGFyIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuc3RvcmVfY2hhciBsaW0gaWIgY10gYWRkcyBbY10gdG8gdGhlIHRva2VuIGJ1ZmZlclxuICAgICBvZiB0aGUgc2Nhbm5pbmcgYnVmZmVyIFtpYl0uIEl0IGFsc28gYWR2YW5jZXMgdGhlIHNjYW5uaW5nIGJ1ZmZlciBmb3JcbiAgICAgb25lIGNoYXJhY3RlciBhbmQgcmV0dXJucyBbbGltIC0gMV0sIGluZGljYXRpbmcgdGhlIG5ldyBsaW1pdCBmb3IgdGhlXG4gICAgIGxlbmd0aCBvZiB0aGUgY3VycmVudCB0b2tlbi4gKilcblxuICB2YWwgc2tpcF9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5za2lwX2NoYXIgbGltIGliXSBpZ25vcmVzIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4gKilcblxuICB2YWwgaWdub3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmlnbm9yZV9jaGFyIGliIGxpbV0gaWdub3JlcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYW5kXG4gICAgIGRlY3JlbWVudHMgdGhlIGxpbWl0LiAqKVxuXG4gIHZhbCB0b2tlbiA6IHNjYW5idWYgLT4gc3RyaW5nXG4gICgqIFtTY2FubmluZy50b2tlbiBpYl0gcmV0dXJucyB0aGUgc3RyaW5nIHN0b3JlZCBpbnRvIHRoZSB0b2tlblxuICAgICBidWZmZXIgb2YgdGhlIHNjYW5uaW5nIGJ1ZmZlcjogaXQgcmV0dXJucyB0aGUgdG9rZW4gbWF0Y2hlZCBieSB0aGVcbiAgICAgZm9ybWF0LiAqKVxuXG4gIHZhbCByZXNldF90b2tlbiA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcucmVzZXRfdG9rZW4gaWJdIHJlc2V0cyB0aGUgdG9rZW4gYnVmZmVyIG9mXG4gICAgIHRoZSBnaXZlbiBzY2FubmluZyBidWZmZXIuICopXG5cbiAgdmFsIGNoYXJfY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuY2hhcl9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnNcbiAgICAgcmVhZCBzbyBmYXIgZnJvbSB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBsaW5lX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmxpbmVfY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiBuZXcgbGluZVxuICAgICBjaGFyYWN0ZXJzIHJlYWQgc28gZmFyIGZyb20gdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgdG9rZW5fY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcudG9rZW5fY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiB0b2tlbnMgcmVhZFxuICAgICBzbyBmYXIgZnJvbSBbaWJdLiAqKVxuXG4gIHZhbCBlb2YgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVvZiBpYl0gcmV0dXJucyB0aGUgZW5kIG9mIGlucHV0IGNvbmRpdGlvblxuICAgICBvZiB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBlbmRfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYl0gdGVzdHMgdGhlIGVuZCBvZiBpbnB1dCBjb25kaXRpb25cbiAgICAgb2YgdGhlIGdpdmVuIGJ1ZmZlciAoaWYgbm8gY2hhciBoYXMgZXZlciBiZWVuIHJlYWQsIGFuIGF0dGVtcHQgdG9cbiAgICAgcmVhZCBvbmUgaXMgcGVyZm9ybWVkKS4gKilcblxuICB2YWwgYmVnaW5uaW5nX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5iZWdpbm5pbmdfb2ZfaW5wdXQgaWJdIHRlc3RzIHRoZSBiZWdpbm5pbmcgb2YgaW5wdXRcbiAgICAgY29uZGl0aW9uIG9mIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIG5hbWVfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IHN0cmluZ1xuICAoKiBbU2Nhbm5pbmcubmFtZV9vZl9pbnB1dCBpYl0gcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY2hhcmFjdGVyXG4gICAgIHNvdXJjZSBmb3IgaW5wdXQgYnVmZmVyIFtpYl0uICopXG5cbiAgdmFsIG9wZW5faW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgb3Blbl9pbl9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9maWxlIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZmlsZV9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9zdHJpbmcgOiBzdHJpbmcgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9mdW5jdGlvbiA6ICh1bml0IC0+IGNoYXIpIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fY2hhbm5lbCA6IFN0ZGxpYi5pbl9jaGFubmVsIC0+IGluX2NoYW5uZWxcblxuICB2YWwgY2xvc2VfaW4gOiBpbl9jaGFubmVsIC0+IHVuaXRcblxuICB2YWwgbWVtb19mcm9tX2NoYW5uZWwgOiBTdGRsaWIuaW5fY2hhbm5lbCAtPiBpbl9jaGFubmVsXG4gICgqIE9ic29sZXRlLiAqKVxuXG5lbmRcblxuXG5tb2R1bGUgU2Nhbm5pbmcgOiBTQ0FOTklORyA9IHN0cnVjdFxuXG4gICgqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBzY2FuZi4gKilcblxuICB0eXBlIGZpbGVfbmFtZSA9IHN0cmluZ1xuXG4gIHR5cGUgaW5fY2hhbm5lbF9uYW1lID1cbiAgICB8IEZyb21fY2hhbm5lbCBvZiBTdGRsaWIuaW5fY2hhbm5lbFxuICAgIHwgRnJvbV9maWxlIG9mIGZpbGVfbmFtZSAqIFN0ZGxpYi5pbl9jaGFubmVsXG4gICAgfCBGcm9tX2Z1bmN0aW9uXG4gICAgfCBGcm9tX3N0cmluZ1xuXG5cbiAgdHlwZSBpbl9jaGFubmVsID0ge1xuICAgIG11dGFibGUgaWNfZW9mIDogYm9vbDtcbiAgICBtdXRhYmxlIGljX2N1cnJlbnRfY2hhciA6IGNoYXI7XG4gICAgbXV0YWJsZSBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgOiBib29sO1xuICAgIG11dGFibGUgaWNfY2hhcl9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGljX2xpbmVfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBpY190b2tlbl9jb3VudCA6IGludDtcbiAgICBpY19nZXRfbmV4dF9jaGFyIDogdW5pdCAtPiBjaGFyO1xuICAgIGljX3Rva2VuX2J1ZmZlciA6IEJ1ZmZlci50O1xuICAgIGljX2lucHV0X25hbWUgOiBpbl9jaGFubmVsX25hbWU7XG4gIH1cblxuXG4gIHR5cGUgc2NhbmJ1ZiA9IGluX2NoYW5uZWxcblxuICBsZXQgbnVsbF9jaGFyID0gJ1xcMDAwJ1xuXG4gICgqIFJlYWRzIGEgbmV3IGNoYXJhY3RlciBmcm9tIGlucHV0IGJ1ZmZlci5cbiAgICAgTmV4dF9jaGFyIG5ldmVyIGZhaWxzLCBldmVuIGluIGNhc2Ugb2YgZW5kIG9mIGlucHV0OlxuICAgICBpdCB0aGVuIHNpbXBseSBzZXRzIHRoZSBlbmQgb2YgZmlsZSBjb25kaXRpb24uICopXG4gIGxldCBuZXh0X2NoYXIgaWIgPVxuICAgIHRyeVxuICAgICAgbGV0IGMgPSBpYi5pY19nZXRfbmV4dF9jaGFyICgpIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSB0cnVlO1xuICAgICAgaWIuaWNfY2hhcl9jb3VudCA8LSBzdWNjIGliLmljX2NoYXJfY291bnQ7XG4gICAgICBpZiBjID0gJ1xcbicgdGhlbiBpYi5pY19saW5lX2NvdW50IDwtIHN1Y2MgaWIuaWNfbGluZV9jb3VudDtcbiAgICAgIGMgd2l0aFxuICAgIHwgRW5kX29mX2ZpbGUgLT5cbiAgICAgIGxldCBjID0gbnVsbF9jaGFyIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSBmYWxzZTtcbiAgICAgIGliLmljX2VvZiA8LSB0cnVlO1xuICAgICAgY1xuXG5cbiAgbGV0IHBlZWtfY2hhciBpYiA9XG4gICAgaWYgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkXG4gICAgdGhlbiBpYi5pY19jdXJyZW50X2NoYXJcbiAgICBlbHNlIG5leHRfY2hhciBpYlxuXG5cbiAgKCogUmV0dXJucyBhIHZhbGlkIGN1cnJlbnQgY2hhciBmb3IgdGhlIGlucHV0IGJ1ZmZlci4gSW4gcGFydGljdWxhclxuICAgICBubyBpcnJlbGV2YW50IG51bGwgY2hhcmFjdGVyIChhcyBzZXQgYnkgW25leHRfY2hhcl0gaW4gY2FzZSBvZiBlbmRcbiAgICAgb2YgaW5wdXQpIGlzIHJldHVybmVkLCBzaW5jZSBbRW5kX29mX2ZpbGVdIGlzIHJhaXNlZCB3aGVuXG4gICAgIFtuZXh0X2NoYXJdIHNldHMgdGhlIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiB3aGlsZSB0cnlpbmcgdG8gcmVhZCBhXG4gICAgIG5ldyBjaGFyYWN0ZXIuICopXG4gIGxldCBjaGVja2VkX3BlZWtfY2hhciBpYiA9XG4gICAgbGV0IGMgPSBwZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBpYi5pY19lb2YgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZTtcbiAgICBjXG5cblxuICBsZXQgZW5kX29mX2lucHV0IGliID1cbiAgICBpZ25vcmUgKHBlZWtfY2hhciBpYik7XG4gICAgaWIuaWNfZW9mXG5cblxuICBsZXQgZW9mIGliID0gaWIuaWNfZW9mXG5cbiAgbGV0IGJlZ2lubmluZ19vZl9pbnB1dCBpYiA9IGliLmljX2NoYXJfY291bnQgPSAwXG5cbiAgbGV0IG5hbWVfb2ZfaW5wdXQgaWIgPVxuICAgIG1hdGNoIGliLmljX2lucHV0X25hbWUgd2l0aFxuICAgIHwgRnJvbV9jaGFubmVsIF9pYyAtPiBcInVubmFtZWQgU3RkbGliIGlucHV0IGNoYW5uZWxcIlxuICAgIHwgRnJvbV9maWxlIChmbmFtZSwgX2ljKSAtPiBmbmFtZVxuICAgIHwgRnJvbV9mdW5jdGlvbiAtPiBcInVubmFtZWQgZnVuY3Rpb25cIlxuICAgIHwgRnJvbV9zdHJpbmcgLT4gXCJ1bm5hbWVkIGNoYXJhY3RlciBzdHJpbmdcIlxuXG5cbiAgbGV0IGNoYXJfY291bnQgaWIgPVxuICAgIGlmIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZFxuICAgIHRoZW4gaWIuaWNfY2hhcl9jb3VudCAtIDFcbiAgICBlbHNlIGliLmljX2NoYXJfY291bnRcblxuXG4gIGxldCBsaW5lX2NvdW50IGliID0gaWIuaWNfbGluZV9jb3VudFxuXG4gIGxldCByZXNldF90b2tlbiBpYiA9IEJ1ZmZlci5yZXNldCBpYi5pY190b2tlbl9idWZmZXJcblxuICBsZXQgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgPSBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gZmFsc2VcblxuICBsZXQgdG9rZW4gaWIgPVxuICAgIGxldCB0b2tlbl9idWZmZXIgPSBpYi5pY190b2tlbl9idWZmZXIgaW5cbiAgICBsZXQgdG9rID0gQnVmZmVyLmNvbnRlbnRzIHRva2VuX2J1ZmZlciBpblxuICAgIEJ1ZmZlci5jbGVhciB0b2tlbl9idWZmZXI7XG4gICAgaWIuaWNfdG9rZW5fY291bnQgPC0gc3VjYyBpYi5pY190b2tlbl9jb3VudDtcbiAgICB0b2tcblxuXG4gIGxldCB0b2tlbl9jb3VudCBpYiA9IGliLmljX3Rva2VuX2NvdW50XG5cbiAgbGV0IHNraXBfY2hhciB3aWR0aCBpYiA9XG4gICAgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7XG4gICAgd2lkdGhcblxuXG4gIGxldCBpZ25vcmVfY2hhciB3aWR0aCBpYiA9IHNraXBfY2hhciAod2lkdGggLSAxKSBpYlxuXG4gIGxldCBzdG9yZV9jaGFyIHdpZHRoIGliIGMgPVxuICAgIEJ1ZmZlci5hZGRfY2hhciBpYi5pY190b2tlbl9idWZmZXIgYztcbiAgICBpZ25vcmVfY2hhciB3aWR0aCBpYlxuXG5cbiAgbGV0IGRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemUgPSAxMDI0XG5cbiAgbGV0IGNyZWF0ZSBpbmFtZSBuZXh0ID0ge1xuICAgIGljX2VvZiA9IGZhbHNlO1xuICAgIGljX2N1cnJlbnRfY2hhciA9IG51bGxfY2hhcjtcbiAgICBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPSBmYWxzZTtcbiAgICBpY19jaGFyX2NvdW50ID0gMDtcbiAgICBpY19saW5lX2NvdW50ID0gMDtcbiAgICBpY190b2tlbl9jb3VudCA9IDA7XG4gICAgaWNfZ2V0X25leHRfY2hhciA9IG5leHQ7XG4gICAgaWNfdG9rZW5fYnVmZmVyID0gQnVmZmVyLmNyZWF0ZSBkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplO1xuICAgIGljX2lucHV0X25hbWUgPSBpbmFtZTtcbiAgfVxuXG5cbiAgbGV0IGZyb21fc3RyaW5nIHMgPVxuICAgIGxldCBpID0gcmVmIDAgaW5cbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gICAgbGV0IG5leHQgKCkgPVxuICAgICAgaWYgIWkgPj0gbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZVxuICAgICAgbGV0IGMgPSBzLlshaV0gaW5cbiAgICAgIGluY3IgaTtcbiAgICAgIGMgaW5cbiAgICBjcmVhdGUgRnJvbV9zdHJpbmcgbmV4dFxuXG5cbiAgbGV0IGZyb21fZnVuY3Rpb24gPSBjcmVhdGUgRnJvbV9mdW5jdGlvblxuXG4gICgqIFNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbC4gKilcblxuICAoKiBQb3NpdGlvbiBvZiB0aGUgcHJvYmxlbTpcblxuICAgICBXZSBjYW5ub3QgcHJldmVudCB0aGUgc2Nhbm5pbmcgbWVjaGFuaXNtIHRvIHVzZSBvbmUgbG9va2FoZWFkIGNoYXJhY3RlcixcbiAgICAgaWYgbmVlZGVkIGJ5IHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGZvcm1hdCBzdHJpbmcgc3BlY2lmaWNhdGlvbnMgKGUuZy4gYVxuICAgICB0cmFpbGluZyAnc2tpcCBzcGFjZScgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybWF0IHN0cmluZyk7IGluIHRoaXMgY2FzZSxcbiAgICAgdGhlIG1hbmRhdG9yeSBsb29rYWhlYWQgY2hhcmFjdGVyIGlzIGluZGVlZCByZWFkIGZyb20gdGhlIGlucHV0IGFuZCBub3RcbiAgICAgdXNlZCB0byByZXR1cm4gdGhlIHRva2VuIHJlYWQuIEl0IGlzIHRodXMgbWFuZGF0b3J5IHRvIGJlIGFibGUgdG8gc3RvcmVcbiAgICAgYW4gdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgc29tZXdoZXJlIHRvIGdldCBpdCBhcyB0aGUgZmlyc3QgY2hhcmFjdGVyXG4gICAgIG9mIHRoZSBuZXh0IHNjYW4uXG5cbiAgICAgVG8gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0sIGFsbCB0aGUgc2Nhbm5pbmcgZnVuY3Rpb25zIGdldCBhIGxvdyBsZXZlbFxuICAgICBpbnB1dCBidWZmZXIgYXJndW1lbnQgd2hlcmUgdGhleSBzdG9yZSB0aGUgbG9va2FoZWFkIGNoYXJhY3RlciB3aGVuXG4gICAgIG5lZWRlZDsgYWRkaXRpb25hbGx5LCB0aGUgaW5wdXQgYnVmZmVyIGlzIHRoZSBvbmx5IHNvdXJjZSBvZiBjaGFyYWN0ZXIgb2ZcbiAgICAgYSBzY2FubmVyLiBUaGUgW3NjYW5idWZdIGlucHV0IGJ1ZmZlcnMgYXJlIGRlZmluZWQgaW4gbW9kdWxlIHshU2Nhbm5pbmd9LlxuXG4gICAgIE5vdyB3ZSB1bmRlcnN0YW5kIHRoYXQgaXQgaXMgZXh0cmVtZWx5IGltcG9ydGFudCB0aGF0IHJlbGF0ZWQgYW5kXG4gICAgIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gc2Nhbm5lcnMgaW5kZWVkIHJlYWQgZnJvbSB0aGUgc2FtZSBpbnB1dCBidWZmZXIuXG4gICAgIEluIGVmZmVjdCwgaWYgYSBzY2FubmVyIFtzY2FuMV0gaXMgcmVhZGluZyBmcm9tIFtpYjFdIGFuZCBzdG9yZXMgYW5cbiAgICAgdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgW2MxXSBpbnRvIGl0cyBpbnB1dCBidWZmZXIgW2liMV0sIHRoZW5cbiAgICAgYW5vdGhlciBzY2FubmVyIFtzY2FuMl0gbm90IHJlYWRpbmcgZnJvbSB0aGUgc2FtZSBidWZmZXIgW2liMV0gd2lsbCBtaXNzXG4gICAgIHRoZSBjaGFyYWN0ZXIgW2MxXSwgc2VlbWluZ2x5IHZhbmlzaGVkIGluIHRoZSBhaXIgZnJvbSB0aGUgcG9pbnQgb2Ygdmlld1xuICAgICBvZiBbc2NhbjJdLlxuXG4gICAgIFRoaXMgbWVjaGFuaXNtIHdvcmtzIHBlcmZlY3RseSB0byByZWFkIGZyb20gc3RyaW5ncywgZnJvbSBmaWxlcywgYW5kIGZyb21cbiAgICAgZnVuY3Rpb25zLCBzaW5jZSBpbiB0aG9zZSBjYXNlcywgYWxsb2NhdGluZyB0d28gYnVmZmVycyByZWFkaW5nIGZyb20gdGhlXG4gICAgIHNhbWUgc291cmNlIGlzIHVubmF0dXJhbC5cblxuICAgICBTdGlsbCwgdGhlcmUgaXMgYSBkaWZmaWN1bHR5IGluIHRoZSBjYXNlIG9mIHNjYW5uaW5nIGZyb20gYW4gaW5wdXRcbiAgICAgY2hhbm5lbC4gSW4gZWZmZWN0LCB3aGVuIHNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbCBbaWNdLCB0aGlzIGNoYW5uZWxcbiAgICAgbWF5IG5vdCBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gd2l0aGluIHRoaXMgbGlicmFyeS4gSGVuY2UsIGl0IG1heSBiZVxuICAgICBzaGFyZWQgKHR3byBmdW5jdGlvbnMgb2YgdGhlIHVzZXIncyBwcm9ncmFtIG1heSBzdWNjZXNzaXZlbHkgcmVhZCBmcm9tXG4gICAgIFtpY10pLiBUaGlzIGlzIGhpZ2hseSBlcnJvciBwcm9uZSBzaW5jZSwgb25lIG9mIHRoZSBmdW5jdGlvbiBtYXkgc2VlayB0aGVcbiAgICAgaW5wdXQgY2hhbm5lbCwgd2hpbGUgdGhlIG90aGVyIGZ1bmN0aW9uIGhhcyBzdGlsbCBhbiB1bnVzZWQgbG9va2FoZWFkXG4gICAgIGNoYXJhY3RlciBpbiBpdHMgaW5wdXQgYnVmZmVyLiBJbiBjb25jbHVzaW9uLCB5b3Ugc2hvdWxkIG5ldmVyIG1peCBkaXJlY3RcbiAgICAgbG93IGxldmVsIHJlYWRpbmcgYW5kIGhpZ2ggbGV2ZWwgc2Nhbm5pbmcgZnJvbSB0aGUgc2FtZSBpbnB1dCBjaGFubmVsLlxuXG4gICopXG5cbiAgKCogUGVyZm9ybSBidWZmZXJpemVkIGlucHV0IHRvIGltcHJvdmUgZWZmaWNpZW5jeS4gKilcbiAgbGV0IGZpbGVfYnVmZmVyX3NpemUgPSByZWYgMTAyNFxuXG4gICgqIFRoZSBzY2FubmVyIGNsb3NlcyB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQuICopXG4gIGxldCBzY2FuX2Nsb3NlX2F0X2VuZCBpYyA9IFN0ZGxpYi5jbG9zZV9pbiBpYzsgcmFpc2UgRW5kX29mX2ZpbGVcblxuICAoKiBUaGUgc2Nhbm5lciBkb2VzIG5vdCBjbG9zZSB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQ6XG4gICAgIGl0IGp1c3QgcmFpc2VzIFtFbmRfb2ZfZmlsZV0uICopXG4gIGxldCBzY2FuX3JhaXNlX2F0X2VuZCBfaWMgPSByYWlzZSBFbmRfb2ZfZmlsZVxuXG4gIGxldCBmcm9tX2ljIHNjYW5fY2xvc2VfaWMgaW5hbWUgaWMgPVxuICAgIGxldCBsZW4gPSAhZmlsZV9idWZmZXJfc2l6ZSBpblxuICAgIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgbGVuIGluXG4gICAgbGV0IGkgPSByZWYgMCBpblxuICAgIGxldCBsaW0gPSByZWYgMCBpblxuICAgIGxldCBlb2YgPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgbmV4dCAoKSA9XG4gICAgICBpZiAhaSA8ICFsaW0gdGhlbiBiZWdpbiBsZXQgYyA9IEJ5dGVzLmdldCBidWYgIWkgaW4gaW5jciBpOyBjIGVuZCBlbHNlXG4gICAgICBpZiAhZW9mIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZSBiZWdpblxuICAgICAgICBsaW0gOj0gaW5wdXQgaWMgYnVmIDAgbGVuO1xuICAgICAgICBpZiAhbGltID0gMCB0aGVuIGJlZ2luIGVvZiA6PSB0cnVlOyBzY2FuX2Nsb3NlX2ljIGljIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgaSA6PSAxO1xuICAgICAgICAgIEJ5dGVzLmdldCBidWYgMFxuICAgICAgICBlbmRcbiAgICAgIGVuZCBpblxuICAgIGNyZWF0ZSBpbmFtZSBuZXh0XG5cblxuICBsZXQgZnJvbV9pY19jbG9zZV9hdF9lbmQgPSBmcm9tX2ljIHNjYW5fY2xvc2VfYXRfZW5kXG4gIGxldCBmcm9tX2ljX3JhaXNlX2F0X2VuZCA9IGZyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuICAoKiBUaGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXS5cbiAgICAgT25lIGNvdWxkIHRyeSB0byBkZWZpbmUgW3N0ZGliXSBhcyBhIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGEgY2hhcmFjdGVyXG4gICAgIGF0IGEgdGltZSAobm8gYnVmZmVyaXphdGlvbiBhdCBhbGwpLCBidXQgdW5mb3J0dW5hdGVseSB0aGUgdG9wLWxldmVsXG4gICAgIGludGVyYWN0aW9uIHdvdWxkIGJlIHdyb25nLiBUaGlzIGlzIGR1ZSB0byBzb21lIGtpbmQgb2ZcbiAgICAgJ3JhY2UgY29uZGl0aW9uJyB3aGVuIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXSxcbiAgICAgc2luY2UgdGhlIGludGVyYWN0aXZlIGNvbXBpbGVyIGFuZCBbU2NhbmYuc2NhbmZdIHdpbGwgc2ltdWx0YW5lb3VzbHlcbiAgICAgcmVhZCB0aGUgbWF0ZXJpYWwgdGhleSBuZWVkIGZyb20gW1N0ZGxpYi5zdGRpbl07IHRoZW4sIGNvbmZ1c2lvblxuICAgICB3aWxsIHJlc3VsdCBmcm9tIHdoYXQgc2hvdWxkIGJlIHJlYWQgYnkgdGhlIHRvcC1sZXZlbCBhbmQgd2hhdCBzaG91bGQgYmVcbiAgICAgcmVhZCBieSBbU2NhbmYuc2NhbmZdLlxuICAgICBUaGlzIGlzIGV2ZW4gbW9yZSBjb21wbGljYXRlZCBieSB0aGUgb25lIGNoYXJhY3RlciBsb29rYWhlYWQgdGhhdFxuICAgICBbU2NhbmYuc2NhbmZdIGlzIHNvbWV0aW1lcyBvYmxpZ2VkIHRvIG1haW50YWluOiB0aGUgbG9va2FoZWFkIGNoYXJhY3RlclxuICAgICB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgW1NjYW5mLnNjYW5mXSBlbnRyeSwgc2VlbWluZ2x5IGNvbWluZyBmcm9tXG4gICAgIG5vd2hlcmUuXG4gICAgIEFsc28gbm8gW0VuZF9vZl9maWxlXSBpcyByYWlzZWQgd2hlbiByZWFkaW5nIGZyb20gc3RkaW46IGlmIG5vdCBlbm91Z2hcbiAgICAgY2hhcmFjdGVycyBoYXZlIGJlZW4gcmVhZCwgd2Ugc2ltcGx5IGFzayB0byByZWFkIG1vcmUuICopXG4gIGxldCBzdGRpbiA9XG4gICAgZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuICAgICAgKEZyb21fZmlsZSAoXCItXCIsIFN0ZGxpYi5zdGRpbikpIFN0ZGxpYi5zdGRpblxuXG5cbiAgbGV0IHN0ZGliID0gc3RkaW5cblxuICBsZXQgb3Blbl9pbl9maWxlIG9wZW5faW4gZm5hbWUgPVxuICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICB8IFwiLVwiIC0+IHN0ZGluXG4gICAgfCBmbmFtZSAtPlxuICAgICAgbGV0IGljID0gb3Blbl9pbiBmbmFtZSBpblxuICAgICAgZnJvbV9pY19jbG9zZV9hdF9lbmQgKEZyb21fZmlsZSAoZm5hbWUsIGljKSkgaWNcblxuXG4gIGxldCBvcGVuX2luID0gb3Blbl9pbl9maWxlIFN0ZGxpYi5vcGVuX2luXG4gIGxldCBvcGVuX2luX2JpbiA9IG9wZW5faW5fZmlsZSBTdGRsaWIub3Blbl9pbl9iaW5cblxuICBsZXQgZnJvbV9maWxlID0gb3Blbl9pblxuICBsZXQgZnJvbV9maWxlX2JpbiA9IG9wZW5faW5fYmluXG5cbiAgbGV0IGZyb21fY2hhbm5lbCBpYyA9XG4gICAgZnJvbV9pY19yYWlzZV9hdF9lbmQgKEZyb21fY2hhbm5lbCBpYykgaWNcblxuXG4gIGxldCBjbG9zZV9pbiBpYiA9XG4gICAgbWF0Y2ggaWIuaWNfaW5wdXRfbmFtZSB3aXRoXG4gICAgfCBGcm9tX2NoYW5uZWwgaWMgLT5cbiAgICAgIFN0ZGxpYi5jbG9zZV9pbiBpY1xuICAgIHwgRnJvbV9maWxlIChfZm5hbWUsIGljKSAtPiBTdGRsaWIuY2xvc2VfaW4gaWNcbiAgICB8IEZyb21fZnVuY3Rpb24gfCBGcm9tX3N0cmluZyAtPiAoKVxuXG5cbiAgKCpcbiAgICAgT2Jzb2xldGU6IGEgbWVtbyBbZnJvbV9jaGFubmVsXSB2ZXJzaW9uIHRvIGJ1aWxkIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdXG4gICAgIHNjYW5uaW5nIGJ1ZmZlciBvdXQgb2YgYSBbU3RkbGliLmluX2NoYW5uZWxdLlxuICAgICBUaGlzIGZ1bmN0aW9uIHdhcyB1c2VkIHRvIHRyeSB0byBwcmVzZXJ2ZSB0aGUgc2Nhbm5pbmdcbiAgICAgc2VtYW50aWNzIGZvciB0aGUgKG5vdyBvYnNvbGV0ZSkgZnVuY3Rpb24gW2ZzY2FuZl0uXG4gICAgIEdpdmVuIHRoYXQgYWxsIHNjYW5uZXIgbXVzdCByZWFkIGZyb20gYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gc2Nhbm5pbmdcbiAgICAgYnVmZmVyLCBbZnNjYW5mXSBtdXN0IHJlYWQgZnJvbSBvbmUhXG4gICAgIE1vcmUgcHJlY2lzZWx5LCBnaXZlbiBbaWNdLCBhbGwgc3VjY2Vzc2l2ZSBjYWxscyBbZnNjYW5mIGljXSBtdXN0IHJlYWRcbiAgICAgZnJvbSB0aGUgc2FtZSBzY2FubmluZyBidWZmZXIuXG4gICAgIFRoaXMgb2JsaWdlZCB0aGlzIGxpYnJhcnkgdG8gYWxsb2NhdGVkIHNjYW5uaW5nIGJ1ZmZlcnMgdGhhdCB3ZXJlXG4gICAgIG5vdCBwcm9wZXJseSBnYXJiYWdlIGNvbGxlY3RhYmxlLCBoZW5jZSBsZWFkaW5nIHRvIG1lbW9yeSBsZWFrcy5cbiAgICAgSWYgeW91IG5lZWQgdG8gcmVhZCBmcm9tIGEgW1N0ZGxpYi5pbl9jaGFubmVsXSBpbnB1dCBjaGFubmVsXG4gICAgIFtpY10sIHNpbXBseSBkZWZpbmUgYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gZm9ybWF0dGVkIGlucHV0IGNoYW5uZWwgYXMgaW5cbiAgICAgW2xldCBpYiA9IFNjYW5uaW5nLmZyb21fY2hhbm5lbCBpY10sIHRoZW4gdXNlIFtTY2FuZi5ic2NhbmYgaWJdIGFzIHVzdWFsLlxuICAqKVxuICBsZXQgbWVtb19mcm9tX2ljID1cbiAgICBsZXQgbWVtbyA9IHJlZiBbXSBpblxuICAgIChmdW4gc2Nhbl9jbG9zZV9pYyBpYyAtPlxuICAgICB0cnkgTGlzdC5hc3NxIGljICFtZW1vIHdpdGhcbiAgICAgfCBOb3RfZm91bmQgLT5cbiAgICAgICBsZXQgaWIgPVxuICAgICAgICAgZnJvbV9pYyBzY2FuX2Nsb3NlX2ljIChGcm9tX2NoYW5uZWwgaWMpIGljIGluXG4gICAgICAgbWVtbyA6PSAoaWMsIGliKSA6OiAhbWVtbztcbiAgICAgICBpYilcblxuXG4gICgqIE9ic29sZXRlOiBzZWUgeyFtZW1vX2Zyb21faWN9IGFib3ZlLiAqKVxuICBsZXQgbWVtb19mcm9tX2NoYW5uZWwgPSBtZW1vX2Zyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuZW5kXG5cblxuKCogRm9ybWF0dGVkIGlucHV0IGZ1bmN0aW9ucy4gKilcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIHNjYW5uZXIgPVxuICAgICAoJ2EsIFNjYW5uaW5nLmluX2NoYW5uZWwsICdiLCAnYywgJ2EgLT4gJ2QsICdkKSBmb3JtYXQ2IC0+ICdjXG5cblxuKCogUmVwb3J0aW5nIGVycm9ycy4gKilcbmV4Y2VwdGlvbiBTY2FuX2ZhaWx1cmUgb2Ygc3RyaW5nXG5cbmxldCBiYWRfaW5wdXQgcyA9IHJhaXNlIChTY2FuX2ZhaWx1cmUgcylcblxubGV0IGJhZF9pbnB1dF9lc2NhcGUgYyA9XG4gIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbGxlZ2FsIGVzY2FwZSBjaGFyYWN0ZXIgJUNcIiBjKVxuXG5cbmxldCBiYWRfdG9rZW5fbGVuZ3RoIG1lc3NhZ2UgPVxuICBiYWRfaW5wdXRcbiAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICBcInNjYW5uaW5nIG9mICVzIGZhaWxlZDogXFxcbiAgICAgICAgdGhlIHNwZWNpZmllZCBsZW5ndGggd2FzIHRvbyBzaG9ydCBmb3IgdG9rZW5cIlxuICAgICAgIG1lc3NhZ2UpXG5cblxubGV0IGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSA9XG4gIGJhZF9pbnB1dFxuICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgIFwic2Nhbm5pbmcgb2YgJXMgZmFpbGVkOiBcXFxuICAgICAgICBwcmVtYXR1cmUgZW5kIG9mIGZpbGUgb2NjdXJyZWQgYmVmb3JlIGVuZCBvZiB0b2tlblwiXG4gICAgICAgbWVzc2FnZSlcblxuXG5sZXQgYmFkX2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm8gZG90IG9yIGV4cG9uZW50IHBhcnQgZm91bmQgaW4gZmxvYXQgdG9rZW5cIlxuXG5cbmxldCBiYWRfaGV4X2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm90IGEgdmFsaWQgZmxvYXQgaW4gaGV4YWRlY2ltYWwgbm90YXRpb25cIlxuXG5cbmxldCBjaGFyYWN0ZXJfbWlzbWF0Y2hfZXJyIGMgY2kgPVxuICBQcmludGYuc3ByaW50ZiBcImxvb2tpbmcgZm9yICVDLCBmb3VuZCAlQ1wiIGMgY2lcblxuXG5sZXQgY2hhcmFjdGVyX21pc21hdGNoIGMgY2kgPVxuICBiYWRfaW5wdXQgKGNoYXJhY3Rlcl9taXNtYXRjaF9lcnIgYyBjaSlcblxuXG5sZXQgcmVjIHNraXBfd2hpdGVzIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgbm90IChTY2FubmluZy5lb2YgaWIpIHRoZW4gYmVnaW5cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICcgJyB8ICdcXHQnIHwgJ1xcbicgfCAnXFxyJyAtPlxuICAgICAgU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7IHNraXBfd2hpdGVzIGliXG4gICAgfCBfIC0+ICgpXG4gIGVuZFxuXG5cbigqIENoZWNraW5nIHRoYXQgW2NdIGlzIGluZGVlZCBpbiB0aGUgaW5wdXQsIHRoZW4gc2tpcHMgaXQuXG4gICBJbiB0aGlzIGNhc2UsIHRoZSBjaGFyYWN0ZXIgW2NdIGhhcyBiZWVuIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZVxuICAgZm9ybWF0IGFzIGJlaW5nIG1hbmRhdG9yeSBpbiB0aGUgaW5wdXQ7IGhlbmNlIHdlIHNob3VsZCBmYWlsIHdpdGhcbiAgIFtFbmRfb2ZfZmlsZV0gaW4gY2FzZSBvZiBlbmRfb2ZfaW5wdXQuXG4gICAoUmVtZW1iZXIgdGhhdCBbU2Nhbl9mYWlsdXJlXSBpcyByYWlzZWQgb25seSB3aGVuICh3ZSBjYW4gcHJvdmUgYnlcbiAgIGV2aWRlbmNlKSB0aGF0IHRoZSBpbnB1dCBkb2VzIG5vdCBtYXRjaCB0aGUgZm9ybWF0IHN0cmluZyBnaXZlbi4gV2UgbXVzdFxuICAgdGh1cyBkaWZmZXJlbnRpYXRlIFtFbmRfb2ZfZmlsZV0gYXMgYW4gZXJyb3IgZHVlIHRvIGxhY2sgb2YgaW5wdXQsIGFuZFxuICAgW1NjYW5fZmFpbHVyZV0gd2hpY2ggaXMgZHVlIHRvIHByb3ZhYmx5IHdyb25nIGlucHV0LiBJIGFtIG5vdCBzdXJlIHRoaXMgaXNcbiAgIHdvcnRoIHRoZSBidXJkZW46IGl0IGlzIGNvbXBsZXggYW5kIHNvbWVob3cgc3VibGltaW5hbDsgc2hvdWxkIGJlIGNsZWFyZXJcbiAgIHRvIGZhaWwgd2l0aCBTY2FuX2ZhaWx1cmUgXCJOb3QgZW5vdWdoIGlucHV0IHRvIGNvbXBsZXRlIHNjYW5uaW5nXCIhKVxuXG4gICBUaGF0J3Mgd2h5LCB3YWl0aW5nIGZvciBhIGJldHRlciBzb2x1dGlvbiwgd2UgdXNlIGNoZWNrZWRfcGVla19jaGFyIGhlcmUuXG4gICBXZSBhcmUgYWxzbyBjYXJlZnVsIHRvIHRyZWF0IFwiXFxyXFxuXCIgaW4gdGhlIGlucHV0IGFzIGFuIGVuZCBvZiBsaW5lIG1hcmtlcjpcbiAgIGl0IGFsd2F5cyBtYXRjaGVzIGEgJ1xcbicgc3BlY2lmaWNhdGlvbiBpbiB0aGUgaW5wdXQgZm9ybWF0IHN0cmluZy4gKilcbmxldCByZWMgY2hlY2tfY2hhciBpYiBjID1cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJyAnIC0+IHNraXBfd2hpdGVzIGliXG4gIHwgJ1xcbicgLT4gY2hlY2tfbmV3bGluZSBpYlxuICB8IGMgLT4gY2hlY2tfdGhpc19jaGFyIGliIGNcblxuYW5kIGNoZWNrX3RoaXNfY2hhciBpYiBjID1cbiAgbGV0IGNpID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgaWYgY2kgPSBjIHRoZW4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgZWxzZVxuICBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5hbmQgY2hlY2tfbmV3bGluZSBpYiA9XG4gIGxldCBjaSA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGNpIHdpdGhcbiAgfCAnXFxuJyAtPiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICB8ICdcXHInIC0+IFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliOyBjaGVja190aGlzX2NoYXIgaWIgJ1xcbidcbiAgfCBfIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFxuJyBjaVxuXG5cbigqIEV4dHJhY3RpbmcgdG9rZW5zIGZyb20gdGhlIG91dHB1dCB0b2tlbiBidWZmZXIuICopXG5cbmxldCB0b2tlbl9jaGFyIGliID0gKFNjYW5uaW5nLnRva2VuIGliKS5bMF1cblxubGV0IHRva2VuX3N0cmluZyA9IFNjYW5uaW5nLnRva2VuXG5cbmxldCB0b2tlbl9ib29sIGliID1cbiAgbWF0Y2ggU2Nhbm5pbmcudG9rZW4gaWIgd2l0aFxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBzIC0+IGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbnZhbGlkIGJvb2xlYW4gJyVzJ1wiIHMpXG5cblxuKCogVGhlIHR5cGUgb2YgaW50ZWdlciBjb252ZXJzaW9ucy4gKilcbnR5cGUgaW50ZWdlcl9jb252ZXJzaW9uID1cbiAgfCBCX2NvbnZlcnNpb24gKCogVW5zaWduZWQgYmluYXJ5IGNvbnZlcnNpb24gKilcbiAgfCBEX2NvbnZlcnNpb24gKCogU2lnbmVkIGRlY2ltYWwgY29udmVyc2lvbiAqKVxuICB8IElfY29udmVyc2lvbiAoKiBTaWduZWQgaW50ZWdlciBjb252ZXJzaW9uICopXG4gIHwgT19jb252ZXJzaW9uICgqIFVuc2lnbmVkIG9jdGFsIGNvbnZlcnNpb24gKilcbiAgfCBVX2NvbnZlcnNpb24gKCogVW5zaWduZWQgZGVjaW1hbCBjb252ZXJzaW9uICopXG4gIHwgWF9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGhleGFkZWNpbWFsIGNvbnZlcnNpb24gKilcblxuXG5sZXQgaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgPSBmdW5jdGlvblxuICB8ICdiJyAtPiBCX2NvbnZlcnNpb25cbiAgfCAnZCcgLT4gRF9jb252ZXJzaW9uXG4gIHwgJ2knIC0+IElfY29udmVyc2lvblxuICB8ICdvJyAtPiBPX2NvbnZlcnNpb25cbiAgfCAndScgLT4gVV9jb252ZXJzaW9uXG4gIHwgJ3gnIHwgJ1gnIC0+IFhfY29udmVyc2lvblxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cblxuKCogRXh0cmFjdCBhbiBpbnRlZ2VyIGxpdGVyYWwgdG9rZW4uXG4gICBTaW5jZSB0aGUgZnVuY3Rpb25zIFN0ZGxpYi4qaW50Kl9vZl9zdHJpbmcgZG8gbm90IGFjY2VwdCBhIGxlYWRpbmcgKyxcbiAgIHdlIHNraXAgaXQgaWYgbmVjZXNzYXJ5LiAqKVxubGV0IHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIgPVxuICBsZXQgdG9rID1cbiAgICBtYXRjaCBjb252IHdpdGhcbiAgICB8IERfY29udmVyc2lvbiB8IElfY29udmVyc2lvbiAtPiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgVV9jb252ZXJzaW9uIC0+IFwiMHVcIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBPX2NvbnZlcnNpb24gLT4gXCIwb1wiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IFhfY29udmVyc2lvbiAtPiBcIjB4XCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgQl9jb252ZXJzaW9uIC0+IFwiMGJcIiBeIFNjYW5uaW5nLnRva2VuIGliIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCB0b2sgaW5cbiAgaWYgbCA9IDAgfHwgdG9rLlswXSA8PiAnKycgdGhlbiB0b2sgZWxzZSBTdHJpbmcuc3ViIHRvayAxIChsIC0gMSlcblxuXG4oKiBBbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IGNvbnZlcnQgYSBzdHJpbmcgdG8gYSBudW1iZXIgcmFpc2UgdGhlIGV4Y2VwdGlvblxuICAgRmFpbHVyZSB3aGVuIHRoZSBjb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZS5cbiAgIFRoaXMgZXhjZXB0aW9uIGlzIHRoZW4gdHJhcHBlZCBpbiBba3NjYW5mXS4gKilcbmxldCB0b2tlbl9pbnQgY29udiBpYiA9IGludF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5cbmxldCB0b2tlbl9mbG9hdCBpYiA9IGZsb2F0X29mX3N0cmluZyAoU2Nhbm5pbmcudG9rZW4gaWIpXG5cbigqIFRvIHNjYW4gbmF0aXZlIGludHMsIGludDMyIGFuZCBpbnQ2NCBpbnRlZ2Vycy5cbiAgIFdlIGNhbm5vdCBhY2Nlc3MgdG8gY29udmVyc2lvbnMgdG8vZnJvbSBzdHJpbmdzIGZvciB0aG9zZSB0eXBlcyxcbiAgIE5hdGl2ZWludC5vZl9zdHJpbmcsIEludDMyLm9mX3N0cmluZywgYW5kIEludDY0Lm9mX3N0cmluZyxcbiAgIHNpbmNlIHRob3NlIG1vZHVsZXMgYXJlIG5vdCBhdmFpbGFibGUgdG8gW1NjYW5mXS5cbiAgIEhvd2V2ZXIsIHdlIGNhbiBiaW5kIGFuZCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgcHJpbWl0aXZlcyB0aGF0IGFyZVxuICAgYXZhaWxhYmxlIGluIHRoZSBydW50aW1lLiAqKVxuZXh0ZXJuYWwgbmF0aXZlaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBuYXRpdmVpbnRcbiAgPSBcImNhbWxfbmF0aXZlaW50X29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIGludDMyX29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCBpbnQ2NF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxuXG5sZXQgdG9rZW5fbmF0aXZlaW50IGNvbnYgaWIgPSBuYXRpdmVpbnRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxubGV0IHRva2VuX2ludDMyIGNvbnYgaWIgPSBpbnQzMl9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5sZXQgdG9rZW5faW50NjQgY29udiBpYiA9IGludDY0X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcblxuKCogU2Nhbm5pbmcgbnVtYmVycy4gKilcblxuKCogRGlnaXRzIHNjYW5uaW5nIGZ1bmN0aW9ucyBzdXBwb3NlIHRoYXQgb25lIGNoYXJhY3RlciBoYXMgYmVlbiBjaGVja2VkIGFuZFxuICAgaXMgYXZhaWxhYmxlLCBzaW5jZSB0aGV5IHJldHVybiBhdCBlbmQgb2YgZmlsZSB3aXRoIHRoZSBjdXJyZW50bHkgZm91bmRcbiAgIHRva2VuIHNlbGVjdGVkLlxuXG4gICBQdXQgaXQgaW4gYW5vdGhlciB3YXksIHRoZSBkaWdpdHMgc2Nhbm5pbmcgZnVuY3Rpb25zIHNjYW4gZm9yIGEgcG9zc2libHlcbiAgIGVtcHR5IHNlcXVlbmNlIG9mIGRpZ2l0cywgKGhlbmNlLCBhIHN1Y2Nlc3NmdWwgc2Nhbm5pbmcgZnJvbSBvbmUgb2YgdGhvc2VcbiAgIGZ1bmN0aW9ucyBkb2VzIG5vdCBpbXBseSB0aGF0IHRoZSB0b2tlbiBpcyBhIHdlbGwtZm9ybWVkIG51bWJlcjogdG8gZ2V0IGFcbiAgIHRydWUgbnVtYmVyLCBpdCBpcyBtYW5kYXRvcnkgdG8gY2hlY2sgdGhhdCBhdCBsZWFzdCBvbmUgdmFsaWQgZGlnaXQgaXNcbiAgIGF2YWlsYWJsZSBiZWZvcmUgY2FsbGluZyBvbmUgb2YgdGhlIGRpZ2l0IHNjYW5uaW5nIGZ1bmN0aW9ucykuICopXG5cbigqIFRoZSBkZWNpbWFsIGNhc2UgaXMgdHJlYXRlZCBlc3BlY2lhbGx5IGZvciBvcHRpbWl6YXRpb24gcHVycG9zZXMuICopXG5sZXQgcmVjIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgJ18nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG5sZXQgc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXMgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGVjaW1hbCBkaWdpdHNcIiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgYyAtPlxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJjaGFyYWN0ZXIgJUMgaXMgbm90IGEgZGVjaW1hbCBkaWdpdFwiIGMpXG5cblxuKCogVG8gc2NhbiBudW1iZXJzIGZyb20gb3RoZXIgYmFzZXMsIHdlIHVzZSBhIHByZWRpY2F0ZSBhcmd1bWVudCB0b1xuICAgc2NhbiBkaWdpdHMuICopXG5sZXQgc2Nhbl9kaWdpdF9zdGFyIGRpZ2l0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgc2Nhbl9kaWdpdHMgd2lkdGggaWIgPVxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8IGMgd2hlbiBkaWdpdHAgYyAtPlxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuICAgIHwgJ18nIC0+XG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYiBpblxuICAgICAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcbiAgICB8IF8gLT4gd2lkdGggaW5cbiAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9kaWdpdF9wbHVzIGJhc2lzIGRpZ2l0cCB3aWR0aCBpYiA9XG4gICgqIEVuc3VyZSB3ZSBoYXZlIGdvdCBlbm91Z2ggd2lkdGggbGVmdCxcbiAgICAgYW5kIHJlYWQgYXQgbGVhc3Qgb25lIGRpZ2l0LiAqKVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGlnaXRzXCIgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGlmIGRpZ2l0cCBjIHRoZW5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RpZ2l0X3N0YXIgZGlnaXRwIHdpZHRoIGliXG4gIGVsc2VcbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiY2hhcmFjdGVyICVDIGlzIG5vdCBhIHZhbGlkICVzIGRpZ2l0XCIgYyBiYXNpcylcblxuXG5sZXQgaXNfYmluYXJ5X2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzEnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5fYmluYXJ5X2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcImJpbmFyeVwiIGlzX2JpbmFyeV9kaWdpdFxuXG5sZXQgaXNfb2N0YWxfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnNycgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9vY3RhbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJvY3RhbFwiIGlzX29jdGFsX2RpZ2l0XG5cbmxldCBpc19oZXhhX2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzknIHwgJ2EnIC4uICdmJyB8ICdBJyAuLiAnRicgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9oZXhhZGVjaW1hbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJoZXhhZGVjaW1hbFwiIGlzX2hleGFfZGlnaXRcblxuKCogU2NhbiBhIGRlY2ltYWwgaW50ZWdlci4gKilcbmxldCBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50ID0gc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXNcblxubGV0IHNjYW5fc2lnbiB3aWR0aCBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJysnIC0+IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgY1xuICB8ICctJyAtPiBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGNcbiAgfCBfIC0+IHdpZHRoXG5cblxubGV0IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbigqIFNjYW4gYW4gdW5zaWduZWQgaW50ZWdlciB0aGF0IGNvdWxkIGJlIGdpdmVuIGluIGFueSAoY29tbW9uKSBiYXNpcy5cbiAgIElmIGRpZ2l0cyBhcmUgcHJlZml4ZWQgYnkgb25lIG9mIDB4LCAwWCwgMG8sIG9yIDBiLCB0aGUgbnVtYmVyIGlzXG4gICBhc3N1bWVkIHRvIGJlIHdyaXR0ZW4gcmVzcGVjdGl2ZWx5IGluIGhleGFkZWNpbWFsLCBoZXhhZGVjaW1hbCxcbiAgIG9jdGFsLCBvciBiaW5hcnkuICopXG5sZXQgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgYmVnaW4gbWF0Y2ggYyB3aXRoXG4gICAgfCAneCcgfCAnWCcgLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8ICdvJyAtPiBzY2FuX29jdGFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgJ2InIC0+IHNjYW5fYmluYXJ5X2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgXyAtPiBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBlbmRcbiAgfCBfIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9pbnRfY29udmVyc2lvbiBjb252IHdpZHRoIGliID1cbiAgbWF0Y2ggY29udiB3aXRoXG4gIHwgQl9jb252ZXJzaW9uIC0+IHNjYW5fYmluYXJ5X2ludCB3aWR0aCBpYlxuICB8IERfY29udmVyc2lvbiAtPiBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gIHwgSV9jb252ZXJzaW9uIC0+IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfaW50IHdpZHRoIGliXG4gIHwgT19jb252ZXJzaW9uIC0+IHNjYW5fb2N0YWxfaW50IHdpZHRoIGliXG4gIHwgVV9jb252ZXJzaW9uIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgfCBYX2NvbnZlcnNpb24gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG4oKiBTY2FubmluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzLiAqKVxuXG4oKiBGcmFjdGlvbmFsIHBhcnQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZWR1Y2VkIHRvIDAgZGlnaXRzLiAqKVxubGV0IHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIEV4cCBwYXJ0IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVkdWNlZCB0byAwIGRpZ2l0cy4gKilcbmxldCBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJ2UnIHwgJ0UnIGFzIGMgLT5cbiAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIFNjYW4gdGhlIGludGVnZXIgcGFydCBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciwgKG5vdCB1c2luZyB0aGVcbiAgIE9DYW1sIGxleGljYWwgY29udmVudGlvbiBzaW5jZSB0aGUgaW50ZWdlciBwYXJ0IGNhbiBiZSBlbXB0eSk6XG4gICBhbiBvcHRpb25hbCBzaWduLCBmb2xsb3dlZCBieSBhIHBvc3NpYmx5IGVtcHR5IHNlcXVlbmNlIG9mIGRlY2ltYWxcbiAgIGRpZ2l0cyAoZS5nLiAtLjEpLiAqKVxubGV0IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG5cblxuKCpcbiAgIEZvciB0aGUgdGltZSBiZWluZyB3ZSBoYXZlIChhcyBmb3VuZCBpbiBzY2FuZi5tbGkpOlxuICAgdGhlIGZpZWxkIHdpZHRoIGlzIGNvbXBvc2VkIG9mIGFuIG9wdGlvbmFsIGludGVnZXIgbGl0ZXJhbFxuICAgaW5kaWNhdGluZyB0aGUgbWF4aW1hbCB3aWR0aCBvZiB0aGUgdG9rZW4gdG8gcmVhZC5cbiAgIFVuZm9ydHVuYXRlbHksIHRoZSB0eXBlLWNoZWNrZXIgbGV0IHRoZSB1c2VyIHdyaXRlIGFuIG9wdGlvbmFsIHByZWNpc2lvbixcbiAgIHNpbmNlIHRoaXMgaXMgdmFsaWQgZm9yIHByaW50ZiBmb3JtYXQgc3RyaW5ncy5cblxuICAgVGh1cywgdGhlIG5leHQgc3RlcCBmb3IgU2NhbmYgaXMgdG8gc3VwcG9ydCBhIGZ1bGwgd2lkdGggYW5kIHByZWNpc2lvblxuICAgaW5kaWNhdGlvbiwgbW9yZSBvciBsZXNzIHNpbWlsYXIgdG8gdGhlIG9uZSBmb3IgcHJpbnRmLCBwb3NzaWJseSBleHRlbmRlZFxuICAgdG8gdGhlIHNwZWNpZmljYXRpb24gb2YgYSBbbWF4LCBtaW5dIHJhbmdlIGZvciB0aGUgd2lkdGggb2YgdGhlIHRva2VuIHJlYWRcbiAgIGZvciBzdHJpbmdzLiBTb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHNwZWMgZm9yIHNjYW5mLm1saTpcblxuICAgVGhlIG9wdGlvbmFsIFt3aWR0aF0gaXMgYW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSBtYXhpbWFsXG4gICB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZC4gRm9yIGluc3RhbmNlLCBbJTZkXSByZWFkcyBhbiBpbnRlZ2VyLFxuICAgaGF2aW5nIGF0IG1vc3QgNiBjaGFyYWN0ZXJzLlxuXG4gICBUaGUgb3B0aW9uYWwgW3ByZWNpc2lvbl0gaXMgYSBkb3QgWy5dIGZvbGxvd2VkIGJ5IGFuIGludGVnZXI6XG5cbiAgIC0gaW4gdGhlIGZsb2F0aW5nIHBvaW50IG51bWJlciBjb252ZXJzaW9ucyAoWyVmXSwgWyVlXSwgWyVnXSwgWyVGXSwgWyVFXSxcbiAgIGFuZCBbJUZdIGNvbnZlcnNpb25zLCB0aGUgW3ByZWNpc2lvbl0gaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZlxuICAgZGlnaXRzIHRoYXQgbWF5IGZvbGxvdyB0aGUgZGVjaW1hbCBwb2ludC4gRm9yIGluc3RhbmNlLCBbJS40Zl0gcmVhZHMgYVxuICAgW2Zsb2F0XSB3aXRoIGF0IG1vc3QgNCBmcmFjdGlvbmFsIGRpZ2l0cyxcblxuICAgLSBpbiB0aGUgc3RyaW5nIGNvbnZlcnNpb25zIChbJXNdLCBbJVNdLCBbJVxcWyByYW5nZSBcXF1dKSwgYW5kIGluIHRoZVxuICAgaW50ZWdlciBudW1iZXIgY29udmVyc2lvbnMgKFslaV0sIFslZF0sIFsldV0sIFsleF0sIFslb10sIGFuZCB0aGVpclxuICAgW2ludDMyXSwgW2ludDY0XSwgYW5kIFtuYXRpdmVfaW50XSBjb3JyZXNwb25kZW50KSwgdGhlIFtwcmVjaXNpb25dXG4gICBpbmRpY2F0ZXMgdGhlIHJlcXVpcmVkIG1pbmltdW0gd2lkdGggb2YgdGhlIHRva2VuIHJlYWQsXG5cbiAgIC0gb24gYWxsIG90aGVyIGNvbnZlcnNpb25zLCB0aGUgd2lkdGggYW5kIHByZWNpc2lvbiBzcGVjaWZ5IHRoZSBbbWF4LCBtaW5dXG4gICByYW5nZSBmb3IgdGhlIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLlxuKilcbmxldCBzY2FuX2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoLCBwcmVjaXNpb24gZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCwgcHJlY2lzaW9uIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJy4nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgbGV0IHdpZHRoID0gd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliKSBpblxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG4gIHwgXyAtPlxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG5cblxubGV0IGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGVycm9yIHN0ciA9XG4gIGxldCBsb3dlcmNhc2UgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnQScgLi4gJ1onIC0+XG4gICAgICBjaGFyX29mX2ludCAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIGludF9vZl9jaGFyICdhJylcbiAgICB8IF8gLT4gYyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHdpZHRoID0gcmVmIHdpZHRoIGluXG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBsb3dlcmNhc2UgYyA8PiBsb3dlcmNhc2Ugc3RyLltpXSB0aGVuIGVycm9yICgpO1xuICAgIGlmICF3aWR0aCA9IDAgdGhlbiBlcnJvciAoKTtcbiAgICB3aWR0aCA6PSBTY2FubmluZy5zdG9yZV9jaGFyICF3aWR0aCBpYiBjO1xuICBkb25lO1xuICAhd2lkdGhcblxuXG5sZXQgc2Nhbl9oZXhfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPiAoXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgbGV0IHdpZHRoID0gY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcInhcIiBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICcuJyB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWIgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICAgIHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5faGV4YWRlY2ltYWxfaW50IHByZWNpc2lvbiBpYilcbiAgICAgICAgICApXG4gICAgICAgICAgfCBfIC0+IHdpZHRoIGluXG4gICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICB8ICdwJyB8ICdQJyBhcyBjIC0+XG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICAgICAgICAgIHwgXyAtPiB3aWR0aFxuICApXG4gIHwgJ24nIHwgJ04nIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwiYW5cIlxuICB8ICdpJyB8ICdJJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcIm5maW5pdHlcIlxuICB8IF8gLT4gYmFkX2hleF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnLicgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAoKiBUaGUgZWZmZWN0aXZlIHdpZHRoIGF2YWlsYWJsZSBmb3Igc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCBpc1xuICAgICAgIHRoZSBtaW5pbXVtIG9mIGRlY2xhcmVkIHByZWNpc2lvbiBhbmQgd2lkdGggbGVmdC4gKilcbiAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAoKiBBZnRlciBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IHdpdGggW3ByZWNpc2lvbl0gcHJvdmlzaW9uYWwgd2lkdGgsXG4gICAgICAgW3dpZHRoX3ByZWNpc2lvbl0gaXMgbGVmdC4gKilcbiAgICBsZXQgd2lkdGhfcHJlY2lzaW9uID0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliIGluXG4gICAgKCogSGVuY2UsIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgdG9vayBleGFjdGx5XG4gICAgICAgW3ByZWNpc2lvbiAtIHdpZHRoX3ByZWNpc2lvbl0gY2hhcnMuICopXG4gICAgbGV0IGZyYWNfd2lkdGggPSBwcmVjaXNpb24gLSB3aWR0aF9wcmVjaXNpb24gaW5cbiAgICAoKiBBbmQgbmV3IHByb3Zpc2lvbmFsIHdpZHRoIGlzIFt3aWR0aCAtIHdpZHRoX3ByZWNpc2lvbi4gKilcbiAgICBsZXQgd2lkdGggPSB3aWR0aCAtIGZyYWNfd2lkdGggaW5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCAnZScgfCAnRScgLT5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCBfIC0+IGJhZF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT4gKFxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICB8ICd4JyB8ICdYJyBhcyBjIC0+IChcbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICAgIGxldCB3aWR0aCA9IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2hleGFkZWNpbWFsX2ludCBwcmVjaXNpb24gaWIpXG4gICAgICAgIClcbiAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGJhZF9mbG9hdCAoKSBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAncCcgfCAnUCcgYXMgYyAtPlxuICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgICAgICAgfCBfIC0+IHdpZHRoXG4gICAgKVxuICAgIHwgXyAtPlxuICAgICAgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliXG4gIClcbiAgfCAnMScgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgIHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYlxuKCogU3BlY2lhbCBjYXNlIG9mIG5hbiBhbmQgaW5maW5pdHk6XG4gIHwgJ2knIC0+XG4gIHwgJ24nIC0+XG4qKVxuICB8IF8gLT4gYmFkX2Zsb2F0ICgpXG5cblxuKCogU2NhbiBhIHJlZ3VsYXIgc3RyaW5nOlxuICAgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgYSBzcGFjZSwgaWYgbm8gc2Nhbm5pbmcgaW5kaWNhdGlvbiBoYXMgYmVlbiBnaXZlbjtcbiAgIG90aGVyd2lzZSwgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHNjYW5uaW5nXG4gICBpbmRpY2F0aW9uIFtzdHBdLlxuICAgSXQgYWxzbyBzdG9wcyBhdCBlbmQgb2YgZmlsZSBvciB3aGVuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGhhc1xuICAgYmVlbiByZWFkLiAqKVxubGV0IHNjYW5fc3RyaW5nIHN0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgbG9vcCB3aWR0aCA9XG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgbWF0Y2ggc3RwIHdpdGhcbiAgICAgIHwgU29tZSBjJyB3aGVuIGMgPSBjJyAtPiBTY2FubmluZy5za2lwX2NoYXIgd2lkdGggaWJcbiAgICAgIHwgU29tZSBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyB8ICdcXG4nIHwgJ1xccicgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaW5cbiAgbG9vcCB3aWR0aFxuXG5cbigqIFNjYW4gYSBjaGFyOiBwZWVrIHN0cmljdGx5IG9uZSBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCB3aGF0c29ldmVyLiAqKVxubGV0IHNjYW5fY2hhciB3aWR0aCBpYiA9XG4gICgqIFRoZSBjYXNlIHdpZHRoID0gMCBjb3VsZCBub3QgaGFwcGVuIGhlcmUsIHNpbmNlIGl0IGlzIHRlc3RlZCBiZWZvcmVcbiAgICAgY2FsbGluZyBzY2FuX2NoYXIsIGluIHRoZSBtYWluIHNjYW5uaW5nIGZ1bmN0aW9uLlxuICAgIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJhIGNoYXJhY3RlclwiIGVsc2UgKilcbiAgU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAoU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIpXG5cblxubGV0IGNoYXJfZm9yX2JhY2tzbGFzaCA9IGZ1bmN0aW9uXG4gIHwgJ24nIC0+ICdcXDAxMCdcbiAgfCAncicgLT4gJ1xcMDEzJ1xuICB8ICdiJyAtPiAnXFwwMDgnXG4gIHwgJ3QnIC0+ICdcXDAwOSdcbiAgfCBjIC0+IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgZGVjaW1hbCBkaWdpdCBjaGFyYWN0ZXIuICopXG5sZXQgZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMgPSBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG5cbmxldCBjaGFyX2Zvcl9kZWNpbWFsX2NvZGUgYzAgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTAwICogZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMwICtcbiAgICAgMTAgKiBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzEgK1xuICAgICAgICAgIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMiBpblxuICBpZiBjIDwgMCB8fCBjID4gMjU1IHRoZW5cbiAgICBiYWRfaW5wdXRcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICAgXCJiYWQgY2hhcmFjdGVyIGRlY2ltYWwgZW5jb2RpbmcgXFxcXCVjJWMlY1wiIGMwIGMxIGMyKSBlbHNlXG4gIGNoYXJfb2ZfaW50IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgaGV4YWRlY2ltYWwgZGlnaXQgY2hhcmFjdGVyLiAqKVxubGV0IGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYyA9XG4gIGxldCBkID0gaW50X29mX2NoYXIgYyBpblxuICAoKiBDb3VsZCBhbHNvIGJlOlxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJzknIHRoZW4gZCAtIGludF9vZl9jaGFyICcwJyBlbHNlXG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnRicgdGhlbiAxMCArIGQgLSBpbnRfb2ZfY2hhciAnQScgZWxzZVxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJ2YnIHRoZW4gMTAgKyBkIC0gaW50X29mX2NoYXIgJ2EnIGVsc2UgYXNzZXJ0IGZhbHNlXG4gICopXG4gIGlmIGQgPj0gaW50X29mX2NoYXIgJ2EnIHRoZW5cbiAgICBkIC0gODcgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICopIGVsc2VcbiAgaWYgZCA+PSBpbnRfb2ZfY2hhciAnQScgdGhlblxuICAgIGQgLSA1NSAgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICopIGVsc2VcbiAgICBkIC0gaW50X29mX2NoYXIgJzAnXG5cblxubGV0IGNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTYgKiBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMxICtcbiAgICAgICAgIGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzIgaW5cbiAgaWYgYyA8IDAgfHwgYyA+IDI1NSB0aGVuXG4gICAgYmFkX2lucHV0XG4gICAgICAoUHJpbnRmLnNwcmludGYgXCJiYWQgY2hhcmFjdGVyIGhleGFkZWNpbWFsIGVuY29kaW5nIFxcXFwlYyVjXCIgYzEgYzIpIGVsc2VcbiAgY2hhcl9vZl9pbnQgY1xuXG5cbigqIENhbGxlZCBpbiBwYXJ0aWN1bGFyIHdoZW4gZW5jb3VudGVyaW5nICdcXFxcJyBhcyBzdGFydGVyIG9mIGEgY2hhci5cbiAgIFN0b3BzIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyAnXFwnJy4gKilcbmxldCBjaGVja19uZXh0X2NoYXIgbWVzc2FnZSB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggbWVzc2FnZSBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSBlbHNlXG4gIGNcblxuXG5sZXQgY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyID0gY2hlY2tfbmV4dF9jaGFyIFwiYSBDaGFyXCJcbmxldCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyA9IGNoZWNrX25leHRfY2hhciBcImEgU3RyaW5nXCJcblxubGV0IHNjYW5fYmFja3NsYXNoX2NoYXIgd2lkdGggaWIgPVxuICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICB8ICdcXFxcJyB8ICdcXCcnIHwgJ1xcXCInIHwgJ24nIHwgJ3QnIHwgJ2InIHwgJ3InIGFzIGMgLT5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIChjaGFyX2Zvcl9iYWNrc2xhc2ggYylcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgZ2V0X2RpZ2l0ICgpID1cbiAgICAgIGxldCBjID0gU2Nhbm5pbmcubmV4dF9jaGFyIGliIGluXG4gICAgICBtYXRjaCBjIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyBhcyBjIC0+IGNcbiAgICAgIHwgYyAtPiBiYWRfaW5wdXRfZXNjYXBlIGMgaW5cbiAgICBsZXQgYzAgPSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfZGVjaW1hbF9jb2RlIGMwIGMxIGMyKVxuICB8ICd4JyAtPlxuICAgIGxldCBnZXRfZGlnaXQgKCkgPVxuICAgICAgbGV0IGMgPSBTY2FubmluZy5uZXh0X2NoYXIgaWIgaW5cbiAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIHwgJ0EnIC4uICdGJyB8ICdhJyAuLiAnZicgYXMgYyAtPiBjXG4gICAgICB8IGMgLT4gYmFkX2lucHV0X2VzY2FwZSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfaGV4YWRlY2ltYWxfY29kZSBjMSBjMilcbiAgfCBjIC0+XG4gICAgYmFkX2lucHV0X2VzY2FwZSBjXG5cblxuKCogU2NhbiBhIGNoYXJhY3RlciAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fY2FtbF9jaGFyIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXCcnIC0+IGZpbmRfY2hhciAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFwnJyBjXG5cbiAgYW5kIGZpbmRfY2hhciB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXFxcJyAtPlxuICAgICAgZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYikgaWIpXG4gICAgfCBjIC0+XG4gICAgICBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcJycgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXCcnIGMgaW5cblxuICBmaW5kX3N0YXJ0IHdpZHRoXG5cblxuKCogU2NhbiBhIGRlbGltaXRlZCBzdHJpbmcgKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXFwiJyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcXCInIGNcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxcIicgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8ICdcXFxcJyAtPiBzY2FuX2JhY2tzbGFzaCAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuXG4gIGFuZCBzY2FuX2JhY2tzbGFzaCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xccicgLT4gc2tpcF9uZXdsaW5lIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIHdpZHRoIGliKVxuXG4gIGFuZCBza2lwX25ld2xpbmUgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliICdcXHInKVxuXG4gIGFuZCBza2lwX3NwYWNlcyB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJyAnIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIHdpZHRoIGluXG5cbiAgZmluZF9zdGFydCB3aWR0aFxuXG5cbigqIFNjYW4gYSBib29sZWFuIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9ib29sIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBsZXQgbSA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAndCcgLT4gNFxuICAgIHwgJ2YnIC0+IDVcbiAgICB8IGMgLT5cbiAgICAgIGJhZF9pbnB1dFxuICAgICAgICAoUHJpbnRmLnNwcmludGYgXCJ0aGUgY2hhcmFjdGVyICVDIGNhbm5vdCBzdGFydCBhIGJvb2xlYW5cIiBjKSBpblxuICBzY2FuX3N0cmluZyBOb25lIG0gaWJcblxuXG4oKiBTY2FuIGEgc3RyaW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgaW4gY2hhcl9zZXQgYW5kIHRlcm1pbmF0ZWQgYnkgc2Nhbl9pbmRpY1xuICAgaWYgcHJvdmlkZWQuICopXG5sZXQgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCBzY2FuX2luZGljIHdpZHRoIGliID1cbiAgbGV0IHJlYyBzY2FuX2NoYXJzIGkgc3RwID1cbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIGkgPiAwICYmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSAmJlxuICAgICAgIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgJiZcbiAgICAgICBpbnRfb2ZfY2hhciBjIDw+IHN0cCB0aGVuXG4gICAgICBsZXQgXyA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgbWF4X2ludCBpYiBjIGluXG4gICAgICBzY2FuX2NoYXJzIChpIC0gMSkgc3RwIGluXG4gIG1hdGNoIHNjYW5faW5kaWMgd2l0aFxuICB8IE5vbmUgLT4gc2Nhbl9jaGFycyB3aWR0aCAoLTEpO1xuICB8IFNvbWUgYyAtPlxuICAgIHNjYW5fY2hhcnMgd2lkdGggKGludF9vZl9jaGFyIGMpO1xuICAgIGlmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSB0aGVuXG4gICAgICBsZXQgY2kgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICAgIGlmIGMgPSBjaVxuICAgICAgdGhlbiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICAgICAgZWxzZSBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5cbigqIFRoZSBnbG9iYWwgZXJyb3IgcmVwb3J0IGZ1bmN0aW9uIGZvciBbU2NhbmZdLiAqKVxubGV0IHNjYW5mX2JhZF9pbnB1dCBpYiA9IGZ1bmN0aW9uXG4gIHwgU2Nhbl9mYWlsdXJlIHMgfCBGYWlsdXJlIHMgLT5cbiAgICBsZXQgaSA9IFNjYW5uaW5nLmNoYXJfY291bnQgaWIgaW5cbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwic2NhbmY6IGJhZCBpbnB1dCBhdCBjaGFyIG51bWJlciAlaTogJXNcIiBpIHMpXG4gIHwgeCAtPiByYWlzZSB4XG5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIGEgY291bnRlciBmcm9tIGFuIGlucHV0IGJ1ZmZlci4gKilcbmxldCBnZXRfY291bnRlciBpYiBjb3VudGVyID1cbiAgbWF0Y2ggY291bnRlciB3aXRoXG4gIHwgTGluZV9jb3VudGVyIC0+IFNjYW5uaW5nLmxpbmVfY291bnQgaWJcbiAgfCBDaGFyX2NvdW50ZXIgLT4gU2Nhbm5pbmcuY2hhcl9jb3VudCBpYlxuICB8IFRva2VuX2NvdW50ZXIgLT4gU2Nhbm5pbmcudG9rZW5fY291bnQgaWJcblxuXG4oKiBDb21wdXRlIHRoZSB3aWR0aCBvZiBhIHBhZGRpbmcgb3B0aW9uIChzZWUgXCIlNDJ7XCIgYW5kIFwiJTEyMyhcIikuICopXG5sZXQgd2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBtYXhfaW50XG4gIHwgU29tZSB3aWR0aCAtPiB3aWR0aFxuXG5cbmxldCBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZyA9XG4gIGlmIGZtdGluZyA9IEVzY2FwZWRfcGVyY2VudCB0aGVuICclJywgXCJcIiBlbHNlXG4gICAgbGV0IHN0ciA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmcgaW5cbiAgICBsZXQgc3RwID0gc3RyLlsxXSBpblxuICAgIGxldCBzdWJfc3RyID0gU3RyaW5nLnN1YiBzdHIgMiAoU3RyaW5nLmxlbmd0aCBzdHIgLSAyKSBpblxuICAgIHN0cCwgc3ViX3N0clxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBSZWFkZXIgbWFuYWdlbWVudCAqKVxuXG4oKiBBIGNhbGwgdG8gdGFrZV9mb3JtYXRfcmVhZGVycyBvbiBhIGZvcm1hdCBpcyBldmFsdWF0ZWQgaW50byBmdW5jdGlvbnNcbiAgIHRha2luZyByZWFkZXJzIGFzIGFyZ3VtZW50cyBhbmQgYWdncmVnYXRlIHRoZW0gaW50byBhbiBoZXRlcm9nZW5lb3VzIGxpc3QgKilcbigqIFdoZW4gYWxsIHJlYWRlcnMgYXJlIHRha2VuLCBmaW5hbGx5IHBhc3MgdGhlIGxpc3Qgb2YgdGhlIHJlYWRlcnMgdG8gdGhlXG4gICBjb250aW51YXRpb24gay4gKilcbmxldCByZWMgdGFrZV9mb3JtYXRfcmVhZGVycyA6IHR5cGUgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgIGQgPVxuZnVuIGsgZm10IC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgUmVhZGVyIGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3RcbiAgfCBDaGFyIHJlc3QgICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU3RyaW5nIChfLCByZXN0KSAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDYW1sX3N0cmluZyAoXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50MzIgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBOYXRpdmVpbnQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludDY0IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRmxvYXQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBCb29sIChfLCByZXN0KSAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgVGhldGEgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGbHVzaCByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDdXN0b20gKF8sIF8sIHJlc3QpICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuXG4gIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQsIF8pKSwgcmVzdCkgLT5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdCBmbXQgcmVzdClcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10LCBfKSksIHJlc3QpIC0+XG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXQgZm10IHJlc3QpXG5cbiAgfCBGb3JtYXRfYXJnIChfLCBfLCByZXN0KSAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpICAgIC0+XG4gICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSkgcmVzdFxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgICAgICAgIC0+IHRha2VfaWdub3JlZF9mb3JtYXRfcmVhZGVycyBrIGlnbiByZXN0XG5cbiAgfCBFbmRfb2ZfZm9ybWF0ICAgICAgICAgICAgICAgICAgICAtPiBrIE5pbFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBmbXR0eSBjb21pbmcgZnJvbSBhIEZvcm1hdF9zdWJzdCBcIiUoLi4uJSlcIi4gKilcbmFuZCB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIDogdHlwZSB4IHkgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIHgsIHkpIGZtdHR5IC0+XG4gICAgICAoeSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgeCwgZSwgZikgZm10IC0+IGQgPVxuZnVuIGsgZm10dHkgZm10IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBSZWFkZXJfdHkgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdCBmbXRcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0IGZtdFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBTdHJpbmdfdHkgcmVzdCAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50X3R5IHJlc3QgICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBCb29sX3R5IHJlc3QgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IFRoZXRhX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEVuZF9vZl9mbXR0eSAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdHR5IHR5IHJlc3QpIGZtdFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBpZ25vcmVkIHBhcmFtZXRlci4gKilcbmFuZCB0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIHggeSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgeCwgeSkgaWdub3JlZCAtPlxuICAgICAgKHksIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIHgsIGUsIGYpIGZtdCAtPiBkID1cbmZ1biBrIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX3JlYWRlciAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBHZW5lcmljIHNjYW5uaW5nICopXG5cbigqIE1ha2UgYSBnZW5lcmljIHNjYW5uaW5nIGZ1bmN0aW9uLiAqKVxuKCogU2NhbiBhIHN0cmVhbSBhY2NvcmRpbmcgdG8gYSBmb3JtYXQgYW5kIHJlYWRlcnMgb2J0YWluZWQgYnlcbiAgIHRha2VfZm9ybWF0X3JlYWRlcnMsIGFuZCBhZ2dyZWdhdGUgc2Nhbm5lZCB2YWx1ZXMgaW50byBhblxuICAgaGV0ZXJvZ2VuZW91cyBsaXN0LiAqKVxuKCogUmV0dXJuIHRoZSBoZXRlcm9nZW5lb3VzIGxpc3Qgb2Ygc2Nhbm5lZCB2YWx1ZXMuICopXG5sZXQgcmVjIG1ha2Vfc2NhbmYgOiB0eXBlIGEgYyBkIGUgZi5cbiAgICBTY2FubmluZy5pbl9jaGFubmVsIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChkLCBlKSBoZXRlcl9saXN0IC0+IChhLCBmKSBoZXRlcl9saXN0ID1cbmZ1biBpYiBmbXQgcmVhZGVycyAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IENoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jaGFyIDAgaWIgaW5cbiAgICBsZXQgYyA9IHRva2VuX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX2NoYXIgMCBpYiBpblxuICAgIGxldCBjID0gdG9rZW5fY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgc3RwKSB3aWR0aCBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgc3RyX3Jlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpKSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSAneycpIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhblxuICAgICAgICAgICAgICAgICAgIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgJ1snKSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW5cbiAgICAgICAgICAgICAgICAgICB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgTm9uZSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG5cbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludCBjKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQzMiBjKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5fbmF0aXZlaW50IGMpXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludDY0IGMpXG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfRiB8IEZsb2F0X0NGKSksIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9jYW1sX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cpKSxcbiAgICAgICAgICAgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfaCB8IEZsb2F0X0gpKSwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2hleF9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiBfIF8gaWIgPSBzY2FuX2Jvb2wgaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX2Jvb2xcbiAgfCBBbHBoYSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiVhXFxcIlwiXG4gIHwgVGhldGEgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIldFxcXCJcIlxuICB8IEN1c3RvbSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiU/XFxcIiAoY3VzdG9tIGNvbnZlcnRlcilcIlxuICB8IFJlYWRlciBmbXRfcmVzdCAtPlxuICAgIGJlZ2luIG1hdGNoIHJlYWRlcnMgd2l0aFxuICAgIHwgQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpIC0+XG4gICAgICAgIGxldCB4ID0gcmVhZGVyIGliIGluXG4gICAgICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10X3Jlc3QgcmVhZGVyc19yZXN0KVxuICAgIHwgTmlsIC0+XG4gICAgICAgIGludmFsaWRfYXJnIFwic2NhbmY6IG1pc3NpbmcgcmVhZGVyXCJcbiAgICBlbmRcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgaWYgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgICBlbHNlIGJhZF9pbnB1dCBcImVuZCBvZiBpbnB1dCBub3QgZm91bmRcIlxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgc3RyO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiBjaHI7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyAod2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0KSBpYiBpblxuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mbXR0eSBzIGZtdHR5XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKGZtdCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgKHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCkgaWIgaW5cbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQsIGZtdCcgPVxuICAgICAgdHJ5XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10JyA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgKCogVE9ETzogZmluZCBhIHdheSB0byBhdm9pZCByZXBhcnNpbmcgdHdpY2UgKilcblxuICAgICAgICAoKiBUT0RPOiB0aGVzZSB0eXBlLWNoZWNrcyBiZWxvdyAqY2FuKiBmYWlsIGJlY2F1c2Ugb2YgdHlwZVxuICAgICAgICAgICBhbWJpZ3VpdHkgaW4gcHJlc2VuY2Ugb2YgaWdub3JlZC1yZWFkZXJzOiBcIiVfciVkXCIgYW5kIFwiJWQlX3JcIlxuICAgICAgICAgICBhcmUgdHlwZWQgaW4gdGhlIHNhbWUgd2F5LlxuXG4gICAgICAgICAgICMgU2NhbmYuc3NjYW5mIFwiXFxcIiVfciVkXFxcIjNcIiBcIiUoJWQlX3IlKVwiIGlnbm9yZVxuICAgICAgICAgICAgIChmdW4gZm10IG4gLT4gc3RyaW5nX29mX2Zvcm1hdCBmbXQsIG4pXG4gICAgICAgICAgIEV4Y2VwdGlvbjogQ2FtbGludGVybmFsRm9ybWF0LlR5cGVfbWlzbWF0Y2guXG5cbiAgICAgICAgICAgV2Ugc2hvdWxkIHByb3Blcmx5IGNhdGNoIHRoaXMgZXhjZXB0aW9uLlxuICAgICAgICAqKVxuICAgICAgICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCBmbXR0eSksXG4gICAgICAgIHR5cGVfZm9ybWF0IGZtdCcgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKEZvcm1hdCAoZm10LCBzKSxcbiAgICAgICAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycylcblxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgd2lkdGggPSB3aWR0aF9vZl9wYWRfb3B0IHdpZHRoX29wdCBpblxuICAgIHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKFNvbWUgc3RwKSB3aWR0aCBpYjtcbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgQ29ucyAocywgbWFrZV9zY2FuZiBpYiBzdHJfcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgbGV0IHdpZHRoID0gd2lkdGhfb2ZfcGFkX29wdCB3aWR0aF9vcHQgaW5cbiAgICBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IE5vbmUgd2lkdGggaWI7XG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBDb25zIChzLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgIGxldCBjb3VudCA9IGdldF9jb3VudGVyIGliIGNvdW50ZXIgaW5cbiAgICBDb25zIChjb3VudCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgKHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmb3JtYXR0aW5nX2xpdCk7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgJ0AnOyBjaGVja19jaGFyIGliICd7JztcbiAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVyc1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiAnQCc7IGNoZWNrX2NoYXIgaWIgJ1snO1xuICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzXG5cbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgbGV0IFBhcmFtX2Zvcm1hdF9FQkIgZm10JyA9IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdCBpblxuICAgIGJlZ2luIG1hdGNoIG1ha2Vfc2NhbmYgaWIgZm10JyByZWFkZXJzIHdpdGhcbiAgICB8IENvbnMgKF8sIGFyZ19yZXN0KSAtPiBhcmdfcmVzdFxuICAgIHwgTmlsIC0+IGFzc2VydCBmYWxzZVxuICAgIGVuZFxuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIE5pbFxuXG4oKiBDYXNlIGFuYWx5c2lzIG9uIHBhZGRpbmcgYW5kIHByZWNpc2lvbi4gKilcbigqIFJlamVjdCBmb3JtYXRzIGNvbnRhaW5pbmcgXCIlKlwiIG9yIFwiJS4qXCIuICopXG4oKiBQYXNzIHBhZGRpbmcgYW5kIHByZWNpc2lvbiB0byB0aGUgZ2VuZXJpYyBzY2FubmVyIGBzY2FuJy4gKilcbmFuZCBwYWRfcHJlY19zY2FuZiA6IHR5cGUgYSBjIGQgZSBmIHggeSB6IHQgLlxuICAgIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKGQsIGUpIGhldGVyX2xpc3QgLT4gKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+XG4gICAgICAoaW50IC0+IGludCAtPiBTY2FubmluZy5pbl9jaGFubmVsIC0+IHQpIC0+XG4gICAgICAoU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiB6KSAtPlxuICAgICAgKHgsIGYpIGhldGVyX2xpc3QgPVxuZnVuIGliIGZtdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gdG9rZW4gLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gbWF4X2ludCBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgbGV0IF8gPSBzY2FuIG1heF9pbnQgcCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gdyBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGxldCBfID0gc2NhbiB3IHAgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoTGVmdCwgXyksIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJS1cXFwiXCJcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCBfKSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuICB8IEFyZ19wYWRkaW5nIF8sIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAoKiBEZWZpbmluZyBbc2NhbmZdIGFuZCB2YXJpb3VzIGZsYXZvcnMgb2YgW3NjYW5mXSAqKVxuXG50eXBlICdhIGtzY2FuZl9yZXN1bHQgPSBBcmdzIG9mICdhIHwgRXhjIG9mIGV4blxuXG5sZXQga3NjYW5mIGliIGVmIChGb3JtYXQgKGZtdCwgc3RyKSkgPVxuICBsZXQgcmVjIGFwcGx5IDogdHlwZSBhIGIgLiBhIC0+IChhLCBiKSBoZXRlcl9saXN0IC0+IGIgPVxuICAgIGZ1biBmIGFyZ3MgLT4gbWF0Y2ggYXJncyB3aXRoXG4gICAgfCBDb25zICh4LCByKSAtPiBhcHBseSAoZiB4KSByXG4gICAgfCBOaWwgLT4gZlxuICBpblxuICBsZXQgayByZWFkZXJzIGYgPVxuICAgIFNjYW5uaW5nLnJlc2V0X3Rva2VuIGliO1xuICAgIG1hdGNoIHRyeSBBcmdzIChtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKSB3aXRoXG4gICAgICB8IChTY2FuX2ZhaWx1cmUgXyB8IEZhaWx1cmUgXyB8IEVuZF9vZl9maWxlKSBhcyBleGMgLT4gRXhjIGV4Y1xuICAgICAgfCBJbnZhbGlkX2FyZ3VtZW50IG1zZyAtPlxuICAgICAgICBpbnZhbGlkX2FyZyAobXNnIF4gXCIgaW4gZm9ybWF0IFxcXCJcIiBeIFN0cmluZy5lc2NhcGVkIHN0ciBeIFwiXFxcIlwiKVxuICAgIHdpdGhcbiAgICAgIHwgQXJncyBhcmdzIC0+IGFwcGx5IGYgYXJnc1xuICAgICAgfCBFeGMgZXhjIC0+IGVmIGliIGV4Y1xuICBpblxuICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG5cbigqKiopXG5cbmxldCBrYnNjYW5mID0ga3NjYW5mXG5sZXQgYnNjYW5mIGliIGZtdCA9IGtic2NhbmYgaWIgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG5sZXQga3NzY2FuZiBzIGVmIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGVmIGZtdFxubGV0IHNzY2FuZiBzIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxubGV0IHNjYW5mIGZtdCA9IGtzY2FuZiBTY2FubmluZy5zdGRpYiBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbigqKiopXG5cbigqIFNjYW5uaW5nIGZvcm1hdCBzdHJpbmdzLiAqKVxubGV0IGJzY2FuZl9mb3JtYXQgOlxuICBTY2FubmluZy5pbl9jaGFubmVsIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAnZykgLT4gJ2cgPVxuICBmdW4gaWIgZm9ybWF0IGYgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgbWF4X2ludCBpYiBpblxuICAgIGxldCBzdHIgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10JyA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mb3JtYXQgc3RyIGZvcm1hdFxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnIGluXG4gICAgZiBmbXQnXG5cblxubGV0IHNzY2FuZl9mb3JtYXQgOlxuICBzdHJpbmcgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICdnKSAtPiAnZyA9XG4gIGZ1biBzIGZvcm1hdCBmIC0+IGJzY2FuZl9mb3JtYXQgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGZvcm1hdCBmXG5cblxubGV0IGZvcm1hdF9mcm9tX3N0cmluZyBzIGZtdCA9XG4gIHNzY2FuZl9mb3JtYXQgKFwiXFxcIlwiIF4gU3RyaW5nLmVzY2FwZWQgcyBeIFwiXFxcIlwiKSBmbXQgKGZ1biB4IC0+IHgpXG5cblxubGV0IHVuZXNjYXBlZCBzID1cbiAgc3NjYW5mIChcIlxcXCJcIiBeIHMgXiBcIlxcXCJcIikgXCIlUyUhXCIgKGZ1biB4IC0+IHgpXG5cblxuKCogRGVwcmVjYXRlZCAqKVxubGV0IGtmc2NhbmYgaWMgZWYgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcubWVtb19mcm9tX2NoYW5uZWwgaWMpIGVmIGZtdFxubGV0IGZzY2FuZiBpYyBmbXQgPSBrc2NhbmYgKFNjYW5uaW5nLm1lbW9fZnJvbV9jaGFubmVsIGljKSBzY2FuZl9iYWRfaW5wdXQgZm10XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFJlZ2lzdGVyaW5nIE9DYW1sIHZhbHVlcyB3aXRoIHRoZSBDIHJ1bnRpbWUgZm9yIGxhdGVyIGNhbGxiYWNrcyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiBPYmoudCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCByZWdpc3RlciBuYW1lIHYgPVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIChPYmoucmVwciB2KVxuXG5sZXQgcmVnaXN0ZXJfZXhjZXB0aW9uIG5hbWUgKGV4biA6IGV4bikgPVxuICBsZXQgZXhuID0gT2JqLnJlcHIgZXhuIGluXG4gIGxldCBzbG90ID0gaWYgT2JqLnRhZyBleG4gPSBPYmoub2JqZWN0X3RhZyB0aGVuIGV4biBlbHNlIE9iai5maWVsZCBleG4gMCBpblxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIHNsb3RcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgIEplcm9tZSBWb3VpbGxvbiwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBPYmpcblxuKCoqKiogT2JqZWN0IHJlcHJlc2VudGF0aW9uICoqKiopXG5cbmV4dGVybmFsIHNldF9pZDogJ2EgLT4gJ2EgPSBcImNhbWxfc2V0X29vX2lkXCIgW0BAbm9hbGxvY11cblxuKCoqKiogT2JqZWN0IGNvcHkgKioqKilcblxubGV0IGNvcHkgbyA9XG4gIGxldCBvID0gKE9iai5vYmogKE9iai5kdXAgKE9iai5yZXByIG8pKSkgaW5cbiAgc2V0X2lkIG9cblxuKCoqKiogQ29tcHJlc3Npb24gb3B0aW9ucyAqKioqKVxuKCogUGFyYW1ldGVycyAqKVxudHlwZSBwYXJhbXMgPSB7XG4gICAgbXV0YWJsZSBjb21wYWN0X3RhYmxlIDogYm9vbDtcbiAgICBtdXRhYmxlIGNvcHlfcGFyZW50IDogYm9vbDtcbiAgICBtdXRhYmxlIGNsZWFuX3doZW5fY29weWluZyA6IGJvb2w7XG4gICAgbXV0YWJsZSByZXRyeV9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGJ1Y2tldF9zbWFsbF9zaXplIDogaW50XG4gIH1cblxubGV0IHBhcmFtcyA9IHtcbiAgY29tcGFjdF90YWJsZSA9IHRydWU7XG4gIGNvcHlfcGFyZW50ID0gdHJ1ZTtcbiAgY2xlYW5fd2hlbl9jb3B5aW5nID0gdHJ1ZTtcbiAgcmV0cnlfY291bnQgPSAzO1xuICBidWNrZXRfc21hbGxfc2l6ZSA9IDE2XG59XG5cbigqKioqIFBhcmFtZXRlcnMgKioqKilcblxubGV0IGluaXRpYWxfb2JqZWN0X3NpemUgPSAyXG5cbigqKioqIEl0ZW1zICoqKiopXG5cbnR5cGUgaXRlbSA9IER1bW15QSB8IER1bW15QiB8IER1bW15QyBvZiBpbnRcbmxldCBfID0gW0R1bW15QTsgRHVtbXlCOyBEdW1teUMgMF0gKCogdG8gYXZvaWQgd2FybmluZ3MgKilcblxubGV0IGR1bW15X2l0ZW0gPSAobWFnaWMgKCkgOiBpdGVtKVxuXG4oKioqKiBUeXBlcyAqKioqKVxuXG50eXBlIHRhZ1xudHlwZSBsYWJlbCA9IGludFxudHlwZSBjbG9zdXJlID0gaXRlbVxudHlwZSB0ID0gRHVtbXlBIHwgRHVtbXlCIHwgRHVtbXlDIG9mIGludFxubGV0IF8gPSBbRHVtbXlBOyBEdW1teUI7IER1bW15QyAwXSAoKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxuXG50eXBlIG9iaiA9IHQgYXJyYXlcbmV4dGVybmFsIHJldCA6IChvYmogLT4gJ2EpIC0+IGNsb3N1cmUgPSBcIiVpZGVudGl0eVwiXG5cbigqKioqIExhYmVscyAqKioqKVxuXG5sZXQgcHVibGljX21ldGhvZF9sYWJlbCBzIDogdGFnID1cbiAgbGV0IGFjY3UgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIGFjY3UgOj0gMjIzICogIWFjY3UgKyBDaGFyLmNvZGUgcy5baV1cbiAgZG9uZTtcbiAgKCogcmVkdWNlIHRvIDMxIGJpdHMgKilcbiAgYWNjdSA6PSAhYWNjdSBsYW5kICgxIGxzbCAzMSAtIDEpO1xuICAoKiBtYWtlIGl0IHNpZ25lZCBmb3IgNjQgYml0cyBhcmNoaXRlY3R1cmVzICopXG4gIGxldCB0YWcgPSBpZiAhYWNjdSA+IDB4M0ZGRkZGRkYgdGhlbiAhYWNjdSAtICgxIGxzbCAzMSkgZWxzZSAhYWNjdSBpblxuICAoKiBQcmludGYuZXByaW50ZiBcIiVzID0gJWRcXG5cIiBzIHRhZzsgZmx1c2ggc3RkZXJyOyAqKVxuICBtYWdpYyB0YWdcblxuKCoqKiogU3BhcnNlIGFycmF5ICoqKiopXG5cbm1vZHVsZSBWYXJzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHN0cmluZyBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSB2YXJzID0gaW50IFZhcnMudFxuXG5tb2R1bGUgTWV0aHMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gc3RyaW5nIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIG1ldGhzID0gbGFiZWwgTWV0aHMudFxubW9kdWxlIExhYnMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gbGFiZWwgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgbGFicyA9IGJvb2wgTGFicy50XG5cbigqIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhlIGZpcnN0IGZpZWxkIG9mIHRoaXMgc3RydWN0dXJlIGlzIFtzaXplXS4gKilcbnR5cGUgdGFibGUgPVxuIHsgbXV0YWJsZSBzaXplOiBpbnQ7XG4gICBtdXRhYmxlIG1ldGhvZHM6IGNsb3N1cmUgYXJyYXk7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbmFtZTogbWV0aHM7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbGFiZWw6IGxhYnM7XG4gICBtdXRhYmxlIHByZXZpb3VzX3N0YXRlczpcbiAgICAgKG1ldGhzICogbGFicyAqIChsYWJlbCAqIGl0ZW0pIGxpc3QgKiB2YXJzICpcbiAgICAgIGxhYmVsIGxpc3QgKiBzdHJpbmcgbGlzdCkgbGlzdDtcbiAgIG11dGFibGUgaGlkZGVuX21ldGhzOiAobGFiZWwgKiBpdGVtKSBsaXN0O1xuICAgbXV0YWJsZSB2YXJzOiB2YXJzO1xuICAgbXV0YWJsZSBpbml0aWFsaXplcnM6IChvYmogLT4gdW5pdCkgbGlzdCB9XG5cbmxldCBkdW1teV90YWJsZSA9XG4gIHsgbWV0aG9kcyA9IFt8IGR1bW15X2l0ZW0gfF07XG4gICAgbWV0aG9kc19ieV9uYW1lID0gTWV0aHMuZW1wdHk7XG4gICAgbWV0aG9kc19ieV9sYWJlbCA9IExhYnMuZW1wdHk7XG4gICAgcHJldmlvdXNfc3RhdGVzID0gW107XG4gICAgaGlkZGVuX21ldGhzID0gW107XG4gICAgdmFycyA9IFZhcnMuZW1wdHk7XG4gICAgaW5pdGlhbGl6ZXJzID0gW107XG4gICAgc2l6ZSA9IDAgfVxuXG5sZXQgdGFibGVfY291bnQgPSByZWYgMFxuXG4oKiBkdW1teV9tZXQgc2hvdWxkIGJlIGEgcG9pbnRlciwgc28gdXNlIGFuIGF0b20gKilcbmxldCBkdW1teV9tZXQgOiBpdGVtID0gb2JqIChPYmoubmV3X2Jsb2NrIDAgMClcbigqIGlmIGRlYnVnZ2luZyBpcyBuZWVkZWQsIHRoaXMgY291bGQgYmUgYSBnb29kIGlkZWE6ICopXG4oKiBsZXQgZHVtbXlfbWV0ICgpID0gZmFpbHdpdGggXCJVbmRlZmluZWQgbWV0aG9kXCIgKilcblxubGV0IHJlYyBmaXRfc2l6ZSBuID1cbiAgaWYgbiA8PSAyIHRoZW4gbiBlbHNlXG4gIGZpdF9zaXplICgobisxKS8yKSAqIDJcblxubGV0IG5ld190YWJsZSBwdWJfbGFiZWxzID1cbiAgaW5jciB0YWJsZV9jb3VudDtcbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBwdWJfbGFiZWxzIGluXG4gIGxldCBtZXRob2RzID0gQXJyYXkubWFrZSAobGVuKjIrMikgZHVtbXlfbWV0IGluXG4gIG1ldGhvZHMuKDApIDwtIG1hZ2ljIGxlbjtcbiAgbWV0aG9kcy4oMSkgPC0gbWFnaWMgKGZpdF9zaXplIGxlbiAqIFN5cy53b3JkX3NpemUgLyA4IC0gMSk7XG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvIG1ldGhvZHMuKGkqMiszKSA8LSBtYWdpYyBwdWJfbGFiZWxzLihpKSBkb25lO1xuICB7IG1ldGhvZHMgPSBtZXRob2RzO1xuICAgIG1ldGhvZHNfYnlfbmFtZSA9IE1ldGhzLmVtcHR5O1xuICAgIG1ldGhvZHNfYnlfbGFiZWwgPSBMYWJzLmVtcHR5O1xuICAgIHByZXZpb3VzX3N0YXRlcyA9IFtdO1xuICAgIGhpZGRlbl9tZXRocyA9IFtdO1xuICAgIHZhcnMgPSBWYXJzLmVtcHR5O1xuICAgIGluaXRpYWxpemVycyA9IFtdO1xuICAgIHNpemUgPSBpbml0aWFsX29iamVjdF9zaXplIH1cblxubGV0IHJlc2l6ZSBhcnJheSBuZXdfc2l6ZSA9XG4gIGxldCBvbGRfc2l6ZSA9IEFycmF5Lmxlbmd0aCBhcnJheS5tZXRob2RzIGluXG4gIGlmIG5ld19zaXplID4gb2xkX3NpemUgdGhlbiBiZWdpblxuICAgIGxldCBuZXdfYnVjayA9IEFycmF5Lm1ha2UgbmV3X3NpemUgZHVtbXlfbWV0IGluXG4gICAgQXJyYXkuYmxpdCBhcnJheS5tZXRob2RzIDAgbmV3X2J1Y2sgMCBvbGRfc2l6ZTtcbiAgICBhcnJheS5tZXRob2RzIDwtIG5ld19idWNrXG4gZW5kXG5cbmxldCBwdXQgYXJyYXkgbGFiZWwgZWxlbWVudCA9XG4gIHJlc2l6ZSBhcnJheSAobGFiZWwgKyAxKTtcbiAgYXJyYXkubWV0aG9kcy4obGFiZWwpIDwtIGVsZW1lbnRcblxuKCoqKiogQ2xhc3NlcyAqKioqKVxuXG5sZXQgbWV0aG9kX2NvdW50ID0gcmVmIDBcbmxldCBpbnN0X3Zhcl9jb3VudCA9IHJlZiAwXG5cbigqIHR5cGUgdCAqKVxudHlwZSBtZXRoID0gaXRlbVxuXG5sZXQgbmV3X21ldGhvZCB0YWJsZSA9XG4gIGxldCBpbmRleCA9IEFycmF5Lmxlbmd0aCB0YWJsZS5tZXRob2RzIGluXG4gIHJlc2l6ZSB0YWJsZSAoaW5kZXggKyAxKTtcbiAgaW5kZXhcblxubGV0IGdldF9tZXRob2RfbGFiZWwgdGFibGUgbmFtZSA9XG4gIHRyeVxuICAgIE1ldGhzLmZpbmQgbmFtZSB0YWJsZS5tZXRob2RzX2J5X25hbWVcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgbGFiZWwgPSBuZXdfbWV0aG9kIHRhYmxlIGluXG4gICAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtIE1ldGhzLmFkZCBuYW1lIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbmFtZTtcbiAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYmVsIHRydWUgdGFibGUubWV0aG9kc19ieV9sYWJlbDtcbiAgICBsYWJlbFxuXG5sZXQgZ2V0X21ldGhvZF9sYWJlbHMgdGFibGUgbmFtZXMgPVxuICBBcnJheS5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIG5hbWVzXG5cbmxldCBzZXRfbWV0aG9kIHRhYmxlIGxhYmVsIGVsZW1lbnQgPVxuICBpbmNyIG1ldGhvZF9jb3VudDtcbiAgaWYgTGFicy5maW5kIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgdGhlblxuICAgIHB1dCB0YWJsZSBsYWJlbCBlbGVtZW50XG4gIGVsc2VcbiAgICB0YWJsZS5oaWRkZW5fbWV0aHMgPC0gKGxhYmVsLCBlbGVtZW50KSA6OiB0YWJsZS5oaWRkZW5fbWV0aHNcblxubGV0IGdldF9tZXRob2QgdGFibGUgbGFiZWwgPVxuICB0cnkgTGlzdC5hc3NvYyBsYWJlbCB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgd2l0aCBOb3RfZm91bmQgLT4gdGFibGUubWV0aG9kcy4obGFiZWwpXG5cbmxldCB0b19saXN0IGFyciA9XG4gIGlmIGFyciA9PSBtYWdpYyAwIHRoZW4gW10gZWxzZSBBcnJheS50b19saXN0IGFyclxuXG5sZXQgbmFycm93IHRhYmxlIHZhcnMgdmlydF9tZXRocyBjb25jcl9tZXRocyA9XG4gIGxldCB2YXJzID0gdG9fbGlzdCB2YXJzXG4gIGFuZCB2aXJ0X21ldGhzID0gdG9fbGlzdCB2aXJ0X21ldGhzXG4gIGFuZCBjb25jcl9tZXRocyA9IHRvX2xpc3QgY29uY3JfbWV0aHMgaW5cbiAgbGV0IHZpcnRfbWV0aF9sYWJzID0gTGlzdC5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIHZpcnRfbWV0aHMgaW5cbiAgbGV0IGNvbmNyX21ldGhfbGFicyA9IExpc3QubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSBjb25jcl9tZXRocyBpblxuICB0YWJsZS5wcmV2aW91c19zdGF0ZXMgPC1cbiAgICAgKHRhYmxlLm1ldGhvZHNfYnlfbmFtZSwgdGFibGUubWV0aG9kc19ieV9sYWJlbCwgdGFibGUuaGlkZGVuX21ldGhzLFxuICAgICAgdGFibGUudmFycywgdmlydF9tZXRoX2xhYnMsIHZhcnMpXG4gICAgIDo6IHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgIFZhcnMuZm9sZFxuICAgICAgKGZ1biBsYWIgaW5mbyB0dmFycyAtPlxuICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmFycyB0aGVuIFZhcnMuYWRkIGxhYiBpbmZvIHR2YXJzIGVsc2UgdHZhcnMpXG4gICAgICB0YWJsZS52YXJzIFZhcnMuZW1wdHk7XG4gIGxldCBieV9uYW1lID0gcmVmIE1ldGhzLmVtcHR5IGluXG4gIGxldCBieV9sYWJlbCA9IHJlZiBMYWJzLmVtcHR5IGluXG4gIExpc3QuaXRlcjJcbiAgICAoZnVuIG1ldCBsYWJlbCAtPlxuICAgICAgIGJ5X25hbWUgOj0gTWV0aHMuYWRkIG1ldCBsYWJlbCAhYnlfbmFtZTtcbiAgICAgICBieV9sYWJlbCA6PVxuICAgICAgICAgIExhYnMuYWRkIGxhYmVsXG4gICAgICAgICAgICAodHJ5IExhYnMuZmluZCBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIHdpdGggTm90X2ZvdW5kIC0+IHRydWUpXG4gICAgICAgICAgICAhYnlfbGFiZWwpXG4gICAgY29uY3JfbWV0aHMgY29uY3JfbWV0aF9sYWJzO1xuICBMaXN0Lml0ZXIyXG4gICAgKGZ1biBtZXQgbGFiZWwgLT5cbiAgICAgICBieV9uYW1lIDo9IE1ldGhzLmFkZCBtZXQgbGFiZWwgIWJ5X25hbWU7XG4gICAgICAgYnlfbGFiZWwgOj0gTGFicy5hZGQgbGFiZWwgZmFsc2UgIWJ5X2xhYmVsKVxuICAgIHZpcnRfbWV0aHMgdmlydF9tZXRoX2xhYnM7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSAhYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSAhYnlfbGFiZWw7XG4gIHRhYmxlLmhpZGRlbl9tZXRocyA8LVxuICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAoZnVuICgobGFiLCBfKSBhcyBtZXQpIGhtIC0+XG4gICAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZpcnRfbWV0aF9sYWJzIHRoZW4gaG0gZWxzZSBtZXQ6OmhtKVxuICAgICAgIHRhYmxlLmhpZGRlbl9tZXRoc1xuICAgICAgIFtdXG5cbmxldCB3aWRlbiB0YWJsZSA9XG4gIGxldCAoYnlfbmFtZSwgYnlfbGFiZWwsIHNhdmVkX2hpZGRlbl9tZXRocywgc2F2ZWRfdmFycywgdmlydF9tZXRocywgdmFycykgPVxuICAgIExpc3QuaGQgdGFibGUucHJldmlvdXNfc3RhdGVzXG4gIGluXG4gIHRhYmxlLnByZXZpb3VzX3N0YXRlcyA8LSBMaXN0LnRsIHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgICBMaXN0LmZvbGRfbGVmdFxuICAgICAgIChmdW4gcyB2IC0+IFZhcnMuYWRkIHYgKFZhcnMuZmluZCB2IHRhYmxlLnZhcnMpIHMpXG4gICAgICAgc2F2ZWRfdmFycyB2YXJzO1xuICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBieV9sYWJlbDtcbiAgdGFibGUuaGlkZGVuX21ldGhzIDwtXG4gICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgIChmdW4gKChsYWIsIF8pIGFzIG1ldCkgaG0gLT5cbiAgICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmlydF9tZXRocyB0aGVuIGhtIGVsc2UgbWV0OjpobSlcbiAgICAgICB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgICAgICBzYXZlZF9oaWRkZW5fbWV0aHNcblxubGV0IG5ld19zbG90IHRhYmxlID1cbiAgbGV0IGluZGV4ID0gdGFibGUuc2l6ZSBpblxuICB0YWJsZS5zaXplIDwtIGluZGV4ICsgMTtcbiAgaW5kZXhcblxubGV0IG5ld192YXJpYWJsZSB0YWJsZSBuYW1lID1cbiAgdHJ5IFZhcnMuZmluZCBuYW1lIHRhYmxlLnZhcnNcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgaW5kZXggPSBuZXdfc2xvdCB0YWJsZSBpblxuICAgIGlmIG5hbWUgPD4gXCJcIiB0aGVuIHRhYmxlLnZhcnMgPC0gVmFycy5hZGQgbmFtZSBpbmRleCB0YWJsZS52YXJzO1xuICAgIGluZGV4XG5cbmxldCB0b19hcnJheSBhcnIgPVxuICBpZiBhcnIgPSBPYmoubWFnaWMgMCB0aGVuIFt8fF0gZWxzZSBhcnJcblxubGV0IG5ld19tZXRob2RzX3ZhcmlhYmxlcyB0YWJsZSBtZXRocyB2YWxzID1cbiAgbGV0IG1ldGhzID0gdG9fYXJyYXkgbWV0aHMgaW5cbiAgbGV0IG5tZXRocyA9IEFycmF5Lmxlbmd0aCBtZXRocyBhbmQgbnZhbHMgPSBBcnJheS5sZW5ndGggdmFscyBpblxuICBsZXQgcmVzID0gQXJyYXkubWFrZSAobm1ldGhzICsgbnZhbHMpIDAgaW5cbiAgZm9yIGkgPSAwIHRvIG5tZXRocyAtIDEgZG9cbiAgICByZXMuKGkpIDwtIGdldF9tZXRob2RfbGFiZWwgdGFibGUgbWV0aHMuKGkpXG4gIGRvbmU7XG4gIGZvciBpID0gMCB0byBudmFscyAtIDEgZG9cbiAgICByZXMuKGkrbm1ldGhzKSA8LSBuZXdfdmFyaWFibGUgdGFibGUgdmFscy4oaSlcbiAgZG9uZTtcbiAgcmVzXG5cbmxldCBnZXRfdmFyaWFibGUgdGFibGUgbmFtZSA9XG4gIHRyeSBWYXJzLmZpbmQgbmFtZSB0YWJsZS52YXJzIHdpdGggTm90X2ZvdW5kIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgZ2V0X3ZhcmlhYmxlcyB0YWJsZSBuYW1lcyA9XG4gIEFycmF5Lm1hcCAoZ2V0X3ZhcmlhYmxlIHRhYmxlKSBuYW1lc1xuXG5sZXQgYWRkX2luaXRpYWxpemVyIHRhYmxlIGYgPVxuICB0YWJsZS5pbml0aWFsaXplcnMgPC0gZjo6dGFibGUuaW5pdGlhbGl6ZXJzXG5cbigqXG5tb2R1bGUgS2V5cyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSB0YWcgYXJyYXkgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbmxldCBrZXlfbWFwID0gcmVmIEtleXMuZW1wdHlcbmxldCBnZXRfa2V5IHRhZ3MgOiBpdGVtID1cbiAgdHJ5IG1hZ2ljIChLZXlzLmZpbmQgdGFncyAha2V5X21hcCA6IHRhZyBhcnJheSlcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBrZXlfbWFwIDo9IEtleXMuYWRkIHRhZ3MgdGFncyAha2V5X21hcDtcbiAgICBtYWdpYyB0YWdzXG4qKVxuXG5sZXQgY3JlYXRlX3RhYmxlIHB1YmxpY19tZXRob2RzID1cbiAgaWYgcHVibGljX21ldGhvZHMgPT0gbWFnaWMgMCB0aGVuIG5ld190YWJsZSBbfHxdIGVsc2VcbiAgKCogW3B1YmxpY19tZXRob2RzXSBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciBmb3IgYnl0ZWNvZGUgKilcbiAgbGV0IHRhZ3MgPSBBcnJheS5tYXAgcHVibGljX21ldGhvZF9sYWJlbCBwdWJsaWNfbWV0aG9kcyBpblxuICBsZXQgdGFibGUgPSBuZXdfdGFibGUgdGFncyBpblxuICBBcnJheS5pdGVyaVxuICAgIChmdW4gaSBtZXQgLT5cbiAgICAgIGxldCBsYWIgPSBpKjIrMiBpblxuICAgICAgdGFibGUubWV0aG9kc19ieV9uYW1lICA8LSBNZXRocy5hZGQgbWV0IGxhYiB0YWJsZS5tZXRob2RzX2J5X25hbWU7XG4gICAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYiB0cnVlIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwpXG4gICAgcHVibGljX21ldGhvZHM7XG4gIHRhYmxlXG5cbmxldCBpbml0X2NsYXNzIHRhYmxlID1cbiAgaW5zdF92YXJfY291bnQgOj0gIWluc3RfdmFyX2NvdW50ICsgdGFibGUuc2l6ZSAtIDE7XG4gIHRhYmxlLmluaXRpYWxpemVycyA8LSBMaXN0LnJldiB0YWJsZS5pbml0aWFsaXplcnM7XG4gIHJlc2l6ZSB0YWJsZSAoMyArIG1hZ2ljIHRhYmxlLm1ldGhvZHMuKDEpICogMTYgLyBTeXMud29yZF9zaXplKVxuXG5sZXQgaW5oZXJpdHMgY2xhIHZhbHMgdmlydF9tZXRocyBjb25jcl9tZXRocyAoXywgc3VwZXIsIF8sIGVudikgdG9wID1cbiAgbmFycm93IGNsYSB2YWxzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHM7XG4gIGxldCBpbml0ID1cbiAgICBpZiB0b3AgdGhlbiBzdXBlciBjbGEgZW52IGVsc2UgT2JqLnJlcHIgKHN1cGVyIGNsYSkgaW5cbiAgd2lkZW4gY2xhO1xuICBBcnJheS5jb25jYXRcbiAgICBbW3wgcmVwciBpbml0IHxdO1xuICAgICBtYWdpYyAoQXJyYXkubWFwIChnZXRfdmFyaWFibGUgY2xhKSAodG9fYXJyYXkgdmFscykgOiBpbnQgYXJyYXkpO1xuICAgICBBcnJheS5tYXBcbiAgICAgICAoZnVuIG5tIC0+IHJlcHIgKGdldF9tZXRob2QgY2xhIChnZXRfbWV0aG9kX2xhYmVsIGNsYSBubSkgOiBjbG9zdXJlKSlcbiAgICAgICAodG9fYXJyYXkgY29uY3JfbWV0aHMpIF1cblxubGV0IG1ha2VfY2xhc3MgcHViX21ldGhzIGNsYXNzX2luaXQgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgKGVudl9pbml0IChPYmoucmVwciAwKSwgY2xhc3NfaW5pdCwgZW52X2luaXQsIE9iai5yZXByIDApXG5cbnR5cGUgaW5pdF90YWJsZSA9IHsgbXV0YWJsZSBlbnZfaW5pdDogdDsgbXV0YWJsZSBjbGFzc19pbml0OiB0YWJsZSAtPiB0IH1cbltAQHdhcm5pbmcgXCItdW51c2VkLWZpZWxkXCJdXG5cbmxldCBtYWtlX2NsYXNzX3N0b3JlIHB1Yl9tZXRocyBjbGFzc19pbml0IGluaXRfdGFibGUgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgaW5pdF90YWJsZS5jbGFzc19pbml0IDwtIGNsYXNzX2luaXQ7XG4gIGluaXRfdGFibGUuZW52X2luaXQgPC0gZW52X2luaXRcblxubGV0IGR1bW15X2NsYXNzIGxvYyA9XG4gIGxldCB1bmRlZiA9IGZ1biBfIC0+IHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpIGluXG4gIChPYmoubWFnaWMgdW5kZWYsIHVuZGVmLCB1bmRlZiwgT2JqLnJlcHIgMClcblxuKCoqKiogT2JqZWN0cyAqKioqKVxuXG5sZXQgY3JlYXRlX29iamVjdCB0YWJsZSA9XG4gICgqIFhYWCBBcHBlbCBkZSBbb2JqX2Jsb2NrXSB8IENhbGwgdG8gW29ial9ibG9ja10gICopXG4gIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgKCogWFhYIEFwcGVsIGRlIFtjYW1sX21vZGlmeV0gfCBDYWxsIHRvIFtjYW1sX21vZGlmeV0gKilcbiAgT2JqLnNldF9maWVsZCBvYmogMCAoT2JqLnJlcHIgdGFibGUubWV0aG9kcyk7XG4gIE9iai5vYmogKHNldF9pZCBvYmopXG5cbmxldCBjcmVhdGVfb2JqZWN0X29wdCBvYmpfMCB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9ial8wIGVsc2UgYmVnaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW29ial9ibG9ja10gfCBDYWxsIHRvIFtvYmpfYmxvY2tdICAqKVxuICAgIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW2NhbWxfbW9kaWZ5XSB8IENhbGwgdG8gW2NhbWxfbW9kaWZ5XSAqKVxuICAgIE9iai5zZXRfZmllbGQgb2JqIDAgKE9iai5yZXByIHRhYmxlLm1ldGhvZHMpO1xuICAgIE9iai5vYmogKHNldF9pZCBvYmopXG4gIGVuZFxuXG5sZXQgcmVjIGl0ZXJfZiBvYmogPVxuICBmdW5jdGlvblxuICAgIFtdICAgLT4gKClcbiAgfCBmOjpsIC0+IGYgb2JqOyBpdGVyX2Ygb2JqIGxcblxubGV0IHJ1bl9pbml0aWFsaXplcnMgb2JqIHRhYmxlID1cbiAgbGV0IGluaXRzID0gdGFibGUuaW5pdGlhbGl6ZXJzIGluXG4gIGlmIGluaXRzIDw+IFtdIHRoZW5cbiAgICBpdGVyX2Ygb2JqIGluaXRzXG5cbmxldCBydW5faW5pdGlhbGl6ZXJzX29wdCBvYmpfMCBvYmogdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmogZWxzZSBiZWdpblxuICAgIGxldCBpbml0cyA9IHRhYmxlLmluaXRpYWxpemVycyBpblxuICAgIGlmIGluaXRzIDw+IFtdIHRoZW4gaXRlcl9mIG9iaiBpbml0cztcbiAgICBvYmpcbiAgZW5kXG5cbmxldCBjcmVhdGVfb2JqZWN0X2FuZF9ydW5faW5pdGlhbGl6ZXJzIG9ial8wIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqXzAgZWxzZSBiZWdpblxuICAgIGxldCBvYmogPSBjcmVhdGVfb2JqZWN0IHRhYmxlIGluXG4gICAgcnVuX2luaXRpYWxpemVycyBvYmogdGFibGU7XG4gICAgb2JqXG4gIGVuZFxuXG4oKiBFcXVpdmFsZW50IHByaW1pdGl2ZSBiZWxvd1xubGV0IHNlbmRzZWxmIG9iaiBsYWIgPVxuICAobWFnaWMgb2JqIDogKG9iaiAtPiB0KSBhcnJheSBhcnJheSkuKDApLihsYWIpIG9ialxuKilcbmV4dGVybmFsIHNlbmQgOiBvYmogLT4gdGFnIC0+ICdhID0gXCIlc2VuZFwiXG5leHRlcm5hbCBzZW5kY2FjaGUgOiBvYmogLT4gdGFnIC0+IHQgLT4gaW50IC0+ICdhID0gXCIlc2VuZGNhY2hlXCJcbmV4dGVybmFsIHNlbmRzZWxmIDogb2JqIC0+IGxhYmVsIC0+ICdhID0gXCIlc2VuZHNlbGZcIlxuZXh0ZXJuYWwgZ2V0X3B1YmxpY19tZXRob2QgOiBvYmogLT4gdGFnIC0+IGNsb3N1cmVcbiAgICA9IFwiY2FtbF9nZXRfcHVibGljX21ldGhvZFwiIFtAQG5vYWxsb2NdXG5cbigqKioqIHRhYmxlIGNvbGxlY3Rpb24gYWNjZXNzICoqKiopXG5cbnR5cGUgdGFibGVzID1cbiAgfCBFbXB0eVxuICB8IENvbnMgb2Yge2tleSA6IGNsb3N1cmU7IG11dGFibGUgZGF0YTogdGFibGVzOyBtdXRhYmxlIG5leHQ6IHRhYmxlc31cblxubGV0IHNldF9kYXRhIHRhYmxlcyB2ID0gbWF0Y2ggdGFibGVzIHdpdGhcbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMuZGF0YSA8LSB2XG5sZXQgc2V0X25leHQgdGFibGVzIHYgPSBtYXRjaCB0YWJsZXMgd2l0aFxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0IDwtIHZcbmxldCBnZXRfa2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMua2V5XG5sZXQgZ2V0X2RhdGEgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5kYXRhXG5sZXQgZ2V0X25leHQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0XG5cbmxldCBidWlsZF9wYXRoIG4ga2V5cyB0YWJsZXMgPVxuICBsZXQgcmVzID0gQ29ucyB7a2V5ID0gT2JqLm1hZ2ljIDA7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICBsZXQgciA9IHJlZiByZXMgaW5cbiAgZm9yIGkgPSAwIHRvIG4gZG9cbiAgICByIDo9IENvbnMge2tleSA9IGtleXMuKGkpOyBkYXRhID0gIXI7IG5leHQgPSBFbXB0eX1cbiAgZG9uZTtcbiAgc2V0X2RhdGEgdGFibGVzICFyO1xuICByZXNcblxubGV0IHJlYyBsb29rdXBfa2V5cyBpIGtleXMgdGFibGVzID1cbiAgaWYgaSA8IDAgdGhlbiB0YWJsZXMgZWxzZVxuICBsZXQga2V5ID0ga2V5cy4oaSkgaW5cbiAgbGV0IHJlYyBsb29rdXBfa2V5ICh0YWJsZXM6dGFibGVzKSA9XG4gICAgaWYgZ2V0X2tleSB0YWJsZXMgPT0ga2V5IHRoZW5cbiAgICAgIG1hdGNoIGdldF9kYXRhIHRhYmxlcyB3aXRoXG4gICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgfCBDb25zIF8gYXMgdGFibGVzX2RhdGEgLT5cbiAgICAgICAgICBsb29rdXBfa2V5cyAoaS0xKSBrZXlzIHRhYmxlc19kYXRhXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZ2V0X25leHQgdGFibGVzIHdpdGhcbiAgICAgIHwgQ29ucyBfIGFzIG5leHQgLT4gbG9va3VwX2tleSBuZXh0XG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgbGV0IG5leHQgOiB0YWJsZXMgPSBDb25zIHtrZXk7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICAgICAgICAgIHNldF9uZXh0IHRhYmxlcyBuZXh0O1xuICAgICAgICAgIGJ1aWxkX3BhdGggKGktMSkga2V5cyBuZXh0XG4gIGluXG4gIGxvb2t1cF9rZXkgdGFibGVzXG5cbmxldCBsb29rdXBfdGFibGVzIHJvb3Qga2V5cyA9XG4gIG1hdGNoIGdldF9kYXRhIHJvb3Qgd2l0aFxuICB8IENvbnMgXyBhcyByb290X2RhdGEgLT5cbiAgICBsb29rdXBfa2V5cyAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RfZGF0YVxuICB8IEVtcHR5IC0+XG4gICAgYnVpbGRfcGF0aCAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RcblxuKCoqKiogYnVpbHRpbiBtZXRob2RzICoqKiopXG5cbmxldCBnZXRfY29uc3QgeCA9IHJldCAoZnVuIF9vYmogLT4geClcbmxldCBnZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiAtPiBBcnJheS51bnNhZmVfZ2V0IG9iaiBuKVxubGV0IGdldF9lbnYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbilcbmxldCBnZXRfbWV0aCBuICA9IHJldCAoZnVuIG9iaiAtPiBzZW5kc2VsZiBvYmogbilcbmxldCBzZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiB4IC0+IEFycmF5LnVuc2FmZV9zZXQgb2JqIG4geClcbmxldCBhcHBfY29uc3QgZiB4ID0gcmV0IChmdW4gX29iaiAtPiBmIHgpXG5sZXQgYXBwX3ZhciBmIG4gICA9IHJldCAoZnVuIG9iaiAtPiBmIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfZW52IGYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikpXG5sZXQgYXBwX21ldGggZiBuICA9IHJldCAoZnVuIG9iaiAtPiBmIChzZW5kc2VsZiBvYmogbikpXG5sZXQgYXBwX2NvbnN0X2NvbnN0IGYgeCB5ID0gcmV0IChmdW4gX29iaiAtPiBmIHggeSlcbmxldCBhcHBfY29uc3RfdmFyIGYgeCBuICAgPSByZXQgKGZ1biBvYmogLT4gZiB4IChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfY29uc3RfbWV0aCBmIHggbiA9IHJldCAoZnVuIG9iaiAtPiBmIHggKHNlbmRzZWxmIG9iaiBuKSlcbmxldCBhcHBfdmFyX2NvbnN0IGYgbiB4ID0gcmV0IChmdW4gb2JqIC0+IGYgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pIHgpXG5sZXQgYXBwX21ldGhfY29uc3QgZiBuIHggPSByZXQgKGZ1biBvYmogLT4gZiAoc2VuZHNlbGYgb2JqIG4pIHgpXG5sZXQgYXBwX2NvbnN0X2VudiBmIHggZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiB4IChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSlcbmxldCBhcHBfZW52X2NvbnN0IGYgZSBuIHggPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSB4KVxubGV0IG1ldGhfYXBwX2NvbnN0IG4geCA9IHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIHgpXG5sZXQgbWV0aF9hcHBfdmFyIG4gbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIChBcnJheS51bnNhZmVfZ2V0IG9iaiBtKSlcbmxldCBtZXRoX2FwcF9lbnYgbiBlIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKVxuICAgICAgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG0pKVxubGV0IG1ldGhfYXBwX21ldGggbiBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgKHNlbmRzZWxmIG9iaiBtKSlcbmxldCBzZW5kX2NvbnN0IG0geCBjID1cbiAgcmV0IChmdW4gb2JqIC0+IHNlbmRjYWNoZSB4IG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF92YXIgbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogbikgOiBvYmopIG1cbiAgICAgIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfZW52IG0gZSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGVcbiAgICAgIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXRcbiAgICAgICAgICAgICAgICAgICAgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pIDogb2JqKVxuICAgICAgbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX21ldGggbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKHNlbmRzZWxmIG9iaiBuKSBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IG5ld19jYWNoZSB0YWJsZSA9XG4gIGxldCBuID0gbmV3X21ldGhvZCB0YWJsZSBpblxuICBsZXQgbiA9XG4gICAgaWYgbiBtb2QgMiA9IDAgfHwgbiA+IDIgKyBtYWdpYyB0YWJsZS5tZXRob2RzLigxKSAqIDE2IC8gU3lzLndvcmRfc2l6ZVxuICAgIHRoZW4gbiBlbHNlIG5ld19tZXRob2QgdGFibGVcbiAgaW5cbiAgdGFibGUubWV0aG9kcy4obikgPC0gT2JqLm1hZ2ljIDA7XG4gIG5cblxudHlwZSBpbXBsID1cbiAgICBHZXRDb25zdFxuICB8IEdldFZhclxuICB8IEdldEVudlxuICB8IEdldE1ldGhcbiAgfCBTZXRWYXJcbiAgfCBBcHBDb25zdFxuICB8IEFwcFZhclxuICB8IEFwcEVudlxuICB8IEFwcE1ldGhcbiAgfCBBcHBDb25zdENvbnN0XG4gIHwgQXBwQ29uc3RWYXJcbiAgfCBBcHBDb25zdEVudlxuICB8IEFwcENvbnN0TWV0aFxuICB8IEFwcFZhckNvbnN0XG4gIHwgQXBwRW52Q29uc3RcbiAgfCBBcHBNZXRoQ29uc3RcbiAgfCBNZXRoQXBwQ29uc3RcbiAgfCBNZXRoQXBwVmFyXG4gIHwgTWV0aEFwcEVudlxuICB8IE1ldGhBcHBNZXRoXG4gIHwgU2VuZENvbnN0XG4gIHwgU2VuZFZhclxuICB8IFNlbmRFbnZcbiAgfCBTZW5kTWV0aFxuICB8IENsb3N1cmUgb2YgY2xvc3VyZVxuXG5sZXQgbWV0aG9kX2ltcGwgdGFibGUgaSBhcnIgPVxuICBsZXQgbmV4dCAoKSA9IGluY3IgaTsgbWFnaWMgYXJyLighaSkgaW5cbiAgbWF0Y2ggbmV4dCgpIHdpdGhcbiAgICBHZXRDb25zdCAtPiBsZXQgeCA6IHQgPSBuZXh0KCkgaW4gZ2V0X2NvbnN0IHhcbiAgfCBHZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfdmFyIG5cbiAgfCBHZXRFbnYgICAtPiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfZW52IGUgblxuICB8IEdldE1ldGggIC0+IGxldCBuID0gbmV4dCgpIGluIGdldF9tZXRoIG5cbiAgfCBTZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBzZXRfdmFyIG5cbiAgfCBBcHBDb25zdCAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBhcHBfY29uc3QgZiB4XG4gIHwgQXBwVmFyICAgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIGFwcF92YXIgZiBuXG4gIHwgQXBwRW52ICAgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluICBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2VudiBmIGUgblxuICB8IEFwcE1ldGggIC0+IGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBhcHBfbWV0aCBmIG5cbiAgfCBBcHBDb25zdENvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgeSA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2NvbnN0IGYgeCB5XG4gIHwgQXBwQ29uc3RWYXIgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfdmFyIGYgeCBuXG4gIHwgQXBwQ29uc3RFbnYgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCAoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2VudiBmIHggZSBuXG4gIHwgQXBwQ29uc3RNZXRoIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X21ldGggZiB4IG5cbiAgfCBBcHBWYXJDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF92YXJfY29uc3QgZiBuIHhcbiAgfCBBcHBFbnZDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0ICgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfZW52X2NvbnN0IGYgZSBuIHhcbiAgfCBBcHBNZXRoQ29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfbWV0aF9jb25zdCBmIG4geFxuICB8IE1ldGhBcHBDb25zdCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbWV0aF9hcHBfY29uc3QgbiB4XG4gIHwgTWV0aEFwcFZhciAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfdmFyIG4gbVxuICB8IE1ldGhBcHBFbnYgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluXG4gICAgICBtZXRoX2FwcF9lbnYgbiBlIG1cbiAgfCBNZXRoQXBwTWV0aCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfbWV0aCBuIG1cbiAgfCBTZW5kQ29uc3QgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIHNlbmRfY29uc3QgbSB4IChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZFZhciAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIHNlbmRfdmFyIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRFbnYgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBzZW5kX2VudiBtIGUgbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRNZXRoIC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gc2VuZF9tZXRoIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IENsb3N1cmUgXyBhcyBjbG8gLT4gbWFnaWMgY2xvXG5cbmxldCBzZXRfbWV0aG9kcyB0YWJsZSBtZXRob2RzID1cbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBtZXRob2RzIGluIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gZG9cbiAgICBsZXQgbGFiZWwgPSBtZXRob2RzLighaSkgaW4gbGV0IGNsbyA9IG1ldGhvZF9pbXBsIHRhYmxlIGkgbWV0aG9kcyBpblxuICAgIHNldF9tZXRob2QgdGFibGUgbGFiZWwgY2xvO1xuICAgIGluY3IgaVxuICBkb25lXG5cbigqKioqIFN0YXRpc3RpY3MgKioqKilcblxudHlwZSBzdGF0cyA9XG4gIHsgY2xhc3NlczogaW50OyBtZXRob2RzOiBpbnQ7IGluc3RfdmFyczogaW50OyB9XG5cbmxldCBzdGF0cyAoKSA9XG4gIHsgY2xhc3NlcyA9ICF0YWJsZV9jb3VudDtcbiAgICBtZXRob2RzID0gIW1ldGhvZF9jb3VudDsgaW5zdF92YXJzID0gIWluc3RfdmFyX2NvdW50OyB9XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDA0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc2hhcGUgPVxuICB8IEZ1bmN0aW9uXG4gIHwgTGF6eVxuICB8IENsYXNzXG4gIHwgTW9kdWxlIG9mIHNoYXBlIGFycmF5XG4gIHwgVmFsdWUgb2YgT2JqLnRcblxubGV0IHJlYyBpbml0X21vZF9maWVsZCBtb2R1IGkgbG9jIHNoYXBlID1cbiAgbGV0IGluaXQgPVxuICAgIG1hdGNoIHNoYXBlIHdpdGhcbiAgICB8IEZ1bmN0aW9uIC0+XG4gICAgICAgbGV0IHJlYyBmbiAoeCA6ICdhKSA9XG4gICAgICAgICBsZXQgZm4nIDogJ2EgLT4gJ2IgPSBPYmoub2JqIChPYmouZmllbGQgbW9kdSBpKSBpblxuICAgICAgICAgaWYgZm4gPT0gZm4nIHRoZW5cbiAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgZm4nIHggaW5cbiAgICAgICBPYmoucmVwciBmblxuICAgIHwgTGF6eSAtPlxuICAgICAgIGxldCByZWMgbCA9XG4gICAgICAgICBsYXp5IChcbiAgICAgICAgICAgbGV0IGwnID0gT2JqLm9iaiAoT2JqLmZpZWxkIG1vZHUgaSkgaW5cbiAgICAgICAgICAgaWYgbCA9PSBsJyB0aGVuXG4gICAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIExhenkuZm9yY2UgbCcpIGluXG4gICAgICAgT2JqLnJlcHIgbFxuICAgIHwgQ2xhc3MgLT5cbiAgICAgICBPYmoucmVwciAoQ2FtbGludGVybmFsT08uZHVtbXlfY2xhc3MgbG9jKVxuICAgIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgICB8IFZhbHVlIHYgLT4gdlxuICBpblxuICBPYmouc2V0X2ZpZWxkIG1vZHUgaSBpbml0XG5cbmFuZCBpbml0X21vZF9ibG9jayBsb2MgY29tcHMgPVxuICBsZXQgbGVuZ3RoID0gQXJyYXkubGVuZ3RoIGNvbXBzIGluXG4gIGxldCBtb2R1ID0gT2JqLm5ld19ibG9jayAwIGxlbmd0aCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIC0gMSBkb1xuICAgIGluaXRfbW9kX2ZpZWxkIG1vZHUgaSBsb2MgY29tcHMuKGkpXG4gIGRvbmU7XG4gIG1vZHVcblxubGV0IGluaXRfbW9kIGxvYyBzaGFwZSA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLmluaXRfbW9kOiBub3QgYSBtb2R1bGVcIlxuXG5sZXQgcmVjIHVwZGF0ZV9tb2RfZmllbGQgbW9kdSBpIHNoYXBlIG4gPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgRnVuY3Rpb24gfCBMYXp5IC0+XG4gICAgIE9iai5zZXRfZmllbGQgbW9kdSBpIG5cbiAgfCBWYWx1ZSBfIC0+XG4gICAgICgpICgqIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHRoZXJlICopXG4gIHwgQ2xhc3MgLT5cbiAgICAgYXNzZXJ0IChPYmoudGFnIG4gPSAwICYmIE9iai5zaXplIG4gPSA0KTtcbiAgICAgbGV0IGNsID0gT2JqLmZpZWxkIG1vZHUgaSBpblxuICAgICBmb3IgaiA9IDAgdG8gMyBkb1xuICAgICAgIE9iai5zZXRfZmllbGQgY2wgaiAoT2JqLmZpZWxkIG4gailcbiAgICAgZG9uZVxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIChPYmouZmllbGQgbW9kdSBpKSBuXG5cbmFuZCB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIG8gbiA9XG4gIGFzc2VydCAoT2JqLnRhZyBuID0gMCAmJiBPYmouc2l6ZSBuID49IEFycmF5Lmxlbmd0aCBjb21wcyk7XG4gIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggY29tcHMgLSAxIGRvXG4gICAgdXBkYXRlX21vZF9maWVsZCBvIGkgY29tcHMuKGkpIChPYmouZmllbGQgbiBpKVxuICBkb25lXG5cbmxldCB1cGRhdGVfbW9kIHNoYXBlIG8gbiA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgdXBkYXRlX21vZF9ibG9jayBjb21wcyBvIG5cbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLnVwZGF0ZV9tb2Q6IG5vdCBhIG1vZHVsZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl0gKCogaWdub3JlIGRlcHJlY2F0aW9uIHdhcm5pbmcgYWJvdXQgbW9kdWxlIFN0cmVhbSAqKVxuXG50eXBlIHRva2VuID1cbiAgICBLd2Qgb2Ygc3RyaW5nXG4gIHwgSWRlbnQgb2Ygc3RyaW5nXG4gIHwgSW50IG9mIGludFxuICB8IEZsb2F0IG9mIGZsb2F0XG4gIHwgU3RyaW5nIG9mIHN0cmluZ1xuICB8IENoYXIgb2YgY2hhclxuXG4oKiBUaGUgc3RyaW5nIGJ1ZmZlcmluZyBtYWNoaW5lcnkgKilcblxubGV0IGluaXRpYWxfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDMyXG5cbmxldCBidWZmZXIgPSByZWYgaW5pdGlhbF9idWZmZXJcbmxldCBidWZwb3MgPSByZWYgMFxuXG5sZXQgcmVzZXRfYnVmZmVyICgpID0gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBidWZwb3MgOj0gMFxuXG5sZXQgc3RvcmUgYyA9XG4gIGlmICFidWZwb3MgPj0gQnl0ZXMubGVuZ3RoICFidWZmZXIgdGhlbiBiZWdpblxuICAgIGxldCBuZXdidWZmZXIgPSBCeXRlcy5jcmVhdGUgKDIgKiAhYnVmcG9zKSBpblxuICAgIEJ5dGVzLmJsaXQgIWJ1ZmZlciAwIG5ld2J1ZmZlciAwICFidWZwb3M7XG4gICAgYnVmZmVyIDo9IG5ld2J1ZmZlclxuICBlbmQ7XG4gIEJ5dGVzLnNldCAhYnVmZmVyICFidWZwb3MgYztcbiAgaW5jciBidWZwb3NcblxubGV0IGdldF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLnN1Yl9zdHJpbmcgIWJ1ZmZlciAwICFidWZwb3MgaW4gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBzXG5cbigqIFRoZSBsZXhlciAqKVxuXG5sZXQgbWFrZV9sZXhlciBrZXl3b3JkcyA9XG4gIGxldCBrd2RfdGFibGUgPSBIYXNodGJsLmNyZWF0ZSAxNyBpblxuICBMaXN0Lml0ZXIgKGZ1biBzIC0+IEhhc2h0YmwuYWRkIGt3ZF90YWJsZSBzIChLd2QgcykpIGtleXdvcmRzO1xuICBsZXQgaWRlbnRfb3Jfa2V5d29yZCBpZCA9XG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgaWQgd2l0aFxuICAgICAgTm90X2ZvdW5kIC0+IElkZW50IGlkXG4gIGFuZCBrZXl3b3JkX29yX2Vycm9yIGMgPVxuICAgIGxldCBzID0gU3RyaW5nLm1ha2UgMSBjIGluXG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgcyB3aXRoXG4gICAgICBOb3RfZm91bmQgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciAoXCJJbGxlZ2FsIGNoYXJhY3RlciBcIiBeIHMpKVxuICBpblxuICBsZXQgcmVjIG5leHRfdG9rZW4gKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJyAnIHwgJ1xcMDEwJyB8ICdcXDAxMycgfCAnXFwwMDknIHwgJ1xcMDI2JyB8ICdcXDAxMicpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbmV4dF90b2tlbiBzdHJtX19cbiAgICB8IFNvbWUgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXycgfCAnXFwxOTInLi4nXFwyNTUnIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudCBzXG4gICAgfCBTb21lXG4gICAgICAgICgnIScgfCAnJScgfCAnJicgfCAnJCcgfCAnIycgfCAnKycgfCAnLycgfCAnOicgfCAnPCcgfCAnPScgfCAnPicgfFxuICAgICAgICAgJz8nIHwgJ0AnIHwgJ1xcXFwnIHwgJ34nIHwgJ14nIHwgJ3wnIHwgJyonIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudDIgc1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICdcXCcnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBjaGFyIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGluXG4gICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU29tZSAnXFwnJyAtPiBTdHJlYW0uanVuayBzdHJtX187IFNvbWUgKENoYXIgYylcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lICdcXFwiJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgU29tZSAoU3RyaW5nIChzdHJpbmcgcykpXG4gICAgfCBTb21lICctJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG5lZ19udW1iZXIgc3RybV9fXG4gICAgfCBTb21lICcoJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBTb21lIChrZXl3b3JkX29yX2Vycm9yIGMpXG4gICAgfCBfIC0+IE5vbmVcbiAgYW5kIGlkZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWVcbiAgICAgICAgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXFwxOTInLi4nXFwyNTUnIHwgJzAnLi4nOScgfCAnXycgfCAnXFwnJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50IHNcbiAgICB8IF8gLT4gU29tZSAoaWRlbnRfb3Jfa2V5d29yZCAoZ2V0X3N0cmluZyAoKSkpXG4gIGFuZCBpZGVudDIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZVxuICAgICAgICAoJyEnIHwgJyUnIHwgJyYnIHwgJyQnIHwgJyMnIHwgJysnIHwgJy0nIHwgJy8nIHwgJzonIHwgJzwnIHwgJz0nIHxcbiAgICAgICAgICc+JyB8ICc/JyB8ICdAJyB8ICdcXFxcJyB8ICd+JyB8ICdeJyB8ICd8JyB8ICcqJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50MiBzXG4gICAgfCBfIC0+IFNvbWUgKGlkZW50X29yX2tleXdvcmQgKGdldF9zdHJpbmcgKCkpKVxuICBhbmQgbmVnX251bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgJy0nOyBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgXyAtPiBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlICctJzsgaWRlbnQyIHNcbiAgYW5kIG51bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICcuJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICcuJzsgZGVjaW1hbF9wYXJ0IHNcbiAgICB8IFNvbWUgKCdlJyB8ICdFJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnRSc7IGV4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChJbnQgKGludF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIGRlY2ltYWxfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGRlY2ltYWxfcGFydCBzXG4gICAgfCBTb21lICgnZScgfCAnRScpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJ0UnOyBleHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoRmxvYXQgKGZsb2F0X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgZXhwb25lbnRfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnKycgfCAnLScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IGVuZF9leHBvbmVudF9wYXJ0IHN0cm1fX1xuICBhbmQgZW5kX2V4cG9uZW50X3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIHN0cmluZyAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICdcXFwiJyAtPiBTdHJlYW0uanVuayBzdHJtX187IGdldF9zdHJpbmcgKClcbiAgICB8IFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBlc2NhcGUgc3RybV9fIHdpdGhcbiAgICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgc3RyaW5nIHNcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IHN0cmluZyBzXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBjaGFyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gdHJ5IGVzY2FwZSBzdHJtX18gd2l0aFxuICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBlc2NhcGUgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnbicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxuJ1xuICAgIHwgU29tZSAncicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxyJ1xuICAgIHwgU29tZSAndCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFx0J1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYzEpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICBTb21lICgnMCcuLic5JyBhcyBjMikgLT5cbiAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMzKSAtPlxuICAgICAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgICAgICBDaGFyLmNoclxuICAgICAgICAgICAgICAgICAgKChDaGFyLmNvZGUgYzEgLSA0OCkgKiAxMDAgKyAoQ2hhci5jb2RlIGMyIC0gNDgpICogMTAgK1xuICAgICAgICAgICAgICAgICAgICAgKENoYXIuY29kZSBjMyAtIDQ4KSlcbiAgICAgICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBuZXh0X3Rva2VuIHNcbiAgICB8IF8gLT4gU29tZSAoa2V5d29yZF9vcl9lcnJvciAnKCcpXG4gIGFuZCBjb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJygnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfbmVzdGVkX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX25lc3RlZF9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBjb21tZW50IHNcbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9lbmRfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcpJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICgpXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgaW5cbiAgZnVuIGlucHV0IC0+IFN0cmVhbS5mcm9tIChmdW4gX2NvdW50IC0+IG5leHRfdG9rZW4gaW5wdXQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyXCJdXG5cbm1vZHVsZSB0eXBlIFNlZWRlZFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiA/cmFuZG9tICgqdGh3YXJ0IHRvb2xzL3N5bmNfc3RkbGliX2RvY3MqKSA6IGJvb2wgLT4gaW50IC0+ICdhIHRcbiAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gIHZhbCBmaW5kX29wdCA6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZSA6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgdmFsIGNsZWFuOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHN0YXRzX2FsaXZlOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICAgICgqKiBzYW1lIGFzIHshc3RhdHN9IGJ1dCBvbmx5IGNvdW50IHRoZSBhbGl2ZSBiaW5kaW5ncyAqKVxuZW5kXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiBpbnQgLT4gJ2EgdFxuICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgdmFsIGZpbmRfb3B0IDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlIDogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICB2YWwgc3RhdHMgOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICB2YWwgY2xlYW46ICdhIHQgLT4gdW5pdFxuICB2YWwgc3RhdHNfYWxpdmU6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gICAgKCoqIHNhbWUgYXMgeyFzdGF0c30gYnV0IG9ubHkgY291bnQgdGhlIGFsaXZlIGJpbmRpbmdzICopXG5lbmRcblxubW9kdWxlIEdlbkhhc2hUYWJsZSA9IHN0cnVjdFxuXG4gIHR5cGUgZXF1YWwgPVxuICB8IEVUcnVlIHwgRUZhbHNlXG4gIHwgRURlYWQgKCoqIHRoZSBnYXJiYWdlIGNvbGxlY3RvciByZWNsYWltZWQgdGhlIGRhdGEgKilcblxuICBtb2R1bGUgTWFrZVNlZWRlZChIOiBzaWdcbiAgICB0eXBlIHRcbiAgICB0eXBlICdhIGNvbnRhaW5lclxuICAgIHZhbCBjcmVhdGU6IHQgLT4gJ2EgLT4gJ2EgY29udGFpbmVyXG4gICAgdmFsIGhhc2g6IGludCAtPiB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogJ2EgY29udGFpbmVyIC0+IHQgLT4gZXF1YWxcbiAgICB2YWwgZ2V0X2RhdGE6ICdhIGNvbnRhaW5lciAtPiAnYSBvcHRpb25cbiAgICB2YWwgZ2V0X2tleTogJ2EgY29udGFpbmVyIC0+IHQgb3B0aW9uXG4gICAgdmFsIHNldF9rZXlfZGF0YTogJ2EgY29udGFpbmVyIC0+IHQgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBjaGVja19rZXk6ICdhIGNvbnRhaW5lciAtPiBib29sXG4gIGVuZCkgOiBTZWVkZWRTIHdpdGggdHlwZSBrZXkgPSBILnRcbiAgPSBzdHJ1Y3RcblxuICAgIHR5cGUgJ2EgdCA9XG4gICAgICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgICAgIG11dGFibGUgZGF0YTogJ2EgYnVja2V0bGlzdCBhcnJheTsgICgqIHRoZSBidWNrZXRzICopXG4gICAgICAgIHNlZWQ6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGZvciByYW5kb21pemF0aW9uICopXG4gICAgICAgIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIGluaXRpYWwgYXJyYXkgc2l6ZSAqKVxuICAgICAgfVxuXG4gICAgYW5kICdhIGJ1Y2tldGxpc3QgPVxuICAgIHwgRW1wdHlcbiAgICB8IENvbnMgb2YgaW50ICgqIGhhc2ggb2YgdGhlIGtleSAqKSAqICdhIEguY29udGFpbmVyICogJ2EgYnVja2V0bGlzdFxuXG4gICAgKCoqIHRoZSBoYXNoIG9mIHRoZSBrZXkgaXMga2VwdCBpbiBvcmRlciB0byB0ZXN0IHRoZSBlcXVhbGl0eSBvZiB0aGUgaGFzaFxuICAgICAgYmVmb3JlIHRoZSBrZXkuIFNhbWUgcmVhc29uIGFzIGZvciBXZWFrLk1ha2UgKilcblxuICAgIHR5cGUga2V5ID0gSC50XG5cbiAgICBsZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgICAgIGlmIHggPj0gbiB0aGVuIHhcbiAgICAgIGVsc2UgaWYgeCAqIDIgPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIHhcbiAgICAgIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxuICAgIGxldCBwcm5nID0gbGF6eSAoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0KCkpXG5cbiAgICBsZXQgY3JlYXRlID8ocmFuZG9tID0gKEhhc2h0YmwuaXNfcmFuZG9taXplZCAoKSkpIGluaXRpYWxfc2l6ZSA9XG4gICAgICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gICAgICBsZXQgc2VlZCA9IGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpIGVsc2UgMCBpblxuICAgICAgeyBpbml0aWFsX3NpemUgPSBzOyBzaXplID0gMDsgc2VlZCA9IHNlZWQ7IGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHkgfVxuXG4gICAgbGV0IGNsZWFyIGggPVxuICAgICAgaC5zaXplIDwtIDA7XG4gICAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgZG9uZVxuXG4gICAgbGV0IHJlc2V0IGggPVxuICAgICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgICAgIGlmIGxlbiA9IGguaW5pdGlhbF9zaXplIHRoZW5cbiAgICAgICAgY2xlYXIgaFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBoLnNpemUgPC0gMDtcbiAgICAgICAgaC5kYXRhIDwtIEFycmF5Lm1ha2UgaC5pbml0aWFsX3NpemUgRW1wdHlcbiAgICAgIGVuZFxuXG4gICAgbGV0IGNvcHkgaCA9IHsgaCB3aXRoIGRhdGEgPSBBcnJheS5jb3B5IGguZGF0YSB9XG5cbiAgICBsZXQga2V5X2luZGV4IGggaGtleSA9XG4gICAgICBoa2V5IGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuXG4gICAgbGV0IGNsZWFuIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBFbXB0eVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgd2hlbiBub3QgKEguY2hlY2tfa2V5IGMpIC0+XG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgIHwgQ29ucyhoa2V5LCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgQ29ucyhoa2V5LCBjLCBkb19idWNrZXQgcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkLihpKSA8LSBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgICgqKiByZXNpemUgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdG8gZG8gdGhlIGFjdHVhbCBjbGVhbmluZyBvZiBkZWFkIGtleXNcbiAgICAgICAgKHJlbW92ZSBkb2VzIGl0IGp1c3QgYmVjYXVzZSBpdCBjb3VsZCkuXG5cbiAgICAgICAgVGhlIGdvYWwgaXMgdG86XG5cbiAgICAgICAgLSBub3QgcmVzaXplIGluZmluaXRlbHkgd2hlbiB0aGUgYWN0dWFsIG51bWJlciBvZiBhbGl2ZSBrZXlzIGlzXG4gICAgICAgIGJvdW5kZWQgYnV0IGtleXMgYXJlIGNvbnRpbnVvdXNseSBhZGRlZC4gVGhhdCB3b3VsZCBoYXBwZW4gaWZcbiAgICAgICAgdGhpcyBmdW5jdGlvbiBhbHdheXMgcmVzaXplLlxuICAgICAgICAtIG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZWFjaCBhZGRpdGlvbiwgdGhhdCB3b3VsZCBoYXBwZW4gaWYgdGhpc1xuICAgICAgICBmdW5jdGlvbiBkb24ndCByZXNpemUgZXZlbiB3aGVuIG9ubHkgb25lIGtleSBpcyBkZWFkLlxuXG4gICAgICAgIFNvIHRoZSBhbGdvcml0aG06XG4gICAgICAgIC0gY2xlYW4gdGhlIGtleXMgYmVmb3JlIHJlc2l6aW5nXG4gICAgICAgIC0gaWYgdGhlIG51bWJlciBvZiByZW1haW5pbmcga2V5cyBpcyBsZXNzIHRoYW4gaGFsZiB0aGUgc2l6ZSBvZiB0aGVcbiAgICAgICAgYXJyYXksIGRvbid0IHJlc2l6ZS5cbiAgICAgICAgLSBpZiBpdCBpcyBtb3JlLCByZXNpemUuXG5cbiAgICAgICAgVGhlIHNlY29uZCBwcm9ibGVtIHJlbWFpbnMgaWYgdGhlIHRhYmxlIHJlYWNoZXMgeyFTeXMubWF4X2FycmF5X2xlbmd0aH0uXG5cbiAgICAqKVxuICAgIGxldCByZXNpemUgaCA9XG4gICAgICBsZXQgb2RhdGEgPSBoLmRhdGEgaW5cbiAgICAgIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICAgICAgbGV0IG5zaXplID0gb3NpemUgKiAyIGluXG4gICAgICBjbGVhbiBoO1xuICAgICAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCAmJiBoLnNpemUgPj0gb3NpemUgbHNyIDEgdGhlbiBiZWdpblxuICAgICAgICBsZXQgbmRhdGEgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gICAgICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgKCogc28gdGhhdCBrZXlfaW5kZXggc2VlcyB0aGUgbmV3IGJ1Y2tldCBjb3VudCAqKVxuICAgICAgICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgICAgICB8IENvbnMoaGtleSwgZGF0YSwgcmVzdCkgLT5cbiAgICAgICAgICAgICAgaW5zZXJ0X2J1Y2tldCByZXN0OyAoKiBwcmVzZXJ2ZSBvcmlnaW5hbCBvcmRlciBvZiBlbGVtZW50cyAqKVxuICAgICAgICAgICAgICBsZXQgbmlkeCA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgICAgICAgICAgbmRhdGEuKG5pZHgpIDwtIENvbnMoaGtleSwgZGF0YSwgbmRhdGEuKG5pZHgpKSBpblxuICAgICAgICBmb3IgaSA9IDAgdG8gb3NpemUgLSAxIGRvXG4gICAgICAgICAgaW5zZXJ0X2J1Y2tldCBvZGF0YS4oaSlcbiAgICAgICAgZG9uZVxuICAgICAgZW5kXG5cbiAgICBsZXQgYWRkIGgga2V5IGluZm8gPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBsZXQgY29udGFpbmVyID0gSC5jcmVhdGUga2V5IGluZm8gaW5cbiAgICAgIGxldCBidWNrZXQgPSBDb25zKGhrZXksIGNvbnRhaW5lciwgaC5kYXRhLihpKSkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGhcblxuICAgIGxldCByZW1vdmUgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyByZW1vdmVfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgICB8IENvbnMoaGssIGMsIG5leHQpIHdoZW4gaGtleSA9IGhrIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICAgIHwgRVRydWUgLT4gaC5zaXplIDwtIGguc2l6ZSAtIDE7IG5leHRcbiAgICAgICAgICAgIHwgRUZhbHNlIC0+IENvbnMoaGssIGMsIHJlbW92ZV9idWNrZXQgbmV4dClcbiAgICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgICAoKiBUaGUgZGVhZCBrZXkgaXMgYXV0b21hdGljYWxseSByZW1vdmVkLiBJdCBpcyBhY2NlcHRhYmxlXG4gICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGFscmVhZHkgcmVtb3ZlcyBhIGJpbmRpbmcgKilcbiAgICAgICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgICAgICByZW1vdmVfYnVja2V0IG5leHRcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IENvbnMoaGssYyxuZXh0KSAtPiBDb25zKGhrLCBjLCByZW1vdmVfYnVja2V0IG5leHQpIGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gcmVtb3ZlX2J1Y2tldCBoLmRhdGEuKGkpXG5cbiAgICAoKiogeyFmaW5kfSBkb24ndCByZW1vdmUgZGVhZCBrZXlzIGJlY2F1c2UgaXQgd291bGQgYmUgc3VycHJpc2luZyBmb3JcbiAgICAgICAgdGhlIHVzZXIgdGhhdCBhIHJlYWQtb25seSBmdW5jdGlvbiBtdXRhdGVzIHRoZSBzdGF0ZSAoZWcuIGNvbmN1cnJlbnRcbiAgICAgICAgYWNjZXNzKS4gU2FtZSBmb3IgeyFpdGVyfSwgeyFmb2xkfSwgeyFtZW19LlxuICAgICopXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT5cbiAgICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAoKiBUaGlzIGNhc2UgaXMgbm90IGltcG9zc2libGUgYmVjYXVzZSB0aGUgZ2MgY2FuIHJ1biBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgICAgICAgSC5lcXVhbCBhbmQgSC5nZXRfZGF0YSAqKVxuICAgICAgICAgICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgZCAtPiBkXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgICgqIFRPRE8gaW5saW5lIDMgaXRlcmF0aW9ucyAqKVxuICAgICAgZmluZF9yZWMga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+XG4gICAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgKCogVGhpcyBjYXNlIGlzIG5vdCBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIGdjIGNhbiBydW4gYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgIEguZXF1YWwgYW5kIEguZ2V0X2RhdGEgKilcbiAgICAgICAgICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBfIGFzIGQgLT4gZFxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG5cbiAgICBsZXQgZmluZF9vcHQgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgKCogVE9ETyBpbmxpbmUgMyBpdGVyYXRpb25zICopXG4gICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgZmluZF9hbGwgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IFtdXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT4gYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBkIC0+IGQ6OmZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3QgaW5cbiAgICAgIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGggaGtleSlcblxuXG4gICAgbGV0IHJlcGxhY2UgaCBrZXkgaW5mbyA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIHJlcGxhY2VfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgfCBDb25zKGhrLCBjLCBuZXh0KSB3aGVuIGhrZXkgPSBoayAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgICB8IEVUcnVlIC0+IEguc2V0X2tleV9kYXRhIGMga2V5IGluZm9cbiAgICAgICAgICAgIHwgRUZhbHNlIHwgRURlYWQgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgQ29ucyhfLF8sbmV4dCkgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gICAgICB0cnlcbiAgICAgICAgcmVwbGFjZV9idWNrZXQgbFxuICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IEguY3JlYXRlIGtleSBpbmZvIGluXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29ucyhoa2V5LCBjb250YWluZXIsIGwpO1xuICAgICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBoXG5cbiAgICBsZXQgbWVtIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoayA9IGhrZXkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+IHRydWVcbiAgICAgICAgICB8IEVGYWxzZSB8IEVEZWFkIC0+IG1lbV9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF9oaywgX2MsIHJlc3QpIC0+IG1lbV9pbl9idWNrZXQgcmVzdCBpblxuICAgICAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpXG5cbiAgICBsZXQgaXRlciBmIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICAoKVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiAoKVxuICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPiBmIGsgZFxuICAgICAgICAgICAgZW5kOyBkb19idWNrZXQgcmVzdCBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgZm9sZCBmIGggaW5pdCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCBiIGFjY3UgPVxuICAgICAgICBtYXRjaCBiIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICAgYWNjdVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGxldCBhY2N1ID0gYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gYWNjdVxuICAgICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+IGYgayBkIGFjY3VcbiAgICAgICAgICAgIGVuZCBpblxuICAgICAgICAgICAgZG9fYnVja2V0IHJlc3QgYWNjdSAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBsZXQgYWNjdSA9IHJlZiBpbml0IGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgICBkb25lO1xuICAgICAgIWFjY3VcblxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgRW1wdHlcbiAgICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+XG4gICAgICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT5cbiAgICAgICAgICAgICAgICBtYXRjaCBmIGsgZCB3aXRoXG4gICAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgICAgfCBTb21lIG5ld19kIC0+XG4gICAgICAgICAgICAgICAgICAgIEguc2V0X2tleV9kYXRhIGMgayBuZXdfZDtcbiAgICAgICAgICAgICAgICAgICAgQ29ucyhoaywgYywgZG9fYnVja2V0IHJlc3QpXG4gICAgICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZC4oaSkgPC0gZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgbGVuZ3RoIGggPSBoLnNpemVcblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+IGJ1Y2tldF9sZW5ndGggKGFjY3UgKyAxKSByZXN0XG5cbiAgICBsZXQgc3RhdHMgaCA9XG4gICAgICBsZXQgbWJsID1cbiAgICAgICAgQXJyYXkuZm9sZF9sZWZ0IChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aCAwIGIpKSAwIGguZGF0YSBpblxuICAgICAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICAgICAgQXJyYXkuaXRlclxuICAgICAgICAoZnVuIGIgLT5cbiAgICAgICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICAgICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgICAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICAgICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIHdoZW4gSC5jaGVja19rZXkgYyAtPlxuICAgICAgICAgIGJ1Y2tldF9sZW5ndGhfYWxpdmUgKGFjY3UgKyAxKSByZXN0XG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT4gYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1IHJlc3RcblxuICAgIGxldCBzdGF0c19hbGl2ZSBoID1cbiAgICAgIGxldCBzaXplID0gcmVmIDAgaW5cbiAgICAgIGxldCBtYmwgPVxuICAgICAgICBBcnJheS5mb2xkX2xlZnRcbiAgICAgICAgICAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiKSkgMCBoLmRhdGFcbiAgICAgIGluXG4gICAgICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gICAgICBBcnJheS5pdGVyXG4gICAgICAgIChmdW4gYiAtPlxuICAgICAgICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiIGluXG4gICAgICAgICAgIHNpemUgOj0gIXNpemUgKyBsO1xuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9ICFzaXplO1xuICAgICAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgICAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4gICAgbGV0IHRvX3NlcSB0YmwgPVxuICAgICAgKCogY2FwdHVyZSBjdXJyZW50IGFycmF5LCBzbyB0aGF0IGV2ZW4gaWYgdGhlIHRhYmxlIGlzIHJlc2l6ZWQgd2VcbiAgICAgICAgIGtlZXAgaXRlcmF0aW5nIG9uIHRoZSBzYW1lIGFycmF5ICopXG4gICAgICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAgICAgKCogc3RhdGU6IGluZGV4ICogbmV4dCBidWNrZXQgdG8gdHJhdmVyc2UgKilcbiAgICAgIGxldCByZWMgYXV4IGkgYnVjayAoKSA9IG1hdGNoIGJ1Y2sgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBpZiBpID0gQXJyYXkubGVuZ3RoIHRibF9kYXRhXG4gICAgICAgICAgICB0aGVuIFNlcS5OaWxcbiAgICAgICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgICAgIHwgQ29ucyAoXywgYywgbmV4dCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+IGF1eCBpIG5leHQgKClcbiAgICAgICAgICAgICAgfCBTb21lIGtleSwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgICAgICAgICBTZXEuQ29ucyAoKGtleSwgZGF0YSksIGF1eCBpIG5leHQpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBhdXggMCBFbXB0eVxuXG4gICAgbGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyBtID0gU2VxLm1hcCBzbmQgKHRvX3NlcSBtKVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICBlbmRcbmVuZFxuXG5tb2R1bGUgT2JqRXBoID0gT2JqLkVwaGVtZXJvblxuXG5sZXQgX29ial9vcHQgOiBPYmoudCBvcHRpb24gLT4gJ2Egb3B0aW9uID0gZnVuIHggLT5cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB4XG4gIHwgU29tZSB2IC0+IFNvbWUgKE9iai5vYmogdilcblxuKCoqIFRoZSBwcmV2aW91cyBmdW5jdGlvbiBpcyB0eXBlZCBzbyB0aGlzIG9uZSBpcyBhbHNvIGNvcnJlY3QgKilcbmxldCBvYmpfb3B0IDogT2JqLnQgb3B0aW9uIC0+ICdhIG9wdGlvbiA9IGZ1biB4IC0+IE9iai5tYWdpYyB4XG5cblxubW9kdWxlIEsxID0gc3RydWN0XG4gIHR5cGUgKCdrLCdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlICgpIDogKCdrLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAxXG5cbiAgbGV0IGdldF9rZXkgKHQ6KCdrLCdkKSB0KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMClcbiAgbGV0IGdldF9rZXlfY29weSAodDooJ2ssJ2QpIHQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDApXG4gIGxldCBzZXRfa2V5ICh0OignaywnZCkgdCkgKGs6J2spIDogdW5pdCA9IE9iakVwaC5zZXRfa2V5IHQgMCAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAwXG4gIGxldCBjaGVja19rZXkgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMFxuXG4gIGxldCBibGl0X2tleSAodDE6KCdrLCdkKSB0KSAodDI6KCdrLCdkKSB0KTogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAxXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5IGRhdGEgPVxuICAgIGxldCBlcGggPSBjcmVhdGUgKCkgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBzZXRfa2V5IGVwaCBrZXk7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXkgPVxuICAgIG1hdGNoIGdldF9rZXkgZXBoIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkgLT4gZ2V0X2RhdGEgZXBoXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkIChIOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSC50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBILnRcbiAgICAgIGxldCBjcmVhdGUgayBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKCkgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBzZXRfa2V5IGMgaztcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggPSBILmhhc2hcbiAgICAgIGxldCBlcXVhbCBjIGsgPVxuICAgICAgICAoKiB7IWdldF9rZXlfY29weX0gaXMgbm90IHVzZWQgYmVjYXVzZSB0aGUgZXF1YWxpdHkgb2YgdGhlIHVzZXIgY2FuIGJlXG4gICAgICAgICAgICB0aGUgcGh5c2ljYWwgZXF1YWxpdHkgKilcbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgaycgLT5cbiAgICAgICAgICAgIGlmIEguZXF1YWwgayBrJyB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZSBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSA9IGdldF9rZXlcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyBrIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIHNldF9rZXkgYyBrO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgPSBjaGVja19rZXlcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDogSGFzaHRibC5IYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrLCAnZCkgdCA9ICgnaywgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazFfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrIGQgPSBiIDo9IGsxX21ha2UgayBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXkgayBlID1cbiAgICAgIG1hdGNoIGdldF9rZXkgZSB3aXRoXG4gICAgICB8IFNvbWUgeCB3aGVuIHggPT0gayAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXkgayBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5IGspICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcblxubW9kdWxlIEsyID0gc3RydWN0XG4gIHR5cGUgKCdrMSwgJ2syLCAnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSAoKSA6ICgnazEsJ2syLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAyXG5cbiAgbGV0IGdldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDApXG4gIGxldCBnZXRfa2V5MV9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAwKVxuICBsZXQgc2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIChrOidrMSkgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IDAgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMFxuICBsZXQgY2hlY2tfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDBcblxuICBsZXQgZ2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMSlcbiAgbGV0IGdldF9rZXkyX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDEpXG4gIGxldCBzZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgKGs6J2syKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgMSAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAxXG4gIGxldCBjaGVja19rZXkyICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMVxuXG5cbiAgbGV0IGJsaXRfa2V5MSAodDE6KCdrMSxfLF8pIHQpICh0MjooJ2sxLF8sXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDFcbiAgbGV0IGJsaXRfa2V5MiAodDE6KF8sJ2syLF8pIHQpICh0MjooXywnazIsXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMSB0MiAxIDFcbiAgbGV0IGJsaXRfa2V5MTIgKHQxOignazEsJ2syLF8pIHQpICh0MjooJ2sxLCdrMixfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMlxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2Qgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIChkOidkKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXyxfLCdkKSB0KSAodDI6KF8sXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleTEga2V5MiBkYXRhID1cbiAgICBsZXQgZXBoID0gY3JlYXRlICgpIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgc2V0X2tleTEgZXBoIGtleTE7XG4gICAgc2V0X2tleTIgZXBoIGtleTI7XG4gICAgaWdub3JlIChTeXMub3BhcXVlX2lkZW50aXR5IGtleTEpO1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5MSBrZXkyID1cbiAgICBtYXRjaCBnZXRfa2V5MSBlcGggd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGsgd2hlbiBrID09IGtleTEgLT5cbiAgICAgICAgYmVnaW4gbWF0Y2ggZ2V0X2tleTIgZXBoIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIGsgd2hlbiBrID09IGtleTIgLT4gZ2V0X2RhdGEgZXBoXG4gICAgICAgIHwgU29tZSBfIC0+IE5vbmVcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkXG4gICAgICAoSDE6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKVxuICAgICAgKEgyOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSDEudCxIMi50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBIMS50ICogSDIudFxuICAgICAgbGV0IGNyZWF0ZSAoazEsazIpIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIHNldF9rZXkxIGMgazE7IHNldF9rZXkyIGMgazI7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgKGsxLGsyKSA9XG4gICAgICAgIEgxLmhhc2ggc2VlZCBrMSArIEgyLmhhc2ggc2VlZCBrMiAqIDY1NTk5XG4gICAgICBsZXQgZXF1YWwgYyAoazEsazIpID1cbiAgICAgICAgbWF0Y2ggZ2V0X2tleTEgYywgZ2V0X2tleTIgYyB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyB8IF8gLCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgazEnLCBTb21lIGsyJyAtPlxuICAgICAgICAgICAgaWYgSDEuZXF1YWwgazEgazEnICYmIEgyLmVxdWFsIGsyIGsyJ1xuICAgICAgICAgICAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWUgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgYyA9XG4gICAgICAgIG1hdGNoIGdldF9rZXkxIGMsIGdldF9rZXkyIGMgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gfCBfICwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSBrMScsIFNvbWUgazInIC0+IFNvbWUgKGsxJywgazInKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIChrMSxrMikgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgc2V0X2tleTEgYyBrMTsgc2V0X2tleTIgYyBrMjtcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5IGMgPSBjaGVja19rZXkxIGMgJiYgY2hlY2tfa2V5MiBjXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEgxOiBIYXNodGJsLkhhc2hlZFR5cGUpKEgyOiBIYXNodGJsLkhhc2hlZFR5cGUpOlxuICAgIChTIHdpdGggdHlwZSBrZXkgPSBIMS50ICogSDIudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWRcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgxLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMS5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDEuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgyLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMi5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDIuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrMSwgJ2syLCAnZCkgdCA9ICgnazEsICdrMiwgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazJfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrMSBrMiBkID0gYiA6PSBrMl9tYWtlIGsxIGsyIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleXMgazEgazIgZSA9XG4gICAgICBtYXRjaCBnZXRfa2V5MSBlLCBnZXRfa2V5MiBlIHdpdGhcbiAgICAgIHwgU29tZSB4MSwgU29tZSB4MiB3aGVuIHgxID09IGsxICYmIHgyID09IGsyIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsxIGsyID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsxIGsyIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsxIGsyID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5cyBrMSBrMikgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuXG5tb2R1bGUgS24gPSBzdHJ1Y3RcbiAgdHlwZSAoJ2ssJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgbiA6ICgnaywnZCkgdCA9IE9iakVwaC5jcmVhdGUgblxuICBsZXQgbGVuZ3RoIChrOignaywnZCkgdCkgOiBpbnQgPSBPYmpFcGgubGVuZ3RoIGtcblxuICBsZXQgZ2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IG4pXG4gIGxldCBnZXRfa2V5X2NvcHkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogJ2sgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgbilcbiAgbGV0IHNldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIChrOidrKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgbiAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IG5cbiAgbGV0IGNoZWNrX2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IG5cblxuICBsZXQgYmxpdF9rZXkgKHQxOignaywnZCkgdCkgKG8xOmludCkgKHQyOignaywnZCkgdCkgKG8yOmludCkgKGw6aW50KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSBvMSB0MiBvMiBsXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5cyBkYXRhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBrZXlzIGluXG4gICAgbGV0IGVwaCA9IGNyZWF0ZSBsIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHNldF9rZXkgZXBoIGkga2V5cy4oaSkgZG9uZTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleXMgPVxuICAgIGxldCBsID0gbGVuZ3RoIGVwaCBpblxuICAgIHRyeVxuICAgICAgaWYgbCA8PiBBcnJheS5sZW5ndGgga2V5cyB0aGVuIHJhaXNlIEV4aXQ7XG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBlcGggaSB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiByYWlzZSBFeGl0XG4gICAgICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXlzLihpKSAtPiAoKVxuICAgICAgICB8IFNvbWUgXyAtPiByYWlzZSBFeGl0XG4gICAgICBkb25lO1xuICAgICAgZ2V0X2RhdGEgZXBoXG4gICAgd2l0aCBFeGl0IC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZCAoSDpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSC50IGFycmF5XG4gICAgICBsZXQgY3JlYXRlIGsgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlIChBcnJheS5sZW5ndGggaykgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgc2V0X2tleSBjIGkgay4oaSk7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgayA9XG4gICAgICAgIGxldCBoID0gcmVmIDAgaW5cbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIGggOj0gSC5oYXNoIHNlZWQgay4oaSkgKiA2NTU5OSArICFoO1xuICAgICAgICBkb25lO1xuICAgICAgICAhaFxuICAgICAgbGV0IGVxdWFsIGMgayA9XG4gICAgICAgIGxldCBsZW4gID0gQXJyYXkubGVuZ3RoIGsgaW5cbiAgICAgICAgbGV0IGxlbicgPSBsZW5ndGggYyBpblxuICAgICAgICBpZiBsZW4gIT0gbGVuJyB0aGVuIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCByZWMgZXF1YWxfYXJyYXkgayBjIGkgPVxuICAgICAgICAgICAgaWYgaSA8IDAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWVcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIGkgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgICAgICAgIHwgU29tZSBraSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrLihpKSBraVxuICAgICAgICAgICAgICAgICAgdGhlbiBlcXVhbF9hcnJheSBrIGMgKGktMSlcbiAgICAgICAgICAgICAgICAgIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgICAgIGluXG4gICAgICAgICAgZXF1YWxfYXJyYXkgayBjIChsZW4tMSlcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSBjID1cbiAgICAgICAgbGV0IGxlbiA9IGxlbmd0aCBjIGluXG4gICAgICAgIGlmIGxlbiA9IDAgdGhlbiBTb21lIFt8fF1cbiAgICAgICAgZWxzZVxuICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyAwIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBrMCAtPlxuICAgICAgICAgICAgICBsZXQgcmVjIGZpbGwgYSBpID1cbiAgICAgICAgICAgICAgICBpZiBpIDwgMSB0aGVuIFNvbWUgYVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyBpIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgICAgICAgICB8IFNvbWUga2kgLT5cbiAgICAgICAgICAgICAgICAgICAgICBhLihpKSA8LSBraTtcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsIGEgKGktMSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiBrMCBpblxuICAgICAgICAgICAgICBmaWxsIGEgKGxlbi0xKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIGsgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIHNldF9rZXkgYyBpIGsuKGkpO1xuICAgICAgICBkb25lO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgYyA9XG4gICAgICAgIGxldCByZWMgY2hlY2sgYyBpID1cbiAgICAgICAgICBpIDwgMCB8fCAoY2hlY2tfa2V5IGMgaSAmJiBjaGVjayBjIChpLTEpKSBpblxuICAgICAgICBjaGVjayBjIChsZW5ndGggYyAtIDEpXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEg6IEhhc2h0YmwuSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQgYXJyYXkpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnaywgJ2QpIHQgPSAoJ2ssICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGtuX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgayBkID0gYiA6PSBrbl9tYWtlIGsgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5cyBrIGUgPVxuICAgICAgdHJ5XG4gICAgICAgIGlmIGxlbmd0aCBlIDw+IEFycmF5Lmxlbmd0aCBrIHRoZW4gcmFpc2UgRXhpdDtcbiAgICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBrIC0gMSBkb1xuICAgICAgICAgIG1hdGNoIGdldF9rZXkgZSBpIHdpdGhcbiAgICAgICAgICB8IFNvbWUgeCB3aGVuIHggPT0gay4oaSkgLT4gKClcbiAgICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgICAgICBkb25lO1xuICAgICAgICB0cnVlXG4gICAgICB3aXRoIEV4aXQgLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgayA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleXMgaykgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIE1hbnVlbCBTZXJyYW5vIGV0IFhhdmllciBMZXJveSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0JpZ2FycmF5XTogbGFyZ2UsIG11bHRpLWRpbWVuc2lvbmFsLCBudW1lcmljYWwgYXJyYXlzICopXG5cbigqIFRoZXNlIHR5cGVzIGluIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHRhYmxlcyBpblxuICAgLi4vdHlwaW5nL3R5cGVvcHQubWwgKilcblxudHlwZSBmbG9hdDMyX2VsdCA9IEZsb2F0MzJfZWx0XG50eXBlIGZsb2F0NjRfZWx0ID0gRmxvYXQ2NF9lbHRcbnR5cGUgaW50OF9zaWduZWRfZWx0ID0gSW50OF9zaWduZWRfZWx0XG50eXBlIGludDhfdW5zaWduZWRfZWx0ID0gSW50OF91bnNpZ25lZF9lbHRcbnR5cGUgaW50MTZfc2lnbmVkX2VsdCA9IEludDE2X3NpZ25lZF9lbHRcbnR5cGUgaW50MTZfdW5zaWduZWRfZWx0ID0gSW50MTZfdW5zaWduZWRfZWx0XG50eXBlIGludDMyX2VsdCA9IEludDMyX2VsdFxudHlwZSBpbnQ2NF9lbHQgPSBJbnQ2NF9lbHRcbnR5cGUgaW50X2VsdCA9IEludF9lbHRcbnR5cGUgbmF0aXZlaW50X2VsdCA9IE5hdGl2ZWludF9lbHRcbnR5cGUgY29tcGxleDMyX2VsdCA9IENvbXBsZXgzMl9lbHRcbnR5cGUgY29tcGxleDY0X2VsdCA9IENvbXBsZXg2NF9lbHRcblxudHlwZSAoJ2EsICdiKSBraW5kID1cbiAgICBGbG9hdDMyIDogKGZsb2F0LCBmbG9hdDMyX2VsdCkga2luZFxuICB8IEZsb2F0NjQgOiAoZmxvYXQsIGZsb2F0NjRfZWx0KSBraW5kXG4gIHwgSW50OF9zaWduZWQgOiAoaW50LCBpbnQ4X3NpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQ4X3Vuc2lnbmVkIDogKGludCwgaW50OF91bnNpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQxNl9zaWduZWQgOiAoaW50LCBpbnQxNl9zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MTZfdW5zaWduZWQgOiAoaW50LCBpbnQxNl91bnNpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQzMiA6IChpbnQzMiwgaW50MzJfZWx0KSBraW5kXG4gIHwgSW50NjQgOiAoaW50NjQsIGludDY0X2VsdCkga2luZFxuICB8IEludCA6IChpbnQsIGludF9lbHQpIGtpbmRcbiAgfCBOYXRpdmVpbnQgOiAobmF0aXZlaW50LCBuYXRpdmVpbnRfZWx0KSBraW5kXG4gIHwgQ29tcGxleDMyIDogKENvbXBsZXgudCwgY29tcGxleDMyX2VsdCkga2luZFxuICB8IENvbXBsZXg2NCA6IChDb21wbGV4LnQsIGNvbXBsZXg2NF9lbHQpIGtpbmRcbiAgfCBDaGFyIDogKGNoYXIsIGludDhfdW5zaWduZWRfZWx0KSBraW5kXG5cbnR5cGUgY19sYXlvdXQgPSBDX2xheW91dF90eXBcbnR5cGUgZm9ydHJhbl9sYXlvdXQgPSBGb3J0cmFuX2xheW91dF90eXAgKCoqKVxuXG50eXBlICdhIGxheW91dCA9XG4gICAgQ19sYXlvdXQ6IGNfbGF5b3V0IGxheW91dFxuICB8IEZvcnRyYW5fbGF5b3V0OiBmb3J0cmFuX2xheW91dCBsYXlvdXRcblxuKCogS2VlcCB0aG9zZSBjb25zdGFudHMgaW4gc3luYyB3aXRoIHRoZSBjYW1sX2JhX2tpbmQgZW51bWVyYXRpb25cbiAgIGluIGJpZ2FycmF5LmggKilcblxubGV0IGZsb2F0MzIgPSBGbG9hdDMyXG5sZXQgZmxvYXQ2NCA9IEZsb2F0NjRcbmxldCBpbnQ4X3NpZ25lZCA9IEludDhfc2lnbmVkXG5sZXQgaW50OF91bnNpZ25lZCA9IEludDhfdW5zaWduZWRcbmxldCBpbnQxNl9zaWduZWQgPSBJbnQxNl9zaWduZWRcbmxldCBpbnQxNl91bnNpZ25lZCA9IEludDE2X3Vuc2lnbmVkXG5sZXQgaW50MzIgPSBJbnQzMlxubGV0IGludDY0ID0gSW50NjRcbmxldCBpbnQgPSBJbnRcbmxldCBuYXRpdmVpbnQgPSBOYXRpdmVpbnRcbmxldCBjb21wbGV4MzIgPSBDb21wbGV4MzJcbmxldCBjb21wbGV4NjQgPSBDb21wbGV4NjRcbmxldCBjaGFyID0gQ2hhclxuXG5sZXQga2luZF9zaXplX2luX2J5dGVzIDogdHlwZSBhIGIuIChhLCBiKSBraW5kIC0+IGludCA9IGZ1bmN0aW9uXG4gIHwgRmxvYXQzMiAtPiA0XG4gIHwgRmxvYXQ2NCAtPiA4XG4gIHwgSW50OF9zaWduZWQgLT4gMVxuICB8IEludDhfdW5zaWduZWQgLT4gMVxuICB8IEludDE2X3NpZ25lZCAtPiAyXG4gIHwgSW50MTZfdW5zaWduZWQgLT4gMlxuICB8IEludDMyIC0+IDRcbiAgfCBJbnQ2NCAtPiA4XG4gIHwgSW50IC0+IFN5cy53b3JkX3NpemUgLyA4XG4gIHwgTmF0aXZlaW50IC0+IFN5cy53b3JkX3NpemUgLyA4XG4gIHwgQ29tcGxleDMyIC0+IDhcbiAgfCBDb21wbGV4NjQgLT4gMTZcbiAgfCBDaGFyIC0+IDFcblxuKCogS2VlcCB0aG9zZSBjb25zdGFudHMgaW4gc3luYyB3aXRoIHRoZSBjYW1sX2JhX2xheW91dCBlbnVtZXJhdGlvblxuICAgaW4gYmlnYXJyYXkuaCAqKVxuXG5sZXQgY19sYXlvdXQgPSBDX2xheW91dFxubGV0IGZvcnRyYW5fbGF5b3V0ID0gRm9ydHJhbl9sYXlvdXRcblxubW9kdWxlIEdlbmFycmF5ID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHRcbiAgZXh0ZXJuYWwgY3JlYXRlOiAoJ2EsICdiKSBraW5kIC0+ICdjIGxheW91dCAtPiBpbnQgYXJyYXkgLT4gKCdhLCAnYiwgJ2MpIHRcbiAgICAgPSBcImNhbWxfYmFfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgYXJyYXkgLT4gJ2FcbiAgICAgPSBcImNhbWxfYmFfZ2V0X2dlbmVyaWNcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCBhcnJheSAtPiAnYSAtPiB1bml0XG4gICAgID0gXCJjYW1sX2JhX3NldF9nZW5lcmljXCJcblxuICBsZXQgcmVjIGNsb29wIGFyciBpZHggZiBjb2wgbWF4ID1cbiAgICBpZiBjb2wgPSBBcnJheS5sZW5ndGggaWR4IHRoZW4gc2V0IGFyciBpZHggKGYgaWR4KVxuICAgIGVsc2UgZm9yIGogPSAwIHRvIHByZWQgbWF4Lihjb2wpIGRvXG4gICAgICAgICAgIGlkeC4oY29sKSA8LSBqO1xuICAgICAgICAgICBjbG9vcCBhcnIgaWR4IGYgKHN1Y2MgY29sKSBtYXhcbiAgICAgICAgIGRvbmVcbiAgbGV0IHJlYyBmbG9vcCBhcnIgaWR4IGYgY29sIG1heCA9XG4gICAgaWYgY29sIDwgMCB0aGVuIHNldCBhcnIgaWR4IChmIGlkeClcbiAgICBlbHNlIGZvciBqID0gMSB0byBtYXguKGNvbCkgZG9cbiAgICAgICAgICAgaWR4Lihjb2wpIDwtIGo7XG4gICAgICAgICAgIGZsb29wIGFyciBpZHggZiAocHJlZCBjb2wpIG1heFxuICAgICAgICAgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltcyBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbXMgaW5cbiAgICBtYXRjaCBBcnJheS5sZW5ndGggZGltcywgbGF5b3V0IHdpdGhcbiAgICB8IDAsIF8gLT4gYXJyXG4gICAgfCBkbGVuLCBDX2xheW91dCAtPiBjbG9vcCBhcnIgKEFycmF5Lm1ha2UgZGxlbiAwKSBmIDAgZGltczsgYXJyXG4gICAgfCBkbGVuLCBGb3J0cmFuX2xheW91dCAtPiBmbG9vcCBhcnIgKEFycmF5Lm1ha2UgZGxlbiAxKSBmIChwcmVkIGRsZW4pIGRpbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJcblxuICBleHRlcm5hbCBudW1fZGltczogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCJjYW1sX2JhX251bV9kaW1zXCJcbiAgZXh0ZXJuYWwgbnRoX2RpbTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCA9IFwiY2FtbF9iYV9kaW1cIlxuICBsZXQgZGltcyBhID1cbiAgICBsZXQgbiA9IG51bV9kaW1zIGEgaW5cbiAgICBsZXQgZCA9IEFycmF5Lm1ha2UgbiAwIGluXG4gICAgZm9yIGkgPSAwIHRvIG4tMSBkbyBkLihpKSA8LSBudGhfZGltIGEgaSBkb25lO1xuICAgIGRcblxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKEFycmF5LmZvbGRfbGVmdCAoICogKSAxIChkaW1zIGFycikpXG5cbiAgZXh0ZXJuYWwgc3ViX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc3ViX3JpZ2h0OiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHNsaWNlX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCBhcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zbGljZVwiXG4gIGV4dGVybmFsIHNsaWNlX3JpZ2h0OiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc2xpY2VcIlxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0XG4gICAgID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuZW5kXG5cbm1vZHVsZSBBcnJheTAgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfHxdXG4gIGxldCBnZXQgYXJyID0gR2VuYXJyYXkuZ2V0IGFyciBbfHxdXG4gIGxldCBzZXQgYXJyID0gR2VuYXJyYXkuc2V0IGFyciBbfHxdXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID0ga2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycilcblxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuXG4gIGxldCBvZl92YWx1ZSBraW5kIGxheW91dCB2ID1cbiAgICBsZXQgYSA9IGNyZWF0ZSBraW5kIGxheW91dCBpblxuICAgIHNldCBhIHY7XG4gICAgYVxuICBsZXQgaW5pdCA9IG9mX3ZhbHVlXG5lbmRcblxubW9kdWxlIEFycmF5MSA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCBkaW0gPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbXxdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfMVwiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVjYW1sX2JhX3NldF8xXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzFcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8xXCJcbiAgZXh0ZXJuYWwgZGltOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8xXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltIGFycilcblxuICBleHRlcm5hbCBzdWI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgJ2MpIHQgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlICh0eXBlIHQpIChhIDogKF8sIF8sIHQpIEdlbmFycmF5LnQpIG4gPVxuICAgIG1hdGNoIGxheW91dCBhIHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IChHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF0gOiAoXywgXywgdCkgR2VuYXJyYXkudClcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IChHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdOiAoXywgXywgdCkgR2VuYXJyYXkudClcbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbiAgbGV0IGNfaW5pdCBhcnIgZGltIGYgPVxuICAgIGZvciBpID0gMCB0byBwcmVkIGRpbSBkbyB1bnNhZmVfc2V0IGFyciBpIChmIGkpIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltIGYgPVxuICAgIGZvciBpID0gMSB0byBkaW0gZG8gdW5zYWZlX3NldCBhcnIgaSAoZiBpKSBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0gZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0gaW5cbiAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gY19pbml0IGFyciBkaW0gZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbSBmOyBhcnJcbiAgbGV0IG9mX2FycmF5ICh0eXBlIHQpIGtpbmQgKGxheW91dDogdCBsYXlvdXQpIGRhdGEgPVxuICAgIGxldCBiYSA9IGNyZWF0ZSBraW5kIGxheW91dCAoQXJyYXkubGVuZ3RoIGRhdGEpIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZGF0YSAtIDEgZG8gdW5zYWZlX3NldCBiYSAoaSArIG9mcykgZGF0YS4oaSkgZG9uZTtcbiAgICBiYVxuZW5kXG5cbm1vZHVsZSBBcnJheTIgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW0xOyBkaW0yfF1cbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfMlwiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlY2FtbF9iYV9zZXRfMlwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2FcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9yZWZfMlwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8yXCJcbiAgZXh0ZXJuYWwgZGltMTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGRpbTI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzJcIlxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChkaW0xIGFycikgKiAoZGltMiBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc3ViX3JpZ2h0OlxuICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlX2xlZnQgYSBuID0gR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdXG4gIGxldCBzbGljZV9yaWdodCBhIG4gPSBHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbTEgZGltMiBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0xIGRvXG4gICAgICBmb3IgaiA9IDAgdG8gcHJlZCBkaW0yIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiAoZiBpIGopXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZiA9XG4gICAgZm9yIGogPSAxIHRvIGRpbTIgZG9cbiAgICAgIGZvciBpID0gMSB0byBkaW0xIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiAoZiBpIGopXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltMSBkaW0yIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltMSBkaW0yIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgZGltMSA9IEFycmF5Lmxlbmd0aCBkYXRhIGluXG4gICAgbGV0IGRpbTIgPSBpZiBkaW0xID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkgaW5cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBkaW0xIC0gMSBkb1xuICAgICAgbGV0IHJvdyA9IGRhdGEuKGkpIGluXG4gICAgICBpZiBBcnJheS5sZW5ndGggcm93IDw+IGRpbTIgdGhlblxuICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5Mi5vZl9hcnJheTogbm9uLXJlY3Rhbmd1bGFyIGRhdGFcIik7XG4gICAgICBmb3IgaiA9IDAgdG8gZGltMiAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCBiYSAoaSArIG9mcykgKGogKyBvZnMpIHJvdy4oailcbiAgICAgIGRvbmVcbiAgICBkb25lO1xuICAgIGJhXG5lbmRcblxubW9kdWxlIEFycmF5MyA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgZGltMyA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltMTsgZGltMjsgZGltM3xdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgPSBcIiVjYW1sX2JhX3JlZl8zXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV9zZXRfM1wiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhXG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzNcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfc2V0XzNcIlxuICBleHRlcm5hbCBkaW0xOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8xXCJcbiAgZXh0ZXJuYWwgZGltMjogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMlwiXG4gIGV4dGVybmFsIGRpbTM6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzNcIlxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChkaW0xIGFycikgKiAoZGltMiBhcnIpICogKGRpbTMgYXJyKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDpcbiAgICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBsZXQgc2xpY2VfbGVmdF8xIGEgbiBtID0gR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bjsgbXxdXG4gIGxldCBzbGljZV9yaWdodF8xIGEgbiBtID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG47IG18XVxuICBsZXQgc2xpY2VfbGVmdF8yIGEgbiA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XVxuICBsZXQgc2xpY2VfcmlnaHRfMiBhIG4gPSBHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGYgPVxuICAgIGZvciBpID0gMCB0byBwcmVkIGRpbTEgZG9cbiAgICAgIGZvciBqID0gMCB0byBwcmVkIGRpbTIgZG9cbiAgICAgICAgZm9yIGsgPSAwIHRvIHByZWQgZGltMyBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiBrIChmIGkgaiBrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBmb3IgayA9IDEgdG8gZGltMyBkb1xuICAgICAgZm9yIGogPSAxIHRvIGRpbTIgZG9cbiAgICAgICAgZm9yIGkgPSAxIHRvIGRpbTEgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogayAoZiBpIGogaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbTEgZGltMiBkaW0zIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgaW5cbiAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gY19pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgZGltMSA9IEFycmF5Lmxlbmd0aCBkYXRhIGluXG4gICAgbGV0IGRpbTIgPSBpZiBkaW0xID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkgaW5cbiAgICBsZXQgZGltMyA9IGlmIGRpbTIgPSAwIHRoZW4gMCBlbHNlIEFycmF5Lmxlbmd0aCBkYXRhLigwKS4oMCkgaW5cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgaW5cbiAgICBsZXQgb2ZzID1cbiAgICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgICAgIENfbGF5b3V0IC0+IDBcbiAgICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gMVxuICAgIGluXG4gICAgZm9yIGkgPSAwIHRvIGRpbTEgLSAxIGRvXG4gICAgICBsZXQgcm93ID0gZGF0YS4oaSkgaW5cbiAgICAgIGlmIEFycmF5Lmxlbmd0aCByb3cgPD4gZGltMiB0aGVuXG4gICAgICAgIGludmFsaWRfYXJnKFwiQmlnYXJyYXkuQXJyYXkzLm9mX2FycmF5OiBub24tY3ViaWMgZGF0YVwiKTtcbiAgICAgIGZvciBqID0gMCB0byBkaW0yIC0gMSBkb1xuICAgICAgICBsZXQgY29sID0gcm93LihqKSBpblxuICAgICAgICBpZiBBcnJheS5sZW5ndGggY29sIDw+IGRpbTMgdGhlblxuICAgICAgICAgIGludmFsaWRfYXJnKFwiQmlnYXJyYXkuQXJyYXkzLm9mX2FycmF5OiBub24tY3ViaWMgZGF0YVwiKTtcbiAgICAgICAgZm9yIGsgPSAwIHRvIGRpbTMgLSAxIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBiYSAoaSArIG9mcykgKGogKyBvZnMpIChrICsgb2ZzKSBjb2wuKGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lO1xuICAgIGJhXG5lbmRcblxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkwOiAoJ2EsICdiLCAnYykgQXJyYXkwLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkxOiAoJ2EsICdiLCAnYykgQXJyYXkxLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkyOiAoJ2EsICdiLCAnYykgQXJyYXkyLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkzOiAoJ2EsICdiLCAnYykgQXJyYXkzLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxubGV0IGFycmF5MF9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDAgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTBfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5MV9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDEgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTFfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5Ml9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDIgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTJfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5M19vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDMgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTNfb2ZfZ2VuYXJyYXlcIlxuXG5leHRlcm5hbCByZXNoYXBlOlxuICAgKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnQgLT4gaW50IGFycmF5IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiY2FtbF9iYV9yZXNoYXBlXCJcbmxldCByZXNoYXBlXzAgYSA9IHJlc2hhcGUgYSBbfHxdXG5sZXQgcmVzaGFwZV8xIGEgZGltMSA9IHJlc2hhcGUgYSBbfGRpbTF8XVxubGV0IHJlc2hhcGVfMiBhIGRpbTEgZGltMiA9IHJlc2hhcGUgYSBbfGRpbTE7ZGltMnxdXG5sZXQgcmVzaGFwZV8zIGEgZGltMSBkaW0yIGRpbTMgPSByZXNoYXBlIGEgW3xkaW0xO2RpbTI7ZGltM3xdXG5cbigqIEZvcmNlIGNhbWxfYmFfZ2V0X3sxLDIsMyxOfSB0byBiZSBsaW5rZWQgaW4sIHNpbmNlIHdlIGRvbid0IHJlZmVyXG4gICB0byB0aG9zZSBwcmltaXRpdmVzIGRpcmVjdGx5IGluIHRoaXMgZmlsZSAqKVxuXG5sZXQgXyA9XG4gIGxldCBfID0gR2VuYXJyYXkuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkxLmdldCBpblxuICBsZXQgXyA9IEFycmF5Mi5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTMuZ2V0IGluXG4gICgpXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyXCJdXG5leHRlcm5hbCBnZXQxOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzFcIlxuZXh0ZXJuYWwgZ2V0MjogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8yXCJcbmV4dGVybmFsIGdldDM6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfM1wiXG5leHRlcm5hbCBzZXQxOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzFcIlxuZXh0ZXJuYWwgc2V0MjogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8yXCJcbmV4dGVybmFsIHNldDM6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfM1wiXG4iLG51bGwsbnVsbCxudWxsLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiAzMi1iaXQgaW50ZWdlcnMuXG5cbiAgIFRoaXMgbW9kdWxlIHByb3ZpZGVzIG9wZXJhdGlvbnMgb24gdGhlIHR5cGUgW2ludDMyXVxuICAgb2Ygc2lnbmVkIDMyLWJpdCBpbnRlZ2Vycy4gIFVubGlrZSB0aGUgYnVpbHQtaW4gW2ludF0gdHlwZSxcbiAgIHRoZSB0eXBlIFtpbnQzMl0gaXMgZ3VhcmFudGVlZCB0byBiZSBleGFjdGx5IDMyLWJpdCB3aWRlIG9uIGFsbFxuICAgcGxhdGZvcm1zLiAgQWxsIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBvdmVyIFtpbnQzMl0gYXJlIHRha2VuXG4gICBtb2R1bG8gMnteMzJ9LlxuXG4gICBQZXJmb3JtYW5jZSBub3RpY2U6IHZhbHVlcyBvZiB0eXBlIFtpbnQzMl0gb2NjdXB5IG1vcmUgbWVtb3J5XG4gICBzcGFjZSB0aGFuIHZhbHVlcyBvZiB0eXBlIFtpbnRdLCBhbmQgYXJpdGhtZXRpYyBvcGVyYXRpb25zIG9uXG4gICBbaW50MzJdIGFyZSBnZW5lcmFsbHkgc2xvd2VyIHRoYW4gdGhvc2Ugb24gW2ludF0uICBVc2UgW2ludDMyXVxuICAgb25seSB3aGVuIHRoZSBhcHBsaWNhdGlvbiByZXF1aXJlcyBleGFjdCAzMi1iaXQgYXJpdGhtZXRpYy5cblxuICAgIExpdGVyYWxzIGZvciAzMi1iaXQgaW50ZWdlcnMgYXJlIHN1ZmZpeGVkIGJ5IGw6XG4gICAge1tcbiAgICAgIGxldCB6ZXJvOiBpbnQzMiA9IDBsXG4gICAgICBsZXQgb25lOiBpbnQzMiA9IDFsXG4gICAgICBsZXQgbV9vbmU6IGludDMyID0gLTFsXG4gICAgXX1cbiopXG5cbnZhbCB6ZXJvIDogaW50MzJcbigqKiBUaGUgMzItYml0IGludGVnZXIgMC4gKilcblxudmFsIG9uZSA6IGludDMyXG4oKiogVGhlIDMyLWJpdCBpbnRlZ2VyIDEuICopXG5cbnZhbCBtaW51c19vbmUgOiBpbnQzMlxuKCoqIFRoZSAzMi1iaXQgaW50ZWdlciAtMS4gKilcblxuZXh0ZXJuYWwgbmVnIDogaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9uZWdcIlxuKCoqIFVuYXJ5IG5lZ2F0aW9uLiAqKVxuXG5leHRlcm5hbCBhZGQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FkZFwiXG4oKiogQWRkaXRpb24uICopXG5cbmV4dGVybmFsIHN1YiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfc3ViXCJcbigqKiBTdWJ0cmFjdGlvbi4gKilcblxuZXh0ZXJuYWwgbXVsIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tdWxcIlxuKCoqIE11bHRpcGxpY2F0aW9uLiAqKVxuXG5leHRlcm5hbCBkaXYgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2RpdlwiXG4oKiogSW50ZWdlciBkaXZpc2lvbi4gVGhpcyBkaXZpc2lvbiByb3VuZHMgdGhlIHJlYWwgcXVvdGllbnQgb2ZcbiAgIGl0cyBhcmd1bWVudHMgdG93YXJkcyB6ZXJvLCBhcyBzcGVjaWZpZWQgZm9yIHshU3RkbGliLigvKX0uXG4gICBAcmFpc2UgRGl2aXNpb25fYnlfemVybyBpZiB0aGUgc2Vjb25kXG4gICBhcmd1bWVudCBpcyB6ZXJvLiAgKilcblxudmFsIHVuc2lnbmVkX2RpdiA6IGludDMyIC0+IGludDMyIC0+IGludDMyXG4oKiogU2FtZSBhcyB7IWRpdn0sIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhbmQgcmVzdWx0IGFyZSBpbnRlcnByZXRlZCBhcyB7ZVxuICAgIHVuc2lnbmVkfSAzMi1iaXQgaW50ZWdlcnMuXG5cbiAgICBAc2luY2UgNC4wOC4wICopXG5cbmV4dGVybmFsIHJlbSA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbW9kXCJcbigqKiBJbnRlZ2VyIHJlbWFpbmRlci4gIElmIFt5XSBpcyBub3QgemVybywgdGhlIHJlc3VsdFxuICAgb2YgW0ludDMyLnJlbSB4IHldIHNhdGlzZmllcyB0aGUgZm9sbG93aW5nIHByb3BlcnR5OlxuICAgW3ggPSBJbnQzMi5hZGQgKEludDMyLm11bCAoSW50MzIuZGl2IHggeSkgeSkgKEludDMyLnJlbSB4IHkpXS5cbiAgIElmIFt5ID0gMF0sIFtJbnQzMi5yZW0geCB5XSByYWlzZXMgW0RpdmlzaW9uX2J5X3plcm9dLiAqKVxuXG52YWwgdW5zaWduZWRfcmVtIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzJcbigqKiBTYW1lIGFzIHshcmVtfSwgZXhjZXB0IHRoYXQgYXJndW1lbnRzIGFuZCByZXN1bHQgYXJlIGludGVycHJldGVkIGFzIHtlXG4gICAgdW5zaWduZWR9IDMyLWJpdCBpbnRlZ2Vycy5cblxuICAgIEBzaW5jZSA0LjA4LjAgKilcblxudmFsIHN1Y2MgOiBpbnQzMiAtPiBpbnQzMlxuKCoqIFN1Y2Nlc3Nvci4gIFtJbnQzMi5zdWNjIHhdIGlzIFtJbnQzMi5hZGQgeCBJbnQzMi5vbmVdLiAqKVxuXG52YWwgcHJlZCA6IGludDMyIC0+IGludDMyXG4oKiogUHJlZGVjZXNzb3IuICBbSW50MzIucHJlZCB4XSBpcyBbSW50MzIuc3ViIHggSW50MzIub25lXS4gKilcblxudmFsIGFicyA6IGludDMyIC0+IGludDMyXG4oKiogUmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBpdHMgYXJndW1lbnQuICopXG5cbnZhbCBtYXhfaW50IDogaW50MzJcbigqKiBUaGUgZ3JlYXRlc3QgcmVwcmVzZW50YWJsZSAzMi1iaXQgaW50ZWdlciwgMnteMzF9IC0gMS4gKilcblxudmFsIG1pbl9pbnQgOiBpbnQzMlxuKCoqIFRoZSBzbWFsbGVzdCByZXByZXNlbnRhYmxlIDMyLWJpdCBpbnRlZ2VyLCAtMnteMzF9LiAqKVxuXG5cbmV4dGVybmFsIGxvZ2FuZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYW5kXCJcbigqKiBCaXR3aXNlIGxvZ2ljYWwgYW5kLiAqKVxuXG5leHRlcm5hbCBsb2dvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfb3JcIlxuKCoqIEJpdHdpc2UgbG9naWNhbCBvci4gKilcblxuZXh0ZXJuYWwgbG9neG9yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl94b3JcIlxuKCoqIEJpdHdpc2UgbG9naWNhbCBleGNsdXNpdmUgb3IuICopXG5cbnZhbCBsb2dub3QgOiBpbnQzMiAtPiBpbnQzMlxuKCoqIEJpdHdpc2UgbG9naWNhbCBuZWdhdGlvbi4gKilcblxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzbFwiXG4oKiogW0ludDMyLnNoaWZ0X2xlZnQgeCB5XSBzaGlmdHMgW3hdIHRvIHRoZSBsZWZ0IGJ5IFt5XSBiaXRzLlxuICAgVGhlIHJlc3VsdCBpcyB1bnNwZWNpZmllZCBpZiBbeSA8IDBdIG9yIFt5ID49IDMyXS4gKilcblxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9hc3JcIlxuKCoqIFtJbnQzMi5zaGlmdF9yaWdodCB4IHldIHNoaWZ0cyBbeF0gdG8gdGhlIHJpZ2h0IGJ5IFt5XSBiaXRzLlxuICAgVGhpcyBpcyBhbiBhcml0aG1ldGljIHNoaWZ0OiB0aGUgc2lnbiBiaXQgb2YgW3hdIGlzIHJlcGxpY2F0ZWRcbiAgIGFuZCBpbnNlcnRlZCBpbiB0aGUgdmFjYXRlZCBiaXRzLlxuICAgVGhlIHJlc3VsdCBpcyB1bnNwZWNpZmllZCBpZiBbeSA8IDBdIG9yIFt5ID49IDMyXS4gKilcblxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzclwiXG4oKiogW0ludDMyLnNoaWZ0X3JpZ2h0X2xvZ2ljYWwgeCB5XSBzaGlmdHMgW3hdIHRvIHRoZSByaWdodCBieSBbeV0gYml0cy5cbiAgIFRoaXMgaXMgYSBsb2dpY2FsIHNoaWZ0OiB6ZXJvZXMgYXJlIGluc2VydGVkIGluIHRoZSB2YWNhdGVkIGJpdHNcbiAgIHJlZ2FyZGxlc3Mgb2YgdGhlIHNpZ24gb2YgW3hdLlxuICAgVGhlIHJlc3VsdCBpcyB1bnNwZWNpZmllZCBpZiBbeSA8IDBdIG9yIFt5ID49IDMyXS4gKilcblxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGludDMyID0gXCIlaW50MzJfb2ZfaW50XCJcbigqKiBDb252ZXJ0IHRoZSBnaXZlbiBpbnRlZ2VyICh0eXBlIFtpbnRdKSB0byBhIDMyLWJpdCBpbnRlZ2VyXG4gICAgKHR5cGUgW2ludDMyXSkuIE9uIDY0LWJpdCBwbGF0Zm9ybXMsIHRoZSBhcmd1bWVudCBpcyB0YWtlblxuICAgIG1vZHVsbyAye14zMn0uICopXG5cbmV4dGVybmFsIHRvX2ludCA6IGludDMyIC0+IGludCA9IFwiJWludDMyX3RvX2ludFwiXG4oKiogQ29udmVydCB0aGUgZ2l2ZW4gMzItYml0IGludGVnZXIgKHR5cGUgW2ludDMyXSkgdG8gYW5cbiAgIGludGVnZXIgKHR5cGUgW2ludF0pLiAgT24gMzItYml0IHBsYXRmb3JtcywgdGhlIDMyLWJpdCBpbnRlZ2VyXG4gICBpcyB0YWtlbiBtb2R1bG8gMnteMzF9LCBpLmUuIHRoZSBoaWdoLW9yZGVyIGJpdCBpcyBsb3N0XG4gICBkdXJpbmcgdGhlIGNvbnZlcnNpb24uICBPbiA2NC1iaXQgcGxhdGZvcm1zLCB0aGUgY29udmVyc2lvblxuICAgaXMgZXhhY3QuICopXG5cbnZhbCB1bnNpZ25lZF90b19pbnQgOiBpbnQzMiAtPiBpbnQgb3B0aW9uXG4oKiogU2FtZSBhcyB7IXRvX2ludH0sIGJ1dCBpbnRlcnByZXRzIHRoZSBhcmd1bWVudCBhcyBhbiB7ZSB1bnNpZ25lZH0gaW50ZWdlci5cbiAgICBSZXR1cm5zIFtOb25lXSBpZiB0aGUgdW5zaWduZWQgdmFsdWUgb2YgdGhlIGFyZ3VtZW50IGNhbm5vdCBmaXQgaW50byBhblxuICAgIFtpbnRdLlxuXG4gICAgQHNpbmNlIDQuMDguMCAqKVxuXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuKCoqIENvbnZlcnQgdGhlIGdpdmVuIGZsb2F0aW5nLXBvaW50IG51bWJlciB0byBhIDMyLWJpdCBpbnRlZ2VyLFxuICAgZGlzY2FyZGluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0ICh0cnVuY2F0ZSB0b3dhcmRzIDApLlxuICAgSWYgdGhlIHRydW5jYXRlZCBmbG9hdGluZy1wb2ludCBudW1iZXIgaXMgb3V0c2lkZSB0aGUgcmFuZ2VcbiAgIFxcW3shSW50MzIubWluX2ludH0sIHshSW50MzIubWF4X2ludH1cXF0sIG5vIGV4Y2VwdGlvbiBpcyByYWlzZWQsIGFuZFxuICAgYW4gdW5zcGVjaWZpZWQsIHBsYXRmb3JtLWRlcGVuZGVudCBpbnRlZ2VyIGlzIHJldHVybmVkLiAqKVxuXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX3RvX2Zsb2F0XCIgXCJjYW1sX2ludDMyX3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuKCoqIENvbnZlcnQgdGhlIGdpdmVuIDMyLWJpdCBpbnRlZ2VyIHRvIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLiAqKVxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50MzIgPSBcImNhbWxfaW50MzJfb2Zfc3RyaW5nXCJcbigqKiBDb252ZXJ0IHRoZSBnaXZlbiBzdHJpbmcgdG8gYSAzMi1iaXQgaW50ZWdlci5cbiAgIFRoZSBzdHJpbmcgaXMgcmVhZCBpbiBkZWNpbWFsIChieSBkZWZhdWx0LCBvciBpZiB0aGUgc3RyaW5nXG4gICBiZWdpbnMgd2l0aCBbMHVdKSBvciBpbiBoZXhhZGVjaW1hbCwgb2N0YWwgb3IgYmluYXJ5IGlmIHRoZVxuICAgc3RyaW5nIGJlZ2lucyB3aXRoIFsweF0sIFswb10gb3IgWzBiXSByZXNwZWN0aXZlbHkuXG5cbiAgIFRoZSBbMHVdIHByZWZpeCByZWFkcyB0aGUgaW5wdXQgYXMgYW4gdW5zaWduZWQgaW50ZWdlciBpbiB0aGUgcmFuZ2VcbiAgIFtbMCwgMipJbnQzMi5tYXhfaW50KzFdXS4gIElmIHRoZSBpbnB1dCBleGNlZWRzIHshSW50MzIubWF4X2ludH1cbiAgIGl0IGlzIGNvbnZlcnRlZCB0byB0aGUgc2lnbmVkIGludGVnZXJcbiAgIFtJbnQzMi5taW5faW50ICsgaW5wdXQgLSBJbnQzMi5tYXhfaW50IC0gMV0uXG5cbiAgIFRoZSBbX10gKHVuZGVyc2NvcmUpIGNoYXJhY3RlciBjYW4gYXBwZWFyIGFueXdoZXJlIGluIHRoZSBzdHJpbmdcbiAgIGFuZCBpcyBpZ25vcmVkLlxuICAgQHJhaXNlIEZhaWx1cmUgaWYgdGhlIGdpdmVuIHN0cmluZyBpcyBub3RcbiAgIGEgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciwgb3IgaWYgdGhlIGludGVnZXIgcmVwcmVzZW50ZWRcbiAgIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGludGVnZXJzIHJlcHJlc2VudGFibGUgaW4gdHlwZSBbaW50MzJdLiAqKVxuXG52YWwgb2Zfc3RyaW5nX29wdDogc3RyaW5nIC0+IGludDMyIG9wdGlvblxuKCoqIFNhbWUgYXMgW29mX3N0cmluZ10sIGJ1dCByZXR1cm4gW05vbmVdIGluc3RlYWQgb2YgcmFpc2luZy5cbiAgICBAc2luY2UgNC4wNSAqKVxuXG5cbnZhbCB0b19zdHJpbmcgOiBpbnQzMiAtPiBzdHJpbmdcbigqKiBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBpdHMgYXJndW1lbnQsIGluIHNpZ25lZCBkZWNpbWFsLiAqKVxuXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuKCoqIFJldHVybiB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGZsb2F0IGFjY29yZGluZ1xuICAgdG8gdGhlIElFRUUgNzU0IGZsb2F0aW5nLXBvaW50ICdzaW5nbGUgZm9ybWF0JyBiaXQgbGF5b3V0LlxuICAgQml0IDMxIG9mIHRoZSByZXN1bHQgcmVwcmVzZW50cyB0aGUgc2lnbiBvZiB0aGUgZmxvYXQ7XG4gICBiaXRzIDMwIHRvIDIzIHJlcHJlc2VudCB0aGUgKGJpYXNlZCkgZXhwb25lbnQ7IGJpdHMgMjIgdG8gMFxuICAgcmVwcmVzZW50IHRoZSBtYW50aXNzYS4gKilcblxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbigqKiBSZXR1cm4gdGhlIGZsb2F0aW5nLXBvaW50IG51bWJlciB3aG9zZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbixcbiAgIGFjY29yZGluZyB0byB0aGUgSUVFRSA3NTQgZmxvYXRpbmctcG9pbnQgJ3NpbmdsZSBmb3JtYXQnIGJpdCBsYXlvdXQsXG4gICBpcyB0aGUgZ2l2ZW4gW2ludDMyXS4gKilcblxudHlwZSB0ID0gaW50MzJcbigqKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgMzItYml0IGludGVnZXJzLiAqKVxuXG52YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuKCoqIFRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciAzMi1iaXQgaW50ZWdlcnMsIHdpdGggdGhlIHNhbWUgc3BlY2lmaWNhdGlvbiBhc1xuICAgIHshU3RkbGliLmNvbXBhcmV9LiAgQWxvbmcgd2l0aCB0aGUgdHlwZSBbdF0sIHRoaXMgZnVuY3Rpb24gW2NvbXBhcmVdXG4gICAgYWxsb3dzIHRoZSBtb2R1bGUgW0ludDMyXSB0byBiZSBwYXNzZWQgYXMgYXJndW1lbnQgdG8gdGhlIGZ1bmN0b3JzXG4gICAgeyFTZXQuTWFrZX0gYW5kIHshTWFwLk1ha2V9LiAqKVxuXG52YWwgdW5zaWduZWRfY29tcGFyZTogdCAtPiB0IC0+IGludFxuKCoqIFNhbWUgYXMgeyFjb21wYXJlfSwgZXhjZXB0IHRoYXQgYXJndW1lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyB7ZSB1bnNpZ25lZH1cbiAgICAzMi1iaXQgaW50ZWdlcnMuXG5cbiAgICBAc2luY2UgNC4wOC4wICopXG5cbnZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbigqKiBUaGUgZXF1YWwgZnVuY3Rpb24gZm9yIGludDMycy5cbiAgICBAc2luY2UgNC4wMy4wICopXG5cbnZhbCBtaW46IHQgLT4gdCAtPiB0XG4oKiogUmV0dXJuIHRoZSBzbWFsbGVyIG9mIHRoZSB0d28gYXJndW1lbnRzLlxuICAgIEBzaW5jZSA0LjEzLjBcbiopXG5cbnZhbCBtYXg6IHQgLT4gdCAtPiB0XG4oKiogUmV0dXJuIHRoZSBncmVhdGVyIG9mIHRoZSB0d28gYXJndW1lbnRzLlxuICAgIEBzaW5jZSA0LjEzLjBcbiAqKVxuXG5cbigqKi8qKilcblxuKCoqIHsxIERlcHJlY2F0ZWQgZnVuY3Rpb25zfSAqKVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5bQEBvY2FtbC5kZXByZWNhdGVkIFwiVXNlIFByaW50Zi5zcHJpbnRmIHdpdGggYSBbJWwuLi5dIGZvcm1hdCBpbnN0ZWFkLlwiXVxuKCoqIERvIG5vdCB1c2UgdGhpcyBkZXByZWNhdGVkIGZ1bmN0aW9uLiAgSW5zdGVhZCxcbiAgIHVzZWQgeyFQcmludGYuc3ByaW50Zn0gd2l0aCBhIFslbC4uLl0gZm9ybWF0LiAqKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBEYW5pZWwgZGUgUmF1Z2xhdWRyZSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSAnYSBjZWxsIG9wdGlvblxuYW5kICdhIGNlbGwgPSB7IG11dGFibGUgY291bnQgOiBpbnQ7IG11dGFibGUgZGF0YSA6ICdhIGRhdGEgfVxuYW5kICdhIGRhdGEgPVxuICAgIFNlbXB0eVxuICB8IFNjb25zIG9mICdhICogJ2EgZGF0YVxuICB8IFNhcHAgb2YgJ2EgZGF0YSAqICdhIGRhdGFcbiAgfCBTbGF6eSBvZiAnYSBkYXRhIExhenkudFxuICB8IFNnZW4gb2YgJ2EgZ2VuXG4gIHwgU2J1ZmZpbyA6IGJ1ZmZpbyAtPiBjaGFyIGRhdGFcbmFuZCAnYSBnZW4gPSB7IG11dGFibGUgY3VyciA6ICdhIG9wdGlvbiBvcHRpb247IGZ1bmMgOiBpbnQgLT4gJ2Egb3B0aW9uIH1cbmFuZCBidWZmaW8gPVxuICB7IGljIDogaW5fY2hhbm5lbDsgYnVmZiA6IGJ5dGVzOyBtdXRhYmxlIGxlbiA6IGludDsgbXV0YWJsZSBpbmQgOiBpbnQgfVxuXG5leGNlcHRpb24gRmFpbHVyZVxuZXhjZXB0aW9uIEVycm9yIG9mIHN0cmluZ1xuXG5sZXQgY291bnQgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gMFxuICB8IFNvbWUgeyBjb3VudCB9IC0+IGNvdW50XG5sZXQgZGF0YSA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBTZW1wdHlcbiAgfCBTb21lIHsgZGF0YSB9IC0+IGRhdGFcblxubGV0IGZpbGxfYnVmZiBiID1cbiAgYi5sZW4gPC0gaW5wdXQgYi5pYyBiLmJ1ZmYgMCAoQnl0ZXMubGVuZ3RoIGIuYnVmZik7IGIuaW5kIDwtIDBcblxuXG5sZXQgcmVjIGdldF9kYXRhIDogdHlwZSB2LiBpbnQgLT4gdiBkYXRhIC0+IHYgZGF0YSA9IGZ1biBjb3VudCBkIC0+IG1hdGNoIGQgd2l0aFxuICgqIFJldHVybnMgZWl0aGVyIFNlbXB0eSBvciBTY29ucyhhLCBfKSBldmVuIHdoZW4gZCBpcyBhIGdlbmVyYXRvclxuICAgIG9yIGEgYnVmZmVyLiBJbiB0aG9zZSBjYXNlcywgdGhlIGl0ZW0gYSBpcyBzZWVuIGFzIGV4dHJhY3RlZCBmcm9tXG4gdGhlIGdlbmVyYXRvci9idWZmZXIuXG4gVGhlIGNvdW50IHBhcmFtZXRlciBpcyB1c2VkIGZvciBjYWxsaW5nIGBTZ2VuLWZ1bmN0aW9ucycuICAqKVxuICAgU2VtcHR5IHwgU2NvbnMgKF8sIF8pIC0+IGRcbiB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgY291bnQgZDEgd2l0aFxuICAgICAgIFNjb25zIChhLCBkMTEpIC0+IFNjb25zIChhLCBTYXBwIChkMTEsIGQyKSlcbiAgICAgfCBTZW1wdHkgLT4gZ2V0X2RhdGEgY291bnQgZDJcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNnZW4ge2N1cnIgPSBTb21lIE5vbmV9IC0+IFNlbXB0eVxuIHwgU2dlbiAoe2N1cnIgPSBTb21lKFNvbWUgYSl9IGFzIGcpIC0+XG4gICAgIGcuY3VyciA8LSBOb25lOyBTY29ucyhhLCBkKVxuIHwgU2dlbiBnIC0+XG4gICAgIGJlZ2luIG1hdGNoIGcuZnVuYyBjb3VudCB3aXRoXG4gICAgICAgTm9uZSAtPiBnLmN1cnIgPC0gU29tZShOb25lKTsgU2VtcHR5XG4gICAgIHwgU29tZSBhIC0+IFNjb25zKGEsIGQpXG4gICAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgZW5kXG4gfCBTYnVmZmlvIGIgLT5cbiAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgaWYgYi5sZW4gPT0gMCB0aGVuIFNlbXB0eSBlbHNlXG4gICAgICAgbGV0IHIgPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZCBpblxuICAgICAgICgqIFdhcm5pbmc6IGFueW9uZSB1c2luZyBnIHRoaW5rcyB0aGF0IGFuIGl0ZW0gaGFzIGJlZW4gcmVhZCAqKVxuICAgICAgIGIuaW5kIDwtIHN1Y2MgYi5pbmQ7IFNjb25zKHIsIGQpXG4gfCBTbGF6eSBmIC0+IGdldF9kYXRhIGNvdW50IChMYXp5LmZvcmNlIGYpXG5cblxubGV0IHJlYyBwZWVrX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB2IG9wdGlvbiA9IGZ1biBzIC0+XG4gKCogY29uc3VsdCB0aGUgZmlyc3QgaXRlbSBvZiBzICopXG4gbWF0Y2ggcy5kYXRhIHdpdGhcbiAgIFNlbXB0eSAtPiBOb25lXG4gfCBTY29ucyAoYSwgXykgLT4gU29tZSBhXG4gfCBTYXBwIChfLCBfKSAtPlxuICAgICBiZWdpbiBtYXRjaCBnZXRfZGF0YSBzLmNvdW50IHMuZGF0YSB3aXRoXG4gICAgICAgU2NvbnMoYSwgXykgYXMgZCAtPiBzLmRhdGEgPC0gZDsgU29tZSBhXG4gICAgIHwgU2VtcHR5IC0+IE5vbmVcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNsYXp5IGYgLT4gcy5kYXRhIDwtIChMYXp5LmZvcmNlIGYpOyBwZWVrX2RhdGEgc1xuIHwgU2dlbiB7Y3VyciA9IFNvbWUgYX0gLT4gYVxuIHwgU2dlbiBnIC0+IGxldCB4ID0gZy5mdW5jIHMuY291bnQgaW4gZy5jdXJyIDwtIFNvbWUgeDsgeFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBiZWdpbiBzLmRhdGEgPC0gU2VtcHR5OyBOb25lIGVuZFxuICAgICBlbHNlIFNvbWUgKEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmIGIuaW5kKVxuXG5cbmxldCBwZWVrID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IE5vbmVcbiAgfCBTb21lIHMgLT4gcGVla19kYXRhIHNcblxuXG5sZXQgcmVjIGp1bmtfZGF0YSA6IHR5cGUgdi4gdiBjZWxsIC0+IHVuaXQgPSBmdW4gcyAtPlxuICBtYXRjaCBzLmRhdGEgd2l0aFxuICAgIFNjb25zIChfLCBkKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBzLmRhdGEgPC0gZFxuICB8IFNnZW4gKHtjdXJyID0gU29tZSBffSBhcyBnKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBnLmN1cnIgPC0gTm9uZVxuICB8IFNidWZmaW8gYiAtPlxuICAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgIGlmIGIubGVuID09IDAgdGhlbiBzLmRhdGEgPC0gU2VtcHR5XG4gICAgICBlbHNlIChzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBiLmluZCA8LSBzdWNjIGIuaW5kKVxuICB8IF8gLT5cbiAgICAgIG1hdGNoIHBlZWtfZGF0YSBzIHdpdGhcbiAgICAgICAgTm9uZSAtPiAoKVxuICAgICAgfCBTb21lIF8gLT4ganVua19kYXRhIHNcblxuXG5sZXQganVuayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgZGF0YSAtPiBqdW5rX2RhdGEgZGF0YVxuXG5sZXQgcmVjIG5nZXRfZGF0YSBuIHMgPVxuICBpZiBuIDw9IDAgdGhlbiBbXSwgcy5kYXRhLCAwXG4gIGVsc2VcbiAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICBTb21lIGEgLT5cbiAgICAgICAganVua19kYXRhIHM7XG4gICAgICAgIGxldCAoYWwsIGQsIGspID0gbmdldF9kYXRhIChwcmVkIG4pIHMgaW4gYSA6OiBhbCwgU2NvbnMgKGEsIGQpLCBzdWNjIGtcbiAgICB8IE5vbmUgLT4gW10sIHMuZGF0YSwgMFxuXG5cbmxldCBucGVla19kYXRhIG4gcyA9XG4gIGxldCAoYWwsIGQsIGxlbikgPSBuZ2V0X2RhdGEgbiBzIGluXG4gIHMuY291bnQgPC0gKHMuY291bnQgLSBsZW4pO1xuICBzLmRhdGEgPC0gZDtcbiAgYWxcblxuXG5sZXQgbnBlZWsgbiA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBbXVxuICB8IFNvbWUgZCAtPiBucGVla19kYXRhIG4gZFxuXG5sZXQgbmV4dCBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIGEgLT4ganVuayBzOyBhXG4gIHwgTm9uZSAtPiByYWlzZSBGYWlsdXJlXG5cblxubGV0IGVtcHR5IHMgPVxuICBtYXRjaCBwZWVrIHMgd2l0aFxuICAgIFNvbWUgXyAtPiByYWlzZSBGYWlsdXJlXG4gIHwgTm9uZSAtPiAoKVxuXG5cbmxldCBpdGVyIGYgc3RybSA9XG4gIGxldCByZWMgZG9fcmVjICgpID1cbiAgICBtYXRjaCBwZWVrIHN0cm0gd2l0aFxuICAgICAgU29tZSBhIC0+IGp1bmsgc3RybTsgaWdub3JlKGYgYSk7IGRvX3JlYyAoKVxuICAgIHwgTm9uZSAtPiAoKVxuICBpblxuICBkb19yZWMgKClcblxuXG4oKiBTdHJlYW0gYnVpbGRpbmcgZnVuY3Rpb25zICopXG5cbmxldCBmcm9tIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTZ2VuIHtjdXJyID0gTm9uZTsgZnVuYyA9IGZ9fVxuXG5sZXQgb2ZfbGlzdCBsID1cbiAgU29tZSB7Y291bnQgPSAwOyBkYXRhID0gTGlzdC5mb2xkX3JpZ2h0IChmdW4geCBsIC0+IFNjb25zICh4LCBsKSkgbCBTZW1wdHl9XG5cblxubGV0IG9mX3N0cmluZyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICAoKiBXZSBjYW5ub3QgdXNlIHRoZSBpbmRleCBwYXNzZWQgYnkgdGhlIFtmcm9tXSBmdW5jdGlvbiBkaXJlY3RseVxuICAgICAgIGJlY2F1c2UgaXQgcmV0dXJucyB0aGUgY3VycmVudCBzdHJlYW0gY291bnQsIHdpdGggYWJzb2x1dGVseSBub1xuICAgICAgIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgc3RhcnQgZnJvbSAwLiBGb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2VcbiAgICAgICBvZiBbU3RyZWFtLmljb25zICdjJyAoU3RyZWFtLmZyb21fc3RyaW5nIFwiYWJcIildLCB0aGUgZmlyc3RcbiAgICAgICBhY2Nlc3MgdG8gdGhlIHN0cmluZyB3aWxsIGJlIG1hZGUgd2l0aCBjb3VudCBbMV0gYWxyZWFkeS5cbiAgICAqKVxuICAgIGxldCBjID0gIWNvdW50IGluXG4gICAgaWYgYyA8IFN0cmluZy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgcy5bY10pXG4gICAgZWxzZSBOb25lKVxuXG5cbmxldCBvZl9ieXRlcyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBCeXRlcy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgKEJ5dGVzLmdldCBzIGMpKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfY2hhbm5lbCBpYyA9XG4gIFNvbWUge2NvdW50ID0gMDtcbiAgICAgICAgZGF0YSA9IFNidWZmaW8ge2ljID0gaWM7IGJ1ZmYgPSBCeXRlcy5jcmVhdGUgNDA5NjsgbGVuID0gMDsgaW5kID0gMH19XG5cblxuKCogU3RyZWFtIGV4cHJlc3Npb25zIGJ1aWxkZXJzICopXG5cbmxldCBpYXBwIGkgcyA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNhcHAgKGRhdGEgaSwgZGF0YSBzKX1cbmxldCBpY29ucyBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTY29ucyAoaSwgZGF0YSBzKX1cbmxldCBpc2luZyBpID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIFNlbXB0eSl9XG5cbmxldCBsYXBwIGYgcyA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KFNhcHAgKGRhdGEgKGYgKCkpLCBkYXRhIHMpKSl9XG5cbmxldCBsY29ucyBmIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgZGF0YSBzKSkpfVxubGV0IGxzaW5nIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgU2VtcHR5KSkpfVxuXG5sZXQgc2VtcHR5ID0gTm9uZVxubGV0IHNsYXp5IGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShkYXRhIChmICgpKSkpfVxuXG4oKiBGb3IgZGVidWdnaW5nIHVzZSAqKVxuXG5sZXQgcmVjIGR1bXAgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgdCAtPiB1bml0ID0gZnVuIGYgcyAtPlxuICBwcmludF9zdHJpbmcgXCJ7Y291bnQgPSBcIjtcbiAgcHJpbnRfaW50IChjb3VudCBzKTtcbiAgcHJpbnRfc3RyaW5nIFwiOyBkYXRhID0gXCI7XG4gIGR1bXBfZGF0YSBmIChkYXRhIHMpO1xuICBwcmludF9zdHJpbmcgXCJ9XCI7XG4gIHByaW50X25ld2xpbmUgKClcbmFuZCBkdW1wX2RhdGEgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgZGF0YSAtPiB1bml0ID0gZnVuIGYgLT5cbiAgZnVuY3Rpb25cbiAgICBTZW1wdHkgLT4gcHJpbnRfc3RyaW5nIFwiU2VtcHR5XCJcbiAgfCBTY29ucyAoYSwgZCkgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNjb25zIChcIjtcbiAgICAgIGYgYTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiKVwiXG4gIHwgU2FwcCAoZDEsIGQyKSAtPlxuICAgICAgcHJpbnRfc3RyaW5nIFwiU2FwcCAoXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMjtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNsYXp5IF8gLT4gcHJpbnRfc3RyaW5nIFwiU2xhenlcIlxuICB8IFNnZW4gXyAtPiBwcmludF9zdHJpbmcgXCJTZ2VuXCJcbiAgfCBTYnVmZmlvIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2J1ZmZpb1wiXG4iLCIoKiB3aHkgKilcblxuKCpcblxubmFtZXM/OlxuICAgLSB1bml2ZXJzYWwgdG9vbCwgdW5pdG9vbCBbd2FzIHRoaW5raW5nIGFib3V0IGhvdyB0aGlzIGlzIHRyeWluZyB0byB1bmlmeSBhIGxvdCBvZiBteSBcInRvb2xzIGZvciB0aG91Z2h0XCJdXG4gICAgICogYmVjYXVzZSBpdCBoYXMgYWx3YXlzIGJvdGhlcmVkIG1lIHRoYXQgaXQncyBlYXNpZXIgdG8gdXNlIGdvb2dsZSBzZWFyY2ggYXMgYSBjYWxjdWxhdG9yIHRoYW4gdGhlIHB1cnBvc2UgYnVpbHQgYXBwISEhISEhISFcbiAgIC0gdW5pdmVyc2FsIGNvbnNvbGUsIHVuaWNvbiAoVU5JQ09yTikgW3VuaWNvbiBpcyBuaWNlIDszXVxuICAgLSBub24tbWFnaWNhbCBzeXN0ZW1zIChOTVMpIHVuLW1hZ2ljYWxcbiAgIC0gY29uc29sZSBpcyBhbiBpbnRlcmZhY2UgdG8gYWxsb3cgeW91IHRvIHByb2dyYW0geW91ciBjb21wdXRlciBtb3JlIGVhc2lseS5cbiAgXG5kZXNjcmliZSBleGFjdGx5IGV2ZXJ5IGNhc2UgeW91IGNhbiB0aGluayBvZiB0aGF0IHlvdSB3YW50IHRoaXMgZHJhd2luZyBhbmQgbGF5b3V0IHN5c3RlbSB0byBoYW5kbGU6XG4gICBcbiogZHJhdyB0ZXh0IG9uIHZhcmlvdXNseSBjb2xvdXJlZCBiYWNrZ3JvdW5kcyB0aGF0IGNhbiBiZSBkZWZpbmVkIGxvY2FsbHkgb3IgZ2xvYmFsbHlcbiogVE9ET1xuXG4qKVxuXG4oKlxuXG5BTFdBWVMgQlJFQUsgVVAgVEhFIFBST0JMRU0gSU5UTyBTTUFMTEVSIENIVU5LUyBCSVRDSCEhXG5cblRpbWVzIEkgd291bGQgaGF2ZSBzb2x2ZWQgaXQgZmFzdGVyIGlmIGkgYnJva2UgaXQgdXAgaW5zdGVhZCBvZiB0cnlpbmcgdG8gdW5kZXJzdGFuZCBpdCBhbGwgYXQgb25jZTogMlxuXG5hIGNvbXB1dGF0aW9uIGNvbnNvbGVcblxuLSBpcm1pbiBzdG9yZSBwcm92aWRlcyBhIHRyZWUgb2YgZGF0YSBvYmplY3RzXG4tIHRoZSB0cmVlIGNhbiBiZSBuYXZpZ2F0ZWQgaW4gdGhlIGRlZmF1bHQgdmlld1xuLSB0aGUgc2VsZWN0ZWQgb2JqZWN0IGNhbiBiZSBlZGl0ZWQgPGVudGVyPiBvciBleGVjdXRlZCBhcyBhbiBvY2FtbCB0b3AgbGV2ZWwgcGhyYXNlIDxDLWVudGVyPlxuLSBlYWNoIGV4ZWN1dGlvbiBzdG9yZXMgYW55IGVkaXRlZCBtb2RpZmljYXRpb25zIGFuZCB0aGUgY29tbWFuZCB0byBleGVjdXRlIHRoYXQgcGhyYXNlIGluIHRoZSBjdXJyZW50IGlybWluIHN0b3JlIGNvbnRleHQgYXMgYSBjb21taXQgbWVzc2FnZVxuLSB3aGlsZSBlZGl0aW5nIGEgZGF0YSBvYmplY3QgPGN0cmwtZW50ZXI+IHdpbGxlIHNlYXJjaCBmb3IgdGhlIHByZXZpb3VzIGFuZCBuZXh0IGA7O2Agb3IgQk9GL0VPRiBhbmQgZXhlY3V0ZSB0aGUgZW5jbG9zZWQgdGV4dCBhbmQgdGhlIGNvbW1pdCBtZXNzYWdlIGluY2x1ZGVzIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0cyBvZiB0aGUgZXhlY3V0ZWQgdGV4dC5cbi0gZXhlY3V0aW9ucyBjYW4gbW9kaWZ5IHRoZSB3aW5kb3cgc3lzdGVtIGNyZWF0aW5nIG5ldyB3aW5kb3dzIGFuZCByZWRpcmVjdGluZyBpbnB1dCBmb2N1cy4gVGhleSBkZWZpbmUgdGhlaXIgb3duIGlucHV0IGhhbmRsaW5nIGhvd2V2ZXIgQy1nLEMtZyxDLWcgd2lsbCByZXN0b3JlIHRoZSB3aW5kb3cgc3lzdGVtIHRvIHRoZSBkZWZhdWx0Pz9cblxuYnV0IGhvdyBkbyB3ZSBpbnRlZ3JhdGUgdGhpcyB3aXRoIHRoZSBvY2FtbCBlbnZpcm9ubWVudCBhbmQgbmFtZSBzcGFjZXM/P1xuc29tZSBvcHRpb25zOlxuLSBhbHdheXMgd3JhcCBleGVjdXRpb24gdW5pdHMgZnJvbSBkYXRhIG9iamVjdHMgaW4gc29tZSBzb3J0IG9mIGxvY2FsIG5hbWVzcGFjZSBzbyBvcGVucyBhcmUgbm90IGdsb2JhbD9cbi0gZGlnIGludG8gdGhlIHRvcGxldmVsIGVudmlyb25tZW50IGFuZCBtYW5pcHVsYXRlIGl0LCB0aGlzIHdpbGwgYWxzbyBoZWxwIHdpdGggdGhpbmdzIGxpa2UgY29tcGxldGlvbiBhbmQgY29udGV4dCBoZWxwXG5cbiopXG5vcGVuIEpzX29mX29jYW1sXG5tb2R1bGUgRiA9IEZtdFxuXG5tb2R1bGUgTG9nc19yZXBvcnRlciA9IHN0cnVjdFxuICAoKiBDb25zb2xlIHJlcG9ydGVyICopXG5cbiAgb3BlbiBKc29vX3J1bnRpbWVcblxuICBsZXQgY29uc29sZSA6IExvZ3MubGV2ZWwgLT4gc3RyaW5nIC0+IHVuaXQgPVxuICAgZnVuIGxldmVsIHMgLT5cbiAgICBsZXQgbWV0aCA9XG4gICAgICBtYXRjaCBsZXZlbCB3aXRoXG4gICAgICB8IExvZ3MuRXJyb3IgLT4gXCJlcnJvclwiXG4gICAgICB8IExvZ3MuV2FybmluZyAtPiBcIndhcm5cIlxuICAgICAgfCBMb2dzLkluZm8gLT4gXCJpbmZvXCJcbiAgICAgIHwgTG9ncy5EZWJ1ZyAtPiBcImRlYnVnXCJcbiAgICAgIHwgTG9ncy5BcHAgLT4gXCJsb2dcIlxuICAgIGluXG4gICAgaWdub3JlXG4gICAgICAoSnMubWV0aF9jYWxsXG4gICAgICAgICAoSnMucHVyZV9qc19leHByIFwiY29uc29sZVwiKVxuICAgICAgICAgbWV0aFxuICAgICAgICAgW3wgSnMuc3RyaW5nIHMgfF0pXG5cbiAgbGV0IHBwZiwgZmx1c2ggPVxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyNTUgaW5cbiAgICBsZXQgZmx1c2ggKCkgPVxuICAgICAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgYiBpblxuICAgICAgQnVmZmVyLmNsZWFyIGI7XG4gICAgICBzXG4gICAgaW5cbiAgICAoRm9ybWF0LmZvcm1hdHRlcl9vZl9idWZmZXIgYiwgZmx1c2gpXG5cbiAgbGV0IGhvb2sgPVxuICAgIHJlZiAoZnVuIGxldmVsIHMgLT5cbiAgICAgICAgaWdub3JlIChMb2dzLmxldmVsX3RvX3N0cmluZyAoU29tZSBsZXZlbCkgXiBcIjogXCIgXiBzKSlcblxuICBsZXQgY29uc29sZV9yZXBvcnQgX3NyYyBsZXZlbCB+b3ZlciBrIG1zZ2YgPVxuICAgIGxldCBrIF8gPVxuICAgICAgbGV0IHMgPSBmbHVzaCAoKSBpblxuICAgICAgY29uc29sZSBsZXZlbCBzO1xuICAgICAgIWhvb2sgbGV2ZWwgcztcbiAgICAgIG92ZXIgKCk7XG4gICAgICBrICgpXG4gICAgaW5cbiAgICBtc2dmIEBAIGZ1biA/aGVhZGVyID90YWdzIGZtdCAtPlxuICAgIGxldCBfdGFncyA9IHRhZ3MgaW5cbiAgICBtYXRjaCBoZWFkZXIgd2l0aFxuICAgIHwgTm9uZSAtPiBGb3JtYXQua2ZwcmludGYgayBwcGYgKFwiQFtcIiBeXiBmbXQgXl4gXCJAXUAuXCIpXG4gICAgfCBTb21lIGggLT4gRm9ybWF0LmtmcHJpbnRmIGsgcHBmIChcIlslc10gQFtcIiBeXiBmbXQgXl4gXCJAXUAuXCIpIGhcblxuICBsZXQgY29uc29sZV9yZXBvcnRlciAoKSA9IHsgTG9ncy5yZXBvcnQgPSBjb25zb2xlX3JlcG9ydCB9XG5lbmRcblxubGV0IF8gPVxuICBMb2dzLnNldF9yZXBvcnRlciAoTG9nc19yZXBvcnRlci5jb25zb2xlX3JlcG9ydGVyICgpKTtcbiAgTG9ncy5zZXRfbGV2ZWwgKFNvbWUgRGVidWcpXG5cbm1vZHVsZSBMb2cgPSBMb2dzXG5tb2R1bGUgQ29odHRwX2JhY2tlbmQgPSBDb2h0dHBfbHd0X2pzb29cblxubW9kdWxlIEdpdF9hZiA9IHN0cnVjdFxuICBvcGVuIEx3dC5JbmZpeFxuXG4gIHR5cGUgZXJyb3IgPSB8XG5cbiAgbGV0IGdpdF9hZl9zY2hlbWUgOiBbIGBIVFRQIHwgYEhUVFBTIF0gTWltaWMudmFsdWUgPVxuICAgIE1pbWljLm1ha2Ugfm5hbWU6XCJnaXQtYWYtc2NoZW1lXCJcblxuICBsZXQgZ2l0X2FmX3BvcnQgOiBpbnQgTWltaWMudmFsdWUgPSBNaW1pYy5tYWtlIH5uYW1lOlwiZ2l0LWFmLXBvcnRcIlxuXG4gIGxldCBnaXRfYWZfaG9zdG5hbWUgOiBzdHJpbmcgTWltaWMudmFsdWUgPVxuICAgIE1pbWljLm1ha2Ugfm5hbWU6XCJnaXQtYWYtaG9zdG5hbWVcIlxuXG4gIGxldCBwcF9lcnJvciA6IGVycm9yIEZtdC50ID0gZnVuIF9wcGYgLT4gZnVuY3Rpb24gXyAtPiAuXG5cbiAgbGV0IHdpdGhfcmVkaXJlY3RzID8obWF4ID0gMTApIH5mIHVyaSA9XG4gICAgaWYgbWF4IDwgMTAgdGhlbiBpbnZhbGlkX2FyZyBcIndpdGhfcmVkaXJlY3RzXCI7XG4gICAgbGV0IHRibCA9IEhhc2h0YmwuY3JlYXRlIDB4MTAgaW5cbiAgICBsZXQgcmVjIGdvIG1heCB1cmkgPVxuICAgICAgZiB1cmkgPj49IGZ1biAocmVzcCwgYm9keSkgLT5cbiAgICAgIGxldCBzdGF0dXNfY29kZSA9XG4gICAgICAgIENvaHR0cC4oUmVzcG9uc2Uuc3RhdHVzIHJlc3AgfD4gQ29kZS5jb2RlX29mX3N0YXR1cylcbiAgICAgIGluXG4gICAgICBpZiBDb2h0dHAuQ29kZS5pc19yZWRpcmVjdGlvbiBzdGF0dXNfY29kZSB0aGVuXG4gICAgICAgIG1hdGNoXG4gICAgICAgICAgQ29odHRwLihSZXNwb25zZS5oZWFkZXJzIHJlc3AgfD4gSGVhZGVyLmdldF9sb2NhdGlvbilcbiAgICAgICAgd2l0aFxuICAgICAgICB8IFNvbWUgdXJpJyB3aGVuIEhhc2h0YmwubWVtIHRibCB1cmknIHx8IG1heCA9IDAgLT5cbiAgICAgICAgICAgIEx3dC5yZXR1cm4gKHJlc3AsIGJvZHkpXG4gICAgICAgIHwgU29tZSB1cmknIC0+XG4gICAgICAgICAgICBIYXNodGJsLmFkZCB0YmwgdXJpJyAoKTtcbiAgICAgICAgICAgIENvaHR0cF9sd3QuQm9keS5kcmFpbl9ib2R5IGJvZHkgPj49IGZ1biAoKSAtPlxuICAgICAgICAgICAgZ28gKHByZWQgbWF4KSB1cmknXG4gICAgICAgIHwgTm9uZSAtPiBMd3QucmV0dXJuIChyZXNwLCBib2R5KVxuICAgICAgZWxzZSBMd3QucmV0dXJuIChyZXNwLCBib2R5KVxuICAgIGluXG4gICAgZ28gbWF4IHVyaVxuXG4gIGxldCBnZXQgfmN0eDpfID8oaGVhZGVycyA9IFtdKSB1cmkgPVxuICAgIEZpcmVidWcuY29uc29sZSMjbG9nIChKcy5zdHJpbmcgXCJHaXRfQ29odHRwX2NvbnNvbGUuZ2V0KClcXG5cIik7XG4gICAgbGV0IGhlYWRlcnMgPSBDb2h0dHAuSGVhZGVyLm9mX2xpc3QgaGVhZGVycyBpblxuICAgIGxldCBmIHVyaSA9IENvaHR0cF9iYWNrZW5kLkNsaWVudC5nZXQgfmhlYWRlcnMgdXJpIGluXG4gICAgd2l0aF9yZWRpcmVjdHMgfmYgdXJpID4+PSBmdW4gKF9yZXNwLCBib2R5KSAtPlxuICAgIENvaHR0cF9sd3QuQm9keS50b19zdHJpbmcgYm9keSA+Pj0gZnVuIGJvZHkgLT5cbiAgICBMd3QucmV0dXJuX29rICgoKSwgYm9keSlcblxuICBsZXQgcG9zdCB+Y3R4Ol8gPyhoZWFkZXJzID0gW10pIHVyaSBib2R5ID1cbiAgICBsZXQgaGVhZGVycyA9IENvaHR0cC5IZWFkZXIub2ZfbGlzdCBoZWFkZXJzIGluXG4gICAgbGV0IGJvZHkgPSBDb2h0dHBfbHd0LkJvZHkub2Zfc3RyaW5nIGJvZHkgaW5cbiAgICBsZXQgZiB1cmkgPVxuICAgICAgQ29odHRwX2JhY2tlbmQuQ2xpZW50LnBvc3QgfmhlYWRlcnMgfmNodW5rZWQ6ZmFsc2UgfmJvZHkgdXJpXG4gICAgaW5cbiAgICB3aXRoX3JlZGlyZWN0cyB+ZiB1cmkgPj49IGZ1biAoX3Jlc3AsIGJvZHkpIC0+XG4gICAgQ29odHRwX2x3dC5Cb2R5LnRvX3N0cmluZyBib2R5ID4+PSBmdW4gYm9keSAtPlxuICAgIEx3dC5yZXR1cm5fb2sgKCgpLCBib2R5KVxuZW5kXG5cbm1vZHVsZSBHaXRfY29uc29sZV9odHRwID0gc3RydWN0XG4gIG9wZW4gTHd0LkluZml4XG5cbiAgbGV0IGNvbnRleHQgY3R4ID1cbiAgICAoKiBIVFRQICopXG4gICAgbGV0IGVkbiA9IE1pbWljLm1ha2Ugfm5hbWU6XCJhZi1odHRwLWVuZHBvaW50XCIgaW5cbiAgICBsZXQgazEgZ2l0X2FmX3NjaGVtZSBnaXRfYWZfaG9zdG5hbWUgZ2l0X2FmX3BvcnQgPVxuICAgICAgbWF0Y2ggZ2l0X2FmX3NjaGVtZSB3aXRoXG4gICAgICB8IGBIVFRQIC0+IEx3dC5yZXR1cm5fc29tZSAoZ2l0X2FmX2hvc3RuYW1lLCBnaXRfYWZfcG9ydClcbiAgICAgIHwgXyAtPiBMd3QucmV0dXJuX25vbmVcbiAgICBpblxuICAgIGxldCBjdHggPVxuICAgICAgTWltaWMuZm9sZCBlZG5cbiAgICAgICAgTWltaWMuRnVuLlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlcSBHaXRfYWYuZ2l0X2FmX3NjaGVtZTtcbiAgICAgICAgICAgIHJlcSBHaXRfYWYuZ2l0X2FmX2hvc3RuYW1lO1xuICAgICAgICAgICAgZGZ0IEdpdF9hZi5naXRfYWZfcG9ydCA4MDtcbiAgICAgICAgICBdXG4gICAgICAgIH5rOmsxIGN0eFxuICAgIGluXG5cbiAgICAoKiBIVFRQUyAqKVxuICAgIGxldCBlZG4gPSBNaW1pYy5tYWtlIH5uYW1lOlwiYWYtaHR0cHMtZW5kcG9pbnRcIiBpblxuICAgIGxldCBrMSBnaXRfYWZfc2NoZW1lIGdpdF9hZl9ob3N0bmFtZSBnaXRfYWZfcG9ydCA9XG4gICAgICBtYXRjaCBnaXRfYWZfc2NoZW1lIHdpdGhcbiAgICAgIHwgYEhUVFBTIC0+IEx3dC5yZXR1cm5fc29tZSAoZ2l0X2FmX2hvc3RuYW1lLCBnaXRfYWZfcG9ydClcbiAgICAgIHwgXyAtPiBMd3QucmV0dXJuX25vbmVcbiAgICBpblxuXG4gICAgbGV0IGN0eCA9XG4gICAgICBNaW1pYy5mb2xkIGVkblxuICAgICAgICBNaW1pYy5GdW4uXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVxIEdpdF9hZi5naXRfYWZfc2NoZW1lO1xuICAgICAgICAgICAgcmVxIEdpdF9hZi5naXRfYWZfaG9zdG5hbWU7XG4gICAgICAgICAgICBkZnQgR2l0X2FmLmdpdF9hZl9wb3J0IDQ0MztcbiAgICAgICAgICBdXG4gICAgICAgIH5rOmsxIGN0eFxuICAgIGluXG5cbiAgICBjdHhcblxuICBtb2R1bGUgSFRUUCA9IHN0cnVjdFxuICAgIHR5cGUgc3RhdGUgPVxuICAgICAgfCBIYW5kc2hha2VcbiAgICAgIHwgR2V0IG9mIHtcbiAgICAgICAgICBhZHZlcnRpc2VkX3JlZnMgOiBzdHJpbmc7XG4gICAgICAgICAgdXJpIDogVXJpLnQ7XG4gICAgICAgICAgaGVhZGVycyA6IChzdHJpbmcgKiBzdHJpbmcpIGxpc3Q7XG4gICAgICAgICAgY3R4IDogTWltaWMuY3R4O1xuICAgICAgICB9XG4gICAgICB8IFBvc3Qgb2Yge1xuICAgICAgICAgIG11dGFibGUgb3V0cHV0IDogc3RyaW5nO1xuICAgICAgICAgIHVyaSA6IFVyaS50O1xuICAgICAgICAgIGhlYWRlcnMgOiAoc3RyaW5nICogc3RyaW5nKSBsaXN0O1xuICAgICAgICAgIGN0eCA6IE1pbWljLmN0eDtcbiAgICAgICAgfVxuICAgICAgfCBFcnJvclxuXG4gICAgdHlwZSBmbG93ID0geyBlbmRwb2ludCA6IFVyaS50OyBtdXRhYmxlIHN0YXRlIDogc3RhdGUgfVxuICAgIHR5cGUgZXJyb3IgPSBbIGBNc2cgb2Ygc3RyaW5nIF1cbiAgICB0eXBlIHdyaXRlX2Vycm9yID0gWyBgQ2xvc2VkIHwgYE1zZyBvZiBzdHJpbmcgXVxuXG4gICAgbGV0IHBwX2Vycm9yIHBwZiAoYE1zZyBlcnIpID0gRm10LnN0cmluZyBwcGYgZXJyXG5cbiAgICBsZXQgcHBfd3JpdGVfZXJyb3IgcHBmID0gZnVuY3Rpb25cbiAgICAgIHwgYENsb3NlZCAtPiBGbXQuc3RyaW5nIHBwZiBcIkNvbm5lY3Rpb24gY2xvc2VkIGJ5IHBlZXJcIlxuICAgICAgfCBgTXNnIGVyciAtPiBGbXQuc3RyaW5nIHBwZiBlcnJcblxuICAgIGxldCB3cml0ZSB0IGNzID1cbiAgICAgIG1hdGNoIHQuc3RhdGUgd2l0aFxuICAgICAgfCBIYW5kc2hha2UgfCBHZXQgXyAtPlxuICAgICAgICAgIEx3dC5yZXR1cm5fZXJyb3IgKGBNc2cgXCJIYW5kc2hha2UgaGFzIG5vdCBiZWVuIGRvbmVcIilcbiAgICAgIHwgRXJyb3IgLT4gTHd0LnJldHVybl9lcnJvciAoYE1zZyBcIkhhbmRzaGFrZSBnb3QgYW4gZXJyb3JcIilcbiAgICAgIHwgUG9zdCAoeyBvdXRwdXQ7IF8gfSBhcyB2KSAtPlxuICAgICAgICAgIGxldCBvdXRwdXQgPSBvdXRwdXQgXiBDc3RydWN0LnRvX3N0cmluZyBjcyBpblxuICAgICAgICAgIHYub3V0cHV0IDwtIG91dHB1dDtcbiAgICAgICAgICBMd3QucmV0dXJuX29rICgpXG5cbiAgICBsZXQgd3JpdGV2IHQgY3NzID1cbiAgICAgIGxldCByZWMgZ28gPSBmdW5jdGlvblxuICAgICAgICB8IFtdIC0+IEx3dC5yZXR1cm5fb2sgKClcbiAgICAgICAgfCB4IDo6IHIgLT4gKFxuICAgICAgICAgICAgd3JpdGUgdCB4ID4+PSBmdW5jdGlvblxuICAgICAgICAgICAgfCBPayAoKSAtPiBnbyByXG4gICAgICAgICAgICB8IEVycm9yIF8gYXMgZXJyIC0+IEx3dC5yZXR1cm4gZXJyKVxuICAgICAgaW5cbiAgICAgIGdvIGNzc1xuXG4gICAgbGV0IHJlYWQgdCA9XG4gICAgICBtYXRjaCB0LnN0YXRlIHdpdGhcbiAgICAgIHwgSGFuZHNoYWtlIC0+XG4gICAgICAgICAgTHd0LnJldHVybl9lcnJvciAoYE1zZyBcIkhhbmRzaGFrZSBoYXMgbm90IGJlZW4gZG9uZVwiKVxuICAgICAgfCBFcnJvciAtPiBMd3QucmV0dXJuX2Vycm9yIChgTXNnIFwiSGFuZHNoYWtlIGdvdCBhbiBlcnJvclwiKVxuICAgICAgfCBHZXQgeyBhZHZlcnRpc2VkX3JlZnM7IHVyaTsgaGVhZGVyczsgY3R4IH0gLT5cbiAgICAgICAgICB0LnN0YXRlIDwtIFBvc3QgeyBvdXRwdXQgPSBcIlwiOyB1cmk7IGhlYWRlcnM7IGN0eCB9O1xuICAgICAgICAgIEx3dC5yZXR1cm5fb2sgKGBEYXRhIChDc3RydWN0Lm9mX3N0cmluZyBhZHZlcnRpc2VkX3JlZnMpKVxuICAgICAgfCBQb3N0IHsgb3V0cHV0OyB1cmk7IGhlYWRlcnM7IGN0eCB9IC0+IChcbiAgICAgICAgICBHaXRfYWYucG9zdCB+Y3R4IH5oZWFkZXJzIHVyaSBvdXRwdXQgPj49IGZ1bmN0aW9uXG4gICAgICAgICAgfCBPayAoX3Jlc3AsIGNvbnRlbnRzKSAtPlxuICAgICAgICAgICAgICBMd3QucmV0dXJuX29rIChgRGF0YSAoQ3N0cnVjdC5vZl9zdHJpbmcgY29udGVudHMpKVxuICAgICAgICAgIHwgRXJyb3IgZXJyIC0+XG4gICAgICAgICAgICAgIEx3dC5yZXR1cm5fZXJyb3IgKGBNc2cgKEZtdC5zdHIgXCIlYVwiIHBwX2Vycm9yIGVycikpKVxuXG4gICAgbGV0IGNsb3NlIF8gPSBMd3QucmV0dXJuX3VuaXRcblxuICAgIHR5cGUgZW5kcG9pbnQgPSBVcmkudFxuXG4gICAgbGV0IGNvbm5lY3QgZW5kcG9pbnQgPVxuICAgICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2dcbiAgICAgICAgKEpzLnN0cmluZyBcIkdpdF9Db25zb2xlX2h0dHAuSFRUUC5jb25uZWN0KClcXG5cIik7XG4gICAgICBMd3QucmV0dXJuX29rIHsgZW5kcG9pbnQ7IHN0YXRlID0gSGFuZHNoYWtlIH1cbiAgZW5kXG5cbiAgbGV0IGh0dHBfZW5kcG9pbnQsIGh0dHBfcHJvdG9jb2wgPVxuICAgIE1pbWljLnJlZ2lzdGVyIH5uYW1lOlwiaHR0cFwiIChtb2R1bGUgSFRUUClcblxuICBsZXQgY29ubmVjdCAoY3R4IDogTWltaWMuY3R4KSA9XG4gICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2cgKEpzLnN0cmluZyBcIkdpdF9Db25zb2xlX2h0dHAuY29ubmVjdCgpXFxuXCIpO1xuICAgIGxldCBtb2R1bGUgVCA9ICh2YWwgTWltaWMucmVwciBodHRwX3Byb3RvY29sKSBpblxuICAgIGxldCBlZG4gPSBNaW1pYy5tYWtlIH5uYW1lOlwiaHR0cC1lbmRwb2ludFwiIGluXG4gICAgbGV0IGswIHVyaSA9IEx3dC5yZXR1cm5fc29tZSB1cmkgaW5cbiAgICBsZXQgazEgZ2l0X3RyYW5zbWlzc2lvbiBnaXRfc2NoZW1lID1cbiAgICAgIG1hdGNoIChnaXRfdHJhbnNtaXNzaW9uLCBnaXRfc2NoZW1lKSB3aXRoXG4gICAgICB8IGBIVFRQICh1cmksIF8pLCAoYEhUVFAgfCBgSFRUUFMpIC0+IEx3dC5yZXR1cm5fc29tZSB1cmlcbiAgICAgIHwgXyAtPiBMd3QucmV0dXJuX25vbmVcbiAgICBpblxuICAgIGxldCBrMiBnaXRfc2NoZW1lIGdpdF91cmkgZ2l0X2h0dHBfaGVhZGVycyA9XG4gICAgICBtYXRjaCBnaXRfc2NoZW1lIHdpdGhcbiAgICAgIHwgYEdpdCB8IGBTU0ggfCBgU2NoZW1lIF8gLT4gTHd0LnJldHVybl9ub25lXG4gICAgICB8IGBIVFRQIHwgYEhUVFBTIC0+XG4gICAgICAgICAgbGV0IGhlYWRlcnMgPVxuICAgICAgICAgICAgKFwiY29udGVudC10eXBlXCIsIFwiYXBwbGljYXRpb24veC1naXQtdXBsb2FkLXBhY2stcmVxdWVzdFwiKVxuICAgICAgICAgICAgOjogZ2l0X2h0dHBfaGVhZGVyc1xuICAgICAgICAgIGluXG4gICAgICAgICAgbGV0IGhhbmRzaGFrZSB+dXJpMCB+dXJpMSA9IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IFQuVCBmbG93IC0+IChcbiAgICAgICAgICAgICAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZ1xuICAgICAgICAgICAgICAgICAgKEpzLnN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgKEYuc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkdpdF9Db25zb2xlX2h0dHAuY29ubmVjdC5rMi5oYW5kc2hha2UgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICB1cmkwPSclcycgdXJpMT0nJXMnXFxuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChVcmkudG9fc3RyaW5nIHVyaTApIChVcmkudG9fc3RyaW5nIHVyaTEpKSk7XG4gICAgICAgICAgICAgICAgbGV0IGN0eCA9IGNvbnRleHQgTWltaWMuZW1wdHkgaW5cbiAgICAgICAgICAgICAgICBHaXRfYWYuZ2V0IH5jdHggfmhlYWRlcnMgdXJpMCA+Pj0gZnVuY3Rpb25cbiAgICAgICAgICAgICAgICB8IE9rIChfcmVzcCwgYWR2ZXJ0aXNlZF9yZWZzKSAtPlxuICAgICAgICAgICAgICAgICAgICBmbG93LnN0YXRlIDwtXG4gICAgICAgICAgICAgICAgICAgICAgSFRUUC5HZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYWR2ZXJ0aXNlZF9yZWZzOyB1cmkgPSB1cmkxOyBoZWFkZXJzOyBjdHggfTtcbiAgICAgICAgICAgICAgICAgICAgTHd0LnJldHVybl91bml0XG4gICAgICAgICAgICAgICAgfCBFcnJvciBfIC0+XG4gICAgICAgICAgICAgICAgICAgIGZsb3cuc3RhdGUgPC0gRXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIEx3dC5yZXR1cm5fdW5pdClcbiAgICAgICAgICAgIHwgXyAtPiBMd3QucmV0dXJuX3VuaXRcbiAgICAgICAgICBpblxuICAgICAgICAgIGxldCBnaXRfdHJhbnNtaXNzaW9uID0gYEhUVFAgKGdpdF91cmksIGhhbmRzaGFrZSkgaW5cbiAgICAgICAgICBMd3QucmV0dXJuX3NvbWUgZ2l0X3RyYW5zbWlzc2lvblxuICAgIGluXG4gICAgbGV0IGN0eCA9XG4gICAgICBNaW1pYy5mb2xkIGh0dHBfZW5kcG9pbnQgTWltaWMuRnVuLlsgcmVxIGVkbiBdIH5rOmswIGN0eFxuICAgIGluXG4gICAgbGV0IGN0eCA9XG4gICAgICBNaW1pYy5mb2xkIGVkblxuICAgICAgICBNaW1pYy5GdW4uXG4gICAgICAgICAgWyByZXEgU21hcnRfZ2l0LmdpdF90cmFuc21pc3Npb247IHJlcSBTbWFydF9naXQuZ2l0X3NjaGVtZSBdXG4gICAgICAgIH5rOmsxIGN0eFxuICAgIGluXG4gICAgbGV0IGN0eCA9XG4gICAgICBNaW1pYy5mb2xkIFNtYXJ0X2dpdC5naXRfdHJhbnNtaXNzaW9uXG4gICAgICAgIE1pbWljLkZ1bi5cbiAgICAgICAgICBbXG4gICAgICAgICAgICByZXEgU21hcnRfZ2l0LmdpdF9zY2hlbWU7XG4gICAgICAgICAgICByZXEgU21hcnRfZ2l0LmdpdF91cmk7XG4gICAgICAgICAgICBkZnQgU21hcnRfZ2l0LmdpdF9odHRwX2hlYWRlcnMgTGlzdC5bXTtcbiAgICAgICAgICBdXG4gICAgICAgIH5rOmsyIGN0eFxuICAgIGluXG4gICAgTHd0LnJldHVybiBjdHhcbmVuZFxuXG5tb2R1bGUgTmF2ID0gc3RydWN0XG4gIG9wZW4gTHd0LkluZml4XG5cbiAgbW9kdWxlIENvbmZpZyA9IHN0cnVjdFxuICAgIG9wZW4gSXJtaW4uQmFja2VuZC5Db25mXG5cbiAgICBsZXQgc3BlYyA9IFNwZWMudiBcImNvbnNvbGVfanNfZ2l0XCJcblxuICAgIG1vZHVsZSBLZXkgPSBzdHJ1Y3RcbiAgICAgIGxldCByZWZlcmVuY2UgOiBHaXQuUmVmZXJlbmNlLnQgSXJtaW4uVHlwZS50ID1cbiAgICAgICAgbGV0IG9mX3N0cmluZyBzdHIgPVxuICAgICAgICAgIEdpdC5SZWZlcmVuY2Uub2Zfc3RyaW5nIHN0ciB8PiBSZXN1bHQuZ2V0X29rXG4gICAgICAgIGluXG4gICAgICAgIGxldCB0b19zdHJpbmcgciA9IEdpdC5SZWZlcmVuY2UudG9fc3RyaW5nIHIgaW5cbiAgICAgICAgSXJtaW4uVHlwZS4obWFwIHN0cmluZykgb2Zfc3RyaW5nIHRvX3N0cmluZ1xuXG4gICAgICBsZXQgaGVhZCA9XG4gICAgICAgIGtleSB+c3BlYyB+ZG9jOlwiVGhlIG1haW4gYnJhbmNoIG9mIHRoZSBHaXQgcmVwb3NpdG9yeS5cIiBcImhlYWRcIlxuICAgICAgICAgIElybWluLlR5cGUuKG9wdGlvbiByZWZlcmVuY2UpXG4gICAgICAgICAgTm9uZVxuXG4gICAgICBsZXQgYmFyZSA9XG4gICAgICAgIGtleSB+c3BlYyB+ZG9jOlwiRG8gbm90IGV4cGFuZCB0aGUgZmlsZXN5c3RlbSBvbiB0aGUgZGlzay5cIlxuICAgICAgICAgIFwiYmFyZVwiIElybWluLlR5cGUuYm9vbCBmYWxzZVxuXG4gICAgICBsZXQgbGV2ZWwgPVxuICAgICAgICBrZXkgfnNwZWMgfmRvYzpcIlRoZSBabGliIGNvbXByZXNzaW9uIGxldmVsLlwiIFwibGV2ZWxcIlxuICAgICAgICAgIElybWluLlR5cGUuKG9wdGlvbiBpbnQpXG4gICAgICAgICAgTm9uZVxuXG4gICAgICBsZXQgYnVmZmVycyA9XG4gICAgICAgIGtleSB+c3BlYyB+ZG9jOlwiVGhlIG51bWJlciBvZiA0SyBwcmUtYWxsb2NhdGVkIGJ1ZmZlcnMuXCJcbiAgICAgICAgICBcImJ1ZmZlcnNcIlxuICAgICAgICAgIElybWluLlR5cGUuKG9wdGlvbiBpbnQpXG4gICAgICAgICAgTm9uZVxuICAgIGVuZFxuXG4gICAgbGV0IGluaXQgP2hlYWQgP2xldmVsID9idWZmZXJzIF9yb290ID1cbiAgICAgIGxldCBtb2R1bGUgQyA9IElybWluLkJhY2tlbmQuQ29uZiBpblxuICAgICAgbGV0IGNvbmZpZyA9IEMuZW1wdHkgc3BlYyBpblxuXG4gICAgICBsZXQgY29uZmlnID0gQy5hZGQgY29uZmlnIEtleS5oZWFkIGhlYWQgaW5cbiAgICAgIGxldCBjb25maWcgPSBDLmFkZCBjb25maWcgS2V5LmxldmVsIGxldmVsIGluXG4gICAgICBsZXQgY29uZmlnID0gQy5hZGQgY29uZmlnIEtleS5idWZmZXJzIGJ1ZmZlcnMgaW5cbiAgICAgIEMudmVyaWZ5IGNvbmZpZ1xuICBlbmRcblxuICBtb2R1bGUgUyA9IHN0cnVjdFxuICAgIG1vZHVsZSBTY2hlbWEgPVxuICAgICAgSXJtaW5fZ2l0LlNjaGVtYS5NYWtlIChHaXQuTWVtLlN0b3JlKSAoSXJtaW4uQ29udGVudHMuU3RyaW5nKVxuICAgICAgICAoSXJtaW5fZ2l0LkJyYW5jaC5NYWtlIChJcm1pbi5CcmFuY2guU3RyaW5nKSlcblxuICAgIG1vZHVsZSBTeW5jJyA9IHN0cnVjdFxuICAgICAgbW9kdWxlIEdpdE1lbVN5bmMgPSBHaXQuTWVtLlN5bmMgKEdpdC5NZW0uU3RvcmUpXG4gICAgICBpbmNsdWRlIEdpdE1lbVN5bmNcbiAgICAgICgqIFRoaXMgaXMgd2hlcmUgdGhlIGZldGNoIGFuZCBwdXNoIGFyZSBicm9rZW4gKilcbiAgICBlbmRcblxuICAgIG1vZHVsZSBTTWFrZXIgPSBJcm1pbl9naXQuTWFrZXIgKEdpdC5NZW0uU3RvcmUpIChTeW5jJylcbiAgICBtb2R1bGUgU01hZGUgPSBTTWFrZXIuTWFrZSAoU2NoZW1hKVxuICAgIGluY2x1ZGUgU01hZGVcblxuICAgIHR5cGUgZW5kcG9pbnQgPSBNaW1pYy5jdHggKiBTbWFydF9naXQuRW5kcG9pbnQudFxuXG4gICAgbGV0IHJlbW90ZSA/KGN0eCA9IE1pbWljLmVtcHR5KSA/aGVhZGVycyB1cmkgPVxuICAgICAgRVxuICAgICAgICAoRmlyZWJ1Zy5jb25zb2xlIyNsb2cgKEpzLnN0cmluZyBcIk5hdi5TLnJlbW90ZSgpXFxuXCIpO1xuICAgICAgICAgbGV0ICggISApIGYgYSBiID0gZiBiIGEgaW5cbiAgICAgICAgIG1hdGNoIFNtYXJ0X2dpdC5FbmRwb2ludC5vZl9zdHJpbmcgdXJpIHdpdGhcbiAgICAgICAgIHwgT2sgZWRuIC0+XG4gICAgICAgICAgICAgbGV0IGVkbiA9XG4gICAgICAgICAgICAgICBPcHRpb24uZm9sZCB+bm9uZTplZG5cbiAgICAgICAgICAgICAgICAgfnNvbWU6KCFTbWFydF9naXQuRW5kcG9pbnQud2l0aF9oZWFkZXJzX2lmX2h0dHAgZWRuKVxuICAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZ1xuICAgICAgICAgICAgICAgKEpzLnN0cmluZyBcIk5hdi5TLnJlbW90ZSgpID0gKGN0eCwgZWRuKSBcXG5cIik7XG4gICAgICAgICAgICAgKGN0eCwgZWRuKVxuICAgICAgICAgfCBFcnJvciAoYE1zZyBlcnIpIC0+IEZtdC5pbnZhbGlkX2FyZyBcInJlbW90ZTogJXNcIiBlcnIpXG5cbiAgICBtb2R1bGUgQmFja2VuZCA9IHN0cnVjdFxuICAgICAgaW5jbHVkZSBCYWNrZW5kXG4gICAgICBtb2R1bGUgUiA9IFJlbW90ZVxuXG4gICAgICBtb2R1bGUgUmVtb3RlID0gc3RydWN0XG4gICAgICAgIGluY2x1ZGUgUlxuXG4gICAgICAgIHR5cGUgZW5kcG9pbnQgPSBNaW1pYy5jdHggKiBTbWFydF9naXQuRW5kcG9pbnQudFxuXG4gICAgICAgIGxldCBjdHggZSA9IGZzdCBlXG4gICAgICAgIGxldCBlZG4gZSA9IHNuZCBlXG5cbiAgICAgICAgbGV0IGZldGNoIHQgP2RlcHRoIGVuZHBvaW50IGJyYW5jaCA9XG4gICAgICAgICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2dcbiAgICAgICAgICAgIChKcy5zdHJpbmcgXCJTLkJhY2tlbmQuUmVtb3RlLndyYXBwZWRfZmV0Y2goKVxcblwiKTtcbiAgICAgICAgICBSLmZldGNoIHQgP2RlcHRoIGVuZHBvaW50IGJyYW5jaFxuICAgICAgZW5kXG4gICAgZW5kXG4gIGVuZFxuXG4gIG1vZHVsZSBTeW5jID0gSXJtaW4uU3luYy5NYWtlIChTKVxuXG4gIHR5cGUgdCA9IFMudHJlZVxuICB0eXBlIHRyZWUgPSB0XG4gIHR5cGUgc3RlcCA9IFMuc3RlcFxuICB0eXBlIHBhdGggPSBzdGVwIGxpc3RcblxuICBsZXQgaW5pdCAoKSA9IFMuUmVwby52IChJcm1pbl9tZW0uY29uZmlnICgpKSA+Pj0gUy5tYWluID4+PSBTLnRyZWVcblxuICBsZXQgdGVzdF9wb3B1bGF0ZSAoKSA6IHQgTHd0LnQgPVxuICAgIGxldCBhZGQgcCBzIHQgPSBTLlRyZWUuYWRkIHQgcCBzIGluXG4gICAgYWRkIFsgXCJoZWxsb1wiIF0gXCJ3b3JsZFwiIChTLlRyZWUuZW1wdHkgKCkpXG4gICAgPj49IGFkZCBbIFwiaGVsbG9cIjsgXCJkYWRkeVwiIF0gXCJpbHlcIlxuICAgID4+PSBhZGQgWyBcImJlZXBcIjsgXCJiZWVwXCIgXSBcIm1vdGhlcmZ1Y2tlclwiXG5cbiAgbGV0IHRlc3RfcHVsbCAoKSA6IHQgTHd0LnQgPVxuICAgICgqIHRlc3RfcG9wdWxhdGUgKCkqKVxuICAgIEZpcmVidWcuY29uc29sZSMjbG9nIChKcy5zdHJpbmcgXCJOYXYudGVzdF9wdWxsKClcXG5cIik7XG4gICAgUy5SZXBvLnYgKENvbmZpZy5pbml0IFwiXCIpID4+PSBmdW4gcmVwbyAtPlxuICAgIEZpcmVidWcuY29uc29sZSMjbG9nIChKcy5zdHJpbmcgXCJOYXYudGVzdF9wdWxsKDIpXFxuXCIpO1xuICAgIFMub2ZfYnJhbmNoIHJlcG8gXCJjdXJyZW50XCIgPj49IGZ1biB0IC0+XG4gICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2cgKEpzLnN0cmluZyBcIk5hdi50ZXN0X3B1bGwoMylcXG5cIik7XG4gICAgR2l0X2NvbnNvbGVfaHR0cC5jb25uZWN0IE1pbWljLmVtcHR5ID4+PSBmdW4gY3R4IC0+XG4gICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2cgKEpzLnN0cmluZyBcIk5hdi50ZXN0X3B1bGwoNClcXG5cIik7XG4gICAgbGV0IHVwc3RyZWFtID1cbiAgICAgIFMucmVtb3RlIH5jdHggXCJodHRwczovL2xvY2FsaG9zdDo4MDgwL2NvbnNvbGUvcm9vdHN0b3JlLmdpdFwiXG4gICAgaW5cbiAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZyAoSnMuc3RyaW5nIFwiTmF2LnRlc3RfcHVsbCg1KVxcblwiKTtcbiAgICBTeW5jLmZldGNoX2V4biB0IHVwc3RyZWFtID4+PSBmdW4gXyAtPiBTLnRyZWUgdFxuICAoKiBpcm1pbi9zcmMvaXJtaW4vc3luYy5tbDogY2FsbHMgUy5SZW1vdGUuQmFja2VuZC5mZXRjaCAqKVxuZW5kXG5cbm1vZHVsZSBJbnB1dCA9IHN0cnVjdFxuICB0eXBlIGJ1dHRvbiA9XG4gICAgWyBgTGVmdCB8IGBNaWRkbGUgfCBgUmlnaHQgfCBgU2Nyb2xsIG9mIFsgYFVwIHwgYERvd24gXSBdXG5cbiAgdHlwZSBzcGVjaWFsID1cbiAgICBbIGBFbnRlclxuICAgIHwgYEVzY2FwZVxuICAgIHwgYFRhYlxuICAgIHwgYEFycm93IG9mIFsgYFVwIHwgYERvd24gfCBgTGVmdCB8IGBSaWdodCBdXG4gICAgfCBgRnVuY3Rpb24gb2YgaW50XG4gICAgfCBgUGFnZSBvZiBbIGBVcCB8IGBEb3duIF1cbiAgICB8IGBIb21lXG4gICAgfCBgRW5kXG4gICAgfCBgSW5zZXJ0XG4gICAgfCBgRGVsZXRlXG4gICAgfCBgQmFja3NwYWNlXG4gICAgfCBgVW5rbm93biBvZiBzdHJpbmcgXVxuXG4gICgqIFR5cGUgb2Yga2V5IGNvZGUuICopXG4gIHR5cGUgY29kZSA9XG4gICAgWyBgVWNoYXIgb2YgVWNoYXIudCAoKiBBIHVuaWNvZGUgY2hhcmFjdGVyLiAqKSB8IHNwZWNpYWwgXVxuXG4gICgqIHN0b2xlbiBmcm9tIGxhbWJkYS10ZXJtL3NyYy9sVGVybV97ZWRpdCxrZXl9Lm1seyxpfSAqKVxuICBsZXQgc3RyaW5nX29mX2NvZGUgPSBmdW5jdGlvblxuICAgIHwgYFVjaGFyIGNoIC0+XG4gICAgICAgIGlmIFVjaGFyLmlzX2NoYXIgY2ggdGhlbiBGLnN0ciBcIkNoYXIgJyVjJ1wiIChVY2hhci50b19jaGFyIGNoKVxuICAgICAgICBlbHNlIEYuc3RyIFwiQ2hhciAweCUwMnhcIiAoVWNoYXIudG9faW50IGNoKVxuICAgIHwgYEVudGVyIC0+IFwiRW50ZXJcIlxuICAgIHwgYEVzY2FwZSAtPiBcIkVzY2FwZVwiXG4gICAgfCBgVGFiIC0+IFwiVGFiXCJcbiAgICB8IGBBcnJvdyBgVXAgLT4gXCJVcFwiXG4gICAgfCBgQXJyb3cgYERvd24gLT4gXCJEb3duXCJcbiAgICB8IGBBcnJvdyBgTGVmdCAtPiBcIkxlZnRcIlxuICAgIHwgYEFycm93IGBSaWdodCAtPiBcIlJpZ2h0XCJcbiAgICB8IGBGdW5jdGlvbiBpIC0+IEYuc3RyIFwiRiVkXCIgaVxuICAgIHwgYFBhZ2UgYFVwIC0+IFwiUGFnZSBVcFwiXG4gICAgfCBgUGFnZSBgRG93biAtPiBcIlBhZ2UgRG93blwiXG4gICAgfCBgSG9tZSAtPiBcIkhvbWVcIlxuICAgIHwgYEVuZCAtPiBcIkVuZFwiXG4gICAgfCBgSW5zZXJ0IC0+IFwiSW5zZXJ0XCJcbiAgICB8IGBEZWxldGUgLT4gXCJEZWxldGVcIlxuICAgIHwgYEJhY2tzcGFjZSAtPiBcIkJhY2tzcGFjZVwiXG4gICAgfCBgVW5rbm93biBzIC0+IFN0cmluZy5jb25jYXQgXCJVbmtub3duIFwiIFsgXCJcXFwiXCI7IHM7IFwiXFxcIlwiIF1cbiAgICB8IF8gLT4gXCJDb2RlIFVua25vd24hXCJcblxuICBsZXQgcHBfY29kZSBwcGYgdiA9IEYucGYgcHBmIFwiJXNcIiAoc3RyaW5nX29mX2NvZGUgdilcblxuICB0eXBlIG1vZHMgPSBbIGBTdXBlciB8IGBNZXRhIHwgYEN0cmwgfCBgU2hpZnQgXSBsaXN0XG5cbiAgbGV0IHBwX21vZHMgPVxuICAgIEYuKFxuICAgICAgbGlzdCB+c2VwOkYuc3AgKGZ1biBwcGYgLT4gZnVuY3Rpb25cbiAgICAgICAgfCBgU3VwZXIgLT4gcGYgcHBmIFwiYFN1cGVyXCJcbiAgICAgICAgfCBgTWV0YSAtPiBwZiBwcGYgXCJgTWV0YVwiXG4gICAgICAgIHwgYEN0cmwgLT4gcGYgcHBmIFwiYEN0cmxcIlxuICAgICAgICB8IGBTaGlmdCAtPiBwZiBwcGYgXCJgU2hpZnRcIikpXG5cbiAgdHlwZSBtb3VzZSA9XG4gICAgWyBgUHJlc3Mgb2YgYnV0dG9uIHwgYERyYWcgfCBgUmVsZWFzZSBdICogKGZsb2F0ICogZmxvYXQpICogbW9kc1xuXG4gIHR5cGUgcGFzdGUgPSBbIGBTdGFydCB8IGBFbmQgXVxuICB0eXBlIGtleWFjdGlvbiA9IFsgYFByZXNzIHwgYFJlbGVhc2UgfCBgUmVwZWF0IF1cbmVuZFxuXG5tb2R1bGUgRXZlbnRfanMgPSBzdHJ1Y3RcbiAgb3BlbiBKc19vZl9vY2FtbFxuXG4gIGxldCBldnRfb2ZfanNrZXkgKGV2dCA6IERvbV9odG1sLmtleWJvYXJkRXZlbnQgSnMudCkgPVxuICAgICggKG1hdGNoIEpzLk9wdGRlZi50b19vcHRpb24gZXZ0IyMua2V5IHdpdGhcbiAgICAgIHwgU29tZSBzIC0+IChcbiAgICAgICAgICBtYXRjaCBKcy50b19zdHJpbmcgcyB3aXRoXG4gICAgICAgICAgfCBcIkVudGVyXCIgLT4gYEVudGVyXG4gICAgICAgICAgfCBcIkVzY2FwZVwiIC0+IGBFc2NhcGVcbiAgICAgICAgICB8IFwiVGFiXCIgLT4gYFRhYlxuICAgICAgICAgIHwgXCJBcnJvd1VwXCIgLT4gYEFycm93IGBVcFxuICAgICAgICAgIHwgXCJBcnJvd0Rvd25cIiAtPiBgQXJyb3cgYERvd25cbiAgICAgICAgICB8IFwiQXJyb3dMZWZ0XCIgLT4gYEFycm93IGBMZWZ0XG4gICAgICAgICAgfCBcIkFycm93UmlnaHRcIiAtPiBgQXJyb3cgYFJpZ2h0XG4gICAgICAgICAgfCBcIlBhZ2VVcFwiIC0+IGBQYWdlIGBVcFxuICAgICAgICAgIHwgXCJQYWdlRG93blwiIC0+IGBQYWdlIGBEb3duXG4gICAgICAgICAgfCBcIkhvbWVcIiAtPiBgSG9tZVxuICAgICAgICAgIHwgXCJFbmRcIiAtPiBgRW5kXG4gICAgICAgICAgfCBcIkluc2VydFwiIC0+IGBJbnNlcnRcbiAgICAgICAgICB8IFwiRGVsZXRlXCIgLT4gYERlbGV0ZVxuICAgICAgICAgIHwgXCJCYWNrc3BhY2VcIiAtPiBgQmFja3NwYWNlXG4gICAgICAgICAgfCBzIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggRG9tX2h0bWwuS2V5Ym9hcmRfa2V5Lm9mX2V2ZW50IGV2dCB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBzJyAtPiBgVWNoYXIgcydcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGBVbmtub3duIHMpKVxuICAgICAgfCBOb25lIC0+IGBVbmtub3duIFwia2V5cHJlc3MgLmtleSBpcyBOb25lP1wiKSxcbiAgICAgIChpZiBKcy50b19ib29sIGV2dCMjLmFsdEtleSB0aGVuIFsgYE1ldGEgXSBlbHNlIFtdKVxuICAgICAgQCAoaWYgSnMudG9fYm9vbCBldnQjIy5zaGlmdEtleSB0aGVuIFsgYFNoaWZ0IF0gZWxzZSBbXSlcbiAgICAgIEAgKGlmIEpzLnRvX2Jvb2wgZXZ0IyMuY3RybEtleSB0aGVuIFsgYEN0cmwgXSBlbHNlIFtdKVxuICAgICAgQCBpZiBKcy50b19ib29sIGV2dCMjLm1ldGFLZXkgdGhlbiBbIGBTdXBlciBdIGVsc2UgW10gKVxuZW5kXG5cbm9wZW4gR2dcblxubW9kdWxlIE5WRyA9IHN0cnVjdFxuICBpbmNsdWRlIEdyYXBodl93ZWJnbFxuXG4gIG1vZHVsZSBDb2xvciA9IHN0cnVjdFxuICAgIGluY2x1ZGUgR3JhcGh2X3dlYmdsLkNvbG9yXG5cbiAgICBsZXQgbm9uZSA9IENvbG9yLnRyYW5zcGFyZW50XG4gICAgbGV0IHJnYmYgPSBDb2xvci5yZ2JmXG4gICAgbGV0IGdyYXkgYSA9IHJnYmYgfnI6YSB+ZzphIH5iOmFcbiAgICBsZXQgbGlnaHQgPSBncmF5IDAuOFxuICAgIGxldCBkYXJrID0gZ3JheSAwLjJcblxuICAgIGxldCBibGFjayA9IGdyYXkgMC5cbiAgICBhbmQgcmVkID0gcmdiZiB+cjoxLiB+ZzowLiB+YjowLlxuICAgIGFuZCBncmVlbiA9IHJnYmYgfnI6MC4gfmc6MS4gfmI6MC5cbiAgICBhbmQgeWVsbG93ID0gcmdiZiB+cjoxLiB+ZzoxLiB+YjowLlxuICAgIGFuZCBibHVlID0gcmdiZiB+cjowLiB+ZzowLiB+YjoxLlxuICAgIGFuZCBtYWdlbnRhID0gcmdiZiB+cjoxLiB+ZzowLiB+YjoxLlxuICAgIGFuZCBjeWFuID0gcmdiZiB+cjowLiB+ZzoxLiB+YjoxLlxuICAgIGFuZCB3aGl0ZSA9IHJnYmYgfnI6MS4gfmc6MS4gfmI6MS5cbiAgICBhbmQgbGlnaHRibGFjayA9IGdyYXkgMC41XG4gICAgYW5kIGxpZ2h0cmVkID0gcmdiZiB+cjoxLjAgfmc6MC41IH5iOjAuNVxuICAgIGFuZCBsaWdodGdyZWVuID0gcmdiZiB+cjowLjUgfmc6MS4wIH5iOjAuNVxuICAgIGFuZCBsaWdodHllbGxvdyA9IHJnYmYgfnI6MS4wIH5nOjEuMCB+YjowLjVcbiAgICBhbmQgbGlnaHRibHVlID0gcmdiZiB+cjowLjUgfmc6MC41IH5iOjEuMFxuICAgIGFuZCBsaWdodG1hZ2VudGEgPSByZ2JmIH5yOjEuMCB+ZzowLjUgfmI6MS4wXG4gICAgYW5kIGxpZ2h0Y3lhbiA9IHJnYmYgfnI6MC41IH5nOjEuMCB+YjoxLjBcbiAgICBhbmQgbGlnaHR3aGl0ZSA9IHJnYmYgfnI6MS4wIH5nOjEuMCB+YjoxLjBcblxuICAgIGxldCAoID0gKSBhIGIgPSBhLnIgPSBiLnIgJiYgYS5nID0gYi5nICYmIGEuYiA9IGIuYiAmJiBhLmEgPSBiLmFcblxuICAgIGxldCAoICsrICkgYSBiID1cbiAgICAgIHtcbiAgICAgICAgciA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5yICsuIGIucik7XG4gICAgICAgIGcgPSBGbG9hdC5jbGFtcCB+bWluOjAuIH5tYXg6MS4gKGEuZyArLiBiLmcpO1xuICAgICAgICBiID0gRmxvYXQuY2xhbXAgfm1pbjowLiB+bWF4OjEuIChhLmIgKy4gYi5iKTtcbiAgICAgICAgYSA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5hICsuIGIuYSk7XG4gICAgICB9XG5cbiAgICBsZXQgcmVwbGFjZSB+cHJldiB+bmV4dCA9IGlmIG5leHQgPSBub25lIHRoZW4gcHJldiBlbHNlIG5leHRcblxuICAgIGxldCBwcCBwcGYgdCA6IHVuaXQgPVxuICAgICAgaWYgdCAhPSBub25lIHRoZW5cbiAgICAgICAgRi4oXG4gICAgICAgICAgZm10IFwiJWFcIiBwcGZcbiAgICAgICAgICAgIChsaXN0IChmbXQgXCIlMDJYXCIpKVxuICAgICAgICAgICAgKExpc3QubWFwXG4gICAgICAgICAgICAgICAoZnVuIGUgLT4gaW50X29mX2Zsb2F0IChlICouIDI1NS4pKVxuICAgICAgICAgICAgICAgWyB0LnI7IHQuZzsgdC5iOyB0LmEgXSkpXG4gICAgICBlbHNlIEYuZm10IFwiX1wiIHBwZlxuICBlbmRcbmVuZFxuXG5tb2R1bGUgQ29sb3IgPSBOVkcuQ29sb3JcblxuKCogZnJvbSBub3R0eS5tbCAqKVxubGV0IGJ0dyAoeCA6IGludCkgYSBiID0gYSA8PSB4ICYmIHggPD0gYlxuXG5tb2R1bGUgQnVmZmVyID0gc3RydWN0XG4gIGluY2x1ZGUgU3RkbGliLkJ1ZmZlclxuXG4gIGxldCBidWYgPSBjcmVhdGUgMTAyNFxuXG4gIGxldCBta3N0cmluZyBmID1cbiAgICBmIGJ1ZjtcbiAgICBsZXQgcmVzID0gY29udGVudHMgYnVmIGluXG4gICAgcmVzZXQgYnVmO1xuICAgIHJlc1xuXG4gIGxldCBhZGRfZGVjaW1hbCBiID0gZnVuY3Rpb25cbiAgICB8IHggd2hlbiBidHcgeCAwIDk5OSAtPlxuICAgICAgICBsZXQgZDEgPSB4IC8gMTAwIGFuZCBkMiA9IHggbW9kIDEwMCAvIDEwIGFuZCBkMyA9IHggbW9kIDEwIGluXG4gICAgICAgIGlmIGQxID4gMCB0aGVuIDB4MzAgKyBkMSB8PiBDaGFyLnVuc2FmZV9jaHIgfD4gYWRkX2NoYXIgYjtcbiAgICAgICAgaWYgZDEgKyBkMiA+IDAgdGhlbiAweDMwICsgZDIgfD4gQ2hhci51bnNhZmVfY2hyIHw+IGFkZF9jaGFyIGI7XG4gICAgICAgIDB4MzAgKyBkMyB8PiBDaGFyLnVuc2FmZV9jaHIgfD4gYWRkX2NoYXIgYlxuICAgIHwgeCAtPiBzdHJpbmdfb2ZfaW50IHggfD4gYWRkX3N0cmluZyBiXG5cbiAgbGV0IGFkZF9jaGFycyBiIGMgbiA9XG4gICAgZm9yIF8gPSAxIHRvIG4gZG9cbiAgICAgIGFkZF9jaGFyIGIgY1xuICAgIGRvbmVcbmVuZFxuXG5tb2R1bGUgU3RyaW5nID0gc3RydWN0XG4gIGluY2x1ZGUgU3RyaW5nXG5cbiAgbGV0IHN1YjBjcCBzIGkgbGVuID1cbiAgICBpZiBpID4gMCB8fCBsZW4gPCBsZW5ndGggcyB0aGVuIHN1YiBzIGkgbGVuIGVsc2Ugc1xuXG4gIGxldCBvZl9jaGFyc19yZXYgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gXCJcIlxuICAgIHwgWyBjIF0gLT4gU3RyaW5nLm1ha2UgMSBjXG4gICAgfCBjcyAtPlxuICAgICAgICBsZXQgbiA9IExpc3QubGVuZ3RoIGNzIGluXG4gICAgICAgIGxldCByZWMgZ28gYnMgaSA9XG4gICAgICAgICAgQnl0ZXMuKFxuICAgICAgICAgICAgZnVuY3Rpb25cbiAgICAgICAgICAgIHwgW10gLT4gdW5zYWZlX3RvX3N0cmluZyBic1xuICAgICAgICAgICAgfCB4IDo6IHhzIC0+XG4gICAgICAgICAgICAgICAgdW5zYWZlX3NldCBicyBpIHg7XG4gICAgICAgICAgICAgICAgZ28gYnMgKHByZWQgaSkgeHMpXG4gICAgICAgIGluXG4gICAgICAgIGdvIChCeXRlcy5jcmVhdGUgbikgKG4gLSAxKSBjc1xuZW5kXG5cbm1vZHVsZSBUZXh0ID0gc3RydWN0XG4gIGluY2x1ZGUgTlZHLlRleHRcblxuICB0eXBlIHQgPSBTdHJpbmcgb2Ygc3RyaW5nICgqIHwgVWNoYXJzIG9mIFVjaGFyLnQgbGlzdCopXG5cbiAgbGV0IGVtcHR5ID0gU3RyaW5nIFwiXCJcblxuICBsZXQgZXF1YWwgPSBmdW5jdGlvblxuICAgIHwgU3RyaW5nIGEgLT4gKCBmdW5jdGlvbiBTdHJpbmcgYiAtPiBTdHJpbmcuZXF1YWwgYSBiKVxuXG4gIGxldCBvZl9zdHJpbmcgcyA9IFN0cmluZyBzXG4gIGxldCB0b19zdHJpbmcgPSBmdW5jdGlvbiBTdHJpbmcgcyAtPiBzXG5cbiAgbGV0IG9mX3VjaGFycyB1Y3MgPVxuICAgIG9mX3N0cmluZyBAQCBCdWZmZXIubWtzdHJpbmdcbiAgICBAQCBmdW4gYnVmIC0+IEFycmF5Lml0ZXIgKEJ1ZmZlci5hZGRfdXRmXzhfdWNoYXIgYnVmKSB1Y3NcblxuICBsZXQgcmVwbGljYXRlYyB3IGMgPSBTdHJpbmcgKFN0cmluZy5tYWtlIChpbnRfb2ZfZmxvYXQgdykgYylcblxuICBsZXQgcHAgcHBmIDogdCAtPiB1bml0ID0gZnVuY3Rpb25cbiAgICB8IFN0cmluZyBzIC0+IEYuKGZtdCBcIlxcXCIlc1xcXCJcIiBwcGYgcylcbmVuZFxuXG5tb2R1bGUgU3R5bGUgPSBzdHJ1Y3RcbiAgbW9kdWxlIEZvbnQgPSBzdHJ1Y3RcbiAgICB0eXBlIHQgPSB7XG4gICAgICBzaXplIDogZmxvYXQgb3B0aW9uO1xuICAgICAgZm9udCA6IFsgYFNhbnMgfCBgU2VyaWYgfCBgTW9ubyB8IGBOb25lIF07XG4gICAgICB3ZWlnaHQgOiBbIGBCb2xkIHwgYFJlZ3VsYXIgfCBgTGlnaHQgfCBgTm9uZSBdO1xuICAgICAgaXRhbGljIDogWyBgSXRhbGljIHwgYE5vbmUgXTtcbiAgICAgIHVuZGVybGluZSA6IFsgYFVuZGVybGluZSB8IGBOb25lIF07XG4gICAgfVxuXG4gICAgbGV0IHBwIHBwZiA9XG4gICAgICBGLihcbiAgICAgICAgZm10IFwiJWFcIiBwcGZcbiAgICAgICAgICAocmVjb3JkIFsgZmllbGQgXCJzaXplXCIgKGZ1biBhIC0+IGEuc2l6ZSkgKG9wdGlvbiBmbG9hdCkgXSkpXG5cbiAgICBsZXQgZW1wdHkgPVxuICAgICAge1xuICAgICAgICBzaXplID0gTm9uZTtcbiAgICAgICAgZm9udCA9IGBOb25lO1xuICAgICAgICB3ZWlnaHQgPSBgTm9uZTtcbiAgICAgICAgaXRhbGljID0gYE5vbmU7XG4gICAgICAgIHVuZGVybGluZSA9IGBOb25lO1xuICAgICAgfVxuXG4gICAgbGV0IHVuZGVybGluZSA9IHsgZW1wdHkgd2l0aCB1bmRlcmxpbmUgPSBgVW5kZXJsaW5lIH1cbiAgICBsZXQgc2l6ZSB7IHNpemU7IF8gfSA9IG1hdGNoIHNpemUgd2l0aCBOb25lIC0+IDIwLiB8IFNvbWUgcyAtPiBzXG5cbiAgICBsZXQgbWVyZ2UgYSBiID1cbiAgICAgIHtcbiAgICAgICAgc2l6ZSA9XG4gICAgICAgICAgKG1hdGNoIChhLnNpemUsIGIuc2l6ZSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIHMsIE5vbmUgfCBOb25lLCBTb21lIHMgLT4gU29tZSBzXG4gICAgICAgICAgfCBTb21lIHMxLCBTb21lIHMyIC0+IFNvbWUgKEZsb2F0Lm1heF9udW0gczEgczIpKTtcbiAgICAgICAgZm9udCA9XG4gICAgICAgICAgKG1hdGNoIChhLmZvbnQsIGIuZm9udCkgd2l0aFxuICAgICAgICAgIHwgYFNhbnMsIF8gfCBfLCBgU2FucyAtPiBgU2Fuc1xuICAgICAgICAgIHwgYFNlcmlmLCAoYFNlcmlmIHwgYE1vbm8gfCBgTm9uZSkgfCAoYE1vbm8gfCBgTm9uZSksIGBTZXJpZlxuICAgICAgICAgICAgLT5cbiAgICAgICAgICAgICAgYFNlcmlmXG4gICAgICAgICAgfCBgTW9ubywgKGBNb25vIHwgYE5vbmUpIHwgYE5vbmUsIGBNb25vIC0+IGBNb25vXG4gICAgICAgICAgfCBgTm9uZSwgYE5vbmUgLT4gYE5vbmUpO1xuICAgICAgICB3ZWlnaHQgPVxuICAgICAgICAgIChtYXRjaCAoYS53ZWlnaHQsIGIud2VpZ2h0KSB3aXRoXG4gICAgICAgICAgfCBgQm9sZCwgXyB8IF8sIGBCb2xkIC0+IGBCb2xkXG4gICAgICAgICAgfCBgUmVndWxhciwgKGBSZWd1bGFyIHwgYExpZ2h0IHwgYE5vbmUpXG4gICAgICAgICAgfCAoYExpZ2h0IHwgYE5vbmUpLCBgUmVndWxhciAtPlxuICAgICAgICAgICAgICBgUmVndWxhclxuICAgICAgICAgIHwgYExpZ2h0LCAoYExpZ2h0IHwgYE5vbmUpIHwgYE5vbmUsIGBMaWdodCAtPiBgTGlnaHRcbiAgICAgICAgICB8IGBOb25lLCBgTm9uZSAtPiBgTm9uZSk7XG4gICAgICAgIGl0YWxpYyA9XG4gICAgICAgICAgKG1hdGNoIChhLml0YWxpYywgYi5pdGFsaWMpIHdpdGhcbiAgICAgICAgICB8IGBJdGFsaWMsIF8gfCBfLCBgSXRhbGljIC0+IGBJdGFsaWNcbiAgICAgICAgICB8IF8gLT4gYE5vbmUpO1xuICAgICAgICB1bmRlcmxpbmUgPVxuICAgICAgICAgIChtYXRjaCAoYS51bmRlcmxpbmUsIGIudW5kZXJsaW5lKSB3aXRoXG4gICAgICAgICAgfCBgVW5kZXJsaW5lLCBfIHwgXywgYFVuZGVybGluZSAtPiBgVW5kZXJsaW5lXG4gICAgICAgICAgfCBfIC0+IGBOb25lKTtcbiAgICAgIH1cblxuICAgIGxldCBzZXQgdmcgdCA9XG4gICAgICAobWF0Y2ggdC5zaXplIHdpdGhcbiAgICAgIHwgU29tZSBzaXplIC0+IFRleHQuc2V0X3NpemUgdmcgfnNpemVcbiAgICAgIHwgTm9uZSAtPiAoKSk7XG4gICAgICBtYXRjaCB0LmZvbnQgd2l0aFxuICAgICAgfCBgU2FucyAtPiBUZXh0LnNldF9mb250X2ZhY2Ugdmcgfm5hbWU6XCJzYW5zXCJcbiAgICAgIHwgXyAtPiAoKVxuXG4gICAgbGV0IHJlcGxhY2UgfnByZXYgfm5leHQgPSBtZXJnZSBwcmV2IG5leHRcbiAgZW5kXG5cbiAgdHlwZSB0ID0geyBmZyA6IENvbG9yLnQ7IGJnIDogQ29sb3IudDsgZm9udCA6IEZvbnQudCB9XG4gIHR5cGUgYXR0ciA9IHRcblxuICBsZXQgcHAgcHBmIGEgPVxuICAgIEYuKGZtdCBcIkBbPGg+JWEvJWFAXVwiIHBwZiBDb2xvci5wcCBhLmZnIENvbG9yLnBwIGEuYmcpXG5cbiAgbGV0IGVxdWFsID0gKCA9PSApXG5cbiAgbGV0IGVtcHR5ID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLnRyYW5zcGFyZW50O1xuICAgICAgYmcgPSBDb2xvci50cmFuc3BhcmVudDtcbiAgICAgIGZvbnQgPSBGb250LmVtcHR5O1xuICAgIH1cblxuICBsZXQgZGFyayA9IHsgZW1wdHkgd2l0aCBmZyA9IENvbG9yLmxpZ2h0OyBiZyA9IENvbG9yLmRhcmsgfVxuXG4gIGxldCAoICsrICkgYTEgYTIgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IuKGExLmZnICsrIGEyLmZnKTtcbiAgICAgIGJnID0gQ29sb3IuKGExLmJnICsrIGEyLmJnKTtcbiAgICAgIGZvbnQgPSBGb250Lm1lcmdlIGExLmZvbnQgYTIuZm9udDtcbiAgICB9XG5cbiAgbGV0IHJlcGxhY2UgfnByZXYgfm5leHQgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IucmVwbGFjZSB+cHJldjpwcmV2LmZnIH5uZXh0Om5leHQuZmc7XG4gICAgICBiZyA9IENvbG9yLnJlcGxhY2UgfnByZXY6cHJldi5iZyB+bmV4dDpuZXh0LmJnO1xuICAgICAgZm9udCA9IEZvbnQucmVwbGFjZSB+cHJldjpwcmV2LmZvbnQgfm5leHQ6bmV4dC5mb250O1xuICAgIH1cblxuICBsZXQgZmcgPyh0ID0gZW1wdHkpIGMgPSB7IHQgd2l0aCBmZyA9IGMgfVxuICBsZXQgYmcgPyh0ID0gZW1wdHkpIGMgPSB7IHQgd2l0aCBiZyA9IGMgfVxuICBsZXQgZm9udCA/KHQgPSBlbXB0eSkgYyA9IHsgdCB3aXRoIGZvbnQgPSBjIH1cblxuICBsZXQgbWVyZ2UgYSBiID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLmxlcnAgYS5mZyBiLmZnIH5hOjAuNTtcbiAgICAgIGJnID0gQ29sb3IubGVycCBhLmJnIGIuYmcgfmE6MC41O1xuICAgICAgZm9udCA9IEZvbnQubWVyZ2UgYS5mb250IGIuZm9udDtcbiAgICB9XG5cbiAgbGV0IHNldCB2ZyBzID1cbiAgICBGLmVwciBcIlN0eWxlLnNldCBALlwiO1xuICAgIE5WRy5zZXRfZmlsbF9jb2xvciB2ZyB+Y29sb3I6cy5iZztcbiAgICBOVkcuc2V0X3N0cm9rZV9jb2xvciB2ZyB+Y29sb3I6cy5mZztcbiAgICBGb250LnNldCB2ZyBzLmZvbnRcblxuICBsZXQgbWVudV9tYWluID0gYmcgQ29sb3IuZ3JlZW4gKysgZmcgQ29sb3IuYmxhY2tcbiAgbGV0IG1lbnVfc3ViID0gYmcgQ29sb3IubGlnaHRncmVlbiArKyBmZyBDb2xvci5ibGFja1xuXG4gIGxldCBjbGlja2FibGUgPVxuICAgIChiZyBAQCBDb2xvci5yZ2JmIH5yOjAuMiB+ZzowLjIgfmI6MC41KSArKyAoZmcgQEAgQ29sb3IubGlnaHQpXG5cbiAgbGV0IGN1cnNvciA9IChmZyBAQCBDb2xvci5kYXJrKSArKyAoYmcgQEAgQ29sb3IueWVsbG93KVxuZW5kXG5cbm1vZHVsZSBQYWQgPSBzdHJ1Y3RcbiAgb3BlbiBHZ1xuXG4gIHR5cGUgdCA9IHsgdCA6IHNpemUxOyBiIDogc2l6ZTE7IGwgOiBzaXplMTsgciA6IHNpemUxIH1cblxuICBsZXQgZW1wdHkgPVxuICAgIHsgdCA9IFNpemUxLnplcm87IGIgPSBTaXplMS56ZXJvOyBsID0gU2l6ZTEuemVybzsgciA9IFNpemUxLnplcm8gfVxuXG4gIGxldCBhbGwgdiA9IHsgdCA9IHY7IGIgPSB2OyBsID0gdjsgciA9IHYgfVxuZW5kXG5cbm1vZHVsZSBBID0gU3R5bGVcblxubW9kdWxlIEkgPSBzdHJ1Y3RcbiAgb3BlbiBHZ1xuXG4gIHR5cGUgZGltID0gcDJcblxuICB0eXBlIHQgPVxuICAgIHwgRW1wdHlcbiAgICB8IFNlZ21lbnQgb2YgVGV4dC50ICgqIGJveDIgaXMgK2Nyb3AvLXBhZCBvZiBkcmF3biBUZXh0LnQgKilcbiAgICB8IEF0dHIgb2YgKHQgKiBBLnQpXG4gICAgfCBIY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBWY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBaY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBIY3JvcCBvZiAodCAqIGZsb2F0ICogZmxvYXQpXG4gICAgfCBWY3JvcCBvZiAodCAqIGZsb2F0ICogZmxvYXQpXG4gICAgfCBWb2lkIG9mIGRpbVxuXG4gIGxldCBwMl9tYXggcDEgcDIgOiBwMiA9XG4gICAgVjIuKHYgKEZsb2F0Lm1heCAoeCBwMSkgKHggcDIpKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgIFtAQGlubGluZV1cblxuICBsZXQgYm91bmRzX3NlZ21lbnQgdmcgcCA6IFRleHQudCAtPiBOVkcuVGV4dC5ib3VuZHMgPSBmdW5jdGlvblxuICAgIHwgU3RyaW5nIHMgLT5cbiAgICAgICAgbGV0IG9wZW4gTlZHLlRleHQgaW5cbiAgICAgICAgbGV0IHsgYXNjZW5kZXI7IF8gfSA9IE5WRy5UZXh0Lm1ldHJpY3MgdmcgaW5cbiAgICAgICAgYm91bmRzIHZnIH54OihWMi54IHApIH55OihWMi55IHAgKy4gYXNjZW5kZXIpIHNcblxuICBsZXQgcmVjIHNpemUgdmcgcCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPiBWMi56ZXJvXG4gICAgfCBTZWdtZW50IHMgLT5cbiAgICAgICAgbGV0IE5WRy5UZXh0LnsgYm94ID0geyB5bWF4OyB5bWluOyBfIH07IGFkdmFuY2UgfSA9XG4gICAgICAgICAgYm91bmRzX3NlZ21lbnQgdmcgcCBzXG4gICAgICAgIGluXG4gICAgICAgIFYyLnYgYWR2YW5jZSAoeW1heCAtLiB5bWluKVxuICAgIHwgQXR0ciAodCwgX2EpIC0+IHNpemUgdmcgcCB0XG4gICAgfCBIY29tcG9zZSAodDEsIHQyKSAtPlxuICAgICAgICBsZXQgcDEgPSBzaXplIHZnIHAgdDEgaW5cbiAgICAgICAgbGV0IHAyID0gc2l6ZSB2ZyBWMi4ocCArIHYgKHggcDEpIDAuKSB0MiBpblxuICAgICAgICBWMi4odiAoeCBwMSArLiB4IHAyKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgIHwgVmNvbXBvc2UgKHQxLCB0MikgLT5cbiAgICAgICAgbGV0IHAxID0gc2l6ZSB2ZyBwIHQxIGluXG4gICAgICAgIGxldCBwMiA9IHNpemUgdmcgVjIuKHAgKyB2IDAuICh5IHAxKSkgdDIgaW5cbiAgICAgICAgVjIuKHYgKEZsb2F0Lm1heCAoeCBwMSkgKHggcDIpKSAoeSBwMSArLiB5IHAyKSlcbiAgICB8IFpjb21wb3NlICh0MSwgdDIpIC0+IHAyX21heCAoc2l6ZSB2ZyBwIHQxKSAoc2l6ZSB2ZyBwIHQyKVxuICAgIHwgSGNyb3AgKHQsIGxlZnQsIHJpZ2h0KSAtPlxuICAgICAgICAoKiBwb3NpdGl2ZSB2YWx1ZXMgYXJlIGNyb3AsIG5lZ2F0aXZlIGlzIHBhZCAqKVxuICAgICAgICBWMi4oc2l6ZSB2ZyAocCAtIHYgbGVmdCAwLikgdCAtIHYgcmlnaHQgMC4pXG4gICAgfCBWY3JvcCAodCwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgIFYyLihzaXplIHZnIChwIC0gdiAwLiB0b3ApIHQgLSB2IDAuIGJvdHRvbSlcbiAgICB8IFZvaWQgcCcgLT4gVjIuKHAgKyBwJylcblxuICBsZXQgZW1wdHkgPSBFbXB0eVxuICBsZXQgdm9pZCB3IGggPSBWb2lkIChQMi52IHcgaClcblxuICBsZXQgYXR0ciBhID0gZnVuY3Rpb25cbiAgICB8IEF0dHIgKHQsIGEwKSAtPiBBdHRyICh0LCBBLihyZXBsYWNlIH5wcmV2OmEwIH5uZXh0OmEpKVxuICAgIHwgdCAtPiBBdHRyICh0LCBhKVxuXG4gIGxldCAoIDx8PiApIHQxIHQyID1cbiAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgfCBfLCBFbXB0eSAtPiB0MVxuICAgIHwgRW1wdHksIF8gLT4gdDJcbiAgICB8IF8gLT4gSGNvbXBvc2UgKHQxLCB0MilcblxuICBsZXQgKCA8LT4gKSB0MSB0MiA9XG4gICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgIHwgXywgRW1wdHkgLT4gdDFcbiAgICB8IEVtcHR5LCBfIC0+IHQyXG4gICAgfCBfIC0+IFZjb21wb3NlICh0MSwgdDIpXG5cbiAgbGV0ICggPC8+ICkgdDEgdDIgPVxuICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICB8IF8sIEVtcHR5IC0+IHQxXG4gICAgfCBFbXB0eSwgXyAtPiB0MlxuICAgIHwgXyAtPiBaY29tcG9zZSAodDEsIHQyKVxuXG4gICgqIGNyb3AgaXMgcG9zaXRpdmUgdmFsdWUsIHBhZCBpcyBuZWdhdGl2ZSAqKVxuXG4gIGxldCBoY3JvcCBsZWZ0IHJpZ2h0IGltZyA9XG4gICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiSGNyb3AgKCVmLCAlZilcIiBsZWZ0IHJpZ2h0KTsgKilcbiAgICBIY3JvcCAoaW1nLCBsZWZ0LCByaWdodClcblxuICBsZXQgdmNyb3AgdG9wIGJvdHRvbSBpbWcgPVxuICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIlZjcm9wICglZiwgJWYpXCIgdG9wIGJvdHRvbSk7ICopXG4gICAgVmNyb3AgKGltZywgdG9wLCBib3R0b20pXG5cbiAgbGV0IGNyb3AgPyhsID0gMC4pID8ociA9IDAuKSA/KHQgPSAwLikgPyhiID0gMC4pIGltZyA9XG4gICAgbGV0IGltZyA9IGlmIGwgPD4gMC4gfHwgciA8PiAwLiB0aGVuIGhjcm9wIGwgciBpbWcgZWxzZSBpbWcgaW5cbiAgICBpZiB0IDw+IDAuIHx8IGIgPD4gMC4gdGhlbiB2Y3JvcCB0IGIgaW1nIGVsc2UgaW1nXG5cbiAgbGV0IGhwYWQgbGVmdCByaWdodCBpbWcgPSBoY3JvcCAoLS5sZWZ0KSAoLS5yaWdodCkgaW1nXG4gIGxldCB2cGFkIHRvcCBib3R0b20gaW1nID0gdmNyb3AgKC0udG9wKSAoLS5ib3R0b20pIGltZ1xuXG4gIGxldCBwYWQgPyhsID0gMC4pID8ociA9IDAuKSA/KHQgPSAwLikgPyhiID0gMC4pIGltZyA9XG4gICAgY3JvcCB+bDooLS5sKSB+cjooLS5yKSB+dDooLS50KSB+YjooLS5iKSBpbWdcblxuICBsZXQgcmVjIGNvbmNhdG0geiAoIEAgKSB4cyA9XG4gICAgbGV0IHJlYyBhY2N1bSAoIEAgKSA9IGZ1bmN0aW9uXG4gICAgICB8IChbXSB8IFsgXyBdKSBhcyB4cyAtPiB4c1xuICAgICAgfCBhIDo6IGIgOjogeHMgLT4gKGEgQCBiKSA6OiBhY2N1bSAoIEAgKSB4c1xuICAgIGluXG4gICAgbWF0Y2ggeHMgd2l0aFxuICAgIHwgW10gLT4gelxuICAgIHwgWyB4IF0gLT4geFxuICAgIHwgeHMgLT4gY29uY2F0bSB6ICggQCApIChhY2N1bSAoIEAgKSB4cylcblxuICBsZXQgaGNhdCA9IGNvbmNhdG0gZW1wdHkgKCA8fD4gKVxuICBsZXQgdmNhdCA9IGNvbmNhdG0gZW1wdHkgKCA8LT4gKVxuICBsZXQgemNhdCB4cyA9IExpc3QuZm9sZF9yaWdodCAoIDwvPiApIHhzIGVtcHR5XG5cbiAgbGV0IHRleHQgYXR0ciB0eCA9XG4gICAgbWF0Y2ggYXR0ciB3aXRoIFNvbWUgYSAtPiBBdHRyIChTZWdtZW50IHR4LCBhKSB8IF8gLT4gU2VnbWVudCB0eFxuXG4gIGxldCBzdHJpbmcgP2F0dHIgcyA9IHRleHQgYXR0ciAoVGV4dC5vZl9zdHJpbmcgcylcbiAgbGV0IHVjaGFycyA/YXR0ciBhID0gdGV4dCBhdHRyIChUZXh0Lm9mX3VjaGFycyBhKVxuXG4gIGxldCByZWMgbGluc3BjbSB6ICggQCApIHggbiBmID1cbiAgICBtYXRjaCBuIHdpdGhcbiAgICB8IDAuIC0+IHpcbiAgICB8IDEuIC0+IGYgeFxuICAgIHwgXyAtPlxuICAgICAgICBsZXQgbSA9IG4gLy4gMi4gaW5cbiAgICAgICAgbGluc3BjbSB6ICggQCApIHggbSBmIEAgbGluc3BjbSB6ICggQCApICh4ICsuIG0pIChuIC0uIG0pIGZcblxuICBsZXQgdGFidWxhdGUgbSBuIGYgPVxuICAgIGxldCBtID0gbWF4IG0gMC4gYW5kIG4gPSBtYXggbiAwLiBpblxuICAgIGxpbnNwY20gZW1wdHkgKCA8LT4gKSAwLiBuIChmdW4geSAtPlxuICAgICAgICBsaW5zcGNtIGVtcHR5ICggPHw+ICkgMC4gbSAoZnVuIHggLT4gZiB4IHkpKVxuXG4gIGxldCBjaGFycyBjdG9yID9hdHRyIGMgdyBoID1cbiAgICBsZXQgdyA9IG1heCAwLiB3IGFuZCBoID0gbWF4IDAuIGggaW5cbiAgICBpZiB3IDwgMS4gfHwgaCA8IDEuIHRoZW4gdm9pZCB3IGhcbiAgICBlbHNlXG4gICAgICBsZXQgbGluZSA9IHRleHQgYXR0ciAoY3RvciB3IGMpIGluXG4gICAgICB0YWJ1bGF0ZSAxLiBoIChmdW4gXyBfIC0+IGxpbmUpXG5cbiAgbGV0IGNoYXIgPSBjaGFycyBUZXh0LnJlcGxpY2F0ZWNcbiAgKCogbGV0IHVjaGFyID0gY2hhcnMgVGV4dC5yZXBsaWNhdGV1ICopXG5cbiAgKCogbW9kdWxlIEZtdCA9IHN0cnVjdFxuICAgICAgIG9wZW4gRm9ybWF0XG5cbiAgICAgICB0eXBlIHN0YWcgKz0gQXR0ciBvZiBBLnRcblxuICAgICAgIGxldCBwdXNoIHIgeCA9IHIgOj0geCA6OiAhclxuICAgICAgIGxldCBwb3AgciA9IHIgOj0gbWF0Y2ggIXIgd2l0aCBfIDo6IHhzIC0+IHhzIHwgXyAtPiBbXVxuICAgICAgIGxldCB0b3BfYSByID0gbWF0Y2ggIXIgd2l0aCBhIDo6IF8gLT4gYSB8IF8gLT4gQS5lbXB0eVxuXG4gICAgICAgbGV0IGNyZWF0ZSAoKSA9XG4gICAgICAgICBsZXQgaW1nLCBsaW5lLCBhdHRyID0gKHJlZiBlbXB0eSwgcmVmIGVtcHR5LCByZWYgW10pIGluXG4gICAgICAgICBsZXQgZm10ID1cbiAgICAgICAgICAgZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnNcbiAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICBvdXRfZmx1c2ggPVxuICAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICAgaW1nIDo9ICFpbWcgPC0+ICFsaW5lO1xuICAgICAgICAgICAgICAgICAgIGxpbmUgOj0gZW1wdHk7XG4gICAgICAgICAgICAgICAgICAgYXR0ciA6PSBbXSk7XG4gICAgICAgICAgICAgICBvdXRfbmV3bGluZSA9XG4gICAgICAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgICBpbWcgOj0gIWltZyA8LT4gIWxpbmU7XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSB2b2lkIDAuIDEuKTtcbiAgICAgICAgICAgICAgIG91dF9zdHJpbmcgPVxuICAgICAgICAgICAgICAgICAoZnVuIHMgaSBuIC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PVxuICAgICAgICAgICAgICAgICAgICAgIWxpbmVcbiAgICAgICAgICAgICAgICAgICAgIDx8PiBzdHJpbmcgfmF0dHI6KHRvcF9hIGF0dHIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuKHN1YjBjcCBzIGkgbikpXG4gICAgICAgICAgICAgICAgICgqIE5vdCBlbnRpcmVseSBjbGVhcjsgZWl0aGVyIG9yIGJvdGggY291bGQgYmUgdm9pZDogKik7XG4gICAgICAgICAgICAgICBvdXRfc3BhY2VzID1cbiAgICAgICAgICAgICAgICAgKGZ1biB3IC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSAhbGluZSA8fD4gY2hhciB+YXR0cjoodG9wX2EgYXR0cikgJyAnIHcgMSk7XG4gICAgICAgICAgICAgICBvdXRfaW5kZW50ID1cbiAgICAgICAgICAgICAgICAgKGZ1biB3IC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSAhbGluZSA8fD4gY2hhciB+YXR0cjoodG9wX2EgYXR0cikgJyAnIHcgMSk7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgaW5cbiAgICAgICAgIHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10XG4gICAgICAgICAgIHtcbiAgICAgICAgICAgICAocHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBmbXQgKCkpIHdpdGhcbiAgICAgICAgICAgICBtYXJrX29wZW5fc3RhZyA9XG4gICAgICAgICAgICAgICAoZnVuY3Rpb25cbiAgICAgICAgICAgICAgIHwgQXR0ciBhIC0+XG4gICAgICAgICAgICAgICAgICAgcHVzaCBhdHRyIEEuKHRvcF9hIGF0dHIgKysgYSk7XG4gICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgfCBfIC0+IFwiXCIpO1xuICAgICAgICAgICAgIG1hcmtfY2xvc2Vfc3RhZyA9XG4gICAgICAgICAgICAgICAoZnVuIF8gLT5cbiAgICAgICAgICAgICAgICAgcG9wIGF0dHI7XG4gICAgICAgICAgICAgICAgIFwiXCIpO1xuICAgICAgICAgICB9O1xuICAgICAgICAgcHBfc2V0X21hcmtfdGFncyBmbXQgdHJ1ZTtcbiAgICAgICAgICggZm10LFxuICAgICAgICAgICBmdW4gKCkgLT5cbiAgICAgICAgICAgICBsZXQgaSA9ICFpbWcgaW5cbiAgICAgICAgICAgICBpbWcgOj0gZW1wdHk7XG4gICAgICAgICAgICAgbGluZSA6PSBlbXB0eTtcbiAgICAgICAgICAgICBhdHRyIDo9IFtdO1xuICAgICAgICAgICAgIGkgKVxuXG4gICAgICAgbGV0IHBwZiwgcmVzZXQgPSBjcmVhdGUgKClcblxuICAgICAgIGxldCBrc3RyZiA/KGF0dHIgPSBBLmVtcHR5KSA/KHcgPSAxMDAwMDAwKSBrIGZvcm1hdCA9XG4gICAgICAgICBsZXQgbSA9IHJlZiAwIGluXG4gICAgICAgICBsZXQgZjEgXyAoKSA9XG4gICAgICAgICAgIG0gOj0gcHBfZ2V0X21hcmdpbiBwcGYgKCk7XG4gICAgICAgICAgIHBwX3NldF9tYXJnaW4gcHBmIHc7XG4gICAgICAgICAgIHBwX29wZW5fc3RhZyBwcGYgKEF0dHIgYXR0cilcbiAgICAgICAgIGFuZCBrIF8gPVxuICAgICAgICAgICBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gICAgICAgICAgIHBwX3NldF9tYXJnaW4gcHBmICFtO1xuICAgICAgICAgICByZXNldCAoKSB8PiBrXG4gICAgICAgICBpblxuICAgICAgICAga2ZwcmludGYgayBwcGYgKFwiJWFcIiBeXiBmb3JtYXQpIGYxICgpXG5cbiAgICAgICBsZXQgc3RyZiA/YXR0ciA/dyBmb3JtYXQgPSBrc3RyZiA/YXR0ciA/dyAoZnVuIGkgLT4gaSkgZm9ybWF0XG5cbiAgICAgICBsZXQgYXR0ciBhdHRyIGYgZm10IHggPVxuICAgICAgICAgcHBfb3Blbl9zdGFnIGZtdCAoQXR0ciBhdHRyKTtcbiAgICAgICAgIGYgZm10IHg7XG4gICAgICAgICBwcF9jbG9zZV9zdGFnIGZtdCAoKVxuICAgICBlbmRcblxuICAgICAgIGxldCBrc3RyZiwgc3RyZiwgcHBfYXR0ciA9IEZtdC4oa3N0cmYsIHN0cmYsIGF0dHIpICopXG5cbiAgbW9kdWxlIERyYXcgPSBzdHJ1Y3RcbiAgICB0eXBlIGF0dHIgPSBTdHlsZS50XG4gICAgdHlwZSBwID0gUDIudFxuICAgIHR5cGUgZCA9IFsgYFggfCBgWSB8IGBaIF1cblxuICAgIGxldCBzdHJfb2ZfYm94IGIgPVxuICAgICAgUHJpbnRmLnNwcmludGYgXCIob3g6JTAuMWYgb3k6JTAuMWYgZXglMC4xZiBleSUwLjFmKVwiIChCb3gyLm94IGIpXG4gICAgICAgIChCb3gyLm95IGIpIChCb3gyLm1heHggYikgKEJveDIubWF4eSBiKVxuXG4gICAgbGV0IGZpbGxfYm94IHZnIGNvbG9yIGIgPVxuICAgICAgbGV0IG1vZHVsZSBQYXRoID0gTlZHLlBhdGggaW5cbiAgICAgIGxldCBvcGVuIE5WRyBpblxuICAgICAgTlZHLnNhdmUgdmc7XG4gICAgICBQYXRoLmJlZ2luXyB2ZztcbiAgICAgIFBhdGgucmVjdCB2ZyB+eDooQm94Mi5veCBiKSB+eTooQm94Mi5veSBiKSB+dzooQm94Mi53IGIpXG4gICAgICAgIH5oOihCb3gyLmggYik7XG4gICAgICBzZXRfZmlsbF9jb2xvciB2ZyB+Y29sb3I7XG4gICAgICBmaWxsIHZnO1xuICAgICAgTlZHLnJlc3RvcmUgdmc7XG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJmaWxsX2JveDogJWFcIiBCb3gyLnBwIGIpOyAqKVxuICAgICAgQm94Mi5zaXplIGJcblxuICAgIGxldCBwYXRoX2JveCB2ZyBjb2xvciA/KHdpZHRoID0gMC4pIGIgPVxuICAgICAgbGV0IG1vZHVsZSBQYXRoID0gTlZHLlBhdGggaW5cbiAgICAgIFBhdGguYmVnaW5fIHZnO1xuICAgICAgUGF0aC5yZWN0IHZnIH54OihCb3gyLm94IGIpIH55OihCb3gyLm95IGIpIH53OihCb3gyLncgYilcbiAgICAgICAgfmg6KEJveDIuaCBiKTtcbiAgICAgIGlmIHdpZHRoICE9IDAuIHRoZW4gTlZHLnNldF9zdHJva2Vfd2lkdGggdmcgfndpZHRoO1xuICAgICAgTlZHLnNldF9zdHJva2VfY29sb3IgdmcgfmNvbG9yO1xuICAgICAgTlZHLnN0cm9rZSB2ZztcbiAgICAgIEJveDIuc2l6ZSBiXG5cbiAgICBsZXQgdmNhdCBkIGEgYiA9XG4gICAgICBtYXRjaCBkIHdpdGhcbiAgICAgIHwgYFggLT5cbiAgICAgICAgICBWMi52IChWMi54IGEgKy4gVjIueCBiKSAoRmxvYXQubWF4X251bSAoVjIueSBhKSAoVjIueSBiKSlcbiAgICAgIHwgYFkgLT4gVjIudiAoRmxvYXQubWF4X251bSAoVjIueCBhKSAoVjIueCBiKSkgKFYyLnkgYSArLiBWMi55IGIpXG4gICAgICB8IGBaIC0+XG4gICAgICAgICAgVjIudlxuICAgICAgICAgICAgKEZsb2F0Lm1heF9udW0gKFYyLnggYSkgKFYyLnggYikpXG4gICAgICAgICAgICAoRmxvYXQubWF4X251bSAoVjIueSBhKSAoVjIueSBiKSlcblxuICAgIGxldCByZWMgcHAgPyhhdHRyID0gQS5lbXB0eSkgcHBmIDogdCAtPiB1bml0ID1cbiAgICAgIGxldCBvcGVuIEYgaW5cbiAgICAgIGxldCBjb21wb3NlID0gcGFpciAocGFyZW5zIChwcCB+YXR0cikpIChwYXJlbnMgKHBwIH5hdHRyKSkgaW5cbiAgICAgIGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGZtdCBcIkVtcHR5XCIgcHBmXG4gICAgICB8IFNlZ21lbnQgdiAtPiBmbXQgXCJAWzxoPlNlZ21lbnQgJWFAXVwiIHBwZiBUZXh0LnBwIHZcbiAgICAgIHwgQXR0ciAodCwgYSkgLT5cbiAgICAgICAgICBmbXQgXCJAWzxoPkF0dHIgJWFAXVwiIHBwZlxuICAgICAgICAgICAgKHBhaXIgfnNlcDpjb21tYSBBLnBwXG4gICAgICAgICAgICAgICAocHAgfmF0dHI6QS4ocmVwbGFjZSB+cHJldjphdHRyIH5uZXh0OmEpKSlcbiAgICAgICAgICAgIChBLihyZXBsYWNlIH5wcmV2OmF0dHIgfm5leHQ6YSksIHQpXG4gICAgICB8IEhjb21wb3NlIGEgLT4gZm10IFwiSGNhdCAlYVwiIHBwZiBjb21wb3NlIGFcbiAgICAgIHwgVmNvbXBvc2UgYSAtPiBmbXQgXCJWY2F0ICVhXCIgcHBmIGNvbXBvc2UgYVxuICAgICAgfCBaY29tcG9zZSBhIC0+IGZtdCBcIlpjYXQgJWFcIiBwcGYgY29tcG9zZSBhXG4gICAgICB8IEhjcm9wICh0LCBsZWZ0LCByaWdodCkgLT5cbiAgICAgICAgICBmbXQgXCJIY3JvcCAoJS4xZiwlLjFmLCVhKVwiIHBwZiBsZWZ0IHJpZ2h0IChwcCB+YXR0cikgdFxuICAgICAgfCBWY3JvcCAodCwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgICAgZm10IFwiVmNyb3AgKCUuMWYsJS4xZiwlYSlcIiBwcGYgdG9wIGJvdHRvbSAocHAgfmF0dHIpIHRcbiAgICAgIHwgVm9pZCBkaW0gLT4gZm10IFwiVm9pZCAlYVwiIHBwZiAocGFyZW5zIFYyLnBwKSBkaW1cblxuICAgIGxldCBzZWdtZW50X2tlcm5fY2FjaGUgPSByZWYgKEJveDIuemVybywgXCJcIilcblxuICAgIGxldCByZWMgc2VnbWVudCB2ZyBwIDogVGV4dC50IC0+IFAyLnQgPSBmdW5jdGlvblxuICAgICAgfCBTdHJpbmcgcyAtPlxuICAgICAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIkkuRHJhdy5zZWdtZW50IHA9JWEgJXNcIiBHZy5WMi5wcCBwIHMpOyAqKVxuICAgICAgICAgICgqIGxldCBwJyA9XG4gICAgICAgICAgICAgICBsZXQgY2FjaGVfcCwgY2FjaGVfcyA9ICFzZWdtZW50X2tlcm5fY2FjaGUgaW5cbiAgICAgICAgICAgICAgICgqIHRyaWVzIHRvIGdldCB0aGUga2VybmluZyByaWdodCBhY3Jvc3Mgc2VnbWVudHMgKilcbiAgICAgICAgICAgICAgIGlmIFYyLihlcXVhbCAoQm94Mi5tYXggY2FjaGVfcCkgcCkgdGhlblxuICAgICAgICAgICAgICAgICBWMi4oXG4gICAgICAgICAgICAgICAgICAgQm94Mi5vIGNhY2hlX3BcbiAgICAgICAgICAgICAgICAgICArIHZcbiAgICAgICAgICAgICAgICAgICAgICAgKChib3VuZHNfc2VnbWVudCB2ZyAoQm94Mi5vIGNhY2hlX3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoVGV4dC5vZl9zdHJpbmcgKGNhY2hlX3MgXiBzKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5hZHZhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgLS4gKGJvdW5kc19zZWdtZW50IHZnIHAgKFRleHQub2Zfc3RyaW5nIHMpKS5hZHZhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgMC4pXG4gICAgICAgICAgICAgICBlbHNlIHBcbiAgICAgICAgICAgICBpbiAqKVxuICAgICAgICAgIGxldCBtZXRyaWNzID0gTlZHLlRleHQubWV0cmljcyB2ZyBpblxuICAgICAgICAgIE5WRy5UZXh0LnRleHQgdmcgfng6KFYyLnggcClcbiAgICAgICAgICAgIH55OihWMi55IHAgKy4gbWV0cmljcy5hc2NlbmRlcilcbiAgICAgICAgICAgIHM7XG5cbiAgICAgICAgICBsZXQgc3ogPVxuICAgICAgICAgICAgVjIudiAoYm91bmRzX3NlZ21lbnQgdmcgcCAoVGV4dC5vZl9zdHJpbmcgcykpLmFkdmFuY2VcbiAgICAgICAgICAgICAgbWV0cmljcy5saW5lX2hlaWdodFxuICAgICAgICAgIGluXG4gICAgICAgICAgc2VnbWVudF9rZXJuX2NhY2hlIDo9IChCb3gyLih2IHAgc3opLCBzKTtcbiAgICAgICAgICBzelxuXG4gICAgYW5kIG5vZGUgdmcgYXR0ciBwIG4gOiBwMiA9XG4gICAgICAoKiByZXR1cm5zIHRoZSAqc2l6ZSogb2YgdGhlIGRyYXduIGFyZWEgbm90IHRoZSBtYXggY29vcmRpbmF0ZXMgYW55bW9yZSAqKVxuICAgICAgbGV0IGInID1cbiAgICAgICAgbWF0Y2ggbiB3aXRoXG4gICAgICAgIHwgRW1wdHkgfCBWb2lkIF8gLT4gcFxuICAgICAgICB8IFNlZ21lbnQgdGV4dCAtPiBzZWdtZW50IHZnIHAgdGV4dFxuICAgICAgICB8IEF0dHIgKGksIGEpIC0+XG4gICAgICAgICAgICBsZXQgYTAgPSBBLihyZXBsYWNlIH5wcmV2OmF0dHIgfm5leHQ6YSkgaW5cbiAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChBLihhLmJnKSAhPSBBLihhdHRyLmJnKSlcbiAgICAgICAgICAgICAgJiYgQS4oYTAuYmcpICE9IE5WRy5Db2xvci50cmFuc3BhcmVudFxuICAgICAgICAgICAgdGhlbiBmaWxsX2JveCB2ZyBhMC5iZyAoQm94Mi52IHAgKHNpemUgdmcgcCBpKSkgfD4gaWdub3JlO1xuICAgICAgICAgICAgaWYgQS4oYXR0ci5mZykgIT0gYS5mZyB0aGVuIChcbiAgICAgICAgICAgICAgTlZHLnNldF9maWxsX2NvbG9yIHZnIH5jb2xvcjpTdHlsZS4oYTAuZmcpO1xuICAgICAgICAgICAgICBOVkcuc2V0X3N0cm9rZV9jb2xvciB2ZyB+Y29sb3I6U3R5bGUuKGEwLmZnKSk7XG4gICAgICAgICAgICBub2RlIHZnIGEwIHAgaVxuICAgICAgICB8IEhjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIFYyLihwICsgdiAoVjIueCBwMSkgMC4pIGkyIGluXG4gICAgICAgICAgICBWMi4odiAoeCBwMSArLiB4IHAyKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgICAgICB8IFZjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIFYyLihwICsgdiAwLiAoVjIueSBwMSkpIGkyIGluXG4gICAgICAgICAgICBWMi4odiAoRmxvYXQubWF4ICh4IHAxKSAoeCBwMikpICh5IHAxICsuIHkgcDIpKVxuICAgICAgICB8IFpjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIHAgaTIgaW5cbiAgICAgICAgICAgIHAyX21heCBwMSBwMlxuICAgICAgICB8IEhjcm9wIChpLCBsZWZ0LCByaWdodCkgLT5cbiAgICAgICAgICAgIGxldCBwMCA9IHNpemUgdmcgcCBpIGluXG4gICAgICAgICAgICBOVkcuc2F2ZSB2ZztcbiAgICAgICAgICAgIE5WRy5TY2lzc29yLnNjaXNzb3Igdmcgfng6KFYyLnggcCkgfnk6KFYyLnkgcClcbiAgICAgICAgICAgICAgfnc6KFYyLnggcDAgLS4gcmlnaHQpXG4gICAgICAgICAgICAgIH5oOihWMi55IHAwKTtcbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBWMi4ocCAtIHYgbGVmdCAwLikgaSBpblxuICAgICAgICAgICAgTlZHLnJlc3RvcmUgdmc7XG4gICAgICAgICAgICBWMi4ocDEgLSB2IChsZWZ0ICsuIHJpZ2h0KSAwLilcbiAgICAgICAgfCBWY3JvcCAoaSwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgICAgICBsZXQgcDAgPSBzaXplIHZnIHAgaSBpblxuICAgICAgICAgICAgTlZHLnNhdmUgdmc7XG4gICAgICAgICAgICBOVkcuU2Npc3Nvci5zY2lzc29yIHZnIH54OihWMi54IHApIH55OihWMi55IHApXG4gICAgICAgICAgICAgIH53OihWMi54IHAwKVxuICAgICAgICAgICAgICB+aDooVjIueSBwMCAtLiBib3R0b20pO1xuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIFYyLihwIC0gdiAwLiB0b3ApIGkgaW5cbiAgICAgICAgICAgIE5WRy5yZXN0b3JlIHZnO1xuICAgICAgICAgICAgVjIuKHAxIC0gdiAwLiAodG9wICsuIGJvdHRvbSkpXG4gICAgICBpblxuXG4gICAgICAoKiBpZ25vcmVcbiAgICAgICAgIChwYXRoX2JveCB2Zy52Z1xuICAgICAgICAgICAgKE5WRy5Db2xvci5yZ2JhZiB+cjoxLiB+ZzowLiB+YjowLiB+YTowLjIpXG4gICAgICAgICAgICAoQm94Mi5vZl9wdHMgYiBiJykpOyAqKVxuICAgICAgYidcbiAgZW5kXG5lbmRcblxubW9kdWxlIE5vdHR1aSA9IHN0cnVjdFxuICBsZXQgbWF4aSB4IHkgOiBpbnQgPSBpZiB4ID4geSB0aGVuIHggZWxzZSB5XG4gIGxldCBtaW5pIHggeSA6IGludCA9IGlmIHggPCB5IHRoZW4geCBlbHNlIHlcblxuICBtb2R1bGUgRm9jdXMgOiBzaWdcbiAgICB0eXBlIHZhciA9IGludCBMd2QudmFyXG4gICAgdHlwZSBoYW5kbGVcblxuICAgIHZhbCBtYWtlIDogdW5pdCAtPiBoYW5kbGVcbiAgICB2YWwgcmVxdWVzdCA6IGhhbmRsZSAtPiB1bml0XG4gICAgdmFsIHJlcXVlc3RfdmFyIDogdmFyIC0+IHVuaXRcbiAgICB2YWwgcmVsZWFzZSA6IGhhbmRsZSAtPiB1bml0XG5cbiAgICB0eXBlIHN0YXR1cyA9IEVtcHR5IHwgSGFuZGxlIG9mIGludCAqIHZhciB8IENvbmZsaWN0IG9mIGludFxuXG4gICAgdmFsIGVtcHR5IDogc3RhdHVzXG5cbiAgICAoKnZhbCBpc19lbXB0eSA6IHN0YXR1cyAtPiBib29sKilcbiAgICB2YWwgc3RhdHVzIDogaGFuZGxlIC0+IHN0YXR1cyBMd2QudFxuICAgIHZhbCBoYXNfZm9jdXMgOiBzdGF0dXMgLT4gYm9vbFxuICAgIHZhbCBtZXJnZSA6IHN0YXR1cyAtPiBzdGF0dXMgLT4gc3RhdHVzXG4gICAgdmFsIHBwX3ZhciA6IEZvcm1hdC5mb3JtYXR0ZXIgLT4gdmFyIC0+IHVuaXRcbiAgICB2YWwgcHBfc3RhdHVzIDogRm9ybWF0LmZvcm1hdHRlciAtPiBzdGF0dXMgLT4gdW5pdFxuICBlbmQgPSBzdHJ1Y3RcbiAgICB0eXBlIHZhciA9IGludCBMd2QudmFyXG4gICAgdHlwZSBzdGF0dXMgPSBFbXB0eSB8IEhhbmRsZSBvZiBpbnQgKiB2YXIgfCBDb25mbGljdCBvZiBpbnRcbiAgICB0eXBlIGhhbmRsZSA9IHZhciAqIHN0YXR1cyBMd2QudFxuXG4gICAgbGV0IG1ha2UgKCkgPVxuICAgICAgbGV0IHYgPSBMd2QudmFyIDAgaW5cbiAgICAgICh2LCBMd2QubWFwIH5mOihmdW4gaSAtPiBIYW5kbGUgKGksIHYpKSAoTHdkLmdldCB2KSlcblxuICAgIGxldCBlbXB0eSA6IHN0YXR1cyA9IEVtcHR5XG4gICAgbGV0IHN0YXR1cyAoaCA6IGhhbmRsZSkgOiBzdGF0dXMgTHdkLnQgPSBzbmQgaFxuXG4gICAgbGV0IGhhc19mb2N1cyA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IEhhbmRsZSAoaSwgXykgfCBDb25mbGljdCBpIC0+IGkgPiAwXG5cbiAgICBsZXQgY2xvY2sgPSByZWYgMFxuXG4gICAgbGV0IHJlcXVlc3RfdmFyICh2IDogdmFyKSA9XG4gICAgICBpbmNyIGNsb2NrO1xuICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgIG0gXCJGb2N1cy5yZXF1ZXN0X3ZhciB2PSVkIGNsb2NrPSVkXCIgKEx3ZC5wZWVrIHYpICFjbG9jayk7XG4gICAgICBMd2Quc2V0IHYgIWNsb2NrXG5cbiAgICBsZXQgcmVxdWVzdCAoKHYsIF8pIDogaGFuZGxlKSA9IHJlcXVlc3RfdmFyIHZcblxuICAgIGxldCByZWxlYXNlICgodiwgXykgOiBoYW5kbGUpID1cbiAgICAgIGluY3IgY2xvY2s7XG4gICAgICBMd2Quc2V0IHYgMFxuXG4gICAgbGV0IG1lcmdlIHMxIHMyIDogc3RhdHVzID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgIHwgKEVtcHR5IHwgSGFuZGxlICgwLCBfKSksIHggfCB4LCAoRW1wdHkgfCBIYW5kbGUgKDAsIF8pKSAtPiB4XG4gICAgICB8IEhhbmRsZSAoaTEsIF8pLCBIYW5kbGUgKGkyLCBfKSB3aGVuIGkxID0gaTIgLT4gczFcbiAgICAgIHwgKEhhbmRsZSAoaTEsIF8pIHwgQ29uZmxpY3QgaTEpLCBDb25mbGljdCBpMiB3aGVuIGkxIDwgaTIgLT4gczJcbiAgICAgIHwgKEhhbmRsZSAoaTEsIF8pIHwgQ29uZmxpY3QgaTEpLCBIYW5kbGUgKGkyLCBfKSB3aGVuIGkxIDwgaTIgLT5cbiAgICAgICAgICBDb25mbGljdCBpMlxuICAgICAgfCBDb25mbGljdCBfLCAoSGFuZGxlIChfLCBfKSB8IENvbmZsaWN0IF8pIC0+IHMxXG4gICAgICB8IEhhbmRsZSAoaTEsIF8pLCAoSGFuZGxlIChfLCBfKSB8IENvbmZsaWN0IF8pIC0+IENvbmZsaWN0IGkxXG5cbiAgICBsZXQgcHBfdmFyIHBwZiB2ID0gRi5wZiBwcGYgXCIlZFwiIChMd2QucGVlayB2KVxuXG4gICAgbGV0IHBwX3N0YXR1cyBwcGYgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBGLnBmIHBwZiBcIkVtcHR5XCJcbiAgICAgIHwgSGFuZGxlIChpLCB2KSAtPiBGLnBmIHBwZiBcIkhhbmRsZSAoJWQsICVhKVwiIGkgcHBfdmFyIHZcbiAgICAgIHwgQ29uZmxpY3QgaSAtPiBGLnBmIHBwZiBcIkNvbmZsaWN0ICVkXCIgaVxuICBlbmRcblxuICBtb2R1bGUgR3Jhdml0eSA6IHNpZ1xuICAgIHR5cGUgZGlyZWN0aW9uID0gWyBgTmVnYXRpdmUgfCBgTmV1dHJhbCB8IGBQb3NpdGl2ZSBdXG5cbiAgICB2YWwgcHBfZGlyZWN0aW9uIDogRm9ybWF0LmZvcm1hdHRlciAtPiBkaXJlY3Rpb24gLT4gdW5pdFxuXG4gICAgdHlwZSB0XG5cbiAgICB2YWwgcHAgOiBGb3JtYXQuZm9ybWF0dGVyIC0+IHQgLT4gdW5pdFxuICAgIHZhbCBtYWtlIDogaDpkaXJlY3Rpb24gLT4gdjpkaXJlY3Rpb24gLT4gdFxuICAgIHZhbCBkZWZhdWx0IDogdFxuICAgIHZhbCBoIDogdCAtPiBkaXJlY3Rpb25cbiAgICB2YWwgdiA6IHQgLT4gZGlyZWN0aW9uXG5cbiAgICB0eXBlIHQyXG5cbiAgICB2YWwgcGFpciA6IHQgLT4gdCAtPiB0MlxuICAgIHZhbCBwMSA6IHQyIC0+IHRcbiAgICB2YWwgcDIgOiB0MiAtPiB0XG4gIGVuZCA9IHN0cnVjdFxuICAgIHR5cGUgZGlyZWN0aW9uID0gWyBgTmVnYXRpdmUgfCBgTmV1dHJhbCB8IGBQb3NpdGl2ZSBdXG4gICAgdHlwZSB0ID0geyBoIDogZGlyZWN0aW9uOyB2IDogZGlyZWN0aW9uIH1cblxuICAgIGxldCBkZWZhdWx0ID0geyBoID0gYE5ldXRyYWw7IHYgPSBgTmV1dHJhbCB9XG4gICAgbGV0IG1ha2UgfmggfnYgPSB7IGg7IHYgfVxuICAgIGxldCBoIHggPSB4LmhcbiAgICBsZXQgdiB4ID0geC52XG5cbiAgICBsZXQgcHBfZGlyZWN0aW9uIHBwZiBkaXIgPVxuICAgICAgbGV0IHRleHQgPVxuICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICB8IGBOZWdhdGl2ZSAtPiBcImBOZWdhdGl2ZVwiXG4gICAgICAgIHwgYE5ldXRyYWwgLT4gXCJgTmV1dHJhbFwiXG4gICAgICAgIHwgYFBvc2l0aXZlIC0+IFwiYFBvc2l0aXZlXCJcbiAgICAgIGluXG4gICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIHBwZiB0ZXh0XG5cbiAgICBsZXQgcHAgcHBmIGcgPVxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwieyBoID0gJWE7IHYgPSAlYSB9XCIgcHBfZGlyZWN0aW9uIChoIGcpXG4gICAgICAgIHBwX2RpcmVjdGlvbiAodiBnKVxuXG4gICAgdHlwZSB0MiA9IHQgKiB0XG5cbiAgICBsZXQgcGFpciB0MSB0MiA9ICh0MSwgdDIpXG4gICAgbGV0IHAxICh0LCBfKSA9IHRcbiAgICBsZXQgcDIgKF8sIHQpID0gdFxuICBlbmRcblxuICB0eXBlIGdyYXZpdHkgPSBHcmF2aXR5LnRcblxuICBtb2R1bGUgSW50ZXJ2YWwgOiBzaWdcbiAgICB0eXBlIHRcblxuICAgIHZhbCBtYWtlIDogZmxvYXQgLT4gZmxvYXQgLT4gdFxuICAgIHZhbCBzaGlmdCA6IHQgLT4gZmxvYXQgLT4gdFxuICAgIHZhbCBmc3QgOiB0IC0+IGZsb2F0XG4gICAgdmFsIHNuZCA6IHQgLT4gZmxvYXRcbiAgICB2YWwgc2l6ZSA6IHQgLT4gZmxvYXRcbiAgICB2YWwgemVybyA6IHRcbiAgZW5kID0gc3RydWN0XG4gICAgdHlwZSB0ID0gZmxvYXQgKiBmbG9hdFxuXG4gICAgbGV0IG1ha2UgeCB5ID0gKHgsIHkpXG4gICAgbGV0IHNoaWZ0ICh4LCB5KSBkID0gKHggKy4gZCwgeSArLiBkKVxuICAgIGxldCBmc3QgKHgsIF8pID0geFxuICAgIGxldCBzaXplICh4LCB5KSA9IHkgLS4geFxuICAgIGxldCBzbmQgKF8sIHkpID0geVxuICAgIGxldCB6ZXJvID0gKDAuLCAwLilcbiAgZW5kXG5cbiAgbW9kdWxlIFVpID0gc3RydWN0XG4gICAgdHlwZSBtYXlfaGFuZGxlID0gWyBgVW5oYW5kbGVkIHwgYEhhbmRsZWQgXVxuXG4gICAgbGV0IG1heV9oYW5kbGUgKHR5cGUgYSkgKHYgOiBhIG9wdGlvbikgKGYgOiBhIC0+IG1heV9oYW5kbGUpIDpcbiAgICAgICAgbWF5X2hhbmRsZSA9XG4gICAgICBtYXRjaCB2IHdpdGggU29tZSB2JyAtPiBmIHYnIHwgTm9uZSAtPiBgVW5oYW5kbGVkXG5cbiAgICBsZXQgcHBfbWF5X2hhbmRsZSBwcGYgPSBmdW5jdGlvblxuICAgICAgfCBgVW5oYW5kbGVkIC0+IEYucGYgcHBmIFwiYFVuaGFuZGxlZFwiXG4gICAgICB8IGBIYW5kbGVkIC0+IEYucGYgcHBmIFwiYEhhbmRsZWRcIlxuXG4gICAgdHlwZSBtb3VzZV9oYW5kbGVyID1cbiAgICAgIHg6ZmxvYXQgLT5cbiAgICAgIHk6ZmxvYXQgLT5cbiAgICAgIElucHV0LmJ1dHRvbiAtPlxuICAgICAgWyBgVW5oYW5kbGVkXG4gICAgICB8IGBIYW5kbGVkXG4gICAgICB8IGBHcmFiIG9mXG4gICAgICAgICh4OmZsb2F0IC0+IHk6ZmxvYXQgLT4gdW5pdCkgKiAoeDpmbG9hdCAtPiB5OmZsb2F0IC0+IHVuaXQpXG4gICAgICBdXG5cbiAgICB0eXBlIHNlbWFudGljX2tleSA9XG4gICAgICBbICgqIENsaXBib2FyZCAqKVxuICAgICAgICBgQ29weVxuICAgICAgfCBgUGFzdGVcbiAgICAgIHwgKCogRm9jdXMgbWFuYWdlbWVudCAqKVxuICAgICAgICBgRm9jdXMgb2ZcbiAgICAgICAgWyBgTmV4dCB8IGBQcmV2IHwgYExlZnQgfCBgUmlnaHQgfCBgVXAgfCBgRG93biBdIF1cblxuICAgIHR5cGUga2V5ID1cbiAgICAgIFsgSW5wdXQuc3BlY2lhbCB8IGBVY2hhciBvZiBVY2hhci50IHwgc2VtYW50aWNfa2V5IF1cbiAgICAgICogSW5wdXQubW9kc1xuXG4gICAgbGV0IHBwX2tleSA9XG4gICAgICBGLihcbiAgICAgICAgcGFpciB+c2VwOkYuc3BcbiAgICAgICAgICAoZnVuIHBwZiB2IC0+XG4gICAgICAgICAgICBtYXRjaCB2IHdpdGhcbiAgICAgICAgICAgIHwgYENvcHkgLT4gcGYgcHBmIFwiYENvcHlcIlxuICAgICAgICAgICAgfCBgUGFzdGUgLT4gcGYgcHBmIFwiYFBhc3RlXCJcbiAgICAgICAgICAgIHwgYEZvY3VzIHYgLT5cbiAgICAgICAgICAgICAgICBwZiBwcGYgXCJgRm9jdXMgJXNcIlxuICAgICAgICAgICAgICAgICAgKG1hdGNoIHYgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBgTmV4dCAtPiBcImBOZXh0XCJcbiAgICAgICAgICAgICAgICAgIHwgYFByZXYgLT4gXCJgUHJldlwiXG4gICAgICAgICAgICAgICAgICB8IGBMZWZ0IC0+IFwiYExlZnRcIlxuICAgICAgICAgICAgICAgICAgfCBgUmlnaHQgLT4gXCJgUmlnaHRcIlxuICAgICAgICAgICAgICAgICAgfCBgVXAgLT4gXCJgVXBcIlxuICAgICAgICAgICAgICAgICAgfCBgRG93biAtPiBcImBEb3duXCIpXG4gICAgICAgICAgICB8IGEgLT4gcGYgcHBmIFwiJWFcIiBJbnB1dC5wcF9jb2RlIGEpXG4gICAgICAgICAgSW5wdXQucHBfbW9kcylcblxuICAgIHR5cGUgbW91c2UgPSBJbnB1dC5tb3VzZVxuXG4gICAgdHlwZSBldmVudCA9XG4gICAgICBbIGBLZXkgb2Yga2V5IHwgYE1vdXNlIG9mIG1vdXNlIHwgYFBhc3RlIG9mIElucHV0LnBhc3RlIF1cblxuICAgIHR5cGUgbGF5b3V0X3NwZWMgPSB7XG4gICAgICB3IDogZmxvYXQ7XG4gICAgICBoIDogZmxvYXQ7XG4gICAgICBzdyA6IGZsb2F0O1xuICAgICAgc2ggOiBmbG9hdDtcbiAgICB9XG5cbiAgICBsZXQgcHBfZmxvYXQgcHBmID0gRi5mbXQgXCIlLjFmXCIgcHBmXG5cbiAgICB0eXBlIGZsYWdzID0gaW50XG5cbiAgICBsZXQgZmxhZ3Nfbm9uZSA9IDBcbiAgICBsZXQgZmxhZ190cmFuc2llbnRfc2Vuc29yID0gMVxuICAgIGxldCBmbGFnX3Blcm1hbmVudF9zZW5zb3IgPSAyXG5cbiAgICB0eXBlIHNpemVfc2Vuc29yID0gdzpmbG9hdCAtPiBoOmZsb2F0IC0+IHVuaXRcblxuICAgIHR5cGUgZnJhbWVfc2Vuc29yID1cbiAgICAgIHg6ZmxvYXQgLT4geTpmbG9hdCAtPiB3OmZsb2F0IC0+IGg6ZmxvYXQgLT4gdW5pdCAtPiB1bml0XG5cbiAgICB0eXBlIGltYWdlID0gSS50XG4gICAgdHlwZSBjYWNoZSA9IHsgdnggOiBJbnRlcnZhbC50OyB2eSA6IEludGVydmFsLnQ7IGltYWdlIDogaW1hZ2UgfVxuXG4gICAgdHlwZSAnYSBkZXNjID1cbiAgICAgIHwgQXRvbSBvZiBpbWFnZVxuICAgICAgfCBTaXplX3NlbnNvciBvZiAnYSAqIHNpemVfc2Vuc29yXG4gICAgICB8IFRyYW5zaWVudF9zZW5zb3Igb2YgJ2EgKiBmcmFtZV9zZW5zb3JcbiAgICAgIHwgUGVybWFuZW50X3NlbnNvciBvZiAnYSAqIGZyYW1lX3NlbnNvclxuICAgICAgfCBSZXNpemUgb2YgJ2EgKiBmbG9hdCBvcHRpb24gKiBmbG9hdCBvcHRpb24gKiBHcmF2aXR5LnQyXG4gICAgICB8IE1vdXNlX2hhbmRsZXIgb2YgJ2EgKiBtb3VzZV9oYW5kbGVyXG4gICAgICB8IEZvY3VzX2FyZWEgb2YgJ2EgKiAoa2V5IC0+IG1heV9oYW5kbGUpXG4gICAgICB8IFNoaWZ0X2FyZWEgb2YgJ2EgKiBmbG9hdCAqIGZsb2F0XG4gICAgICB8IEV2ZW50X2ZpbHRlciBvZlxuICAgICAgICAgICdhICogKFsgYEtleSBvZiBrZXkgfCBgTW91c2Ugb2YgbW91c2UgXSAtPiBtYXlfaGFuZGxlKVxuICAgICAgfCBYIG9mICdhICogJ2FcbiAgICAgIHwgWSBvZiAnYSAqICdhXG4gICAgICB8IFogb2YgJ2EgKiAnYVxuXG4gICAgdHlwZSB0ID0ge1xuICAgICAgbXV0YWJsZSB3IDogZmxvYXQ7XG4gICAgICBtdXRhYmxlIGggOiBmbG9hdDtcbiAgICAgIHN3IDogZmxvYXQ7XG4gICAgICBzaCA6IGZsb2F0O1xuICAgICAgbXV0YWJsZSBkZXNjIDogdCBkZXNjO1xuICAgICAgZm9jdXMgOiBGb2N1cy5zdGF0dXM7XG4gICAgICBtdXRhYmxlIGZsYWdzIDogZmxhZ3M7XG4gICAgICBtdXRhYmxlIHNlbnNvcl9jYWNoZSA6IChmbG9hdCAqIGZsb2F0ICogZmxvYXQgKiBmbG9hdCkgb3B0aW9uO1xuICAgICAgbXV0YWJsZSBjYWNoZSA6IGNhY2hlO1xuICAgIH1cblxuICAgIGxldCBsYXlvdXRfc3BlYyAodCA6IHQpIDogbGF5b3V0X3NwZWMgPVxuICAgICAgeyB3ID0gdC53OyBoID0gdC5oOyBzdyA9IHQuc3c7IHNoID0gdC5zaCB9XG5cbiAgICBsZXQgbGF5b3V0X3dpZHRoIHQgPSB0LndcbiAgICBsZXQgbGF5b3V0X3N0cmV0Y2hfd2lkdGggdCA9IHQuc3dcbiAgICBsZXQgbGF5b3V0X2hlaWdodCB0ID0gdC5oXG4gICAgbGV0IGxheW91dF9zdHJldGNoX2hlaWdodCB0ID0gdC5zaFxuXG4gICAgbGV0IHBwX2xheW91dF9zcGVjIHBwZiB7IHc7IGg7IHN3OyBzaDsgXyB9ID1cbiAgICAgIGxldCBwID0gcHBfZmxvYXQgaW5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcInt3PSVhO0AgaD0lYTtAIHN3PSVhO0Agc2g9JWF9XCIgcCB3IHAgaCBwIHN3XG4gICAgICAgIHAgc2hcblxuICAgIGxldCBjYWNoZSA6IGNhY2hlID1cbiAgICAgIHsgdnggPSBJbnRlcnZhbC56ZXJvOyB2eSA9IEludGVydmFsLnplcm87IGltYWdlID0gSS5lbXB0eSB9XG5cbiAgICBsZXQgZW1wdHkgOiB0ID1cbiAgICAgIHtcbiAgICAgICAgdyA9IDAuO1xuICAgICAgICBoID0gMC47XG4gICAgICAgIHN3ID0gMC47XG4gICAgICAgIHNoID0gMC47XG4gICAgICAgIGZsYWdzID0gZmxhZ3Nfbm9uZTtcbiAgICAgICAgZm9jdXMgPSBGb2N1cy5lbXB0eTtcbiAgICAgICAgZGVzYyA9IEF0b20gSS5lbXB0eTtcbiAgICAgICAgc2Vuc29yX2NhY2hlID0gTm9uZTtcbiAgICAgICAgY2FjaGU7XG4gICAgICB9XG5cbiAgICBsZXQgYXRvbSBpbWcgOiB0ID1cbiAgICAgIHtcbiAgICAgICAgdyA9IDAuO1xuICAgICAgICBoID0gMC47XG4gICAgICAgIHN3ID0gMC47XG4gICAgICAgIHNoID0gMC47XG4gICAgICAgIGZvY3VzID0gRm9jdXMuZW1wdHk7XG4gICAgICAgIGZsYWdzID0gZmxhZ3Nfbm9uZTtcbiAgICAgICAgZGVzYyA9IEF0b20gaW1nO1xuICAgICAgICBzZW5zb3JfY2FjaGUgPSBOb25lO1xuICAgICAgICBjYWNoZTtcbiAgICAgIH1cblxuICAgICgqIGxldCBzcGFjZV8xXzAgPSBhdG9tIChJLnZvaWQgMSAwKVxuICAgICAgIGxldCBzcGFjZV8wXzEgPSBhdG9tIChJLnZvaWQgMCAxKVxuICAgICAgIGxldCBzcGFjZV8xXzEgPSBhdG9tIChJLnZvaWQgMSAxKVxuXG4gICAgICAgbGV0IHNwYWNlIHggeSA9XG4gICAgICAgICBtYXRjaCAoeCwgeSkgd2l0aFxuICAgICAgICAgfCAwLCAwIC0+IGVtcHR5XG4gICAgICAgICB8IDEsIDAgLT4gc3BhY2VfMV8wXG4gICAgICAgICB8IDAsIDEgLT4gc3BhY2VfMF8xXG4gICAgICAgICB8IDEsIDEgLT4gc3BhY2VfMV8xXG4gICAgICAgICAgfCBfIC0+IGF0b20gKEkudm9pZCB4IHkpICopXG5cbiAgICBsZXQgc3BhY2UgeCB5ID0gYXRvbSAoSS52b2lkIHggeSlcbiAgICBsZXQgbW91c2VfYXJlYSBmIHQgOiB0ID0geyB0IHdpdGggZGVzYyA9IE1vdXNlX2hhbmRsZXIgKHQsIGYpIH1cblxuICAgIGxldCBrZXlib2FyZF9hcmVhID9mb2N1cyBmICh0IDogdCkgOiB0ID1cbiAgICAgIGxldCBmb2N1cyA9XG4gICAgICAgIG1hdGNoIGZvY3VzIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IHQuZm9jdXNcbiAgICAgICAgfCBTb21lIGZvY3VzIC0+IEZvY3VzLm1lcmdlIGZvY3VzIHQuZm9jdXNcbiAgICAgIGluXG4gICAgICB7IHQgd2l0aCBkZXNjID0gRm9jdXNfYXJlYSAodCwgZik7IGZvY3VzIH1cblxuICAgIGxldCBzaGlmdF9hcmVhIHggeSB0IDogdCA9IHsgdCB3aXRoIGRlc2MgPSBTaGlmdF9hcmVhICh0LCB4LCB5KSB9XG5cbiAgICBsZXQgc2l6ZV9zZW5zb3IgaGFuZGxlciB0IDogdCA9XG4gICAgICB7IHQgd2l0aCBkZXNjID0gU2l6ZV9zZW5zb3IgKHQsIGhhbmRsZXIpIH1cblxuICAgIGxldCB0cmFuc2llbnRfc2Vuc29yIGZyYW1lX3NlbnNvciB0ID1cbiAgICAgIHtcbiAgICAgICAgdCB3aXRoXG4gICAgICAgIGRlc2MgPSBUcmFuc2llbnRfc2Vuc29yICh0LCBmcmFtZV9zZW5zb3IpO1xuICAgICAgICBmbGFncyA9IHQuZmxhZ3MgbG9yIGZsYWdfdHJhbnNpZW50X3NlbnNvcjtcbiAgICAgIH1cblxuICAgIGxldCBwZXJtYW5lbnRfc2Vuc29yIGZyYW1lX3NlbnNvciB0ID1cbiAgICAgIHtcbiAgICAgICAgdCB3aXRoXG4gICAgICAgIGRlc2MgPSBQZXJtYW5lbnRfc2Vuc29yICh0LCBmcmFtZV9zZW5zb3IpO1xuICAgICAgICBmbGFncyA9IHQuZmxhZ3MgbG9yIGZsYWdfcGVybWFuZW50X3NlbnNvcjtcbiAgICAgIH1cblxuICAgIGxldCBwcmVwYXJlX2dyYXZpdHkgPSBmdW5jdGlvblxuICAgICAgfCBOb25lLCBOb25lIC0+IEdyYXZpdHkuKHBhaXIgZGVmYXVsdCBkZWZhdWx0KVxuICAgICAgfCBTb21lIGcsIE5vbmUgfCBOb25lLCBTb21lIGcgLT4gR3Jhdml0eS4ocGFpciBnIGcpXG4gICAgICB8IFNvbWUgcGFkLCBTb21lIGNyb3AgLT4gR3Jhdml0eS4ocGFpciBwYWQgY3JvcClcblxuICAgIGxldCByZXNpemUgP3cgP2ggP3N3ID9zaCA/cGFkID9jcm9wID8oYXR0ciA9IEEuZW1wdHkpICh0IDogdCkgOiB0XG4gICAgICAgID1cbiAgICAgIGxldCBfID0gYXR0ciBpblxuICAgICAgbGV0IHdvLCBobyA9ICh3LCBoKSBpblxuICAgICAgbGV0IGcgPSBwcmVwYXJlX2dyYXZpdHkgKHBhZCwgY3JvcCkgaW5cbiAgICAgIG1hdGNoICgodywgdC53KSwgKGgsIHQuaCksIChzdywgdC5zdyksIChzaCwgdC5zaCkpIHdpdGhcbiAgICAgIHwgKCAoU29tZSB3LCBfIHwgXywgdyksXG4gICAgICAgICAgKFNvbWUgaCwgXyB8IF8sIGgpLFxuICAgICAgICAgIChTb21lIHN3LCBfIHwgXywgc3cpLFxuICAgICAgICAgIChTb21lIHNoLCBfIHwgXywgc2gpICkgLT5cbiAgICAgICAgICB7IHQgd2l0aCB3OyBoOyBzdzsgc2g7IGRlc2MgPSBSZXNpemUgKHQsIHdvLCBobywgZykgfVxuXG4gICAgbGV0IHJlc2l6ZV90byAobCA6IGxheW91dF9zcGVjKSA/cGFkID9jcm9wID8oYXR0ciA9IEEuZW1wdHkpIHQgOiB0XG4gICAgICAgID1cbiAgICAgIGxldCBfID0gYXR0ciBpblxuICAgICAgbGV0IGcgPSBwcmVwYXJlX2dyYXZpdHkgKHBhZCwgY3JvcCkgaW5cbiAgICAgIHsgdCB3aXRoIGRlc2MgPSBSZXNpemUgKHQsIFNvbWUgbC53LCBTb21lIGwuaCwgZykgfVxuXG4gICAgbGV0IGV2ZW50X2ZpbHRlciA/Zm9jdXMgZiAodCA6IHQpIDogdCA9XG4gICAgICBsZXQgZm9jdXMgPVxuICAgICAgICBtYXRjaCBmb2N1cyB3aXRoIE5vbmUgLT4gdC5mb2N1cyB8IFNvbWUgZm9jdXMgLT4gZm9jdXNcbiAgICAgIGluXG4gICAgICB7IHQgd2l0aCBkZXNjID0gRXZlbnRfZmlsdGVyICh0LCBmKTsgZm9jdXMgfVxuXG4gICAgbGV0IGpvaW5feCAoYSA6IHQpIChiIDogdCkgPVxuICAgICAge1xuICAgICAgICBlbXB0eSB3aXRoXG4gICAgICAgIHcgPSBhLncgKy4gYi53O1xuICAgICAgICBoID0gbWF4IGEuaCBiLmg7XG4gICAgICAgIHN3ID0gYS5zdyArLiBiLnN3O1xuICAgICAgICBzaCA9IG1heCBhLnNoIGIuc2g7XG4gICAgICAgIGZsYWdzID0gYS5mbGFncyBsb3IgYi5mbGFncztcbiAgICAgICAgZm9jdXMgPSBGb2N1cy5tZXJnZSBhLmZvY3VzIGIuZm9jdXM7XG4gICAgICAgIGRlc2MgPSBYIChhLCBiKTtcbiAgICAgIH1cblxuICAgIGxldCBqb2luX3kgKGEgOiB0KSAoYiA6IHQpID1cbiAgICAgIHtcbiAgICAgICAgZW1wdHkgd2l0aFxuICAgICAgICB3ID0gbWF4IGEudyBiLnc7XG4gICAgICAgIGggPSBhLmggKy4gYi5oO1xuICAgICAgICBzdyA9IG1heCBhLnN3IGIuc3c7XG4gICAgICAgIHNoID0gYS5zaCArLiBiLnNoO1xuICAgICAgICBmbGFncyA9IGEuZmxhZ3MgbG9yIGIuZmxhZ3M7XG4gICAgICAgIGZvY3VzID0gRm9jdXMubWVyZ2UgYS5mb2N1cyBiLmZvY3VzO1xuICAgICAgICBkZXNjID0gWSAoYSwgYik7XG4gICAgICB9XG5cbiAgICBsZXQgam9pbl96IChhIDogdCkgKGIgOiB0KSA9XG4gICAgICB7XG4gICAgICAgIGVtcHR5IHdpdGhcbiAgICAgICAgdyA9IG1heCBhLncgYi53O1xuICAgICAgICBoID0gbWF4IGEuaCBiLmg7XG4gICAgICAgIHN3ID0gbWF4IGEuc3cgYi5zdztcbiAgICAgICAgc2ggPSBtYXggYS5zaCBiLnNoO1xuICAgICAgICBmbGFncyA9IGEuZmxhZ3MgbG9yIGIuZmxhZ3M7XG4gICAgICAgIGZvY3VzID0gRm9jdXMubWVyZ2UgYS5mb2N1cyBiLmZvY3VzO1xuICAgICAgICBkZXNjID0gWiAoYSwgYik7XG4gICAgICB9XG5cbiAgICBsZXQgcGFja194ID0gKGVtcHR5LCBqb2luX3gpXG4gICAgbGV0IHBhY2tfeSA9IChlbXB0eSwgam9pbl95KVxuICAgIGxldCBwYWNrX3ogPSAoZW1wdHksIGpvaW5feilcbiAgICBsZXQgaGNhdCB4cyA9IEx3ZF91dGlscy5yZWR1Y2UgcGFja194IHhzXG4gICAgbGV0IHZjYXQgeHMgPSBMd2RfdXRpbHMucmVkdWNlIHBhY2tfeSB4c1xuICAgIGxldCB6Y2F0IHhzID0gTHdkX3V0aWxzLnJlZHVjZSBwYWNrX3ogeHNcbiAgICBsZXQgaGFzX2ZvY3VzIHQgPSBGb2N1cy5oYXNfZm9jdXMgdC5mb2N1c1xuXG4gICAgbGV0IHJlYyBwcCBwcGYgdCA9XG4gICAgICBGLnBmIHBwZiBcIkBbPGhvdj5mb2N1cz0lYSAlYUBdXCIgRm9jdXMucHBfc3RhdHVzIHQuZm9jdXMgcHBfZGVzY1xuICAgICAgICB0LmRlc2NcblxuICAgIGFuZCBwcF9kZXNjIHBwZiA9IGZ1bmN0aW9uXG4gICAgICB8IEF0b20gYSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIkF0b20gQFs8aG92PiglYSlAXVwiXG4gICAgICAgICAgICAoSS5EcmF3LnBwID9hdHRyOk5vbmUpIGFcbiAgICAgIHwgU2l6ZV9zZW5zb3IgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiU2l6ZV9zZW5zb3IgKCVhLCBfKVwiIHBwIGRlc2NcbiAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAoZGVzYywgXykgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJUcmFuc2llbnRfc2Vuc29yICglYSxAIF8pXCIgcHAgZGVzY1xuICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yIChkZXNjLCBfKSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIlBlcm1hbmVudF9zZW5zb3IgKCVhLEAgXylcIiBwcCBkZXNjXG4gICAgICB8IFJlc2l6ZSAoZGVzYywgeCwgeSwgX2dyYXZpdHkpIC0+XG4gICAgICAgICAgRi5wZiBwcGYgXCJSZXNpemUgKCVhLCAlYSxAIF8sQCAlYSlcIiAoRi5vcHRpb24gcHBfZmxvYXQpIHhcbiAgICAgICAgICAgIChGLm9wdGlvbiBwcF9mbG9hdCkgeVxuICAgICAgICAgICAgKCogR3Jhdml0eS5wcCAoR3Jhdml0eS5wMSBncmF2aXR5KSBHcmF2aXR5LnBwXG4gICAgICAgICAgICAgICAoR3Jhdml0eS5wMiBncmF2aXR5KSAqKVxuICAgICAgICAgICAgcHAgZGVzY1xuICAgICAgfCBNb3VzZV9oYW5kbGVyIChuLCBfKSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVhXCIgKCpcIk1vdXNlICglYSxAIF8pXCIqKSBwcCBuXG4gICAgICB8IEZvY3VzX2FyZWEgKG4sIF8pIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIkZvY3VzICglYSxAIF8pXCIgcHAgblxuICAgICAgfCBTaGlmdF9hcmVhIChuLCB4LCB5KSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIlNoaWZ0ICglLjBmLCUuMGYsJWEpXCIgeCB5IHBwIG5cbiAgICAgIHwgRXZlbnRfZmlsdGVyIChuLCBfKSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIkV2ZW50ICglYSxAIF8pXCIgcHAgblxuICAgICAgfCBYIChhLCBiKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJYIChAWyVhLEAgJWFAXSlcIiBwcCBhIHBwIGJcbiAgICAgIHwgWSAoYSwgYikgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiWSAoQFslYSxAICVhQF0pXCIgcHAgYSBwcCBiXG4gICAgICB8IFogKGEsIGIpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIlogKEBbJWEsQCAlYUBdKVwiIHBwIGEgcHAgYlxuXG4gICAgbGV0IGl0ZXIgZiB1aSA9XG4gICAgICBtYXRjaCB1aS5kZXNjIHdpdGhcbiAgICAgIHwgQXRvbSBfIC0+ICgpXG4gICAgICB8IFNpemVfc2Vuc29yICh1LCBfKVxuICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh1LCBfKVxuICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh1LCBfKVxuICAgICAgfCBSZXNpemUgKHUsIF8sIF8sIF8pXG4gICAgICB8IE1vdXNlX2hhbmRsZXIgKHUsIF8pXG4gICAgICB8IEZvY3VzX2FyZWEgKHUsIF8pXG4gICAgICB8IFNoaWZ0X2FyZWEgKHUsIF8sIF8pXG4gICAgICB8IEV2ZW50X2ZpbHRlciAodSwgXykgLT5cbiAgICAgICAgICBmIHVcbiAgICAgIHwgWCAodTEsIHUyKSB8IFkgKHUxLCB1MikgfCBaICh1MSwgdTIpIC0+XG4gICAgICAgICAgZiB1MTtcbiAgICAgICAgICBmIHUyXG4gIGVuZFxuXG4gIHR5cGUgdWkgPSBVaS50XG5cbiAgbW9kdWxlIFJlbmRlcmVyID0gc3RydWN0XG4gICAgb3BlbiBVaVxuXG4gICAgdHlwZSBzaXplID0gR2cucDJcblxuICAgIHR5cGUgZ3JhYl9mdW5jdGlvbiA9XG4gICAgICAoeDpmbG9hdCAtPiB5OmZsb2F0IC0+IHVuaXQpICogKHg6ZmxvYXQgLT4geTpmbG9hdCAtPiB1bml0KVxuXG4gICAgdHlwZSB0ID0ge1xuICAgICAgdmcgOiBOVkcudDtcbiAgICAgIG11dGFibGUgc2l6ZSA6IHNpemU7XG4gICAgICBtdXRhYmxlIHZpZXcgOiB1aTtcbiAgICAgIG11dGFibGUgbW91c2VfZ3JhYiA6IGdyYWJfZnVuY3Rpb24gb3B0aW9uO1xuICAgIH1cblxuICAgIGxldCBtYWtlIHZnICgpID1cbiAgICAgIHsgdmc7IG1vdXNlX2dyYWIgPSBOb25lOyBzaXplID0gUDIubzsgdmlldyA9IFVpLmVtcHR5IH1cblxuICAgIGxldCBzaXplIHQgPSB0LnNpemVcblxuICAgIGxldCBzb2x2ZV9mb2N1cyAodWkgOiB1aSkgaSA9XG4gICAgICBsZXQgcmVjIGF1eCB1aSA9XG4gICAgICAgIG1hdGNoIHVpLmZvY3VzIHdpdGhcbiAgICAgICAgfCBGb2N1cy5FbXB0eSB8IEZvY3VzLkhhbmRsZSAoMCwgXykgLT4gKClcbiAgICAgICAgfCBGb2N1cy5IYW5kbGUgKGknLCBfKSB3aGVuIGkgPSBpJyAtPiAoKVxuICAgICAgICB8IEZvY3VzLkhhbmRsZSAoXywgdikgLT4gTHdkLnNldCB2IDBcbiAgICAgICAgfCBGb2N1cy5Db25mbGljdCBfIC0+IGl0ZXIgYXV4IHVpXG4gICAgICBpblxuICAgICAgYXV4IHVpXG5cbiAgICBsZXQgc3BsaXQgfmEgfnNhIH5iIH5zYiB0b3RhbCA9XG4gICAgICBsZXQgc3RyZXRjaCA9IHNhICsuIHNiIGluXG4gICAgICBsZXQgZmxleCA9IHRvdGFsIC0uIGEgLS4gYiBpblxuICAgICAgbGV0IGEnLCBiJyA9XG4gICAgICAgIGlmIHN0cmV0Y2ggPiAwLiAmJiBmbGV4ID4gMC4gdGhlblxuICAgICAgICAgIGxldCByYXRpbyA9XG4gICAgICAgICAgICBpZiBzYSA+IHNiIHRoZW4gZmxleCAqLiBzYSAvLiBzdHJldGNoXG4gICAgICAgICAgICBlbHNlIGZsZXggLS4gKGZsZXggKi4gc2IgLy4gc3RyZXRjaClcbiAgICAgICAgICBpblxuICAgICAgICAgIChhICsuIHJhdGlvLCBiICsuIGZsZXggLS4gcmF0aW8pXG4gICAgICAgIGVsc2UgKGEsIGIpXG4gICAgICBpblxuICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgbVxuICAgICAgICAgICAgICAgICBcInNwbGl0OiBhPSUuMWYgc2E9JS4xZiBiPSUuMWYgc2I9JS4xZiB0b3RhbD0lLjFmICglLjFmLCBcXFxuICAgICAgICAgICAgICAgICAgJS4xZilcIlxuICAgICAgICAgICAgICAgICBhIHNhIGIgc2IgdG90YWwgYScgYicpOyAqKVxuICAgICAgKGEnLCBiJylcblxuICAgIGxldCBwYWNrIH5maXhlZCB+c3RyZXRjaCB0b3RhbCBnMSBnMiA9XG4gICAgICBsZXQgdjEsIHYyID1cbiAgICAgICAgbGV0IGZsZXggPSB0b3RhbCAtLiBmaXhlZCBpblxuICAgICAgICBpZiBzdHJldGNoID4gMC4gJiYgZmxleCA+IDAuIHRoZW4gKDAuLCB0b3RhbClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCBncmF2aXR5ID0gaWYgZmxleCA+PSAwLiB0aGVuIGcxIGVsc2UgZzIgaW5cbiAgICAgICAgICBtYXRjaCBncmF2aXR5IHdpdGhcbiAgICAgICAgICB8IGBOZWdhdGl2ZSAtPiAoMC4sIGZpeGVkKVxuICAgICAgICAgIHwgYE5ldXRyYWwgLT4gKGZsZXggLy4gMi4sIGZpeGVkKVxuICAgICAgICAgIHwgYFBvc2l0aXZlIC0+IChmbGV4LCBmaXhlZClcbiAgICAgIGluXG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgIG0gXCJwYWNrIGZpeGVkPSUuMWYgc3RyZXRjaD0lLjFmIHRvdGFsPSUuMWYgKCUuMWYsICUuMWYpXCJcbiAgICAgICAgICAgICBmaXhlZCBzdHJldGNoIHRvdGFsIHYxIHYyKTsgKilcbiAgICAgICh2MSwgdjIpXG5cbiAgICBsZXQgaGFzX3RyYW5zaWVudF9zZW5zb3IgZmxhZ3MgPVxuICAgICAgZmxhZ3MgbGFuZCBmbGFnX3RyYW5zaWVudF9zZW5zb3IgPD4gMFxuXG4gICAgbGV0IGhhc19wZXJtYW5lbnRfc2Vuc29yIGZsYWdzID1cbiAgICAgIGZsYWdzIGxhbmQgZmxhZ19wZXJtYW5lbnRfc2Vuc29yIDw+IDBcblxuICAgIGxldCByZWMgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggKHVpIDogdWkpID1cbiAgICAgIGlmXG4gICAgICAgIGhhc190cmFuc2llbnRfc2Vuc29yIHVpLmZsYWdzXG4gICAgICAgIHx8IGhhc19wZXJtYW5lbnRfc2Vuc29yIHVpLmZsYWdzXG4gICAgICAgICAgICYmXG4gICAgICAgICAgIG1hdGNoIHVpLnNlbnNvcl9jYWNoZSB3aXRoXG4gICAgICAgICAgIHwgTm9uZSAtPiBmYWxzZVxuICAgICAgICAgICB8IFNvbWUgKG94Jywgb3knLCBzdycsIHNoJykgLT5cbiAgICAgICAgICAgICAgIG94ID0gb3gnICYmIG95ID0gb3knICYmIHN3ID0gc3cnICYmIHNoID0gc2gnXG4gICAgICB0aGVuIChcbiAgICAgICAgdWkuZmxhZ3MgPC0gdWkuZmxhZ3MgbGFuZCBsbm90IGZsYWdfdHJhbnNpZW50X3NlbnNvcjtcbiAgICAgICAgaWYgaGFzX3Blcm1hbmVudF9zZW5zb3IgdWkuZmxhZ3MgdGhlblxuICAgICAgICAgIHVpLnNlbnNvcl9jYWNoZSA8LSBTb21lIChveCwgb3ksIHN3LCBzaCk7XG4gICAgICAgIG1hdGNoIHVpLmRlc2Mgd2l0aFxuICAgICAgICB8IEF0b20gXyAtPiAoKVxuICAgICAgICB8IFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIF8pXG4gICAgICAgIHwgRm9jdXNfYXJlYSAodCwgXylcbiAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF8pIC0+XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCB0XG4gICAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodCwgc2Vuc29yKSAtPlxuICAgICAgICAgICAgdWkuZGVzYyA8LSB0LmRlc2M7XG4gICAgICAgICAgICBsZXQgc2Vuc29yID0gc2Vuc29yIH54Om94IH55Om95IH53OnN3IH5oOnNoIGluXG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCB0O1xuICAgICAgICAgICAgc2Vuc29yICgpXG4gICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgc2Vuc29yKSAtPlxuICAgICAgICAgICAgbGV0IHNlbnNvciA9IHNlbnNvciB+eDpveCB+eTpveSB+dzpzdyB+aDpzaCBpblxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggdDtcbiAgICAgICAgICAgIHNlbnNvciAoKVxuICAgICAgICB8IFJlc2l6ZSAodCwgeCwgeSwgZykgLT5cbiAgICAgICAgICAgIGxldCBvcGVuIEdyYXZpdHkgaW5cbiAgICAgICAgICAgIGxldCBkeCwgcncgPVxuICAgICAgICAgICAgICBwYWNrXG4gICAgICAgICAgICAgICAgfmZpeGVkOihPcHRpb24udmFsdWUgeCB+ZGVmYXVsdDp0LncpXG4gICAgICAgICAgICAgICAgfnN0cmV0Y2g6dC5zdyBzd1xuICAgICAgICAgICAgICAgIChoIChwMSBnKSlcbiAgICAgICAgICAgICAgICAoaCAocDIgZykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgbGV0IGR5LCByaCA9XG4gICAgICAgICAgICAgIHBhY2tcbiAgICAgICAgICAgICAgICB+Zml4ZWQ6KE9wdGlvbi52YWx1ZSB5IH5kZWZhdWx0OnQuaClcbiAgICAgICAgICAgICAgICB+c3RyZXRjaDp0LnNoIHNoXG4gICAgICAgICAgICAgICAgKHYgKHAxIGcpKVxuICAgICAgICAgICAgICAgICh2IChwMiBnKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyAob3ggKy4gZHgpIChveSArLiBkeSkgcncgcmggdFxuICAgICAgICB8IFNoaWZ0X2FyZWEgKHQsIHN4LCBzeSkgLT5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIChveCAtLiBzeCkgKG95IC0uIHN5KSBzdyBzaCB0XG4gICAgICAgIHwgWCAoYSwgYikgLT5cbiAgICAgICAgICAgIGxldCBhdywgYncgPSBzcGxpdCB+YTphLncgfnNhOmEuc3cgfmI6Yi53IH5zYjpiLnN3IHN3IGluXG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBhdyBzaCBhO1xuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgKG94ICsuIGF3KSBveSBidyBzaCBiXG4gICAgICAgIHwgWSAoYSwgYikgLT5cbiAgICAgICAgICAgIGxldCBhaCwgYmggPSBzcGxpdCB+YTphLmggfnNhOmEuc2ggfmI6Yi5oIH5zYjpiLnNoIHNoIGluXG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBhaCBhO1xuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggKG95ICsuIGFoKSBzdyBiaCBiXG4gICAgICAgIHwgWiAoYSwgYikgLT5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoIGE7XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCBiKVxuXG4gICAgbGV0IHVwZGF0ZV9mb2N1cyB1aSA9XG4gICAgICBtYXRjaCB1aS5mb2N1cyB3aXRoXG4gICAgICB8IEZvY3VzLkVtcHR5IHwgRm9jdXMuSGFuZGxlIF8gLT4gKClcbiAgICAgIHwgRm9jdXMuQ29uZmxpY3QgaSAtPiBzb2x2ZV9mb2N1cyB1aSBpXG5cbiAgICBsZXQgcmVjIHRfc2l6ZV9kZXNjX29mX3QgdmcgKHNpemUgOiBib3gyKSAodWkgOiBVaS50IGRlc2MpID1cbiAgICAgIG1hdGNoIHVpIHdpdGhcbiAgICAgIHwgQXRvbSBfIGFzIGEgLT4gYVxuICAgICAgfCBTaXplX3NlbnNvciAodCwgdikgLT4gU2l6ZV9zZW5zb3IgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgdikgLT5cbiAgICAgICAgICBNb3VzZV9oYW5kbGVyICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IEZvY3VzX2FyZWEgKHQsIHYpIC0+IEZvY3VzX2FyZWEgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCB2KSAtPiBFdmVudF9maWx0ZXIgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodCwgdikgLT5cbiAgICAgICAgICBUcmFuc2llbnRfc2Vuc29yICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHQsIHYpIC0+XG4gICAgICAgICAgUGVybWFuZW50X3NlbnNvciAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBSZXNpemUgKHQsIHcsIGgsIGcyKSAtPlxuICAgICAgICAgIFJlc2l6ZVxuICAgICAgICAgICAgKCB0X3NpemVfb2ZfdCB2Z1xuICAgICAgICAgICAgICAgIChCb3gyLnYgKEJveDIubyBzaXplKVxuICAgICAgICAgICAgICAgICAgIChWMi52XG4gICAgICAgICAgICAgICAgICAgICAgKE9wdGlvbi52YWx1ZSB3IH5kZWZhdWx0OihCb3gyLncgc2l6ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgKE9wdGlvbi52YWx1ZSBoIH5kZWZhdWx0OihCb3gyLmggc2l6ZSkpKSlcbiAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICB3LFxuICAgICAgICAgICAgICBoLFxuICAgICAgICAgICAgICBnMiApXG4gICAgICB8IFNoaWZ0X2FyZWEgKHQsIHN4LCBzeSkgLT5cbiAgICAgICAgICBTaGlmdF9hcmVhXG4gICAgICAgICAgICAoIHRfc2l6ZV9vZl90IHZnXG4gICAgICAgICAgICAgICAgKEJveDIub2ZfcHRzXG4gICAgICAgICAgICAgICAgICAgVjIuKEJveDIubyBzaXplIC0gb2ZfdHVwbGUgKHN4LCBzeSkpXG4gICAgICAgICAgICAgICAgICAgKEJveDIubWF4IHNpemUpKVxuICAgICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgIHN4LFxuICAgICAgICAgICAgICBzeSApXG4gICAgICB8IFggKGEsIGIpIC0+XG4gICAgICAgICAgbGV0IGEnID0gdF9zaXplX29mX3Qgdmcgc2l6ZSBhIGluXG4gICAgICAgICAgbGV0IGInID1cbiAgICAgICAgICAgIHRfc2l6ZV9vZl90IHZnXG4gICAgICAgICAgICAgIChCb3gyLm9mX3B0c1xuICAgICAgICAgICAgICAgICBWMi4odiAoQm94Mi5taW54IHNpemUgKy4gYScudykgKEJveDIubWlueSBzaXplKSlcbiAgICAgICAgICAgICAgICAgKEJveDIubWF4IHNpemUpKVxuICAgICAgICAgICAgICBiXG4gICAgICAgICAgaW5cbiAgICAgICAgICBYIChhJywgYicpXG4gICAgICB8IFkgKGEsIGIpIC0+XG4gICAgICAgICAgbGV0IGEnID0gdF9zaXplX29mX3Qgdmcgc2l6ZSBhIGluXG4gICAgICAgICAgbGV0IGInID1cbiAgICAgICAgICAgIHRfc2l6ZV9vZl90IHZnXG4gICAgICAgICAgICAgIChCb3gyLm9mX3B0c1xuICAgICAgICAgICAgICAgICBWMi4odiAoQm94Mi5taW54IHNpemUpIChCb3gyLm1pbnkgc2l6ZSArLiBhJy5oKSlcbiAgICAgICAgICAgICAgICAgKEJveDIubWF4IHNpemUpKVxuICAgICAgICAgICAgICBiXG4gICAgICAgICAgaW5cbiAgICAgICAgICBZIChhJywgYicpXG4gICAgICB8IFogKGEsIGIpIC0+IFogKHRfc2l6ZV9vZl90IHZnIHNpemUgYSwgdF9zaXplX29mX3Qgdmcgc2l6ZSBiKVxuXG4gICAgYW5kIHRfc2l6ZV9vZl90IHZnIChzaXplIDogYm94MikgKHVpIDogVWkudCkgOiB1aSA9XG4gICAgICBsZXQgZGVzYyA9IHRfc2l6ZV9kZXNjX29mX3Qgdmcgc2l6ZSB1aS5kZXNjIGluXG4gICAgICBsZXQgdywgaCA9XG4gICAgICAgIG1hdGNoIGRlc2Mgd2l0aFxuICAgICAgICB8IEF0b20gaSAtPiBWMi50b190dXBsZSAoSS5zaXplIHZnIChCb3gyLm8gc2l6ZSkgaSlcbiAgICAgICAgfCBTaXplX3NlbnNvciAodCwgXylcbiAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgICB8IEZvY3VzX2FyZWEgKHQsIF8pXG4gICAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCBfKVxuICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIF8pXG4gICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgXykgLT5cbiAgICAgICAgICAgICh0LncsIHQuaClcbiAgICAgICAgfCBSZXNpemUgKHQsIHcsIGgsIF8pIC0+XG4gICAgICAgICAgICAoT3B0aW9uLnZhbHVlIHcgfmRlZmF1bHQ6dC53LCBPcHRpb24udmFsdWUgaCB+ZGVmYXVsdDp0LmgpXG4gICAgICAgIHwgU2hpZnRfYXJlYSAodCwgeCwgeSkgLT4gKHQudyArLiB4LCB0LmggKy4geSlcbiAgICAgICAgfCBYIChhLCBiKSAtPiAoYS53ICsuIGIudywgbWF4IGEuaCBiLmgpXG4gICAgICAgIHwgWSAoYSwgYikgLT4gKG1heCBhLncgYi53LCBhLmggKy4gYi5oKVxuICAgICAgICB8IFogKGEsIGIpIC0+IChtYXggYS53IGIudywgbWF4IGEuaCBiLmgpXG4gICAgICBpblxuICAgICAgeyB1aSB3aXRoIHc7IGg7IGRlc2M7IHNlbnNvcl9jYWNoZSA9IE5vbmU7IGNhY2hlIH1cblxuICAgIGxldCB1cGRhdGUgdCBzaXplICh1aSA6IFVpLnQpID1cbiAgICAgIHQuc2l6ZSA8LSBzaXplO1xuICAgICAgdC52aWV3IDwtIHRfc2l6ZV9vZl90IHQudmcgKEJveDIudiBWMi56ZXJvIHNpemUpIHVpO1xuICAgICAgdXBkYXRlX3NlbnNvcnMgMC4gMC4gKFAyLnggc2l6ZSkgKFAyLnkgc2l6ZSkgdC52aWV3O1xuICAgICAgdXBkYXRlX2ZvY3VzIHQudmlld1xuXG4gICAgbGV0IGRpc3BhdGNoX21vdXNlIHN0IHggeSBidG4gdyBoIHQgPVxuICAgICAgbGV0IGhhbmRsZSBveCBveSBmID1cbiAgICAgICAgbWF0Y2ggZiB+eDooeCAtLiBveCkgfnk6KHkgLS4gb3kpIGJ0biB3aXRoXG4gICAgICAgIHwgYFVuaGFuZGxlZCAtPiBmYWxzZVxuICAgICAgICB8IGBIYW5kbGVkIC0+IHRydWVcbiAgICAgICAgfCBgR3JhYiBmIC0+XG4gICAgICAgICAgICBzdC5tb3VzZV9ncmFiIDwtIFNvbWUgZjtcbiAgICAgICAgICAgIHRydWVcbiAgICAgIGluXG4gICAgICBsZXQgcmVjIGF1eCBveCBveSBzdyBzaCB0ID1cbiAgICAgICAgbWF0Y2ggdC5kZXNjIHdpdGhcbiAgICAgICAgfCBBdG9tIF8gLT4gZmFsc2VcbiAgICAgICAgfCBYIChhLCBiKSAtPlxuICAgICAgICAgICAgbGV0IGF3LCBidyA9IHNwbGl0IH5hOmEudyB+c2E6YS5zdyB+YjpiLncgfnNiOmIuc3cgc3cgaW5cbiAgICAgICAgICAgIGlmIHggLS4gb3ggPCBhdyB0aGVuIGF1eCBveCBveSBhdyBzaCBhXG4gICAgICAgICAgICBlbHNlIGF1eCAob3ggKy4gYXcpIG95IGJ3IHNoIGJcbiAgICAgICAgfCBZIChhLCBiKSAtPlxuICAgICAgICAgICAgbGV0IGFoLCBiaCA9IHNwbGl0IH5hOmEuaCB+c2E6YS5zaCB+YjpiLmggfnNiOmIuc2ggc2ggaW5cbiAgICAgICAgICAgIGlmIHkgLS4gb3kgPCBhaCB0aGVuIGF1eCBveCBveSBzdyBhaCBhXG4gICAgICAgICAgICBlbHNlIGF1eCBveCAob3kgKy4gYWgpIHN3IGJoIGJcbiAgICAgICAgfCBaIChhLCBiKSAtPiBhdXggb3ggb3kgc3cgc2ggYiB8fCBhdXggb3ggb3kgc3cgc2ggYVxuICAgICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIGYpIC0+XG4gICAgICAgICAgICBsZXQgX29mZnNldHgsIHJ3ID1cbiAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC53IH5zdHJldGNoOnQuc3cgc3cgYE5lZ2F0aXZlIGBOZWdhdGl2ZVxuICAgICAgICAgICAgYW5kIF9vZmZzZXR5LCByaCA9XG4gICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQuaCB+c3RyZXRjaDp0LnNoIHNoIGBOZWdhdGl2ZSBgTmVnYXRpdmVcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBhc3NlcnQgKF9vZmZzZXR4ID0gMC4gJiYgX29mZnNldHkgPSAwLik7XG4gICAgICAgICAgICAoeCAtLiBveCA+PSAwLlxuICAgICAgICAgICAgJiYgeCAtLiBveCA8PSByd1xuICAgICAgICAgICAgJiYgeSAtLiBveSA+PSAwLlxuICAgICAgICAgICAgJiYgeSAtLiBveSA8PSByaClcbiAgICAgICAgICAgICYmIChhdXggb3ggb3kgc3cgc2ggdCB8fCBoYW5kbGUgb3ggb3kgZilcbiAgICAgICAgfCBTaXplX3NlbnNvciAoZGVzYywgXylcbiAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yIChkZXNjLCBfKVxuICAgICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKGRlc2MsIF8pXG4gICAgICAgIHwgRm9jdXNfYXJlYSAoZGVzYywgXykgLT5cbiAgICAgICAgICAgIGF1eCBveCBveSBzdyBzaCBkZXNjXG4gICAgICAgIHwgU2hpZnRfYXJlYSAoZGVzYywgc3gsIHN5KSAtPlxuICAgICAgICAgICAgYXV4IChveCAtLiBzeCkgKG95IC0uIHN5KSBzdyBzaCBkZXNjXG4gICAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBnKSAtPlxuICAgICAgICAgICAgbGV0IG9wZW4gR3Jhdml0eSBpblxuICAgICAgICAgICAgbGV0IGR4LCBydyA9XG4gICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQudyB+c3RyZXRjaDp0LnN3IHN3IChoIChwMSBnKSkgKGggKHAyIGcpKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGxldCBkeSwgcmggPVxuICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LmggfnN0cmV0Y2g6dC5zaCBzaCAodiAocDEgZykpICh2IChwMiBnKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBhdXggKG94ICsuIGR4KSAob3kgKy4gZHkpIHJ3IHJoIHRcbiAgICAgICAgfCBFdmVudF9maWx0ZXIgKG4sIGYpIC0+IChcbiAgICAgICAgICAgIG1hdGNoIGYgKGBNb3VzZSAoYFByZXNzIGJ0biwgKHgsIHkpLCBbXSkpIHdpdGhcbiAgICAgICAgICAgIHwgYEhhbmRsZWQgLT4gdHJ1ZVxuICAgICAgICAgICAgfCBgVW5oYW5kbGVkIC0+IGF1eCBveCBveSBzdyBzaCBuKVxuICAgICAgaW5cbiAgICAgIGF1eCAwLiAwLiB3IGggdFxuXG4gICAgbGV0IHJlbGVhc2VfZ3JhYiBzdCB4IHkgPVxuICAgICAgbWF0Y2ggc3QubW91c2VfZ3JhYiB3aXRoXG4gICAgICB8IE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSAoXywgcmVsZWFzZSkgLT5cbiAgICAgICAgICBzdC5tb3VzZV9ncmFiIDwtIE5vbmU7XG4gICAgICAgICAgcmVsZWFzZSB+eCB+eVxuXG4gICAgbGV0IHJlc2l6ZV9jYW52YXMgdmcgcncgcmggaW1hZ2UgPVxuICAgICAgbGV0IHcsIGggPSBWMi50b190dXBsZSBAQCBJLnNpemUgdmcgVjIuemVybyBpbWFnZSBpblxuICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICBtIFwicmVzaXplX2NhbnZhczogdz0lLjFmIHJ3PSUuMWYgaD0lLjFmIHJoPSUuMWZcIiB3IHJ3IGggcmgpOyAqKVxuICAgICAgaWYgdyA8PiBydyB8fCBoIDw+IHJoIHRoZW4gSS5wYWQgfnI6KHJ3IC0uIHcpIH5iOihyaCAtLiBoKSBpbWFnZVxuICAgICAgZWxzZSBpbWFnZVxuXG4gICAgbGV0IHJlc2l6ZV9jYW52YXMyIHZnIG94IG95IHJ3IHJoIGltYWdlID1cbiAgICAgIGxldCB3LCBoID0gVjIudG9fdHVwbGUgQEAgSS5zaXplIHZnIFYyLnplcm8gaW1hZ2UgaW5cbiAgICAgIEkucGFkIH5sOm94IH50Om95IH5yOihydyAtLiB3IC0uIG94KSB+YjoocmggLS4gaCAtLiBveSkgaW1hZ2VcblxuICAgIGxldCBzYW1lX3NpemUgdmcgdyBoIGltYWdlID1cbiAgICAgIFYyLihlcXVhbCAob2ZfdHVwbGUgKHcsIGgpKSAoSS5zaXplIHZnIFYyLnplcm8gaW1hZ2UpKVxuXG4gICAgbGV0IGRpc3BhdGNoX21vdXNlIHQgKGV2ZW50LCAoeCwgeSksIF9tb2RzKSA9XG4gICAgICBpZlxuICAgICAgICBtYXRjaCBldmVudCB3aXRoXG4gICAgICAgIHwgYFByZXNzIGJ0biAtPlxuICAgICAgICAgICAgcmVsZWFzZV9ncmFiIHQgeCB5O1xuICAgICAgICAgICAgbGV0IHcsIGggPSBWMi50b190dXBsZSB0LnNpemUgaW5cbiAgICAgICAgICAgIGRpc3BhdGNoX21vdXNlIHQgeCB5IGJ0biB3IGggdC52aWV3XG4gICAgICAgIHwgYERyYWcgLT4gKFxuICAgICAgICAgICAgbWF0Y2ggdC5tb3VzZV9ncmFiIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBmYWxzZVxuICAgICAgICAgICAgfCBTb21lIChkcmFnLCBfKSAtPlxuICAgICAgICAgICAgICAgIGRyYWcgfnggfnk7XG4gICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgfCBgUmVsZWFzZSAtPlxuICAgICAgICAgICAgcmVsZWFzZV9ncmFiIHQgeCB5O1xuICAgICAgICAgICAgdHJ1ZVxuICAgICAgdGhlbiBgSGFuZGxlZFxuICAgICAgZWxzZSBgVW5oYW5kbGVkXG5cbiAgICBsZXQgcmVjIHJlbmRlcl9ub2RlIHZnICh2eDEgOiBzaXplMSkgKHZ5MSA6IHNpemUxKSAodngyIDogc2l6ZTEpXG4gICAgICAgICh2eTIgOiBzaXplMSkgKHN3IDogc2l6ZTEpIChzaCA6IHNpemUxKSAodCA6IHVpKSA6IGNhY2hlID1cbiAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgbVxuICAgICAgICAgICAgIFwicmVuZGVyX25vZGUgdngxPSUuMGZAIHZ5MT0lLjBmQCB2eDI9JS4wZkAgdnkyPSUuMGZAIFxcXG4gICAgICAgICAgICAgIHN3PSUuMGZAIHNoPSUuMGZAIEBbJWFAXVwiXG4gICAgICAgICAgICAgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIHBwIHQpOyAqKVxuICAgICAgaWZcbiAgICAgICAgbGV0IGNhY2hlID0gdC5jYWNoZSBpblxuICAgICAgICB2eDEgPj0gSW50ZXJ2YWwuZnN0IGNhY2hlLnZ4XG4gICAgICAgICYmIHZ5MSA+PSBJbnRlcnZhbC5mc3QgY2FjaGUudnlcbiAgICAgICAgJiYgdngyIDw9IEludGVydmFsLnNuZCBjYWNoZS52eFxuICAgICAgICAmJiB2eTIgPD0gSW50ZXJ2YWwuc25kIGNhY2hlLnZ5XG4gICAgICB0aGVuIHQuY2FjaGVcbiAgICAgIGVsc2UgaWYgdngyIDwgMC4gfHwgdnkyIDwgMC4gfHwgc3cgPCB2eDEgfHwgc2ggPCB2eTEgdGhlblxuICAgICAgICB7XG4gICAgICAgICAgdnggPSBJbnRlcnZhbC5tYWtlIHZ4MSB2eDI7XG4gICAgICAgICAgdnkgPSBJbnRlcnZhbC5tYWtlIHZ5MSB2eTI7XG4gICAgICAgICAgaW1hZ2UgPSBJLnZvaWQgc3cgc2g7XG4gICAgICAgIH1cbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IGNhY2hlID1cbiAgICAgICAgICBtYXRjaCB0LmRlc2Mgd2l0aFxuICAgICAgICAgIHwgQXRvbSBpbWFnZSAtPlxuICAgICAgICAgICAgICBsZXQgaW1hZ2UgPVxuICAgICAgICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyB0LmZvY3VzIHRoZW4gKFxuICAgICAgICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwicmVuZGVyX25vZGUgQXRvbSBoYXNfZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICBJLmF0dHIgQS5jbGlja2FibGUgaW1hZ2UpXG4gICAgICAgICAgICAgICAgZWxzZSBpbWFnZVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdnggPSBJbnRlcnZhbC5tYWtlIDAuIHN3O1xuICAgICAgICAgICAgICAgIHZ5ID0gSW50ZXJ2YWwubWFrZSAwLiBzaDtcbiAgICAgICAgICAgICAgICBpbWFnZSA9IHJlc2l6ZV9jYW52YXMgdmcgc3cgc2ggaW1hZ2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB8IFNpemVfc2Vuc29yIChkZXNjLCBoYW5kbGVyKSAtPlxuICAgICAgICAgICAgICBoYW5kbGVyIH53OnN3IH5oOnNoO1xuICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggZGVzY1xuICAgICAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAoZGVzYywgXykgfCBQZXJtYW5lbnRfc2Vuc29yIChkZXNjLCBfKSAtPlxuICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggZGVzY1xuICAgICAgICAgIHwgRm9jdXNfYXJlYSAoZGVzYywgXykgfCBNb3VzZV9oYW5kbGVyIChkZXNjLCBfKSAtPlxuICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggZGVzY1xuICAgICAgICAgIHwgU2hpZnRfYXJlYSAodCcsIHN4LCBzeSkgLT5cbiAgICAgICAgICAgICAgbGV0IGNhY2hlID1cbiAgICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyAodngxICsuIHN4KSAodnkxICsuIHN5KSAodngyICsuIHN4KVxuICAgICAgICAgICAgICAgICAgKHZ5MiArLiBzeSkgKHN4ICsuIHN3KSAoc3kgKy4gc2gpIHQnXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCB2eCA9IEludGVydmFsLm1ha2UgdngxIHZ4MlxuICAgICAgICAgICAgICBhbmQgdnkgPSBJbnRlcnZhbC5tYWtlIHZ5MSB2eTIgaW5cbiAgICAgICAgICAgICAgbGV0IGltYWdlID1cbiAgICAgICAgICAgICAgICByZXNpemVfY2FudmFzIHZnIHN3IHNoXG4gICAgICAgICAgICAgICAgICAoSS5jcm9wIH5sOnN4IH50OnN5IGNhY2hlLmltYWdlKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICB7IHZ4OyB2eTsgaW1hZ2UgfVxuICAgICAgICAgIHwgWCAoYSwgYikgLT5cbiAgICAgICAgICAgICAgbGV0IGF3LCBidyA9IHNwbGl0IH5hOmEudyB+c2E6YS5zdyB+YjpiLncgfnNiOmIuc3cgc3cgaW5cbiAgICAgICAgICAgICAgbGV0IGNhID0gcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIGF3IHNoIGEgaW5cbiAgICAgICAgICAgICAgbGV0IGNiID1cbiAgICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyAodngxIC0uIGF3KSB2eTEgKHZ4MiAtLiBhdykgdnkyIGJ3IHNoIGJcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IHZ4ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudngpXG4gICAgICAgICAgICAgICAgICAgICAoSW50ZXJ2YWwuZnN0IGNiLnZ4ICsuIGF3KSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eClcbiAgICAgICAgICAgICAgICAgICAgIChJbnRlcnZhbC5zbmQgY2IudnggKy4gYXcpKVxuICAgICAgICAgICAgICBhbmQgdnkgPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eSkgKEludGVydmFsLmZzdCBjYi52eSkpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudnkpIChJbnRlcnZhbC5zbmQgY2IudnkpKVxuICAgICAgICAgICAgICBhbmQgaW1hZ2UgPVxuICAgICAgICAgICAgICAgIHJlc2l6ZV9jYW52YXMgdmcgc3cgc2ggSS4oY2EuaW1hZ2UgPHw+IGNiLmltYWdlKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICB7IHZ4OyB2eTsgaW1hZ2UgfVxuICAgICAgICAgIHwgWSAoYSwgYikgLT5cbiAgICAgICAgICAgICAgbGV0IGFoLCBiaCA9IHNwbGl0IH5hOmEuaCB+c2E6YS5zaCB+YjpiLmggfnNiOmIuc2ggc2ggaW5cbiAgICAgICAgICAgICAgbGV0IGNhID0gcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IGFoIGEgaW5cbiAgICAgICAgICAgICAgbGV0IGNiID1cbiAgICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyB2eDEgKHZ5MSAtLiBhaCkgdngyICh2eTIgLS4gYWgpIHN3IGJoIGJcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IHZ4ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudngpIChJbnRlcnZhbC5mc3QgY2IudngpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ4KSAoSW50ZXJ2YWwuc25kIGNiLnZ4KSlcbiAgICAgICAgICAgICAgYW5kIHZ5ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudnkpXG4gICAgICAgICAgICAgICAgICAgICAoSW50ZXJ2YWwuZnN0IGNiLnZ5ICsuIGFoKSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eSlcbiAgICAgICAgICAgICAgICAgICAgIChJbnRlcnZhbC5zbmQgY2IudnkgKy4gYWgpKVxuICAgICAgICAgICAgICBhbmQgaW1hZ2UgPVxuICAgICAgICAgICAgICAgIHJlc2l6ZV9jYW52YXMgdmcgc3cgc2ggKEkuKCA8LT4gKSBjYS5pbWFnZSBjYi5pbWFnZSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgeyB2eDsgdnk7IGltYWdlIH1cbiAgICAgICAgICB8IFogKGEsIGIpIC0+XG4gICAgICAgICAgICAgIGxldCBjYSA9IHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBhIGluXG4gICAgICAgICAgICAgIGxldCBjYiA9IHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBiIGluXG4gICAgICAgICAgICAgIGxldCB2eCA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ4KSAoSW50ZXJ2YWwuZnN0IGNiLnZ4KSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eCkgKEludGVydmFsLnNuZCBjYi52eCkpXG4gICAgICAgICAgICAgIGFuZCB2eSA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ5KSAoSW50ZXJ2YWwuZnN0IGNiLnZ5KSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eSkgKEludGVydmFsLnNuZCBjYi52eSkpXG4gICAgICAgICAgICAgIGFuZCBpbWFnZSA9XG4gICAgICAgICAgICAgICAgcmVzaXplX2NhbnZhcyB2ZyBzdyBzaCAoSS4oIDwvPiApIGNiLmltYWdlIGNhLmltYWdlKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICB7IHZ4OyB2eTsgaW1hZ2UgfVxuICAgICAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBnKSAtPlxuICAgICAgICAgICAgICBsZXQgb3BlbiBHcmF2aXR5IGluXG4gICAgICAgICAgICAgIGxldCBkeCwgcncgPVxuICAgICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQudyB+c3RyZXRjaDp0LnN3IHN3IChoIChwMSBnKSkgKGggKHAyIGcpKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgZHksIHJoID1cbiAgICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LmggfnN0cmV0Y2g6dC5zaCBzaCAodiAocDEgZykpICh2IChwMiBnKSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGMgPVxuICAgICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnICh2eDEgLS4gZHgpICh2eTEgLS4gZHkpICh2eDIgLS4gZHgpXG4gICAgICAgICAgICAgICAgICAodnkyIC0uIGR5KSBydyByaCB0XG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBpbWFnZSA9IHJlc2l6ZV9jYW52YXMyIHZnIGR4IGR5IHN3IHNoIGMuaW1hZ2UgaW5cbiAgICAgICAgICAgICAgbGV0IHZ4ID0gSW50ZXJ2YWwuc2hpZnQgYy52eCBkeCBpblxuICAgICAgICAgICAgICBsZXQgdnkgPSBJbnRlcnZhbC5zaGlmdCBjLnZ5IGR5IGluXG4gICAgICAgICAgICAgIHsgdng7IHZ5OyBpbWFnZSB9XG4gICAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF9mKSAtPlxuICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggdFxuICAgICAgICBpblxuICAgICAgICB0LmNhY2hlIDwtIGNhY2hlO1xuICAgICAgICBjYWNoZVxuXG4gICAgbGV0IGltYWdlIHZnIHsgc2l6ZTsgdmlldzsgXyB9ID1cbiAgICAgIGxldCB3LCBoID0gVjIudG9fdHVwbGUgc2l6ZSBpblxuICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiUmVuZGVyZXIuaW1hZ2Ugdmlldz0lYSBcIiBVaS5wcCB2aWV3KTtcbiAgICAgIChyZW5kZXJfbm9kZSB2ZyAwLiAwLiB3IGggdyBoIHZpZXcpLmltYWdlXG5cbiAgICBsZXQgZGlzcGF0Y2hfcmF3X2tleSBzdCBrZXkgPVxuICAgICAgbGV0IHJlYyBpdGVyIChzdCA6IHVpIGxpc3QpIDogWz4gYFVuaGFuZGxlZCBdID1cbiAgICAgICAgbWF0Y2ggc3Qgd2l0aFxuICAgICAgICB8IFtdIC0+IGBVbmhhbmRsZWRcbiAgICAgICAgfCB1aSA6OiB0bCAtPiAoXG4gICAgICAgICAgICBtYXRjaCB1aS5kZXNjIHdpdGhcbiAgICAgICAgICAgIHwgQXRvbSBfIC0+IGl0ZXIgdGxcbiAgICAgICAgICAgIHwgWCAoYSwgYikgfCBZIChhLCBiKSB8IFogKGEsIGIpIC0+XG4gICAgICAgICAgICAgICAgKCogVHJ5IGxlZnQvdG9wIG1vc3QgYnJhbmNoIGZpcnN0ICopXG4gICAgICAgICAgICAgICAgbGV0IHN0JyA9XG4gICAgICAgICAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgYi5mb2N1cyB0aGVuIGIgOjogdGxcbiAgICAgICAgICAgICAgICAgIGVsc2UgYSA6OiBiIDo6IHRsXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICBpdGVyIHN0J1xuICAgICAgICAgICAgfCBGb2N1c19hcmVhICh0LCBmKSAtPiAoXG4gICAgICAgICAgICAgICAgbWF0Y2ggaXRlciBbIHQgXSB3aXRoXG4gICAgICAgICAgICAgICAgfCBgSGFuZGxlZCAtPiBgSGFuZGxlZFxuICAgICAgICAgICAgICAgIHwgYFVuaGFuZGxlZCAtPiAoXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGYga2V5IHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBgSGFuZGxlZCAtPiBgSGFuZGxlZFxuICAgICAgICAgICAgICAgICAgICB8IGBVbmhhbmRsZWQgLT4gaXRlciB0bCkpXG4gICAgICAgICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIF8pXG4gICAgICAgICAgICB8IFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgICAgfCBTaGlmdF9hcmVhICh0LCBfLCBfKVxuICAgICAgICAgICAgfCBSZXNpemUgKHQsIF8sIF8sIF8pIC0+XG4gICAgICAgICAgICAgICAgaXRlciAodCA6OiB0bClcbiAgICAgICAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCBmKSAtPiAoXG4gICAgICAgICAgICAgICAgbWF0Y2ggZiAoYEtleSBrZXkpIHdpdGhcbiAgICAgICAgICAgICAgICB8IGBVbmhhbmRsZWQgLT4gaXRlciAodCA6OiB0bClcbiAgICAgICAgICAgICAgICB8IGBIYW5kbGVkIC0+IGBIYW5kbGVkKSlcbiAgICAgIGluXG4gICAgICBpdGVyIFsgc3QudmlldyBdXG5cbiAgICBleGNlcHRpb24gQWNxdWlyZWRfZm9jdXNcblxuICAgIGxldCBncmFiX2ZvY3VzIHVpID1cbiAgICAgIGxldCByZWMgYXV4IHVpID1cbiAgICAgICAgbWF0Y2ggdWkuZm9jdXMgd2l0aFxuICAgICAgICB8IEZvY3VzLkVtcHR5IC0+ICgpXG4gICAgICAgIHwgRm9jdXMuSGFuZGxlIChfLCB2KSAtPlxuICAgICAgICAgICAgRm9jdXMucmVxdWVzdF92YXIgdjtcbiAgICAgICAgICAgIHJhaXNlIEFjcXVpcmVkX2ZvY3VzXG4gICAgICAgIHwgRm9jdXMuQ29uZmxpY3QgXyAtPiBpdGVyIGF1eCB1aVxuICAgICAgaW5cbiAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcImdyYWJfZm9jdXNcIik7XG4gICAgICB0cnlcbiAgICAgICAgYXV4IHVpO1xuICAgICAgICBmYWxzZVxuICAgICAgd2l0aCBBY3F1aXJlZF9mb2N1cyAtPlxuICAgICAgICBMb2cud2FybiAoZnVuIG0gLT4gbSBcImdyYWJfZm9jdXMgQWNxdWlyZWRfZm9jdXMgLT4gdHJ1ZVwiKTtcbiAgICAgICAgdHJ1ZVxuXG4gICAgbGV0IHJlYyBkaXNwYXRjaF9mb2N1cyB0IGRpciA9XG4gICAgICBtYXRjaCB0LmRlc2Mgd2l0aFxuICAgICAgfCBBdG9tIF8gLT4gZmFsc2VcbiAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgIHwgU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIF8pXG4gICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHQsIF8pXG4gICAgICB8IFNoaWZ0X2FyZWEgKHQsIF8sIF8pXG4gICAgICB8IFJlc2l6ZSAodCwgXywgXywgXylcbiAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCBfKSAtPlxuICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIHQgZGlyXG4gICAgICB8IEZvY3VzX2FyZWEgKHQnLCBfKSAtPlxuICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyB0Jy5mb2N1cyB0aGVuIChcbiAgICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgICBtXG4gICAgICAgICAgICAgICAgICBcImRpc3BhdGNoX2ZvY3VzIEZvY3VzX2FyZWEgaGFzX2ZvY3VzIHQnLmZvY3VzID0gXFxcbiAgICAgICAgICAgICAgICAgICB0cnVlXCIpO1xuXG4gICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyB0JyBkaXIgfHwgZ3JhYl9mb2N1cyB0KVxuICAgICAgICAgIGVsc2UgaWYgRm9jdXMuaGFzX2ZvY3VzIHQuZm9jdXMgdGhlbiBmYWxzZVxuICAgICAgICAgIGVsc2UgZ3JhYl9mb2N1cyB0XG4gICAgICB8IFggKGEsIGIpIC0+IChcbiAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgYS5mb2N1cyB0aGVuXG4gICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfHxcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBOZXh0IHwgYFJpZ2h0IC0+IGRpc3BhdGNoX2ZvY3VzIGIgZGlyXG4gICAgICAgICAgICB8IF8gLT4gZmFsc2VcbiAgICAgICAgICBlbHNlIGlmIEZvY3VzLmhhc19mb2N1cyBiLmZvY3VzIHRoZW5cbiAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGIgZGlyXG4gICAgICAgICAgICB8fFxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYFByZXYgfCBgTGVmdCAtPiBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfCBfIC0+IGZhbHNlXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYFByZXYgfCBgTGVmdCB8IGBVcCAtPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGIgZGlyIHx8IGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8IGBOZXh0IHwgYERvd24gfCBgUmlnaHQgLT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBhIGRpciB8fCBkaXNwYXRjaF9mb2N1cyBiIGRpcilcbiAgICAgIHwgWSAoYSwgYikgLT4gKFxuICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBhLmZvY3VzIHRoZW5cbiAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8fFxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYE5leHQgfCBgRG93biAtPiBkaXNwYXRjaF9mb2N1cyBiIGRpclxuICAgICAgICAgICAgfCBfIC0+IGZhbHNlXG4gICAgICAgICAgZWxzZSBpZiBGb2N1cy5oYXNfZm9jdXMgYi5mb2N1cyB0aGVuXG4gICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBiIGRpclxuICAgICAgICAgICAgfHxcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBQcmV2IHwgYFVwIC0+IGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8IF8gLT4gZmFsc2VcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgUHJldiB8IGBVcCAtPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGIgZGlyIHx8IGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8IGBOZXh0IHwgYExlZnQgfCBgRG93biB8IGBSaWdodCAtPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGEgZGlyIHx8IGRpc3BhdGNoX2ZvY3VzIGIgZGlyKVxuICAgICAgfCBaIChhLCBiKSAtPlxuICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBhLmZvY3VzIHRoZW4gZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICBlbHNlIGRpc3BhdGNoX2ZvY3VzIGIgZGlyIHx8IGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG5cbiAgICBsZXQgcmVjIGRpc3BhdGNoX2tleSBzdCBrZXkgPVxuICAgICAgbWF0Y2ggKGRpc3BhdGNoX3Jhd19rZXkgc3Qga2V5LCBrZXkpIHdpdGhcbiAgICAgIHwgYEhhbmRsZWQsIF8gLT4gYEhhbmRsZWRcbiAgICAgIHwgYFVuaGFuZGxlZCwgKGBBcnJvdyBkaXIsIFtdKSAtPlxuICAgICAgICAgIGxldCBkaXIgOiBbIGBEb3duIHwgYExlZnQgfCBgUmlnaHQgfCBgVXAgXSA6PlxuICAgICAgICAgICAgICBbIGBEb3duIHwgYExlZnQgfCBgUmlnaHQgfCBgVXAgfCBgTmV4dCB8IGBQcmV2IF0gPVxuICAgICAgICAgICAgZGlyXG4gICAgICAgICAgaW5cbiAgICAgICAgICBkaXNwYXRjaF9rZXkgc3QgKGBGb2N1cyBkaXIsIFsgYE1ldGEgXSlcbiAgICAgIHwgYFVuaGFuZGxlZCwgKGBUYWIsIG1vZHMpIC0+XG4gICAgICAgICAgbGV0IGRpciA9IGlmIExpc3QubWVtIGBTaGlmdCBtb2RzIHRoZW4gYFByZXYgZWxzZSBgTmV4dCBpblxuICAgICAgICAgIGRpc3BhdGNoX2tleSBzdCAoYEZvY3VzIGRpciwgbW9kcylcbiAgICAgIHwgYFVuaGFuZGxlZCwgKGBGb2N1cyBkaXIsIF8pIC0+XG4gICAgICAgICAgbGV0IHIgPSBkaXNwYXRjaF9mb2N1cyBzdC52aWV3IGRpciBpblxuICAgICAgICAgIChpZiByIHRoZW4gTG9nLmRlYnVnIGVsc2UgTG9nLndhcm4pIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtIFwiUmVuZGVyZXIuZGlzcGF0Y2hfZm9jdXMga2V5OiVhIC0+ICViXCIgcHBfa2V5IGtleSByKTtcbiAgICAgICAgICBpZiByIHRoZW4gYEhhbmRsZWQgZWxzZSBgVW5oYW5kbGVkXG4gICAgICB8IGBVbmhhbmRsZWQsIF8gLT4gYFVuaGFuZGxlZFxuXG4gICAgbGV0IGRpc3BhdGNoX2V2ZW50IHQgPSBmdW5jdGlvblxuICAgICAgfCBgS2V5IGtleSAtPiBkaXNwYXRjaF9rZXkgdCBrZXlcbiAgICAgIHwgYE1vdXNlIG1vdXNlIC0+IGRpc3BhdGNoX21vdXNlIHQgbW91c2VcbiAgICAgIHwgYFBhc3RlIF8gLT4gYFVuaGFuZGxlZFxuICBlbmRcbmVuZFxuXG5tb2R1bGUgTm90dHVpX2x3dCA9IHN0cnVjdFxuICBvcGVuIE5vdHR1aVxuXG4gICgqIHN0b2xlbiBmcm9tIGxldC1kZWYvbHdkL2xpYi9ub3R0dWkvbm90dHVpLm1sKiBldGMuLi4gKilcbiAgbGV0IGNvcHlfdW50aWwgcXVpdCB+ZiBpbnB1dCA9XG4gICAgbGV0IHF1aXQgPSBMd3QubWFwIChmdW4gKCkgLT4gTm9uZSkgcXVpdCBpblxuICAgIGxldCBzdHJlYW0sIHB1c2ggPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICAgIGxldCByZWMgYXV4ICgpID1cbiAgICAgIEx3dC5iaW5kIChMd3QuY2hvb3NlIFsgcXVpdDsgTHd0X3N0cmVhbS5wZWVrIGlucHV0IF0pXG4gICAgICBAQCBmdW4gcmVzdWx0IC0+XG4gICAgICBtYXRjaCByZXN1bHQgd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgcHVzaCBOb25lO1xuICAgICAgICAgIEx3dC5yZXR1cm5fdW5pdFxuICAgICAgfCBTb21lIHggLT5cbiAgICAgICAgICBwdXNoIChTb21lIChmIHgpKTtcbiAgICAgICAgICBMd3QuYmluZCAoTHd0X3N0cmVhbS5qdW5rIGlucHV0KSBhdXhcbiAgICBpblxuICAgIEx3dC5hc3luYyBhdXg7XG4gICAgc3RyZWFtXG5cbiAgbGV0IHJlbmRlciB2ZyA/cXVpdCB+c2l6ZSBldmVudHMgZG9jID1cbiAgICBsZXQgcmVuZGVyZXIgPSBSZW5kZXJlci5tYWtlIHZnICgpIGluXG4gICAgbGV0IHJlZnJlc2hfc3RyZWFtLCBwdXNoX3JlZnJlc2ggPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICAgIGxldCByb290ID1cbiAgICAgIEx3ZC5vYnNlcnZlXG4gICAgICAgIH5vbl9pbnZhbGlkYXRlOihmdW4gXyAtPlxuICAgICAgICAgIGlmIG5vdCAoTHd0X3N0cmVhbS5pc19jbG9zZWQgcmVmcmVzaF9zdHJlYW0pIHRoZW5cbiAgICAgICAgICAgIHB1c2hfcmVmcmVzaCAoU29tZSAoKSkpXG4gICAgICAgIGRvY1xuICAgIGluXG4gICAgbGV0IHF1aXQsIGRvX3F1aXQgPVxuICAgICAgbWF0Y2ggcXVpdCB3aXRoXG4gICAgICB8IFNvbWUgcXVpdCAtPiAocXVpdCwgTm9uZSlcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGxldCB0LCB1ID0gTHd0LndhaXQgKCkgaW5cbiAgICAgICAgICAodCwgU29tZSB1KVxuICAgIGluXG4gICAgbGV0IGV2ZW50cyA9XG4gICAgICBjb3B5X3VudGlsIHF1aXQgZXZlbnRzIH5mOihmdW4gZSAtPlxuICAgICAgICAgIChlXG4gICAgICAgICAgICA6IFsgYFJlc2l6ZSBvZiBfIHwgVWkuZXZlbnQgXVxuICAgICAgICAgICAgOj4gWyBgUmVzaXplIG9mIF8gfCBVaS5ldmVudCBdKSlcbiAgICBpblxuICAgIGxldCBzaXplID0gcmVmIHNpemUgaW5cbiAgICBsZXQgcmVzdWx0LCBwdXNoID0gTHd0X3N0cmVhbS5jcmVhdGUgKCkgaW5cbiAgICBsZXQgcmVmcmVzaCAoKSA9XG4gICAgICAoKiBGSVhNRSBUaGlzIHNob3VsZCB1c2UgW0x3ZC5zYW1wbGVdIHdpdGggcHJvcGVyIHJlbGVhc2UgbWFuYWdlbWVudC4gKilcbiAgICAgIGxldCB1aSA9IEx3ZC5xdWlja19zYW1wbGUgcm9vdCBpblxuICAgICAgUmVuZGVyZXIudXBkYXRlIHJlbmRlcmVyICFzaXplIHVpO1xuICAgICAgcHVzaCAoU29tZSAoUmVuZGVyZXIuaW1hZ2UgdmcgcmVuZGVyZXIpKVxuICAgIGluXG4gICAgcmVmcmVzaCAoKTtcbiAgICBsZXQgcHJvY2Vzc19ldmVudCBlID1cbiAgICAgIG1hdGNoIGUgd2l0aFxuICAgICAgfCBgS2V5IChgVWNoYXIgYywgWyBgTWV0YSBdKSBhcyBldmVudFxuICAgICAgICB3aGVuIFVjaGFyLihlcXVhbCBjIChvZl9jaGFyICdxJykpIC0+IChcbiAgICAgICAgICBtYXRjaCBkb19xdWl0IHdpdGhcbiAgICAgICAgICB8IFNvbWUgdSAtPiBMd3Qud2FrZXVwIHUgKClcbiAgICAgICAgICB8IE5vbmUgLT4gaWdub3JlIChSZW5kZXJlci5kaXNwYXRjaF9ldmVudCByZW5kZXJlciBldmVudCkpXG4gICAgICB8ICNVaS5ldmVudCBhcyBldmVudCAtPiAoXG4gICAgICAgICAgbWF0Y2ggUmVuZGVyZXIuZGlzcGF0Y2hfZXZlbnQgcmVuZGVyZXIgZXZlbnQgd2l0aFxuICAgICAgICAgIHwgYEhhbmRsZWQgLT4gKClcbiAgICAgICAgICB8IGBVbmhhbmRsZWQgLT5cbiAgICAgICAgICAgICAgKCogTG9nLndhcm4gKGZ1biBtIC0+XG4gICAgICAgICAgICAgICAgICBtXG4gICAgICAgICAgICAgICAgICAgIFwiTm90dHVpX2x3dC5yZW5kZXIgcHJvY2Vzc19ldmVudCAjVWkuZXZlbnQgLT4gXFxcbiAgICAgICAgICAgICAgICAgICAgIGBVbmhhbmRsZWRcIikgKilcbiAgICAgICAgICAgICAgKCkpXG4gICAgICB8IGBSZXNpemUgc2l6ZScgLT5cbiAgICAgICAgICBzaXplIDo9IHNpemUnO1xuICAgICAgICAgIHJlZnJlc2ggKClcbiAgICBpblxuICAgIEx3dC5hc3luYyAoZnVuICgpIC0+XG4gICAgICAgIEx3dC5maW5hbGl6ZVxuICAgICAgICAgIChmdW4gKCkgLT4gTHd0X3N0cmVhbS5pdGVyIHByb2Nlc3NfZXZlbnQgZXZlbnRzKVxuICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgIHB1c2ggTm9uZTtcbiAgICAgICAgICAgIEx3dC5yZXR1cm5fdW5pdCkpO1xuICAgIEx3dC5hc3luYyAoZnVuICgpIC0+IEx3dF9zdHJlYW0uaXRlciByZWZyZXNoIHJlZnJlc2hfc3RyZWFtKTtcbiAgICByZXN1bHRcblxuICAoKiBsZXQgcnVuID9xdWl0IGRvYyA9XG4gICAgIGxldCB0ZXJtID0gVGVybS5jcmVhdGUgKCkgaW5cbiAgICAgbGV0IGltYWdlcyA9XG4gICAgICAgcmVuZGVyID9xdWl0IH5zaXplOihUZXJtLnNpemUgdGVybSkgKFRlcm0uZXZlbnRzIHRlcm0pIGRvY1xuICAgICBpblxuICAgICBMd3QuZmluYWxpemVcbiAgICAgICAoZnVuICgpIC0+IEx3dF9zdHJlYW0uaXRlcl9zIChUZXJtLmltYWdlIHRlcm0pIGltYWdlcylcbiAgICAgICAoZnVuICgpIC0+IFRlcm0ucmVsZWFzZSB0ZXJtKSAqKVxuZW5kXG5cbm1vZHVsZSBOb3R0dWlfd2lkZ2V0cyA9IHN0cnVjdFxuICBvcGVuIE5vdHR1aVxuXG4gIGxldCBzdHJpbmcgPyhhdHRyID0gQS5lbXB0eSkgc3RyID0gVWkuYXRvbSAoSS5zdHJpbmcgfmF0dHIgc3RyKVxuICBsZXQgaW50ID9hdHRyIHggPSBzdHJpbmcgP2F0dHIgKHN0cmluZ19vZl9pbnQgeClcbiAgbGV0IGJvb2wgP2F0dHIgeCA9IHN0cmluZyA/YXR0ciAoc3RyaW5nX29mX2Jvb2wgeClcbiAgbGV0IGZsb2F0XyA/YXR0ciB4ID0gc3RyaW5nID9hdHRyIChzdHJpbmdfb2ZfZmxvYXQgeClcbiAgbGV0IHByaW50ZiA/YXR0ciBmbXQgPSBQcmludGYua3NwcmludGYgKHN0cmluZyA/YXR0cikgZm10XG4gIGxldCBmbXQgP2F0dHIgZm10ID0gRm9ybWF0Lmthc3ByaW50ZiAoc3RyaW5nID9hdHRyKSBmbXRcblxuICBsZXQga3ByaW50ZiBrID9hdHRyIGZtdCA9XG4gICAgUHJpbnRmLmtzcHJpbnRmIChmdW4gc3RyIC0+IGsgKHN0cmluZyA/YXR0ciBzdHIpKSBmbXRcblxuICBsZXQga2ZtdCBrID9hdHRyIGZtdCA9XG4gICAgRm9ybWF0Lmthc3ByaW50ZiAoZnVuIHN0ciAtPiBrIChzdHJpbmcgP2F0dHIgc3RyKSkgZm10XG5cbiAgdHlwZSB3aW5kb3dfbWFuYWdlciA9IHtcbiAgICBvdmVybGF5cyA6IHVpIEx3ZC50IEx3ZF90YWJsZS50O1xuICAgIHZpZXcgOiB1aSBMd2QudDtcbiAgfVxuXG4gIGxldCB3aW5kb3dfbWFuYWdlciBiYXNlID1cbiAgICBsZXQgb3ZlcmxheXMgPSBMd2RfdGFibGUubWFrZSAoKSBpblxuICAgIGxldCBjb21wb3NpdGlvbiA9XG4gICAgICBMd2Quam9pblxuICAgICAgICAoTHdkX3RhYmxlLnJlZHVjZSAoTHdkX3V0aWxzLmxpZnRfbW9ub2lkIFVpLnBhY2tfeikgb3ZlcmxheXMpXG4gICAgaW5cbiAgICBsZXQgdmlldyA9XG4gICAgICBMd2QubWFwMiBiYXNlIGNvbXBvc2l0aW9uIH5mOihmdW4gYmFzZSBjb21wb3NpdGUgLT5cbiAgICAgICAgICBVaS5qb2luX3ogYmFzZVxuICAgICAgICAgICAgKFVpLnJlc2l6ZV90byAoVWkubGF5b3V0X3NwZWMgYmFzZSkgY29tcG9zaXRlKSlcbiAgICBpblxuICAgIHsgb3ZlcmxheXM7IHZpZXcgfVxuXG4gIGxldCB3aW5kb3dfbWFuYWdlcl92aWV3IHdtID0gd20udmlld1xuICBsZXQgd2luZG93X21hbmFnZXJfb3ZlcmxheXMgd20gPSB3bS5vdmVybGF5c1xuXG4gIGxldCBtZW51X292ZXJsYXkgd20gZyA/KGR4ID0gMC4pID8oZHkgPSAwLikgYm9keSBhcm91bmQgPVxuICAgIGxldCBzZW5zb3IgfnggfnkgfncgfmggKCkgPVxuICAgICAgbGV0IHJvdyA9IEx3ZF90YWJsZS5hcHBlbmQgKHdpbmRvd19tYW5hZ2VyX292ZXJsYXlzIHdtKSBpblxuICAgICAgbGV0IGhfcGFkID1cbiAgICAgICAgbWF0Y2ggR3Jhdml0eS5oIGcgd2l0aFxuICAgICAgICB8IGBOZWdhdGl2ZSAtPiBVaS5zcGFjZSAoeCArLiBkeCkgMC5cbiAgICAgICAgfCBgTmV1dHJhbCAtPiBVaS5zcGFjZSAoeCArLiBkeCArLiAodyAvLiAyLikpIDAuXG4gICAgICAgIHwgYFBvc2l0aXZlIC0+IFVpLnNwYWNlICh4ICsuIGR4ICsuIHcpIDAuXG4gICAgICBpblxuICAgICAgbGV0IHZfcGFkID1cbiAgICAgICAgbWF0Y2ggR3Jhdml0eS52IGcgd2l0aFxuICAgICAgICB8IGBOZWdhdGl2ZSAtPiBVaS5zcGFjZSAwLiAoeSArLiBkeSlcbiAgICAgICAgfCBgTmV1dHJhbCAtPiBVaS5zcGFjZSAwLiAoeSArLiBkeSArLiAoaCAvLiAyLikpXG4gICAgICAgIHwgYFBvc2l0aXZlIC0+IFVpLnNwYWNlIDAuICh5ICsuIGR5ICsuIGgpXG4gICAgICBpblxuICAgICAgbGV0IHZpZXcgPVxuICAgICAgICBMd2QubWFwIGJvZHkgfmY6KGZ1biBib2R5IC0+XG4gICAgICAgICAgICBsZXQgYm9keSA9XG4gICAgICAgICAgICAgIGxldCBwYWQgPSBVaS5zcGFjZSAxLiAwLiBpblxuICAgICAgICAgICAgICBVaS5qb2luX3ggcGFkIChVaS5qb2luX3ggYm9keSBwYWQpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgbGV0IGJnID1cbiAgICAgICAgICAgICAgVWkucmVzaXplX3RvIChVaS5sYXlvdXRfc3BlYyBib2R5KVxuICAgICAgICAgICAgICAgIH5hdHRyOkEuKGJnIENvbG9yLmxpZ2h0Z3JlZW4pXG4gICAgICAgICAgICAgICAgVWkuZW1wdHlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBsZXQgY2F0Y2hhbGwgPVxuICAgICAgICAgICAgICBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAgICAgICAgKGZ1biB+eDpfIH55Ol8gLT4gZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgICAgICAgICAgICBMd2RfdGFibGUucmVtb3ZlIHJvdztcbiAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICAgICAgICAgICAgfCBfIC0+IGBIYW5kbGVkKVxuICAgICAgICAgICAgICAgIChVaS5yZXNpemUgfnN3OjEuIH5zaDoxLiBVaS5lbXB0eSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBVaS5qb2luX3ogY2F0Y2hhbGwgQEAgVWkuam9pbl95IHZfcGFkIEBAIFVpLmpvaW5feCBoX3BhZFxuICAgICAgICAgICAgQEAgVWkuam9pbl96IGJnIGJvZHkpXG4gICAgICBpblxuICAgICAgTHdkX3RhYmxlLnNldCByb3cgdmlld1xuICAgIGluXG4gICAgVWkudHJhbnNpZW50X3NlbnNvciBzZW5zb3IgYXJvdW5kXG5cbiAgKCogbGV0IG1lbnVfb3ZlcmxheSB3bSA/KGR4ID0gMCkgPyhkeSA9IDApIGhhbmRsZXIgYm9keSA9XG4gICAgIGxldCByZWZyZXNoID0gTHdkLnZhciAoKSBpblxuICAgICBsZXQgY2xpY2tlZCA9IHJlZiBmYWxzZSBpblxuICAgICBMd2QubWFwJyBib2R5IEBAIGZ1biBib2R5IC0+XG4gICAgIGxldCBib2R5ID1cbiAgICAgICBsZXQgcGFkID0gVWkuc3BhY2UgMSAwIGluXG4gICAgICAgVWkuam9pbl94IHBhZCAoVWkuam9pbl94IGJvZHkgcGFkKVxuICAgICBpblxuICAgICBsZXQgYmcgPVxuICAgICAgIFVpLnJlc2l6ZV90byAoVWkubGF5b3V0X3NwZWMgYm9keSlcbiAgICAgICAgIH5iZzpBLihiZyBsaWdodGdyZWVuKVxuICAgICAgICAgVWkuZW1wdHlcbiAgICAgaW5cbiAgICAgbGV0IGNsaWNrX2hhbmRsZXIgfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgIGNsaWNrZWQgOj0gdHJ1ZTtcbiAgICAgICAgICAgTHdkLnNldCByZWZyZXNoICgpO1xuICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgIGluXG4gICAgIGxldCB1aSA9IFVpLm1vdXNlX2FyZWEgY2xpY2tfaGFuZGxlciAoVWkuam9pbl96IGJnIGJvZHkpIGluXG4gICAgIGlmICFjbGlja2VkIHRoZW4gKFxuICAgICAgIGNsaWNrZWQgOj0gZmFsc2U7XG4gICAgICAgbGV0IHNlbnNvciB+eCB+eSB+dzpfIH5oICgpID1cbiAgICAgICAgIGxldCByb3cgPSBMd2RfdGFibGUuYXBwZW5kICh3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyB3bSkgaW5cbiAgICAgICAgIGxldCBoX3BhZCA9IFVpLnNwYWNlICh4ICsgZHgpIDAgaW5cbiAgICAgICAgIGxldCB2X3BhZCA9IFVpLnNwYWNlIDAgKHkgKyBoICsgZHkpIGluXG4gICAgICAgICBsZXQgdmlldyA9XG4gICAgICAgICAgIEx3ZC5tYXAnIChoYW5kbGVyICgpKSBAQCBmdW4gdmlldyAtPlxuICAgICAgICAgICBsZXQgY2F0Y2hhbGwgPVxuICAgICAgICAgICAgIFVpLm1vdXNlX2FyZWFcbiAgICAgICAgICAgICAgIChmdW4gfng6XyB+eTpfIC0+IGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5yZW1vdmUgcm93O1xuICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBfIC0+IGBIYW5kbGVkKVxuICAgICAgICAgICAgICAgKFVpLnJlc2l6ZSB+c3c6MSB+c2g6MSBVaS5lbXB0eSlcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgVWkuam9pbl96IGNhdGNoYWxsIChVaS5qb2luX3kgdl9wYWQgKFVpLmpvaW5feCBoX3BhZCB2aWV3KSlcbiAgICAgICAgIGluXG4gICAgICAgICBMd2RfdGFibGUuc2V0IHJvdyB2aWV3XG4gICAgICAgaW5cbiAgICAgICBVaS50cmFuc2llbnRfc2Vuc29yIHNlbnNvciB1aSlcbiAgICAgZWxzZSB1aSAqKVxuXG4gIGxldCBzY3JvbGxfc3RlcCA9IDcuXG5cbiAgbGV0IHNjcm9sbF9hcmVhID8ob2Zmc2V0ID0gKDAuLCAwLikpIHQgPVxuICAgIGxldCBvZmZzZXQgPSBMd2QudmFyIG9mZnNldCBpblxuICAgIGxldCBzY3JvbGwgZF94IGRfeSA9XG4gICAgICBsZXQgc194LCBzX3kgPSBMd2QucGVlayBvZmZzZXQgaW5cbiAgICAgIGxldCBzX3ggPSBtYXggMC4gKHNfeCArLiBkX3gpIGluXG4gICAgICBsZXQgc195ID0gbWF4IDAuIChzX3kgKy4gZF95KSBpblxuICAgICAgTHdkLnNldCBvZmZzZXQgKHNfeCwgc195KTtcbiAgICAgIGBIYW5kbGVkXG4gICAgaW5cbiAgICBsZXQgZm9jdXNfaGFuZGxlciA9IGZ1bmN0aW9uXG4gICAgICB8IGBBcnJvdyBgTGVmdCwgW10gLT4gc2Nyb2xsICgtLnNjcm9sbF9zdGVwKSAwLlxuICAgICAgfCBgQXJyb3cgYFJpZ2h0LCBbXSAtPiBzY3JvbGwgKCsuc2Nyb2xsX3N0ZXApIDAuXG4gICAgICB8IGBBcnJvdyBgVXAsIFtdIC0+IHNjcm9sbCAwLiAoLS5zY3JvbGxfc3RlcClcbiAgICAgIHwgYEFycm93IGBEb3duLCBbXSAtPiBzY3JvbGwgMC4gKCsuc2Nyb2xsX3N0ZXApXG4gICAgICB8IGBQYWdlIGBVcCwgW10gLT4gc2Nyb2xsIDAuICgtLnNjcm9sbF9zdGVwICouIDguKVxuICAgICAgfCBgUGFnZSBgRG93biwgW10gLT4gc2Nyb2xsIDAuICgrLnNjcm9sbF9zdGVwICouIDguKVxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgICgqIGxldCBzY3JvbGxfaGFuZGxlciB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgICAgfCBgU2Nyb2xsIGBVcCAtPiBzY3JvbGwgMC4gKC0uc2Nyb2xsX3N0ZXApXG4gICAgICAgICB8IGBTY3JvbGwgYERvd24gLT4gc2Nyb2xsIDAuICgrLnNjcm9sbF9zdGVwKVxuICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICAgICBpbiAqKVxuICAgIEx3ZC5tYXAyIHQgKEx3ZC5nZXQgb2Zmc2V0KSB+ZjooZnVuIHQgKHNfeCwgc195KSAtPlxuICAgICAgICB0IHw+IFVpLnNoaWZ0X2FyZWEgc194IHNfeVxuICAgICAgICAoKnw+IFVpLm1vdXNlX2FyZWEgc2Nyb2xsX2hhbmRsZXIqKVxuICAgICAgICB8PiBVaS5rZXlib2FyZF9hcmVhIGZvY3VzX2hhbmRsZXIpXG5cbiAgbGV0IG1haW5fbWVudV9pdGVtIHdtIHRleHQgZiA9XG4gICAgbGV0IHRleHQgPSBzdHJpbmcgfmF0dHI6QS5tZW51X21haW4gKFwiIFwiIF4gdGV4dCBeIFwiIFwiKSBpblxuICAgIGxldCByZWZyZXNoID0gTHdkLnZhciAoKSBpblxuICAgIGxldCBvdmVybGF5ID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IG9uX2NsaWNrIH54Ol8gfnk6XyA9IGZ1bmN0aW9uXG4gICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgb3ZlcmxheSA6PSB0cnVlO1xuICAgICAgICAgIEx3ZC5zZXQgcmVmcmVzaCAoKTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgIEx3ZC5tYXAgKEx3ZC5nZXQgcmVmcmVzaCkgfmY6KGZ1biAoKSAtPlxuICAgICAgICBsZXQgdWkgPSBVaS5tb3VzZV9hcmVhIG9uX2NsaWNrIHRleHQgaW5cbiAgICAgICAgaWYgIW92ZXJsYXkgdGhlbiAoXG4gICAgICAgICAgb3ZlcmxheSA6PSBmYWxzZTtcbiAgICAgICAgICBtZW51X292ZXJsYXkgd21cbiAgICAgICAgICAgIChHcmF2aXR5Lm1ha2Ugfmg6YE5lZ2F0aXZlIH52OmBQb3NpdGl2ZSlcbiAgICAgICAgICAgIChmICgpKSB1aSlcbiAgICAgICAgZWxzZSB1aSlcblxuICBsZXQgc3ViX21lbnVfaXRlbSB3bSB0ZXh0IGYgPVxuICAgIGxldCB0ZXh0ID0gc3RyaW5nIH5hdHRyOkEubWVudV9zdWIgdGV4dCBpblxuICAgIGxldCByZWZyZXNoID0gTHdkLnZhciAoKSBpblxuICAgIGxldCBvdmVybGF5ID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IG9uX2NsaWNrIH54Ol8gfnk6XyA9IGZ1bmN0aW9uXG4gICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgb3ZlcmxheSA6PSB0cnVlO1xuICAgICAgICAgIEx3ZC5zZXQgcmVmcmVzaCAoKTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgIEx3ZC5tYXAgKEx3ZC5nZXQgcmVmcmVzaCkgfmY6KGZ1biAoKSAtPlxuICAgICAgICBsZXQgdWkgPSBVaS5tb3VzZV9hcmVhIG9uX2NsaWNrIHRleHQgaW5cbiAgICAgICAgaWYgIW92ZXJsYXkgdGhlbiAoXG4gICAgICAgICAgb3ZlcmxheSA6PSBmYWxzZTtcbiAgICAgICAgICBtZW51X292ZXJsYXkgd21cbiAgICAgICAgICAgIChHcmF2aXR5Lm1ha2Ugfmg6YFBvc2l0aXZlIH52OmBOZWdhdGl2ZSlcbiAgICAgICAgICAgIChmICgpKSB1aSlcbiAgICAgICAgZWxzZSB1aSlcblxuICBsZXQgc3ViX2VudHJ5IHRleHQgZiA9XG4gICAgbGV0IHRleHQgPSBzdHJpbmcgfmF0dHI6QS5tZW51X3N1YiB0ZXh0IGluXG4gICAgbGV0IG9uX2NsaWNrIH54Ol8gfnk6XyA9IGZ1bmN0aW9uXG4gICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgZiAoKTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgIFVpLm1vdXNlX2FyZWEgb25fY2xpY2sgdGV4dFxuXG4gIHR5cGUgcGFuZV9zdGF0ZSA9XG4gICAgfCBTcGxpdCBvZiB7IHBvcyA6IGZsb2F0OyBtYXggOiBmbG9hdCB9XG4gICAgfCBSZV9zcGxpdCBvZiB7IHBvcyA6IGZsb2F0OyBtYXggOiBmbG9hdDsgYXQgOiBmbG9hdCB9XG5cbiAgbGV0IGhfcGFuZSBsZWZ0IHJpZ2h0ID1cbiAgICBsZXQgc3RhdGVfdmFyID0gTHdkLnZhciAoU3BsaXQgeyBwb3MgPSA1LjsgbWF4ID0gMTAuIH0pIGluXG4gICAgbGV0IHJlbmRlciBzdGF0ZSAobCwgcikgPVxuICAgICAgbGV0IChTcGxpdCB7IHBvczsgbWF4IH0gfCBSZV9zcGxpdCB7IHBvczsgbWF4OyBfIH0pID0gc3RhdGUgaW5cbiAgICAgIGxldCBsID0gVWkucmVzaXplIH53OjAuIH5oOjAuIH5zaDoxLiB+c3c6cG9zIGwgaW5cbiAgICAgIGxldCByID0gVWkucmVzaXplIH53OjAuIH5oOjAuIH5zaDoxLiB+c3c6KG1heCAtLiBwb3MpIHIgaW5cbiAgICAgIGxldCBzcGxpdHRlciA9XG4gICAgICAgIFVpLnJlc2l6ZVxuICAgICAgICAgIH5hdHRyOkEuKGJnIENvbG9yLmxpZ2h0eWVsbG93KVxuICAgICAgICAgIH53OjEuIH5oOjAuIH5zdzowLiB+c2g6MS4gVWkuZW1wdHlcbiAgICAgIGluXG4gICAgICBsZXQgc3BsaXR0ZXIgPVxuICAgICAgICBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAgKGZ1biB+eDpfIH55Ol8gLT4gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgICAgICBgR3JhYlxuICAgICAgICAgICAgICAgICAgKCAoZnVuIH54IH55Ol8gLT5cbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBMd2QucGVlayBzdGF0ZV92YXIgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU3BsaXQgeyBwb3M7IG1heCB9IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0ID0geCB9KVxuICAgICAgICAgICAgICAgICAgICAgIHwgUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgfSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhdCA8PiB4IHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0ID0geCB9KSksXG4gICAgICAgICAgICAgICAgICAgIGZ1biB+eDpfIH55Ol8gLT4gKCkgKVxuICAgICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpXG4gICAgICAgICAgc3BsaXR0ZXJcbiAgICAgIGluXG4gICAgICBsZXQgdWkgPSBVaS5qb2luX3ggbCAoVWkuam9pbl94IHNwbGl0dGVyIHIpIGluXG4gICAgICBsZXQgdWkgPSBVaS5yZXNpemUgfnc6MTAwLiB+aDoxMDAuIH5zdzoxMC4gfnNoOjEwLiB1aSBpblxuICAgICAgbGV0IHVpID1cbiAgICAgICAgbWF0Y2ggc3RhdGUgd2l0aFxuICAgICAgICB8IFNwbGl0IF8gLT4gdWlcbiAgICAgICAgfCBSZV9zcGxpdCB7IGF0OyBfIH0gLT5cbiAgICAgICAgICAgIFVpLnRyYW5zaWVudF9zZW5zb3JcbiAgICAgICAgICAgICAgKGZ1biB+eCB+eTpfIH53IH5oOl8gKCkgLT5cbiAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhciAoU3BsaXQgeyBwb3MgPSBhdCAtLiB4OyBtYXggPSB3IH0pKVxuICAgICAgICAgICAgICB1aVxuICAgICAgaW5cbiAgICAgIHVpXG4gICAgaW5cbiAgICBMd2QubWFwMiB+ZjpyZW5kZXIgKEx3ZC5nZXQgc3RhdGVfdmFyKSAoTHdkLnBhaXIgbGVmdCByaWdodClcblxuICBsZXQgdl9wYW5lIHRvcCBib3QgPVxuICAgIGxldCBzdGF0ZV92YXIgPSBMd2QudmFyIChTcGxpdCB7IHBvcyA9IDUuOyBtYXggPSAxMC4gfSkgaW5cbiAgICBsZXQgcmVuZGVyIHN0YXRlICh0b3AsIGJvdCkgPVxuICAgICAgbGV0IChTcGxpdCB7IHBvczsgbWF4IH0gfCBSZV9zcGxpdCB7IHBvczsgbWF4OyBfIH0pID0gc3RhdGUgaW5cbiAgICAgIGxldCB0b3AgPSBVaS5yZXNpemUgfnc6MC4gfmg6MC4gfnN3OjEuIH5zaDpwb3MgdG9wIGluXG4gICAgICBsZXQgYm90ID0gVWkucmVzaXplIH53OjAuIH5oOjAuIH5zdzoxLiB+c2g6KG1heCAtLiBwb3MpIGJvdCBpblxuICAgICAgbGV0IHNwbGl0dGVyID1cbiAgICAgICAgVWkucmVzaXplXG4gICAgICAgICAgfmF0dHI6QS4oYmcgQ29sb3IubGlnaHR5ZWxsb3cpXG4gICAgICAgICAgfnc6MC4gfmg6MS4gfnN3OjEuIH5zaDowLiBVaS5lbXB0eVxuICAgICAgaW5cbiAgICAgIGxldCBzcGxpdHRlciA9XG4gICAgICAgIFVpLm1vdXNlX2FyZWFcbiAgICAgICAgICAoZnVuIH54Ol8gfnk6XyAtPiBmdW5jdGlvblxuICAgICAgICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICAgICAgIGBHcmFiXG4gICAgICAgICAgICAgICAgICAoIChmdW4gfng6XyB+eSAtPlxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIEx3ZC5wZWVrIHN0YXRlX3ZhciB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgfCBTcGxpdCB7IHBvczsgbWF4IH0gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgPSB5IH0pXG4gICAgICAgICAgICAgICAgICAgICAgfCBSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCB9IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGF0IDw+IHkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgPSB5IH0pKSxcbiAgICAgICAgICAgICAgICAgICAgZnVuIH54Ol8gfnk6XyAtPiAoKSApXG4gICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZClcbiAgICAgICAgICBzcGxpdHRlclxuICAgICAgaW5cbiAgICAgIGxldCB1aSA9IFVpLmpvaW5feSB0b3AgKFVpLmpvaW5feSBzcGxpdHRlciBib3QpIGluXG4gICAgICBsZXQgdWkgPSBVaS5yZXNpemUgfnc6MTAuIH5oOjEwLiB+c3c6MS4gfnNoOjEuIHVpIGluXG4gICAgICBsZXQgdWkgPVxuICAgICAgICBtYXRjaCBzdGF0ZSB3aXRoXG4gICAgICAgIHwgU3BsaXQgXyAtPiB1aVxuICAgICAgICB8IFJlX3NwbGl0IHsgYXQ7IF8gfSAtPlxuICAgICAgICAgICAgVWkudHJhbnNpZW50X3NlbnNvclxuICAgICAgICAgICAgICAoZnVuIH54Ol8gfnkgfnc6XyB+aCAoKSAtPlxuICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyIChTcGxpdCB7IHBvcyA9IGF0IC0uIHk7IG1heCA9IGggfSkpXG4gICAgICAgICAgICAgIHVpXG4gICAgICBpblxuICAgICAgdWlcbiAgICBpblxuICAgIEx3ZC5tYXAyIH5mOnJlbmRlciAoTHdkLmdldCBzdGF0ZV92YXIpIChMd2QucGFpciB0b3AgYm90KVxuXG4gIGxldCBlcV91Y19jIHVjIGMgPSBVY2hhci4oZXF1YWwgdWMgKG9mX2NoYXIgYykpXG5cbiAgbGV0IGVkaXRfZmllbGQgPyhmb2N1cyA9IEZvY3VzLm1ha2UgKCkpID8ob25fY2hhbmdlID0gRnVuLmlkKSBzdGF0ZVxuICAgICAgPVxuICAgIGxldCB1cGRhdGUgZm9jdXNfaCBmb2N1cyAodGV4dCwgcG9zKSA9XG4gICAgICBsZXQgcG9zID0gbWluIChtYXggMCBwb3MpIChTdHJpbmcubGVuZ3RoIHRleHQpIGluXG4gICAgICBsZXQgY29udGVudCA9XG4gICAgICAgIFVpLmF0b20gQEAgSS5oY2F0XG4gICAgICAgIEBAXG4gICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBmb2N1cyB0aGVuXG4gICAgICAgICAgbGV0IGF0dHIgPSBBLmNsaWNrYWJsZSBpblxuICAgICAgICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHRleHQgaW5cbiAgICAgICAgICBpZiBwb3MgPj0gbGVuIHRoZW5cbiAgICAgICAgICAgIFsgSS5zdHJpbmcgfmF0dHIgdGV4dDsgSS5zdHJpbmcgfmF0dHI6QS5jdXJzb3IgXCIgXCIgXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgSS5zdHJpbmcgfmF0dHIgKFN0cmluZy5zdWIgdGV4dCAwIHBvcyk7XG4gICAgICAgICAgICAgIEkuc3RyaW5nIH5hdHRyOkEuY3Vyc29yIChTdHJpbmcuc3ViIHRleHQgcG9zIDEpO1xuICAgICAgICAgICAgICBJLnN0cmluZyB+YXR0clxuICAgICAgICAgICAgICAgIChTdHJpbmcuc3ViIHRleHQgKHBvcyArIDEpIChsZW4gLSBwb3MgLSAxKSk7XG4gICAgICAgICAgICBdXG4gICAgICAgIGVsc2UgWyBJLnN0cmluZyAoaWYgdGV4dCA9IFwiXCIgdGhlbiBcIiBcIiBlbHNlIHRleHQpIF1cbiAgICAgIGluXG4gICAgICBsZXQgaGFuZGxlciBrID1cbiAgICAgICAgbGV0IG9uX2NoYW5nZSBhID1cbiAgICAgICAgICBMd2Quc2V0IHN0YXRlIChvbl9jaGFuZ2UgYSk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgaW5cbiAgICAgICAgKG1hdGNoIGsgd2l0aFxuICAgICAgICB8IGBVY2hhciBjLCBbIGBDdHJsIF0gd2hlbiBVY2hhci4oZXF1YWwgYyAob2ZfY2hhciAnVScpKSAtPlxuICAgICAgICAgICAgb25fY2hhbmdlIChcIlwiLCAwKSAoKiBjbGVhciAqKVxuICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ2snIC0+XG4gICAgICAgICAgICAoKiBUT0RPIHB1dCBraWxsZWQgdGV4dCBpbnRvIGtpbGwtcmluZyAqKVxuICAgICAgICAgICAgaWYgcG9zIDwgU3RyaW5nLmxlbmd0aCB0ZXh0IHRoZW5cbiAgICAgICAgICAgICAgb25fY2hhbmdlIChTdHJpbmcuc3ViIHRleHQgMCBwb3MsIHBvcylcbiAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZCAoKiBraWxsICopXG4gICAgICAgIHwgYEJhY2tzcGFjZSwgW10gLT5cbiAgICAgICAgICAgIGlmIHBvcyA+IDAgdGhlblxuICAgICAgICAgICAgICBsZXQgdGV4dCA9XG4gICAgICAgICAgICAgICAgaWYgcG9zIDwgU3RyaW5nLmxlbmd0aCB0ZXh0IHRoZW5cbiAgICAgICAgICAgICAgICAgIFN0cmluZy5zdWIgdGV4dCAwIChwb3MgLSAxKVxuICAgICAgICAgICAgICAgICAgXiBTdHJpbmcuc3ViIHRleHQgcG9zIChTdHJpbmcubGVuZ3RoIHRleHQgLSBwb3MpXG4gICAgICAgICAgICAgICAgZWxzZSBpZiBTdHJpbmcubGVuZ3RoIHRleHQgPiAwIHRoZW5cbiAgICAgICAgICAgICAgICAgIFN0cmluZy5zdWIgdGV4dCAwIChTdHJpbmcubGVuZ3RoIHRleHQgLSAxKVxuICAgICAgICAgICAgICAgIGVsc2UgdGV4dFxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgcG9zID0gbWF4IDAgKHBvcyAtIDEpIGluXG4gICAgICAgICAgICAgIG9uX2NoYW5nZSAodGV4dCwgcG9zKVxuICAgICAgICAgICAgZWxzZSBgVW5oYW5kbGVkXG4gICAgICAgIHwgYFVjaGFyIGssIFtdIC0+XG4gICAgICAgICAgICBsZXQgayA9IFVjaGFyLnVuc2FmZV90b19jaGFyIGsgaW5cbiAgICAgICAgICAgIGxldCB0ZXh0ID1cbiAgICAgICAgICAgICAgaWYgcG9zIDwgU3RyaW5nLmxlbmd0aCB0ZXh0IHRoZW5cbiAgICAgICAgICAgICAgICBTdHJpbmcuc3ViIHRleHQgMCBwb3MgXiBTdHJpbmcubWFrZSAxIGtcbiAgICAgICAgICAgICAgICBeIFN0cmluZy5zdWIgdGV4dCBwb3MgKFN0cmluZy5sZW5ndGggdGV4dCAtIHBvcylcbiAgICAgICAgICAgICAgZWxzZSB0ZXh0IF4gU3RyaW5nLm1ha2UgMSBrXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgb25fY2hhbmdlICh0ZXh0LCBwb3MgKyAxKVxuICAgICAgICB8IGBFc2NhcGUsIFtdIC0+XG4gICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGZvY3VzX2g7XG4gICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICAoKiB8IGBFbnRlciwgXyAtPlxuICAgICAgICAgICAgb25fc3VibWl0ICh0ZXh0LCBwb3MpO1xuICAgICAgICAgICAgYEhhbmRsZWQgKilcbiAgICAgICAgfCBgQXJyb3cgYExlZnQsIFtdIC0+XG4gICAgICAgICAgICBpZiBwb3MgPiAwIHRoZW4gb25fY2hhbmdlICh0ZXh0LCBwb3MgLSAxKSBlbHNlIGBVbmhhbmRsZWRcbiAgICAgICAgfCBgQXJyb3cgYFJpZ2h0LCBbXSAtPlxuICAgICAgICAgICAgbGV0IHBvcyA9IHBvcyArIDEgaW5cbiAgICAgICAgICAgIGlmIHBvcyA8PSBTdHJpbmcubGVuZ3RoIHRleHQgdGhlbiBvbl9jaGFuZ2UgKHRleHQsIHBvcylcbiAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZFxuICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZClcbiAgICAgICAgfD4gZnVuIHIgLT5cbiAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgbSBcImVkaXRfZmllbGQga2V5Ym9hcmRfYXJlYSBoYW5kbGVyICVhIC0+ICVhXCIgVWkucHBfa2V5IGtcbiAgICAgICAgICAgICAgVWkucHBfbWF5X2hhbmRsZSByKTtcbiAgICAgICAgclxuICAgICAgaW5cbiAgICAgIFVpLmtleWJvYXJkX2FyZWEgfmZvY3VzIGhhbmRsZXIgY29udGVudFxuICAgIGluXG4gICAgbGV0IG5vZGUgPVxuICAgICAgTHdkLm1hcDIgfmY6KHVwZGF0ZSBmb2N1cykgKEZvY3VzLnN0YXR1cyBmb2N1cykgKEx3ZC5nZXQgc3RhdGUpXG4gICAgaW5cbiAgICBub2RlXG4gICgqIGxldCBtb3VzZV9ncmFiICh0ZXh0LCBwb3MpIH54IH55Ol8gPSBmdW5jdGlvblxuICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgaWYgeCA8PiBwb3MgdGhlbiBvbl9jaGFuZ2UgKHRleHQsIHgpO1xuICAgICAgICAgICBOb3R0dWkuRm9jdXMucmVxdWVzdCBmb2N1cztcbiAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgICBpblxuICAgICBMd2QubWFwMiBzdGF0ZSBub2RlIH5mOihmdW4gc3RhdGUgY29udGVudCAtPlxuICAgICAgICAgVWkubW91c2VfYXJlYSAobW91c2VfZ3JhYiBzdGF0ZSkgY29udGVudCAqKVxuXG4gIG9wZW4gTHdkLkluZml4XG5cbiAgdHlwZSBsaW5lID0ge1xuICAgIGZvY3VzIDogRm9jdXMuaGFuZGxlO1xuICAgIHN0YXRlIDogKHN0cmluZyAqIGludCkgTHdkLnZhcjtcbiAgICB1aSA6IFVpLnQgTHdkLnQ7XG4gIH1cblxuICB0eXBlIGxpbmVzID0gbGluZSBMd2RfdGFibGUudFxuXG4gIGxldCBsaW5lX2VtcHR5ICgpID1cbiAgICBsZXQgZm9jdXMgPSBGb2N1cy5tYWtlICgpIGluXG4gICAgbGV0IHN0YXRlID0gTHdkLnZhciAoXCJcIiwgMCkgaW5cbiAgICB7IGZvY3VzOyBzdGF0ZTsgdWkgPSBlZGl0X2ZpZWxkIH5mb2N1cyBzdGF0ZSB9XG5cbiAgbGV0IGxpbmVfbWFrZSA/KGZvY3VzID0gRm9jdXMubWFrZSAoKSkgc3RyID1cbiAgICBsZXQgc3RhdGUgPSBMd2QudmFyIChzdHIsIDApIGluXG4gICAgeyBmb2N1czsgc3RhdGU7IHVpID0gZWRpdF9maWVsZCB+Zm9jdXMgc3RhdGUgfVxuXG4gIGxldCBsaW5lX2FwcGVuZCA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpID9mb2N1cyBzdHIgPVxuICAgIGxldCByb3cgPSBMd2RfdGFibGUuYXBwZW5kIHRhYmxlIGluXG4gICAgTHdkX3RhYmxlLnNldCByb3cgKGxpbmVfbWFrZSA/Zm9jdXMgc3RyKVxuXG4gIGxldCBjb3B5X2xpbmVfY3Vyc29yICh4IDogbGluZSkgKHkgOiBsaW5lKSA9XG4gICAgbGV0IF8sIHhpID0gTHdkLnBlZWsgeC5zdGF0ZSBpblxuICAgIGxldCB5cywgXyA9IEx3ZC5wZWVrIHkuc3RhdGUgaW5cbiAgICBsZXQgeWkgPSBJbnQubWF4IDAgKEludC5taW4geGkgKFN0cmluZy5sZW5ndGggeXMpKSBpblxuICAgIEx3ZC5zZXQgeS5zdGF0ZSAoeXMsIHlpKVxuXG4gIGxldCByb3dfb2ZfY3Vyc29yIGN1cnNvciBmID1cbiAgICBVaS5tYXlfaGFuZGxlIChMd2QucGVlayBjdXJzb3IpIChmdW4gcm93IC0+IGYgcm93KVxuXG4gIGxldCBsaW5lX29mX2N1cnNvciBjdXJzb3JcbiAgICAgIChmIDogbGluZSBMd2RfdGFibGUucm93IC0+IGxpbmUgLT4gVWkubWF5X2hhbmRsZSkgOlxuICAgICAgVWkubWF5X2hhbmRsZSA9XG4gICAgVWkubWF5X2hhbmRsZSAoTHdkLnBlZWsgY3Vyc29yKSAoZnVuIHJvdyAtPlxuICAgICAgICBVaS5tYXlfaGFuZGxlIChMd2RfdGFibGUuZ2V0IHJvdykgKGZ1biBsaW5lIC0+IGYgcm93IGxpbmUpKVxuXG4gIGxldCBjdXJzb3JfbW92ZSBjdXJzb3JcbiAgICAgIChmIDogbGluZSBMd2RfdGFibGUucm93IC0+IGxpbmUgTHdkX3RhYmxlLnJvdyBvcHRpb24pID1cbiAgICBtYXRjaCBMd2QucGVlayBjdXJzb3Igd2l0aFxuICAgIHwgU29tZSBjdXJzb3Jfcm93IC0+IChcbiAgICAgICAgbWF0Y2ggZiBjdXJzb3Jfcm93IHdpdGhcbiAgICAgICAgfCBTb21lIG5ld19yb3cgLT5cbiAgICAgICAgICAgIChtYXRjaCBMd2RfdGFibGUuZ2V0IG5ld19yb3cgd2l0aFxuICAgICAgICAgICAgfCBTb21lIG5ld19saW5lIC0+XG4gICAgICAgICAgICAgICAgY3Vyc29yX3JvdyB8PiBMd2RfdGFibGUuZ2V0XG4gICAgICAgICAgICAgICAgfD4gT3B0aW9uLml0ZXIgKGZ1biBjdXJzb3JfbGluZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBjb3B5X2xpbmVfY3Vyc29yIGN1cnNvcl9saW5lIG5ld19saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGN1cnNvcl9saW5lLmZvY3VzKTtcbiAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lLmZvY3VzXG4gICAgICAgICAgICB8IE5vbmUgLT4gKCkpO1xuICAgICAgICAgICAgTHdkLnNldCBjdXJzb3IgKFNvbWUgbmV3X3Jvdyk7XG4gICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZClcbiAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZFxuXG4gIGxldCBtdWx0aWZpZWxkX29mX3N0cmluZyA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpIChzIDogc3RyaW5nKSA6XG4gICAgICBsaW5lIEx3ZF90YWJsZS50ID1cbiAgICAoKiBBcHBlbmQgbGluZXMgZnJvbSBzIHRvIHRhYmxlICopXG4gICAgTGlzdC5pdGVyIChsaW5lX2FwcGVuZCB+dGFibGUpIChTdHJpbmcuc3BsaXRfb25fY2hhciAnXFxuJyBzKTtcbiAgICB0YWJsZVxuXG4gIGxldCByZWMgZm9jdXNfY29tcGFyZSBmb2N1cyA6IGludCA9XG4gICAgRm9jdXMuKFxuICAgICAgbWF0Y2ggZm9jdXMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiAwXG4gICAgICB8IEhhbmRsZSAoaSwgXykgLT4gaVxuICAgICAgfCBDb25mbGljdCBpIC0+IGkpXG5cbiAgbGV0IHJlYyBmaW5kX2ZvY3VzICh1aSA6IHVpKSA6IHVpID1cbiAgICBGb2N1cy4oXG4gICAgICBtYXRjaCAodWkuZm9jdXMsIHVpLmRlc2MpIHdpdGhcbiAgICAgIHwgRW1wdHksIF8gLT4gVWkuZW1wdHlcbiAgICAgIHwgSGFuZGxlIChfLCBfKSwgXyAtPiB1aVxuICAgICAgfCBDb25mbGljdCBfLCAoWCAoYSwgYikgfCBZIChhLCBiKSB8IFogKGEsIGIpKSAtPlxuICAgICAgICAgIGlmIGZvY3VzX2NvbXBhcmUgYS5mb2N1cyA8IGZvY3VzX2NvbXBhcmUgYi5mb2N1cyB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZvY3VzIGJcbiAgICAgICAgICBlbHNlIGZpbmRfZm9jdXMgYVxuICAgICAgfCBDb25mbGljdCBfLCBBdG9tIF8gLT4gVWkuZW1wdHlcbiAgICAgIHwgKCBDb25mbGljdCBfLFxuICAgICAgICAgICggU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgICAgIHwgRm9jdXNfYXJlYSAodCwgXylcbiAgICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgXylcbiAgICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBfKVxuICAgICAgICAgIHwgU2hpZnRfYXJlYSAodCwgXywgXykgKSApIC0+XG4gICAgICAgICAgZmluZF9mb2N1cyB0KVxuXG4gICgqIGxldCBmb2N1c2VkX3Jvd19vZl90YWJsZSAodGFibGUgOiBsaW5lIEx3ZF90YWJsZS50KSA9XG4gICAgIEx3ZF90YWJsZS5tYXBfcmVkdWNlXG4gICAgICAgKGZ1biByb3cgKGxpbmUgOiBsaW5lKSAtPiAoU29tZSByb3csIGxpbmUpKVxuICAgICAgICggIChOb25lLCBsaW5lX2VtcHR5ICgpKSxcbiAgICAgICAgICAoZnVuIGEgYiAtPiBpZiBmb2N1c19jb21wYXJlIChGb2N1cy5zdGF0dXMgKHNuZCBhKS5mb2N1cykgPCBmb2N1c19jb21wYXJlICkuZm9jdXMgdGhlbiBiIGVsc2UgYSkgKVxuICAgICAgIHRhYmxlICopXG5cbiAgbGV0IGZvY3VzX21vdmUgdGFibGUgZiA9IGBVbmhhbmRsZWRcblxuICBsZXQgZWRpdF9hcmVhID8odGFibGUgPSBMd2RfdGFibGUubWFrZSAoKSkgPyhmb2N1cyA9IEZvY3VzLm1ha2UgKCkpXG4gICAgICAoKSA6IFVpLnQgTHdkLnQgPVxuICAgICgqIGNyZWF0ZSB0aGUgY3Vyc29yIHZhciBhbmQgZm9jdXMgb24gZmlyc3QgdGFibGUgcm93ICopXG4gICAgbGV0IGN1cnNvciA9IEx3ZC52YXIgQEAgTHdkX3RhYmxlLmZpcnN0IHRhYmxlIGluXG4gICAgT3B0aW9uLml0ZXJcbiAgICAgIChmdW4gY3Vyc29yIC0+XG4gICAgICAgIE9wdGlvbi5pdGVyIChmdW4gZmlyc3QgLT4gRm9jdXMucmVxdWVzdCBmaXJzdC5mb2N1cylcbiAgICAgICAgQEAgTHdkX3RhYmxlLmdldCBjdXJzb3IpXG4gICAgICAoTHdkLnBlZWsgY3Vyc29yKTtcblxuICAgICgqIEJ1aWxkIHZpZXcgb2YgdGFibGUgKilcbiAgICBMd2RfdGFibGUubWFwX3JlZHVjZVxuICAgICAgKGZ1biBfIHsgdWk7IF8gfSAtPiB1aSlcbiAgICAgIChMd2RfdXRpbHMubGlmdF9tb25vaWQgVWkucGFja195KVxuICAgICAgdGFibGVcbiAgICB8PiBMd2Quam9pblxuICAgIHw+IEx3ZC5tYXAyXG4gICAgICAgICB+ZjooZnVuIGZvY3VzIC0+XG4gICAgICAgICAgIFVpLmtleWJvYXJkX2FyZWEgfmZvY3VzIChmdW4gayAtPlxuICAgICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgICAgIG0gXCJsaW5lX3RhYmxlIGhhbmRsZXIgJWFcIiBVaS5wcF9rZXkgayk7XG4gICAgICAgICAgICAgICBtYXRjaCBrIHdpdGhcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnbicgLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBjIC0+IEx3ZF90YWJsZS5uZXh0IGMpXG4gICAgICAgICAgICAgICB8IGBBcnJvdyBgRG93biwgXyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLm5leHQgYylcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAncCcgLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBjIC0+IEx3ZF90YWJsZS5wcmV2IGMpXG4gICAgICAgICAgICAgICB8IGBBcnJvdyBgVXAsIF8gLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBjIC0+IEx3ZF90YWJsZS5wcmV2IGMpXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBNZXRhIF0gd2hlbiBlcV91Y19jIHUgJzwnIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPiBMd2RfdGFibGUuZmlyc3QgdGFibGUpXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBNZXRhIF0gd2hlbiBlcV91Y19jIHUgJz4nIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPiBMd2RfdGFibGUubGFzdCB0YWJsZSlcbiAgICAgICAgICAgICAgIHwgYEVudGVyLCBbXSAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmVfb2ZfY3Vyc29yIGN1cnNvciAoZnVuIG9sZF9yb3cgb2xkX2xpbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0ciwgcG9zID0gTHdkLnBlZWsgb2xkX2xpbmUuc3RhdGUgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9fc3RyID0gU3RyaW5nLnN1YiBzdHIgMCBwb3MgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5fc3RyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuKHN1YiBzdHIgcG9zIChsZW5ndGggc3RyIC0gcG9zKSlcbiAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBvbGRfbGluZS5zdGF0ZSAob19zdHIsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfbGluZSA9IGxpbmVfbWFrZSBuX3N0ciBpblxuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIG9sZF9saW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IGN1cnNvclxuICAgICAgICAgICAgICAgICAgICAgICAgIChTb21lIChMd2RfdGFibGUuYWZ0ZXIgb2xkX3JvdyB+c2V0Om5ld19saW5lKSk7XG4gICAgICAgICAgICAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgICAgICAgfCBgQmFja3NwYWNlLCBbXSAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmVfb2ZfY3Vyc29yIGN1cnNvciAoZnVuIHJvdyBsaW5lIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBzdHIsIHBvcyA9IEx3ZC5wZWVrIGxpbmUuc3RhdGUgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgVWkubWF5X2hhbmRsZSAoTHdkX3RhYmxlLnByZXYgcm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gcm93X3ByZXYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBvcyA9IDAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaS5tYXlfaGFuZGxlIChMd2RfdGFibGUuZ2V0IHJvd19wcmV2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gbGluZV9wcmV2IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyX3ByZXYsIF8gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2QucGVlayBsaW5lX3ByZXYuc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGxpbmUuZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IGxpbmVfcHJldi5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgbGluZV9wcmV2LnN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RyX3ByZXYgXiBzdHIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmxlbmd0aCBzdHJfcHJldiApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBjdXJzb3IgKFNvbWUgcm93X3ByZXYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLnJlbW92ZSByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZCkpXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ2snIC0+IGBIYW5kbGVkXG4gICAgICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZCkpXG4gICAgICAgICAoRm9jdXMuc3RhdHVzIGZvY3VzKVxuXG4gICgqKiBUYWIgdmlldywgd2hlcmUgZXhhY3RseSBvbmUgZWxlbWVudCBvZiBbbF0gaXMgc2hvd24gYXQgYSB0aW1lLiAqKVxuICBsZXQgdGFicyAodGFicyA6IChzdHJpbmcgKiAodW5pdCAtPiBVaS50IEx3ZC50KSkgbGlzdCkgOiBVaS50IEx3ZC50XG4gICAgICA9XG4gICAgbWF0Y2ggdGFicyB3aXRoXG4gICAgfCBbXSAtPiBMd2QucmV0dXJuIFVpLmVtcHR5XG4gICAgfCBfIC0+XG4gICAgICAgIGxldCBjdXIgPSBMd2QudmFyIDAgaW5cbiAgICAgICAgTHdkLmdldCBjdXIgPj49IGZ1biBpZHhfc2VsIC0+XG4gICAgICAgIGxldCBfLCBmID0gTGlzdC5udGggdGFicyBpZHhfc2VsIGluXG4gICAgICAgIGxldCB0YWJfYmFyID1cbiAgICAgICAgICB0YWJzXG4gICAgICAgICAgfD4gTGlzdC5tYXBpIChmdW4gaSAocywgXykgLT5cbiAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPVxuICAgICAgICAgICAgICAgICAgIGlmIGkgPSBpZHhfc2VsIHRoZW4gQS4oYmcgQ29sb3IuYmx1ZSkgZWxzZSBBLmVtcHR5XG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIGxldCB0YWJfYW5ub3QgPSBwcmludGYgfmF0dHIgXCJbJXNdXCIgcyBpblxuICAgICAgICAgICAgICAgICBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAgICAgICAgICAgKGZ1biB+eDpfIH55Ol8gbCAtPlxuICAgICAgICAgICAgICAgICAgICAgaWYgbCA9IGBMZWZ0IHRoZW4gKFxuICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IGN1ciBpO1xuICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICB0YWJfYW5ub3QpXG4gICAgICAgICAgfD4gVWkuaGNhdFxuICAgICAgICBpblxuICAgICAgICBmICgpID58PSBVaS5qb2luX3kgdGFiX2JhclxuXG4gICgqXG4gICAgICAgKCoqIEhvcml6b250YWwvdmVydGljYWwgYm94LiBXZSBmaWxsIGxpbmVzIHVudGlsIHRoZXJlIGlzIG5vIHJvb20sXG4gICAgICAgICBhbmQgdGhlbiBnbyB0byB0aGUgbmV4dCBsaWduZS4gQWxsIHdpZGdldHMgaW4gYSBsaW5lIGFyZSBjb25zaWRlcmVkIHRvXG4gICAgICAgICBoYXZlIHRoZSBzYW1lIGhlaWdodC5cbiAgICAgICAgIEBwYXJhbSB3aWR0aCBkeW5hbWljIHdpZHRoICAoZGVmYXVsdCA4MClcbiAgICAgKilcbiAgICAgICBsZXQgZmxleF9ib3ggPyh3ID0gTHdkLnJldHVybiA4MCkgKGwgOiBVaS50IEx3ZC50IGxpc3QpIDogVWkudCBMd2QudFxuICAgICAgICAgICA9XG4gICAgICAgICBMd2RfdXRpbHMuZmxhdHRlbl9sIGwgPj49IGZ1biBsIC0+XG4gICAgICAgICB3ID58PSBmdW4gd19saW1pdCAtPlxuICAgICAgICAgbGV0IHJlYyBib3hfcmVuZGVyIChhY2MgOiBVaS50KSAoaSA6IGludCkgbCA6IFVpLnQgPVxuICAgICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICAgfCBbXSAtPiBhY2NcbiAgICAgICAgICAgfCB1aTAgOjogdGwgLT5cbiAgICAgICAgICAgICAgIGxldCB3MCA9IChVaS5sYXlvdXRfc3BlYyB1aTApLlVpLncgaW5cbiAgICAgICAgICAgICAgIGlmIGkgKyB3MCA+PSB3X2xpbWl0IHRoZW5cbiAgICAgICAgICAgICAgICAgKCogbmV3bGluZSBzdGFydGluZyB3aXRoIHVpMCAqKVxuICAgICAgICAgICAgICAgICBVaS5qb2luX3kgYWNjIChib3hfcmVuZGVyIHVpMCB3MCB0bClcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgKCogc2FtZSBsaW5lICopXG4gICAgICAgICAgICAgICAgIGJveF9yZW5kZXIgKFVpLmpvaW5feCBhY2MgdWkwKSAoaSArIHcwKSB0bFxuICAgICAgICAgaW5cbiAgICAgICAgIGJveF9yZW5kZXIgVWkuZW1wdHkgMCBsXG4qKVxuXG4gICgqKiBQcmludHMgdGhlIHN1bW1hcnksIGJ1dCBjYWxscyBbZigpXSB0byBjb21wdXRlIGEgc3ViLXdpZGdldFxuICAgICAgICAgd2hlbiBjbGlja2VkIG9uLiBVc2VmdWwgZm9yIGRpc3BsYXlpbmcgZGVlcCB0cmVlcy4gKilcbiAgbGV0IHVuZm9sZGFibGUgPyhmb2xkZWRfYnlfZGVmYXVsdCA9IHRydWUpIHN1bW1hcnlcbiAgICAgIChmIDogdW5pdCAtPiBVaS50IEx3ZC50KSA6IFVpLnQgTHdkLnQgPVxuICAgIGxldCBvcGVuIEx3ZC5JbmZpeCBpblxuICAgIGxldCBvcGVuZWQgPSBMd2QudmFyIChub3QgZm9sZGVkX2J5X2RlZmF1bHQpIGluXG4gICAgbGV0IGZvbGRfY29udGVudCA9XG4gICAgICBMd2QuZ2V0IG9wZW5lZCA+Pj0gZnVuY3Rpb25cbiAgICAgIHwgdHJ1ZSAtPlxuICAgICAgICAgICgqIGNhbGwgW2ZdIGFuZCBwYWQgYSBiaXQgKilcbiAgICAgICAgICBmICgpIHw+IEx3ZC5tYXAgfmY6KFVpLmpvaW5feCAoc3RyaW5nIFwiIFwiKSlcbiAgICAgIHwgZmFsc2UgLT4gTHdkLnJldHVybiBVaS5lbXB0eVxuICAgIGluXG4gICAgKCogcGFkIHN1bW1hcnkgd2l0aCBhIFwiPiBcIiB3aGVuIGl0J3Mgb3BlbmVkICopXG4gICAgbGV0IHN1bW1hcnkgPVxuICAgICAgTHdkLmdldCBvcGVuZWQgPj49IGZ1biBvcCAtPlxuICAgICAgc3VtbWFyeSA+fD0gZnVuIHMgLT5cbiAgICAgIFVpLmhjYXRcbiAgICAgICAgW1xuICAgICAgICAgIHN0cmluZyB+YXR0cjpBLmNsaWNrYWJsZSAoaWYgb3AgdGhlbiBcInZcIiBlbHNlIFwiPlwiKTtcbiAgICAgICAgICBzdHJpbmcgXCIgXCI7XG4gICAgICAgICAgcztcbiAgICAgICAgXVxuICAgIGluXG4gICAgbGV0IGN1cnNvciB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCB3aGVuIEx3ZC5wZWVrIG9wZW5lZCAtPlxuICAgICAgICAgIEx3ZC5zZXQgb3BlbmVkIGZhbHNlO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgTHdkLnNldCBvcGVuZWQgdHJ1ZTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgIGxldCBtb3VzZSA9XG4gICAgICBMd2QubWFwIH5mOihmdW4gbSAtPiBVaS5tb3VzZV9hcmVhIGN1cnNvciBtKSBzdW1tYXJ5XG4gICAgaW5cbiAgICBMd2QubWFwMiBtb3VzZSBmb2xkX2NvbnRlbnQgfmY6KGZ1biBzdW1tYXJ5IGZvbGQgLT5cbiAgICAgICAgKCogVE9ETzogbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS9vcHRpb25hbCAqKVxuICAgICAgICAoKiBuZXdsaW5lIGlmIGl0J3MgdG9vIGJpZyB0byBmaXQgb24gb25lIGxpbmUgbmljZWx5ICopXG4gICAgICAgIGxldCBzcGVjX3N1bSA9IFVpLmxheW91dF9zcGVjIHN1bW1hcnkgaW5cbiAgICAgICAgbGV0IHNwZWNfZm9sZCA9IFVpLmxheW91dF9zcGVjIGZvbGQgaW5cbiAgICAgICAgKCogVE9ETzogc29tZWhvdywgcHJvYmUgZm9yIGF2YWlsYWJsZSB3aWR0aCBoZXJlPyAqKVxuICAgICAgICBsZXQgdG9vX2JpZyA9XG4gICAgICAgICAgc3BlY19mb2xkLlVpLmggPiAyMC5cbiAgICAgICAgICB8fCBzcGVjX2ZvbGQuVWkuaCA+IDIwLlxuICAgICAgICAgICAgICYmIHNwZWNfc3VtLlVpLncgKy4gc3BlY19mb2xkLlVpLncgPiAyNDAuXG4gICAgICAgIGluXG4gICAgICAgIGlmIHRvb19iaWcgdGhlblxuICAgICAgICAgIFVpLmpvaW5feSBzdW1tYXJ5IChVaS5qb2luX3ggKHN0cmluZyBcIiBcIikgZm9sZClcbiAgICAgICAgZWxzZSBVaS5qb2luX3ggc3VtbWFyeSBmb2xkKVxuXG4gIGxldCBoYm94IGwgPSBMd2RfdXRpbHMucGFjayBVaS5wYWNrX3ggbFxuICBsZXQgdmJveCBsID0gTHdkX3V0aWxzLnBhY2sgVWkucGFja195IGxcbiAgbGV0IHpib3ggbCA9IEx3ZF91dGlscy5wYWNrIFVpLnBhY2tfeiBsXG5cbiAgbGV0IHZsaXN0ID8oYnVsbGV0ID0gXCItIFwiKSAobCA6IFVpLnQgTHdkLnQgbGlzdCkgOiBVaS50IEx3ZC50ID1cbiAgICBsXG4gICAgfD4gTGlzdC5tYXAgKGZ1biB1aSAtPiBMd2QubWFwIH5mOihVaS5qb2luX3ggKHN0cmluZyBidWxsZXQpKSB1aSlcbiAgICB8PiB2Ym94XG5cbiAgKCoqIEEgbGlzdCBvZiBpdGVtcyB3aXRoIGEgZHluYW1pYyBmaWx0ZXIgb24gdGhlIGl0ZW1zICopXG4gIGxldCB2bGlzdF93aXRoID8oYnVsbGV0ID0gXCItIFwiKVxuICAgICAgPyhmaWx0ZXIgPSBMd2QucmV0dXJuIChmdW4gXyAtPiB0cnVlKSkgKGYgOiAnYSAtPiBVaS50IEx3ZC50KVxuICAgICAgKGwgOiAnYSBsaXN0IEx3ZC50KSA6IFVpLnQgTHdkLnQgPVxuICAgIGxldCBvcGVuIEx3ZC5JbmZpeCBpblxuICAgIGxldCByZWMgZmlsdGVyX21hcF8gYWNjIGYgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gTGlzdC5yZXYgYWNjXG4gICAgICB8IHggOjogbCcgLT5cbiAgICAgICAgICBsZXQgYWNjJyA9XG4gICAgICAgICAgICBtYXRjaCBmIHggd2l0aCBOb25lIC0+IGFjYyB8IFNvbWUgeSAtPiB5IDo6IGFjY1xuICAgICAgICAgIGluXG4gICAgICAgICAgZmlsdGVyX21hcF8gYWNjJyBmIGwnXG4gICAgaW5cbiAgICBsZXQgbCA9XG4gICAgICBsXG4gICAgICA+fD0gTGlzdC5tYXAgKGZ1biB4IC0+XG4gICAgICAgICAgICAgICh4LCBMd2QubWFwIH5mOihVaS5qb2luX3ggKHN0cmluZyBidWxsZXQpKSBAQCBmIHgpKVxuICAgIGluXG4gICAgbGV0IGxfZmlsdGVyIDogXyBsaXN0IEx3ZC50ID1cbiAgICAgIGZpbHRlciA+Pj0gZnVuIGZpbHRlciAtPlxuICAgICAgbFxuICAgICAgPnw9IGZpbHRlcl9tYXBfIFtdIChmdW4gKHgsIHVpKSAtPlxuICAgICAgICAgICAgICBpZiBmaWx0ZXIgeCB0aGVuIFNvbWUgdWkgZWxzZSBOb25lKVxuICAgIGluXG4gICAgbF9maWx0ZXIgPj49IEx3ZF91dGlscy5wYWNrIFVpLnBhY2tfeVxuXG4gIGxldCB2bGlzdF9vZl90ZXh0ID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKVxuICAgICAgPyhrZXlfaGFuZGxlciA9IGZ1biBfIC0+IGBVbmhhbmRsZWQpID1cbiAgICBMd2QubWFwMiAoRm9jdXMuc3RhdHVzIGZvY3VzKSB+ZjooZnVuIGZvY3VzIHMgLT5cbiAgICAgICAgVWkudmNhdCBAQCBMaXN0Lm1hcCBzdHJpbmcgQEAgU3RyaW5nLnNwbGl0X29uX2NoYXIgJ1xcbicgc1xuICAgICAgICB8PiBVaS5rZXlib2FyZF9hcmVhIH5mb2N1cyBrZXlfaGFuZGxlcilcblxuICAoKiBsZXQgcmVjIGl0ZXJhdGUgbiBmIHggPSBpZiBuID0gMCB0aGVuIHggZWxzZSBpdGVyYXRlIChuIC0gMSkgZiAoZiB4KVxuXG4gICAgICgqKiBBIGdyaWQgbGF5b3V0LCB3aXRoIGFsaWdubWVudCBpbiBhbGwgcm93cy9jb2x1bW5zLlxuICAgICAgIEBwYXJhbSBtYXhfaCBtYXhpbXVtIGhlaWdodCBvZiBhIGNlbGxcbiAgICAgICBAcGFyYW0gbWF4X3cgbWF4aW11bSB3aWR0aCBvZiBhIGNlbGxcbiAgICAgICBAcGFyYW0gYmcgYXR0cmlidXRlIGZvciBjb250cm9sbGluZyBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgQHBhcmFtIGhfc3BhY2UgaG9yaXpvbnRhbCBzcGFjZSBiZXR3ZWVuIGVhY2ggY2VsbCBpbiBhIHJvd1xuICAgICAgIEBwYXJhbSB2X3NwYWNlIHZlcnRpY2FsIHNwYWNlIGJldHdlZW4gZWFjaCByb3dcbiAgICAgICBAcGFyYW0gcGFkIHVzZWQgdG8gY29udHJvbCBwYWRkaW5nIG9mIGNlbGxzXG4gICAgICAgQHBhcmFtIGNyb3AgdXNlZCB0byBjb250cm9sIGNyb3BwaW5nIG9mIGNlbGxzXG4gICAgICAgVE9ETzogY29udHJvbCBwYWRkaW5nL2FsaWdubWVudCwgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gICAgICAgVE9ETzogY29udHJvbCBhbGlnbiBsZWZ0L3JpZ2h0IGluIGNlbGxzXG4gICAgICAgVE9ETzogaG9yaXpvbnRhbCBydWxlIGJlbG93IGhlYWRlcnNcbiAgICAgICBUT0RPOiBoZWFkZXJzICopXG4gICAgIGxldCBncmlkID9tYXhfaCA/bWF4X3cgP3BhZCA/Y3JvcCA/YmcgPyhoX3NwYWNlID0gMCkgPyh2X3NwYWNlID0gMClcbiAgICAgICAgID8oaGVhZGVycyA6IFVpLnQgTHdkLnQgbGlzdCBvcHRpb24pXG4gICAgICAgICAocm93cyA6IFVpLnQgTHdkLnQgbGlzdCBsaXN0KSA6IFVpLnQgTHdkLnQgPVxuICAgICAgIGxldCByb3dzID1cbiAgICAgICAgIG1hdGNoIGhlYWRlcnMgd2l0aCBOb25lIC0+IHJvd3MgfCBTb21lIHIgLT4gciA6OiByb3dzXG4gICAgICAgaW5cbiAgICAgICAoKiBidWlsZCBhIFt1aSBsaXN0IGxpc3QgTHdkLnRdICopXG4gICAgICAgTHdkX3V0aWxzLm1hcF9sIChmdW4gciAtPiBMd2RfdXRpbHMuZmxhdHRlbl9sIHIpIHJvd3NcbiAgICAgICA+Pj0gZnVuIChyb3dzIDogVWkudCBsaXN0IGxpc3QpIC0+XG4gICAgICAgKCogZGV0ZXJtaW5lIHdpZHRoIG9mIGVhY2ggY29sdW1uIGFuZCBoZWlnaHQgb2YgZWFjaCByb3cgKilcbiAgICAgICBsZXQgbl9jb2xzID1cbiAgICAgICAgIExpc3QuZm9sZF9sZWZ0IChmdW4gbiByIC0+IG1heCBuIChMaXN0Lmxlbmd0aCByKSkgMCByb3dzXG4gICAgICAgaW5cbiAgICAgICBsZXQgY29sX3dpZHRocyA9IEFycmF5Lm1ha2Ugbl9jb2xzIDEgaW5cbiAgICAgICBMaXN0Lml0ZXJcbiAgICAgICAgIChmdW4gcm93IC0+XG4gICAgICAgICAgIExpc3QuaXRlcmlcbiAgICAgICAgICAgICAoZnVuIGNvbF9qIGNlbGwgLT5cbiAgICAgICAgICAgICAgIGxldCB3ID0gKFVpLmxheW91dF9zcGVjIGNlbGwpLlVpLncgaW5cbiAgICAgICAgICAgICAgIGNvbF93aWR0aHMuKGNvbF9qKSA8LSBtYXggY29sX3dpZHRocy4oY29sX2opIHcpXG4gICAgICAgICAgICAgcm93KVxuICAgICAgICAgcm93cztcbiAgICAgICAobWF0Y2ggbWF4X3cgd2l0aFxuICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgIHwgU29tZSBtYXhfdyAtPlxuICAgICAgICAgICAoKiBsaW1pdCB3aWR0aCAqKVxuICAgICAgICAgICBBcnJheS5pdGVyaVxuICAgICAgICAgICAgIChmdW4gaSB4IC0+IGNvbF93aWR0aHMuKGkpIDwtIG1pbiB4IG1heF93KVxuICAgICAgICAgICAgIGNvbF93aWR0aHMpO1xuICAgICAgICgqIG5vdyByZW5kZXIsIHdpdGggc29tZSBwYWRkaW5nICopXG4gICAgICAgbGV0IHBhY2tfcGFkX3ggPVxuICAgICAgICAgaWYgaF9zcGFjZSA8PSAwIHRoZW4gKFVpLmVtcHR5LCBVaS5qb2luX3gpXG4gICAgICAgICBlbHNlIChVaS5lbXB0eSwgZnVuIHggeSAtPiBVaS5oY2F0IFsgeDsgVWkuc3BhY2UgaF9zcGFjZSAwOyB5IF0pXG4gICAgICAgYW5kIHBhY2tfcGFkX3kgPVxuICAgICAgICAgaWYgdl9zcGFjZSA9IDAgdGhlbiAoVWkuZW1wdHksIFVpLmpvaW5feSlcbiAgICAgICAgIGVsc2UgKFVpLmVtcHR5LCBmdW4geCB5IC0+IFVpLnZjYXQgWyB4OyBVaS5zcGFjZSB2X3NwYWNlIDA7IHkgXSlcbiAgICAgICBpblxuICAgICAgIGxldCByb3dzID1cbiAgICAgICAgIExpc3QubWFwXG4gICAgICAgICAgIChmdW4gcm93IC0+XG4gICAgICAgICAgICAgbGV0IHJvd19oID1cbiAgICAgICAgICAgICAgIExpc3QuZm9sZF9sZWZ0XG4gICAgICAgICAgICAgICAgIChmdW4gbiBjIC0+IG1heCBuIChVaS5sYXlvdXRfc3BlYyBjKS5VaS5oKVxuICAgICAgICAgICAgICAgICAwIHJvd1xuICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgbGV0IHJvd19oID1cbiAgICAgICAgICAgICAgIG1hdGNoIG1heF9oIHdpdGhcbiAgICAgICAgICAgICAgIHwgTm9uZSAtPiByb3dfaFxuICAgICAgICAgICAgICAgfCBTb21lIG1heF9oIC0+IG1pbiByb3dfaCBtYXhfaFxuICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgbGV0IHJvdyA9XG4gICAgICAgICAgICAgICBMaXN0Lm1hcGlcbiAgICAgICAgICAgICAgICAgKGZ1biBpIGMgLT5cbiAgICAgICAgICAgICAgICAgICBVaS5yZXNpemUgfnc6Y29sX3dpZHRocy4oaSkgfmg6cm93X2ggP2Nyb3AgP3BhZCA/YmcgYylcbiAgICAgICAgICAgICAgICAgcm93XG4gICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICBMd2RfdXRpbHMucmVkdWNlIHBhY2tfcGFkX3ggcm93KVxuICAgICAgICAgICByb3dzXG4gICAgICAgaW5cbiAgICAgICAoKiBUT0RPOiBtb3VzZSBhbmQga2V5Ym9hcmQgaGFuZGxpbmcgKilcbiAgICAgICBsZXQgdWkgPSBMd2RfdXRpbHMucmVkdWNlIHBhY2tfcGFkX3kgcm93cyBpblxuICAgICAgIEx3ZC5yZXR1cm4gdWlcbiAgKilcblxuICAoKiogVHVybiB0aGUgZ2l2ZW4gW3VpXSBpbnRvIGEgY2xpY2thYmxlIGJ1dHRvbiwgY2FsbHMgW2ZdIHdoZW4gY2xpY2tlZC4gKilcbiAgbGV0IGJ1dHRvbl9vZiB1aSBmID1cbiAgICBVaS5rZXlib2FyZF9hcmVhXG4gICAgICAoZnVuY3Rpb25cbiAgICAgICAgfCBgRW50ZXIsIF8gLT5cbiAgICAgICAgICAgIGYgKCk7XG4gICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZClcbiAgICAgICgqIEBAIFVpLm1vdXNlX2FyZWFcbiAgICAgICAgIChmdW4gfng6XyB+eTpfIF8gLT5cbiAgICAgICAgICAgZiAoKTtcbiAgICAgICAgICAgYEhhbmRsZWQpICopXG4gICAgICB1aVxuXG4gICgqKiBBIGNsaWNrYWJsZSBidXR0b24gdGhhdCBjYWxscyBbZl0gd2hlbiBjbGlja2VkLCBsYWJlbGxlZCB3aXRoIGEgc3RyaW5nLiAqKVxuICBsZXQgYnV0dG9uID8oYXR0ciA9IEEuY2xpY2thYmxlKSBzIGYgPSBidXR0b25fb2YgKHN0cmluZyB+YXR0ciBzKSBmXG5cbiAgKCogZmlsZSBleHBsb3JlciBmb3Igc2VsZWN0aW5nIGEgZmlsZSAqKVxuICBsZXQgZmlsZV9zZWxlY3QgPyhhYnMgPSBmYWxzZSkgP2ZpbHRlciB+KG9uX3NlbGVjdCA6IHN0cmluZyAtPiB1bml0KVxuICAgICAgKCkgOiBVaS50IEx3ZC50ID1cbiAgICBsZXQgcmVjIGF1eCB+Zm9sZCBwYXRoID1cbiAgICAgIHRyeVxuICAgICAgICBsZXQgcF9yZWwgPSBpZiBwYXRoID0gXCJcIiB0aGVuIFwiLlwiIGVsc2UgcGF0aCBpblxuICAgICAgICBpZiBTeXMuaXNfZGlyZWN0b3J5IHBfcmVsIHRoZW5cbiAgICAgICAgICBsZXQgdWkgKCkgPVxuICAgICAgICAgICAgbGV0IGFyciA9IFN5cy5yZWFkZGlyIHBfcmVsIGluXG4gICAgICAgICAgICBsZXQgbCA9XG4gICAgICAgICAgICAgIEFycmF5LnRvX2xpc3QgYXJyIHw+IExpc3QubWFwIChGaWxlbmFtZS5jb25jYXQgcGF0aClcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAoKiBhcHBseSBwb3RlbnRpYWwgZmlsdGVyICopXG4gICAgICAgICAgICBsZXQgbCA9XG4gICAgICAgICAgICAgIG1hdGNoIGZpbHRlciB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsXG4gICAgICAgICAgICAgIHwgU29tZSBmIC0+IExpc3QuZmlsdGVyIGYgbFxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGxldCBsID0gTHdkLnJldHVybiBAQCBMaXN0LnNvcnQgU3RyaW5nLmNvbXBhcmUgbCBpblxuICAgICAgICAgICAgdmxpc3Rfd2l0aCB+YnVsbGV0OlwiXCIgKGF1eCB+Zm9sZDp0cnVlKSBsXG4gICAgICAgICAgaW5cbiAgICAgICAgICBpZiBmb2xkIHRoZW5cbiAgICAgICAgICAgIHVuZm9sZGFibGUgfmZvbGRlZF9ieV9kZWZhdWx0OnRydWVcbiAgICAgICAgICAgICAgKEx3ZC5yZXR1cm4gQEAgc3RyaW5nIEBAIHBhdGggXiBcIi9cIilcbiAgICAgICAgICAgICAgdWlcbiAgICAgICAgICBlbHNlIHVpICgpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBMd2QucmV0dXJuXG4gICAgICAgICAgQEAgYnV0dG9uXG4gICAgICAgICAgICAgICB+YXR0cjpBLihmb250IEZvbnQudW5kZXJsaW5lKVxuICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgKGZ1biAoKSAtPiBvbl9zZWxlY3QgcGF0aClcbiAgICAgIHdpdGggZSAtPlxuICAgICAgICBMd2QucmV0dXJuXG4gICAgICAgIEBAIFVpLnZjYXRcbiAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICBwcmludGZcbiAgICAgICAgICAgICAgICAgfmF0dHI6QS4oYmcgQ29sb3IucmVkKVxuICAgICAgICAgICAgICAgICBcImNhbm5vdCBsaXN0IGRpcmVjdG9yeSAlc1wiIHBhdGg7XG4gICAgICAgICAgICAgICBzdHJpbmcgQEAgUHJpbnRleGMudG9fc3RyaW5nIGU7XG4gICAgICAgICAgICAgXVxuICAgIGluXG4gICAgbGV0IHN0YXJ0ID0gaWYgYWJzIHRoZW4gU3lzLmdldGN3ZCAoKSBlbHNlIFwiXCIgaW5cbiAgICBhdXggfmZvbGQ6ZmFsc2Ugc3RhcnRcblxuICBsZXQgdG9nZ2xlLCB0b2dnbGUnID1cbiAgICBsZXQgdG9nZ2xlXyBzdCAobGJsIDogc3RyaW5nIEx3ZC50KSAoZiA6IGJvb2wgLT4gdW5pdCkgOlxuICAgICAgICBVaS50IEx3ZC50ID1cbiAgICAgIGxldCBta19idXQgc3RfdiBsYmxfdiA9XG4gICAgICAgIGxldCBsYmwgPVxuICAgICAgICAgIFVpLmhjYXRcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgcHJpbnRmIFwiWyVzfFwiIGxibF92O1xuICAgICAgICAgICAgICBzdHJpbmcgfmF0dHI6QS5jbGlja2FibGUgKGlmIHN0X3YgdGhlbiBcIuKclFwiIGVsc2UgXCLDl1wiKTtcbiAgICAgICAgICAgICAgc3RyaW5nIFwiXVwiO1xuICAgICAgICAgICAgXVxuICAgICAgICBpblxuICAgICAgICBidXR0b25fb2YgbGJsIChmdW4gKCkgLT5cbiAgICAgICAgICAgIGxldCBuZXdfc3QgPSBub3Qgc3RfdiBpblxuICAgICAgICAgICAgTHdkLnNldCBzdCBuZXdfc3Q7XG4gICAgICAgICAgICBmIG5ld19zdClcbiAgICAgIGluXG4gICAgICBMd2QubWFwMiB+Zjpta19idXQgKEx3ZC5nZXQgc3QpIGxibFxuICAgIGluXG4gICAgKCogU2ltaWxhciB0byB7IXRvZ2dsZX0sIGV4Y2VwdCBpdCBkaXJlY3RseSByZWZsZWN0cyB0aGUgc3RhdGUgb2YgYSB2YXJpYWJsZS4gKilcbiAgICBsZXQgdG9nZ2xlJyAobGJsIDogc3RyaW5nIEx3ZC50KSAodiA6IGJvb2wgTHdkLnZhcikgOiBVaS50IEx3ZC50ID1cbiAgICAgIHRvZ2dsZV8gdiBsYmwgKEx3ZC5zZXQgdilcbiAgICAoKiBhIHRvZ2dsZSwgd2l0aCBhIHRydWUvZmFsc2Ugc3RhdGUgKilcbiAgICBhbmQgdG9nZ2xlID8oaW5pdCA9IGZhbHNlKSAobGJsIDogc3RyaW5nIEx3ZC50KSAoZiA6IGJvb2wgLT4gdW5pdClcbiAgICAgICAgOiBVaS50IEx3ZC50ID1cbiAgICAgIGxldCBzdCA9IEx3ZC52YXIgaW5pdCBpblxuICAgICAgdG9nZ2xlXyBzdCBsYmwgZlxuICAgIGluXG4gICAgKHRvZ2dsZSwgdG9nZ2xlJylcblxuICB0eXBlIHNjcm9sbGJveF9zdGF0ZSA9IHtcbiAgICB3IDogZmxvYXQ7XG4gICAgaCA6IGZsb2F0O1xuICAgIHggOiBmbG9hdDtcbiAgICB5IDogZmxvYXQ7XG4gIH1cblxuICBsZXQgYWRqdXN0X29mZnNldCB2aXNpYmxlIHRvdGFsIG9mZiA9XG4gICAgbGV0IG9mZiA9XG4gICAgICBpZiBvZmYgKy4gdmlzaWJsZSA+IHRvdGFsIHRoZW4gdG90YWwgLS4gdmlzaWJsZSBlbHNlIG9mZlxuICAgIGluXG4gICAgbGV0IG9mZiA9IGlmIG9mZiA8IDAuIHRoZW4gMC4gZWxzZSBvZmYgaW5cbiAgICBvZmZcblxuICBsZXQgc2Nyb2xsYmFyX3dpZHRoID0gMTAuXG4gIGxldCBkZWNyX2lmIHggY29uZCA9IGlmIGNvbmQgdGhlbiB4IC0uIHNjcm9sbGJhcl93aWR0aCBlbHNlIHhcbiAgbGV0IHNjcm9sbGJhcl9iZyA9IENvbG9yLmdyYXkgMC40XG4gIGxldCBzY3JvbGxiYXJfZmcgPSBDb2xvci5ncmF5IDAuN1xuXG4gIGxldCBzY3JvbGxiYXJfY2xpY2tfc3RlcCA9XG4gICAgMy4gKCogQ2xpY2tpbmcgc2Nyb2xscyBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiAqKVxuXG4gIGxldCBzY3JvbGxiYXJfd2hlZWxfc3RlcCA9XG4gICAgOC4gKCogV2hlZWwgZXZlbnQgc2Nyb2xscyAxLzh0aCBvZiB0aGUgc2NyZWVuICopXG5cbiAgbGV0IGhzY3JvbGxiYXIgdmlzaWJsZSB0b3RhbCBvZmZzZXQgfnNldCA9XG4gICAgbGV0IHByZWZpeCA9IG9mZnNldCAqLiB2aXNpYmxlIC8uIHRvdGFsIGluXG4gICAgbGV0IHN1ZmZpeCA9ICh0b3RhbCAtLiBvZmZzZXQgLS4gdmlzaWJsZSkgKi4gdmlzaWJsZSAvLiB0b3RhbCBpblxuICAgIGxldCBoYW5kbGUgPSB2aXNpYmxlIC0uIHByZWZpeCAtLiBzdWZmaXggaW5cbiAgICBsZXQgcmVuZGVyIHNpemUgY29sb3IgPVxuICAgICAgVWkuYXRvbSAoSS5hdHRyIChBLmJnIGNvbG9yKSAoSS52b2lkIHNpemUgc2Nyb2xsYmFyX3dpZHRoKSlcbiAgICBpblxuICAgIGxldCBtb3VzZV9oYW5kbGVyIH54IH55Ol8gPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIGlmIHggPCBwcmVmaXggdGhlbiAoXG4gICAgICAgICAgICBzZXQgKG9mZnNldCAtLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX2NsaWNrX3N0ZXApKTtcbiAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgIGVsc2UgaWYgeCA+IHByZWZpeCArLiBoYW5kbGUgdGhlbiAoXG4gICAgICAgICAgICBzZXQgKG9mZnNldCArLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX2NsaWNrX3N0ZXApKTtcbiAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGBHcmFiXG4gICAgICAgICAgICAgICggKGZ1biB+eDp4JyB+eTpfIC0+XG4gICAgICAgICAgICAgICAgICBzZXQgKG9mZnNldCArLiAoKHgnIC0uIHgpICouIHRvdGFsIC8uIHZpc2libGUpKSksXG4gICAgICAgICAgICAgICAgZnVuIH54Ol8gfnk6XyAtPiAoKSApXG4gICAgICB8IGBTY3JvbGwgZGlyIC0+XG4gICAgICAgICAgbGV0IGRpciA9IG1hdGNoIGRpciB3aXRoIGBEb3duIC0+IDEuIHwgYFVwIC0+IC0xLiBpblxuICAgICAgICAgIHNldFxuICAgICAgICAgICAgKG9mZnNldFxuICAgICAgICAgICAgKy4gKGRpciAqLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX3doZWVsX3N0ZXApKSk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBsZXQgKCArKyApID0gVWkuam9pbl94IGluXG4gICAgVWkubW91c2VfYXJlYSBtb3VzZV9oYW5kbGVyXG4gICAgICAocmVuZGVyIHByZWZpeCBzY3JvbGxiYXJfYmdcbiAgICAgICsrIHJlbmRlciBoYW5kbGUgc2Nyb2xsYmFyX2ZnXG4gICAgICArKyByZW5kZXIgc3VmZml4IHNjcm9sbGJhcl9iZylcblxuICBsZXQgdnNjcm9sbGJhciB2aXNpYmxlIHRvdGFsIG9mZnNldCB+c2V0ID1cbiAgICBsZXQgcHJlZml4ID0gb2Zmc2V0ICouIHZpc2libGUgLy4gdG90YWwgaW5cbiAgICBsZXQgc3VmZml4ID0gKHRvdGFsIC0uIG9mZnNldCAtLiB2aXNpYmxlKSAqLiB2aXNpYmxlIC8uIHRvdGFsIGluXG4gICAgbGV0IGhhbmRsZSA9IHZpc2libGUgLS4gcHJlZml4IC0uIHN1ZmZpeCBpblxuICAgIGxldCByZW5kZXIgc2l6ZSBjb2xvciA9XG4gICAgICBVaS5hdG9tIChJLmNoYXIgfmF0dHI6KEEuYmcgY29sb3IpICcgJyAxLiBzaXplKVxuICAgIGluXG4gICAgbGV0IG1vdXNlX2hhbmRsZXIgfng6XyB+eSA9IGZ1bmN0aW9uXG4gICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgaWYgeSA8IHByZWZpeCB0aGVuIChcbiAgICAgICAgICAgIHNldCAob2Zmc2V0IC0uIG1heCAxLiAodmlzaWJsZSAvLiBzY3JvbGxiYXJfY2xpY2tfc3RlcCkpO1xuICAgICAgICAgICAgYEhhbmRsZWQpXG4gICAgICAgICAgZWxzZSBpZiB5ID4gcHJlZml4ICsuIGhhbmRsZSB0aGVuIChcbiAgICAgICAgICAgIHNldCAob2Zmc2V0ICsuIG1heCAxLiAodmlzaWJsZSAvLiBzY3JvbGxiYXJfY2xpY2tfc3RlcCkpO1xuICAgICAgICAgICAgYEhhbmRsZWQpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYEdyYWJcbiAgICAgICAgICAgICAgKCAoZnVuIH54Ol8gfnk6eScgLT5cbiAgICAgICAgICAgICAgICAgIHNldCAob2Zmc2V0ICsuICgoeScgLS4geSkgKi4gdG90YWwgLy4gdmlzaWJsZSkpKSxcbiAgICAgICAgICAgICAgICBmdW4gfng6XyB+eTpfIC0+ICgpIClcbiAgICAgIHwgYFNjcm9sbCBkaXIgLT5cbiAgICAgICAgICBsZXQgZGlyID0gbWF0Y2ggZGlyIHdpdGggYERvd24gLT4gMS4gfCBgVXAgLT4gLTEuIGluXG4gICAgICAgICAgc2V0XG4gICAgICAgICAgICAob2Zmc2V0XG4gICAgICAgICAgICArLiAoZGlyICouIG1heCAxLiAodmlzaWJsZSAvLiBzY3JvbGxiYXJfd2hlZWxfc3RlcCkpKTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuICAgIGxldCAoICsrICkgPSBVaS5qb2luX3kgaW5cbiAgICBVaS5tb3VzZV9hcmVhIG1vdXNlX2hhbmRsZXJcbiAgICAgIChyZW5kZXIgcHJlZml4IHNjcm9sbGJhcl9iZ1xuICAgICAgKysgcmVuZGVyIGhhbmRsZSBzY3JvbGxiYXJfZmdcbiAgICAgICsrIHJlbmRlciBzdWZmaXggc2Nyb2xsYmFyX2JnKVxuXG4gIGxldCBzY3JvbGxib3ggdCA9XG4gICAgKCogS2VlcCB0cmFjayBvZiBzY3JvbGwgc3RhdGUgKilcbiAgICBsZXQgc3RhdGVfdmFyID0gTHdkLnZhciB7IHcgPSAwLjsgaCA9IDAuOyB4ID0gMC47IHkgPSAwLiB9IGluXG4gICAgKCogS2VlcCB0cmFjayBvZiBzaXplIGF2YWlsYWJsZSBmb3IgZGlzcGxheSAqKVxuICAgIGxldCB1cGRhdGVfc2l6ZSB+dyB+aCA9XG4gICAgICBsZXQgc3RhdGUgPSBMd2QucGVlayBzdGF0ZV92YXIgaW5cbiAgICAgIGlmIHN0YXRlLncgPD4gdyB8fCBzdGF0ZS5oIDw+IGggdGhlblxuICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhciB7IHN0YXRlIHdpdGggdzsgaCB9XG4gICAgaW5cbiAgICBsZXQgbWVhc3VyZV9zaXplIGJvZHkgPVxuICAgICAgVWkuc2l6ZV9zZW5zb3IgdXBkYXRlX3NpemVcbiAgICAgICAgKFVpLnJlc2l6ZSB+dzowLiB+aDowLiB+c3c6MS4gfnNoOjEuIGJvZHkpXG4gICAgaW5cbiAgICAoKiBHaXZlbiBib2R5IGFuZCBzdGF0ZSwgY29tcG9zaXRlIHNjcm9sbCBiYXJzICopXG4gICAgbGV0IGNvbXBvc2VfYmFycyBib2R5IHN0YXRlID1cbiAgICAgIGxldCBidywgYmggPSAoVWkubGF5b3V0X3dpZHRoIGJvZHksIFVpLmxheW91dF9oZWlnaHQgYm9keSkgaW5cbiAgICAgICgqIExvZ2ljIHRvIGRldGVybWluZSB3aGljaCBzY3JvbGwgYmFyIHNob3VsZCBiZSB2aXNpYmxlICopXG4gICAgICBsZXQgaHZpc2libGUgPSBzdGF0ZS53IDwgYncgYW5kIHZ2aXNpYmxlID0gc3RhdGUuaCA8IGJoIGluXG4gICAgICBsZXQgaHZpc2libGUgPSBodmlzaWJsZSB8fCAodnZpc2libGUgJiYgc3RhdGUudyA9IGJ3KSBpblxuICAgICAgbGV0IHZ2aXNpYmxlID0gdnZpc2libGUgfHwgKGh2aXNpYmxlICYmIHN0YXRlLmggPSBiaCkgaW5cbiAgICAgICgqIENvbXB1dGUgc2l6ZSBhbmQgb2Zmc2V0cyBiYXNlZCBvbiB2aXNpYmlsaXR5ICopXG4gICAgICBsZXQgc3RhdGVfdyA9IGRlY3JfaWYgc3RhdGUudyB2dmlzaWJsZSBpblxuICAgICAgbGV0IHN0YXRlX2ggPSBkZWNyX2lmIHN0YXRlLmggaHZpc2libGUgaW5cbiAgICAgIGxldCBzdGF0ZV94ID0gYWRqdXN0X29mZnNldCBzdGF0ZV93IGJ3IHN0YXRlLnggaW5cbiAgICAgIGxldCBzdGF0ZV95ID0gYWRqdXN0X29mZnNldCBzdGF0ZV9oIGJoIHN0YXRlLnkgaW5cbiAgICAgICgqIENvbXBvc2l0ZSB2aXNpYmxlIHNjcm9sbCBiYXJzICopXG4gICAgICBsZXQgY3JvcCBiID1cbiAgICAgICAgVWkucmVzaXplIH5zdzpzY3JvbGxiYXJfd2lkdGggfnNoOnNjcm9sbGJhcl93aWR0aCB+dzowLiB+aDowLlxuICAgICAgICAgIChVaS5zaGlmdF9hcmVhIHN0YXRlX3ggc3RhdGVfeSBiKVxuICAgICAgaW5cbiAgICAgIGxldCBzZXRfdnNjcm9sbCB5ID1cbiAgICAgICAgbGV0IHN0YXRlID0gTHdkLnBlZWsgc3RhdGVfdmFyIGluXG4gICAgICAgIGlmIHN0YXRlLnkgPD4geSB0aGVuIEx3ZC5zZXQgc3RhdGVfdmFyIHsgc3RhdGUgd2l0aCB5IH1cbiAgICAgIGluXG4gICAgICBsZXQgc2V0X2hzY3JvbGwgeCA9XG4gICAgICAgIGxldCBzdGF0ZSA9IEx3ZC5wZWVrIHN0YXRlX3ZhciBpblxuICAgICAgICBpZiBzdGF0ZS54IDw+IHggdGhlbiBMd2Quc2V0IHN0YXRlX3ZhciB7IHN0YXRlIHdpdGggeCB9XG4gICAgICBpblxuICAgICAgbGV0ICggPC0+ICkgPSBVaS5qb2luX3kgYW5kICggPHw+ICkgPSBVaS5qb2luX3ggaW5cbiAgICAgIG1hdGNoIChodmlzaWJsZSwgdnZpc2libGUpIHdpdGhcbiAgICAgIHwgZmFsc2UsIGZhbHNlIC0+IGJvZHlcbiAgICAgIHwgZmFsc2UsIHRydWUgLT5cbiAgICAgICAgICBjcm9wIGJvZHkgPHw+IHZzY3JvbGxiYXIgc3RhdGVfaCBiaCBzdGF0ZV95IH5zZXQ6c2V0X3ZzY3JvbGxcbiAgICAgIHwgdHJ1ZSwgZmFsc2UgLT5cbiAgICAgICAgICBjcm9wIGJvZHkgPC0+IGhzY3JvbGxiYXIgc3RhdGVfdyBidyBzdGF0ZV94IH5zZXQ6c2V0X2hzY3JvbGxcbiAgICAgIHwgdHJ1ZSwgdHJ1ZSAtPlxuICAgICAgICAgIGNyb3AgYm9keVxuICAgICAgICAgIDx8PiB2c2Nyb2xsYmFyIHN0YXRlX2ggYmggc3RhdGVfeSB+c2V0OnNldF92c2Nyb2xsXG4gICAgICAgICAgPC0+IChoc2Nyb2xsYmFyIHN0YXRlX3cgYncgc3RhdGVfeCB+c2V0OnNldF9oc2Nyb2xsXG4gICAgICAgICAgICAgIDx8PiBVaS5zcGFjZSBzY3JvbGxiYXJfd2lkdGggc2Nyb2xsYmFyX3dpZHRoKVxuICAgIGluXG4gICAgKCogUmVuZGVyIGZpbmFsIGJveCAqKVxuICAgIEx3ZC5tYXAyIHQgKEx3ZC5nZXQgc3RhdGVfdmFyKSB+ZjooZnVuIHVpIHNpemUgLT5cbiAgICAgICAgbWVhc3VyZV9zaXplIChjb21wb3NlX2JhcnMgdWkgc2l6ZSkpXG5lbmRcbiIsIm9wZW4gSnNfb2Zfb2NhbWxcbm9wZW4gTHd0LkluZml4XG5tb2R1bGUgTlZHID0gR3JhcGh2X3dlYmdsXG5cbmxldCBfID1cbiAgTG9ncy5zZXRfcmVwb3J0ZXIgKEh1bWFuLkxvZ3NfcmVwb3J0ZXIuY29uc29sZV9yZXBvcnRlciAoKSk7XG4gIExvZ3Muc2V0X2xldmVsIChTb21lIERlYnVnKVxuXG5tb2R1bGUgTG9nID0gKHZhbCBMb2dzLnNyY19sb2cgTG9ncy5kZWZhdWx0IDogTG9ncy5MT0cpXG5cbigqIFRoaXMgc2NhbGVzIHRoZSBjYW52YXMgdG8gbWF0Y2ggdGhlIERQSSBvZiB0aGUgd2luZG93LFxuICAgaXQgcHJldmVudHMgYmx1cnJpbmVzcyB3aGVuIHJlbmRlcmluZyB0byB0aGUgY2FudmFzICopXG5sZXQgc2NhbGVfY2FudmFzIChjYW52YXMgOiBEb21faHRtbC5jYW52YXNFbGVtZW50IEpzLnQpID1cbiAgbGV0IGRwciA9IERvbV9odG1sLndpbmRvdyMjLmRldmljZVBpeGVsUmF0aW8gaW5cbiAgbGV0IHJlY3QgPSBjYW52YXMjI2dldEJvdW5kaW5nQ2xpZW50UmVjdCBpblxuICBsZXQgd2lkdGggPSByZWN0IyMucmlnaHQgLS4gcmVjdCMjLmxlZnQgaW5cbiAgbGV0IGhlaWdodCA9IHJlY3QjIy5ib3R0b20gLS4gcmVjdCMjLnRvcCBpblxuICBjYW52YXMjIy53aWR0aCA6PSB3aWR0aCAqLiBkcHIgfD4gaW50X29mX2Zsb2F0O1xuICBjYW52YXMjIy5oZWlnaHQgOj0gaGVpZ2h0ICouIGRwciB8PiBpbnRfb2ZfZmxvYXQ7XG4gIGxldCB3aWR0aCA9XG4gICAgUHJpbnRmLnNwcmludGYgXCIlZHB4XCIgKGludF9vZl9mbG9hdCB3aWR0aCkgfD4gSnMuc3RyaW5nXG4gIGluXG4gIGxldCBoZWlnaHQgPVxuICAgIFByaW50Zi5zcHJpbnRmIFwiJWRweFwiIChpbnRfb2ZfZmxvYXQgaGVpZ2h0KSB8PiBKcy5zdHJpbmdcbiAgaW5cbiAgY2FudmFzIyMuc3R5bGUjIy53aWR0aCA6PSB3aWR0aDtcbiAgY2FudmFzIyMuc3R5bGUjIy5oZWlnaHQgOj0gaGVpZ2h0XG5cbmxldCB3ZWJnbF9pbml0aWFsaXplIGNhbnZhcyA9XG4gIHNjYWxlX2NhbnZhcyBjYW52YXM7XG4gICgqIEdyYXBodiByZXF1aXJlcyBhIHN0ZW5jaWwgYnVmZmVyIHRvIHdvcmsgcHJvcGVybHkgKilcbiAgbGV0IGF0dHJzID0gV2ViR0wuZGVmYXVsdENvbnRleHRBdHRyaWJ1dGVzIGluXG4gIGF0dHJzIyMuc3RlbmNpbCA6PSBKcy5fdHJ1ZTtcbiAgbWF0Y2hcbiAgICBXZWJHTC5nZXRDb250ZXh0V2l0aEF0dHJpYnV0ZXMgY2FudmFzIGF0dHJzIHw+IEpzLk9wdC50b19vcHRpb25cbiAgd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgIHByaW50X2VuZGxpbmUgXCJTb3JyeSB5b3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJHTFwiO1xuICAgICAgcmFpc2UgRXhpdFxuICB8IFNvbWUgY3R4IC0+IGN0eFxuXG5sZXQgZ3JhcGh2X2luaXRpYWxpemUgd2ViZ2xfY3R4ID1cbiAgbGV0IG9wZW4gTlZHIGluXG4gIGxldCB2ZyA9XG4gICAgY3JlYXRlXG4gICAgICB+ZmxhZ3M6Q3JlYXRlRmxhZ3MuKGFudGlhbGlhcyBsb3Igc3RlbmNpbF9zdHJva2VzKVxuICAgICAgd2ViZ2xfY3R4XG4gIGluXG4gICgqIEZpbGUgaW4gdGhpcyBjYXNlIGlzIGFjdHVhbGx5IHRoZSBDU1MgZm9udCBuYW1lICopXG4gIFRleHQuY3JlYXRlIHZnIH5uYW1lOlwic2Fuc1wiIH5maWxlOlwic2Fuc1wiIHw+IGlnbm9yZTtcbiAgd2ViZ2xfY3R4IyNjbGVhckNvbG9yIDAuMyAwLjMgMC4zMiAxLjtcbiAgdmdcblxubGV0IHJlcXVlc3RfYW5pbWF0aW9uX2ZyYW1lICgpID1cbiAgbGV0IHQsIHMgPSBMd3Qud2FpdCAoKSBpblxuICBsZXQgKF8gOiBEb21faHRtbC5hbmltYXRpb25fZnJhbWVfcmVxdWVzdF9pZCkgPVxuICAgIERvbV9odG1sLndpbmRvdyMjcmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAoSnMud3JhcF9jYWxsYmFjayAoZnVuICh0aW1lIDogZmxvYXQpIC0+IEx3dC53YWtldXAgcyB0aW1lKSlcbiAgaW5cbiAgdFxuXG5sZXQgcmVuZGVyX3N0cmVhbSBjYW52YXMgd2ViZ2xfY3R4IHZnXG4gICAgKHJlbmRlciA6IE5WRy50IC0+ID90aW1lOmZsb2F0IC0+IEdnLnAyIC0+IEh1bWFuLkkudCAtPiB1bml0KSA6XG4gICAgSHVtYW4uSS50IEx3dF9zdHJlYW0udCAtPiB1bml0IEx3dC50ID1cbiAgTHd0X3N0cmVhbS5pdGVyX24gKGZ1biBpIC0+XG4gICAgICByZXF1ZXN0X2FuaW1hdGlvbl9mcmFtZSAoKSA+Pj0gZnVuIHRpbWUgLT5cbiAgICAgIHdlYmdsX2N0eCMjY2xlYXJcbiAgICAgICAgKHdlYmdsX2N0eCMjLl9DT0xPUl9CVUZGRVJfQklUX1xuICAgICAgICBsb3Igd2ViZ2xfY3R4IyMuX0RFUFRIX0JVRkZFUl9CSVRfXG4gICAgICAgIGxvciB3ZWJnbF9jdHgjIy5fU1RFTkNJTF9CVUZGRVJfQklUXyk7XG4gICAgICBsZXQgZGV2aWNlX3JhdGlvID0gRG9tX2h0bWwud2luZG93IyMuZGV2aWNlUGl4ZWxSYXRpbyBpblxuICAgICAgTlZHLmJlZ2luX2ZyYW1lIHZnIH53aWR0aDpjYW52YXMjIy53aWR0aCB+aGVpZ2h0OmNhbnZhcyMjLmhlaWdodFxuICAgICAgICB+ZGV2aWNlX3JhdGlvO1xuICAgICAgTlZHLlRyYW5zZm9ybS5zY2FsZSB2ZyB+eDpkZXZpY2VfcmF0aW8gfnk6ZGV2aWNlX3JhdGlvO1xuICAgICAgcmVuZGVyIHZnIH50aW1lIEdnLlAyLm8gaTtcbiAgICAgIE5WRy5lbmRfZnJhbWUgdmc7XG4gICAgICBMd3QucmV0dXJuX3VuaXQpXG5cbm9wZW4gSHVtYW5cblxubGV0IF8gPVxuICBsZXQgY2FudmFzID1cbiAgICBKcy5VbnNhZmUuY29lcmNlIChEb21faHRtbC5nZXRFbGVtZW50QnlJZF9leG4gXCJjYW52YXNcIilcbiAgaW5cbiAgbGV0IHdlYmdsX2N0eCA9IHdlYmdsX2luaXRpYWxpemUgY2FudmFzIGluXG4gIGxldCB2ZyA9IGdyYXBodl9pbml0aWFsaXplIHdlYmdsX2N0eCBpblxuICBsZXQgb3BlbiBKc19vZl9vY2FtbF9sd3QuTHd0X2pzX2V2ZW50cyBpblxuICBsZXQgb3BlbiBOb3R0dWkgaW5cbiAgbGV0IGdyYXZpdHlfcGFkID0gR3Jhdml0eS5tYWtlIH5oOmBOZWdhdGl2ZSB+djpgTmVnYXRpdmUgaW5cbiAgbGV0IGdyYXZpdHlfY3JvcCA9IEdyYXZpdHkubWFrZSB+aDpgUG9zaXRpdmUgfnY6YE5lZ2F0aXZlIGluXG4gIGxldCBib2R5ID0gTHdkLnZhciAoTHdkLnB1cmUgVWkuZW1wdHkpIGluXG4gIGxldCB3bSA9IE5vdHR1aV93aWRnZXRzLndpbmRvd19tYW5hZ2VyIChMd2Quam9pbiAoTHdkLmdldCBib2R5KSkgaW5cbiAgbGV0IHVpID1cbiAgICBOb3R0dWlfd2lkZ2V0cy4oXG4gICAgICBlZGl0X2FyZWFcbiAgICAgICAgfnRhYmxlOlxuICAgICAgICAgIChtdWx0aWZpZWxkX29mX3N0cmluZ1xuICAgICAgICAgICAgIFwiZWRpdCBtZT9cXG5cXFxuICAgICAgICAgICAgICBkZXJwIGRlcnAgZGVycFxcblxcXG4gICAgICAgICAgICAgIGhlcnAgaGVycCBkZXJwXFxuXFxcbiAgICAgICAgICAgICAgZGluZyBkb25nIGJlZXAgYmVlcFwiKVxuICAgICAgICAoKVxuICAgICAgKCogdmxpc3Rfb2ZfdGV4dFxuICAgICAgICAgQEAgTHdkLnB1cmVcbiAgICAgICAgICAgICAgXCJuYXZpZ2F0ZSBtZT9cXG5cXFxuICAgICAgICAgICAgICAgZGVycCBkZXJwIGRlcnBcXG5cXFxuICAgICAgICAgICAgICAgaGVycCBoZXJwIGRlcnBcXG5cXFxuICAgICAgICAgICAgICAgZGluZyBkb25nIGJlZXAgYmVlcFwiICopXG4gICAgICAoKiBAQCBMd2RfdXRpbHMucGFjayBVaS5wYWNrX3lcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgZWRpdF9maWVsZCBlZGl0X21lO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJkZXJwIGRlcnAgZGVycFwiO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJoZXJwIGhlcnAgZGVycFwiO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJkaW5nIGRvbmcgYmVlcCBiZWVwXCI7XG4gICAgICAgICAgICAgIHN0cmluZyBcImRlcnAgZGVycCBkZXJwXCI7XG4gICAgICAgICAgICAgIHN0cmluZyBcImhlcnAgaGVycCBkZXJwXCI7XG4gICAgICAgICAgICAgIHN0cmluZyBcImRpbmcgZG9uZyBiZWVwIGJlZXBcIjtcbiAgICAgICAgICAgICAgc3RyaW5nIFwiZGVycCBkZXJwIGRlcnBcIjtcbiAgICAgICAgICAgICAgc3RyaW5nIFwiaGVycCBoZXJwIGRlcnBcIjtcbiAgICAgICAgICAgICAgc3RyaW5nIFwiZGluZyBkb25nIGJlZXAgYmVlcFwiO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJkZXJwIGRlcnAgZGVycFwiO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJoZXJwIGhlcnAgZGVycFwiO1xuICAgICAgICAgICAgICBzdHJpbmcgXCJkaW5nIGRvbmcgYmVlcCBiZWVwXCI7XG4gICAgICAgICAgICAgIG1haW5fbWVudV9pdGVtIHdtIFwiUXVpdFwiIChmdW4gKCkgLT4gZXhpdCAwKTtcbiAgICAgICAgICAgIF0gKikpXG4gIGluXG4gIGxldCByb290ID1cbiAgICBMd2Quc2V0IGJvZHlcbiAgICAgIChMd2QubWFwIH5mOihVaS5yZXNpemUgfnBhZDpncmF2aXR5X3BhZCB+Y3JvcDpncmF2aXR5X2Nyb3ApIHVpKTtcbiAgICBOb3R0dWlfd2lkZ2V0cy53aW5kb3dfbWFuYWdlcl92aWV3IHdtXG4gIGluXG5cbiAgbGV0IGV2ZW50cywgcHVzaF9ldmVudCA9IEx3dF9zdHJlYW0uY3JlYXRlICgpIGluXG4gIGxldCBpbWFnZXMgPVxuICAgIEh1bWFuLk5vdHR1aV9sd3QucmVuZGVyIHZnXG4gICAgICB+c2l6ZTooR2cuUDIudiBjYW52YXMjIy53aWR0aCBjYW52YXMjIy5oZWlnaHQpXG4gICAgICBldmVudHMgcm9vdFxuICBpblxuICBhc3luYyAoZnVuICgpIC0+XG4gICAgICByZW5kZXJfc3RyZWFtIGNhbnZhcyB3ZWJnbF9jdHggdmdcbiAgICAgICAgKGZ1biB2ZyA/KHRpbWUgPSAwLikgcCBpIC0+XG4gICAgICAgICAgbGV0IF8gPSB0aW1lIGluXG4gICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtIFwiRHJhd2luZyBpbWFnZTogcD0lYSBuPSVhXCIgR2cuVjIucHAgcFxuICAgICAgICAgICAgICAgIChJLkRyYXcucHAgfmF0dHI6QS5kYXJrKVxuICAgICAgICAgICAgICAgIGkpO1xuICAgICAgICAgIGxldCBwJyA9IEkuRHJhdy5ub2RlIHZnIEEuZGFyayBwIGkgaW5cbiAgICAgICAgICBMb2dzLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtIFwiRHJhd2luZyBmaW5pc2hlZDogcCc9JWFcIiBHZy5WMi5wcCBwJykpXG4gICAgICAgIGltYWdlcyk7XG4gIGJ1ZmZlcmVkX2xvb3AgKG1ha2VfZXZlbnQgRG9tX2h0bWwuRXZlbnQua2V5ZG93bikgRG9tX2h0bWwuZG9jdW1lbnRcbiAgICAoZnVuIGV2IF8gLT5cbiAgICAgIEx3dC5yZXR1cm5cbiAgICAgIEBAIHB1c2hfZXZlbnQgKFNvbWUgKGBLZXkgKEV2ZW50X2pzLmV2dF9vZl9qc2tleSBldikpKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRW5zdXJlIHRoYXQgW2F0X2V4aXRdIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgZXZlcnkgcHJvZ3JhbSAqKVxuXG5sZXQgXyA9IGRvX2F0X2V4aXQoKVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJib290X2pzLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2J5dGVzX2JvdW5kX2Vycm9yIiwiY2FtbF9ieXRlc191bnNhZmVfZ2V0IiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2NyZWF0ZV9ieXRlcyIsImNhbWxfbWxfYnl0ZXNfbGVuZ3RoIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiQXJyYXkiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsImNhbWxfYmxpdF9zdHJpbmciLCJlIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsIm9rIiwiZmlsZSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmlsZSIsImZkIiwicmVxdWlyZSIsImVyciIsImJ1Zl9vZmZzZXQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJvIiwianNfc3RhdHMiLCJ0b19kaXIiLCJ0YXJnZXQiLCJsaW5rIiwiZmlsZV9raW5kIiwiY2FtbF9nZXRfcm9vdCIsImNhbWxfZmFpbHdpdGgiLCJjYW1sX3Jvb3QiLCJqc29vX21vdW50X3BvaW50IiwicmVzb2x2ZV9mc19kZXZpY2UiLCJjYW1sX3N5c19pc19kaXJlY3RvcnkiLCJjYW1sX3JhaXNlX25vdF9mb3VuZCIsImNhbWxfc3lzX2dldGVudiIsImciLCJ1bmRlZmluZWQiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsIk1sT2JqZWN0VGFibGUiLCJOYWl2ZUxvb2t1cCIsIm9ianMiLCJjYW1sX3N5c19yZW5hbWUiLCJvX3Jvb3QiLCJuX3Jvb3QiLCJjYW1sX2xvZzEwX2Zsb2F0IiwidW5peF91bmxpbmsiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwidW5peF9ybWRpciIsImNhbWxfbWxfcmVmaWxsX2lucHV0IiwiY2hhbiIsInN0ciIsInN0cl9sZW4iLCJjYW1sX21sX2NoYW5uZWxzIiwiY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0IiwiY2hhbmlkIiwiY2FtbF9hcnJheV9ib3VuZF9lcnJvciIsImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lIiwiY2FtbF9nY19taW5vciIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfaW50X2NvbXBhcmUiLCJiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nIiwiYmExIiwiYmExX29mZiIsImJhMiIsImJhMl9vZmYiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJ0bXAiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXkiLCJ1bml4X2dldHRpbWVvZmRheSIsIkRhdGUiLCJjYW1sX211bCIsImNhbWxfaGFzaF9taXhfaW50IiwibnVtX2RpZ2l0c19uYXQiLCJuYXQiLCJjYW1sX2hhc2hfbmF0IiwiY2FtbF9jYWxsX2dlbiIsImFyZ3NMZW4iLCJleHRyYV9hcmdzIiwiYXJndW1lbnRzIiwibmFyZ3MiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX2djX2NvdW50ZXJzIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsInVuaXhfaGFzX3N5bWxpbmsiLCJ1bml0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsInBvczIiLCJzbGljZSIsImJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlcyIsInNyYyIsInNyY19vZmYiLCJkc3QiLCJkc3Rfb2ZmIiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsIkluZmluaXR5IiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJpbnQzMmEiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImV4cCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJkYXRhIiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiTnVtYmVyIiwiY2FtbF9ieXRlc19jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsInoiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0IiwiYXJyIiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImNhcnJ5IiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJib3Jyb3ciLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJjYW1sX2NvbXBhcmUiLCJjYW1sX2ZyZXNoX29vX2lkIiwiY2FtbF9pbnQ2NF90b19mbG9hdCIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwiY2FtbF9vYmpfYmxvY2siLCJjYW1sX2dyX2NsZWFyX2dyYXBoIiwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciIsImJzIiwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCIsIl91bml0IiwibHhvcl9kaWdpdF9uYXQiLCJjYW1sX29ial9hZGRfb2Zmc2V0IiwiY2FtbF9maW5hbF9yZWxlYXNlIiwiY2FtbF9qc190b19hcnJheSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQxNiIsImkxNiIsImNhbWxfc3RyaW5nX3NldDE2IiwiY2FtbF9ieXRlc19zZXQ2NCIsImk2NCIsImNhbWxfaW50NjRfYnN3YXAiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2ZpbGxfc3RyaW5nIiwiY2FtbF9nY19tYWpvciIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYXNlIiwiYmFja3RyayIsInVuaXhfZ2V0dWlkIiwiY2FtbF9zeXNfZmlsZV9leGlzdHMiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9hcnJheV9zdWIiLCJjYW1sX2J5dGVzX2VxdWFsIiwiY2FtbF9ncl9zaXplX3giLCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIiwib3NfdHlwZSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4iLCJjYW1sX2Nvc2hfZmxvYXQiLCJjYW1sX2VwaGVfa2V5X29mZnNldCIsImNhbWxfd2Vha19jaGVjayIsImNhbWxfZXBoZV9jaGVja19rZXkiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwiY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIiwiY2FtbF9sZXNzZXF1YWwiLCJjYW1sX2Fjb3NoX2Zsb2F0IiwiY2FtbF9tbF9mbHVzaCIsIm91dHB1dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF93ZWFrX2dldCIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsIndpbl9jbGVhbnVwIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9zeXNfaXNhdHR5IiwiX2NoYW4iLCJpc19kaWdpdF96ZXJvIiwidW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nIiwiY2FtbF9qc19zZXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwidW5peF9sb2NhbHRpbWUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJjYW1sX3dlYWtfY3JlYXRlIiwiY2FtbF9lcGhlX2NyZWF0ZSIsImNhbWxfanNfdG9fYnl0ZV9zdHJpbmciLCJ1bml4X21rdGltZSIsInRtIiwidG0yIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9oeXBvdF9mbG9hdCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJieXRlczIiLCJiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzIiwiY2FtbF9lcmZjX2Zsb2F0IiwiY2FtbF9ncl9maWxsX3BvbHkiLCJhciIsImNhbWxfZ2NfcXVpY2tfc3RhdCIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzIiwibnRoX2RpZ2l0X25hdCIsImNhbWxfYXJyYXlfYmxpdCIsImNhbWxfZmxvYXRfb2Zfc3RyaW5nIiwibTMiLCJtYW50aXNzYSIsInBhcnNlSW50IiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIiwiY2FtbF9saXN0X3RvX2pzX2FycmF5IiwiY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUiLCJjYW1sX291dHB1dF92YWwiLCJXcml0ZXIiLCJ2YWx1ZSIsImZsYWdzIiwibm9fc2hhcmluZyIsImNsb3N1cmVzIiwiaW50ZXJuX29ial90YWJsZSIsIm1lbW8iLCJleGlzdGluZ19vZmZzZXQiLCJleHRlcm5fcmVjIiwib3BzIiwic3pfMzJfNjQiLCJoZWFkZXJfcG9zIiwib2xkX3BvcyIsInR5cGVfb2ZfdiIsImNhbWxfc3RyaW5nX29mX2FycmF5IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIiwiY2FtbF9yYWlzZV9ub3RfYV9kaXIiLCJjYW1sX3N5c19zeXN0ZW1fY29tbWFuZCIsImNtZCIsInVuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbiIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsInVuaXhfbHN0YXQiLCJ1bml4X2xzdGF0XzY0IiwianNfcHJpbnRfc3Rkb3V0IiwiY2FtbF9jb3B5c2lnbl9mbG9hdCIsImNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSIsImNhbWxfbWQ1X2J5dGVzIiwiYWRkIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsIm1kNSIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9pbnQ2NF9hZGQiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImJpdHMiLCJvbmUiLCJjYW1sX2dyX3NpemVfeSIsImNhbWxfbWxfcG9zX2luIiwiY2FtbF9pbnQ2NF9hbmQiLCJjYW1sX3N5c19jb25zdF93b3JkX3NpemUiLCJjYW1sX3N0ZF9vdXRwdXQiLCJzbGVuIiwianNfcHJpbnRfc3RkZXJyIiwiY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCIsImlkeCIsImluZm8iLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwiTWxTdHJpbmdSZWFkZXIiLCJjYW1sX2Zsb2F0X29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciIsIl9tYWdpYyIsIl9ibG9ja19sZW4iLCJudW1fb2JqZWN0cyIsIl9zaXplXzMyIiwiX3NpemVfNjQiLCJvYmpfY291bnRlciIsImludGVybl9yZWMiLCJoZWFkZXIiLCJleHBlY3RlZF9zaXplIiwiY2FtbF9zdHJpbmdfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJwcmVmaXhfbWF0Y2giLCJvcCIsInNhcmciLCJ1YXJnIiwiZ3JvdXAiLCJFcnJvciIsInJlX3NlYXJjaF9iYWNrd2FyZCIsImNhbWxfanNfZnJvbV9zdHJpbmciLCJjYW1sX2JhX3N1YiIsImNoYW5nZWRfZGltIiwibXVsIiwibmV3X2RpbXMiLCJuZXdfZGF0YSIsImNhbWxfZ2NfZnVsbF9tYWpvciIsImNhbWxfYnl0ZXNfc2V0MzIiLCJpMzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsInN0YXJ0IiwiY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24iLCJoYW5kbGVyIiwiYXRfZXhpdCIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfZXBoZV9jaGVja19kYXRhIiwiY2FtbF9ieXRlc19nZXQxNiIsImNhbWxfb2JqX21ha2VfZm9yd2FyZCIsImNhbWxfanNfZnJvbV9ib29sIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lIiwiY2FtbF9leHAyX2Zsb2F0IiwiY2FtbF9ncl9jbG9zZV9ncmFwaCIsImNhbWxfY3JlYXRlX3N0cmluZyIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfbWQ1X2NoYW4iLCJjaGFuX2xlbiIsImNhbWxfb2JqX2R1cCIsImNhbWxfd2Vha19nZXRfY29weSIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsInN0cmluZyIsImpzc3RyaW5nIiwiaWQiLCJjYW1sX21sX291dHB1dCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImwxIiwibDIiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsImNhbWxfanNfZXhwciIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyIsImNhbWxfZXZlbnRsb2dfcmVzdW1lIiwiY2FtbF9oYXNoX3VuaXZfcGFyYW0iLCJjb3VudCIsImxpbWl0Iiwib2JqIiwiaGFzaF9hY2N1IiwiaGFzaF9hdXgiLCJqc2J5dGVzIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJlbmQiLCJjYW1sX3B1cmVfanNfZXhwciIsImJsaXRfbmF0IiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIiwiY2FtbF9wYXJzZV9kaWdpdCIsImNhbWxfaW50NjRfb2Zfc3RyaW5nIiwiYmFzZTY0IiwidGhyZXNob2xkIiwiY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmciLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9tbF9pbnB1dF9jaGFyIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNhbWxfYmFfZ2V0XzIiLCJ3aW5faGFuZGxlX2ZkIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsIndpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbCIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsImNhbWxfZ3JfYXJjX2F1eCIsImN0eCIsImN4IiwiY3kiLCJyeSIsInJ4Iiwicm90IiwieFBvcyIsInlQb3MiLCJ4UG9zX3ByZXYiLCJ5UG9zX3ByZXYiLCJzcGFjZSIsImRlbHRhIiwiY2FtbF9ncl9maWxsX2FyYyIsImNhbWxfYmFfc2xpY2UiLCJudW1faW5kcyIsInN1Yl9kaW1zIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsImdldDMyIiwiY2FtbF9pbnB1dF92YWx1ZSIsImNhbWxfYmFfa2luZCIsImNhbWxfanNfZnVuX2NhbGwiLCJjYW1sX2djX21ham9yX3NsaWNlIiwid29yayIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsInVuaXhfZ210aW1lIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsInVuaXhfdGltZSIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJyZV9zdHJpbmdfbWF0Y2giLCJCaWdTdHJpbmdSZWFkZXIiLCJjYW1sX2dyX2R1bXBfaW1hZ2UiLCJjYW1sX2JhX2dldF9nZW5lcmljIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmciLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9maWxsX2JpZ3N0cmluZyIsImJ1Zl9vZmYiLCJidWZfbGVuIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfanNfdG9fYm9vbCIsImNhbWxfZ3JfY3JlYXRlX2ltYWdlIiwiY2FtbF9lcGhlX2dldF9rZXlfY29weSIsImNhbWxfbGVzc3RoYW4iLCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IiwiYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZyIsImJhX29mZiIsInN0cl9vZmYiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJiaWdzdHJpbmdhZl9tZW1jaHIiLCJjaHIiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImZzIiwiY2hhbm5lbCIsImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSIsImNhbWxfcm91bmRfZmxvYXQiLCJ1bml4X3N0YXQiLCJ1bml4X3N0YXRfNjQiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IiwiYXJpdHkiLCJjYW1sX2djX21pbm9yX3dvcmRzIiwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2siLCJsYW5kX2RpZ2l0X25hdCIsImNhbWxfaW50NjRfbW9kIiwidW5peF9yZWFkbGluayIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwid2luX3N0YXJ0dXAiLCJjYW1sX2JhX3NldF8zIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmciLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImRpZ2l0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJjYW1sX3N0cmluZ19zZXQ2NCIsImNhbWxfZ3Jfc3RhdGVfY3JlYXRlIiwiY2FudmFzIiwiY29udGV4dCIsImNhbWxfanNfd3JhcF9jYWxsYmFjayIsImNhbWxfZ3JfZHJhd19hcmMiLCJjYW1sX2JhX21hcF9maWxlIiwidmZkIiwic2hhcmVkIiwiY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZSIsImFyZ24iLCJ1bml4X3N5bWxpbmsiLCJzcmNfcm9vdCIsImRzdF9yb290IiwiY2FtbF9iYV9jcmVhdGVfZnJvbSIsImRhdGExIiwiZGF0YTIiLCJqc3R5cCIsImNhbWxfdGFuaF9mbG9hdCIsImNhbWxfZ3JfZHJhd19zdHIiLCJkeCIsImNhbWxfZ3JfZHJhd19zdHJpbmciLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmciLCJjYW1sX21sX3Bvc19pbl82NCIsImNhbWxfZ3JfZHJhd19pbWFnZSIsImltYWdlIiwiY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUiLCJfY2hhbm5lbCIsImNhbWxfc3RyaW5nX3NldCIsImNhbWxfc3lzX3JtZGlyIiwiY2FtbF9tbF9wb3Nfb3V0IiwiY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCIsImNhbWxfYnl0ZXNfbm90ZXF1YWwiLCJjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyIsImNhbWxfanNfb2JqZWN0IiwiY2FtbF9iYV9jcmVhdGUiLCJkaW1zX21sIiwiY2FtbF93ZWFrX2JsaXQiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfYnN3YXAxNiIsImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlIiwiY2FtbF9maW5hbF9yZWdpc3RlciIsImNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZyIsImFsaWdubWVudCIsImNhbWxfZ3JfZHJhd19yZWN0IiwiY2FtbF9zdHJpbmdfZ2V0MTYiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJ1bml4X2dldHB3dWlkIiwiY2FtbF9jb21wYXJlX2JpZ3N0cmluZyIsImJ1ZjEiLCJidWYxX29mZiIsImJ1ZjIiLCJidWYyX29mZiIsImNhbWxfaGFzaF9taXhfc3RyaW5nIiwiY2FtbF9oYXNoIiwic2VlZCIsInF1ZXVlIiwicmQiLCJ3ciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibmVnIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsInVuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJjYW1sX2FycmF5X2NvbmNhdCIsImNhbWxfZ3Jfb3Blbl9ncmFwaCIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9lcGhlX3NldF9kYXRhIiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nIiwiY2FtbF9pbnQ2NF9vciIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwiLCJzZXRfZGlnaXRfbmF0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfc2V0MzIiLCJjYW1sX3BhcnNlX2VuZ2luZSIsInRhYmxlcyIsImVudiIsIkVSUkNPREUiLCJsb29wIiwidGVzdHNoaWZ0Iiwic2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwibjEiLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsInplcm8kNCIsIm9uZSQ0IiwiaSIsImVyYXNlX3JlbCIsInJlc3QiLCJyZXN0JDAiLCJyZXN0JDEiLCJyZXN0JDIiLCJyZXN0JDMiLCJyZXN0JDQiLCJyZXN0JDUiLCJyZXN0JDYiLCJyZXN0JDciLCJ0eSIsInJlc3QkOCIsInR5MSIsInJlc3QkOSIsInJlc3QkMTAiLCJyZXN0JDExIiwicmVzdCQxMiIsInJlc3QkMTMiLCJjb25jYXRfZm10dHkiLCJmbXR0eTEiLCJmbXR0eTIiLCJ0eTIiLCJjb25jYXRfZm10IiwiZm10MSIsImZtdDIiLCJwYWQiLCJwYWQkMCIsInByZWMiLCJwYWQkMSIsImljb252IiwicHJlYyQwIiwicGFkJDIiLCJpY29udiQwIiwicHJlYyQxIiwicGFkJDMiLCJpY29udiQxIiwicHJlYyQyIiwicGFkJDQiLCJpY29udiQyIiwicHJlYyQzIiwicGFkJDUiLCJmY29udiIsInBhZCQ2Iiwic3RyIiwiY2hyIiwiZm10dHkiLCJwYWQkNyIsImZtdHR5JDAiLCJwYWQkOCIsInJlc3QkMTQiLCJyZXN0JDE1IiwicmVzdCQxNiIsImZtdGluZ19saXQiLCJyZXN0JDE3IiwiZm10aW5nX2dlbiIsInJlc3QkMTgiLCJyZXN0JDE5IiwiY2hhcl9zZXQiLCJ3aWR0aF9vcHQiLCJyZXN0JDIwIiwiY291bnRlciIsInJlc3QkMjEiLCJyZXN0JDIyIiwiaWduIiwicmVzdCQyMyIsImYiLCJhcml0eSIsInYiLCJyIiwiY3VyIiwic2VlbiIsIm4iLCJmYWlsd2l0aCIsInMiLCJpbnZhbGlkX2FyZyIsIm1pbiIsIngiLCJ5IiwibWF4IiwiYWJzIiwibG5vdCIsIm1heF9pbnQiLCJtaW5faW50IiwiaW5maW5pdHkiLCJuZWdfaW5maW5pdHkiLCJuYW4iLCJtYXhfZmxvYXQiLCJtaW5fZmxvYXQiLCJlcHNpbG9uIiwiczEiLCJzMiIsImwxIiwibDIiLCJjaGFyX29mX2ludCIsInN0cmluZ19vZl9ib29sIiwiYiIsImJvb2xfb2Zfc3RyaW5nIiwiYm9vbF9vZl9zdHJpbmdfb3B0Iiwic3RyaW5nX29mX2ludCIsImludF9vZl9zdHJpbmdfb3B0IiwidmFsaWRfZmxvYXRfbGV4ZW0iLCJsIiwibG9vcCIsImkkMCIsImkkMSIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInNjYW4iLCJhY2N1IiwiYWNjdSQwIiwicmVzIiwiYmVnIiwibGVuJDIiLCJhY2N1JDEiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvX29mX3JhdyIsImluZm8iLCJzdGFydF9lbnYiLCJvYmoiLCJvZl92YWwiLCJzbG90IiwiaWQiLCJleHRlbnNpb25fY29uc3RydWN0b3IiLCJleHRlbnNpb25fbmFtZSIsImV4dGVuc2lvbl9pZCIsIm1heF9lcGhlX2xlbmd0aCIsImNyZWF0ZSIsImxlbmd0aCIsInJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IiwibyIsIm1zZyIsImdldF9rZXkiLCJnZXRfa2V5X2NvcHkiLCJzZXRfa2V5IiwidW5zZXRfa2V5IiwiY2hlY2tfa2V5IiwiYmxpdF9rZXkiLCJvMSIsIm8yIiwicmFpc2VfdW5kZWZpbmVkIiwiZm9yY2VfbGF6eV9ibG9jayIsImJsayIsImNsb3N1cmUiLCJyZXN1bHQiLCJmb3JjZV92YWxfbGF6eV9ibG9jayIsImZvcmNlIiwibHp2IiwidCIsImZvcmNlX3ZhbCIsInRvX2xhenkiLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcCQwIiwibWFwX3ZhbCIsImVtcHR5IiwicmV0dXJuJDAiLCJjb25zIiwibmV4dCIsImFwcGVuZCQwIiwic2VxMSIsInNlcTIiLCJtYXAkMSIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsInVuZm9sZCIsInUiLCJ1JDAiLCJpc19lbXB0eSIsInhzIiwidW5jb25zIiwieHMkMCIsImxlbmd0aF9hdXgiLCJ4cyQxIiwibGVuZ3RoJDAiLCJpdGVyaV9hdXgiLCJpdGVyaSIsImZvbGRfbGVmdGlfYXV4IiwiZm9sZF9sZWZ0aSIsImZvcl9hbGwiLCJwIiwiZXhpc3RzIiwiZmluZCIsImZpbmRfbWFwIiwiaXRlcjIiLCJ5cyIsInlzJDAiLCJ5cyQxIiwiZm9sZF9sZWZ0MiIsImZvcl9hbGwyIiwiZXhpc3RzMiIsImVxdWFsJDAiLCJlcSIsImNvbXBhcmUkMCIsImNtcCIsImluaXRfYXV4IiwiaiIsImluaXQiLCJyZXBlYXQiLCJmb3JldmVyIiwiY3ljbGVfbm9uZW1wdHkiLCJjeWNsZSIsIml0ZXJhdGUxIiwiaXRlcmF0ZSIsIm1hcGlfYXV4IiwibWFwaSIsInRhaWxfc2NhbiIsInMkMCIsInRha2VfYXV4IiwidGFrZSIsImZvcmNlX2Ryb3AiLCJuJDAiLCJuJDEiLCJkcm9wIiwidGFrZV93aGlsZSIsImRyb3Bfd2hpbGUiLCJub2RlIiwiZ3JvdXAiLCJmcm9tX2xhenkiLCJtZW1vaXplIiwiZmFpbHVyZSIsIm9uY2UiLCJhY3Rpb24iLCJtZW1vaXplJDAiLCJvbmNlJDAiLCJ6aXAiLCJtYXAyIiwiaW50ZXJsZWF2ZSIsInNvcnRlZF9tZXJnZTFyIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZTFsIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsImRpYWdvbmFscyIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwiZXJyX25vdF9zdiIsImVycl9ub3RfbGF0aW4xIiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGhfYXV4JDAiLCJwYXJhbSQxIiwibGVuZ3RoJDEiLCJjb25zJDAiLCJudGgiLCJudGhfYXV4IiwibCQwIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwiaW5pdF90YWlscmVjX2F1eCIsImluaXRfYXV4JDAiLCJybWFwX2YiLCJhMiIsImExIiwicm1hcDJfZiIsInBhaXIiLCJhdXgiLCJ4JDAiLCJwYXJ0IiwicnkiLCJyeCIsInQyIiwiaDIiLCJ0MSIsImgxIiwicmV2X21lcmdlIiwiYWNjdSQyIiwicmV2X21lcmdlX3JldiIsInJldl9zb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInNvcnQiLCJ0bCQwIiwiYWNjdSQzIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwic3Jjb2ZmIiwiZHN0b2ZmIiwic3Jjb2ZmJDAiLCJjcHlsZW4iLCJvZnMxIiwib2ZzMiIsImVuc3VyZV9nZSIsInN1bV9sZW5ndGhzIiwic2VwbGVuIiwidW5zYWZlX2JsaXRzIiwiZHN0Iiwic2VwIiwiaXNfc3BhY2UiLCJhcHBseTEiLCJwcmVmaXgiLCJsZW5fcyIsImxlbl9wcmUiLCJzdWZmaXgiLCJsZW5fc3VmIiwiZGlmZiIsImluZGV4X3JlYyIsImxpbSIsImluZGV4X3JlY19vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4X3JlY19vcHQiLCJyZXNpemUiLCJuZXdfbGVuIiwibmV3X2J1ZiIsImdldCQxIiwiZ2V0JDIiLCJzZXQkMCIsInNldCQxIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8yIiwiYjAiLCJiMSIsInV0Zl84X3VjaGFyXzMiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImdldCIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0IiwibGFzdCQwIiwibGFzdCQxIiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJ1JDEiLCJsbyIsImVuc3VyZV9nZSQwIiwic3VtX2xlbmd0aHMkMCIsInVuc2FmZV9ibGl0cyQwIiwiaXNfc3BhY2UkMCIsImVzY2FwZV9pZl9uZWVkZWQiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInRvbGlzdCIsInJlcyQwIiwicmVzJDEiLCJsaXN0X2xlbmd0aCIsImZpbGwiLCJpbnB1dF9hcnJheSIsImVsdCIsIm91dHB1dF9hcnJheSIsImVsdCQwIiwiYWNjJDIiLCJhMCIsImJpIiwiYWkiLCJuYSIsIm5iIiwibWF4c29uIiwiaTMxIiwidHJpY2tsZWRvd24iLCJ0cmlja2xlIiwiYnViYmxlZG93biIsImJ1YmJsZSIsInRyaWNrbGV1cCIsImZhdGhlciIsImUkMCIsIm1lcmdlIiwic3JjMW9mcyIsInNyYzFsZW4iLCJzcmMyIiwic3JjMm9mcyIsInNyYzJsZW4iLCJkc3RvZnMiLCJzcmMxciIsInNyYzJyIiwiaTEiLCJpMiIsImkxJDAiLCJzMSQwIiwiaTIkMCIsInMyJDAiLCJkJDAiLCJpMiQxIiwiZCQxIiwiczIkMSIsImkxJDEiLCJkJDIiLCJzMSQxIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsIm9mX3Jldl9saXN0IiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsImlzX2Zpbml0ZSIsImlzX2luZmluaXRlIiwiaXNfbmFuIiwicGkiLCJpc19pbnRlZ2VyIiwic3VjYyQwIiwicHJlZCQwIiwiZXF1YWwkMTEiLCJtaW4kMiIsIm1heCQyIiwibWluX21heCIsIm1pbl9udW0iLCJtYXhfbnVtIiwibWluX21heF9udW0iLCJoYXNoJDAiLCJ1bnNhZmVfZmlsbCIsImNoZWNrIiwibWFrZSQyIiwiaW5pdCQ0IiwiYXBwZW5kJDIiLCJlbnN1cmVfZ2UkMSIsInN1bV9sZW5ndGhzJDEiLCJjb25jYXQkMyIsImhsZW4iLCJzdWIkMiIsImNvcHkkMiIsImZpbGwkMSIsImJsaXQkMiIsInNyYyIsInNvZnMiLCJkb2ZzIiwidG9fbGlzdCQyIiwib2ZfbGlzdCQwIiwiaCIsIml0ZXIkNiIsIml0ZXIyJDIiLCJtYXAkOCIsIm1hcDIkMiIsIml0ZXJpJDQiLCJtYXBpJDQiLCJmb2xkX2xlZnQkNCIsImZvbGRfcmlnaHQkMyIsImV4aXN0cyQ0IiwiZm9yX2FsbCQ0IiwibWVtJDEiLCJtZW1faWVlZSIsInNvcnQkMCIsInN0YWJsZV9zb3J0IiwidG9fc2VxJDUiLCJ0b19zZXFpJDIiLCJvZl9yZXZfbGlzdCQwIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwibGV4X3JlZmlsbCIsInJlYWRfZnVuIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2Z1bmN0aW9uIiwib3B0Iiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImNtZCIsImFyZyIsImNtZCQwIiwiYXJnJDAiLCJhcmckMSIsImFyZyQyIiwiY21kJDEiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImV4biIsImN1cnJfY2hhciIsInRvayIsInBlZWtfdmFsIiwic3ltYm9sX3N0YXJ0X3BvcyIsInN0IiwiZW4iLCJzeW1ib2xfZW5kX3BvcyIsInJoc19zdGFydF9wb3MiLCJyaHNfZW5kX3BvcyIsInN5bWJvbF9zdGFydCIsInN5bWJvbF9lbmQiLCJyaHNfc3RhcnQiLCJyaHNfZW5kIiwiaXNfY3VycmVudF9sb29rYWhlYWQiLCJwYXJzZV9lcnJvciIsImhlaWdodCIsImhsIiwiaCQwIiwiaHIiLCJiYWwiLCJsciIsImx2IiwibGwiLCJscnIiLCJscnYiLCJscmwiLCJyciIsInJ2IiwicmwiLCJybHIiLCJybHYiLCJybGwiLCJhZGQiLCJzaW5nbGV0b24iLCJhZGRfbWluX2VsZW1lbnQiLCJhZGRfbWF4X2VsZW1lbnQiLCJyaCIsImxoIiwibWluX2VsdCIsIm1pbl9lbHRfb3B0IiwibWF4X2VsdCIsIm1heF9lbHRfb3B0IiwicmVtb3ZlX21pbl9lbHQiLCJyJDAiLCJzcGxpdCIsInByZXMiLCJwcmVzJDAiLCJtZW0iLCJyZW1vdmUiLCJ1bmlvbiIsInIyIiwicjIkMCIsInIxJDAiLCJpbnRlciIsInNwbGl0X2JpcyIsImRpc2pvaW50IiwiY29uc19lbnVtIiwicyQxIiwiZSQxIiwiY29tcGFyZV9hdXgiLCJlMSQwIiwiZTIkMCIsImUyJDEiLCJlMSQxIiwiZTIkMiIsImUxJDIiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3RfYXV4IiwiZmluZF9maXJzdCIsImZpbmRfZmlyc3Rfb3B0X2F1eCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0X2F1eCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHRfYXV4IiwiZmluZF9sYXN0X29wdCIsImZpbmRfb3B0IiwidHJ5X2pvaW4iLCJ0cnlfY29uY2F0IiwidiQxIiwib2Zfc29ydGVkX2xpc3QiLCJzdWIiLCJsJDMiLCJ4MCIsImwkNCIsIngwJDAiLCJsJDUiLCJ4MCQxIiwibmwiLCJtaWQiLCJsJDIiLCJvZl9saXN0IiwieDQiLCJhZGRfc2VxIiwib2Zfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsIm1pbl9iaW5kaW5nIiwibWluX2JpbmRpbmdfb3B0IiwibWF4X2JpbmRpbmciLCJtYXhfYmluZGluZ19vcHQiLCJyZW1vdmVfbWluX2JpbmRpbmciLCJ1cGRhdGUiLCJkYXRhJDAiLCJtJDAiLCJhZGRfbWluX2JpbmRpbmciLCJrIiwiYWRkX21heF9iaW5kaW5nIiwiY29uY2F0X29yX2pvaW4iLCJkMSIsImQyIiwiZDIkMCIsImQxJDAiLCJkMiQxIiwiZDEkMSIsInB2ZCIsImZ2ZCIsIm0kMSIsIm0xIiwibTIiLCJlcXVhbF9hdXgiLCJiaW5kaW5nc19hdXgiLCJiaW5kaW5ncyIsImNyZWF0ZSQwIiwiY2xlYXIiLCJjb3B5JDMiLCJwdXNoIiwicG9wIiwicG9wX29wdCIsInRvcCIsInRvcF9vcHQiLCJpc19lbXB0eSQwIiwibGVuZ3RoJDIiLCJpdGVyJDciLCJmb2xkJDIiLCJ0b19zZXEkNiIsIm9mX3NlcSQ0IiwiY3JlYXRlJDEiLCJjbGVhciQwIiwiY2VsbCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlJDAiLCJ0YWtlX29wdCIsImNvcHkkNCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsImNlbGwkMCIsImNvcHkkNSIsImlzX2VtcHR5JDEiLCJsZW5ndGgkMyIsIml0ZXIkOCIsIml0ZXIkOSIsImZvbGQkMyIsImZvbGQkNCIsInRyYW5zZmVyIiwicTEiLCJxMiIsInRvX3NlcSQ3IiwiYWRkX3NlcSQwIiwib2Zfc2VxJDUiLCJjb3VudCIsImZpbGxfYnVmZiIsImdldF9kYXRhIiwiZDExIiwiYSQwIiwiYSQxIiwicGVla19kYXRhIiwicGVlayQwIiwianVua19kYXRhIiwianVuayIsIm5nZXRfZGF0YSIsImFsIiwibnBlZWtfZGF0YSIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkMTAiLCJzdHJtIiwiZG9fcmVjIiwiZnJvbSIsIm9mX2xpc3QkMSIsIm9mX3N0cmluZyIsIm9mX2J5dGVzJDAiLCJvZl9jaGFubmVsIiwiaWFwcCIsImljb25zIiwiaXNpbmciLCJsYXBwIiwibGNvbnMiLCJsc2luZyIsInNlbXB0eSIsInNsYXp5IiwiZHVtcF9kYXRhIiwiZHVtcCIsImNyZWF0ZSQyIiwiY29udGVudHMiLCJ0b19ieXRlcyQwIiwic3ViJDMiLCJibGl0JDMiLCJudGgkMCIsImxlbmd0aCQ0IiwiY2xlYXIkMSIsInJlc2V0IiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwicG9zIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwicmVhbGx5X2lucHV0X3VwX3RvIiwiYWxyZWFkeV9yZWFkIiwidG9fcmVhZCIsImFscmVhZHlfcmVhZCQwIiwidG9fcmVhZCQwIiwiYWxyZWFkeV9yZWFkJDEiLCJ0b19yZWFkJDEiLCJ1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8iLCJhZGRfY2hhbm5lbCIsIm91dHB1dF9idWZmZXIiLCJjbG9zaW5nIiwiYWR2YW5jZV90b19jbG9zaW5nIiwib3BlbmluZyIsImFkdmFuY2UiLCJrJDAiLCJrJDEiLCJrJDIiLCJhZHZhbmNlX3RvX25vbl9hbHBoYSIsImZpbmRfaWRlbnQiLCJzdG9wJDAiLCJzdG9wIiwiYWRkX3N1YnN0aXR1dGUiLCJzdWJzdCIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsImN1cnJlbnQiLCJuZXh0X2kiLCJpZGVudCIsInRydW5jYXRlIiwidG9fc2VxJDgiLCJ0b19zZXFpJDMiLCJhZGRfc2VxJDEiLCJvZl9zZXEkNiIsImFkZF9pbnQ4IiwiYWRkX2ludDE2X25lIiwiYWRkX2ludDMyX25lIiwiYWRkX2ludDY0X25lIiwiYWRkX2ludDE2X2xlIiwiYWRkX2ludDE2X2JlIiwiYWRkX2ludDMyX2xlIiwiYWRkX2ludDMyX2JlIiwiYWRkX2ludDY0X2xlIiwiYWRkX2ludDY0X2JlIiwiY3JlYXRlX2NoYXJfc2V0IiwiYWRkX2luX2NoYXJfc2V0Iiwic3RyX2luZCIsIm1hc2siLCJmcmVlemVfY2hhcl9zZXQiLCJyZXZfY2hhcl9zZXQiLCJjaGFyX3NldCQwIiwiaXNfaW5fY2hhcl9zZXQiLCJwYWRfb2ZfcGFkX29wdCIsInBhZF9vcHQiLCJ3aWR0aCIsInByZWNfb2ZfcHJlY19vcHQiLCJwcmVjX29wdCIsIm5kZWMiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwYWRfb3B0JDUiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiY2hhcl9vZl9jb3VudGVyIiwiYnByaW50X2NoYXJfc2V0IiwicHJpbnRfb3V0JDAiLCJwcmludF9maXJzdCIsInByaW50X3NlY29uZCIsInByaW50X2luIiwiaiQwIiwiaiQxIiwicHJpbnRfb3V0IiwicHJpbnRfc3RhcnQiLCJpc19hbG9uZSIsImFmdGVyIiwiYmVmb3JlIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9pbnRfZm10IiwiYnByaW50X2FsdGludF9mbXQiLCJicHJpbnRfZmNvbnZfZmxhZyIsImJwcmludF9mbG9hdF9mbXQiLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJzdWJfZm10dHkiLCJzdWJfZm10dHkkMCIsImludF9vZl9jdXN0b21fYXJpdHkiLCJicHJpbnRfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiZm10JDEiLCJzdHJpbmdfb2ZfZm10Iiwic3ltbSIsInRyYW5zIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZm10dHlfcmVsX2RldCIsImY0IiwiZjIiLCJyZXN0MiQ5IiwicmVzdDIkMTAiLCJyZXN0MiQxMSIsInJlc3QyJDEyIiwicmVzdDIkMTMiLCJkZSIsImVkIiwiYWYiLCJmYSIsImRlJDAiLCJlZCQwIiwiYWYkMCIsImZhJDAiLCJkZSQxIiwiZWQkMSIsImFmJDEiLCJmYSQxIiwiZGUkMiIsImVkJDIiLCJhZiQyIiwiZmEkMiIsImRlJDMiLCJlZCQzIiwiYWYkMyIsImZhJDMiLCJkZSQ0IiwiZWQkNCIsImFmJDQiLCJmYSQ0IiwiZGUkNSIsImVkJDUiLCJhZiQ1IiwiZmEkNSIsImRlJDYiLCJlZCQ2IiwiYWYkNiIsImZhJDYiLCJkZSQ3IiwiZWQkNyIsImFmJDciLCJmYSQ3IiwiZGUkOCIsImVkJDgiLCJhZiQ4IiwiZmEkOCIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwiZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IiwiZm10dHlfb2ZfcGFkZGluZ19mbXR0eSIsImZtdHR5X29mX2N1c3RvbSIsImFyaXR5JDAiLCJmbXR0eV9vZl9mbXQkMCIsImZtdHR5X29mX2ZtdCIsInR5X3Jlc3QiLCJwcmVjX3R5IiwidHlfcmVzdCQwIiwicHJlY190eSQwIiwidHlfcmVzdCQxIiwicHJlY190eSQxIiwidHlfcmVzdCQyIiwicHJlY190eSQyIiwidHlfcmVzdCQzIiwicHJlY190eSQzIiwiZm10dHkkMSIsImZtdHR5JDIiLCJmbXR0eSQzIiwidHkkMCIsImZtdHR5JDQiLCJmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpIiwidHlwZV9mb3JtYXRfZ2VuIiwiZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0Iiwic3ViX2ZtdHR5X3Jlc3QkMCIsImZtdHR5X3Jlc3QkMCIsInN1Yl9mbXR0eV9yZXN0JDEiLCJzdWJfZm10dHlfcmVzdCQyIiwiZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMyIsImZtdCQyIiwic3ViX2ZtdHR5X3Jlc3QkNCIsImZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDUiLCJmbXQkMyIsInN1Yl9mbXR0eV9yZXN0JDYiLCJmbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ3IiwiZm10JDQiLCJzdWJfZm10dHlfcmVzdCQ4IiwiZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkOSIsImZtdCQ1Iiwic3ViX2ZtdHR5X3Jlc3QkMTAiLCJmbXR0eV9yZXN0JDUiLCJzdWJfZm10dHlfcmVzdCQxMSIsImZtdCQ2Iiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJmbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQxMyIsImZtdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkMTQiLCJmbXR0eV9yZXN0JDciLCJzdWIyX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTUiLCJzdWIyX2ZtdHR5JDAiLCJmbXQkOCIsInN1Yl9mbXR0eV9yZXN0JDE2IiwiZm10dHlfcmVzdCQ4Iiwic3ViMl9mbXR0eSQxIiwic3ViMV9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE3Iiwic3ViMl9mbXR0eSQyIiwic3ViMV9mbXR0eSQwIiwiZm10JDkiLCJzdWJfZm10dHlfcmVzdCQxOCIsImZtdHR5X3Jlc3QkOSIsInN1Yl9mbXR0eV9yZXN0JDE5IiwiZm10JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjEiLCJmbXQkMTEiLCJzdWJfZm10dHlfcmVzdCQyMiIsImZtdHR5X3Jlc3QkMTEiLCJzdWJfZm10dHlfcmVzdCQyMyIsImZtdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI0IiwiZm10dHlfcmVzdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI1IiwiZm10JDEzIiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJmbXRfcmVzdCIsImZtdF9yZXN0JDAiLCJmbXRfcmVzdCQxIiwiZm10X3Jlc3QkMiIsImZtdF9yZXN0JDMiLCJmbXRfcmVzdCQ0IiwiZm10dHkkNSIsImZtdF9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10X3Jlc3QkNiIsInByZWMkNSIsInByZWMkNiIsImZtdHR5JDciLCJmbXRfcmVzdCQ3IiwicHJlYyQ3IiwicHJlYyQ4IiwiZm10dHkkOCIsImZtdF9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10X3Jlc3QkOSIsImZtdHR5JDEwIiwiZm10X3Jlc3QkMTAiLCJmbXR0eSQxMSIsImZtdF9yZXN0JDExIiwiZm10dHkkMTIiLCJmbXRfcmVzdCQxMiIsImZtdHR5JDEzIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdF9yZXN0JDE0IiwiZm10dHkkMTUiLCJmbXQkMTUiLCJmbXRfcmVzdCQxNSIsImZtdHR5JDE2IiwiZm10JDE2IiwiZm10X3Jlc3QkMTYiLCJmbXR0eSQxNyIsImZtdCQxNyIsImZtdF9yZXN0JDE3IiwidHlwZV9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X3Jlc3QkMTMiLCJmbXRfcmVzdCQxOCIsImZtdHR5JDE4IiwiZm10JDE4IiwiZm10dHlfcmVzdCQxNCIsImZtdF9yZXN0JDE5IiwiZm10dHkkMTkiLCJmbXQkMTkiLCJmbXR0eV9yZXN0JDE1IiwiZm10X3Jlc3QkMjAiLCJmbXR0eSQyMCIsImZtdCQyMCIsInR5cGVfaWdub3JlZF9wYXJhbSIsImZtdDAiLCJmbXR0eTAiLCJmbXR0eTMiLCJmbXQzIiwiZm10MSQwIiwiZm10dHkyJDAiLCJmbXQyJDAiLCJmbXR0eTMkMCIsImZtdDMkMCIsInR5cGVfaWdub3JlZF9wYXJhbV9vbmUiLCJ0eXBlX2Zvcm1hdCIsInJlY2FzdCIsImZpeF9wYWRkaW5nIiwid2lkdGgkMCIsImZpeF9pbnRfcHJlY2lzaW9uIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2ljb252IiwiZm9ybWF0X29mX2ljb252TCIsImZvcm1hdF9vZl9pY29udmwiLCJmb3JtYXRfb2ZfaWNvbnZuIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJhZGRfZG90X2lmX25lZWRlZCIsImNhbWxfc3BlY2lhbF92YWwiLCJmb3JtYXRfY2FtbF9jaGFyIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9wcmludGYkMCIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiIsIm1ha2VfcGFkZGluZyIsIm1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiIsImFjYyQzIiwiYWNjJDQiLCJrJDMiLCJrYWNjIiwiayQ0IiwibWFrZV9pZ25vcmVkX3BhcmFtJDAiLCJtYWtlX2N1c3RvbSQwIiwibWFrZV9pbnZhbGlkX2FyZyIsIm1ha2VfZnJvbV9mbXR0eSQwIiwibWFrZV9mcm9tX2ZtdHR5IiwibWFrZV9jdXN0b20iLCJtYWtlX2lnbm9yZWRfcGFyYW0iLCJwJDAiLCJwJDEiLCJjb25zdCQwIiwibWFrZV9pcHJpbnRmJDAiLCJtYWtlX2lwcmludGYiLCJmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiIsImtvYyIsInJlc3QkMjQiLCJyZXN0JDI1IiwiZm5fb2ZfY3VzdG9tX2FyaXR5JDAiLCJmbl9vZl9jdXN0b21fYXJpdHkiLCJvdXRwdXRfYWNjIiwicCQyIiwicCQzIiwicCQ0IiwiYnVmcHV0X2FjYyIsInN0cnB1dF9hY2MiLCJmYWlsd2l0aF9tZXNzYWdlIiwib3Blbl9ib3hfb2Zfc3RyaW5nIiwiaW52YWxpZF9ib3giLCJwYXJzZV9zcGFjZXMiLCJwYXJzZV9sd29yZCIsInBhcnNlX2ludCIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0Iiwic2l6ZSIsInBhcnNlX3Bvc2l0aXZlIiwic3RyX2luZCQwIiwic3RyX2luZCQxIiwicGFyc2VfaW50ZWdlciIsIm5leHRfaW5kIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJwY3RfaW5kIiwib3B0aW9uIiwic3ViZm10IiwiY29tcHV0ZV9mbG9hdF9jb252IiwicGx1cyIsInNwYWNlIiwia2luZCIsImNvbXB1dGVfaW50X2NvbnYiLCJwbHVzJDAiLCJzcGFjZSQwIiwiY291bnRlcl9vZl9jaGFyIiwiaXNfaW50X2Jhc2UiLCJzZWFyY2hfc3ViZm9ybWF0X2VuZCIsInN1Yl9lbmQiLCJzdHJfaW5kJDIiLCJzdWJfZW5kJDAiLCJzdHJfaW5kJDMiLCJzdWJfZW5kJDEiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJzdHJfaW5kJDciLCJwYXJzZV9jaGFyX3NldCIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicGFyc2VfY2hhcl9zZXRfc3RhcnQiLCJyZXZlcnNlIiwicmV2ZXJzZSQwIiwicGFyc2VfYWZ0ZXJfYXQiLCJwYXJzZV90YWciLCJwYXJzZSIsInBhcnNlX2dvb2RfYnJlYWsiLCJwYXJzZV9tYWdpY19zaXplIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2ZtdCIsInN1Yl9mb3JtYXQkMCIsImZvcm1hdHRpbmckMCIsImZvcm1hdHRpbmciLCJzdHJfaW5kXzEiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwic3RyX2luZF80Iiwic3RyX2luZF81IiwicGFyc2VfcGFkZGluZyIsIm1pbnVzIiwibmV3X2luZCIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9wcmVjaXNpb24iLCJwYXJzZV9jb252ZXJzaW9uIiwicGFyc2VfbGl0ZXJhbCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzJDAiLCJwYXJzZV9jb252IiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJnZXRfcHJlY19vcHQiLCJmbXRfcmVzdWx0IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiaWdub3JlZCQ5IiwiY2hhcl9mb3JtYXQiLCJzY2FuX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJpZ25vcmVkJDUiLCJpZ25vcmVkJDgiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQxIiwiaWduJDAiLCJwYXJzZV9mb3JtYXQiLCJwYXJzZV9pZ24iLCJwYXJzZV9mbGFncyIsInNldF9mbGFnIiwicmVhZF9mbGFncyIsImJlZ19pbmQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwicHJpbnRfc3BlYyIsImRvYyIsInNwZWMiLCJrZXkiLCJoZWxwX2FjdGlvbiIsImFkZF9oZWxwIiwic3BlY2xpc3QiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsInVzYWdlX3N0cmluZyIsInVzYWdlIiwiYm9vbF9vZl9zdHJpbmdfb3B0JDAiLCJpbnRfb2Zfc3RyaW5nX29wdCQwIiwiZmxvYXRfb2Zfc3RyaW5nX29wdCIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXyIsImFsbG93X2V4cGFuZCIsImFyZ3YiLCJhbm9uZnVuIiwiaW5pdHBvcyIsImNvbnZlcnRfZXJyb3IiLCJwcm9nbmFtZSIsImZvbGxvdyQwIiwia2V5d29yZCIsIm5vX2FyZyQwIiwiZm9sbG93Iiwibm9fYXJnIiwiZ2V0X2FyZyQwIiwiZ2V0X2FyZyIsImNvbnN1bWVfYXJnJDAiLCJjb25zdW1lX2FyZyIsInRyZWF0X2FjdGlvbiQwIiwidHJlYXRfYWN0aW9uIiwiZiQwIiwiZiQxIiwiciQxIiwiZiQyIiwiciQyIiwiZiQzIiwiYXJnJDMiLCJ4JDEiLCJyJDMiLCJhcmckNCIsIngkMiIsInNwZWNzIiwiZiQ0IiwiYXJnJDUiLCJmJDUiLCJmJDYiLCJmJDciLCJhcmckNiIsIm5ld2FyZyIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIiwicGFyc2VfYXJndl9keW5hbWljIiwiY3VycmVudCQwIiwicGFyc2VfYXJndiIsIm1zZyQwIiwibXNnJDEiLCJwYXJzZV9keW5hbWljIiwicGFyc2VfZXhwYW5kIiwic2Vjb25kX3dvcmQiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhZGRfcGFkZGluZyIsImtzZCIsImN1dGNvbCQwIiwic3BhY2VzJDAiLCJjdXRjb2wiLCJrd2RfbGVuIiwic3BhY2VzIiwiYWxpZ24iLCJsaW1pdCIsImNvbXBsZXRlZCIsInRyaW1fY3IiLCJyZWFkX2F1eCIsInRyaW0iLCJmaWxlIiwid29yZHMiLCJzdGFzaCIsIndvcmQiLCJ3b3JkJDAiLCJyZWFkX2FyZyIsInJlYWRfYXJnMCIsIndyaXRlX2F1eCIsImFyZ3MiLCJ3cml0ZV9hcmciLCJ3cml0ZV9hcmcwIiwicHJpbnRlcnMiLCJmaWVsZCIsIm90aGVyX2ZpZWxkcyIsImZpZWxkcyIsInVzZV9wcmludGVycyIsImNvbnYiLCJ0b19zdHJpbmdfZGVmYXVsdCIsImNoYXIkMCIsImxpbmUiLCJjaGFyJDEiLCJsaW5lJDAiLCJmaWxlJDAiLCJjaGFyJDIiLCJsaW5lJDEiLCJmaWxlJDEiLCJjb25zdHJ1Y3RvciIsInRvX3N0cmluZyQ2IiwicHJpbnQiLCJmY3QiLCJjYXRjaCQwIiwicmF3X2JhY2t0cmFjZV9lbnRyaWVzIiwiYnQiLCJjb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJmb3JtYXRfYmFja3RyYWNlX3Nsb3QiLCJpc19yYWlzZSIsInByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJvdXRjaGFuIiwiYmFja3RyYWNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsInJhd19iYWNrdHJhY2UiLCJwcmludF9iYWNrdHJhY2UiLCJiYWNrdHJhY2VfdG9fc3RyaW5nIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwidXNhYmxlX3Nsb3QiLCJleGlzdHNfdXNhYmxlIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsInRyeV9nZXRfcmF3X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMCIsInJhd19iYWNrdHJhY2UkMCIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24kMCIsImNvbnN0JDEiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuIiwid29ya19idCIsInByaW50X3N0YXQiLCJhbGxvY2F0ZWRfYnl0ZXMiLCJtYSIsInBybyIsIm1pIiwiY3JlYXRlX2FsYXJtIiwiZGVsZXRlX2FsYXJtIiwibnVsbF90cmFja2VyIiwic2FtcGxpbmdfcmF0ZSIsInRyYWNrZXIiLCJjYWxsc3RhY2tfc2l6ZSIsInN0cmluZyIsImJ5dGVzIiwic3Vic3RyaW5nIiwic3ViYnl0ZXMiLCJmaWxlbmFtZSIsIm91dHB1dCQwIiwiZGlnZXN0IiwiaW5wdXQkMCIsImNoYXJfaGV4IiwidG9faGV4IiwiZnJvbV9oZXgiLCJkaWdpdCIsImJ5dGUkMCIsIm5ld19zdGF0ZSIsImFzc2lnbiIsInN0MSIsInN0MiIsImZ1bGxfaW5pdCIsInNlZWQiLCJjb21iaW5lIiwiZXh0cmFjdCIsInNlZWQkMCIsIm1ha2UkMyIsIm1ha2Vfc2VsZl9pbml0IiwiY29weSQ2IiwiYml0cyIsImN1cnZhbCIsIm5ld3ZhbCIsIm5ld3ZhbDMwIiwiaW50YXV4IiwiaW50JDAiLCJib3VuZCIsImludDYzYXV4IiwiYnBvcyIsImJwb3MkMCIsImZ1bGxfaW50IiwiaW50MzJhdXgiLCJpbnQzMiIsImludDY0YXV4IiwiaW50NjQiLCJuYXRpdmVpbnQiLCJyYXdmbG9hdCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImNvcHkkNyIsImxlbmd0aCQ1IiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsImluc2VydF9idWNrZXQiLCJjZWxsJDEiLCJuaWR4IiwibWF0Y2giLCJyZXNpemUkMCIsIm9zaXplIiwiaXRlciQxMSIsImRvX2J1Y2tldCIsIm9sZF90cmF2IiwiZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImZvbGQkNSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidG9fc2VxJDkiLCJ0YmxfZGF0YSIsImJ1Y2siLCJidWNrJDAiLCJidWNrJDEiLCJ0b19zZXFfa2V5cyIsInRvX3NlcV92YWx1ZXMiLCJrZXlfaW5kZXgiLCJidWNrZXQiLCJyZW1vdmVfYnVja2V0IiwiZmluZF9yZWMiLCJrMSIsIm5leHQxIiwiazIiLCJuZXh0MiIsImszIiwiZDMiLCJuZXh0MyIsImZpbmRfcmVjX29wdCIsImZpbmRfYWxsIiwiZmluZF9pbl9idWNrZXQiLCJyZXBsYWNlX2J1Y2tldCIsInJlcGxhY2UiLCJtZW1faW5fYnVja2V0IiwicmVwbGFjZV9zZXEiLCJjb3B5Iiwic3oiLCJoYXNoJDEiLCJoYXNoX3BhcmFtIiwic2VlZGVkX2hhc2giLCJhZGQkMCIsImZpbmQkMSIsImZpbmRfb3B0JDEiLCJmaW5kX2FsbCQwIiwibWVtJDIiLCJhZGRfc2VxJDIiLCJvZl9zZXEkNyIsInJlYnVpbGQiLCJ3ZWFrX2NyZWF0ZSIsImxlbmd0aCQ2IiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQkMCIsInNldCQyIiwiZ2V0JDMiLCJnZXRfY29weSIsImNoZWNrJDAiLCJibGl0JDQiLCJmaWxsJDIiLCJhciIsImVtcHR5YnVja2V0IiwiZ2V0X2luZGV4Iiwic3okMCIsInN6JDEiLCJmb2xkX2J1Y2tldCIsIml0ZXJfYnVja2V0IiwiaXRlcl93ZWFrIiwiY291bnRfYnVja2V0IiwibmV4dF9zeiIsInByZXZfc3oiLCJ0ZXN0X3Nocmlua19idWNrZXQiLCJoYnVja2V0IiwicHJldl9sZW4iLCJsaXZlIiwiaiQyIiwibmV3YnVja2V0IiwiYWRkX2F1eCIsInNldHRlciIsImluZGV4IiwiaGFzaGVzIiwibmV3c3oiLCJuZXdoYXNoZXMiLCJvbGRsZW4iLCJuZXd0IiwiYWRkX3dlYWsiLCJvYiIsIm9oIiwib2kiLCJuaSIsImZpbmRfb3IiLCJpZm5vdGZvdW5kIiwiZmluZF9zaGFkb3ciLCJpZmZvdW5kIiwibGVucyIsInRvdGxlbiIsImlkJDAiLCJ1bmtub3duIiwiaXNfa25vd24iLCJwcF9lbnF1ZXVlIiwidG9rZW4iLCJwcF9jbGVhcl9xdWV1ZSIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwicHBfb3V0cHV0X3NwYWNlcyIsInBwX291dHB1dF9pbmRlbnQiLCJmb3JtYXRfcHBfdGV4dCIsInRleHQiLCJmb3JtYXRfc3RyaW5nIiwiYnJlYWtfbmV3X2xpbmUiLCJyZWFsX2luZGVudCIsImJyZWFrX2xpbmUiLCJicmVha19zYW1lX2xpbmUiLCJwcF9mb3JjZV9icmVha19saW5lIiwicHBfc2tpcF90b2tlbiIsImZvcm1hdF9wcF90b2tlbiIsInRhYnMiLCJhZGRfdGFiIiwibHMiLCJ0YWdfbmFtZSIsIm1hcmtlciIsImJyZWFrcyIsImZpdHMiLCJvZmYiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJib3hfdHlwZSQwIiwidGJveCIsInRhZ19uYW1lJDAiLCJtYXJrZXIkMCIsImFkdmFuY2VfbGVmdCIsInBlbmRpbmdfY291bnQiLCJzaXplJDAiLCJlbnF1ZXVlX2FkdmFuY2UiLCJlbnF1ZXVlX3N0cmluZ19hcyIsImVucXVldWVfc3RyaW5nIiwiaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIiwic3RhY2siLCJxdWV1ZV9lbGVtIiwic2V0X3NpemUiLCJsZWZ0X3RvdGFsIiwic2Nhbl9wdXNoIiwiZWxlbSIsInBwX29wZW5fYm94X2dlbiIsImJyX3R5IiwicHBfb3Blbl9zeXNfYm94IiwicHBfY2xvc2VfYm94IiwicHBfb3Blbl9zdGFnIiwicHBfY2xvc2Vfc3RhZyIsInBwX29wZW5fdGFnIiwicHBfY2xvc2VfdGFnIiwicHBfc2V0X3ByaW50X3RhZ3MiLCJwcF9zZXRfbWFya190YWdzIiwicHBfZ2V0X3ByaW50X3RhZ3MiLCJwcF9nZXRfbWFya190YWdzIiwicHBfc2V0X3RhZ3MiLCJwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwY3QiLCJwb3QiLCJtY3QiLCJtb3QiLCJwcF9yaW5pdCIsImNsZWFyX3RhZ19zdGFjayIsInBwX2ZsdXNoX3F1ZXVlIiwicHBfcHJpbnRfYXNfc2l6ZSIsInBwX3ByaW50X2FzIiwiaXNpemUiLCJwcF9wcmludF9zdHJpbmciLCJwcF9wcmludF9ieXRlcyIsInBwX3ByaW50X2ludCIsInBwX3ByaW50X2Zsb2F0IiwicHBfcHJpbnRfYm9vbCIsInBwX3ByaW50X2NoYXIiLCJwcF9vcGVuX2hib3giLCJwcF9vcGVuX3Zib3giLCJwcF9vcGVuX2h2Ym94IiwicHBfb3Blbl9ob3Zib3giLCJwcF9vcGVuX2JveCIsInBwX3ByaW50X25ld2xpbmUiLCJwcF9wcmludF9mbHVzaCIsInBwX2ZvcmNlX25ld2xpbmUiLCJwcF9wcmludF9pZl9uZXdsaW5lIiwicHBfcHJpbnRfY3VzdG9tX2JyZWFrIiwicHBfcHJpbnRfYnJlYWsiLCJwcF9wcmludF9zcGFjZSIsInBwX3ByaW50X2N1dCIsInBwX29wZW5fdGJveCIsInBwX2Nsb3NlX3Rib3giLCJwcF9wcmludF90YnJlYWsiLCJwcF9wcmludF90YWIiLCJwcF9zZXRfdGFiIiwicHBfc2V0X21heF9ib3hlcyIsInBwX2dldF9tYXhfYm94ZXMiLCJwcF9vdmVyX21heF9ib3hlcyIsInBwX3NldF9lbGxpcHNpc190ZXh0IiwicHBfZ2V0X2VsbGlwc2lzX3RleHQiLCJwcF9saW1pdCIsInBwX3NldF9taW5fc3BhY2VfbGVmdCIsInBwX3NldF9tYXhfaW5kZW50IiwicHBfZ2V0X21heF9pbmRlbnQiLCJwcF9zZXRfbWFyZ2luIiwibmV3X21heF9pbmRlbnQiLCJ2YWxpZGF0ZV9nZW9tZXRyeSIsIm1hcmdpbiIsIm1heF9pbmRlbnQiLCJjaGVja19nZW9tZXRyeSIsImdlb21ldHJ5IiwicHBfZ2V0X21hcmdpbiIsInBwX3NldF9mdWxsX2dlb21ldHJ5IiwicHBfc2V0X2dlb21ldHJ5IiwicHBfc2FmZV9zZXRfZ2VvbWV0cnkiLCJwcF9nZXRfZ2VvbWV0cnkiLCJwcF91cGRhdGVfZ2VvbWV0cnkiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJkaXNwbGF5X25ld2xpbmUiLCJibGFua19saW5lIiwiZGlzcGxheV9pbmRlbnQiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIiwiZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnIiwiZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWciLCJkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyIsInBwX21ha2VfZm9ybWF0dGVyIiwicHBfcXVldWUiLCJzeXNfdG9rIiwic2Nhbl9zdGFjayIsInBwX21hcmdpbiIsInBwX21pbl9zcGFjZV9sZWZ0IiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJzeW1ib2xpY19mbHVzaCIsInN5bWJvbGljX25ld2xpbmUiLCJzeW1ib2xpY19zdHJpbmciLCJzeW1ib2xpY19zcGFjZXMiLCJzeW1ib2xpY19pbmRlbnQiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcV9pbiIsInNlcSQxIiwicHBfcHJpbnRfc2VxIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsIm91dHB1dF9hY2MkMCIsImJ0eSIsInAkNSIsInAkNiIsInN0cnB1dF9hY2MkMCIsInNpemUkMSIsImtmcHJpbnRmJDAiLCJpa2ZwcmludGYkMCIsImlmcHJpbnRmJDAiLCJmcHJpbnRmJDAiLCJwcmludGYkMCIsImVwcmludGYkMCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImtwcmludGYiLCJzcHJpbnRmJDAiLCJrYXNwcmludGYiLCJhc3ByaW50ZiIsImZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMiLCJwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJicHJpbnRmJDAiLCJwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJzdHJpbmdpZnkiLCJwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJmdW5zIiwibWFya19vcGVuX3RhZyIsIm1hcmtfY2xvc2VfdGFnIiwicHJpbnRfb3Blbl90YWciLCJwcmludF9jbG9zZV90YWciLCJzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJudWxsX2NoYXIiLCJuZXh0X2NoYXIiLCJpYiIsInBlZWtfY2hhciIsImNoZWNrZWRfcGVla19jaGFyIiwiZW5kX29mX2lucHV0IiwiZW9mIiwiYmVnaW5uaW5nX29mX2lucHV0IiwibmFtZV9vZl9pbnB1dCIsImNoYXJfY291bnQiLCJsaW5lX2NvdW50IiwicmVzZXRfdG9rZW4iLCJpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciIsInRva2VuX3N0cmluZyIsInRva2VuX2J1ZmZlciIsInRva2VuX2NvdW50Iiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImNyZWF0ZSQ0IiwiaW5hbWUiLCJmcm9tX3N0cmluZyQxIiwiZnJvbV9mdW5jdGlvbiQwIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZnJvbV9pY19jbG9zZV9hdF9lbmQiLCJmcm9tX2ljX3JhaXNlX2F0X2VuZCIsInN0ZGliIiwib3Blbl9pbl9maWxlIiwib3Blbl9pbiIsImZyb21fZmlsZSIsImZyb21fZmlsZV9iaW4iLCJmcm9tX2NoYW5uZWwkMCIsImNsb3NlX2luIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21faWMiLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9lbmRfb2ZfaW5wdXQiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoX2VyciIsImNpIiwiY2hhcmFjdGVyX21pc21hdGNoIiwic2tpcF93aGl0ZXMiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19uZXdsaW5lIiwiY2hlY2tfY2hhciIsInRva2VuX2NoYXIiLCJ0b2tlbl9ib29sIiwiaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIiLCJ0b2tlbl9pbnRfbGl0ZXJhbCIsInRva2VuX2ludCIsInRva2VuX2Zsb2F0IiwidG9rZW5fbmF0aXZlaW50IiwidG9rZW5faW50MzIiLCJ0b2tlbl9pbnQ2NCIsInNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIiwid2lkdGgkMiIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3N0YXIiLCJkaWdpdHAiLCJzY2FuX2RpZ2l0cyIsInNjYW5fZGlnaXRfcGx1cyIsImJhc2lzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5fdW5zaWduZWRfaW50Iiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQiLCJzY2FuX2ludF9jb252ZXJzaW9uIiwic2Nhbl9mcmFjdGlvbmFsX3BhcnQiLCJzY2FuX2V4cG9uZW50X3BhcnQiLCJzY2FuX2ludGVnZXJfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQzIiwid2lkdGgkNCIsIndpZHRoJDUiLCJ3aWR0aCQ2Iiwid2lkdGgkMTAiLCJ3aWR0aCQ3Iiwid2lkdGgkOCIsIndpZHRoJDkiLCJzY2FuX2NhbWxfZmxvYXRfcmVzdCIsIndpZHRoX3ByZWNpc2lvbiIsImZyYWNfd2lkdGgiLCJzY2FuX2NhbWxfZmxvYXQiLCJzY2FuX3N0cmluZyIsInN0cCIsInNjYW5fY2hhciIsImNoYXJfZm9yX2JhY2tzbGFzaCIsImRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2RlY2ltYWxfY29kZSIsImMwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUiLCJjaGVja19uZXh0X2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyIsInNjYW5fYmFja3NsYXNoX2NoYXIiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJmaW5kX2NoYXIiLCJmaW5kX3N0YXJ0Iiwic2Nhbl9jYW1sX3N0cmluZyIsImZpbmRfc3RvcCQwIiwic2Nhbl9iYWNrc2xhc2giLCJza2lwX3NwYWNlcyIsInNraXBfbmV3bGluZSIsInNjYW5fYm9vbCIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJmbXQkMjEiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjIiLCJmbXQkMjMiLCJmbXQkMjQiLCJ0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwibWFrZV9zY2FuZiIsInJlYWRlcnMiLCJzY2FuJDAiLCJzdHJfcmVzdCIsInBhZF9wcmVjX3NjYW5mIiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0Iiwic2NhbiQ1Iiwic2NhbiQ2Iiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsImxhYmVsIiwiZWxlbWVudCIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImdldF9tZXRob2RfbGFiZWxzIiwibmFtZXMiLCJzZXRfbWV0aG9kIiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsInNldF9kYXRhIiwic2V0X25leHQiLCJnZXRfa2V5JDAiLCJnZXRfZGF0YSQwIiwiZ2V0X25leHQiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF9rZXlzIiwibG9va3VwX2tleSIsInRhYmxlcyQwIiwidGFibGVzX2RhdGEiLCJuZXh0JDAiLCJsb29rdXBfdGFibGVzIiwicm9vdCIsInJvb3RfZGF0YSIsImdldF9jb25zdCIsImdldF92YXIiLCJnZXRfZW52IiwiZ2V0X21ldGgiLCJzZXRfdmFyIiwiYXBwX2NvbnN0IiwiYXBwX3ZhciIsImFwcF9lbnYiLCJhcHBfbWV0aCIsImFwcF9jb25zdF9jb25zdCIsImFwcF9jb25zdF92YXIiLCJhcHBfY29uc3RfbWV0aCIsImFwcF92YXJfY29uc3QiLCJhcHBfbWV0aF9jb25zdCIsImFwcF9jb25zdF9lbnYiLCJhcHBfZW52X2NvbnN0IiwibWV0aF9hcHBfY29uc3QiLCJtZXRoX2FwcF92YXIiLCJtZXRoX2FwcF9lbnYiLCJtZXRoX2FwcF9tZXRoIiwic2VuZF9jb25zdCIsInNlbmRfdmFyIiwic2VuZF9lbnYiLCJzZW5kX21ldGgiLCJuZXdfY2FjaGUiLCJtZXRob2RfaW1wbCIsImNsbyIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInNldF9tZXRob2RzIiwic3RhdHMkMCIsImluaXRfbW9kX2Jsb2NrIiwiY29tcHMiLCJtb2R1IiwiaW5pdF9tb2RfZmllbGQiLCJzaGFwZSIsImZuJDAiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfZmllbGQiLCJjbCIsInVwZGF0ZV9tb2RfYmxvY2siLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImNvbW1lbnQkMCIsIm1heWJlX25lc3RlZF9jb21tZW50IiwibWF5YmVfZW5kX2NvbW1lbnQiLCJjb21tZW50IiwiZXNjYXBlIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwiZGVjaW1hbF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsIm1heWJlX2NvbW1lbnQiLCJuZXh0X3Rva2VuIiwiaGtleSIsImNsZWFuIiwiY29udGFpbmVyIiwiaGsiLCJuZXdfZCIsImJ1Y2tldF9sZW5ndGhfYWxpdmUiLCJzdGF0c19hbGl2ZSIsIm9ial9vcHQiLCJjcmVhdGUkNSIsImdldF9rZXkkMSIsImdldF9rZXlfY29weSQwIiwic2V0X2tleSQwIiwidW5zZXRfa2V5JDAiLCJjaGVja19rZXkkMCIsImJsaXRfa2V5JDAiLCJnZXRfZGF0YSQxIiwiZ2V0X2RhdGFfY29weSIsInNldF9kYXRhJDAiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsIm1ha2UkNCIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQ1IiwiYWRkJDEiLCJ0ZXN0X2tleSIsInJlbW92ZSQwIiwiZmluZCQyIiwibGVuZ3RoJDciLCJjbGVhciQzIiwiY3JlYXRlJDYiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQyIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMSIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQ2Iiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJtYWtlJDciLCJhZGQkMiIsInRlc3Rfa2V5cyIsInJlbW92ZSQxIiwiZmluZCQzIiwibGVuZ3RoJDgiLCJjbGVhciQ0IiwiY3JlYXRlJDciLCJsZW5ndGgkOSIsImdldF9rZXkkMiIsImdldF9rZXlfY29weSQxIiwic2V0X2tleSQxIiwidW5zZXRfa2V5JDEiLCJjaGVja19rZXkkMSIsImJsaXRfa2V5JDEiLCJnZXRfZGF0YSQzIiwiZ2V0X2RhdGFfY29weSQxIiwic2V0X2RhdGEkMiIsInVuc2V0X2RhdGEkMSIsImNoZWNrX2RhdGEkMSIsImJsaXRfZGF0YSQxIiwibWFrZSQ4IiwicXVlcnkkMSIsImVxdWFsX2FycmF5Iiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX3F1b3RlIiwicXVvdGVxdW90ZSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZmluZF9iZWciLCJmaW5kX2VuZCIsImdlbmVyaWNfZGlybmFtZSIsImludGVybWVkaWF0ZV9zZXAiLCJiYXNlIiwidHJhaWxpbmdfc2VwIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInF1b3RlIiwicXVvdGVfY29tbWFuZCIsImJhc2VuYW1lIiwiZGlybmFtZSIsImlzX2Rpcl9zZXAkMCIsImlzX3JlbGF0aXZlJDAiLCJpc19pbXBsaWNpdCQwIiwiY2hlY2tfc3VmZml4JDAiLCJjaG9wX3N1ZmZpeF9vcHQkMCIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZCIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImhhc19kcml2ZSIsImlzX2xldHRlciIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMCIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY29uY2F0JDQiLCJjaG9wX3N1ZmZpeCIsImV4dGVuc2lvbl9sZW4iLCJpMCIsInNlYXJjaF9kb3QiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJwcm5nJDAiLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsInRyeV9uYW1lIiwiY291bnRlciQxIiwib3Blbl90ZW1wX2ZpbGUiLCJzdGgkMCIsInBlcm1zIiwic3RoJDEiLCJhZGQkNCIsInN1YiQ0IiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJpbnQzMiQxIiwiaW50NjQkMSIsImludCQyIiwibmF0aXZlaW50JDEiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImluaXQkNiIsImxheW91dCIsImRpbXMiLCJkbGVuIiwic2l6ZV9pbl9ieXRlcyIsImNyZWF0ZSQ4IiwiZ2V0JDQiLCJzZXQkMyIsInNpemVfaW5fYnl0ZXMkMCIsIm9mX3ZhbHVlIiwiY3JlYXRlJDkiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImNfaW5pdCIsImZvcnRyYW5faW5pdCIsImluaXQkNyIsIm9mX2FycmF5IiwiYmEiLCJjcmVhdGUkMTAiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImNfaW5pdCQwIiwiZm9ydHJhbl9pbml0JDAiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiY19pbml0JDEiLCJmb3J0cmFuX2luaXQkMSIsImluaXQkOSIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJ3aXRoX29wZW4iLCJvcGVuZnVuIiwid2l0aF9vcGVuX2JpbiIsIndpdGhfb3Blbl90ZXh0Iiwid2l0aF9vcGVuX2dlbiIsInNlZWsiLCJsZW5ndGgkMTEiLCJpbnB1dF9jaGFyJDAiLCJpbnB1dF9ieXRlJDAiLCJpbnB1dF9saW5lJDAiLCJyZWFsbHlfaW5wdXQkMCIsInJlYWxseV9pbnB1dF9zdHJpbmckMCIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMCIsImJ1ZiQxIiwicmVtIiwid2l0aF9vcGVuJDAiLCJ3aXRoX29wZW5fYmluJDAiLCJ3aXRoX29wZW5fdGV4dCQwIiwid2l0aF9vcGVuX2dlbiQwIiwic2VlayQwIiwicG9zJDAiLCJsZW5ndGgkMTIiLCJleG4iLCJtb2R1bGUiLCJnbG9iYWxUaGlzIiwibnVsbCIsInVuZGVmaW5lZCIsImpzb29fZXhwb3J0cyIsImV2ZW50IiwiU3RyaW5nIiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsInN1Y2MkMCIsInByZWQkMCIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90JDAiLCJvZl9zdHJpbmdfb3B0JDAiLCJ0b19zdHJpbmckMCIsImNvbXBhcmUkMCIsImVxdWFsJDAiLCJzcmMkMCIsImhkciIsImRpZ2VzdCIsImtpbmQiLCJsZW5ndGgiLCJzZXJpYWxpemVyIiwidiIsImhkciQwIiwic3RhdGUiLCJnbyIsImNvbnRpbnVlJDAiLCJsZW4iLCJvZmYiLCJzdHIiLCJzdHIkMCIsImN0eCQxIiwiZW1wdHkkMSIsImVtcHR5JDIiLCJkZWZhdWx0JDAiLCJ6ZXJvIiwiY29uc29sZSQwIiwibGV2ZWwiLCJzIiwibWV0aCIsImNvbnNvbGUiLCJiIiwiZmx1c2giLCJwcGYiLCJob29rIiwiY29uc29sZV9yZXBvcnQiLCJzcmMiLCJvdmVyIiwiayIsIm1zZ2YiLCJrJDAiLCJoZWFkZXIiLCJ0YWdzIiwiZm10IiwiaCIsImNvbnNvbGVfcmVwb3J0ZXIiLCJnaXRfYWZfc2NoZW1lIiwiZ2l0X2FmX3BvcnQiLCJnaXRfYWZfaG9zdG5hbWUiLCJwcF9lcnJvciIsIndpdGhfcmVkaXJlY3RzIiwib3B0IiwiZiIsInVyaSIsInN0aCIsIm1heCIsInRibCIsImdvIiwiYm9keSIsInJlc3AiLCJzdGF0dXNfY29kZSIsImdldCIsImhlYWRlcnMiLCJ4IiwiaGVhZGVycyQwIiwicG9zdCIsImJvZHkkMCIsImNvbnRleHQiLCJjdHgiLCJlZG4iLCJrMSIsImN0eCQwIiwiZWRuJDAiLCJrMSQwIiwiY3R4JDEiLCJwcF9lcnJvciQwIiwiZXJyIiwicHBfd3JpdGVfZXJyb3IiLCJ3cml0ZSIsInQiLCJjcyIsIm91dHB1dCIsIm91dHB1dCQwIiwid3JpdGV2IiwiY3NzIiwiciIsInJlYWQiLCJhZHZlcnRpc2VkX3JlZnMiLCJ1cmkkMCIsImNvbnRlbnRzIiwiY2xvc2UiLCJjb25uZWN0IiwiZW5kcG9pbnQiLCJodHRwX3Byb3RvY29sIiwiaHR0cF9lbmRwb2ludCIsImNvbm5lY3QkMCIsImswIiwiZ2l0X3RyYW5zbWlzc2lvbiIsImdpdF9zY2hlbWUiLCJrMiIsImdpdF91cmkiLCJnaXRfaHR0cF9oZWFkZXJzIiwiaGFuZHNoYWtlIiwidXJpMCIsInVyaTEiLCJmbG93IiwiY3R4JDIiLCJzcGVjIiwib2Zfc3RyaW5nIiwic3RyIiwidG9fc3RyaW5nIiwicmVmZXJlbmNlIiwiaGVhZCIsImJhcmUiLCJidWZmZXJzIiwiaW5pdCIsInJvb3QiLCJjb25maWciLCJjb25maWckMCIsImNvbmZpZyQxIiwiY29uZmlnJDIiLCJyZW1vdGUiLCJzeW1ib2wiLCJhIiwiZSIsImZldGNoJDAiLCJkZXB0aCIsImJyYW5jaCIsImluaXQkMCIsInRlc3RfcG9wdWxhdGUiLCJhZGQiLCJwIiwidGVzdF9wdWxsIiwicmVwbyIsInVwc3RyZWFtIiwic3RyaW5nX29mX2NvZGUiLCJjaCIsImkiLCJwcF9jb2RlIiwidiIsInBwX21vZHMiLCJldnRfb2ZfanNrZXkiLCJldnQiLCJzJDAiLCJzJDEiLCJncmF5IiwibGlnaHQiLCJkYXJrIiwiYmxhY2siLCJyZWQiLCJncmVlbiIsInllbGxvdyIsImJsdWUiLCJtYWdlbnRhIiwiY3lhbiIsIndoaXRlIiwibGlnaHRibGFjayIsImxpZ2h0cmVkIiwibGlnaHRncmVlbiIsImxpZ2h0eWVsbG93IiwibGlnaHRibHVlIiwibGlnaHRtYWdlbnRhIiwibGlnaHRjeWFuIiwibGlnaHR3aGl0ZSIsInN5bWJvbCQwIiwicmVwbGFjZSIsInByZXYiLCJuZXh0IiwicHAiLCJidHciLCJidWYiLCJta3N0cmluZyIsInJlcyIsImFkZF9kZWNpbWFsIiwiZDEiLCJkMiIsImQzIiwiYWRkX2NoYXJzIiwiYyIsIm4iLCJzdWIwY3AiLCJsZW4iLCJvZl9jaGFyc19yZXYiLCJicyIsInhzIiwiZXF1YWwkMCIsIm9mX3N0cmluZyQwIiwidG9fc3RyaW5nJDAiLCJvZl91Y2hhcnMiLCJ1Y3MiLCJyZXBsaWNhdGVjIiwidyIsInBwJDAiLCJwcCQxIiwidW5kZXJsaW5lIiwic2l6ZSIsIm1lcmdlJDAiLCJzMiIsInNldCQwIiwidmciLCJyZXBsYWNlJDAiLCJwcCQyIiwiZXF1YWwkMSIsImVtcHR5JDMiLCJkYXJrJDAiLCJzeW1ib2wkMSIsImExIiwiYTIiLCJyZXBsYWNlJDEiLCJmZyIsImJnIiwiZm9udCIsIm1lcmdlJDEiLCJzZXQkMSIsIm1lbnVfbWFpbiIsIm1lbnVfc3ViIiwiY2xpY2thYmxlIiwiY3Vyc29yIiwiZW1wdHkkNCIsImFsbCIsInAyX21heCIsInAxIiwicDIiLCJib3VuZHNfc2VnbWVudCIsImFzY2VuZGVyIiwic2l6ZSQwIiwiYWR2YW5jZSIsInltYXgiLCJ5bWluIiwicGFyYW0kMSIsInQyIiwidDEiLCJ0MiQwIiwidDEkMCIsInAxJDAiLCJwMiQwIiwidDIkMSIsInQxJDEiLCJyaWdodCIsImxlZnQiLCJib3R0b20iLCJ0b3AiLCJ0JDAiLCJwJDAiLCJlbXB0eSQ1Iiwidm9pZCQwIiwiYXR0ciIsImEwIiwic3ltYm9sJDIiLCJzeW1ib2wkMyIsInN5bWJvbCQ0IiwiaGNyb3AiLCJpbWciLCJ2Y3JvcCIsImNyb3AiLCJsIiwic3RoJDAiLCJzdGgkMSIsInN0aCQyIiwiaW1nJDAiLCJocGFkIiwidnBhZCIsInBhZCIsImNvbmNhdG0iLCJ6IiwieHMkMCIsImFjY3VtIiwieHMkMSIsImhjYXQiLCJ2Y2F0IiwiemNhdCIsInRleHQkMCIsInR4Iiwic3RyaW5nIiwidWNoYXJzIiwibGluc3BjbSIsIm0iLCJ0YWJ1bGF0ZSIsIm0kMCIsIm4kMCIsInkiLCJjaGFycyIsImN0b3IiLCJ3JDAiLCJoJDAiLCJsaW5lIiwiY2hhciQwIiwic3RyX29mX2JveCIsImZpbGxfYm94IiwiY29sb3IiLCJwYXRoX2JveCIsIndpZHRoIiwidmNhdCQwIiwiZCIsInBwJDMiLCJjb21wb3NlIiwiYSQwIiwiYSQxIiwiYSQyIiwidCQxIiwiZGltIiwic2VnbWVudF9rZXJuX2NhY2hlIiwic2VnbWVudCIsIm1ldHJpY3MiLCJzeiIsIm5vZGUiLCJ0ZXh0IiwiaTIiLCJpMSIsImkyJDAiLCJpMSQwIiwiaTIkMSIsImkxJDEiLCJwMSQxIiwicDIkMSIsImkkMCIsInAwIiwicDEkMiIsImkkMSIsInAwJDAiLCJwMSQzIiwibWF4aSIsIm1pbmkiLCJtYWtlJDAiLCJlbXB0eSQ2IiwidmFyJDAiLCJzdGF0dXMkMCIsImhhc19mb2N1cyIsImNsb2NrIiwicmVxdWVzdF92YXIiLCJyZXF1ZXN0IiwicmVsZWFzZSIsIm1lcmdlJDIiLCJzMSIsInBwX3ZhciIsInBwX3N0YXR1cyIsIm1ha2UkMSIsInYkMCIsInBwX2RpcmVjdGlvbiIsImRpciIsInBwJDQiLCJnIiwicGFpciIsIm1ha2UkMiIsInNoaWZ0IiwiZnN0Iiwic2l6ZSQxIiwic25kIiwibWF5X2hhbmRsZSIsInBwX21heV9oYW5kbGUiLCJwcF9rZXkiLCJmbGFnc19ub25lIiwiZmxhZ190cmFuc2llbnRfc2Vuc29yIiwiZmxhZ19wZXJtYW5lbnRfc2Vuc29yIiwibGF5b3V0X3NwZWMiLCJsYXlvdXRfd2lkdGgiLCJsYXlvdXRfc3RyZXRjaF93aWR0aCIsImxheW91dF9oZWlnaHQiLCJsYXlvdXRfc3RyZXRjaF9oZWlnaHQiLCJwcF9sYXlvdXRfc3BlYyIsInNoIiwic3ciLCJjYWNoZSIsImluaXQkMiIsImF0b20iLCJzcGFjZSIsIm1vdXNlX2FyZWEiLCJrZXlib2FyZF9hcmVhIiwiZm9jdXMiLCJmb2N1cyQwIiwiZm9jdXMkMSIsInNoaWZ0X2FyZWEiLCJzaXplX3NlbnNvciIsImhhbmRsZXIiLCJ0cmFuc2llbnRfc2Vuc29yIiwiZnJhbWVfc2Vuc29yIiwicGVybWFuZW50X3NlbnNvciIsInByZXBhcmVfZ3Jhdml0eSIsInJlc2l6ZSIsInNoJDAiLCJyZXNpemVfdG8iLCJldmVudF9maWx0ZXIiLCJqb2luX3giLCJqb2luX3kiLCJqb2luX3oiLCJwYWNrX3giLCJwYWNrX3kiLCJwYWNrX3oiLCJoY2F0JDAiLCJ2Y2F0JDEiLCJ6Y2F0JDAiLCJoYXNfZm9jdXMkMCIsInBwJDUiLCJwcF9kZXNjIiwiZGVzYyIsImRlc2MkMCIsImRlc2MkMSIsImRlc2MkMiIsInkkMCIsIngkMCIsIm4kMSIsIm4kMiIsImIkMCIsImIkMSIsIml0ZXIkMCIsInVpIiwidTIiLCJ1MSIsInUiLCJtYWtlJDMiLCJzaXplJDIiLCJzb2x2ZV9mb2N1cyIsImF1eCIsInNwbGl0Iiwic2EiLCJzYiIsInRvdGFsIiwic3RyZXRjaCIsImZsZXgiLCJyYXRpbyIsInBhY2siLCJmaXhlZCIsImcxIiwiZzIiLCJ2MiIsInYxIiwiZ3Jhdml0eSIsInYxJDAiLCJoYXNfdHJhbnNpZW50X3NlbnNvciIsImZsYWdzIiwiaGFzX3Blcm1hbmVudF9zZW5zb3IiLCJ1cGRhdGVfc2Vuc29ycyIsIm94Iiwib3kiLCJveCQwIiwib3kkMCIsInN3JDAiLCJ1aSQwIiwic2gkMSIsInN3JDEiLCJveSQ0Iiwib3gkNCIsInNlbnNvciIsInNlbnNvciQwIiwic2Vuc29yJDEiLCJzZW5zb3IkMiIsInJ3IiwiZHgiLCJyaCIsImR5Iiwib3kkMSIsIm94JDEiLCJzeSIsInN4IiwidCQyIiwib3kkMiIsIm94JDIiLCJidyIsImF3Iiwib3gkMyIsImJoIiwiYWgiLCJveSQzIiwidWkkMSIsInVwZGF0ZV9mb2N1cyIsInRfc2l6ZV9vZl90IiwidF9zaXplX2Rlc2Nfb2ZfdCIsImgkNSIsInckMSIsInYkMSIsInYkMiIsInQkMyIsInYkMyIsInQkNCIsInQkNSIsInYkNCIsInQkNiIsImIkMiIsImIkMyIsImEkMyIsInVwZGF0ZSIsInN0IiwiYnRuIiwiaGFuZGxlIiwiZiQwIiwicmgkMCIsIm9mZnNldHkiLCJyZWxlYXNlX2dyYWIiLCJyZXNpemVfY2FudmFzIiwiaW1hZ2UiLCJyZXNpemVfY2FudmFzMiIsInNhbWVfc2l6ZSIsImRpc3BhdGNoX21vdXNlIiwiZXZlbnQiLCJkcmFnIiwicmVuZGVyX25vZGUiLCJ2eDEiLCJ2eTEiLCJ2eDIiLCJ2eTIiLCJpbWFnZSQwIiwiY2FjaGUkMCIsImltYWdlJDEiLCJ2eCIsInZ5IiwiY2FjaGUkMSIsInZ4JDAiLCJ2eSQwIiwiaW1hZ2UkMiIsImNhIiwiY2IiLCJ2eCQxIiwidnkkMSIsImltYWdlJDMiLCJjYSQwIiwiY2IkMCIsInZ4JDIiLCJ2eSQyIiwiaW1hZ2UkNCIsImNhJDEiLCJjYiQxIiwidngkMyIsInZ5JDMiLCJpbWFnZSQ1IiwidmlldyIsImRpc3BhdGNoX3Jhd19rZXkiLCJrZXkiLCJpdGVyIiwic3QkMCIsInRsIiwic3QkMiIsInN0JDMiLCJzdCQxIiwiZ3JhYl9mb2N1cyIsImRpc3BhdGNoX2ZvY3VzIiwiZGlzcGF0Y2hfa2V5Iiwia2V5JDAiLCJtb2RzIiwia2V5JDEiLCJkaXIkMCIsImRpciQxIiwia2V5JDIiLCJkaXNwYXRjaF9ldmVudCIsIm1vdXNlIiwiY29weV91bnRpbCIsInF1aXQiLCJpbnB1dCIsInF1aXQkMCIsInB1c2giLCJzdHJlYW0iLCJyZXN1bHQiLCJyZW5kZXIiLCJldmVudHMiLCJkb2MiLCJyZW5kZXJlciIsInB1c2hfcmVmcmVzaCIsInJlZnJlc2hfc3RyZWFtIiwiZG9fcXVpdCIsInF1aXQkMSIsImRvX3F1aXQkMCIsImV2ZW50cyQwIiwicmVmcmVzaCIsInByb2Nlc3NfZXZlbnQiLCJzdHJpbmckMCIsImludCQwIiwiYm9vbCIsImZsb2F0JDAiLCJwcmludGYiLCJrcHJpbnRmIiwia2ZtdCIsIndpbmRvd19tYW5hZ2VyIiwiYmFzZSIsIm92ZXJsYXlzIiwiY29tcG9zaXRpb24iLCJjb21wb3NpdGUiLCJ3aW5kb3dfbWFuYWdlcl92aWV3Iiwid20iLCJ3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyIsIm1lbnVfb3ZlcmxheSIsImFyb3VuZCIsInJvdyIsImhfcGFkIiwidl9wYWQiLCJjYXRjaGFsbCIsInNjcm9sbF9zdGVwIiwic2Nyb2xsX2FyZWEiLCJvZmZzZXQiLCJvZmZzZXQkMCIsInNjcm9sbCIsImRfeCIsImRfeSIsInNfeSIsInNfeCIsInNfeCQwIiwic195JDAiLCJmb2N1c19oYW5kbGVyIiwibWFpbl9tZW51X2l0ZW0iLCJvdmVybGF5Iiwib25fY2xpY2siLCJzdWJfbWVudV9pdGVtIiwic3ViX2VudHJ5IiwiaF9wYW5lIiwic3RhdGVfdmFyIiwic3RhdGUiLCJwb3MiLCJsJDAiLCJyJDAiLCJzcGxpdHRlciIsImF0IiwibWF4JDAiLCJwb3MkMCIsInNwbGl0dGVyJDAiLCJ2X3BhbmUiLCJib3QiLCJ0b3AkMCIsImJvdCQwIiwiZXFfdWNfYyIsInVjIiwiZWRpdF9maWVsZCIsIm9uX2NoYW5nZSIsImZvY3VzX2giLCJjb250ZW50Iiwib25fY2hhbmdlJDAiLCJ0ZXh0JDEiLCJwb3MkMSIsImxpbmVfZW1wdHkiLCJsaW5lX21ha2UiLCJsaW5lX2FwcGVuZCIsInRhYmxlIiwiY29weV9saW5lX2N1cnNvciIsInhpIiwieXMiLCJ5aSIsInJvd19vZl9jdXJzb3IiLCJsaW5lX29mX2N1cnNvciIsImN1cnNvcl9tb3ZlIiwiY3Vyc29yX3JvdyIsIm5ld19yb3ciLCJuZXdfbGluZSIsImN1cnNvcl9saW5lIiwiZWRpdF9hcmVhX29mX3N0cmluZyIsImZvY3VzX3ZhbCIsImZpbmRfZm9jdXMiLCJmb2N1c19oYW5kbGVfY29tcGFyZSIsImZvY3VzZWRfcm93X29mX3RhYmxlIiwiZWRpdF9hcmVhIiwiZmlyc3QiLCJyb3dfcHJldiIsImxpbmVfcHJldiIsInN0cl9wcmV2Iiwib2xkX3JvdyIsIm9sZF9saW5lIiwib19zdHIiLCJuX3N0ciIsInRyZWVfbmF2IiwidHJlZSIsInBhdGgiLCJ0cmVlbGlzdCIsInRlIiwidGFicyIsImN1ciIsImlkeF9zZWwiLCJ0YWJfYW5ub3QiLCJ0YWJfYmFyIiwidW5mb2xkYWJsZSIsInN1bW1hcnkiLCJmb2xkZWRfYnlfZGVmYXVsdCIsIm9wZW5lZCIsImZvbGRfY29udGVudCIsIm9wIiwic3VtbWFyeSQwIiwiZm9sZCIsInNwZWNfc3VtIiwic3BlY19mb2xkIiwidG9vX2JpZyIsImhib3giLCJ2Ym94IiwiemJveCIsInZsaXN0IiwiYnVsbGV0Iiwidmxpc3Rfd2l0aCIsImZpbHRlciIsImZpbHRlcl9tYXAiLCJhY2MiLCJhY2MkMCIsImwkMSIsImFjYyQxIiwibF9maWx0ZXIiLCJ2bGlzdF9vZl90ZXh0Iiwia2V5X2hhbmRsZXIiLCJidXR0b25fb2YiLCJidXR0b24iLCJmaWxlX3NlbGVjdCIsImFicyIsInBfcmVsIiwiYXJyIiwic3RhcnQiLCJ0b2dnbGUiLCJsYmwiLCJta19idXQiLCJzdF92IiwibGJsX3YiLCJuZXdfc3QiLCJ0b2dnbGUkMCIsInRvZ2dsZSQxIiwiYWRqdXN0X29mZnNldCIsInZpc2libGUiLCJvZmYiLCJvZmYkMCIsIm9mZiQxIiwic2Nyb2xsYmFyX3dpZHRoIiwiZGVjcl9pZiIsImNvbmQiLCJzY3JvbGxiYXJfYmciLCJzY3JvbGxiYXJfZmciLCJzY3JvbGxiYXJfY2xpY2tfc3RlcCIsInNjcm9sbGJhcl93aGVlbF9zdGVwIiwiaHNjcm9sbGJhciIsInNldCIsInByZWZpeCIsInN1ZmZpeCIsIm1vdXNlX2hhbmRsZXIiLCJ2c2Nyb2xsYmFyIiwic2Nyb2xsYm94IiwidXBkYXRlX3NpemUiLCJtZWFzdXJlX3NpemUiLCJjb21wb3NlX2JhcnMiLCJodmlzaWJsZSIsInZ2aXNpYmxlIiwiaHZpc2libGUkMCIsInZ2aXNpYmxlJDAiLCJzdGF0ZV93Iiwic3RhdGVfaCIsInN0YXRlX3giLCJzdGF0ZV95Iiwic2V0X3ZzY3JvbGwiLCJzZXRfaHNjcm9sbCIsInNjYWxlX2NhbnZhcyIsImNhbnZhcyIsIngiLCJkcHIiLCJyZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJ3aWR0aCQwIiwiaGVpZ2h0JDAiLCJ3ZWJnbF9pbml0aWFsaXplIiwiYXR0cnMiLCJjdHgiLCJncmFwaHZfaW5pdGlhbGl6ZSIsIndlYmdsX2N0eCIsInZnIiwicmVxdWVzdF9hbmltYXRpb25fZnJhbWUiLCJzIiwidCIsInRpbWUiLCJyZW5kZXJfc3RyZWFtIiwicmVuZGVyIiwiaSIsImRldmljZV9yYXRpbyIsImdyYXZpdHlfcGFkIiwiZ3Jhdml0eV9jcm9wIiwiYm9keSIsIndtIiwidGVzdF90cmVlIiwidWkiLCJyb290IiwicHVzaF9ldmVudCIsImV2ZW50cyIsImltYWdlcyIsIm9wdCIsInAiLCJtIiwicCQwIiwiZXYiXSwic291cmNlcyI6WyIiLCIvYnVpbHRpbi8raW50NjQuanMiLCIvYnVpbHRpbi8rbWxCeXRlcy5qcyIsIi9idWlsdGluLytmYWlsLmpzIiwiL2J1aWx0aW4vK3N0ZGxpYi5qcyIsIi9idWlsdGluLytmb3JtYXQuanMiLCIvYnVpbHRpbi8raWVlZV83NTQuanMiLCIvYnVpbHRpbi8rZnNfbm9kZS5qcyIsIi9idWlsdGluLytmcy5qcyIsIi9idWlsdGluLyt1bml4LmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytmc19mYWtlLmpzIiwiL2J1aWx0aW4vK25hdC5qcyIsIi9idWlsdGluLytncmFwaGljcy5qcyIsIi9idWlsdGluLyttYXJzaGFsLmpzIiwiL2J1aWx0aW4vK2lvLmpzIiwiL2J1aWx0aW4vK2djLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK2NvbXBhcmUuanMiLCIvaG9tZS9jcWMvLm9wYW0vc3dpdGNoLWdyYXBodi13ZWJnbC1pcm1pbi9saWIvYmlnc3RyaW5nYWYvcnVudGltZS5qcyIsIi9idWlsdGluLytqc2xpYi5qcyIsIi9idWlsdGluLytwYXJzaW5nLmpzIiwiL2J1aWx0aW4vK2ludHMuanMiLCIvYnVpbHRpbi8raGFzaC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8ranNsaWJfanNfb2Zfb2NhbWwuanMiLCIvYnVpbHRpbi8rb2JqLmpzIiwiL2J1aWx0aW4vK2JhY2t0cmFjZS5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rd2Vhay5qcyIsIi9idWlsdGluLyttZDUuanMiLCIvYnVpbHRpbi8rc3RyLmpzIiwiL2hvbWUvY3FjLy5vcGFtL3N3aXRjaC1ncmFwaHYtd2ViZ2wtaXJtaW4vbGliL2NzdHJ1Y3QvY3N0cnVjdC5qcyIsIi91c3IvbGliL29jYW1sL3VjaGFyLm1sIiwiL3Vzci9saWIvb2NhbWwvaW50NjQubWwiLCIvdXNyL2xpYi9vY2FtbC9sZXhpbmcubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxGb3JtYXQubWwiLCIvdXNyL2xpYi9vY2FtbC9wcmludGV4Yy5tbCIsIi91c3IvbGliL29jYW1sL2ZpbGVuYW1lLm1sIiwiL3Vzci9saWIvb2NhbWwvY29tcGxleC5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbEF0b21pYy5tbCIsIi91c3IvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi91c3IvbGliL29jYW1sL3BlcnZhc2l2ZXMubWwiLCIvdXNyL2xpYi9vY2FtbC9yYW5kb20ubWwiLCIvdXNyL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi91c3IvbGliL29jYW1sL2xpc3QubWwiLCIvdXNyL2xpYi9vY2FtbC9pbl9jaGFubmVsLm1sIiwiL3Vzci9saWIvb2NhbWwvb3V0X2NoYW5uZWwubWwiLCIvdXNyL2xpYi9vY2FtbC9laXRoZXIubWwiLCIvdXNyL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvdXNyL2xpYi9vY2FtbC9vYmoubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxMYXp5Lm1sIiwiL3Vzci9saWIvb2NhbWwvbGF6eS5tbCIsIi91c3IvbGliL29jYW1sL3NlcS5tbCIsIi91c3IvbGliL29jYW1sL29wdGlvbi5tbCIsIi91c3IvbGliL29jYW1sL3Jlc3VsdC5tbCIsIi91c3IvbGliL29jYW1sL2Jvb2wubWwiLCIvdXNyL2xpYi9vY2FtbC9jaGFyLm1sIiwiL3Vzci9saWIvb2NhbWwvYnl0ZXMubWwiLCIvdXNyL2xpYi9vY2FtbC9pbnQubWwiLCIvdXNyL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvdXNyL2xpYi9vY2FtbC91bml0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbWFyc2hhbC5tbCIsIi91c3IvbGliL29jYW1sL2FycmF5Lm1sIiwiL3Vzci9saWIvb2NhbWwvaW50MzIubWwiLCIvdXNyL2xpYi9vY2FtbC9wYXJzaW5nLm1sIiwiL3Vzci9saWIvb2NhbWwvc2V0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbWFwLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RhY2subWwiLCIvdXNyL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi91c3IvbGliL29jYW1sL3N0cmVhbS5tbCIsIi91c3IvbGliL29jYW1sL2J1ZmZlci5tbCIsIi91c3IvbGliL29jYW1sL3ByaW50Zi5tbCIsIi91c3IvbGliL29jYW1sL2FyZy5tbCIsIi91c3IvbGliL29jYW1sL2Z1bi5tbCIsIi91c3IvbGliL29jYW1sL2djLm1sIiwiL3Vzci9saWIvb2NhbWwvZGlnZXN0Lm1sIiwiL3Vzci9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi91c3IvbGliL29jYW1sL3dlYWsubWwiLCIvdXNyL2xpYi9vY2FtbC9mb3JtYXQubWwiLCIvdXNyL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi91c3IvbGliL29jYW1sL2NhbGxiYWNrLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsT08ubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvdXNyL2xpYi9vY2FtbC9nZW5sZXgubWwiLCIvdXNyL2xpYi9vY2FtbC9lcGhlbWVyb24ubWwiLCIvdXNyL2xpYi9vY2FtbC9iaWdhcnJheS5tbCIsIiIsIiIsIiIsIi91c3IvbGliL29jYW1sL2ludDMyLm1saSIsIi91c3IvbGliL29jYW1sL3N0cmVhbS5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9odW1hbi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ib290X2pzLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RkX2V4aXQubWwiXSwibWFwcGluZ3MiOiI7O2VBQ0MsU0FBVUE7V0FDRkM7Ozs7S0FDTEM7cUJBQ0U7c0JBQ0M7VUFBc0JGLDhDQUVoQkc7UUFDSEM7bUJBRVIsU0FBU0Q7cUJBQ1AsZ0JBQVcsSUFBUEUsT0FBU0gsUUFBUUk7TUFDckJELG9CQUFvQkE7YUFDYkwsbUNBQ1QsZUFiRDtHQWNDQTs7OzZCQzJORixTQUFTTyxtQkFBbUJDO2dDQUFLLG1DQUFRLG9DQUFZOzhCQ3pMckQsU0FBU0MsZ0JBQWdCQyxFQUFHQztnQ0FDMUIsR0FBR0Q7a0NBQVE7Z0NBQ1gsR0FBSUM7a0NBQVUsa0NBQVE7Z0JBQVNEO2dDQUMvQjtpQ0FBTTtrQ0FBUTtnQ0FDZDtrQ0FBUSwyQkFDTixHQUFJQSxNQUFPRSxLQUFLRDtRQUNoQkQ7a0NBQ0EsR0FBSUE7b0NBQVEsT0FBT0U7UUFDbkJELEtBQUtBO1FBQ0xFO2tDQUNBLEdBQUlBO29DQUFRLDBCQUNWLHVDQUtOOzRCRDdDQSx5QkFBc0I7S0FBbEJDOytCQUFvQjsyQkVBeEIsU0FBU0Usb0JBQXFCQzs4QkFBTyxNQUFNQSwyQkFBSzs2QkMyQ2hELDBCQUFxQjtLQUFqQkM7OzJCREhKLFNBQVNDOzZCQUNQO1FBQW9CRCx5REFDdEI7NEJG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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FCOzs7Ozs7O2V1Qm5XRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2tCS0M7S0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0N3QkFDO0tBQ0FDO0tBQ0FDO0tBSUFDO0tBQ0FDOzs7O0tDekJBQztLQW1IQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ285RU1DO0tBUVFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2xsRmRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDc0VFQztLQUNBQztLQUNBQztLQUNBQzs7OztLQW9DQUM7S0FDQUM7S0FDQUM7S0FDQUM7OztLQW1JQUM7S0FDQUM7S0FDQUM7S0FDQUM7OztLQ3hQRkM7S0FDQUM7S0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFnQztnRkFBRzs4QkFwS3pDLFNDN0pUbUIsV0R1VVd4QztnQ0FBSTtlTXpjZk4sT055Y1dNLDRCQUF3Qjs4QkExSzFCLFNDNUpUeUMsYUR1VWFyRjtnQ0FBSTtlTTFjakJzQyxPTjBjYXRDLDRCQUEwQjs4QkEzSzlCLFNDM0pUc0YsWUR1VVl0RjtnQ0FBSTtlTTNjaEJzQyxPTjJjWXRDLDRCQUF5Qjs4QkE1SzVCLFNDMUpUdUYsVUR1VVVqSztnQ0FBeUI7ZU01Y25DZ0gsaUNONGNtQyxjQUF6QmhILDZCQUEwQzs4QkE3SzNDLFNDekpUa0ssWUR1VVloRztnQ0FBeUI7ZU03Y3JDOEMsaUNONmNxQyxVQUF6QjlDLDZCQUE0Qzs4QkE5Sy9DLFNDeEpUaUcsY0R1VWN6RjsrQkFDaEI7UU0vY0VzQyxPTjhjY3RDO2dDQUNRO1FNL2N0QnNDO2dDTitjK0M7ZU0vYy9DQSxpQ04rYzJEOzhCQWhMbEQsU0N2SlRvRDtnQ0R3VW1CO1FNaGRuQnBEO2dDTmdkNEM7ZU1oZDVDQSxpQ05nZHdEOzhCQWpML0MsU0N0SlRxRCxXRDJVVy9DO2dDQUFJO2VNbmRmTCxPTm1kV0ssNEJBQXdCOzhCQXJMMUIsU0NySlRnRCxhRDJVYTVGO2dDQUFJO2VNcGRqQnVDLE9Ob2RhdkMsNEJBQTBCOzhCQXRMOUIsU0NwSlQ2RixZRDJVWTdGO2dDQUFJO2VNcmRoQnVDLE9OcWRZdkMsNEJBQXlCOzhCQXZMNUIsU0NuSlQ4RixVRDJVVXhLO2dDQUF5QjtlTXRkbkNpSCxpQ05zZG1DLGNBQXpCakgsNkJBQTBDOzhCQXhMM0MsU0NsSlR5SyxZRDJVWXZHO2dDQUF5QjtlTXZkckMrQyxpQ051ZHFDLFVBQXpCL0MsNkJBQTRDOzhCQXpML0MsU0NqSlR3RyxjRDJVY2hHOytCQUNoQjtRTXpkRXVDLE9Od2RjdkM7Z0NBQ1E7UU16ZHRCdUM7Z0NOeWQrQztlTXpkL0NBLGlDTnlkMkQ7OEJBM0xsRCxTQ2hKVDBEO2dDRDRVbUI7UU0xZG5CMUQ7Z0NOMGQ0QztlTTFkNUNBLGlDTjBkd0Q7OEJBNUwvQyxTQy9JVDJEO2dDRCtVZTtRTS9kZjVEO2dD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytEQ0NZMndGO3FCQUFPLE1BQU1BLGlCQUF2QjtnRERERjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBO3lCQ0NVQyx1QkFBdUJBLGtCQUFtQkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlRERwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lEQ0NDQTswQ0RERDtzRENDQ0M7MkNEREQsWUNDQ0M7MENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUNDQ0M7NENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvRENDQ0MsNENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aURDQ0NDOzZDREREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDcUNDQztLQUdBQztLQUdBQztLQXVDQUM7S0FHQUM7S0FHQUM7S0FHQUM7S0FHQUM7S0FhQUM7S0FxRUFDO0tBS0FDO0tBc0JBQztLQVlBQzt5Q0R2TkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3lEQzJNQ0QsVUF0S0FYOzs7K0NEckNELFdDMk1DVzt3Q0QzTUQ7O3lEQzJNQ0EsVUF0S0FYOzBDRHJDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7eURDMk1DVyxVQXRLQVg7OzsrQ0RyQ0QsV0MyTUNXO3dDRDNNRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0NxQ0NYO09BR0FDO09BR0FDO2lDRDNDRDs7Ozs7O09Da0ZDQztPQUdBQztPQUdBQztPQUdBQztPQUdBQzs7OztPQWFBQzs7Ozs7Ozs7Ozs7OztPQXFFQUM7T0FLQUM7T0FzQkFDO09BWUFDOzs7Ozs7Ozs7Ozs7O2lCRHZORDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2lxQk9jO0tBaUNFQzs7S0FxbEJBQztLQTRDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MkJBbHhDTCxTQURHQyxVQUNDQyxNQUFNQzs2QkFDVCxPQURHRDttQkFDQ0U7Ozs7OzZCQVFKOzswREFUU0Q7OEJBV0osS0FBVEU7OEJBQW9DO2FBVjVCRDs4QkFVNEIsZ0NBRVQ7MkJBYnhCOzs7NkJBZ0JTO3FDQUNKRzs2QkFDRjs7K0JBQVEsMENBRk5EOytCQUVNOzZCQUNSLHVDQUhFQTs2QkFHRixPQURJSCx3QkFFSDs0QkFKSzs7NEJBTVAsMENBTkdHOzRCQU1IOztnQkFHUUosTUFBTUM7Z0NBQ1g7O2tDQUE0Qzt1REFEakNBO2tDQUNpQyxRQUR2Q0Q7a0NBQ3VDO2tDQUFwQzs7O2lDQUFEOztpRUFBOEM7MkJBSnhELFNBTUNRLGVBQWVDLElBQUtULE1BQU9VLEtBQUtDLEVBQUVDOzZCQUNwQyxTQUFJQzsrQkFDRjs7aUNBQVE7K0JBQ1IsaUNBSG9CYixNQUVoQkM7K0JBQUosdUJBQ0EsU0FQQU07K0JBUUEsdUNBSm9CUCxNQUVoQkM7K0JBQUosdUJBRUE7K0JBQ0Esa0NBTDJCUzsrQkFLM0IseUNBTGdDQyw0QkFNNUI7NkJBTE47ZUFEb0NDO3dCQVF2QkUsT0FBUUMsS0FBS0M7d0NBQzFCLEdBRGFGOzJDQUlEOzhDQUpDQTs0Q0FJRDs0Q0FBb0M7NkRBSnRCRTs0Q0FJc0I7NENBQWQ7OzsrQ0FYOUJILElBZEZQLFNBeUJLVzt5Q0FERzs7MENBQStCOzJEQUhmRDswQ0FHZTswQ0FBVDs7OzZDQVY1QkgsSUFkRlAsaUNBeUI4RDsyQkFsQi9ELFNBb0JDWTs4QkFBc0IsVUFkdEJWLHVDQWNzRDsyQkFwQnZEOztTQXZCQ1QsVUFnQkFPLElBRUVELE1BT0ZFLEtBSUFDLGVBY0FVOzRCQXBCRDs7NkJBd0JlOzsyQkFBbEI7MkJBeEJHOzRCQXdCSDs7MkJBQ0E7MkJBekJHOzRCQXlCSDs2QkFXRTs7OzhCQUVrQzs7OzZCQUdsQzs7cUNBRUVJOytCQUF5QixvREFBMkI7NEJBRnRELFNBSUVDLGVBQWlCQyxJQUFXQyxFQUFFQzs4QkFDaEMsR0FEbUJGO2dDQUFNO3FDQUFOQTtZQUFNRzs7V0FBTkM7OEJBQ25CLEdBRG1CQTtpQ0FDRjs7OytCQUE0Qjs7OztnQ0FDbkM7O3dDQUNGRSxHQUFHRixJQUFJRjtnQ0FDYjttQ0FBVTs7OztvQ0FFQTtxREFGS007b0NBRUw7Ozs7a0NBRVA7b0RBSENDO29DQUlGOztzQ0FDVTt1REFOR0Q7c0NBTUg7Ozs7dUNBRU87Ozs7O3lEQVZqQkgsSUFVT0g7Ozs7Z0JBVEFFO3lDQVlIOzs7O3VCQWJKQyxJQVVPSDt5Q0FHSDs7OzZDQUVBOzZCQWRHRSxZQVNBRiw2QkFLZTswQ0FGbEI7MENBQ0E7MkRBWmVLO3lDQVlmOzt1Q0FIQTtpQ0FUU0MsS0FBTUQ7cUNBY1Q7K0JBZEdDLEtBQU1EO21DQWVoQjs2QkFmVUMsS0FBTUQsK0JBZU87Z0NBZjVCOzs2Q0FKNEJOLEVBR2ZDO2dDQUNiOytEQWU0QjsrQkFqQnBCLG1DQUZTRSxJQUFhRiw2QkFxQnRCOzRCQXpCVixTQTJCRVEsVUFBYVYsSUFBY0U7OEJBQzdCLEdBRGVGO2dDQUFVO3FDQUFWQTtnQkFBVUc7O1dBQVZROzhCQUNmOzs7NENBQW9COytCQUFDOzs7O21CRDVJMUI7OytCQzZJbUI7OztpREFGQ0E7K0JBRUQsU0FDVlYsRUFBRUM7aUNBQU07NENBRFJXLFdBQ0VYLDZCQUE0QzsrQkFEcEM7aUNBRVksNkJBQVlLO2lDQUFaLGNBQ2FBO2tDQUN2QztnQ0FEdUNBLCtCQUNmO2lDQUZFOztpQ0FDMUI7a0RBRHNDQTtnQ0FDdEM7K0RBQ3dCOytCQUpWOzsrQkFFZDtvREFESU4sRUFIeUJDOzhCQUk3Qjs2REFFd0I7NEJBakN4QixTQW1DRVksV0FBY2QsSUFBY0UsSUFBSUs7OEJBQ2xDLEdBRGdCUDtnQ0FBVTtxQ0FBVkE7Z0JBQVVHOztXQUFWUTs4QkFDaEI7O2dDQUFjO2lEQURFQTtnQ0FDRjtnQ0FDSDtpREFGdUJKOytCQUV2QixTQUNQTixFQUFFQztnQ0FDSjs0Q0FGRWEsZUFEQUYsV0FFRVgsNkJBQ3dEOytCQUZuRDtpQ0FJZSw2QkFBWUs7aUNBQVosY0FDYUE7a0NBQ3ZDO2dDQUR1Q0EsK0JBQ2Y7aUNBRkU7O2lDQUMxQjtrREFEc0NBO2dDQUN0QzsrREFDd0I7K0JBTmI7OytCQUlYO29EQUhJTixFQUgwQkM7OEJBTTlCOzZEQUV3Qjs0QkEzQ3hCOzs7T0FORVA7T0FHQUM7T0FFQUM7T0FHQUM7T0FFQUM7T0F1QkFXO09BUUFJOzRCQW5DRixTQWlERUUsUUFBUUM7OEJBRVY7O2dDQUFVOzt3Q0FDTkU7UUFBR3hCLGNBQWNFLGdCQUFnQkQ7Z0NBQ25DLHFCQURLRDswQ0FFTTs4QkFGUUUsZ0JBQWdCRDtpREFHYjsrQkFKZDs7Ozs7Z0NBWUY7Ozs7Z0NBREE7Ozs7Z0NBREE7OzsrQkFITjtnREFQRXNCLFNBQ0FDLEdBSE1GOytCQVNSO2dDQVdROzt3Q0FDTks7UUFBRzNCLGNBQWNFLGdCQUFnQkQ7Z0NBQ25DLHFCQURLRDswQ0FFTzs4QkFGT0UsZ0JBQWdCRDtpREFHYjsrQkFKZDs7Ozs7Z0NBYUY7Ozs7Z0NBREE7Ozs7Z0NBREE7OzsrQkFITjtnREFSRXlCLFdBQ0FDLEtBYkFGOzhCQW9CRixPQURFRyw2QkFXRDs0QkF2RkgsU0E4R0lDLFdBQVMxQztpQkQ5TmxCLElDOE40QjJDLHVDQUFWM0MsSUFBVTJDOzRCQTlHdkIsU0FnSElDLGVBQWU1QztpQkRoT3hCO2dDQ2lPb0I7d0JBRElBOytCQUVILDZCQUFQMkM7K0JBQU87dUJBRkczQyxJQUVWMkM7NEJBbEhULFNBb0hJRSxNQUFNQyxFQUFFQzs4QkFDVixpQ0FEUUQ7OEJBQ1I7O2tDQUdXOzs7K0JBSFg7a0NBSzBCO1VBRGhCRTs7OzttQ0FDZ0I7OERBTmhCRDttQ0FNZ0I7bUNBQVQ7b0RBRFBDO2tDQUNPLFVBQVRDO2tDQUFTOzsrQkFIYjtvREFLZ0I7NEJBNUh0QixTQThISUMsT0FBT0osRUFBRUs7OEJBQ1gsU0FBUTNCO2lDQUFLO21DQUdQO1dBREc0QjtXQUFMdEI7O3FCQUdJYTt1Q0FGWSxhQUVaQTtnREFEUyxHQUZSUztnREFHaUIsa0JBQWxCVCw2QkFBZ0M7b0NBRmxDLG9DQUpHRyxFQUdMaEI7bUNBQ0U7O2lDQUZJO29EQUkrQjs4QkFMekMsa0NBRFdxQiw2QkFRTDs0QkF0SVIsU0F3SUlFLEtBQUtQOzhCQUNQLGlDQURPQTs4QkFDUDs7eUNBRUk7eUNBQ087O2dDQUhYO2NBSXVDWCxZQUFUTixnQkFBTFQsWUFBakJrQztVQUxEUixnQkFLa0IxQixJQUFLUyxRQUFTTTttQ0FFZDs7Ozs7Ozs7O21DQUZqQm1CO21DQUVpQjs7aUNBRXJCO1NBREtOO1NBQXNCVjtTQUFUUDtTQUFMd0I7OztxQ0FDNEI7dUNBRWhCOztlQURaQzs7Ozs7d0NBQ1k7Ozs7dUNBRFpBO3VDQUNZOztxQ0FFckI7OztzQ0FBdUI7Ozs0REF2QzdCZCxXQXNDVUM7cUNBQ21COzJEQUE0QjtpQkFMckNaOztrQ0FDbEI7bURBRDJCTyxXQUFkaUIsTUFBUlA7aUNBQ0w7Z0VBSXdEOzRCQXJKOUQsU0F1SklTOytCQUFVLHVDQUFlOzRCQXZKN0IsU0EySklDLFFBQVFDOzhCQUNWOzs7NENBQW9COzhCQUNsQjs7OzttQkQ3UVQ7O21DQzJRaUJBLHFDQUdtQzs0QkE5Si9DOztTQThHSWpCLFdBRUFFLGVBSUFDLE1BVUFLLE9BVUFHLEtBZUFJLE1BSUFDOzZCQTNKSjs7Ozs2QkFrS0E7Ozs7cUNBRUVJLFVBQVMzQjs4QkFDWDs7OzRDQUFvQjsrQkFBQzs7OzttQkRyUjFCOzsrQkNzUnlCOzs7aURBTEh5QjtnQ0FLRztnQ0FDVjs7d0NBQ05HLEdBQUczQztpQ0FBTTt5QkFBTkEsNkJBQXlCOytCQUR0QixTQUVOaUIsR0FBRzJCLGlCQUFpQkM7bUJEelI3QjtpQkN5UllEOzs7Ozs7OzsyQkFBaUJDOzttQ0ErOUV4QjtvQ0E3OUV3Qzs7aUNBQy9CLHVDQUFlOytCQUxkLFNBT05DO1FBQUdELFdBQVdFLFFBQVFDO21CRDlSL0I7aUJDOFJZSDttQ0FJRDttREFKb0JHO29DQUlwQjtxQkFJZUUsS0FBTUM7eUJEdFNoQzt5Q0N1UzJCOzs7MkJBQ1Z6Qzs7Ozt3REFBb0I7MENBRFY7OzBDQU1tQjtnRUFQZHlDOzBDQU9jOzswQ0FBckI7Z0VBUENEOzBDQU9EOzBDQUhIOzswQ0FHNkM7Ozs7bUREN1NuRTs7eUNDdVMyQjs7MENBT0E7Ozs7NkNBQ3dCO3lDQUNyQmhCO3NCQVRYa0IsYUFTV2xCLGdCQVZFaUIsS0FKakIxQyxRQVlNTTs7NkNBUUE7b0ZBQ2U7MENBVFQsUUFaWk47MENBWVk7MENBQ1Y7MkRBRElNLFNBUkttQzt5Q0FTVDs7dUNBU0c7b0NBdEJUOzRCQUpZSCxRQVFSRTttQ0FKSjsyQkF3QklMO2lDQTFCcUIsdUNBMkJPOytCQXBDNUI7OztnQ0F1QzZCO29EQXZDbkM1QjtnQ0F1Q21DOytCQUFyQztnREE3Q0F5QixtQkFPRUUsR0FKTzVCOytCQTBDVDs7O2dDQUtzQzs7OztnQ0FBaEM7OzsrQkFGTjtnREExQ0VDLFNBRUFDLEdBb0NBQzsrQkFJRjs7OztnQ0FXTTs7OztnQ0FEQTs7OztnQ0FEQTs7OzsrQkFITjswREF6Q0U0QixHQWtDQXpCOzhCQU9GO3NCQURFZ0MsK0JBVVU7NEJBOURkOztTQWpIRXZDLGFBZ0hBMkIsY0FBZUQsY0FHZkU7NkJBRkY7OEJBdUVXOztzQ0FJSGEsVUFBVUM7K0JBQ1o7OztpREFEWUE7K0JBQ1o7dURBQTRDOzZCQUx2QyxTQU9IQyxVQUFVekI7K0JBQUk7aUNBQUpBLDJCQUE2Qjs2QkFQcEM7Ozs7Ozs7Ozs7Ozs4QkFRSzs7OzhCQUFVOzhDQUpsQnVCLFVBR0FFOzhCQUNrQjs7OEJBSVI7OENBVFpDOzhCQVNZOzs7NkJBRGQ7O3dCQVhBSjs2QkFXQTs7Ozs7NkJBS0E7O3lCQWhCQUE7NkJBZ0JBOzs7OEJBS2M7Ozs7OzZCQURkOzs0QkFwQkFBOzZCQW9CQTs7OzhCQU9jOzs7Ozs2QkFGZDs7NEJBekJBQTs2QkF5QkEsT0F0QkVJLFVBT0FDLEtBS0FDLEtBSUF0RixNQUtBdUY7NEJBQ0YsU0FNQUMsS0FBTUgsS0FBTXJGLE1BQU91RixRQUFRRTs4QkFDN0I7O2dDQUNhO2lEQWpDWFQ7Z0NBaUNXOztnQ0FFQTtpREFGVFUsWUFGSUw7Z0NBSUs7O2dDQUNBO2lEQURUTSxjQUpVM0Y7Z0NBS0Q7O2dDQUNBO2lEQURUNEYsY0FMaUJMOytCQU1SOytCQUFUTSxrQ0FDVzs0QkFiYjt1Q0F6QkFiLFNBK0JBUTs2QkFOQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FDQWlDQU0sT0FBU3RFLElBQW9CVyxRQUFRVDs4QkFDdkMsR0FEV0Y7Z0NBQU07cUNBQU5BO1lBQU1HOztXQUFOYzs4QkFDWCxjQUNHTDs7OzRDQUFvQjsrQkFBQzs7OzttQkRyWi9COztlQ3NaYzJELE9BQU10RSxFQUFFdUUsRUFBRTVGO2lDQUFJO2lCQUFScUIsRUFBSXJCLEVBQUY0RiwyQkFBVzsrQkFDakI7OztpREFKOEJ0RTsrQkFJOUI7aUNBRUY7OztrQ0FFVzt5Q0QzWnpCLE9Dc1pjcUU7a0NBS21EO29DRDNaakUsWUN3WmVyRDtrQ0FHa0Q7a0NBRGpEO21EQUZEQSxTQUx1QlA7a0NBT3RCO21CQUlGQzs7OztnREFBb0I7a0NBQ2xCOzs7NkNEL1poQjs7aUNDeVpjLFlBTklLLElBTUFJOzs7O1FBUU1JOztzQ0FBUSxxQkFBUkE7Z0RBQXlDOzRCQS9DeEQ7Ozs7Ozs7Ozs7Ozs7O3FDQTBESVIsSUFBSXdEOytCQUFJLE9BQUpBLDZCQUFTOzRCQTFEakIsU0EyREl2RCxJQUFJdUQ7K0JBQUksT0FBSkEsNkJBQVM7NEJBM0RqQixTQTZESUMsUUFBTTlDLEVBQUcrQyxNQUFNbEMsU0FBU21DOytCQUMxQjs7OzRDQUFvQjsrQkFDbEI7Ozs7bUJEamJiOztrQ0MrYW1CaEQsRUFBRytDLE1BQU1sQyxTQUFTbUMsZ0NBR007NEJBaEVsQztrREEwREkzRCxJQUNBQyxJQUVBd0Q7NkJBN0RKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUNBSjs7NkJBakNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FDQTRFRk87K0JBQVU7Ozs7O2dDQUFTOzs7Z0NBQVQ7Ozs7Ozs2REFBb0Q7NEJBNUU1RCxTQThFRkM7OEJBQ0YsU0FBSUMsSUFBSUMsRUFBRXZHLEVBQUVtRDtpQ0FBSTsyQkFBSkEsRUFBSm9ELElBQUV2RywyQkFBc0I7OEJBRzVCO21CRHBjVCxPQ2ljU3NHOzhCQUVBO21CRG5jVCxPQ2ljU0E7OEJBRUE7OztnQ0FEb0I7OytCQUF4Qjs7Ozs7OzZEQUV5Qzs0QkFsRnJDLFNBb0ZGRTs4QkFFRixjQUFrQ0M7Z0NBQ2xDLGNBQW1DdEQ7a0NBQ25DLGNBQTZDWDtvQ0FDN0M7OzZDQUQ2Q0E7cUNBQzdDO3FDQUNFOzs7O3VDQUVxQzs2QkFMSlcsMkJBS1k7b0NBRjdDOzs7cUNBRUY7c0RBTG1DQSxPQUUvQnVEO29DQUdKO21FQUErQztrQ0FKL0M7Ozs7OztpRUFJK0M7Z0NBTC9DOzs7a0RBRGtDRDtnQ0FDbEM7K0RBSytDOzhCQU4vQzs7Ozs7Z0NBQVM7OzsrQkFBVDs7OzZEQU0rQzs0QkE1RjNDOzt5QkE0RUZMLE9BRUFDLGNBTUFHOzRCQXBGRSxTQXNIRkc7K0JBQWlCOzs7MERBaUJOOzBEQUhGOzt5REFWQzt5REFDQzs7O3dEQVVIO3VEQVRBOzsyREFVRzswREFFRzs7Ozs7O3VEQU5EOztzQ0FDRTs7Ozs7OERBTEM7OERBQ0E7Ozt5Q0FDQzt5REFISDs7O3NDQUxaOzs7dUNBQUc7eURBREVDO3lDQUNvQjs7MENBQWtCOzJEQUR0Q0E7eUNBQ3NDOztzQ0FBM0M7d0NBQ0s7d0NBQW9CO3lEQUZwQkE7dUNBRW9COzs7O3FDQVFaLDZCQUFMQztxQ0FBSztpQ0FBTEE7O2dCQVFEN0c7OzsrQkFDSixnREFBZTs0QkExSWxCLFNBNElGOEcsUUFBUXpHLElBQUkwRzsrQkFBa0I7O2dEQUFsQkE7K0JBQWtCO3NCQUF0QjFHLHVDQUF3Qzs0QkE1STlDLGNBa0prQkE7K0JBQUw7OzBDQUVGLGtCQUZPQTswQ0FHUCxrQkFIT0E7OzBDQUNOLGtCQURNQTswQ0FJTixrQkFKTUEsa0NBSVU7NEJBdEo1Qjs7OzZCQWtKRjs7c0NBNUJBc0csZUFzQkFHLFFBSUFFOzRCQUVBLFNBZ0JBQyxhQUFjQzs4QkFDaEIsY0F5QmtCL0U7aUNBQU07O21CQUFOQTs0Q0FBYTs4QkF6Qi9CO21CRHJoQkw7K0JDOGlCb0M7aUJBMUJmK0U7Z0NBMEJlO29CQURaL0U7aUNBQU07O21CQUFOQTs0Q0FBYTswQ0Q3aUJyQzsrQkM2aUJxQztpQkF6QmhCK0U7Z0NBeUJnQjs7K0JBQTVCOzs0Q0FEZS9FO2lDQUFNOzttQkFBTkE7NENBQWM7OEJBQzdCO21CRDdpQlQ7K0JDNGlCc0M7aUJBeEJqQitFO2dDQXdCaUI7OytCQUE3Qjs7NENBRGEvRTtpQ0FBTTs7bUJBQU5BOzRDQUFZOzhCQUN6QjttQkQ1aUJUOytCQzJpQmtDO2lCQXZCYitFO2dDQXVCYTs7K0JBQTNCOzs0Q0F0QjJCL0U7aUNBQU07aUVBQU5BOzRDQUFTOzhCQXNCcEM7bUJEM2lCUDsrQkNxaEJjO2lCQURPK0U7O2dDQUNQOzs7aUNBQ0s7OzttRUFBTGxIO2tDQUFLOztZQWdCTm1IOztpQ0FoQk07O2tDQWdCTkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lDQWt0RVI7bUNBbHRFYTs7b0NBQ0c7cURBbkJBRDttQ0FtQkE7b0NBQ087OzhCQUFORTs7aUNBRlREO21DQUFLOzs7aUNBaEJDOzs7bURBd0IyQzs0QkExQ3ZEO3lDQWdCQUY7NkJBaEJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUNBdURFSSxLQUFLdEI7K0JBQUk7b0JBQUpBLCtCQUF1Qjs0QkF2RDlCOzs4QkF3RFU7OzhCQUNEOzs4QkFFQzs7Ozs4QkFDRjs7Ozs7OEJBQ0U7Ozs7OzhCQUNDOzs7Ozs4QkFDRjs7Ozs7OEJBQ0c7Ozs7OzhCQUNIOzs7Ozs4QkFDQzs7OzhCQUNLOzs7OzhCQUNGOzs7Ozs4QkFDRTs7Ozs7OEJBQ0M7Ozs7OzhCQUNGOzs7Ozs4QkFDRzs7Ozs7OEJBQ0g7Ozs7OzhCQUNDOztzQ0FFYkQsT0FBTUMsRUFBRTVGOytCQUFJOztRQUFONEYsUUFBRTVGOytCQUFJO2lDQUFtQjs7VUFBekI0RixRQUFFNUY7aUNBQXVCO2tDQUFhO3dDQUF0QzRGLFFBQUU1RjttQ0FBb0MsVUFBdEM0RixRQUFFNUY7Ozs7OytCQXJCQyxvQ0FxQm1EOzZCQUYvQyxTQUlicUksU0FBT3pDLEVBQUU1Rjs4QkFDWDtvQ0FEV0E7K0JBQ1gsS0FEUzRGO2dDQUswQjs7OztnQ0FBN0I7O3FDQUxLNUY7Z0NBS0wsS0FMRzRGO2dDQUkwQjs7OztnQ0FBN0I7O3FDQUpLNUY7Z0NBSUwsS0FKRzRGO2dDQUcwQjs7OztnQ0FBN0I7O3FDQUhLNUY7Z0NBR0wsS0FIRzRGO2dDQUUwQjs7OzsrQkFBN0I7Ozs7MkNBSUw7NkJBVmMsU0FZYjBDLFFBQVNDLEtBQU1DOytCQUFVO2dCQUFWQTtlQUFORDtlQUFNQyw2QkFBeUM7NkJBWjNDLFNBY2JDLEdBQUd2SSxJQUFJOEM7OEJBQ1QsR0FEU0E7Z0NBRVA7eUNBRk9BO2lDQUVQO21CQUlZNkM7cUNBQWtCLE9BQWxCQSxxQ0FBNkI7aUNBSnpDO2tDQUdJOzs7a0NBRE07Ozs7a0NBQU47Ozs4QkFKRDNGOytCQVFBOzRCQVJBQSw2QkFRYTs2QkF0Qkg7Ozs7Ozs7Ozs7Ozs7Ozs7T0FuQmJnSDtPQUNBQztPQUNBQztPQUVBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUVBekM7T0FFQTBDO09BUUFDO09BRUFHOzhCQWRhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBNkJqQkMsSUFBSzFHLEVBQVM0RCxFQUFFNUY7K0JBQUk7cUNBQU40RixLQUFUNUQ7Z0NBQWUsVUFBZkEsS0FBV2hDOytCQVRLLG9DQVNlOzZCQTdCbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFrQ1Q7O3NDQUVONEksU0FBU3ZIOzhCQUNYLG1DQURXQSxFQUZUc0g7K0JBSVE7T0FBTkU7aUNBQU0sZ0JBSlJGOzhCQUtGLHdDQUxFQTs4QkFLRixPQURJRSwyQkFFRDs2QkFOSyxTQVFOQyxZQUFZOUksRUFNWmdDOytCQUxPOzs7K0RBS1BBO2dDQUpFO29DQUlGQTtpQ0FKRSxJQUlGQTtpQ0FKRSxHQUlGQTtnQ0FKRSxPQUFJK0c7bUNBQ1c7OENBRFhBO29DQUMyQztxREFIckMvSTttQ0FHK0M7O3lDQURyRCtJLEtBQWlCQzttQ0FFRDs4Q0FGQ0E7b0NBRStCO3FEQUoxQ2hKO21DQUlvRDs7Z0NBRjlELHlCQUU4RCxjQUZqQmlKO2lDQUdiOzBEQUx0QmpKOytCQUNMO2dDQUtGOztpREFBTGdDOytCQUF3Qjt3REFOWmhDLGlDQUNNOzZCQVRaLFNBZ0JOa0osVUFBVWxKLEVBQUVtSixFQUFFQzs4QkFDaEI7b0NBRGdCQTs7Z0NBRWQ7MEVBRlVwSixFQUFFbUo7a0NBRVo7OzthQUZjQzs7c0NBR1o7NkJBbkJJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BQU5UO09BRUFDO09BTUFFO09BUUFJOzhCQWhCTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBeUJORyxPQUFPeEosRUFBRTZHLEVBQUU0QztpQkR6b0JsQixVQ3lvQmdCNUMsU0FBRTRDLDRCQUFKeko7Z0NBQ3dDLE9BRHhDQTsrQkFDdUI7bUJBRHZCQSxFQUFFNkcsRUFBRTRDLDZCQUNxQzs2QkExQjFDLFNBNEJOQyxhQUdBdEc7K0JBSGUsR0FHZkE7O2tDQUNFOztvQ0FBUTtxREFEVkE7b0NBQ1U7cUJBQ0d1RyxHQUFHOUM7dUNBQ1o7eUNBQ0U7c0JBRU8rQyxZQUFMekg7Z0RBSkt3SCxHQUFHOUMsRUFJUjFFO29DQUpFTixHQUFHOEgsR0FBRzlDLFdBSUgrQzt5Q0FEQzswQ0FIREQsNEJBTWMsMEJBQUM7b0NBUGxCLEtBQUpKO21DQVNEOzt3RUFUQ0E7bUJBRE5uRztpQ0FEUyw2QkFBUGtHLEVBQ0ZsRztpQ0FEUztvQ0FBUGtHOytCQURJLHFDQVkwQjs2QkF6QzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCTkU7T0FHQUU7OEJBNUJNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBbURORzsrQkFBUTs7Ozt5QkFDRDlELEVBQXVCNUYsMkJBQXNCOzZCQXBEOUMsU0FzRE4ySixZQUFVOUo7K0JBQUksVUFBSkEsMkJBQVk7NkJBdERoQixTQXVETitKOytCQUFZLDZCQUFnQi9KOytCQUFoQixPQUFnQkEsMEJBQU07NkJBdkQ1QixTQXlETmdLLFVBQVVDOzhCQUNaLGNBQ09uQjtpQ0FBTzs7a0NBQVc7bURBQWxCQTtpQ0FBa0I7dUNBRmJtQiw2QkFFNkM7OEJBRHpEOytCQUFhO3VGQUM0Qzs2QkEzRGpELFNBNkROQyxXQUFXQyxFQUFFYjsrQkFBSTtxQ0FBTmE7Z0NBQU07K0JBQU87NERBQVhiLDRCQUEyQzs2QkE3RGxELFNBK0ROYyxLQUFHL0o7aUJEL3FCVixJQ2dyQmNMLDBDQURKSyxJQUNJTDs2QkFoRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUROTjtPQUVBbUs7T0FHQUM7T0FDQUM7T0FFQUM7T0FJQUU7T0FFQUU7NkJBL0RNLFNBNkVKQyxLQUFHaEs7OEJBQ0w7Ozs7O2dDQUU2Qzs7NkNBQWIwRjtpQ0FBSyxPQUFMQSw2QkFBVzsrQkFBRTs7OztnQ0FBL0I7Ozs7Ozs7Z0NBQVY7Ozs0QkFIQzFGLGtDQUcwRDs2QkFoRnpEO0tBMkZKaUs7U0FUQTNLOzZCQWxGSSxTQTRGSjRLO2lCRDVzQlQsSUM0c0JnQkE7O2lDQUFvRCw2QkFBTHZLLEVBQS9DdUs7aUNBQW9ELE9BQUx2SzsrQkFBWDs2QkE1RnZDLFNBOEZKd0ssUUFBTXpFLEVBQUU1Rjs4QkFDVjs7b0NBRFVBO3VCQUFGNEY7OytCQTBpRVY7OEJBemlFRSxvQkFEVTVGO3VCQUFGNEY7Ozs4QkFDUixTQURRQSxVQUFFNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFDVjs7Ozs7Ozs7O3VDQURRNEYsVUFBRTVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBQ1Y7Ozs7Ozs7Ozt1Q0FEUTRGLFVBQUU1Rjs7OztrQ0FNZ0I7OzttQ0FBSzs0REFBWHNLOzs7Y0FEVHpLOzs7O2lFQTBCVjs2QkE3SEssU0ErSEowSyxNQUFJQyxHQUFHeEg7OEJBQ1QsaUNBRFNBOzhCQUNUO2lDQUNlOzs7O2VBRlR3SCxHQUVDSjs4QkFFUCxxQkFKU3BIO3dDQUtFLG1CQUxMd0g7eUNBTUc7NkJBcklILFNBdUlKQyxVQUFTbEMsS0FBTUM7K0JBQU87ZUFBYkQsS0FBTUMsOEJBQXNCOzZCQXZJakM7O1NBNkVKMEIsS0FLQTFLLFFBU0EySyxVQUNBQyxLQUVBQyxRQWlDQUUsTUFRQUU7NkJBdklJLFNBNklOQyxLQUFHeEssSUFBSTBGOzhCQUNUOzRCQURLMUYsZ0JBQUkwRiwrQ0FDNkM7NkJBOUk5QyxTQWdKTitFO2lCRGh3QlA7NkJDZ25CYTs7Z0VBa0pOQzs2QkFsSk0sU0EySk5FLFNBQU9DLEdBQUdDOzhCQUNaO29DQURZQTsrQkFDWixLQURTRDsrQkFDVDtnQ0FHUzs7cUNBSkdDO2dDQUlILEtBSkFEO2dDQUlBO2dDQURLOztxQ0FIRkM7Z0NBR0UsS0FITEQ7Z0NBR0s7K0JBREE7OzsyQ0FHYjs2QkFoS08sU0FrS05FLFVBQVMxQyxLQUFNQzs4QkFDakI7b0NBRGlCQTsrQkFDakIsS0FEV0Q7K0JBQ1g7Z0NBR1M7O3FDQUpRQztnQ0FJUixLQUpFRDtnQ0FJRjtnQ0FERjs7cUNBSFVDO2dDQUdWLEtBSElEO2dDQUdKOytCQURBOzs7MkNBR047NkJBdktPLFNBeUtOMkMsR0FBSzlKLElBQVcrSDsrQkFBSSxHQUFmL0g7Z0NBQUksaUNBQUpBLFNBQUlHOztXQUFKeUIsRUF2Qkw0SDsrQkF1Qm9CLFVBQUp6QixFQUFYbkcsbUNBQWdDOzZCQXpLL0IsU0EwS05tSSxHQUFLL0osSUFBVytIOytCQUFJLEdBQWYvSDtnQ0FBSSxpQ0FBSkEsU0FBSUc7O1dBQUp5QixFQXhCTDRIOytCQXdCb0IsVUFBZjVILEtBQVdtRyxFQUFYbkcsOEJBQWdDOzZCQTFLL0IsU0EyS05vSSxLQUFPaEssSUFBVytIOytCQUFJLEdBQWYvSDtnQ0FBSSxpQ0FBSkEsU0FBSUc7O1dBQUp5QixFQXpCUDRIOytCQXlCc0IsVUFBZjVILFVBQVdtRywyQkFBdUI7NkJBM0tuQyxTQTZLTmtDLFFBQU16RixFQUFFNUY7OEJBQ1Y7b0NBRFVBOytCQUNWLEtBRFE0RjsrQkFDUjtnQ0FHUzs7O3FDQUpDNUY7Z0NBSUQsS0FKRDRGO2dDQUlDO2dDQURGOzs7cUNBSEc1RjtnQ0FHSCxLQUhDNEY7Z0NBR0Q7K0JBREE7OzsyQ0FHTjs2QkFsTE8sU0FvTE4wRixNQUFJZCxHQUFHM0s7OEJBQ1Q7OztvQ0FEU0E7K0JBQ1Q7OEJBQ0Esd0NBRk0ySzs4QkFDTjsrQkFDQSxLQUZTM0s7K0JBRVQ7OEJBQ0Esd0NBSE0ySzs4QkFHTjt1QkFITUEsR0FBRzNLLDhCQUlTOzZCQXhMVjs7OzhCQTBMd0I7Ozs4QkFBbEI7Ozs7OzhCQUNzQjs7OzhCQUF2Qjs7Ozs7OEJBRzhCOzs7Ozs4QkFBcEM7Ozs2QkFBUDs7Ozs7OEJBRWlDOzs7OEJBQXRCOzs7Ozs7T0FuRFQ2SztPQUdBQztPQUVBQztPQU9BQztPQUVBQztPQU9BRztPQU9BQztPQUNBQztPQUNBQztPQUVBQztPQU9BQztPQU1BQztPQUNBQztPQUVBQztPQUdBQzs4QkFBUzs7c0NBV1RFLElBQUloRjsrQkFBSSxZQUFKQSxpQ0FBa0M7NkJBWDdCLG9DQVFUK0UsUUFHQUM7NkJBWFMsU0FnQ1RDLE9BQU9DLEdBQUdDOzhCQUNaOztnQ0FBa0Q7aURBRHRDQTtnQ0FDc0M7Z0NBQVA7aURBRGxDRDtnQ0FDa0M7Z0NBQVg7OztnQ0FBUjtpREFEWkM7Z0NBQ1k7Z0NBQVA7aURBRFJEO2dDQUNRO2dDQUFYOzs7MkRBQW9EOzZCQWpDL0MsU0FvQ1RFLGVBQWV4QixHQUFHcEU7K0JBR007T0FGakJ2Rzs7Z0NBRWlCO2lEQUhUMks7Z0NBR1M7Ozs7Z0NBQ0k7aURBSlZwRTtnQ0FJZ0IsWUFEMUI2RjtnQ0FDMEI7Z0NBQW5CO2lEQUpHN0Y7K0JBSUg7MkJBSkFvRSx1QkFDUjNLOzZCQXJDRSxTQTBDTHFNLE9BQUsxQixHQUFHcEU7aUJEMTFCbkI7OztpQ0MyMUJnQjs7OzttQ0FFUDs7cUNBQ0U7cURBSktvRSxHQUFHcEUsRUFFSnZHO3FDQUVKOzs7O29DQUVXOzZCQUgyQnNNLFFBQWpCQyxPQUFNQzs7a0NBSXpCQzs7b0NBRUs7O1lBREdDO1lBQUpDO3FDQUNDOzZDQVRGaEMsR0FBR3BFLEVBUUZvRztxQ0FDQzs7cUNBQ2tCO3NEQUR2QlY7cUNBQ3VCO3FDQUFGOzs7cUNBQUo7c0RBVlgxRjtxQ0FVRDs2Q0FWRm9FLFFBUUsrQjtxQ0FFSDtxQ0FDOEI7c0RBRG5DUjtxQ0FDbUM7cUNBQVA7c0RBRjVCRDtxQ0FFNEI7cUNBQVg7OztxQ0FBTjtzREFEWEM7cUNBQ1c7cUNBQVI7c0RBRkhEO29DQUVPOzs7b0NBRUY7O1lBREdXO1lBQUpDO3FDQUNDOzZDQWJGbEMsR0FBR3BFLEVBWUZzRztxQ0FDQztxQ0FDcUI7c0RBRDFCQztxQ0FDMEI7O3FDQUFMOzs7cUNBQUo7c0RBZFh2RztxQ0FjRDs2Q0FkRm9FLFFBWUtpQztxQ0FFSDtxQ0FDZ0M7c0RBRHJDRztxQ0FDcUM7cUNBQVI7c0RBRjdCRDtxQ0FFaUM7O3FDQUFiO3NEQURwQkM7cUNBQ29CO3FDQUFQO3NEQUZiRDtxQ0FFYTtxQ0FBWDs7Ozs7b0NBQ21DOztZQUE3QkU7WUFBSkM7cUNBQWlDOzZDQWhCbEN0QyxHQUFHcEUsRUFnQkV5RztvQ0FBYztvREFoQm5CckMsR0FBR3BFLEVBZ0JGMEc7O29DQUd3Qjs7WUFGbEJDO1lBQU5DO1lBQUhoSzs7O3FDQUUyQjtzREFGbEIrSjtxQ0FFa0I7O3FDQUFmO3NEQUZUQztxQ0FFUztxQ0FBTDtzREFuQkY1RztxQ0FtQk47NkNBbkJHb0UsUUFpQkZ4SDtvQ0FFRDs7O29DQUUyQjs7WUFEbEJpSztZQUFMQztZQUFIQzs7O3FDQUMwQjsyREFEbEJGO3FDQUNrQjs7cUNBQWQ7MkRBRFRDO3FDQUNTO3FDQUFMO3NEQXJCRjlHO3FDQXFCTjs2Q0FyQkdvRSxRQW9CRjJDO29DQUNEOzs7b0NBQ0s7WUFBTkM7O29DQUFNOzhCQXRCQ2hILEVBc0JQZ0g7NkJBaEVJLDZCQWtFVEM7NkJBbEVTLFNBbUVUQyxPQUFLdEQsRUFBRW5KOytCQUFJOytCQUFLO3VEQUFYbUosRUFBRW5KLDRCQUFtQjs2QkFuRWpCLFNBcUVUME0sS0FBSzNILEVBRUw1QztpQkR2M0JQLFVDdTNCT0E7dUJBRFN3SyxZQUFITDtpQ0FBc0I7bUJBQXRCQSw2QkFBc0IsZ0JBQW5CSyxHQURKNUg7K0JBRUEsYUFBTDVDLEVBRks0Qzs2QkFyRUksU0F5RVQ2SCxTQUFRakIsR0FBR0Q7OEJBQ2IsY0FEYUE7ZUFBSEM7c0NBQUdELFNBQUhDLEdBQUdELDZCQUlXOzZCQTdFYixTQStFVG1CLFNBQVFsQixHQUFHRDs4QkFDYixjQURhQTtlQUFIQztzQ0FBR0QsU0FBSEMsR0FBR0QsNkJBSVc7NkJBbkZiLFNBcUZUb0IsU0FBUW5CLEdBQUdEOzhCQUNiLGNBRGFBO2VBQUhDO3NDQUFHRCxTQUFIQyxHQUFHRCw2QkFJVzs2QkF6RmIsU0E2RlRxQixNQUFNWixLQUFLRCxNQUFNYzs4QkFFbkIsYUFGbUJBLElBQVhiLEtBQUtELGdDQUVXOzZCQS9GYixTQWlHVGUsTUFBTVosSUFBSUQsT0FBT1k7OEJBRW5CLGFBRm1CQSxJQUFYWCxJQUFJRCxpQ0FFWTs2QkFuR2IsU0FxR1RjLEtBQU8zTSxtQkFBc0N5TTs4QkFDL0MsR0FEU3pNO2dDQUFJLGlDQUFKQSxTQUFJRzs7V0FBSnlNOzhCQUNUO2dDQUR1Qjs7UUFBSjFLLEVBQUkySzs7V0FBSjNLOzhCQUNuQjtnQ0FEaUM7O1FBQUpOLEVBQUlrTDs7V0FBSmxMOzhCQUM3QjtnQ0FEMkM7O1FBQUpoRCxFQUFJbU87O1dBQUpuTzs7U0FBOUJnTyxXQUFVMUssYUFDZjhLLE1BRDJDUDsrQkFtMkQvQztXQWwyRElPLCtCQUFpQyxNQUQ1QkosRUFBVTFLLEVBQTRCdUs7U0FBbEI3SyxXQUFVaEQsaUNBRU8sT0FEMUNvTzsrQkFDdUI7ZUFGRXBMLEVBQVVoRCxFQUNuQ29PLCtCQUM2Qzs2QkF2R3RDLFNBeUdUQyxLQUFLckIsS0FBS0QsTUFBTWM7K0JBQXFCLG9DQUEzQmQ7K0JBQWtCO2lCQUF2QkMsVUFBV2EsNkJBQWtDOzZCQXpHekMsU0EwR1RTLEtBQUtwQixJQUFJRCxPQUFPWTsrQkFBb0Isb0NBQTNCWjsrQkFBbUI7aUJBQXZCQyxTQUFXVyw2QkFBa0M7NkJBMUd6QyxTQTRHVFUsSUFBTW5OLG1CQUFzQ3lNOzhCQUM5QyxHQURRek07Z0NBQUksaUNBQUpBLFNBQUlHOztXQUFKeU07OEJBQ1I7Z0NBRHNCOztRQUFKMUssRUFBSTJLOztXQUFKM0s7OEJBQ2xCO2dDQURnQzs7UUFBSk4sRUFBSWtMOztXQUFKbEw7OEJBQzVCO2dDQUQwQzs7UUFBSmhELEVBQUltTzs7V0FBSm5POytCQUNIOzBDQURHQTtnQ0FDWixVQURFZ0Q7Z0NBQ1gsVUFEQ007K0JBQ1Y7b0JBREEwSyxrQkFBc0NILDZCQUNGOzZCQTdHakMsU0ErR0xXLFFBQVFDLEVBQUU5SSxPQUFNOEQ7aUJELzVCM0IsSUMrNUIyQmlGOzhCQUN0Qjs7U0FBUUM7bUJBQU1oSixPQUNWOEQ7dUJEajZCVCxHQ2k2QlNBOzs7eUNBQzJCO2lCQUFqQmlGO2lCQUFMMU87aUJBQUw0RixFQURBNkQ7MENBQzJCO2lEQUZqQjlELE9BRUErSTt5Q0FBTTs0REFGTi9JLE9BRVZDLEVBQUs1Rjs7cUNBRGlCLE9BQXRCeUo7Z0NBREosR0FEc0JpRjs7cUNBUUU7OzZDQVJSL0ksT0FBTStJOzs7bUNBT1gsNkJBQVAxTSxFQVBrQjBNO21DQU9YLE9BQVAxTTtpQ0FESSxPQU5NeU0sMkJBUTBCOzZCQUUvQixTQUFQSTtpQkR6NkJQLE9DKzVCV0wsUUE3Q0puQixRQU9BSTs2QkFpRE8sU0FBUHFCO2lCRDE2QlAsT0MrNUJXTixRQTdDSm5CLFFBYUFLOzZCQTJDTyxTQUNQcUIsS0FBS3RGOytCQUFLOytCQXRDVmtFLFNBc0NLbEUsR0F6REw0RCxpQ0F5RDBDOzZCQURuQyxTQUdQMkIsT0FBS3pCLEtBQUswQjs4QkFDWixHQURPMUI7aUNBQ21CLDZCQUFMM0gsRUFEZDJIO2lDQUNtQixnQkFEZDBCLElBQ1NySjsrQkFBaUMsVUFEMUNxSiw0QkFDb0Q7NkJBSnZELFNBTVBDLE9BQVEzQixLQUFLMU47K0JBQUk7K0JBQVU7ZUFBbkIwTiw4QkFBbUIsZ0JBQWQxTiw0QkFBZ0M7NkJBTnRDLFNBT1BzUCxPQUFRNUIsS0FBSzNIOytCQUFJOytCQUFVO2VBQW5CMkgsOEJBQW1CLGdCQUFkM0gsNEJBQWdDOzZCQVB0QyxTQVNId0osUUFBUVgsRUFBRTlJLE9BQU0zRCxFQUFFb0gsRUFBRS9IOzhCQUMxQixHQUR3QitIOzttQ0FLWjtzQ0FMWUE7b0NBTTZCLEtBTjdCQSxJQUtoQmlHO29DQUNvQyxLQU50QnJOLElBS2RxTjtvQ0FDb0I7NkNBTmRaLEVBQUU5SSxpQkFBVXRFO2tDQU10QjttQkFOWXNFOzJDQU1aLFFBTlU4SSxFQUFFOUksT0FBTTNELEVBS2RxTixFQUxrQmhPOztpQ0FHbEI7aUJBSGtCQSxFQUFKVzsrQkFFZCxPQUZNeU0sMEJBTWlEOzZCQWZ0RCxTQWlCUGEsU0FBU0QsRUFBRWpHLEVBQUUvSDs4QkFDZjs7O2dDQUFRO2lEQURHZ087Z0NBQ0g7O2dDQUFpQjtpREFEWmpHOytCQUNZO2VBMUV2QmlFO2VBYUFLOztlQTZEbUI4Qjt3QkFDV0M7eUNBQzVCOzBCQTVFRnBDOzBCQU9BSTs7MEJBbUVFOEI7bUNBRWdDdk47cURBQUs7cUNBSDFCWCxFQUdxQlcsRUFESnlOLDJCQUNjLDJCQUFDLDJCQUFDOzZCQXBCdkMsU0FzQlBDLE1BQU1DLEtBQU1wQyxLQUFLcEUsRUFBRWEsRUFBRW5KOzhCQUN2Qjs7O2dDQUFRO3NEQURhbUo7Z0NBQ2I7O2dDQUFpQjtzREFERm5KO1lBQ25CK08sZ0JBQWlCQztpQ0FHRTs7OENBSmZGLEtBQ0pDLElBRGV6RztrQ0FJTjswQ0FKQ29FO2lDQUlEOztpQkFIUXNDOzs0Q0FJTyxPQUR0QkMsNkJBQzBCOytCQUhQLHVDQURyQkYsSUFBaUJDLDZCQUlZOzZCQTNCeEI7NkJBNkJBLFNBQVBFO2lCRHY4QlAsT0NnOEJPTDs2QkFPTyxTQThGTE0sV0FBV2hROytCQUNiOztpQ0FDNEI7a0RBRmZBO2lDQUVlO2lDQUFkO2tEQUZEQTtpQ0FFQztnQ0FBWjtpREFGV0E7Z0NBRVg7aUNBRG1EO2tEQUR4Q0E7Z0NBQ3dDO21GQUNaOzZCQWhHbEMsU0FrR0xpUSxTQUFTekYsR0FBRzBGLE1BQU1sUTsrQkFDcEI7K0JBRUEseUNBSFd3SzsrQkFDWCx5QkFFQTsrQkFDQSx5Q0FKV0E7K0JBQ1g7Z0NBR0E7aUNBRUs7a0RBTmV4SztpQ0FNZjtpQ0FEeUM7a0RBTDFCQTtpQ0FLMEI7aUNBQWY7a0RBTFhBO2lDQUtXO2lDQUFmO2tEQUxJQTtpQ0FLSjsrQkFBaEI7YUFMV3dLOytCQUNYLHlCQUlBOytCQUVBO2FBUFdBLEdBQUcwRjsrQkFDZCx5QkFNQTsrQkFDQSx5Q0FSVzFGOytCQUNYLHlCQU9BOytCQUNBLHlDQVRXQTsrQkFTWDt5QkFUb0J4Syw0QkFXVDs2QkE3R0osU0ErR0xtUSxTQUFTM0YsR0FBRzBGLE1BQVE5TyxJQUFZcEI7K0JBQ2xDLEdBRHNCb0I7aUNBQVE7c0NBQVJBO2NBQVFHOztXQUFSNk87K0JBQ3RCOytCQUNBLHlDQUZXNUY7K0JBQ1g7Z0NBQ0E7aUNBRUs7a0RBSjZCeEs7aUNBSTdCO2lDQUR5QztrREFIWkE7aUNBR1k7aUNBQWY7a0RBSEdBO2lDQUdIO2lDQUFmO2tEQUhrQkE7aUNBR2xCOytCQUFoQjthQUhXd0s7K0JBR1gsVUFIc0I0RjtrQ0FLRjs7ZUFMVDVGLEdBQVc0RjsrQkFDdEIsMEJBSWtEOytCQUNsRDthQU5XNUYsR0FBRzBGOytCQUNkLHlCQUtBOytCQUNBLHlDQVBXMUY7K0JBT1g7eUJBUGtDeEssNEJBUXZCOzZCQXZISixTQXlITHFRLE9BQUtDLEVBQUUxSyxFQUFFNUY7K0JBQ1gsVUFET3NRO2tDQUlDOzttQ0FBa0Q7b0RBSi9DdFE7bUNBSStDO21DQUFWO29EQUp2QzRGO21DQUk2Qzs7bUNBQWpCO29EQUoxQjVGO21DQUkwQjttQ0FBVDtvREFKbkI0RjttQ0FJbUI7bUNBQWY7Ozs7ZUFKTjBLO2tDQU1IOzttQ0FFMEI7b0RBUm5CdFE7bUNBUW1CO21DQUFUO29EQVJaNEY7bUNBUVk7bUNBQWY7OzttQ0FEd0I7b0RBUG5CNUY7bUNBT21CO21DQUFUO29EQVBaNEY7bUNBT1k7bUNBQWY7Ozs7Z0NBSkY7O2lDQUFnRDtrREFIekM1RjtpQ0FHeUM7aUNBQVQ7a0RBSGxDNEY7aUNBR2tDO2lDQUFmOzs7aUNBQVI7a0RBSFQ1RjtpQ0FHUztpQ0FBVjtrREFIRDRGO2dDQUdPO21FQUt1Qjs2QkFqSWhDLFNBbUlEMkssS0FBS25QLElBQWdCbEI7K0JBQzNCLEdBRFdrQjtpQ0FBTztzQ0FBUEE7YUFBT0c7O1dBQVBnTTsrQkFDWCxxQ0FEV0E7Z0NBRW9DO21CRDVrQ3RELE9DMGtDYWdEO2dDQUV5Qzs7aUNBQVI7O3lDQUY1QmhEO2dDQUVnQjttQkQ1a0NsQyxPQzBrQ2FnRDtnQ0FFcUI7O2lDQUFSOzs7O2lDQUFMOzs7aUNBQ2Q7bUNBQ1c7K0JBSmdCclE7O2tDQUczQjs7c0NBRWU7YUFBTDBHOztzQ0FBSztrQ0FMWTFHLGFBS2pCMEc7O3NDQUtBOzthQUpDaEI7YUFBSDVDOzt1Q0FJRTsyREFWQ3VLLEtBTUEzSCxHQUFINUM7dUNBSUU7dUNBRFk7MkRBVFh1SyxLQU1BM0g7dUNBR0Y7d0NEbmxDaEIsT0Mwa0NhMks7dUNBU0c7Ozt1Q0FESDs7O2tDQVJxQnJROztzQ0FXWDthQUFMdVE7O3NDQUFLO2tDQVhXdlEsSUFFdkJzUSxRQVNPQzs7c0NBQ0s7YUFBTEM7O3NDQUFLO2tDQVpXeFEsSUFFdkJzUSxRQVVPRTs7c0NBQ0s7YUFBTEM7O3NDQUFLO2tDQWJXelEsSUFFdkJzUSxRQVdPRzs7c0NBRW1DOzthQUQ1QjVEO2FBQU5DO2FBQUhHO3FCQWRFSTt1Q0FlbUM7d0NEemxDckQsT0Mwa0NhZ0Q7c0NBZXdDO2tDQWZuQnJRLElBY2Y4TSxLQUFNRCxXQUFUSTs7c0NBR3FDOzthQUQ3QkY7YUFBTEM7YUFBSDBEO3FCQWhCRXJEO3VDQWlCbUM7d0NEM2xDckQsT0Mwa0NhZ0Q7c0NBaUJ3QztrQ0FqQm5CclEsSUFnQmZnTixJQUFLRCxZQUFSMkQ7O3NDQUVLOzs7O3VDQUFrQjs7O2tDQWxCTDFRLFNBa0JwQjJRLCtCQUEyQzs2QkFySjNDO0tBdUpMQzs7NkJBdkpLLFNBeUpEQyxRQUFRdkcsR0FBR3BFO2dDQWtCQztPQWpCVHZHOztpQ0FpQlM7a0RBbEJKMks7aUNBa0JJOztzQ0FBVndHO2lDQUFVO2lDQUVSO2tEQXBCTzVLO2lDQW9CRDs7aUNBRFE7a0RBbkJQQTtpQ0FtQk87Z0NBQXBCO2FBbkJVb0UsdUJBQ0wzSztnQ0FpQlM7aUNBQ2QsS0FESW1SO2lDQUNKO2lDQUs0QjtrREF2QnZCblI7aUNBdUJFO2lEQXhCRzJLLEdBQUdwRTtpQ0F3Qk47aUNBQUw7OztnQ0FHMkI7O21EQTNCaEJBLEVBdUJUNkssSUF0QkNwUjtnQ0EwQndCLE9BSnpCb1I7NkJBaExELFNBdUxMQyxLQUFLMUcsR0FBRytDLEtBQUtuSCxFQUFFZ0Q7aUJEOW5DeEI7K0JDZ29DTyxVQUZpQkE7OztnQ0FFakIsT0FGaUJBOztvQ0FLRzswQ0FMSEE7V0FFYnBKLDRCQUdnQixRQUxid0ssR0FBUXBFLEVBS0grSzs7O29DQUVNO2lCQVBEL0g7V0FNSnhEO1dBQUhjOztxQ0FDUTtzREFQUjZHLEtBTUczSDtxQ0FDSyxLQURMQSxTQU5IMkg7cUNBT1EsVUFBUkM7b0NBSUM7c0NBQTRCOzsrQ0FYaENoRCxHQUFRcEUsRUFNTE07dUNBSzZCO3VDQUFWO3dEQVhkTjt1Q0FXYyxLQUpuQm9IO3NDQUlDO2NBWEpoRDtvQ0FZRCxHQVpJK0MsWUFNRzNIO3NDQU1xQjs0Q0FMeEI0SDt1Q0FLd0I7c0NBQzFCO21CQWJEaEQ7c0NBWTJCO3VDQUMxQixLQU5FZ0Q7dUNBTUY7c0NBQ0E7bUJBZERoRDtvQ0FPVztXQUxkeEs7c0NBYUUsS0FmQ3dLLEdBT0dnRCxHQVBLcEgsRUFNTE07OztvQ0FXSzttQkFqQkUwQztXQWdCQ2dJO1dBQUpDO3FDQUNDOzJDQWpCUjdHLEdBQUcrQyxLQUFLbkgsRUFnQkRpTDtxQ0FDQzs7cUNBQ3VCO3NEQUQ1QnZGO3FDQUM0QjtxQ0FBRjs7O3FDQUFKO3NEQWxCakIxRjtxQ0FrQkE7MkNBbEJSb0UsR0FBRytDLFVBZ0JRNkQ7cUNBRUg7cUNBQzhCO3NEQURuQ3JGO3FDQUNtQztxQ0FBUDtzREFGNUJEO3FDQUU0QjtxQ0FBWDs7O3FDQUFOO3NEQURYQztxQ0FDVztxQ0FBUjtzREFGSEQ7cUNBRU87O1dBakJiOUwsNEJBaUJNOzs7b0NBRUs7bUJBckJFb0o7V0FvQkNrSTtXQUFKQztxQ0FDQzsyQ0FyQlIvRyxHQUFHK0MsS0FBS25ILEVBb0JEbUw7cUNBQ0M7cUNBQzBCO3NEQUQvQjVFO3FDQUMrQjs7cUNBQUw7OztxQ0FBSjtzREF0QmpCdkc7cUNBc0JBOzJDQXRCUm9FLEdBQUcrQyxVQW9CUStEO3FDQUVIO3FDQUNnQztzREFEckMxRTtxQ0FDcUM7cUNBQVI7c0RBRjdCRDtxQ0FFaUM7O3FDQUFiO3NEQURwQkM7cUNBQ29CO3FDQUFQO3NEQUZiRDtxQ0FFYTtxQ0FBWDs7O1dBckJSM00sNEJBcUJNOzs7b0NBRUs7bUJBekJFb0o7V0F3QkNvSTtXQUFKQztxQ0FDQzsyQ0F6QlJqSCxHQUFHK0MsS0FBS25ILEVBd0JEcUw7cUNBRUM7MkNBMUJSakgsR0FBRytDLEtBQUtuSCxFQXdCR29MO1dBdEJkeFIsNEJBeUJFLE9BRkkwUixLQUNBQzs7O29DQUdLO21CQTdCRXZJO1dBNEJHMkQ7V0FBTkM7V0FBSDRFO3FDQUNJOzZDQTdCUnBILEdBQVFwRSxFQTRCSndMO3FDQUNJO29DQUNUO2lCQTlCQ3BIO29DQTZCUTtxQ0FDVDtxQ0FHSztzREFKRHFIO3FDQUlDO3FDQURDO3NEQUhGQTtxQ0FHUyxZQUpDOUU7cUNBSUQ7cUNBRHlCO3NEQS9CN0IzRztxQ0ErQjZCO3FDQUFaO3NEQS9CakJBO3FDQStCaUI7b0NBQTFCO2lCQS9CQ29FO29DQTZCUTtxQ0FFVDs7cUNBRzhCO3NEQU50QndDO3FDQU1zQjtxQ0FBSjtzREFsQ2pCNUc7cUNBa0NBOzJDQWxDUm9FLEdBQUcrQyxVQTRCQ3FFO3FDQU1JO29DQUNUO2lCQW5DQ3BIO29DQTZCUTtxQ0FNVDtxQ0FDVyxLQVJId0MsT0FBTUQ7cUNBUUg7cUNBQUY7OztXQWxDWC9NLDRCQWtDTSxnQkFGQThSOzs7b0NBSUs7bUJBdENFMUk7V0FxQ0U2RDtXQUFMQztXQUFINkU7cUNBQ0k7NkNBdENSdkgsR0FBUXBFLEVBcUNKMkw7cUNBQ0k7b0NBQ1Q7aUJBdkNDdkg7b0NBc0NRO3FDQUNUO3FDQUdNO3NEQUpGd0g7cUNBSVMsWUFMQS9FO3FDQUtBO3FDQURSO3NEQUhEK0U7cUNBR0M7cUNBRGlDO3NEQXhDN0I1TDtxQ0F3QzZCO3FDQUFaO3NEQXhDakJBO3FDQXdDaUI7b0NBQTFCO2lCQXhDQ29FO29DQXNDUTtxQ0FFVDs7cUNBRzhCOzJEQU50QjBDO3FDQU1zQjtxQ0FBSjtzREEzQ2pCOUc7cUNBMkNBOzJDQTNDUm9FLEdBQUcrQyxVQXFDQ3dFO3FDQU1JO29DQUNUO2lCQTVDQ3ZIO29DQXNDUTtxQ0FPSyxLQVJOMEMsTUFBS0Q7cUNBUUM7O3FDQUFMOzs7V0EzQ1hqTiw0QkEyQ00sZ0JBRkFpUzs7OytCQStrRFosZ0JBeG5ETWpTLEVBRldvRzsrQkFvRGYsT0FsRElwRywwQkFrREY7NkJBM09LOzs7T0E4RkxnUTtPQUlBQztPQWFBRTtPQVVBRTtPQVVJRTtPQW9CSk87T0FFSUM7T0E4QkpHOzhCQXZMSzs7T0F2SFByRjtPQUlBRztPQU1JRTtPQXdCSm1CO09BQ0FDO09BRUFDO09BSUFFO09BTUFDO09BTUFDO09BUUFDO09BSUFFO09BSUFDO09BSUFNO09BQ0FDO09BRUFDO09BR0lDO09BVUpLO09BQ0FDO09BQ0FDO09BRUFDO09BR0FFO09BQ0FDO09BRUlDO09BUUpFO09BS0FJO09BT0FLOzs2QkFBTyxTQWdQUG1DLEtBQUtsUSxFQUFFeU47Z0NBQVUsT0FBVkEsSUFBRnpOLElBQUV5TiwyQkFBZ0M7NkJBaFBoQyxTQWlQUDBDLEtBQUtuUSxFQUFFeU47Z0NBQVUsT0FBWnpOLElBQUV5TixFQUFGek4sRUFBRXlOLDJCQUFnQzs2QkFqUGhDLFNBNFFMMkM7K0JBQ0Y7OztpQ0FBUTs7OENBQ1kxTDtrQ0FBSyxVQUFMQSxFQURoQkUsNEJBQ2tDO2dDQUQ5Qjs7aUNBQ2dDO2tEQURwQ0E7aUNBQ29DO2dDQUFwQztjQURBQTt3Q0FDQSxxREFBZ0Q7NkJBOVE3Qyw2QkFnUkx5TDs2QkFoUkssU0FpUkxDLE1BQUt6UjtnQ0FBb0IsT0FBcEJBLDhCQUF5Qjs2QkFqUnpCLFNBa1JMMFIsU0FBUTFSO2dDQUE2QixPQUE3QkEsOEJBQWtDOzZCQWxSckMsU0FvUkwyUjtnQ0FBWTtpQ0FDSDtVQUNEOUw7Z0RBQTJCOzZCQXRSOUIsNkJBd1JMK0w7NkJBeFJLLFNBMFJMQyxZQUFhOUw7K0JBQ2Y7NkNBQ2V5STtrQ0FDWDt3Q0FMRm9EO21DQUtFO2tDQUFvQztpQkFEekJwRCxxQ0FDeUIsZ0JBSHpCekksa0NBRzRDOytCQUYzRDs7OytCQUNBOzs7dUJBRmVBLEVBRmI2TCxtQ0FNYzs2QkE5UlQsU0FnU0xFO2lCRHZ1Q1QsSUN1dUNtQi9MLGtCQU5WOEwsWUFNVTlMOzZCQWhTTCxTQWtTTGdNO2lCRHp1Q1QsSUN5dUNtQmhNO29CQUNHeUk7a0NBQ1g7d0NBWkZvRDttQ0FZRTtrQ0FBZ0M7aUJBRHJCcEQscUNBQ3FCLGdCQUZ4QnpJLGtDQUUyQzs7K0JBRHZEOzs7O3VCQURZQTs2QkFsU0wsU0F3U0xpTSxRQUFNQyxHQUFHeEk7aUJEL3VDbEI7Z0JDK3VDZXdJOytCQXlnRFY7V0F2Z0Q2QjlRLEVBRmhCc0k7Ozs7Ozs7b0JBQUh3SSxvQ0FHRXpCLEdBSEZ5Qjs7O3NCQUFHeEk7O3dDQUcyQjtlQUFaOEc7Z0JBSGY5Rzt3Q0FHMkIsWUFBWjhHO3lDQUF1QixPQUh6QzBCO2dCQUdFekI7O29CQUhDL0c7c0NBSXdDO2FBQVJrSDtjQUpoQ2xIO3NDQUl3QyxHQUR6QytHLEtBQ2lDRzt1Q0FBbUIsT0FKbkRsSDs7O2dCQUtBaUgsS0FMSHVCLE1BS2tDeEIsS0FML0JoSDtlQUtBaUgsT0FBK0JELCtCQUN0QyxVQURzQ0E7b0JBTGxDd0I7cUNBT3NDLE9BUHRDQTtvQ0FRMEMsOEJBQXhDckIsS0FSRnFCO29DQVEwQyxVQUF4Q3JCO1lBTmlCelAsRUFGbkI4UTtnQ0FFcUQsT0FBbEM5USwyQkFNa0M7NkJBaFR0RCxTQWtUTCtRLE9BQU83UyxJQUFJMEc7Z0NBQUk7O2lDQUFjO2tEQUFsQkE7Z0NBQWtCO3NCQUF0QjFHLHdDQUFrQzs2QkFsVHBDLFNBb1RMOFMsVUFBVTlTO2lCRDN2Q25CO2lDQzR2Q2tCO3VCQURDQTs7O2NBRUMwRyxXQUFIRjttQ0FGRXhHLFNBRUZ3RyxFQUpScU0sT0FJV25NO2tDQUNHLDhCQUFMZ0w7a0NBQUs7d0JBSEoxUixTQUdEMFI7NkJBdlRKOzs7T0E0UUxRO09Bb0JBTztPQU5BRDtPQVFBRTtPQWxCQVA7T0FFQUU7T0FEQUQ7T0FHQUU7T0FvQkFLO09BVUFFO09BRUFDOzZCQXBUSyxTQWlWTEMsT0FBTXBTLEVBQUcrRjtnQ0FBSSxVQUFQL0YsRUFBRytGLDRCQUFZOzZCQWpWaEIsU0FrVkwvRixFQUFFbUI7Z0NBQUksT0FBSkEsOEJBQU87NkJBbFZKLFNBbVZMa1IsSUFBRWxSO2dDQUFJLE9BQUpBLDhCQUFPOzZCQW5WSixTQXFWTG1SLGFBQWFqVCxJQUFJa1Q7K0JBQ25CO09BQUlqQztzQkFEZWlDOzs7K0JBT25CO2lDQVBlbFQsSUFDWGlSLCtCQU0yQjs2QkE1VnhCLFNBOFZMa0MsS0FBR25ULElBQUlvVDtnQ0FFTTtvRUFGTkE7aUNBQzRDLGlDQUQ1Q0E7Z0NBQzRDOztlQURoRHBUOztlQVRIaVQ7Ozs4Q0FXa0I7NkJBaFdiLFNBb1dMSSxLQUFLL0csR0FBR0Q7Z0NBQUssVUFBUkMsR0FBR0QsNkJBQWE7NkJBcFdoQixTQXFXTFQ7aUJENXlDVCxJQzR5Q2E5STs2QkFyV0MsU0FzV0wrSTtpQkQ3eUNULElDNnlDZ0IvSTs2QkF0V0Y7O1NBcVZMbVEsYUFTQUUsS0FiQUosT0FEQXhULFVBRUFvQixFQUNBcVMsSUFpQkFLLEtBQ0F6SCxHQUNBQzs2QkF0V0ssU0F1WEx5SCxPQUFLeFIsRUFBRXlOO2dDQUFJLFVBQU56TixFQUFFeU4sNEJBQVU7NkJBdlhaLFNBd1hMZ0UsWUFBYW5EO2dDQUFhO09BQWhCYjtPQUFIek47aUNBQW1CLEtBQWhCeU4sSUFBR2E7Z0NBQUssVUFBWHRPLElBQU1zTzs2QkF4WFIsU0F5WExvRDtpQkRoMENULElDZzBDYzFSOzZCQXpYQSxTQTBYTDJSO1VBQVNsRSxXQUFIek4scUNBQVEsT0FBTHlOLElBQUh6Tjs2QkExWEQsU0EyWEw0UjtpQkRsMENULElDazBDaUJuRTs2QkEzWEg7O1NBdVhMK0QsT0FDQUMsTUFDQUMsSUFFQUUsSUFEQUQsT0FFQWpVOzZCQTVYSyxTQWtZTG1VLFdBQXFCak4sRUFBZXZGOytCQUV0QyxHQUZ1QnVGO2tDQUVDLDhCQUFOc00sSUFGS3RNO2tDQUVDO2lCQUZjdkYsRUFFcEI2UjtnQ0FBcUIsMkNBQVU7NkJBcFkxQyxTQXNZTFksY0FBYzVUO2lCRDcwQ3ZCO3lDQyswQ3FCLGtCQUZFQTt5Q0FDQSxrQkFEQUE7NkJBdFlUOzJDQW1hRUEsSUFBSTBHO2dDQUNQLFVBRE9BOzttQ0FHSzt5QkFIVDFHO3lCQUFJMEc7bUNBRUk7eUJBRlIxRzs7d0JBQUkwRzttQ0FLSDt3Q0FMR0E7b0NBS0g7d0JBREtzTTs7Ozs7a0NBSk5oVDtnQ0FhSTtzQkFiSkEsa0JBQUkwRyw0QkFhMkI7NkJBaGJqQzs7OzhCQWthTDs7c0NBaUZFUixFQXBET2xHO2dDQUFNOzRCQUFOQSw4QkFBc0I7NkJBN0IvQjs7OztzQ0F3RUFpVSxZQUFhblI7K0JBQ2YsWUFEZUEsOENBQzJCOzZCQXpFeEMsU0EyRUFvUixhQUFhcFI7Z0NBQUksT0FBSkEsOEJBQU87NkJBM0VwQixTQTRFQXFSLHFCQUFxQnJSO2dDQUFJLE9BQUpBLDhCQUFROzZCQTVFN0IsU0E2RUFzUixjQUFjdFI7Z0NBQUksT0FBSkEsOEJBQU87NkJBN0VyQixTQThFQXVSLHNCQUFzQnZSO2dDQUFJLE9BQUpBLDhCQUFROzZCQTlFOUIsU0FnRkF3UixlQUFldFU7VUFBTThKLFdBQUduSixXQUFPNFQsWUFBSkM7NENBQVp4VSxTQUNia0csRUFEbUI0RCxFQUNuQjVELEVBRHNCdkYsRUFDdEJ1RixFQUR5QnNPLEdBQ3pCdE8sRUFENkJxTzs2QkFoRi9COzs7dUNBaUNBVCxhQW9EQVc7NkJBckZBLFNBcUdBRSxLQUFLaEg7K0JBQ1A7Ozs7O2lCQURPQTs7Y0FwRUxtRzs7Y0FvREFXLCtCQTJCRDs2QkFoSEMsU0E4SEFHLE1BQU05UyxFQUFFeU47Z0NBQUk7Z0NBQUs7eURBQVh6TixFQUFFeU4sNkJBQXFCOzZCQTlIN0IsU0ErSEFzRixXQUFXMVQsRUFBRTJCO2dDQUFRO2NBQVJBOzs7O21CQUFGM0I7Y0FBRTJCOzs7NkNBQThDOzZCQS9IM0QsU0FpSUFnUyxjQUFlQyxNQUFNNVQsRUFBRzJCOytCQUMxQixHQURpQmlTO2lDQUlDOzBDQUpEQTtrQ0FJQyxLQUpRalM7a0NBSVI7UUFIZG1TLGtDQUdjLGdCQUFURDs7V0FITEMsUUFEc0JuUzsrQkFNMUI7Y0FOMEJBOzs7O21CQUFIM0I7Y0FDbkI4VDtjQURzQm5TOzs2Q0FNZ0I7NkJBdkl4QyxTQXlJQW9TLFdBQVdwVCxFQUFFeU4sRUFBRXpNO2dDQUFRO2NBQVJBOzs7O21CQUFKaEIsRUFBRXlOO2NBQUV6TTs7OzZDQUE4Qzs2QkF6STdELFNBMklBcVMsWUFBWUMsUUFBUXRTOytCQUN0QjtjQURzQkE7Ozs7bUJBQVJzUztjQUFRdFM7Ozs2Q0FDb0I7NkJBNUl4QyxTQThJQXVTLGlCQUFpQkMsYUFBYXhTOytCQUNoQztjQURnQ0E7Ozs7bUJBQWJ3UztjQUFheFM7Ozs0Q0FLL0I7NkJBbkpDLFNBcUpBeVMsaUJBQWlCRCxhQUFheFM7K0JBQ2hDO2NBRGdDQTs7OzttQkFBYndTO2NBQWF4Uzs7OzRDQUsvQjs2QkExSkMsU0E0SkEwUztnQ0FBa0I7Ozs7b0NBR0s7V0FBUjNIOztvQ0FBUTttQ0FBUkE7WUFEVnVGOzs7O21DQURTOztZQUNUQTtnQ0FBMEI7MEJBQTFCQSw4QkFDeUM7NkJBL0o5QyxTQWlLQXFDLE9BQVEzTCxFQUFHbkosRUFBRzZULEdBQUlELEdBQUlsRyxJQUFLUixLQUFPM007K0JBR3BDO3dDQUh3Qm1OLElBQUtSO2lDQUlyQjs7Ozs7O3NDQUpFL0Q7WUFBR25KO1lBQUc2VDtPQVNOa0IsS0FUVW5CO2dDQVVoQjs7OztjQURNbUI7bUJBVEE1TCxFQUFHbkosRUFJVHlTOzs7Ozs2QkFyS0YsU0E2S0F1QyxVQUFXN0gsRUFBa0JPLElBQUtSLEtBQU8zTSxJQUFnQjRCOytCQUczRDt3Q0FIK0J1TCxJQUFLUjtpQ0FHNUI7OztjQUhtRC9LOzs7O3NCQUE5Q2dMLGVBR1RzRjtjQUh1RHRROzs7NkNBSVI7NkJBakxqRCxTQW1MQThTLGFBQWNiLE1BQU01VCxFQUFHMkI7K0JBQ3pCLEdBRGdCaVM7aUNBRW1DOzBDQUZuQ0E7UUFDWkUsUUFDc0NEOztXQUR0Q0MsUUFEcUJuUzsrQkFJekI7Y0FKeUJBOzs7O21CQUFIM0I7Y0FDbEI4VDtjQURxQm5TOzs2Q0FJbUI7NkJBdkwxQyxTQXlMQStTLE9BQVFuUSxFQUFRNUY7K0JBQ2xCO3FDQWxHRTRVO2dDQWtHRixLQWxHRUE7Z0NBa0dGLEtBRFVoUCxPQUFRNUY7Z0NBQ2xCLEtBRGtCQTtnQ0FDbEIsS0FEVTRGO2dDQUNWO2lDQU9VOzt5Q0FSQUEsRUFBUTVGO2lDQVFSLEtBUlFBO2lDQVFSLEtBUkE0RjtpQ0FRQTtpQ0FGSDs7c0NBTlc1RjtpQ0FNWCxLQU5HNEY7aUNBS0g7c0NBTFc1RjtpQ0FLWCxLQUxHNEY7aUNBS0g7aUNBREQ7O3NDQUpZNUY7aUNBSVosS0FKSTRGO2dDQUdKOzs7Ozs7Ozs7NENBT0w7NkJBbk1DLFNBcU1Bb1EsT0FBUXBRLEVBQVE1RjsrQkFDbEI7cUNBOUdFNFU7Z0NBOEdGLEtBOUdFQTtnQ0E4R0YsS0FEVWhQLE9BQVE1RjtnQ0FDbEIsS0FEa0JBO2dDQUNsQixLQURVNEY7Z0NBQ1Y7aUNBT1U7OzBDQVJBQSxFQUFRNUY7aUNBUVIsS0FSUUE7aUNBUVIsS0FSQTRGO2lDQU1IO3NDQU5XNUY7aUNBTVgsS0FORzRGO2lDQU1IO2lDQURBOztzQ0FMVzVGO2lDQUtYLEtBTEc0RjtpQ0FJSjtzQ0FKWTVGO2lDQUlaLEtBSkk0RjtpQ0FJSjtnQ0FEQTs7Ozs7Ozs7OzRDQU9MOzZCQS9NQyxTQWlOQXFRLE9BQVFyUSxFQUFRNUY7K0JBQ2xCO3FDQTFIRTRVO2dDQTBIRixLQTFIRUE7Z0NBMEhGLEtBRFVoUCxPQUFRNUY7Z0NBQ2xCLEtBRGtCQTtnQ0FDbEIsS0FEVTRGO2dDQUNWO2lDQU9VOzswQ0FSQUEsRUFBUTVGO2lDQVFSLEtBUlFBO2lDQVFSLEtBUkE0RjtpQ0FRQTtpQ0FGSDs7c0NBTlc1RjtpQ0FNWCxLQU5HNEY7aUNBTUg7aUNBREE7O3NDQUxXNUY7aUNBS1gsS0FMRzRGO2lDQUtIO2lDQUREOztzQ0FKWTVGO2lDQUlaLEtBSkk0RjtpQ0FJSjtnQ0FEQTs7Ozs7Ozs7OzRDQU9MOzZCQTNOQzt3Q0F3RkFnUCxPQWlHQW1COzhCQXpMQSxVQXdGQW5CLE9BNkdBb0I7OEJBck1BLFVBd0ZBcEIsT0F5SEFxQjs2QkFqTkEsU0FnT0FJLE9BQUs1TTtnQ0FBSzs0QkFIVnlNLE9BR0t6TSw2QkFBK0I7NkJBaE9wQyxTQWlPQTZNLE9BQUs3TTtnQ0FBSzs0QkFIVjBNLE9BR0sxTSw2QkFBK0I7NkJBak9wQyxTQWtPQThNLE9BQUs5TTtnQ0FBSzs0QkFIVjJNLE9BR0szTSw2QkFBK0I7NkJBbE9wQyxTQW1PQStNLFlBQVV4VDtnQ0FBSTt3QkFBSkEsK0JBQTJCOzZCQW5PckMsU0FxT0l5VCxLQUFHdlcsSUFBSThDOytCQUNiO3NCQURTOUMsbUJBQUk4QyxLQUlYMFQsUUFKVzFULCtCQUVMOzZCQXZPTixTQXlPQTBULFFBQVF4VztpQkRsbERqQjs7bUNDb2xEVzs7OztvQ0FDRTs7O3FDQUhJQSxjQUNIMEY7O21DQUlIO1VBRFcrUTs7bUNBQ1g7cUNBTE16VyxTQUpKdVcsS0FRU0U7O21DQUdYO1VBRGdCQzs7bUNBQ2hCO3FDQVBNMVcsU0FKSnVXLEtBVWNHOzttQ0FHaEI7VUFEZ0JDOzttQ0FDaEI7cUNBVE0zVyxTQUpKdVcsS0FZY0k7O21DQUlkO1VBRmFwSDtVQUFIek47VUFBTjhVOzs7b0NBRUo7MERBcEtGMVE7b0NBb0tFOztvQ0FEa0M7MERBbktwQ0E7bUNBbUtvQzt5QkFYOUJsRyxjQVVNOEIsT0FBR3lOLEVBZGJnSCxLQWNJSzs7bUNBT04sOEJBRGExTjttQ0FDYjtxQ0FqQk1sSixTQUpKdVcsS0FvQldyTjs7bUNBRU0sOEJBQVRvRzttQ0FBUztxQ0FsQmJ0UCxTQUpKdVcsS0FzQlFqSDs7YUFDTXVILGFBQUhDLGFBQUhDOzhDQW5CSi9XLFNBbUJPOFcsSUFBR0QsSUF2QmROLEtBdUJRUTs7bUNBR1YsOEJBRFlDO21DQUNaO3FDQXRCTWhYLFNBSkp1VyxLQXlCVVM7O2FBRVJsWCxXQUFIeVE7OENBdkJLdlEsU0FKSnVXLEtBMkJEaEcsSUEzQkNnRyxLQTJCRXpXOzthQUNBbVgsYUFBSHpHOzhDQXhCS3hRLFNBSkp1VyxLQTRCRC9GLElBNUJDK0YsS0E0QkVVOzthQUNBQyxhQUFIekc7OENBekJLelEsU0FKSnVXLEtBNkJEOUYsSUE3QkM4RixLQTZCRVc7NkJBbFFOLFNBb1FBQyxPQUFLaFcsRUFBRWlXOytCQUNULGtDQURTQTsrQkFDVDt5Q0FDWTs7OzthQVVIQyxXQUFKQzttQ0FDRCxxQ0FiR25XLEVBWUZtVzttQ0FDRDtrQkFiR25XLEVBWUVrVztvQkFUTUUsNEJBSFJwVyxFQUdRb1csNkJBV1A7NkJBbFJOOzs7T0FoQ0E1RDtPQUlBQztPQTBCQUM7T0FtRkUzTjtPQWhERjROO09BQ0FDO09BQ0FDO09BcUNBQztPQUdBQztPQUNBQztPQUNBQztPQUNBQztPQUVBQztPQUtBRztPQUdBQztPQWFBQztPQXlCQUM7T0FDQUM7T0FFQUM7T0FRQUk7T0FFQUM7T0FHQUU7T0FPQUU7T0FPQUM7T0FLQUM7T0FZQUU7T0FNQUM7T0FNQUM7T0FZQUM7T0FZQUM7T0FZQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FFSUM7T0FJSkM7T0EyQkFXOzZCQXBRQSxTQXNTQUssT0FBS2xOOytCQUNQLFVBRE9BLCtDQUNnRDs2QkF2U3JELFNBeVNBbU4sT0FBSzNVO2dDQUFJLE9BQUpBLDhCQUFVOzZCQXpTZixTQTJTQTRVLFlBQWFOLEdBQVM1UTsrQkFDeEIsU0FBUW1SLElBQUlQO2lDQUNWLGtDQURVQTtpQ0FDVjs7cUNBSXNCOzJCQUxoQk8sSUFBSVA7OztzQ0FHa0IsR0FKTjVRO3VDQUlnQjtzQ0FDYiw4QkFBTkU7c0NBQU07NkJBQU5BO2tDQUZvQixrQ0FHTjsrQkFMbkMsb0NBRGUwUSw2QkFRVDs2QkFuVEosU0FxVEFRLE1BR0VsUyxFQUhRbVMsR0FHSi9YLEVBSFdnWSxHQUFHQztnQ0FDUjt5Q0FERkYsS0FBT0M7aUNBRVIsS0FGV0MsUUFHbEJyUztpQ0FEaUIsWUFDYjVGOztjQUZKa1ksZ0JBQ0FDO2tDQUdBLEdBTGVILEtBQVBEO21DQU1VO3lDQUpsQkksT0FGUUo7VUFLSkssYUFKSkY7O21DQU1nQjt5Q0FMaEJDLE9BRmVIO29DQU9XLFlBTjFCRTtVQUlJRSxNQUhKRDtrQ0FPYTt3Q0FOVG5ZLElBREptWTttQ0FPc0IsV0FKbEJDO21DQUlILEtBTkR4UyxJQUVJd1M7U0FGQWhCO1NBQUozRzs7K0JBdWxDTixrQkF2bENVMkcsTUFBSjNHOytCQWNKLFVBZElBLElBQUkyRyw4QkFjQTs2QkF0VU4sU0F3VUFpQixLQUFNQyxNQUFPSixRQUFRRCxNQUFNTSxHQUFHQztnQ0FFbkI7c0NBRlVQLFFBQWZLOztjQUFPSixnQkFFVEM7aUNBQzhCOztRQUY1Qk0sR0FEZVI7UUFDbkJTOzs7K0JBc2tDTjtrQ0Fsa0NNO1NBQUlDO2dCQUhGUixLQUZ1QkksR0FBR0M7a0NBTTVCLGlCQURJRzttQ0FFVzs7VUFOWEYsR0FEQUg7VUFDSkk7O3lCQUlJQztvQ0FHVzswQ0FOYlI7V0FERU0sR0FEQUg7V0FDSkk7O2NBQUlELEdBREFILE1BQ0pJLEdBQ0VQOytCQVlOLFVBYklPLEdBQUlELDZCQWFBOzZCQXRWTixTQXdWQUkscUJBQXFCQzsrQkFDdkIsY0FEdUJBLDRDQUNjOzZCQXpWbkMsU0EyVkFDLHFCQUFxQkQ7K0JBQ3ZCLGNBRHVCQSw0Q0FDYzs2QkE1Vm5DLFNBOFZJRSxlQUFlQyxHQUFHQyxHQUFHeEUsR0FBR0QsR0FBSTZDO1VBQWI2QixRQUFHQyxRQUFHQyxRQUFHekQsUUFBSTBEOytCQUNsQzs7dUNBRGtDQTtrQ0FFaEM7Ozs7O29DQUNHO2dCQUg2QkE7cUNBRzdCOzs7cUJBSDZCQTs7OztlQU9OQztlQUFMQztlQUFMQztlQUFMQztvQkFQUVAsUUFPUk87O3lCQVBXTixRQU9OSzs7MEJBUFNKLFFBT0pHLG1CQVBPNUQsUUFPRjJEOzs7Ozs7Ozs7OztrQ0FFdkI7Ozs7cUNBQ3VCOzs4Q0FWTUQ7b0NBUzdCLDBCQUN1Qjs7WUFWTUE7b0NBVzdCOztxQ0FDRCxnQkFaaUJILEtBQUdDLEtBQUdDLEtBQUd6RDtvQ0FTekIseUJBSUgsU0FiZ0MwRDttQ0FhaEM7NkNBQ1k7O2lCQU1XSyxlQUFIM1c7YUFwQllzVyxVQW9CWnRXO3VDQUVIO2NBQVQ0Vzt5Q0FBUztpQkFGTUQsT0FwQkpSLEtBQUdDLEtBQUdDLEtBQUd6RDt1Q0F1QnhCO2VBdkJldUQsS0FBR0MsS0FBR0MsS0FBR3pELEtBb0JSNVM7dUNBR2hCO3NCQURJNFc7O3VDQUlTO2NBRE1DO2NBQUgxTTt3Q0FDSDs7aUJBRE0wTSxTQXpCSlYsS0FBR0MsS0FBR0MsS0FBR3pEO3VDQTJCeEI7ZUEzQmV1RCxLQUFHQyxLQUFHQyxLQUFHekQsS0F5QlJ6STt1Q0FFaEI7c0JBREkyTTs7dUNBVUc7Y0FQUXhHO2NBQUg3RDtjQUFIek47Y0FBSDRPOzt3Q0FPQzt5REFQUTBDO3dDQU9SO3dDQUFIOzs7d0NBREc7eURBTlFBO3dDQU1SO3dDQUFIOzs2Q0FORTFDO3dDQU1GLEtBTkVBO3dDQU1GO3dDQUZPO3lEQUpGNU87d0NBR1A7d0RBaENtQnFYO3dDQWdDbkI7Ozt3Q0FXSzt5REFkUS9GO3dDQWNSO3dDQUFIOzs7d0NBREc7eURBYlFBO3dDQWFSO3dDQUFIOzs2Q0FiRTFDO3dDQWFGLEtBYkVBO3dDQWFGO3dDQUZPO3lEQVhDbkI7d0NBVVY7d0RBdkNzQm1HO3dDQXVDdEI7O3dDQU13QixLQTdDUndELE9Bc0NkYzt3Q0FPVyxLQTdDQWYsT0ErQlhhO2NBL0JXYjtjQUFHQztjQUFHQyxLQStCYlU7Y0EvQmdCbkUsS0FzQ2hCcUU7Y0F0Q29CWCxLQTZCdEIxSTs7O3VDQWtCb0I7Y0FEVHlKO2NBQUpDO2NBQUhDO3dDQUNnQixLQS9DUm5CLE9BOENEaUI7d0NBQ0YsS0EvQ0FsQixPQThDRm1CO2NBOUNFbkI7Y0FBR0M7Y0FBVUUsS0E4Q2xCaUI7Ozt1Q0FHRztjQURUdmE7Y0FBSDRGO21CQUFHNUY7O21CQUFINEY7O3dDQUNZO21FQWpEUXlUO3dDQWlEUjs7dUNBQ2I7ZUFsRGVGLEtBQUdDLEtBaURkdUIsR0FqRG9CL0UsS0FnRHZCaFE7dUNBQ1k7d0NBRUUsS0FuREF1VCxPQWlEWHdCO2NBakRXeEI7Y0FBTUUsS0FpRGJxQjtjQWpEb0JwQixLQWdEeEJ0Wjs7O3VDQUtTO2NBRFRtWDtjQUFIMUc7bUJBQUcwRzs7bUJBQUgxRzs7d0NBQ1k7bUVBckRXbUY7d0NBcURYOzt1Q0FDYjtlQXREZXVELEtBQUdDLEtBQUdDLEtBcURqQnlCLEdBREhySzt1Q0FDWTt3Q0FFSyxLQXZEQTJJLE9BcURkMEI7Y0FyRGMxQjtjQUFNeEQsS0FxRGhCaUY7Y0FyRG9CdkIsS0FvRHhCbkM7OztpQkFJQUMsWUFBSDFHO3VDQUNEO2VBekRleUksS0FBR0MsS0FBR0MsS0FBR3pELEtBd0R2QmxGO2lCQXhEMkI0SSxLQXdEeEJsQzs7d0JBeER3QjREOzhDQTBEQzs2QkF4WmpDLFNBMFpBQyxhQUFhM0Q7K0JBQ2Ysa0NBRGVBOytCQUNmO2tDQUVzQiw4QkFBTDVRO2tDQUFLO2lCQUhQNFEsR0FHRTVRO2dDQURpQixrQ0FDSTs2QkE3WnBDLFNBcWRBd1UsWUFBWTFRLEdBQUlKLEtBQWNrTjsrQkFDaEM7cUNBRGdDQTtpQ0FDckI7bURBREc5TSxHQUFJSjtnQ0FDUCxPQUFQdU07O21DQUdVO3NDQUhWQTtvQ0FHVTtvQ0FBdUI7cURBSm5Cdk07b0NBSW1CO29DQUFYO3FEQUpaSSxRQUlMOUQ7b0NBQWlCOzs7O1VBRm5CN0Y7VUFBSG1KOzs7bUNBV2dDO1VBRGxCNkYsSUFYZDhHO1VBV1cvRyxJQVhYK0c7VUFXUXhKLElBWFJ3SjtlQVdReEo7O29DQUN3QjtxREFEbEIwQztvQ0FDa0IsS0FEeEIxQztvQ0FDd0I7b0NBQTdCO3FEQURReUM7VUFWUi9PO1VBQUhtSjs7O21DQVltQztVQUFqQnlGLEVBYmxCa0g7VUFhZTNVLEVBYmYyVTtVQWFZL0YsSUFiWitGO2VBYVkvRjtvQ0FBdUIsV0FBakJuQjtvQ0FBaUIsS0FBdkJtQjtvQ0FBYSxZQUFWNU87VUFaWm5CO1VBQUhtSjs7O21DQWF5QjtVQUFuQmhLLEVBZE4yVztVQWNHL1EsRUFkSCtRO2VBY00zVztlQUFINEY7O29DQUFzQjs7eUNBQW5CNUY7b0NBQW1CLEtBQXRCNEY7b0NBQVU7VUFiVi9FO1VBQUhtSjs7O21DQWMwQjtVQUFwQm1OLElBZk5SO1VBZUdsRyxJQWZIa0c7ZUFlTVE7ZUFBSDFHO29DQUF1Qjt5Q0FBcEIwRztvQ0FBb0IsS0FBdkIxRztvQ0FBdUI7b0NBQWI7O1VBZFY1UDtVQUFIbUo7OzttQ0FlMEI7VUFBcEJvTixJQWhCTlQ7VUFnQkdqRyxJQWhCSGlHO2VBZ0JNUztlQUFIMUc7O29DQUF1Qjs7eUNBQXBCMEc7b0NBQW9CLEtBQXZCMUc7b0NBQXVCO29DQUFiOztVQWZWN1A7VUFBSG1KOztvQkFHYWhILEVBSmIyVCxhQUlhM1QsZUFIVm5DLE9BQUhtSjsrQkFpQko7Y0FqQklBO2NBQUduSjtjQUZ5QnlXOztjQUM1Qlg7Y0FENEJXOzs7K0NBbUJrQjs2QkF4ZWhELFNBK1pJNkQsaUJBQWlCM1EsR0FBSUosS0FBY2tOOytCQUN6QyxPQUR5Q0E7eUNBRXhCLE9BRndCQTs7YUFHdkIxUSxFQUh1QjBRLE1BRzFCdFUsRUFIMEJzVTttQ0FHSjt1REFIZDlNLEdBQUlKLEtBR1pwSDtpQkFBRzREOzthQUtLc00sSUFSa0JvRSxNQVFyQm5LLElBUnFCbUs7bUNBU25CO3VEQVRDOU0sR0FBSUosS0FRUCtDO2lCQUFHK0Y7O2FBRUFvSSxJQVZrQmhFLE1BVXJCMUcsSUFWcUIwRzttQ0FXbkI7dURBWEM5TSxHQUFJSixLQVVQd0c7aUJBQUcwSzs7bUNBUWtCO1VBTnRCOUMsR0Fac0JsQjtVQVl6QnpXLEVBWnlCeVc7VUFZNUJ0TixFQVo0QnNOO1VBWS9CaUQsSUFaK0JqRDs7b0NBa0JBO3FEQWxCZGxOO29DQWtCYztvQ0FBekI7cURBTkF2SjtvQ0FNQTtvQ0FEeUI7cURBakJkdUo7b0NBaUJjO29DQUF6QjtxREFMSEo7b0NBS0c7b0NBREg7OztvQ0FESztxREFmU0k7b0NBZVQ7b0NBQVI7O21DQURGO3VEQWRlSSxRQVliK1A7aUJBQUd2UTtpQkFBR25KO2lCQUFHMlg7O2FBUkMrQyxJQUpxQmpFLE1BSXhCa0UsSUFKd0JsRTttQ0FLdEI7dURBTEk5TSxHQUFJSixLQUlWb1I7aUJBQUdEOzthQUVIRSxJQU53Qm5FLE1BTTNCb0UsSUFOMkJwRTttQ0FNTjt1REFOWjlNLEdBQUlKLEtBTWJzUjtpQkFBR0Q7O21DQXNCSjtVQUxRcEIsR0F2Qm9CL0M7VUF1QnhCZ0QsR0F2QndCaEQ7VUF1QjNCcUUsSUF2QjJCckU7O29DQTRCNUI7cURBNUJjbE47b0NBNEJkLFFBTElrUSxHQUFJRDtvQ0FLUjtvQ0FEa0I7OztvQ0FBZDtxREEzQlVqUTtvQ0EyQlY7Ozs7b0NBRFA7O21DQURGO3VEQXpCZUksUUF1QlRtUjtpQkFBR3JCO2lCQUFJRDs7YUFoQkZ1QixJQVBzQnRFLE1BT3pCdUUsSUFQeUJ2RTttQ0FPRjt1REFQaEI5TSxHQUFJSixLQU9YeVI7aUJBQUdEOzttQ0EwQk47VUFETDViLEVBaENpQ3NYO1VBZ0NwQzFSLEVBaENvQzBSO29DQWlDNUI7aURBakNVOU0sR0FBSUosS0FnQ3RCeEU7b0NBQ1E7b0NBS0Y7cURBdENnQndFO29DQXNDaEI7b0NBRCtCO3FEQXJDZkE7b0NBcUNlLEtBSmxDcUc7b0NBSWtDO29DQUF4QjtxREFyQ1NyRztvQ0FxQ0s7O29DQUFqQjs7O29DQURQOztvQ0FERjtpREFuQ2lCSSxRQWdDZnhLO21DQUdGLFVBRkV5USxJQUNBMEc7O21DQVNLO1VBRExDLElBMUNpQ0U7VUEwQ3BDNUcsSUExQ29DNEc7b0NBMkM1QjtpREEzQ1U5TSxHQUFJSixLQTBDdEJzRztvQ0FDUTtvQ0FLRjtxREFoRGdCdEc7b0NBZ0RoQixLQUxIdUc7b0NBS0c7b0NBRHdCO3FEQS9DUnZHO29DQStDc0I7O29DQUFoQztxREEvQ1VBO29DQStDVjtvQ0FBRjs7O29DQURQOztvQ0FERjtpREE3Q2lCSSxRQTBDZjRNO21DQUdGLFdBRkV6RyxJQUNBbUw7O21DQVFnQztVQUFoQ0MsSUFwRGlDekU7VUFvRHBDMEUsSUFwRG9DMUU7b0NBb0REO2lEQXBEakI5TSxHQUFJSixLQW9EbkIyUjttQ0FBUzt1REFwRE12UixHQUFJSixLQW9EdEI0UjtpREFBeUQ7NkJBbmQ1RCxTQTBlQUMsT0FBT2paLEVBQUVvSCxLQUFNa047K0JBQ2pCLE9BRFdsTjsrQkFDWDs7O2lDQUMyQjt1REFGaEJBO2lDQUVnQixLQUZsQnBIO2dDQUVDOztzREFGT3NVOytCQUNqQjtpQ0FDVSxLQUZEdFU7aUNBRUM7aUNBQ3VCO2tEQUh0Qm9IO2lDQUdzQjtpQ0FBWjtrREFIVkE7aUNBR1U7OytCQUFyQjs7O2VBSFNwSCwrQkFJVTs2QkE5ZWpCLGNBZ2Zla1osR0FBR2xhLEVBQUV5TixFQUFFME0sSUFBSW5TLEVBQUVuSixFQUFFbUM7K0JBQ2hDLFNBQUlvWixPQUFPbkQsR0FBR0MsR0FBRzdYO2tDQUNTO3dDQUZKb08sSUFDUnlKO21DQUNELEtBRk9sWCxJQUNUaVg7bUNBQ0g7K0NBRFM1WCxZQURPOGE7a0NBRWhCOztrQ0FBa0IsMEJBSXBCLElBRElFO2tDQUNKLFdBRElBO2tDQUNKLGtDQUNJOytCQU5WLFNBUVF4RSxJQUFJb0IsR0FBR0MsR0FBR3hFLEdBQUdELEdBQUd6UjtZQUFabVcsUUFBR0MsUUFBR0MsUUFBR3pELFFBQUd6STtpQ0FDdEI7cUVBRHNCQTttQ0FDdEI7NkNBQ1k7O3VDQWdDeUM7Y0FIbENtRztjQUFUaUg7O3dDQUcyQzt5REFIbENqSDt3Q0FHa0M7d0NBQUg7Ozt3Q0FBUjt5REFIdkJBO3dDQUd1Qjt3Q0FBSDs7NkNBSDdCaUg7d0NBRzZCLEtBSDdCQTt3Q0FHSjt3REFsQ1VsQjt3Q0FrQ1Y7Ozt3Q0FHK0M7eURBTmxDL0Y7d0NBTWtDO3dDQUFIOzs7d0NBQVI7eURBTnZCQTt3Q0FNdUI7d0NBQUg7OzZDQU43QmlIO3dDQU02QixLQU43QkE7d0NBTUo7d0RBckNhM0U7d0NBcUNiOzt3Q0FFYSxLQXZDTndELE9Bb0NMYzt3Q0FHQSxLQXZDRWYsT0FpQ0ZhO2NBakNFYjtjQUFHQztjQUFHQyxLQWlDSlU7Y0FqQ09uRSxLQW9DUHFFO2NBcENVOU0sSUErQlpvTjs7O3VDQWpCSjtjQUZjbFo7Y0FBSG1hOzs7Ozt3Q0FFWDt3REFkVW5DO3dDQWNWOzs7OzZDQUZXbUM7d0NBRVgsS0FGV0E7d0NBSVg7d0RBaEJhNUY7d0NBZ0JiOzs4QkFERTJHO3lDQUlIOzt1QkE1QmF2YSxJQVNSbVg7eUNBbUJMOzJDQUNFOzttQkE3QlduWCxJQVNSbVg7MkNBb0JIOzRDQUNBO3dEQTlCYTFKLElBU1AySjs2Q0FxQk47eUJBOUJhM0osSUFTUDJKLFFBZUtrRDs7Ozs7OzJDQVFWOztpREF2QkVuRCxLQUFHQyxLQUFHQyxLQUFHekQsS0FZRjRGOzJDQVdUO3lCQS9CTlksT0FRUWpELEtBQUdDLEtBWU8vWDsyQ0FXWjs7Ozs7O3VDQU9XO2NBREtnWjtjQUFKQztjQUFOM0Q7d0NBQ0ssS0E5Qk55QyxPQTZCV2lCO3dDQUNoQixLQTlCRWxCLE9BNkJVbUI7Y0E3QlZuQjtjQUFHQztjQUFTak0sSUE2QlJ3Sjs7O3VDQVlKO2NBRFMwRjtjQUFIalQ7aURBakRNK1MsUUFBSm5hLEVBQUV5Tjt3Q0FrRFY7b0RBRFM0TTt1Q0FDVDt3Q0FDUTt1Q0FEUixJQXpDWWxQLElBd0NOL0Q7Ozt1Q0FwQ0M7Y0FEVHBKO2NBQUg0RjttQkFBRzVGOzttQkFBSDRGOzt3Q0FDWTttRUFKRHlUO3dDQUlDOzt1Q0FDVixHQWRXclgsSUFTUm1YLE9BSUZ3QjttQkFKUXRCLEtBSVJzQixHQUpjeE4sSUFHakJ2SDt1Q0FDWTt3Q0FFSixLQU5IdVQsT0FJRndCO2NBSkV4QjtjQUFNRSxLQUlKcUI7Y0FKVXZOLElBR2RuTjs7O3VDQUtTO2NBRFRtWDtjQUFIMUc7bUJBQUcwRzs7bUJBQUgxRzs7d0NBQ1k7bUVBUkVtRjt3Q0FRRjs7dUNBQ1YsR0FsQmFuRyxJQVNQMkosT0FRTDBCO21CQVJXbEYsS0FRWGtGLEdBUmMzTixJQU9qQnNEO3VDQUNZO3dDQUVELEtBVkgySSxPQVFMMEI7Y0FSSzFCO2NBQU14RCxLQVFQaUY7Y0FSVTFOLElBT2RnSzs7O3VDQUlNO2NBQU5DO2NBQUgxRzt3Q0FBUzs2Q0FYSnlJLEtBQUdDLEtBQUdDLEtBQUd6RCxLQVdYd0I7dUNBQU07MkNBWFFqSyxJQVdqQnVEOzt3QkFYaUJFLHdEQTJDZ0I7K0JBbkR4QztxQkFENEI1RyxFQUFFbkosRUFBRW1DLDRCQXNEakI7NkJBdGlCYixTQXdpQkF3WixhQUFhTixHQUFHbGEsRUFBRXlOOytCQUNwQixrQ0FEZXlNOytCQUNmOzBCQUVXdEo7UUFISXNKOzBCQUdKdEosUUFITzVRLEVBQUV5TjtnQ0FFVixrQ0FHTzs2QkE3aUJmLFNBK2lCQWdOLGNBQWNqUyxHQUFHdVAsR0FBR0UsR0FBR3lDOytCQUN6Qjs7O2lDQUEwQjtrREFEVmxTLFFBQVNrUztpQ0FDQztpQ0FBZjs7OztTQUFQMVMsS0FEZStQLE1BQ1psWixLQURlb1osNkJBS2pCLE9BTG9CeUM7K0JBQ3pCO2lDQUdpRCxRQUozQnpDLEtBQ2ZwWjtpQ0FHMEM7Z0NBQWI7MEJBSmpCa1osS0FDZi9QLGFBRHFCMFMsZ0NBS2Y7NkJBcGpCUixTQXNqQkFDLGVBQWVuUyxHQUFHeU8sR0FBR0MsR0FBR2EsR0FBR0UsR0FBR3lDOytCQUNoQzs7O2lDQUEwQjtrREFEVGxTLFFBQWVrUztpQ0FDTjtpQ0FBZjs7OztpQ0FDOEIsS0FGWnpDLEtBQ3RCcFo7aUNBQ3lDLGVBRnpCcVk7aUNBRXlCLFFBRnpCQTtpQ0FFRCxLQUZJYSxLQUN0Qi9QO2dDQUN5Qjt3QkFGVGlQLDRCQUFZeUQsZ0NBRTZCOzZCQXhqQjNELFNBMGpCQUUsVUFBVXBTLEdBQUdSLEVBQUVuSixFQUFFNmI7K0JBQ25COzs7aUNBQTRCO2tEQURoQmxTLFFBQU9rUztpQ0FDUyxRQURiMVMsRUFBRW5KO2lDQUNXO2lDQUFsQjs7OzZEQUE0Qzs2QkEzakJwRCxTQTZqQkFnYyxlQUFlN1o7eUJBQWN5TSxXQUFIek4sV0FBUjhhOzs7bUNBT1AsbUNBUEk5WjttQ0FPSjsrQkFHQytaO3FDQUNKO2FBRElBLEtBVmMvYSxFQUFHeU47Ozs7bUNBT2xCOzttQ0FPUDtXQWRXek0sRUFBV2hCLEVBQUd5Tjs7O2tDQUl6Qiw4QkFESzBNLElBSFNXO2tDQUlkO1VBSlc5WixFQUFXaEIsRUFBR3lOO2tDQUl6Qjt3Q0FKV3pNO21DQUlYO21DQUNXOzs7O3dDQUxBQTt3Q0FNWCxLQU5XQSxFQUFXaEIsRUFBR3lOLEVBR3BCME0sSUFFRG5TLEVBQUduSjtnQ0FXUjs2QkE3a0JILFNBZ2xCSW1jLFlBQVl4UyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQUFhelI7K0JBTTNDO3NDQU4yQ0E7Z0NBTTNDLEtBQ00yUjtnQ0FETjtpQ0FFUzsyREFUYXNJO2dDQVNiO2tDQUNHO2NBRk50STs7bUNBRU07NkRBVndCdUk7a0NBVXhCO29DQUNBO2dCQUhOdkk7O3FDQUdNO1lBWHNDd0ksaUNBV3RDOzs7aUJBSE54STs7aUJBUEh5SSxpQ0FXUzs7Ozs7Ozt3Q0FDUCxPQVpzQ3BhO1lBRE9tYSxnQkFDL0NDLGdCQUFjMUksS0FES3VJLFdBQ1F4SSxLQURNeUk7aUNBcUJsQyxrQ0FwQnlDbGE7aUNBb0J6Qzs7ZUFFUzBaLG1CQXRCZ0MxWjtxQ0F3QjlCOzt1Q0FBNkI7O3dCQUNmcU07MkNBQUs7MEJBQUxBLHFDQUFtQzt3Q0FEcEI7O3VDQUM5Qjs7dUNBRDhCO3dDQUM5Qjs7Y0FGQWdPLGtDQUdBLHFCQUpEWDs7Z0JBQ0NXLFFBRERYO3FDQVVPOztxREFqQ0FsUyxHQUNEa0ssR0FBYUQsR0F1QmxCNEk7c0NBU007O3NDQURIOzREQS9CZTVJO3NDQStCZjs7WUFYVDZJOzBDQVVTLHFCQTlCRTVJOzs7ZUFrQ1FZLGdCQUFOcUI7cUNBQ1g7YUFEaUJyQixRQWxDUlosR0FBYUQ7O1lBb0J4QjZJO3VDQWdCRTtlQXJDVTlTLEdBQUl5UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBQWFELEdBa0NYa0M7OztxQ0E2RXNDO1lBSGxDckQ7WUFBVG5HOztzQ0FHMkM7dURBSGxDbUc7c0NBR2tDO3NDQUFIOzs7c0NBQVI7dURBSHZCQTtzQ0FHdUI7c0NBQUg7OzJDQUg3Qm5HO3NDQUc2QixLQUg3QkE7c0NBR0o7c0RBL0dPdUg7c0NBK0dQOzs7c0NBRytDO3VEQU5sQ3BCO3NDQU1rQztzQ0FBSDs7O3NDQUFSO3VEQU52QkE7c0NBTXVCO3NDQUFIOzsyQ0FON0JuRztzQ0FNNkIsS0FON0JBO3NDQU1KO3NEQWxIb0JzSDtzQ0FrSHBCOztzQ0FJRSxLQXRIVDJJLE1BaUhTbEQ7c0NBSXFDLEtBdEhDaUQsTUErR3RDbkQ7c0NBT3lCLEtBdEhEa0QsTUFrSHhCaEQ7c0NBSWEsS0F0SEgrQyxNQStHVmpEO3NDQU9GOztlQXRIUXhQLHVCQStHRnVQLEdBR0FFLEdBTEY5TTtzQ0FTSixLQURFaEU7c0NBSVE7c0RBekhGcUIsR0ErR053UCxHQUdBRSxHQWpIS3hGLEdBQWFEO3NDQXdIVixLQUpSdEw7c0NBSVE7c0NBQ0g7NERBWEw2UTtzQ0FXSyxLQUxMN1E7c0NBS0s7c0NBQ0E7NERBVEwrUTtZQTdGTm9ELFdBcUdNRSxHQUNBQyxHQUZBRjs7O3FDQTVFdUI7WUFIVGxEO1lBQUpDO1lBQUoxSjtzQ0FHaUIsS0FIVHlKLEtBekNJNUY7c0NBNENOLEtBSEY2RixLQXpDTDVGO3NDQTRDTCxLQTVDVDBJLE1BeUN1Qi9DO3NDQUV1QixLQTVDQzhDLE1BMEM1QjdDO3NDQUVlLEtBNUNENEMsTUEwQ1Y3QztzQ0FFRCxLQTVDSDRDLE1BMENBM0M7c0NBRVo7O2VBNUNROVAsaUNBMENBb0c7c0NBRVI7c0NBR087dURBL0NLcU0sSUFBNEJFO3NDQStDakM7c0NBQ0E7dURBaERtQkQsSUFDakNFO3NDQStDYyxLQUxMTTtzQ0FLSzs4Q0FOU3JEO3NDQU1UOzhDQU5LQztzQ0FNTDtzQ0FHTDs7O3NDQURGO3FEQWxEUTlQLEdBQ0RrSyxHQUFhRDtZQW9CeEI2SSxXQTBCTUssS0FDQUMsS0FDQUM7OztxQ0E2RUo7O1lBekdGUDt1Q0F5R0U7ZUE5SFU5UyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQTRIVjhGOzs7cUNBdEVDO1lBRFR2YTtZQUFINEY7aUJBQUc1Rjs7aUJBQUg0Rjs7c0NBQ1k7aUVBdERKOE87c0NBc0RJOztzQ0FDSjttREF4RENsSyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBc0RTekMsR0F0RGtCbEcsR0FxRHJCN087c0NBSWdDLEtBMURTdVgsTUF1RHRDeEM7c0NBR2EsS0ExREhzQyxNQXVEVnRDO3NDQUdGOztlQTFEUW5RLFFBQWtCMFMsU0FDakNFLElBc0RhMUMsR0F0RGNqRyxHQXFEbEJ6VTtzQ0FJRixLQURFK2Q7c0NBQ0Y7c0NBT007O3NDQUFrQixZQVZ0QnBEO3NDQVVzQixLQVR0Qm1EO3NDQVNzQjtzQ0FEakI7OztzQ0FBTDs7MkNBUEFDO3NDQU9BO3NDQURJOztzQ0FBa0IsWUFSdEJwRDtzQ0FRc0IsS0FQdEJtRDtzQ0FPc0I7c0NBRGpCOzs7c0NBQUw7OztzQ0FERjs7MkNBSkVDO3NDQUlGO3NDQVE0Qjs7MkNBYjFCRDtzQ0FhMEI7c0NBQXJCOzs7c0NBQUw7OzJDQVpBQztzQ0FZQTtzQ0FEMEI7OzJDQVoxQkQ7c0NBWTBCO3NDQUFyQjs7O3NDQUFMOzs7c0NBREY7OzJDQVZFQztzQ0FVRixLQVhFRDtzQ0FXRjtzQ0FJMEI7O3NDQUExQjtxREF2RVF0VCxHQUNEa0ssR0FBYUQ7WUFvQnhCNkksV0F1Q01VLEtBTUFDLEtBSUFDOzs7cUNBS1M7WUFEVC9HO1lBQUgxRztpQkFBRzBHOztpQkFBSDFHOztzQ0FDWTtpRUExRVNnRTtzQ0EwRVQ7O3NDQUNKOztlQTVFQ2pLLEdBQUl5UyxJQUFjQyxJQUFjQyxJQUMvQ0MsSUFBYzFJLEdBMEVMb0csR0FESHJLO3NDQUlvQyxLQTdFMUMyTSxNQTBFU3RDO3NDQUdpQixLQTlFT29DLE1BMkV4QnBDO3NDQUdGOztlQTlFUXRRLEdBQUl5UyxTQUE0QkUsU0FDakN6SSxHQTBFRG1HLEdBREoxRDtzQ0FJRixLQURFaUg7c0NBQ0Y7c0NBSzRCOzsyQ0FQMUJEO3NDQU8wQjtzQ0FBckI7OztzQ0FBTDs7MkNBTkFDO3NDQU1BO3NDQUQwQjs7MkNBTjFCRDtzQ0FNMEI7c0NBQXJCOzs7c0NBQUw7OztzQ0FERjs7MkNBSkVDO3NDQUlGO3NDQVFNOztzQ0FBa0IsWUFkdEJ0RDtzQ0Fjc0IsS0FidEJxRDtzQ0Fhc0I7c0NBRGpCOzs7c0NBQUw7OzJDQVhBQztzQ0FXQTtzQ0FESTs7c0NBQWtCLFlBWnRCdEQ7c0NBWXNCLEtBWHRCcUQ7c0NBV3NCO3NDQURqQjs7O3NDQUFMOzs7c0NBREY7OzJDQVJFQztzQ0FRRixLQVRFRDtzQ0FTRjtzQ0FNdUI7O3NDQUF2QjtxREEzRlEzVCxHQUNEa0ssR0FBYUQ7WUFvQnhCNkksV0EyRE1lLEtBSUFDLEtBTUFDOzs7cUNBS0s7WUFETG5IO1lBQUgxRztzQ0FDUTs7ZUEvRkNsRyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQTZGckIvRDtzQ0FFUTs7ZUFoR0NsRyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQTZGbEIyQztzQ0FFSyxLQUFMcUg7c0NBQUs7c0NBSXFCOzsyQ0FMMUJEO3NDQUswQjtzQ0FBckI7OztzQ0FBTDs7MkNBSkFDO3NDQUlBO3NDQUQwQjs7MkNBSjFCRDtzQ0FJMEI7c0NBQXJCOzs7c0NBQUw7OztzQ0FERjs7MkNBRkVDO3NDQUVGO3NDQU00Qjs7MkNBVDFCRDtzQ0FTMEI7c0NBQXJCOzs7c0NBQUw7OzJDQVJBQztzQ0FRQTtzQ0FEMEI7OzJDQVIxQkQ7c0NBUTBCO3NDQUFyQjs7O3NDQUFMOzs7c0NBREY7OzJDQVBFQTtzQ0FPRixLQU5FQztzQ0FNRjtzQ0FJdUI7O3NDQUF2QjtxREExR1FqVSxHQUNEa0ssR0FBYUQ7WUFvQnhCNkksV0E0RU1vQixLQUlBQyxLQUlBQzs7Ozs7WUFuRVloSTtZQWpCbEIwRzt1Q0FrQkU7ZUF2Q1U5UyxHQUFJeVMsSUFBY0MsSUFBY0MsSUFDL0NDLElBQWMxSSxHQUFhRCxHQXFDTm1DOzs7O1lBRU5DO1lBbkJaeUc7dUNBb0JFO2VBekNVOVMsR0FBSXlTLElBQWNDLElBQWNDLElBQy9DQyxJQUFjMUksR0FBYUQsR0F1Q1pvQztpQ0F3RmhCLE9BM0dJeUc7aUNBMkdKLE9BM0dJQTsrQkFkTjtnQ0FRRTtpQ0FHVTtrREFqQks1SSxHQUFhRDtpQ0FpQmxCO2lDQURIO2tEQWpCMkJ5SSxJQUNqQ0U7aUNBZ0JNO2dDQURBO3dEQWhCYUgsSUFBNEJFOzs2Q0FpSTNDOzZCQWp0QkwsU0FtdEJBVCxNQUFNbFM7Z0NBQ0c7T0FERUo7T0FBTXlVOztpQ0FDUjtrREFERXpVO2lDQUNGOzs4Q0FDSWlGO2tDQUFLO2lCQUFMQSxrQkFGSXdQLCtCQUV1QztnQ0FEL0M7OzsrQkFDWDs7Z0NBRFc7Z0NBQ1g7OytCQUNBO2dCQUhRclUsYUFDSlIsRUFBR25KLEVBQUhtSixFQUFHbkosRUFEWWdlOzs2QkFudEJqQixTQXd0QkFDLGlCQUFpQjVDLEdBQUc2QzsrQkFDdEIsU0FBUUMsS0FBTTlDO21CRGxrRXJCLElDa2tFcUIrQztpQ0FDWjtzQ0FEWUE7Z0JBR0pDLEdBSElELFFBR1YzSCxHQUhVMkgsYUFHVjNIOzt5QkFIVTJILEtBR0pDOzt5Q0FXTTtnQkFETzdkO2dCQUFIOEw7OzBDQUNKOzs7MENBQ1E7eUNBRFIsMEJBR0k7O3NEQUpHOUwsRUFkRDBkO3lDQWtCRjswQ0FDUTt5Q0FKWixJQWRGRSxLQUdKQzs7O3lDQXlCTTtnQkFEUzdDO2dCQUFIekw7Z0NBNUJBbU87MENBNkJOO3NEQURTMUM7eUNBQ1Q7MENBRVE7eUNBRlI7MENBQ1UsUUFGSnpMLElBeEJac087Z0JBSElEOzs7Ozt5Q0FTQztnQkFIRGpmO2dCQUFINEY7cUJBQUc1Rjs7MENBR0M7O3NCQUhEQSxFQUhKa2Y7c0JBR0N0WixLQUFHNUYsRUFISmtmO2dCQUhJRDs7MEJBb0JTamMsVUFwQlRxYyxRQW9CU3JjLEVBakJia2MsSUFISUQ7b0NBRUosNENBNEJ3QjsrQkE5QmxDO2tCQURtQi9DLG1DQWlDSDs2QkF6dkJkOzs7OztzQ0E2dkJBb0QsV0FBV2hJOytCQUNiLFNBQVFPLElBQUlQO2lDQUNWLGtDQURVQTtpQ0FDVjttQ0FDaUI7O21DQURqQjtzQ0FHSTs7OzttQkFEZTFRO3NDQUNmO29DQUVrQjswQkFOaEJpUixJQUFJUCw4QkFNdUI7K0JBTm5DLGNBUWVqSTtrQ0FBSztpQkFBTEEscUNBQW1COytCQVJsQzs7OytCQVFBOzs7aUNBRUUsNkJBWFdpSTtpQ0FXWDs7Ozs7bUNBR0E7O3FCQUFjakk7d0NBQUs7dUJBQUxBLHFDQUEwQztvQ0FBeEQ7Ozs7O2lDQWpEQSxxQ0FrREk7NkJBNXdCSixTQTh3QklrUSxlQUFldmMsRUFBRW9RO2lCRHZuRTlCLElDdW5FNEJqRzsrQkFDckI7bUVBRHFCQTtpQ0FDckI7MkNBQ1k7O3FDQVVSOzsyQ0FEVW9OO3NDQUNWO3FDQUFHOzt1Q0FBOEI7O3dCQUNoQmxMOzJDQUNYOzBCQURXQSxxQ0FHSDt3Q0FKbUI7O3VDQUMvQjs7dUNBRCtCLDBCQU0vQjs7d0RBUFFrTCxJQVhTbkg7dUNBa0JqQixpQkFuQ0prTSxXQWlCbUJuUztxQ0FZakI7c0NBT0ssS0FuQllBO3NDQW1CWjtxQ0FBRzs7OzhDQUNILFdBcEJZQTs7ZUFxQmJuTixVQUFINEY7cUNBQ0U7O3VDQUNEOzt3REFGREEsRUFyQmtCd047dUNBdUJqQjt3Q0FLRzs4QkE1QmNBO3dDQTJCVjt1Q0FKUCxJQXZCZWpHLElBcUJibk47O3FDQU9DOzJDQVBEQTtzQ0FPQztxQ0FBRzs7dUNBQ047O3dEQVJFQSxFQXJCZW9UO3VDQTZCakI7d0NBTUE7OEJBbkNpQkE7d0NBaUNWO3VDQUpQLElBN0JlakcsSUFxQmhCdkg7O3FDQU9JO3FDQU9ILGdCQW5DaUJ3Tjs7OztvQ0Fpb0J6Qjt1Q0ExbEJZOzt3REFsQkx4TixFQXJCa0J3Tjt1Q0F1Q2I7MkNBdkNXakcsSUFxQmJuTjs7cUNBT0MsMEJBU0M7O3NEQWhCRkEsRUFyQmVvVDtxQ0FxQ2I7c0NBRUE7cUNBWEQsSUE1QllqRyxJQXFCaEJ2SDs7O2VBbUJHdVIsWUFBSDFHO3FDQUNFOzt1Q0FDRDs7d0RBRkRBLElBeENrQjJDO3VDQTBDakI7d0NBS0c7OEJBL0NjQTt3Q0E4Q1Y7dUNBSlAsSUExQ2VqRyxJQXdDYmdLOztxQ0FPQzsyQ0FQREE7c0NBT0M7cUNBQUc7O3VDQUNOOzt3REFSRUEsSUF4Q2UvRDt1Q0FnRGpCO3dDQU1BOzBCQXREaUJBO3dDQW9EVjt1Q0FKUCxJQWhEZWpHLElBd0NoQnNEOzt3QkF4Q2tCMkM7dUNBMERiOzt3REFsQkwzQyxJQXhDa0IyQzt1Q0EwRGI7d0NBRkE7dUNBRUEsSUExRFdqRyxJQXdDYmdLOztxQ0FPQywwQkFTQzs7c0RBaEJGQSxJQXhDZS9EO3FDQXdEYjtxQ0FURCxJQS9DWWpHLElBd0NoQnNEOzs7ZUFtQkcyRyxZQUFIMUc7cUNBQ0U7O2lCQTVEY3ZELElBMkRoQnVEO3FDQUVJOztzREFGRDBHLElBM0RlaEU7cUNBNkRkO3NDQWlCRDtxQ0FqQkMsSUE3RFlqRyxJQTJEaEJ1RDs7c0JBM0RnQkUsd0RBNkRnQzs2QkEzMEJuRCxTQTYwQkk0TyxhQUFhdEQsR0FBRzZDO2lCRHRyRTdCLElDc3JFNkJVOytCQUN0QjtrQ0FBTzs7cURBRFl2RCxHQUFHdUQ7a0NBQ2Y7bUNBQ1U7a0NBRFYsU0FEZUE7OztzQ0FVbEI7NENBVmtCQTt1Q0FVbEI7O3VDQUFhOzZEQURJQzs7O3VDQUVqQixzQkFESXRNLEtBRGFzTTthQVRDRDs7Ozs7c0NBYWxCOzs0Q0FiZXZEO3VDQWFQOzREQURVMEQ7dUNBQ1Y7dUJBQ2lDdlE7MENBQ3JDO3lCQURxQ0EsaUJBZHZCb1EsTUFhZG5jLDRCQUVxRDt1Q0FGakQ7NENBQUpBO3NDQUNKOzs2Q0FESUE7cUNBYmNtYztzQ0FJbEI7OzZEQUFJSTthQUpjSjs7a0NBaUJILDRDQUFVOzZCQTkxQjNCLFNBZzJCQU0sZUFBZS9jO2lCRHpzRXhCOztrQ0Mwc0VxQiw4QkFBUCtiO2tDQUFPO2lCQURHL2IsRUFDVitiOztrQ0FDVztTQUFUaUI7O2tDQUFTO2lCQUZEaGQsRUFFUmdkO2dDQUNLOzZCQW4yQlo7OztPQXNTQXRJO09BR0FDO09BRUFDO09BVUFFO09BbUJBTztPQWdCQVE7T0FHQUU7T0FHSUM7T0E0REppQztPQUtJRTtPQXNESkQ7T0FxQkFlO09BOERBTztPQU9BQztPQU9BRTtPQUlBQztPQUdBQztPQW1CSUc7T0FtSUpOO09BS0FvQzs7T0FxQ0FRO09BaUJJQztPQStEQUM7T0FtQkpPOzhCQWgyQkE7U0FsTEY3TixLQUNBQzs2QkFpTEUsU0EyMkJGOE4sV0FBV0MsS0FBTTdlLEVBQUU4ZTsrQkFDckI7a0NBQThCLGtDQUFJOytCQUFsQzs7aUNBQVc7dURBREVEO2lDQUNGOztpQ0FDUTs7Ozt5Q0FDWHJJO2lDQUNOLGNBQ08wSTttQ0FDUCxHQURPQTtzQ0FNSDt5Q0FOR0E7dUNBTVE7c0RBWEVsZixFQVVWVztzQ0FDSDtjQVRNcWU7c0NBU047O3VDQUNTO3dEQVpNRjtzQ0FZTjtpQ0FUUHRJO29DQUtGOztZQU5Nd0k7b0NBTU4sd0NBSW9DO2lDQVJ4Qzs7O21DQUE2QjthQUgzQkQsb0NBRzJCLGdCQUpWRDttQ0FJVTttQ0FBcEI7OztpQ0FBVDsrRkFRd0M7Z0NBVnZCOytCQVluQix5Q0FYUXRJOytCQVdSLE9BWkl5SSxnQ0FhRTs2QkExM0JGLFNBNDNCRkUsT0FBT2hXLEdBQUkwVixLQUFNOVYsS0FBS3FXLE9BQU9DOytCQUMvQjs7O2lDQUFlO2tEQURObFc7aUNBQ007O2lDQUNvQjs7Ozs7OztxQ0FJN0I7O3NDQUFPOzs7dURBSlRxVztxQ0FJUzs4Q0FDTCxXQUxZRDtrREFLVTtpQ0FMSztnQ0FFakM7c0RBSjZCRjsrQkFJN0IsR0FKV1I7V0FZSkUsT0FaSUYsZUFVSFksYUFBTkMsT0FFS1g7O2lDQUVIOzs7a0NBQVc7Ozs7K0NBQUozSTtRQUpIcUo7UUFBTkMsT0FJTS9kOytCQUdWLGNBQ2lDNkM7a0NBQzFCLE9BRDBCQSwyQkFDekI7K0JBRE47OzRDQVJFa2IsWUFWb0JOO2dDQWtCdEIsVUFsQmlCclc7Z0NBa0JqQjs7aUNBTWlCOzs7O3lDQUNmOFc7aUNBRUY7O21DQUFTO29EQXhCUDdiO21DQXdCTyxLQUpQNkc7bUNBSU87aUNBQ1Q7ZUEzQkV5VSxjQTBCRXJKO2lDQUFKLHlCQUNBOzs7a0NBQ1c7aUJBTEQrSTs4Q0FLQyxnQkE3Qko3VixHQUNMbVcscUNBNEJzQztnQ0FMdkI7K0JBT25CO3dDQUNJUSxjQUFjdGI7aUNBQ2hCLGtDQURnQkE7aUNBQ2hCO21CQURnQkE7Ozs7d0NBR007ZUFEUHNEOzs7eUNBQ087Ozt3Q0FBUjswREFEQ0E7MENBQ3lCLEdBekJoQzJYOzRDQTJCUTttQkFBTHJKO29CQTNCSHFKOzRDQTJCUTttQ0FBTHJKOzBDQUNHOzs7MENBQU87dUJBckNuQmtKLFNBK0JjOWE7MENBTUs7OztxQ0FXakIsOEJBRE11RSxLQWhCTXZFO3FDQWlCWixZQURNdUU7cUNBQ047O2lDQWhCSjttQ0FNd0I7bUNBQ2Q7b0RBdkNSdVcsU0ErQmM5YTtrQ0FRTix1REFVSTsrQkFuQmhCO2lDQXNCSTtvQ0FHSTs7WUFoQ0l3YTtvQ0FnQ0osd0NBQ2U7aUNBSm5CO29DQUNhO2tDQXRCYmMsY0FmQUYsbUNBcUNpRDtpQ0FEakQ7NERBSW9COytCQTFCeEI7K0JBcUJBOztrQ0FNcUI7Z0NBakNqQkMsUUF2QkFMLHlDQXdEdUQ7K0JBTjNEOytCQU1BO3NDQWxDSU4sZ0NBbUNFOzZCQXY3QkY7O1NBMjJCRk4sV0FpQkFPOzZCQTUzQkUsU0FzOEJGWSxTQUFTaGdCLElBQWdCMEQ7Z0NBQU0sR0FBdEIxRDtpQ0FBTztzQ0FBUEE7YUFBT0c7O1dBQVBnTTtnQ0FBc0I7eUNBQXRCQTtpQ0FBc0I7aUNBQVE7dURBQWR6STtnQ0FBYzs0REFBb0I7NkJBdDhCekQsU0F1OEJGdWMsTUFBSzlULEtBQUt2TDtnQ0FBSTtnQ0FBYTtlQUF0QnVMLCtCQUFzQixnQkFBakJ2TCw2QkFBa0M7NkJBdjhCMUMsU0F3OEJGc2YsS0FBTS9ULEtBQUt2TDtnQ0FBSTtnQ0FBYTtlQUF0QnVMLCtCQUFzQixnQkFBakJ2TCw2QkFBbUM7NkJBeDhCNUMsU0F5OEJGdWYsUUFBUWhVLEtBQUt2TDtnQ0FBSTtnQ0FBYTtlQUF0QnVMLCtCQUFzQixnQkFBakJ2TCw2QkFBb0M7NkJBejhCL0MsU0EwOEJGd2YsT0FBUWpVLEtBQUszTTtnQ0FBc0I7bUJEbnpFMUMsT0MreUVPd2dCLFNBSVE3VDtnQ0FBMkI7c0NBQXRCM00sOEJBQXdDOzZCQTE4Qm5ELFNBMjhCRkEsSUFBSzJNLEtBQUszTTtnQ0FBdUI7bUJEcHpFeEMsT0MreUVPd2dCLFNBS0s3VDtnQ0FBNEI7dUNBQXZCM00sOEJBQXlDOzZCQTM4QmpELFNBNjhCRjZnQixRQUFRbGhCLEVBQUdnTixLQUFLM007K0JBQ2xCLGNBQXFCa0U7a0NBQVM7aUJBRHBCdkUsNEJBQ29CLFNBRGpCZ04sS0FDUXpJLCtCQUEyQjsrQkFBaEQ7c0NBRGtCbEUsOEJBQ21DOzZCQTk4QmpELFNBZzlCRjhnQixLQUFLbmhCLEVBQUdnTixLQUFLM007K0JBQ2YsY0FBc0JrRTtrQ0FBUztpQkFEeEJ2RSw0QkFDd0IsU0FEckJnTixLQUNZekksK0JBQTJCOytCQUFqRDt1Q0FEZWxFLDhCQUN1Qzs2QkFqOUJsRCxTQXc5QkYrZ0IsZUFBZUM7K0JBQ2pCOzs7aUNBQWU7Ozs7aUNBR087OztnQ0FBbEI7c0RBSEFDO2dDQUdBO2dDQURGOzs2Q0FJa0NELEtBQUtHO2tDQUNuQzs7Ozs7bUNBQ2dCO29EQUZjSDttQ0FFZDttQ0FBZDs7cUNBRmlDRztrQ0FFakM7K0JBRjRCSCxvQ0FFa0I7K0JBTnBEOztnQ0FJQTtpREFQZUEsS0FFYkU7K0JBS0YsVUFORUQsU0FLQWhELCtCQUtjOzZCQW4rQmQsU0FxK0JGbUQsb0JBQW9CQztnQ0FBSyxPQUFMQSwrQkFBWTs2QkFyK0I5QixTQXMrQkZDLHdCQUF3QkQ7Z0NBQUssT0FBTEEsK0JBQWdCOzZCQXQrQnRDLFNBdytCRkUsYUFBYUYsR0FBRzNPLEVBQUlsUyxTQUFvQk8sS0FBS3lnQjsrQkFDL0MsR0FEc0JoaEI7aUNBQUs7c0NBQUxBO1dBQUtHOztXQUFMeVk7K0JBQ3RCO2lDQURzQzs7UUFBTEUsR0FBS2pNOztXQUFMaU07K0JBQ2pDLFNBQUlQLE9BQVEzWCxFQUFHeU4sRUFBR3pGLEVBQUduSjtrQ0FDUTs7NERBRmRvaEI7bUNBRWM7O21DQUFqQjs7O21DQUVGO29EQUpRM087a0NBSVI7bUNBQ1M7O29DQUFTLEtBSmhCdFIsSUFEVWdZO29DQUtNO1VBRnRCc0ksZ0NBRWE7OztvQ0FDRDs7cUNBQXFCLEtBTHJCdFk7cUNBS1UsS0FMaEJoSSxJQURVZ1k7cUNBTWE7O1dBSDdCc0ksZ0NBR1k7O29DQUNDOztxQ0FBVSxLQU5qQnRnQixJQURVZ1k7cUNBT2MsWUFObEJoUTtxQ0FNa0I7V0FKOUJzWSxnQ0FJYTtrQ0FMVTttQ0FHVzttQ0FLOUI7b0RBVlFoUDtrQ0FVUjttQ0FDcUI7eUNBVmhCN0QsSUFEa0J5SztvQ0FXRjs7VUFGekJxSSxnQ0FFYTs7O29DQUN1QjswQ0FYckIxaEI7cUNBV1UsS0FYaEI0TyxJQURrQnlLO3FDQVlLOzs7V0FIaENxSSxnQ0FHWTs7b0NBQ2M7MENBWmpCOVMsSUFEa0J5SztxQ0FhTSxZQVpsQnJaO3FDQVlrQjs7V0FKakMwaEIsZ0NBSWE7a0NBRnFCLGNBS2Y1Z0I7b0NBQ2pCOzs7O3FDQUNZOzs7cUNBQ0k7c0RBSENBLEtBRVg0TTtxQ0FDVTtxQ0FBZDtzREFESUE7cUNBQ0o7Ozs7cUNBSVc7Ozs7O3FDQURFO3NEQUxYcE07cUNBS1c7cUNBQWI7Ozs7Ozs7Ozs7cUNBV0U7Ozs7c0NBTEE7d0NBRU07Ozs7cUJBNUJaa2dCO3dDQTRCWTtzQ0FFRywwQ0FBUztvQ0FDbEI7O3FDQU5GOzs7cUNBU0M7c0RBZkNsWCxHQUpBaEo7cUNBbUJEO3FDQURzQztzREFoQzNDbWdCO3FDQWdDMEQ7OztxQ0FBbEM7c0RBMUJ4QkM7cUNBMEJ1Qzs7O29DQUFyQzs2REFUSUMseUNBVWdCO2tDQXpCWTs7a0NBS3BDO21EQWhCc0M3Z0I7aUNBZ0J0QzsrQkFkRTBnQixJQWFBeEQsK0JBdUJrQjsrQkFyQ3hCOzZCQUFJbEYsT0FEMkN5SSxpQ0F3Q2Q7NkJBaGhDN0IsNkJBK2pDRks7NkJBL2pDRSxTQWlrQ0ZDLFlBQWN0aEIsSUFBbUI0QjsrQkFDbkMsR0FEZ0I1QjtpQ0FBUztzQ0FBVEE7ZUFBU0c7O1dBQVRvaEI7K0JBQ2hCOztpQ0FBYTtrREFER0E7Z0NBQ0gsU0FDVEUsT0FBT0MsSUFBSUM7aUNBQ2I7O21DQUFlO29EQUZiSDttQ0FFYTs7bUNBQ0UsS0FEYkssTUFES0g7bUNBRVE7O21DQUFQOzttQ0FDTyxLQUZSRSxNQURJRDttQ0FHSTs7bUNBQVA7OzJDQURORyxNQUNBQzttQ0FBTTtpQ0FDVjtlQUxFUDtpQ0FLRiwwQ0FDUTtnQ0FORyxTQVFUUTtrQ0FBZ0I7Ozs7Ozs7eUNBS3lCOzs7O3dDQUNaOzs7Ozs7Ozs0Q0FGVDs4QkFmdEJYOzs7NENBWXNCOzs7NENBQU87Ozs7OzJDQUNOOzBCQWJ2QkE7OzswQ0FjOEI7O2tDQUl2QiwyQ0FBVTtnQ0FmTixjQXNCdUJ6ZjtrQ0FBTDs7OzttQ0FDdEI7b0RBRDhCaWdCLElBQUtEO21DQUNkO29EQURNaGdCO21DQUNOOztrQ0FFdkI7Z0VBakJIb2dCO2dEQWlCa0M7Z0NBekJ6Qjs7aUNBc0JGO2tEQXRCUFI7Z0NBc0JPO3NCQXZCd0I1ZixzQ0EwQkc7NkJBM2xDbEMsU0E2bENGcWdCLGVBQWVwQixHQUFHOVEsS0FBSzlQOytCQUN6Qjs7aUNBQTJDO2tEQUR2QjhQO2lDQUN1QjtpQ0FBUDs7O2lDQUF6Qjs7OztpQ0FDRzs7O3lDQUVWb1M7bUJEMThFVDtvQ0M0OEVXOzs7O29DQUNBO2lCQUxGckM7b0NBS0U7a0NBRUc7Z0NBUEs7aUNBVVY7O21DQUFTO29EQVJUcUMsU0FIQXZVO2tDQVdTLEdBVFRzVTtvQ0FVaUI7OztxQ0FJYjtpREFqQmlCamlCO3FDQWlCakI7Ozs7O29DQURBO21CQWhCUzRnQjs2Q0FnQlQ7Ozs7bUJBSkEzSztrQ0FNQyxPQU5EQSw0QkFNRztnQ0FoQkc7O2lDQVNOO2tEQVRKNEo7Z0NBU0k7MERBT0k7NkJBL21DUixTQWluQ0ZzQyxjQUFjdkIsR0FBRzlRLEtBQUs5UDsrQkFDeEI7O2lDQUFXO2dEQURROFA7aUNBQ1I7O2lDQUNHOzs7eUNBRVZvUzttQkQ5OUVUO29DQ2crRVc7Ozs7b0NBQ0E7aUJBTEZyQztvQ0FLRTtrQ0FFRztnQ0FQSztpQ0FVVjs7bUNBQVM7b0RBUlRxQyxTQUhBdlU7a0NBV1MsR0FUVHNVO29DQVVpQjs7O3FDQUliO2lEQWpCZ0JqaUI7cUNBaUJoQjs7Ozs7b0NBREE7bUJBaEJRNGdCOzZDQWdCUjs7OzttQkFKQTNLO2tDQU1DLE9BTkRBLDRCQU1HO2dDQWhCRzs7aUNBU047a0RBVEo0SjtnQ0FTSTswREFPSTs2QkFub0NSLFNBcW9DRnVDLFVBQVV0UyxLQUFLOVA7K0JBQ2pCOztpQ0FBVztnREFEQzhQO2dDQUNELFNBQ1BvUzttQkRoL0VUO29DQ2svRVc7O1lBSldsaUI7b0NBSVg7a0NBRUc7Z0NBTEU7NkJBQ1BraUIsU0FEQXZVLGlDQU91Qjs2QkE3b0N2QixTQW1wQ0YwVSxPQUFPMVcsS0FBS0Q7K0JBQ2Q7O2lDQUFnQjs7eUNBQ1p5VCxPQUFPb0Q7a0NBRUQ7U0FGV3RnQjtTQUFIMEs7U0FDSDZWLElBREpEO1NBQ1NwaUIsSUFEVG9pQjs7OztpQkFDSUM7O21DQUNMOztvREFGUTdWO21DQUVSOzs7bUNBQ2lDLFFBRnZCeE0sTUFBTHFpQjttQ0FFNEI7bUNBQWpDOztvREFIV3ZnQjttQ0FHWDs7OzttQ0FHSzs7Ozs7a0NBRFg7Ozs7b0NBTUU7c0NBRU07OzswQ0FVcUIsa0NBQUU7c0NBVnZCOzs7OEJBQ1V0QjtpREFDSjs7a0RBQU07bUVBaEJwQjJoQjtpREFnQm9COzZCQUNTbmlCLGFBQUxxaUI7bURBakJ4QkYsYUFpQndCRSxJQUFLcmlCLElBRlhRO2lEQUNKO3dCQUl1QmlpQjt3QkFBTEM7d0JBQUxDOzZCQUFVRixNQUxuQmppQjs7MERBT0U7MENBdEJwQjJoQixhQW9CMkJRLE1BQUtELE1BTGRsaUI7OERBUW1DOztvQ0FFMUMsMkNBQVc7aUNBbkJ0Qjs7a0NBS0E7d0RBTkVnaUI7a0NBTUY7bUNBaUJtQjtvREFsQmpCSSxXQU5BTDttQ0F3QmlCO21DQUFaO29EQXpCTEQ7bUNBeUJLOzs7O21DQUNBOztvREFETHhNO2tDQUNLLFNBNUJBc007YUE2Qkw1SSxLQURBMUI7OztVQUlXMkssR0FoQ05MOztvQkFrQ0s1aEIsUUFBUWdJO3VDQUNxQjs4QkFwQ3pDMlosYUFpQ2FNLEtBRURqaUIsRUFBUWdJLDZCQUN3Qzs7VUFOMURnUiwrQkFJRSxxQkFMRjFCO2lDQVVKLE9BVEkwQjtnQ0E5QlU7O2lDQXlDdUI7a0RBMUM5QmhPLEtBQUtEO2lDQTBDeUI7aUNBQXBCO2tEQXpDZjRXO2dDQXlDZTtnQ0F4Q2ZuRCxpQ0F3Q3dEOzZCQTdyQ3hELFNBK3JDRjZELE9BQU9uWCxJQUFJb1g7K0JBQ2I7O2lDQUFnQjs7eUNBQ1o5RCxPQUFPb0Q7a0NBRUM7U0FGV1U7U0FBTHBYO1NBQ0gyVyxJQURKRDtTQUNTcGlCLElBRFRvaUI7Ozs7aUJBQ0lDOzttQ0FDSDs7b0RBRk0zVzttQ0FFTjs7O21DQUNpQyxRQUZ6QjFMLE1BQUxxaUI7bUNBRThCO21DQUFqQzs7b0RBSFdTO21DQUdYOzs7O21DQUdHOzs7OztrQ0FEWDs7OztvQ0FNRTtzQ0FFTTs7OzBDQVVxQixrQ0FBRTtzQ0FWdkI7OztvQ0FDZTdVO2lEQUNUOztrREFBTTttRUFoQnBCa1U7aURBZ0JvQjs2QkFDU25pQixhQUFMcWlCO21EQWpCeEJGLGFBaUJ3QkUsSUFBS3JpQixJQUZOaU87aURBQ1Q7d0JBSXVCd1U7d0JBQUxDO3dCQUFMQzs2QkFBVUYsTUFMZHhVOzswREFPSDswQ0F0QnBCa1UsYUFvQjJCUSxNQUFLRCxNQUxUelU7OERBUThCOztvQ0FFMUMsMkNBQVc7aUNBbkJ0Qjs7a0NBS0E7d0RBTkV1VTtrQ0FNRjttQ0FpQnFCO29EQWxCbkJJLFdBTkFJO21DQXdCbUI7bUNBQWQ7b0RBekJMRDttQ0F5Qks7Ozs7bUNBQ0E7O29EQURMak47a0NBQ0ssU0E1QkFzTTthQTZCTDVJLEtBREExQjs7O1VBSVcySyxHQWhDTkw7OzBCQWtDVW5VLE9BQVE1Tzt1Q0FDZ0I7OEJBcEN6QzhpQixhQWlDYU0sS0FFSXhVLEVBQVE1Tyw2QkFDbUM7O1VBTjFEbWEsK0JBSUUscUJBTEYxQjtpQ0FVSixPQVRJMEI7Z0NBOUJVOztpQ0F5Q3VCO2tEQTFDOUI5TixJQUFJb1g7aUNBMEMwQjtpQ0FBcEI7a0RBekNmWDtnQ0F5Q2U7Z0NBeENmbkQsaUNBd0NxRDs2QkF6dUNyRCxTQTJ1Q0ZpRSxRQUFRQyxHQUFHdmI7Z0NBQUk7O2lDQUFnQjtrREFBcEJBO2dDQUFvQjtnQ0FBdkJ1YixrQ0FBbUM7NkJBM3VDekMsU0E2dUNGQyxXQUFhdmpCLFNBQTZDd2lCOytCQUU1RCxHQUZleGlCO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjBULGdDQUFRO2dDQUFhO2lDQUFnQjs7UUFBWjJQLFVBQVkzVzs7V0FBWjJXLG9DRHRsRjdDO2dDQ3NsRnlELFNBRWhEM0ksT0FBTzRJLFFBQVE1UDtrQ0FDSDtTQURnQjRPO1NBQU4xUzs7OzttQ0FDVjt5REFEZ0IwUzttQ0FDaEI7bUNBQUo7OztrQ0FJTDtvREFMWTVPO29DQU1iOzs7NERBTm9COUQ7b0NBTXBCLEdBQ0k3SCxPQU5KNmE7cUNBUUU7Ozs7c0NBQXVCOzs4Q0FIckI1VztzQ0FHcUI7OENBQXJCLHFCQVRnQjREOztxQ0FXbEI7OzRDQUpFN0gsTUFOSjZhO3NDQVVFLEtBVkZBO3NDQVVFO3NDQUlJO3VEQWZjaFQ7c0NBZWQsUUFURjVEO3NDQVNFO3NDQURGOzs7O3NDQUR3Qjt1REFiUjRELEtBQ3BCZ1Q7c0NBWTRCOztzQ0FBeEI7Ozs7c0NBRGU7dURBWkNoVCxVQUNwQmdUO3NDQVdtQixRQU5mNVc7c0NBTWU7OENBQWY7b0NBTko7O21DQVdHOztvQ0FBZTt1REFqQkU0RDs7OzRDQWlCZjtrQ0FoQks7bUNBZ0JQO21DQWRNOzs7a0NBQVg7OzBDQWdCRW1FLFFBQVEvVTttQ0FDVixTQUFJd2tCLFlBQVVuZjtzQ0FDRTs7bURBdkJvQmdmLFVBc0J0QmhmO3VDQUNFO3NDQUFkO21CQXZCc0RnZTtzQ0F1QnRELDBDQUNRO21DQUZWO3lDQURVcmpCOzttQ0FDVjs7bUJBRFVBOzBDQWNOLE9BaENGNGpCOzRDQWlDSTtvQkFqQ0pBOzs4Q0FpQ0ksc0JBbENnQmhUOzZDQW9DWjs7cUVBcENZQTs7cUJBQ3BCZ1Q7Ozs4Q0FtQ1E7OENBQ0U7K0RBckNVaFQsS0FDcEJnVDs4Q0FvQ1UsS0FwQ1ZBOzhDQW9DVTs7OENBREY7K0RBcENZaFQ7OENBb0NaO29CQUZBbkMsaUNBRUE7OzZDQUVHO3lFQXRDU21DOzhDQXVDWjs7c0VBdkNZQTs7Ozs7K0NBdUNaOztxQkFMQW5DO2dEQUtBLGdCQXZDWW1DOzt3QkFrQ1puQyxPQWxDWW1DOzRDQTBDaEI7a0RBekNKZ1Q7NkNBeUNJOzs2Q0FBVTs7cURBUk5uVixPQVFBNlU7a0RBQ0o7Ozs7Ozt3Q0F4Qkl0akI7eUNBb0NOOzs7O3NCQXZER3NrQjt5Q0F1REg7Ozs7O3VCQXBDTXRrQjs7OzJDQU1pQjs7OzRDQUFlOzs7OzJDQUFSOztxREFDOUI7OzZDQUN1Qjs7Ozs7K0NBRXZCO3VCQTVCRjRqQjs7aURBNEJFLHNCQTdCa0JoVDtnREE4QmhCOzs7aURBQVc7O21FQTlCS0EsVUFDcEJnVDs7c0RBNkJJOzs7Ozs7Ozs7OzBDQWdCRjs7MkNBQVE7OztrQkE3Q1ZBOzs0Q0E2Q1Usc0JBOUNVaFQ7MkNBaURkOzttRUFqRGNBOzttQkFDcEJnVDs7OzRDQWdETTs0Q0FDRTs2REFsRFloVCxLQUNwQmdUOzRDQWlEUTs7NENBRHNCO2tFQUh4QjFqQjs0Q0FHd0I7Ozs7OzRDQUF4Qjs2REFqRGMwUSxVQUNwQmdUOzRDQWdETTtrQkFGQWEsaUNBRUE7OzJDQUVHOzs7NENBQU87a0VBTFZ2a0I7NENBS1U7a0JBSlZ1a0IsaUNBSUcsZ0JBbkRXN1Q7MENBOENsQjsyQ0FLNkIsUUFKekI2VCxPQTlDTmI7Z0RBb0RFOzs7Ozs7bUJBbENNNWpCOzs7NENBNENOO21CQUFJMGtCO29CQTlETmQ7NENBOERFO29CQUFJYzs7OENBQUosc0JBL0RrQjlUOzZDQWdFZ0I7c0RBaEVoQkEsS0ErRGQ4VDttREFDOEI7Ozs0Q0FEbEM7OzJDQTVDTTFrQjs0Q0EwQ04sT0E1REY0akI7NkNBNERrQjtzREE3REVoVCxLQUNwQmdUO21EQTREa0I7Ozs7Ozs7Ozs7bUNBekNwQix5QkE0SUo7OzswQkE3Rlc3Z0I7NkNBQ1AsY0FBZStMO2dEQUNYOytCQURXQSx3QkFqREw5TyxlQWdESCtDLDRCQUdpQjs2Q0FGeEI7Ozs7O29EQURPQSwwQkFJTjs7aUNBcEVEO2tDQUhlMlIsT0FtQmJLLFFBakJBd1A7Z0NBMEVRO21CRHBxRm5CLE9Dd2xGUzdJLE9BRldoSDtnQ0E4RUQ7O2lDQUFvQztrREE5RVUyTztpQ0E4RVY7aUNBQXJCO2tEQTlFZDNPO2lDQThFYztnQ0FBM0I7O3NDQURFL0QsNkJBR0E7NkJBN3pDQSxTQWsxQ0ZnVTsrQkFDRjs7O2lDQUFZOzs7aUNBQ0E7Ozt5Q0FEUmpRO2dDQUVpQjtjQUZqQkE7Y0FDQTJPO3dDQUNpQixxQkFEakJBLGlDQUMwQzs2QkFyMUMxQyxTQXUxQ0Z1QixVQUFZL2pCLElBQXVCMEQ7K0JBQ3JDLEdBRGMxRDtpQ0FBUTtzQ0FBUkE7Y0FBUUc7Ozs7O1FBQVIwVCxnQ0FBUTtnQ0FBYTt5Q0FBRW5RO2lDQUFGO2lDQUN2Qjs7O3lDQURFbVE7Z0NBRU87Y0FGUEE7Y0FDVjJPO3dDQUNpQixxQkFEakJBLGlDQUMwQzs2QkF6MUMxQyxTQTIxQ0Z3QixZQUFjaGtCLElBQTRCNlQsTUFBTW5ROytCQUNsRCxHQURnQjFEO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjhqQixnQ0FBUTtnQ0FBaUI7OztpQ0FDL0I7dURBRE1BO2lDQUVFOzRDQUYwQnBRLE1BQU1uUTtnQ0FFaEM7NkJBRGR1ZCxtQ0FDb0M7NkJBNzFDcEMsU0ErMUNGaUQsaUJBQWtCdGpCLEVBQVd5TjsrQkFDL0I7cUNBRG9Cek47Z0NBQ3BCO2lDQUFZOzs7c0NBRG1CeU47aUNBQ25CO2lDQUNBOzs7O3dEQUFSK1Y7aUNBQVE7aUNBQ087a0RBRlpEO2lDQUVZOztpQ0FBVjs7O3VCQUhzQjlWLFFBRTNCK1YsR0FDQUMsOEJBQ29COzZCQW4yQ3BCLFNBcTJDRkMsY0FBY2hhLE9BQU9ySzsrQkFDdkIsY0FBcUNnaEI7a0NBQU87aUJBRHJCaGhCLEVBQ2NnaEIsOEJBQVk7K0JBQWpEOztpQ0FBYztrREFERTNXO2dDQUNGO2dFQUFvQzs2QkF0MkM5QyxTQXcyQ0ZpYSxlQUFlamEsT0FDZHJLOytCQUVILGNBQXFDZ2hCO2lDQUNqQyxjQUF1Q3ZTO29DQUFRO21CQUhoRHpPLEVBRWtDZ2hCLElBQ012UywrQkFBa0I7aUNBQXpEOzttQ0FBYztvREFEbUJ1UztrQ0FDbkI7a0VBQTRDOytCQUQ5RDs7aUNBQWM7a0RBSEczVztnQ0FHSDtnRUFDaUQ7NkJBNTJDM0QsU0E4MkNGa2EsWUFBWWxhLE9BQ1hySzsrQkFDSDs7aUNBQU07a0RBRlFxSztnQ0FFUjtrQ0FDZTs7bUNBQ1g7K0NBSFBySyxFQUVJd2tCO2tDQUNHO29DQUVGOzs7cUNBQU87c0RBREpDO29DQUNJO3NDQUVIOzs7O3dEQUxMRDt1Q0FLSzt1QkFDb0JHOzBDQUNiO2tCQURhQSxZQUZqQkQ7MENBR0k7c0NBRGFDLHlDQUVrQjt1Q0FIdEM7dUNBQ0c7O3NDQUVvQzs7c0NBSHZDO3VDQUd1QyxLQUpwQ0Q7dUNBSW9DO3NDQUN2Qzs7b0NBTko7cUNBUUEsUUFUR0Q7cUNBU0g7O2lCQWRNcGE7b0NBY047a0NBRU07Z0NBQ0osMkNBQVU7NkJBLzNDaEIsU0FpNENGdWEsb0JBQXNCN2tCO2lCRDF1RjdCLEdDMHVGNkJBO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjhqQixnQ0FBUTtnQ0FBaUI7OztpQ0FHbEI7O3lDQUhQQTtnQ0FHZDttQkQ3dUZmLE9Db3NGT0Q7Z0NBeUNRO21CRDd1RmY7Z0NDNnVGZTs7OytCQUFWOztzQ0FId0JDOzZCQWo0Q3BCLFNBdTRDRmEsVUFBVWpSOytCQUNaLFVBRFlBO2lDQUdDOztpQ0FGYixTQURZQTtvQ0FJUyw4QkFBVHZPLEVBSkF1TztvQ0FJUyxPQUFUdk87a0NBQ00sOEJBQUxrTCxJQUxEcUQ7a0NBS00sT0FBTHJELDhCQUFPOzZCQTU0Q2hCLFNBODRDRXVVLFdBQVk3TztpQkR2dkZ2QixJQ3V2RnVCZ0M7K0JBQ2xCOzt1Q0FEa0JBO2tDQUNsQixLQURrQkE7aUNBQ2xCO21DQUVnQjs7bUNBRmhCO3FDQUd3QixPQUpOQTs7NkNBUVE7Ozs7dUNBRkc7Y0FETnRaO2NBQUg0RjttQkFBRzVGO3dDQUNNOzs2Q0FEVDRGO3VDQUNYOzttQkFOUzBULEtBS0t0Wjt1Q0FDTSxJQU5Yc1osS0FLRTFUOzt3QkFMRm9WLDREQWtCQzs2QkFoNkNmLFNBazZDRm9MLHFCQUFxQnhnQixFQUFFNUY7K0JBQ3pCO3FDQUR5QkE7Z0NBQ3pCO2lDQUVhOzs7Z0NBQVQ7O3FDQUhtQjRGO2dDQUduQjtpQ0FETzs7OytCQUFUOzs7O2VBRnVCNUY7ZUFBRjRGLDJCQUtqQjs2QkF2NkNGLFNBeTZDRnlnQixxQkFBc0JoQjsrQkFDeEI7O2lDQUVVOzs7U0FWUmU7Z0NBVVEsY0FESC9ELElBQUt2UztrQ0FBZ0IsYUFBckJ1UyxLQUFLdlMsK0JBQWdDO2dDQUNsQzt1Q0FIY3VWLGdDQUlqQjs2QkE3NkNILFNBKzZDRmlCLFVBQVlsbEI7K0JBRWQsR0FGY0E7aUNBQVE7c0NBQVJBO2NBQVFHOzs7OztRQUFSOGpCLGdDQUFRO2dDQUFpQjtpQ0FBWTs7UUFBUnBRLE1BQVFoSDs7Ozs7UUFBUmdILGdDQUFRO2dDQUFhOztpQ0FFeEM7a0RBRlZvUTtpQ0FFVTtpQ0FBWDs7O2dDQUtYO2lEQUxFM1o7K0JBS0YsY0FIS0E7aUNBQ0g7O21DQUNHO29EQUZBQTtrQ0FFQSxjQURjNmE7b0NBQVM7Z0NBQVRBLG1DQUFrQztrQ0FDaEQ7OztpQ0FESDsrRkFDdUI7K0JBQ3pCOzs7K0JBSkY7OytCQUlFO2dDQUpGOztnQ0FTRTs7O2lDQURBLDZCQUFTalA7aUNBQVQsT0FBU0EsNEJBQWM7K0JBQ3ZCOztnQ0FGRjsyREFWYytOO2dDQVVkOzs7O2dDQTBESztpREFwRXNDcFE7Z0NBb0V0Qzs7NkNBcERRQTtrQ0FDTixjQUE2QjFVO29DQUN6QixjQUFlOE87c0NBQ1g7cUJBRFdBLHdCQURVOU8sNEJBRWU7b0NBRHhDOzs7Ozt1RUFEeUJBO29DQUN6Qjs7bUJBRHlCQTt5Q0ErQnJCO3dCQTlDWG1MO2lDQThDc0MyVyxJQUFJdlM7b0RBQzNCOzBEQUQyQkE7cURBQzNCO3FEQUFlOzs7O2tFQUVSMFc7c0RBQ0gsU0FISzNDO3dEQUlIOzt5Q0FDTzRDOzREQUNIO2tFQURHQTs2REFDSDs2REFDRTs7O2tFQVJlM1c7NkRBUWY7NERBRUY7OzREQUhBOzZEQUdBLEtBSkcyVzs2REFJSDs0REFDQTs7NERBSkE7NkRBSUE7b0ZBSklDOzZEQUlKOzZEQUVJOzsrRUFOQUEsU0FOVjVoQjs7NkRBWVUsS0FQRDJoQjs2REFPQzs0REFESjs7NERBTEEsMEJBS0E7Ozs0REFHQTt5Q0FmYXBFOzREQWViLDBDQUNRO3lEQVhaO3lEQUFjOzBFQUZibUU7d0RBRWE7O3NEQVlYLDJDQUFVO29EQWhCSjs7cURBQ0Q7c0VBRlNuRTtvREFFVDtvRkFlTTs7dUNBaERIOWhCO3dDQWlCckI7dUJBaENYbUw7Z0NBZ0NzQ2liLFFBQVFDO21EQUMvQjt5REFEK0JBO29EQUMvQjtvREFBZTs7Ozs7O29EQUNIO3FFQURSOWhCLFNBQUsrZTtvREFDRzsyRUFEUi9lOzsyQkFBSytlOzs7b0RBQ0c7b0RBRUY7cUVBSE4vZSxJQUFLK2U7b0RBR0MsUUFGTmdELE1BREtoRDtvREFHQyxLQUpxQitDO29EQUlyQjttREFFVjs7bURBTEE7b0RBS0E7b0RBQ2U7b0VBSlhFO29EQUlXLEtBUGdCRjtvREFPaEI7bURBQ2Y7O21EQVBBO29EQU9BLEtBREliO29EQUNKO21EQUNBOzttREFSQTtvREFRQSxRQUZJQTtvREFFSjtvREFFUTs2RUFYZVk7b0RBV2Y7bURBRFI7Z0NBMUNmamI7bURBMENlLDBDQUVROzs7O3VCQTdCU25MOzs7Ozs4Q0FJRTs7Ozs7K0NBQ3ZCOzhCQXBCWG1MO3VDQW9CbUN2QzswREFBSzt1REFBTEEsNEJBQXFCOzhDQUR0QiwwQkFJQTs7Ozs7K0NBQ3ZCOzhCQXhCWHVDO3VDQXdCbUN2QzswREFBSzt1REFBTEEsNEJBQXFCOzhDQUx0QiwwQkE2Q0E7Ozs7OytDQUFpQjs7OzZDQXJDakI7Ozs7OzhDQUN2Qjs2QkE1Qlh1Qzs7eURBNEJ3QztxREE5QjlCMlosZ0NBOEJtRDs2Q0FEM0IsMEJBRUE7Ozs7OzhDQUN2Qjs2QkE5QlgzWjs7eURBOEJ3QztxREFoQzlCMlosZ0NBZ0NrRDs7Ozs7MENBSmpEO3lCQTFCWDNaO2tDQTBCbUN2QztxREFBSztrREFBTEEsNEJBQXFCOzswQ0FKN0M7eUJBdEJYdUM7a0NBc0JtQ3ZDO3FEQUFLO2tEQUFMQSw0QkFBcUI7b0NBMkMxQywyQ0FBVTtrQ0FsRHJCO2tDQURNOEwsc0NBbURnQjsrQkFDeEI7MkJENTFGVjs4Q0M0MUY4Qjs2QkFuL0NyQixTQXEvQ0Y4UixTQUFXM2xCLElBQXVCNGxCLEtBQUtDOytCQUN6QyxHQURhN2xCO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjBULGdDQUFRO2dDQUFhOzs7aUNBQ3RCOzt5Q0FRUjJRLFlBQVlsYSxPQUNYcks7aUNBQ0g7O21DQUFNO29EQUZRcUs7a0NBRVI7b0NBQ2U7O3FDQUNYO2lEQUhQckssRUFFSXdrQjtvQ0FDRztzQ0FFRjs7K0NBREdDO3VDQUNIOzttQkFOTXBhO3NDQU1OO29DQUVNO2tDQUNKLDJDQUFVO2dDQWpCVixjQXNCc0J3YjtpQ0FDbEMsY0FBZUM7b0NBQU07Z0NBdkJqQjlCLE1BdUJXOEIsNkJBQWdDO2lDQUEvQzs7OztvQkFEa0NEO2lDQUNsQzs7bUNBQ3dCO29EQXhCcEI3QjttQ0F3Qm9CO21DQUFYOzs7O2tDQUlSOzs7bUNBREE7OztxQ0FBMEI7b0RBQWxCeGxCO29DQUFrQjt5REFBVztpQ0FDckM7O2tDQUZGOzZEQTFCQ3dsQjtrQ0EwQkQ7Ozs7bUNBNkJJO29EQXhETXBRO21DQXdETjs7Z0RBdkJRQTtvQ0FDTixjQUE2QjFVO3NDQUN6QixjQUFlOE87d0NBQ1g7dUJBRFdBLHdCQURVOU8sNEJBRWU7c0NBRHhDOzs7Ozt5RUFEeUJBO3NDQUN6Qjs7cUJBRHlCQSwrQkFtQkw7O3lDQW5CS0E7MENBa0JUOzs7O3lCQWxCU0E7Ozs7O2dEQUlFOzs7OztpREFDdkI7Z0NBZGJtTDt5Q0FjcUN2Qzs0REFBSzt5REFBTEEsNEJBQXFCO2dEQUR0QiwwQkFJQTs7Ozs7aURBQ3ZCO2dDQWxCYnVDO3lDQWtCcUN2Qzs0REFBSzt5REFBTEEsNEJBQXFCO2dEQUx0QiwwQkFnQkE7Ozs7O2lEQUFpQjs7OytDQVJqQjs7Ozs7Z0RBQ3ZCOytCQXRCYnVDOzsyREF1QmlCO3VEQS9DakIyWixnQ0ErQ3NDOytDQUZGLDBCQUdBOzs7OztnREFDdkI7K0JBekJiM1o7OzJEQTBCaUI7dURBbERqQjJaLGdDQWtEcUM7Ozs7OzRDQU54QjsyQkFwQmIzWjtvQ0FvQnFDdkM7dURBQUs7b0RBQUxBLDRCQUFxQjs7NENBSjdDOzJCQWhCYnVDO29DQWdCcUN2Qzt1REFBSztvREFBTEEsNEJBQXFCO3NDQWMxQywyQ0FBVTtvQ0FyQnJCO29DQURNOEwsc0NBc0JnQjtrQ0FDeEI7cUJEdDVGWjtrQ0NzNUZnQzs7Ozt1REFBQztnQ0F2RGhCOzs7OztnQ0FzQlo7aURBdkJvQytSLG9CQUFLQzsrQkF1QnpDOzhEQWlDNEI7NkJBN2lEeEIsU0FnakRGRyxLQUFNQTsrQkFFUixHQUZRQTtpQ0FLSjs7O21DQUFVOzs7bUJBQ1VFO3FDQUNwQjs7dUNBQVc7d0RBUFBGLEtBTWdCRTt1Q0FDVDtvREFHUzVnQjt3Q0FBTDtlQUFRN0c7O3dDQUFSLEdBQUs2RyxNQUpBNGdCO3lDQU1XOzs7O2dCQURsQi9aLCtCQUNxQjs7bUJBRHJCQTt3Q0FERTt5Q0FJTixRQUhJQTt5Q0FHWTs7OERBSkYxTjt3Q0FJRSx5QkFFQ21POzBDQUNiLGlCQURhQTs0Q0FDSzs7OzRDQUNoQjt5QkFiWHFaLElBS2dCM2dCOzRDQVFMOzBDQUVHLDJDQUFVO3dDQU5IOzBDQUFaNmdCLG9DQU9RO3NDQWRWOzt1Q0FHTjs7dUNBV2dCO3dEQXJCakJIO3VDQXFCaUI7dUNBWm5COzs7dUNBZU87d0RBaEJMSTt1Q0FnQks7c0NBQVQ7a0RBakJPbm1CO3FDQWlCUDtvRUFBMEI7bUNBbkJoQjtrQ0FDVjttREFESWdtQjtpQ0FDSjs7Z0NBSEk7OERBcUJzQjs2QkF4a0QxQixTQXFtREZJLFdBQWFybUIsSUFBMEJzbUI7aUJEOThGOUMsR0M4OEZvQnRtQjtpQ0FBb0I7c0NBQXBCQTswQkFBb0JHOztXQUFwQm9tQjsrQkFFZjt5Q0FGZUE7Z0NBRWY7aUNBQ2E7OztrQ0FFUTtvQ0FHZjs7Ozs7O3FDQUE4Qjs7O3FDQUFYOzs7OytCRHQ5RjlCOztrQ0N1OUZrQjtnRUFBbUI7Z0NBTm5COztnQ0FFWDtpREFGRUM7Z0NBRUY7Ozs2Q0FRdUJFO2lDQUN2QixjQUFnQmpvQjttQ0FDaEI7NENBRGdCQTtvQ0FDaEI7cUNBR0k7OzBDQUxtQmlvQjs7cUNBSW5COzs7K0RBR0Q7aUNBTkg7NEJBZHVDSixzQ0FvQnBDOytCQWZIOztnQ0FRQTtpREFWRUU7Z0NBVUY7Ozt3Q0FTRWxjO21CRHArRlQ7b0NDcStGb0I7Ozs7c0RBcEJYa2M7c0NBcUJFOzs7O21CQXJCRkE7c0NBcUJFO29DQURTO3FDQUlUOzs7aUJBeEJGQTtvQ0F3QkU7a0NBRUc7K0JBaEJQLGNBbUJnQnZZO2tDQUFLOytCQVZuQjNELE9BVWMyRCw0QkFBMkI7K0JBbkIzQzs7Z0NBbUJBO2lEQXBCRTBZOytCQW9CRixjQUVrQ0wsUUFBUU07aUNBR3hDOzttQ0FBZTtvREFIaUJOO21DQUdqQjttQ0FDQztvREFKd0JNO21DQUl4QixXQUFaRTtrQ0FBWTthQUVaQzs7eUJBRkFEOzs7O2lCQURBRDtZQUdBRTs7O2lDQUtKLEdBTElBO29DQU1GOztxQ0FBNkI7OztxQ0FBWDsyREFab0JIO29DQVlwQjtpQ0FaWU47a0NBYTNCOytCQWIyQkEsUUFBUU0sK0JBYWI7K0JBZjdCO3NCQURFaEksTUEzQkE2SDs2QkF6bURBLFNBc3BERk8sS0FBS3BhO2dDQUFJOzBDQUFKQSw0QkFBOEI7NkJBdHBEakMsU0F1cERGcWEsS0FBS3JhO2dDQUFJOzBDQUFKQSw0QkFBOEI7NkJBdnBEakMsU0F3cERGc2EsS0FBS3RhO2dDQUFJOzBDQUFKQSw0QkFBOEI7NkJBeHBEakMsU0EwcERGdWEsTUFBUW5uQjtpQkRuZ0dmLEdDbWdHZUE7aUNBQVM7c0NBQVRBO2VBQVNHOztXQUFUaW5COytCQUNWLGNBQ2lCbFI7a0NBQU07O21DQUFzQjtrREFGbkNrUjttQ0FFbUM7bUNBQVg7Ozt3QkFBakJsUixrQ0FBK0M7K0JBRGhFOztnQ0FDRzs7Z0NBQThEOzs2QkE1cEQ3RCxTQWdxREZtUixXQUFhcm5CO2lCRHpnR3BCLEdDeWdHb0JBO2lDQUFTO3NDQUFUQTtlQUFTRzs7V0FBVGluQjs7aUNBQ0Y7O1FBQVRFLE9BQVN6YTs7Ozs7cUNBQXFCLGtDQUFJO2tDQUF6QjtRQUFUeWEsaUNBQVM7Z0NBQTBCLGdCQUNwQzFhO2lDQUNILFNBQ1EyYSxXQUFZQyxJQUFJdm5CLEVBQUUyTTtjQUFONmEsVUFBTS9FO21DQUN4Qjt3Q0FEd0JBO3dDQUtaO2VBRkxnRixJQUhpQmhGO2VBR3RCOWhCLEVBSHNCOGhCO3lDQUtaO3FEQUxVemlCLEVBR3BCVzt3Q0FFVTt5Q0FBaUM7O2dCQUwzQittQixTQUtzQnRaLEVBTHRCb1o7Ozt3Q0FLTixJQUxNQSxZQUFNL0UsSUFHakJnRjs7c0NBREM7b0NBRlVELGlDQU9PO2lDQVIzQixjQVlvQjdtQjtvQ0FDb0M7O21EQURwQ0E7cUNBQ29DOztxQ0FBcEI7b0RBaEJyQndtQjtxQ0FnQnFCO3FDQUFYOzs7dUJEemhHOUI7b0NDeWhHeUQ7a0JBRGhDeG1COzRDQUNnQyxxQ0FBUTtpQ0FiNUQ7O21DQVlNOzs7a0NBREo7bURBWkNnTTtpQ0FZRCxjQUtlMGE7bUNBQ2Y7c0NBQ21COzs7c0NBQ1I7c0JBSElBLE9BRVUxbUI7d0JBQUdzVjtnREFDZTttQ0FGM0M7b0NBQ0k7dUJEOWhHWCxPQzZnR2FxUjtvQ0FpQkY7OEJBUkY3RSxtQ0FTeUM7aUNBUjNDOztrQ0FLQTttREFsQkU0RTtrQ0FrQkY7O21DQUtXOzs7NEJBTlRNLHdDQU1pQzs2QkF4ckRqQyxTQTByREZDLGNBQWdCN25CO2lCRG5pR3ZCLEdDbWlHdUJBO2lDQUFRO3NDQUFSQTtjQUFRRzs7Ozs7UUFBUjBULGdDQUFRO2dDQUFhO2lDQUNyQjs7UUFBZGlVLFlBQWNqYjs7O1FBQWRpYjs7cUNBQXVCLDJDQUFVO2dDQUFuQjs7aUNBQ1Q7a0RBRlNqVTtpQ0FFVDs7OENBQTZCQSxNQUFNcFY7aUNBQ3hDOzs7bUNBQThCO3lEQURVQTtrQ0FDVjtxQkR0aUd2QyxPQyt5RU91aEI7a0NBdXZCZ0M7O21DQUFuQjs7bUNBQWU7OztrQ0FBMUI7OzBDQURrQ25NO2tDQUNsQztrQ0FDRztnRUFISGlVO2dEQUdzQztnQ0FGakM7bUJEcmlHZDs2QkN5MkNTLFNBK3dERkMsVUFBVTdSLEdBQUdqVzsrQkFDZjtpQ0FDRTtvQ0FFTTs7WUFKT0E7b0NBSVA7a0NBRUcsMkNBQVc7K0JBTHRCO29DQURZaVcsNEJBV1I7NkJBMXhEQSxTQTZ4REY4UixPQUFTaG9CLElBQW9CdkIsRUFBRXdCO2dDQUFJLEdBQTFCRDtpQ0FBTztzQ0FBUEE7YUFBT0c7O1dBQVBnTTtnQ0FBMEIsc0NBQTFCQTtnQ0FBb0M7dURBQWhCMU4sR0FBRXdCLDRCQUFnQzs2QkE3eEQ3RCxTQWd5REZnb0IsWUFBY2pvQixJQUFjc25CO2lCRHpvR25DLEdDeW9HcUJ0bkI7aUNBQU07c0NBQU5BO1lBQU1HOztXQUFOK25COztpQ0FFaEIsU0FBUXpSLElBQUttUSxLQUFLZjttQ0FDaEI7c0NBQ2lCO2FBQVhzQzt3Q0FBVyxrQkFGRHRDOzs7cUNBR2Q7cUVBRElzQzt3Q0FFRjtlQUFJalM7OzRDQUNROzs7c0JBSFZpUzs2Q0FHVTs2Q0FFUjs4REFGRUM7NkNBRUY7NkNBQThCOzhEQVB0QnZDOzZDQU9zQjs2Q0FBVDs7NkNBQStCOzsrQ0FUaEN5Qjs2Q0FlUjtnREFmUUE7OENBZVI7b0JBSFY1RSw4QkFHVSxnQkFBTHppQixFQVBMMk07O3VCQUlBOFYsSUFKQTlWOzRDQURNOzZDQVVWOzs2Q0FBc0I7bUVBTGxCOFY7NkNBS2tCOzZDQUFkOzs7NENBQ2M7OzhERDNwR25DLE9DMm9HYWpNOzJCQWVJaVIsOEJBQ29DO3dDQVoxQyxHQUpPZDt5Q0FtQkw7OzBDQUMyQjsyREFwQmpCZjswQ0FvQmlCOzBDQUFWOzs7MENBQWY7OytDQURGLHFCQWZFM1A7O3lDQWtCQzs7O3dDQWxCTDs7dUNBb0JBOzs7MkNBSWdCO29DQTVCSjJQLCtCQTRCa0I7d0NBSjlCOzs7d0NBRWM7O3dDQURYO3FEQXpCU0E7d0NBeUJUOzZDQURIO3FDQU1GO2dCQURHcGhCOztxQ0FDSDs7O3VDQU1pQjt3REFQZEE7dUNBT2M7dUNBQVY7Ozs7O3VDQUZXOzt1Q0FEWDs7OzZEQWpDT29oQjs7dUNBaUNQO3VDQUZKOzs7NERBTUc7aUNBckNWO1NBdUNJd0M7VUF6Q1lILDhCQXlDUTtpQ0FDeEIsc0NBRElHLGdDQUNpQjs2QkExMERqQixTQTYwREFDLE9BQVF4TixHQUFJeU4sSUFBcUJ0b0I7K0JBRW5DLFNBQUl1b0IsT0FBT0MsS0FBS0M7aUNBQ2Q7OzttQ0FLTTs7d0NBTkdEOzttQ0FLSDs7O21DQURBOzs7eURBSlFDOzttQ0FJUjttQ0FGSjs7O2lCQURFSDs7NkNBU0E7eURBVktFOzhDQVVMOzZDQUNBOzBCQWJJM04sR0FZQTZOOzZDQUNKOzRCQWI2QjFvQixFQVl6QjBvQixpQ0FFSSw0QkFBQzsrQkFaZjs7aUNBY21CO2tEQWhCVDdOO2dDQWdCUzsyQkFoQkx5TixJQUVWQyxpQ0FjK0I7NkJBNzFEakMsU0E0MERNSSxTQW9CR0wsSUFBcUIvaUI7K0JBQ2hDO2dDQUFjO2VBRGtCQSxFQUFyQitpQiw4QkFDRyxnQkFEa0IvaUIsNkJBQ1A7NkJBajJEdkIsU0E0MERGcWpCLFNBdUJXN29CO2lCRDVzR2xCLEdDNHNHa0JBO2lDQUFPO3NDQUFQQTthQUFPRzs7V0FBUDZEO3NCQUFvQy9EO2lDQUUvQzs7bUNBQVM7b0RBRkUrRDtrQ0FFRjtpQkFBTDhXLE9BRjJDN2EsNEJBRy9COzZCQXQyRGQsU0FpM0RGNm9CLGNBQWNDLFFBQVFsUyxNQUFNbVM7K0JBRXpCOztRQUZtQm5TLFFBQU1tUyxNQUFkRCxRQUFRbFMsUUFBUmtTLFFBQWNDO2dDQUk5QixNQUhJQzsrQkFJSixPQURJQyw4QkFDRDs2QkF0M0RDLDZCQXczREZDOzZCQXgzREUsU0F5M0RGQyxRQUFReG9CLEVBQUV5b0I7Z0NBQU8sT0FBUEEsS0FBRnpvQixtQ0FBaUQ7NkJBejNEdkQ7OzsrQkEwM0RhOzs7OytCQUNBOzs7O3VDQVFmOG9CLFdBQVdYLFFBQVFsUyxNQUFNMEssT0FBUW9JO2dDQUN0QjtzQ0FEY3BJLFNBQWR3SDtpQ0FDaUIsY0FEVGxTO2lDQUVQLEtBRk9BLFFBQU0wSztpQ0FFRSxZQUZoQndIO2lDQUU0QixZQUY1QkE7aUNBRXVDLGNBRi9CbFM7aUNBR1IsS0FIQWtTLFVBQ1RhO2lDQUUwQixjQUQxQkM7Z0NBQzBCLFNBQzFCekssT0FBT3BXLEtBQUs4RjtpQ0FDZDs7bUNBQTZCO29EQURwQjlGLEtBZlRtZ0I7bUNBZ0I2Qjs7bUNBQWI7eURBREZyYTttQ0FDRTttQ0FBUjs7OzhEQUFtRDtnQ0FGL0IsU0FJMUJnYixjQUFlbHBCO21CRG52R3hCOztzQ0NxdkdXLEdBRmFBLElBTmZncEI7d0NBUzBCOzhDQVZqQmI7eUNBVWlCOzt5Q0FBUDs7eUNBQVgsS0FWZXhIO3dDQVVuQjtnQkFWMkJvSTt3Q0FVM0I7c0NBRVUsR0FYZEMsU0FFQTVPLFNBSWVwYTt3Q0FNVzs4Q0FiakJtb0I7eUNBYWlCOzt5Q0FBUDs7eUNBQVgsS0FiZXhIO3dDQWFuQjtnQkFiMkJvSTt3Q0FhM0I7c0NBR0E7OzswQ0FHcUIsa0NBQUU7c0NBSHZCOzs7OEJBQ1kvVDtpREFDVTt1REFEVkEsTUFWRGhWO2tEQVdvQixZQWxCbEJpVztrREFrQjJCLFlBbEJuQ2tTO2lEQWtCSztnQ0FsQmlCWSxJQUFScEksd0NBa0JrQzs7OztxQ0FHdkQ7O3lEQURNdlA7c0NBSWMsS0F4QmIrVztzQ0F3QmE7O3NDQUFQOztzQ0FBUixLQUhEdks7c0NBRUYsS0F2Qm1CK0M7cUNBc0JyQjthQXRCNkJvSTtxQ0FzQjdCO2tDQUlHO2dDQXZCcUI7O2dDQTZCekI7d0NBOUJERSxPQVhGUDtnQ0F3Q0c7d0NBNUJEdE8sT0FYRnVPO2dDQXNDQzt3Q0E3QkNLLE9BVkZOO2dDQXVDQzs0Q0FGQy9rQjtnQ0FFRjs0Q0FGRUE7K0JBRUY7NkJBdkJFdWxCLDZDQXlCNEI7OEJBeENmLFNBMENmQyxXQUFXaEIsUUFBUWxTLE1BQU0wSyxPQUFRb0k7Z0NBQ3RCO3NDQURjcEksU0FBZHdIO2lDQUNpQixjQURUbFM7aUNBRVAsS0FGT0EsUUFBTTBLO2lDQUVFLFlBRmhCd0g7aUNBRTRCLFlBRjVCQTtpQ0FFdUMsY0FGL0JsUztpQ0FHUixLQUhBa1MsVUFDVGE7aUNBRTBCLGNBRDFCQztnQ0FDMEIsU0FDMUJ6SyxPQUFPcFcsS0FBSzhGO2lDQUNkOzs7OzttQ0FBc0I7NERBRFJBO21DQUNRO21DQUFkO21FQURDOUY7a0NBQ0Q7OERBQXVDO2dDQUZuQixTQUkxQjhnQixvQkFBb0J6YjttQkRyeEc3Qjs7c0NDdXhHVyxHQUZrQkEsSUFOcEJ1Yjt3Q0FTMEI7OENBVmpCYjt5Q0FVaUI7O3lDQUFQOzt5Q0FBWCxLQVZleEg7d0NBVW5CO2dCQVYyQm9JO3dDQVUzQjtzQ0FFVSxHQVhkQyxTQUVBNU8sU0FJb0IzTTt3Q0FNTTs4Q0FiakIwYTt5Q0FhaUI7O3lDQUFQOzt5Q0FBWCxLQWJleEg7d0NBYW5CO2dCQWIyQm9JO3dDQWEzQjtzQ0FHQTs7OzBDQUdxQixrQ0FBRTtzQ0FIdkI7OztvQ0FDaUJoVTtpREFDSzt1REFETEEsTUFWRHRIO2tEQVdlLFlBbEJsQndJO2tEQWtCMkIsWUFsQm5Da1M7aURBa0JLO2dDQWxCaUJZLElBQVJwSSx3Q0FrQmtDOzs7O3FDQUd2RDs7eURBRE12UDtzQ0FJYyxLQXhCYitXO3NDQXdCYTs7c0NBQVA7O3NDQUFSLEtBSER2SztzQ0FFRixLQXZCbUIrQztxQ0FzQnJCO2FBdEI2Qm9JO3FDQXNCN0I7a0NBSUc7Z0NBdkJxQjs7Z0NBNkJ6Qjt3Q0E5QkRFLE9BN0NGUDtnQ0EwRUc7d0NBNUJEdE8sT0E3Q0Z1TztnQ0F3RUM7d0NBN0JDSyxPQTVDRk47Z0NBeUVDOzRDQUZDL2tCO2dDQUVGOzRDQUZFQTsrQkFFRjs2QkF2QkV1bEIsNkNBeUI0Qjs4QkExRWYsU0E0RWZFLFVBQVVwb0I7K0JBRVo7O2lDQUFnQjs7eUNBRVpxb0IsWUFBYXJoQixFQUFHbko7aUNBQ2xCOzttQ0FBWTtvREFIVjhpQjttQ0FHVSxLQUFSQyxZQURXNVo7bUNBQ0gsY0FBUjRaLFlBRGMvaUI7aUNBR2hCOzsyQkFMQThpQixlQUVhM1osRUFBR25KLEVBQ2QraUI7K0NBRW1DO2dDQUx6QixTQU9aMEgsYUFBYTNwQjtpQ0FDZjs7Ozs7a0NBQ0U7O29EQUZhQTtpQ0FFYjsrQkFQQTBwQiwyQ0FPMEM7Z0NBVDlCLFNBWVpFLGFBQWE1cEIsS0FBS2lpQjtpQ0FDcEI7O21DQUFvQztvREFEckJqaUI7bUNBQ3FCO21DQUF0QjtvREFEQ0E7bUNBQ0QsU0FETWlpQixXQUNoQmxKO21DQUFVLFNBRE1rSixXQUNaL0k7bUNBQU07VUFFVjJROztXQUE0QkMsU0FIWjdILFlBQ2hCbEosT0FFNEIrUTtrQ0FFaEM7VUFGZ0NBOztXQUM1QkMsV0FKZ0I5SCxZQUNaL0ksT0FHSjZRO2tDQUdKLEtBUG9COUg7bUNBT047aURBRlYrSDttQ0FFVSxLQVBNL0g7bUNBUU47aURBSlY4SDttQ0FJVSxLQVJNOUg7bUNBU047a0RBRlZnSSxRQU5BbFI7bUNBUVUsS0FUTWtKO21DQVVOO2tEQUZWaUksUUFQSWhSO2tDQVNNLFNBRVY5TSxLQUFLL047bUNBQ1A7O3FDQUNFO3NEQUxBOHJCLFFBQ0FDLFFBRUsvckI7b0NBRUw7Ozs7c0JBM0dKdXFCOzs7OztrREEyR3FDO2tDQUp2QixTQU1WeUIsWUFBWXZjO21DQUNkOztxQ0FBWTtzREE3QlprVTtxQ0E2QlksS0FBUkMsWUFEVW5VO29DQUNGOzZDQUNTOzZCQTlCckJrVSxlQTZCSUMsMkJBRFVuVTtpREFFeUM7a0NBUjNDLFNBVVZ3YyxZQUFZanFCO21DQUNkOztxQ0FBWTtzREFqQ1oyaEI7cUNBaUNZLEtBQVJDLFlBRFU1aEI7b0NBQ0Y7NkNBQ1M7NkJBbENyQjJoQixlQWlDSUMsa0JBRFU1aEIsRUFDVjRoQjtpREFDbUQ7a0NBWjNDOzs7cUNBTlY4SDthQUNBQztzQ0EyQkE7O3VDQUdROztxQkFoSVpwQjt1Q0ErSFM7O2dCQTNCTHFCLFFBTkFsUixHQVFBb1IsUUFXQUc7dUNBY0k7bURBVm9CNWpCO3VDQVNwQjs7Z0JBekJKd2pCLFFBUEloUixHQVNKa1IsUUFNQUM7dUNBZ0JBOzZDQWhDV3JxQjtzQ0FnQ1g7cUJBUkFnRTsrQ0FRQSxXQVJ3QjBDOztvQ0FNVjs7O2NBdkJkdWpCLFFBTkFsUixHQVFBb1IsUUFXQUc7b0NBVUE7bUJBTkF0bUIsaUNBTUEsS0E5QldoRTtXQUtYZ3FCO29DQXVCYzs7O2NBcEJkRSxRQVBJaFIsR0FTSmtSLFFBTUFDO29DQVlBO21CQUp3QjNqQixtQ0FJeEIsS0E1QlcxRztrQ0EwQkcsT0ExQkhBLDhCQW1Dc0M7Z0NBL0N2QyxjQWtEdUIyVixHQUFHbE47a0NBQ3pCO3dEQURzQmtOLEdBQUdsTixnQ0FDSDtnQ0FuRHZCOztpQ0FrREw7a0RBbERQdVo7Z0NBa0RPO3NCQXBEQzNnQixzQ0FxRDRCOzhCQWpJdkI7OztPQXI3QmZvZTtPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBNWdCO09BRUE2Z0I7T0FHQUM7T0FRQUM7T0FhQUs7T0FDQUU7T0FFQUM7T0F1RkFNO09BRUFDO09BNEJBVztPQW9CQUc7T0FvQkFDO09BY0FDO09BNENBVztPQTRDQUk7T0FFQUU7T0FxR0FPO09BS0FDO09BSUFDO09BSUFFO09BTUFJO09BR0FDO09BTUFDO09BbUJBSztPQU1BQztPQU9JQztPQW9CSkM7T0FPQUM7T0FNQUM7T0FzRUFTO09BMkRBSztPQXFEQUs7T0FpREFXO09BQ0FDO09BQ0FDO09BRUFDO09BTUFFO09BMEJBUTtPQXFGQUU7T0FjQUM7T0FHQUM7T0E0Q0FZO09BQVFEO09BcUNSRTtPQU9BSztPQUNBQztPQUNBRTtPQUNBQztPQUVBQztPQUdBQztPQUdBQztPQWtDQUs7T0FrQ0FDOytCQTVFZTs7Ozs7Ozs7O09Bem5GakIxaUI7Ozs7Ozs7Ozs7OEJBeW5GaUI7OytDRHB1R3RCOzs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs2QkNNcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7NEJBQWxCOzZCQUFrQjs2QkFBbEI7OzRCQUNBOzZCQURrQjs2QkFDbEI7OzZCQUVnQjtzQ0FJZHdqQixhQUFjQzsrQkFDaEIsY0FBVUM7a0NBQWtCOzttQkFBbEJBOzZDQUFrQzsrQkFBNUM7Ozs7bUJEZEg7VUNjT0M7b0JBQ09EOzs7OzZDQUE2Qjt5Q0RmM0M7VUNlT0UsVUFGWUg7b0JBR1lDO2tDQUFPOzttQkFBUEE7NkNBQVc7eUNEaEIxQztvQkNlT0U7b0JBQ1FGO2tDQUFPOzttQkFBUEE7NkNBQVk7eUNEaEIzQjtnQ0NnQjJCO2lCQURwQkU7aUNBQ29COzhDQUNNRjtrQ0FBTztrRUFBUEE7NkNBQVU7Z0NBRGhCO21CRGhCM0I7b0JDZU9FO29CQUVTRjtrQ0FBTzs7bUJBQVBBOzZDQUFhO3lDRGpCN0I7Z0NDaUI2QjtpQkFGdEJFO2lDQUVzQjs4Q0FDMUJGOzs7OzZDQUFjO2dDQUFJOztRQUZkRyxRQUZBRjtnQ0FJYzttQkRsQnJCO1dDYW1CRjtvQkFNaEJDOzs7NkNBQWU7Z0NBQUk7O1FBRmZJLFNBSEFIO2dDQUtlO21CRG5CdEI7V0NhbUJGOytCQVFkO1lBTEVJOztnQ0FLRjs7aUNBQTBDOztzQ0FKeENDO2lDQUl3QztnQ0FHMUM7O2lDQUEyQzs7OENBRTdDSjs7Ozs2Q0FBc0I7Z0NBRnVCLGNBRTdDQTtrQ0FBUzs7bUJBQVRBOzZDQUFjO2dDQUYrQjttQkR4QmhEO29CQ2FtQkQ7OENEYm5CO2dCQ29CT007b0JBT0pMOzs7OzZDQUF1QjtvQkFBdkJBO2tDQUFTOzttQkFBVEE7NkNBQWM7MENEM0JqQjtvQkNhbUJEO2dERGJuQjtvQkN1Qk9PLHdDQUk2Qjs2QkFsQmpCLFNBb0JkQyxpQkFBaUJSOytCQUNuQixzQ0FEbUJBOytCQUNuQjtPQUVJUzs7K0JBRkosY0FHQVI7Ozs2Q0FBZTsrQkFIZjs7OzttQkQ5Qkg7V0NnQ09ROytCQUdGOzs7aURBTmlCVCxPQUdmUztnQ0FHRjs7OztrQ0FLWSw4QkFBUEM7a0NBQU8sT0FBUEE7K0JBTEwseUJBR0U7Ozt3RUFFYTs2QkEvQkQsU0FpQ2RDLGtCQUFrQkM7K0JBQ3BCOzs7O2lDQUd3Qjs7O2dDQUR0QjtzREFIa0JBO2dDQUdsQjsrQkFLRjthQU5JQzsrQkFNSixjQUNBWjs7Ozs2Q0FBcUI7K0JBRHJCOzs7Ozs7bUJEbERIO1dDMEN1Qlc7YUFFaEJDLDJCQVFGOzZCQTNDYyxTQTZDZEM7K0JBQ0Y7OztpQ0FBVzs7Ozs4Q0FFVGI7Ozs7NkNBQXNDO2dDQUY3QixjQUdpQmdCO2tDQUFpQjt5QkFIdENGLEVBR3FCRSwrQkFBa0M7Z0NBQXhDOzs7OzttQkQxRHpCOzthQ3VET0QsMEJBS0g7NkJBbkRlLFNBcURkRTtNQUFjbEIsT0FBT1ksVUFBVUMsR0FDOUJNOytCQUVILGNBQXVCQztpQ0FDbkIsY0FBbUNIO21DQUNuQzs7OztpREFBZ0I7bUNBQWhCLGNBR01oQjtzQ0FBWTs7dUJBQVpBO2lEQUFnQzttQ0FIdEM7dUJEbkVQO3dCQzhEMEJXO3dCQU9iWDtzQ0FBWTs7dUJBQVpBO2lEQUE4Qjs4Q0RyRTNDO3dCQzhEMEJXO3dCQU1oQlg7c0NBQVk7O3VCQUFaQTtpREFBOEI7OENEcEV4Qzt3QkM4RDBCVztrREQ5RDFCO2VDOEQwQkE7d0JBU0FYO3NDQUFrQjs7dUJBQWxCQTtpREFBa0M7OzhDRHZFNUQ7Y0N1RVdvQjt3QkFDNkNwQjtzQ0FBUzs7dUJBQVRBO2lEQUFlOzhDRHhFdkU7d0JDOERtQkQ7d0JBVWNDO3NDQUFTOzt1QkFBVEE7aURBQWM7OENEeEUvQzt3QkM4RG1CRDttQ0FVWjtpQkFWNkJhLGFBU3pCUTttQ0FDSjs7O21DQUVBO2lCQVo2QlIsR0FTekJRO21DQUNKO29DQUVBOzRDQVJtQ0o7bUNBU25DO1lBWkRFLE9BRDhCTixhQUdWTzttQ0FPbkIseUJBR0E7OzttQ0FDQTtpQkFkNkJQO21DQWM3Qix3Q0FDZTtpQ0FYZjs7Ozs7Z0VBV2U7K0JBWm5COytEQVlvQjs2QkFwRUo7OytCQTBFRzs7K0JBRUg7aURBSFpiOytCQUlLO2tEQURMWTsrQkFDSzs7OytCQUdTOzs7OzsrQkFDQzs7OzsrQkFDQTs7OytCQUFSOzs7K0JBQ3NDOytDQUQ3Q1k7K0JBQzZDOytCQUFWOzs7K0JBQTlCOzsyQ0FDZ0JFOytCQUN6QixhQUErQ0M7aUNBQy9DOzt5Q0FOSUw7a0NBTUosT0FMSUM7aUNBS0o7cUJEL0ZIO2lDQytGRztxQkQvRkg7aUNDK0ZHOztrQ0FFSTtrREFIMkNJO2tDQUczQztpQ0FERjtjQUxFSDtpQ0FJSjtrQ0FDRTtrQ0FFQTtrREFORUM7a0NBTUY7O29DQUd1Qjs7OztnREFHU3hCO3FDQUFTOztxQkFBVEE7Z0RBQWU7bUNBSHhCO3FCRHJHNUI7b0JDa0ZPRDtxQkFzQmVDO3FDQUFTOztxQkFBVEE7Z0RBQWM7MkNEeEdwQzttQ0N3R2E7a0JBdEJORDs7b0NBc0JNOzs7O21DQURSO29EQWpCRWEsYUFlQWlCLE9BTkFGO2tDQVFGO29DQUtFOztxQkExQkE1QjtxQkFHQVk7cUJBQ0FDOzhCQXVCT0EsR0FBS21CLElBQVdDLEVBQUViO2tEQUVyQixjQUFlYztvREFDWDs7O3FEQUNFOzs7a0NBRlNBLG9CQUZJRCxPQUFFYiw2QkFLZDtrREFIUDs7Ozs7Ozs7bURBSVM7b0VBTk5QLFFBQWdCb0IsRUFBRWI7a0RBTVosY0FDT2M7b0RBQ1o7a0NBRFlBLG9CQURaQywrQkFFdUM7a0RBRmxDOzJFQUVtQzttQkFmaERKLGtDQWdCUTtrQ0FmVjs7O2tDQUlGOztnREFhT0s7b0NBQ0g7O3NDQUMwQjtxRUFGdkJBO3FDQUVBO2lEQXJCS1A7b0NBcUJMOzBEQUFtRDtrQ0FmMUQ7Ozs7Ozs7O29DQVljOzs7Ozs7Ozs7O2lEQUc2QzsrQkE1QjNEOzs7O2lDQUFnQjtxREFEU0g7Z0NBQ1Q7NkRBNEIyQzs4QkE5QmxEOzs7OEJBQ1Q7Ozs4QkFEUyx5QkFDVDs7Ozs7OENEN0ZIOzs7Ozs7O2VDQUE7Ozs7Ozs7OzhCQ2tCUzs7OzsrQ0RsQlQiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mZnNldFxudmFyIGNhbWxfaW50NjRfb2Zmc2V0ID0gTWF0aC5wb3coMiwgLTI0KTtcblxuLy9Qcm92aWRlczogTWxJbnQ2NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZmZzZXQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIE1sSW50NjQgKGxvLG1pLGhpKSB7XG4gIHRoaXMubG8gPSBsbyAmIDB4ZmZmZmZmO1xuICB0aGlzLm1pID0gbWkgJiAweGZmZmZmZjtcbiAgdGhpcy5oaSA9IGhpICYgMHhmZmZmO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBcIl9qXCJcbk1sSW50NjQucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvLHRoaXMubWksdGhpcy5oaSk7XG59XG5cbk1sSW50NjQucHJvdG90eXBlLnVjb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgaWYgKHRoaXMuaGkgPiB4LmhpKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMuaGkgPCB4LmhpKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLm1pID4geC5taSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLm1pIDwgeC5taSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5sbyA+IHgubG8pIHJldHVybiAxO1xuICBpZiAodGhpcy5sbyA8IHgubG8pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGhpID0gdGhpcy5oaSA8PCAxNjtcbiAgdmFyIHhoaSA9IHguaGkgPDwgMTY7XG4gIGlmIChoaSA+IHhoaSkgcmV0dXJuIDE7XG4gIGlmIChoaSA8IHhoaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+IHgubWkpIHJldHVybiAxO1xuICBpZiAodGhpcy5taSA8IHgubWkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubG8gPiB4LmxvKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubG8gPCB4LmxvKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbG8gPSAtIHRoaXMubG87XG4gIHZhciBtaSA9IC0gdGhpcy5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IC0gdGhpcy5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gKyB4LmxvO1xuICB2YXIgbWkgPSB0aGlzLm1pICsgeC5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IHRoaXMuaGkgKyB4LmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyAtIHgubG87XG4gIHZhciBtaSA9IHRoaXMubWkgLSB4Lm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gdGhpcy5oaSAtIHguaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvICogeC5sbztcbiAgdmFyIG1pID0gKChsbyAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5taSAqIHgubG8gKyB0aGlzLmxvICogeC5taTtcbiAgdmFyIGhpID0gKChtaSAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5oaSAqIHgubG8gKyB0aGlzLm1pICogeC5taSArIHRoaXMubG8gKiB4LmhpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAodGhpcy5sb3x0aGlzLm1pfHRoaXMuaGkpID09IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc05lZyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICh0aGlzLmhpIDw8IDE2KSA8IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyAmIHgubG8sIHRoaXMubWkgJiB4Lm1pLCB0aGlzLmhpICYgeC5oaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvfHgubG8sIHRoaXMubWl8eC5taSwgdGhpcy5oaXx4LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvXngubG8sIHRoaXMubWleeC5taSwgdGhpcy5oaV54LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X2xlZnQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgaWYgKHMgPCAyNCkge1xuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAodGhpcy5sbyA8PCBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgcykgfCAodGhpcy5sbyA+PiAoMjQgLSBzKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5oaSA8PCBzKSB8ICh0aGlzLm1pID4+ICgyNCAtIHMpKSk7XG4gIH1cbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvIDw8IChzIC0gMjQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgKHMgLSAyNCkpIHwgKHRoaXMubG8gPj4gKDQ4IC0gcykpKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KDAsIDAsIHRoaXMubG8gPDwgKHMgLSA0OCkpXG59XG5NbEludDY0LnByb3RvdHlwZS5zaGlmdF9yaWdodF91bnNpZ25lZCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKHRoaXMuaGkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPj4gcykpO1xuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5taSA+PiAocyAtIDI0KSkgfCAodGhpcy5oaSA8PCAoNDggLSBzKSksXG4gICAgICAodGhpcy5oaSA+PiAocyAtIDI0KSksXG4gICAgICAwKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0ICh0aGlzLmhpID4+IChzIC0gNDgpLCAwLCAwKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X3JpZ2h0ID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIHZhciBoID0gKHRoaXMuaGkgPDwgMTYpID4+IDE2O1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKGggPDwgKDI0IC0gcykpLFxuICAgICAgKCh0aGlzLmhpIDw8IDE2KSA+PiBzKSA+Pj4gMTYpO1xuICB2YXIgc2lnbiA9ICh0aGlzLmhpIDw8IDE2KSA+PiAzMTtcbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubWkgPj4gKHMgLSAyNCkpIHwgKHRoaXMuaGkgPDwgKDQ4IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMjQpID4+IDE2LFxuICAgICAgc2lnbiAmIDB4ZmZmZik7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAoKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMzIpLCBzaWduLCBzaWduKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxzbDEgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuaGkgPSAodGhpcy5oaSA8PCAxKSB8ICh0aGlzLm1pID4+IDIzKTtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA8PCAxKSB8ICh0aGlzLmxvID4+IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5sbyA9ICh0aGlzLmxvIDw8IDEpICYgMHhmZmZmZmY7XG59XG5NbEludDY0LnByb3RvdHlwZS5sc3IxID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmxvID0gKCh0aGlzLmxvID4+PiAxKSB8ICh0aGlzLm1pIDw8IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA+Pj4gMSkgfCAodGhpcy5oaSA8PCAyMykpICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSB0aGlzLmhpID4+PiAxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudWRpdm1vZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBvZmZzZXQgPSAwO1xuICB2YXIgbW9kdWx1cyA9IHRoaXMuY29weSgpO1xuICB2YXIgZGl2aXNvciA9IHguY29weSgpO1xuICB2YXIgcXVvdGllbnQgPSBuZXcgTWxJbnQ2NCgwLDAsMCk7XG4gIHdoaWxlIChtb2R1bHVzLnVjb21wYXJlKGRpdmlzb3IpID4gMCkge1xuICAgIG9mZnNldCsrO1xuICAgIGRpdmlzb3IubHNsMSgpO1xuICB9XG4gIHdoaWxlIChvZmZzZXQgPj0gMCkge1xuICAgIG9mZnNldCAtLTtcbiAgICBxdW90aWVudC5sc2wxKCk7XG4gICAgaWYgKG1vZHVsdXMudWNvbXBhcmUoZGl2aXNvcikgPj0gMCkge1xuICAgICAgcXVvdGllbnQubG8gKys7XG4gICAgICBtb2R1bHVzID0gbW9kdWx1cy5zdWIoZGl2aXNvcik7XG4gICAgfVxuICAgIGRpdmlzb3IubHNyMSgpO1xuICB9XG4gIHJldHVybiB7IHF1b3RpZW50IDogcXVvdGllbnQsIG1vZHVsdXMgOiBtb2R1bHVzIH07XG59XG5NbEludDY0LnByb3RvdHlwZS5kaXYgPSBmdW5jdGlvbiAoeSlcbntcbiAgdmFyIHggPSB0aGlzO1xuICBpZiAoeS5pc1plcm8oKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgdmFyIHNpZ24gPSB4LmhpIF4geS5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciBxID0geC51ZGl2bW9kKHkpLnF1b3RpZW50O1xuICBpZiAoc2lnbiAmIDB4ODAwMCkgcSA9IHEubmVnKCk7XG4gIHJldHVybiBxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubW9kID0gZnVuY3Rpb24gKHkpXG57XG4gIHZhciB4ID0gdGhpcztcbiAgaWYgKHkuaXNaZXJvKCkpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHZhciBzaWduID0geC5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciByID0geC51ZGl2bW9kKHkpLm1vZHVsdXM7XG4gIGlmIChzaWduICYgMHg4MDAwKSByID0gci5uZWcoKTtcbiAgcmV0dXJuIHI7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0ludCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubG8gfCAodGhpcy5taSA8PCAyNCk7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0Zsb2F0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKCh0aGlzLmhpIDw8IDE2KSAqIE1hdGgucG93KDIsIDMyKSArIHRoaXMubWkgKiBNYXRoLnBvdygyLCAyNCkpICsgdGhpcy5sbztcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBbdGhpcy5oaSA+PiA4LFxuICAgICAgICAgIHRoaXMuaGkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgPj4gMTYsXG4gICAgICAgICAgKHRoaXMubWkgPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gPj4gMTYsXG4gICAgICAgICAgKHRoaXMubG8gPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gJiAweGZmXTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxvMzIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxvIHwgKCh0aGlzLm1pICYgMHhmZikgPDwgMjQpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuaGkzMiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICgodGhpcy5taSA+Pj4gOCkgJiAweGZmZmYpIHwgKHRoaXMuaGkgPDwgMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VsdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bHQoeCx5KSB7IHJldHVybiB4LnVjb21wYXJlKHkpIDwgMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NvbXBhcmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY29tcGFyZSh4LHksIHRvdGFsKSB7IHJldHVybiB4LmNvbXBhcmUoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X25lZyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9uZWcgKHgpIHsgcmV0dXJuIHgubmVnKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FkZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hZGQgKHgsIHkpIHsgcmV0dXJuIHguYWRkKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zdWIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc3ViICh4LCB5KSB7IHJldHVybiB4LnN1Yih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbXVsIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tdWwoeCx5KSB7IHJldHVybiB4Lm11bCh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfemVybyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9pc196ZXJvKHgpIHsgcmV0dXJuICt4LmlzWmVybygpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaXNfbmVnYXRpdmUoeCkgeyByZXR1cm4gK3guaXNOZWcoKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FuZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hbmQgKHgsIHkpIHsgcmV0dXJuIHguYW5kKHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb3IgKHgsIHkpIHsgcmV0dXJuIHgub3IoeSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF94b3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfeG9yICh4LCB5KSB7IHJldHVybiB4Lnhvcih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfbGVmdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0ICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X2xlZnQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X3JpZ2h0X3Vuc2lnbmVkKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCAoeCwgcykgeyByZXR1cm4geC5zaGlmdF9yaWdodChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZGl2IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2RpdiAoeCwgeSkgeyByZXR1cm4geC5kaXYoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X21vZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tb2QgKHgsIHkpIHsgcmV0dXJuIHgubW9kKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9pbnQzMiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoeCAmIDB4ZmZmZmZmLCAoeCA+PiAyNCkgJiAweGZmZmZmZiwgKHggPj4gMzEpICYgMHhmZmZmKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2ludDMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2ludDMyICh4KSB7IHJldHVybiB4LnRvSW50KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2Zsb2F0ICh4KSB7IHJldHVybiB4LnRvRmxvYXQgKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9mbG9hdCAoeCkge1xuICBpZiAoeCA8IDApIHggPSBNYXRoLmNlaWwoeCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChcbiAgICB4ICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQpICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQgKiBjYW1sX2ludDY0X29mZnNldCkgJiAweGZmZmYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Zvcm1hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2ludDMyLCBjYW1sX2ludDY0X3RvX2ludDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2lzX3plcm8sIGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mb3JtYXQgKGZtdCwgeCkge1xuICB2YXIgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIGlmIChmLnNpZ25lZGNvbnYgJiYgY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSh4KSkge1xuICAgIGYuc2lnbiA9IC0xOyB4ID0gY2FtbF9pbnQ2NF9uZWcoeCk7XG4gIH1cbiAgdmFyIGJ1ZmZlciA9IFwiXCI7XG4gIHZhciB3YmFzZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoZi5iYXNlKTtcbiAgdmFyIGN2dGJsID0gXCIwMTIzNDU2Nzg5YWJjZGVmXCI7XG4gIGRvIHtcbiAgICB2YXIgcCA9IHgudWRpdm1vZCh3YmFzZSk7XG4gICAgeCA9IHAucXVvdGllbnQ7XG4gICAgYnVmZmVyID0gY3Z0YmwuY2hhckF0KGNhbWxfaW50NjRfdG9faW50MzIocC5tb2R1bHVzKSkgKyBidWZmZXI7XG4gIH0gd2hpbGUgKCEgY2FtbF9pbnQ2NF9pc196ZXJvKHgpKTtcbiAgaWYgKGYucHJlYyA+PSAwKSB7XG4gICAgZi5maWxsZXIgPSAnICc7XG4gICAgdmFyIG4gPSBmLnByZWMgLSBidWZmZXIubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgYnVmZmVyID0gY2FtbF9zdHJfcmVwZWF0IChuLCAnMCcpICsgYnVmZmVyO1xuICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIGJ1ZmZlcik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UsIGNhbWxfZmFpbHdpdGgsIGNhbWxfcGFyc2VfZGlnaXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIsIGNhbWxfaW50NjRfdWx0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2FkZCwgY2FtbF9pbnQ2NF9tdWwsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9zdHJpbmcocykge1xuICB2YXIgciA9IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocyk7XG4gIHZhciBpID0gclswXSwgc2lnbiA9IHJbMV0sIGJhc2UgPSByWzJdO1xuICB2YXIgYmFzZTY0ID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihiYXNlKTtcbiAgdmFyIHRocmVzaG9sZCA9XG4gICAgICBuZXcgTWxJbnQ2NCgweGZmZmZmZiwgMHhmZmZmZmZmLCAweGZmZmYpLnVkaXZtb2QoYmFzZTY0KS5xdW90aWVudDtcbiAgdmFyIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgZm9yICg7Oykge1xuICAgIGkrKztcbiAgICBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgICBpZiAoYyA9PSA5NSkgY29udGludWU7XG4gICAgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gICAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgYnJlYWs7XG4gICAgLyogRGV0ZWN0IG92ZXJmbG93IGluIG11bHRpcGxpY2F0aW9uIGJhc2UgKiByZXMgKi9cbiAgICBpZiAoY2FtbF9pbnQ2NF91bHQodGhyZXNob2xkLCByZXMpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgICBkID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgICByZXMgPSBjYW1sX2ludDY0X2FkZChjYW1sX2ludDY0X211bChiYXNlNjQsIHJlcyksIGQpO1xuICAgIC8qIERldGVjdCBvdmVyZmxvdyBpbiBhZGRpdGlvbiAoYmFzZSAqIHJlcykgKyBkICovXG4gICAgaWYgKGNhbWxfaW50NjRfdWx0KHJlcywgZCkpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChiYXNlID09IDEwICYmIGNhbWxfaW50NjRfdWx0KG5ldyBNbEludDY0KDAsIDAsIDB4ODAwMCksIHJlcykpXG4gICAgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChzaWduIDwgMCkgcmVzID0gY2FtbF9pbnQ2NF9uZWcocmVzKTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKGxvLCBtaSwgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSlcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsbywgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgIGxvICYgMHhmZmZmZmYsXG4gICAgKChsbyA+Pj4gMjQpICYgMHhmZikgfCAoKGhpICYgMHhmZmZmKSA8PCA4KSxcbiAgICAoaGkgPj4+IDE2KSAmIDB4ZmZmZik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2xvMzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbG8zMih2KXsgcmV0dXJuIHYubG8zMigpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9oaTMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2hpMzIodil7IHJldHVybiB2LmhpMzIoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoYVs3XSA8PCAwIHwgKGFbNl0gPDwgOCkgfCAoYVs1XSA8PCAxNiksXG4gICAgICAgICAgICAgICAgICAgICBhWzRdIDw8IDAgfCAoYVszXSA8PCA4KSB8IChhWzJdIDw8IDE2KSxcbiAgICAgICAgICAgICAgICAgICAgIGFbMV0gPDwgMCB8IChhWzBdIDw8IDgpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9fYnl0ZXMoeCkgeyByZXR1cm4geC50b0FycmF5KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2hhc2ggY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaGFzaCh2KXtcbiAgcmV0dXJuICh2LmxvMzIoKSkgXiAodi5oaTMyKCkpXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBBbiBPQ2FtbCBzdHJpbmcgaXMgYW4gb2JqZWN0IHdpdGggdGhyZWUgZmllbGRzOlxuLy8gLSB0YWcgJ3QnXG4vLyAtIGxlbmd0aCAnbCdcbi8vIC0gY29udGVudHMgJ2MnXG4vL1xuLy8gVGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgY2FuIGJlIGVpdGhlciBhIEphdmFTY3JpcHQgYXJyYXkgb3Jcbi8vIGEgSmF2YVNjcmlwdCBzdHJpbmcuIFRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcgY2FuIGJlIGxlc3MgdGhhbiB0aGVcbi8vIGxlbmd0aCBvZiB0aGUgT0NhbWwgc3RyaW5nLiBJbiB0aGlzIGNhc2UsIHJlbWFpbmluZyBieXRlcyBhcmVcbi8vIGFzc3VtZWQgdG8gYmUgemVyb2VzLiBBcnJheXMgYXJlIG11dGFibGUgYnV0IGNvbnN1bWVzIG1vcmUgbWVtb3J5XG4vLyB0aGFuIHN0cmluZ3MuIEEgY29tbW9uIHBhdHRlcm4gaXMgdG8gc3RhcnQgZnJvbSBhbiBlbXB0eSBzdHJpbmcgYW5kXG4vLyBwcm9ncmVzc2l2ZWx5IGZpbGwgaXQgZnJvbSB0aGUgc3RhcnQuIFBhcnRpYWwgc3RyaW5ncyBtYWtlcyBpdFxuLy8gcG9zc2libGUgdG8gaW1wbGVtZW50IHRoaXMgZWZmaWNpZW50bHkuXG4vL1xuLy8gV2hlbiBjb252ZXJ0aW5nIHRvIGFuZCBmcm9tIFVURi0xNiwgd2Uga2VlcCB0cmFjayBvZiB3aGV0aGVyIHRoZVxuLy8gc3RyaW5nIGlzIGNvbXBvc2VkIG9ubHkgb2YgQVNDSUkgY2hhcmFjdGVycyAoaW4gd2hpY2ggY2FzZSwgbm9cbi8vIGNvbnZlcnNpb24gbmVlZHMgdG8gYmUgcGVyZm9ybWVkKSBvciBub3QuXG4vL1xuLy8gVGhlIHN0cmluZyB0YWcgY2FuIHRodXMgdGFrZSB0aGUgZm9sbG93aW5nIHZhbHVlczpcbi8vICAgZnVsbCBzdHJpbmcgICAgIEJZVEUgfCBVTktOT1dOOiAgICAgIDBcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBBU0NJSTogICAgICAgIDlcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBOT1RfQVNDSUk6ICAgIDhcbi8vICAgc3RyaW5nIHByZWZpeCAgIFBBUlRJQUw6ICAgICAgICAgICAgIDJcbi8vICAgYXJyYXkgICAgICAgICAgIEFSUkFZOiAgICAgICAgICAgICAgIDRcbi8vXG4vLyBPbmUgY2FuIHVzZSBiaXQgbWFza2luZyB0byBkaXNjcmltaW5hdGUgdGhlc2UgZGlmZmVyZW50IGNhc2VzOlxuLy8gICBrbm93bl9lbmNvZGluZyh4KSA9IHgmOFxuLy8gICBpc19hc2NpaSh4KSA9ICAgICAgIHgmMVxuLy8gICBraW5kKHgpID0gICAgICAgICAgIHgmNlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfc3RyX3JlcGVhdChuLCBzKSB7XG4gIGlmKG4gPT0gMCkgcmV0dXJuIFwiXCI7XG4gIGlmIChzLnJlcGVhdCkge3JldHVybiBzLnJlcGVhdChuKTt9IC8vIEVDTUFzY3JpcHQgNiBhbmQgRmlyZWZveCAyNCtcbiAgdmFyIHIgPSBcIlwiLCBsID0gMDtcbiAgZm9yKDs7KSB7XG4gICAgaWYgKG4gJiAxKSByICs9IHM7XG4gICAgbiA+Pj0gMTtcbiAgICBpZiAobiA9PSAwKSByZXR1cm4gcjtcbiAgICBzICs9IHM7XG4gICAgbCsrO1xuICAgIGlmIChsID09IDkpIHtcbiAgICAgIHMuc2xpY2UoMCwxKTsgLy8gZmxhdHRlbiB0aGUgc3RyaW5nXG4gICAgICAvLyB0aGVuLCB0aGUgZmxhdHRlbmluZyBvZiB0aGUgd2hvbGUgc3RyaW5nIHdpbGwgYmUgZmFzdGVyLFxuICAgICAgLy8gYXMgaXQgd2lsbCBiZSBjb21wb3NlZCBvZiBsYXJnZXIgcGllY2VzXG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuLy9XZWFrZGVmXG4vLyBQcmUgRUNNQVNjcmlwdCA1LCBbYXBwbHldIHdvdWxkIG5vdCBzdXBwb3J0IGFycmF5LWxpa2Ugb2JqZWN0LlxuLy8gSW4gc3VjaCBzZXR1cCwgVHlwZWRfYXJyYXkgd291bGQgYmUgaW1wbGVtZW50ZWQgYXMgcG9seWZpbGwsIGFuZCBbZi5hcHBseV0gd291bGRcbi8vIGZhaWwgaGVyZS4gTWFyayB0aGUgcHJpbWl0aXZlIGFzIFdlYWtkZWYsIHNvIHRoYXQgcGVvcGxlIGNhbiBvdmVycmlkZSBpdCBlYXNpbHkuXG5mdW5jdGlvbiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMgKGEsIGksIGxlbikge1xuICB2YXIgZiA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gIGlmIChpID09IDAgJiYgbGVuIDw9IDQwOTYgJiYgbGVuID09IGEubGVuZ3RoKSByZXR1cm4gZi5hcHBseSAobnVsbCwgYSk7XG4gIHZhciBzID0gXCJcIjtcbiAgZm9yICg7IDAgPCBsZW47IGkgKz0gMTAyNCxsZW4tPTEwMjQpXG4gICAgcyArPSBmLmFwcGx5IChudWxsLCBhLnNsaWNlKGksaSArIE1hdGgubWluKGxlbiwgMTAyNCkpKTtcbiAgcmV0dXJuIHM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdXRmOF9vZl91dGYxNlxuZnVuY3Rpb24gY2FtbF91dGY4X29mX3V0ZjE2KHMpIHtcbiAgZm9yICh2YXIgYiA9IFwiXCIsIHQgPSBiLCBjLCBkLCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYyA9IHMuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoYyA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYyA9IHMuY2hhckNvZGVBdChqKSkgPCAweDgwOyBqKyspO1xuICAgICAgaWYgKGogLSBpID4gNTEyKSB7IHQuc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiOyBiICs9IHMuc2xpY2UoaSwgaikgfVxuICAgICAgZWxzZSB0ICs9IHMuc2xpY2UoaSwgaik7XG4gICAgICBpZiAoaiA9PSBsKSBicmVhaztcbiAgICAgIGkgPSBqO1xuICAgIH1cbiAgICBpZiAoYyA8IDB4ODAwKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhjMCB8IChjID4+IDYpKTtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfSBlbHNlIGlmIChjIDwgMHhkODAwIHx8IGMgPj0gMHhkZmZmKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhlMCB8IChjID4+IDEyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDYpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8IChjICYgMHgzZikpO1xuICAgIH0gZWxzZSBpZiAoYyA+PSAweGRiZmYgfHwgaSArIDEgPT0gbCB8fFxuICAgICAgICAgICAgICAgKGQgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBkID4gMHhkZmZmKSB7XG4gICAgICAvLyBVbm1hdGNoZWQgc3Vycm9nYXRlIHBhaXIsIHJlcGxhY2VkIGJ5IFxcdWZmZmQgKHJlcGxhY2VtZW50IGNoYXJhY3RlcilcbiAgICAgIHQgKz0gXCJcXHhlZlxceGJmXFx4YmRcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrO1xuICAgICAgYyA9IChjIDw8IDEwKSArIGQgLSAweDM1ZmRjMDA7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhmMCB8IChjID4+IDE4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDEyKSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gNikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfVxuICAgIGlmICh0Lmxlbmd0aCA+IDEwMjQpIHt0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjt9XG4gIH1cbiAgcmV0dXJuIGIrdDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBjYW1sX3V0ZjE2X29mX3V0Zjgocykge1xuICBmb3IgKHZhciBiID0gXCJcIiwgdCA9IFwiXCIsIGMsIGMxLCBjMiwgdiwgaSA9IDAsIGwgPSBzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGMxID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChjMSA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYzEgPSBzLmNoYXJDb2RlQXQoaikpIDwgMHg4MDsgaisrKTtcbiAgICAgIGlmIChqIC0gaSA+IDUxMikgeyB0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjsgYiArPSBzLnNsaWNlKGksIGopIH1cbiAgICAgIGVsc2UgdCArPSBzLnNsaWNlKGksIGopO1xuICAgICAgaWYgKGogPT0gbCkgYnJlYWs7XG4gICAgICBpID0gajtcbiAgICB9XG4gICAgdiA9IDE7XG4gICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgIGMgPSBjMiArIChjMSA8PCA2KTtcbiAgICAgIGlmIChjMSA8IDB4ZTApIHtcbiAgICAgICAgdiA9IGMgLSAweDMwODA7XG4gICAgICAgIGlmICh2IDwgMHg4MCkgdiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ID0gMjtcbiAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgICAgICBjID0gYzIgKyAoYyA8PCA2KTtcbiAgICAgICAgICBpZiAoYzEgPCAweGYwKSB7XG4gICAgICAgICAgICB2ID0gYyAtIDB4ZTIwODA7XG4gICAgICAgICAgICBpZiAoKHYgPCAweDgwMCkgfHwgKCh2ID49IDB4ZDdmZikgJiYgKHYgPCAweGUwMDApKSkgdiA9IDI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHYgPSAzO1xuICAgICAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkgJiZcbiAgICAgICAgICAgICAgICAoYzEgPCAweGY1KSkge1xuICAgICAgICAgICAgICB2ID0gYzIgLSAweDNjODIwODAgKyAoYyA8PCA2KTtcbiAgICAgICAgICAgICAgaWYgKHYgPCAweDEwMDAwIHx8IHYgPiAweDEwZmZmZikgdiA9IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2IDwgNCkgeyAvLyBJbnZhbGlkIHNlcXVlbmNlXG4gICAgICBpIC09IHY7XG4gICAgICB0ICs9IFwiXFx1ZmZmZFwiO1xuICAgIH0gZWxzZSBpZiAodiA+IDB4ZmZmZilcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGQ3YzAgKyAodiA+PiAxMCksIDB4ZGMwMCArICh2ICYgMHgzRkYpKVxuICAgIGVsc2VcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh2KTtcbiAgICBpZiAodC5sZW5ndGggPiAxMDI0KSB7dC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7fVxuICB9XG4gIHJldHVybiBiK3Q7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29faXNfYXNjaWlcbmZ1bmN0aW9uIGpzb29faXNfYXNjaWkgKHMpIHtcbiAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZXRzIGJldHRlciBhdCBhcm91bmQgdGhpcyBwb2ludCBmb3IgYWxsIGJyb3dzZXJzXG4gIGlmIChzLmxlbmd0aCA8IDI0KSB7XG4gICAgLy8gU3BpZGVybW9ua2V5IGdldHMgbXVjaCBzbG93ZXIgd2hlbiBzLmxlbmd0aCA+PSAyNCAob24gNjQgYml0IGFyY2hzKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykgaWYgKHMuY2hhckNvZGVBdChpKSA+IDEyNykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2VcbiAgICByZXR1cm4gIS9bXlxceDAwLVxceDdmXS8udGVzdChzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSkge1xuICBzd2l0Y2ggKHMudCAmIDYpIHtcbiAgZGVmYXVsdDogLyogUEFSVElBTCAqL1xuICAgIGlmIChpID49IHMuYy5sZW5ndGgpIHJldHVybiAwO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYy5jaGFyQ29kZUF0KGkpO1xuICBjYXNlIDQ6IC8qIEFSUkFZICovXG4gICAgcmV0dXJuIHMuY1tpXVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgLy8gVGhlIE9DYW1sIGNvbXBpbGVyIHVzZXMgQ2hhci51bnNhZmVfY2hyIG9uIGludGVnZXJzIGxhcmdlciB0aGFuIDI1NSFcbiAgYyAmPSAweGZmO1xuICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIHtcbiAgICBpZiAoaSA9PSBzLmMubGVuZ3RoKSB7XG4gICAgICBzLmMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSAoYyk7XG4gICAgICBpZiAoaSArIDEgPT0gcy5sKSBzLnQgPSAwOyAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkgKHMpO1xuICB9XG4gIHMuY1tpXSA9IGM7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQgKHMsIGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQxNihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gMSkgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKTtcbiAgcmV0dXJuIChiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0MTYocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDEpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMSk7XG4gIHJldHVybiAoYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSAzKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMiksXG4gICAgICBiNCA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAzKTtcbiAgcmV0dXJuIChiNCA8PCAyNCB8IGIzIDw8IDE2IHwgYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0LCBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAzKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAyKSxcbiAgICAgIGI0ID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMyk7XG4gIHJldHVybiAoYjQgPDwgMjQgfCBiMyA8PCAxNiB8IGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQ2NChzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gNykgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIGopO1xuICB9XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0NjQocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDcpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgaik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0IChzLCBpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQgKHMsIGksIGMpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQxNihzLGksaTE2KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMSkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjIgPSAweEZGICYgaTE2ID4+IDgsXG4gICAgICBiMSA9IDB4RkYgJiBpMTY7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDAsIGIxKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMSwgYjIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQxNihzLGksaTE2KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDE2XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQxNlxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MTYocyxpLGkxNil7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDE2KHMsaSxpMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMil7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDMpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGI0ID0gMHhGRiAmIGkzMiA+PiAyNCxcbiAgICAgIGIzID0gMHhGRiAmIGkzMiA+PiAxNixcbiAgICAgIGIyID0gMHhGRiAmIGkzMiA+PiA4LFxuICAgICAgYjEgPSAweEZGICYgaTMyO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAwLCBiMSk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDEsIGIyKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMiwgYjMpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAzLCBiNCk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDMyKHMsaSxpMzIpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0MzJcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQzMihzLGksaTMyKXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQ2NChzLGksaTY0KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gNykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoaTY0KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKykge1xuICAgIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDcgLSBqLCBhW2pdKTtcbiAgfVxuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQ2NChzLGksaTY0KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDY0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQ2NFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0NjQocyxpLGk2NCl7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDY0KHMsaSxpNjQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldCAocywgaSwgYykge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmOF9vZl91dGYxNiwgTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyAocykge1xuICB2YXIgdGFnID0gOSAvKiBCWVRFUyB8IEFTQ0lJICovO1xuICBpZiAoIWpzb29faXNfYXNjaWkocykpXG4gICAgdGFnID0gOCAvKiBCWVRFUyB8IE5PVF9BU0NJSSAqLywgcyA9IGNhbWxfdXRmOF9vZl91dGYxNihzKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKHRhZywgcywgcy5sZW5ndGgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IE1sQnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGpzb29faXNfYXNjaWksIGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24gTWxCeXRlcyAodGFnLCBjb250ZW50cywgbGVuZ3RoKSB7XG4gIHRoaXMudD10YWc7IHRoaXMuYz1jb250ZW50czsgdGhpcy5sPWxlbmd0aDtcbn1cbk1sQnl0ZXMucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgc3dpdGNoICh0aGlzLnQpIHtcbiAgY2FzZSA5OiAvKkJZVEVTIHwgQVNDSUkqL1xuICAgIHJldHVybiB0aGlzLmM7XG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyh0aGlzKTtcbiAgY2FzZSAwOiAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICBpZiAoanNvb19pc19hc2NpaSh0aGlzLmMpKSB7XG4gICAgICB0aGlzLnQgPSA5OyAvKkJZVEVTIHwgQVNDSUkqL1xuICAgICAgcmV0dXJuIHRoaXMuYztcbiAgICB9XG4gICAgdGhpcy50ID0gODsgLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gIGNhc2UgODogLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gICAgcmV0dXJuIHRoaXMuYztcbiAgfVxufTtcbk1sQnl0ZXMucHJvdG90eXBlLnRvVXRmMTYgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIHIgPSB0aGlzLnRvU3RyaW5nKCk7XG4gIGlmKHRoaXMudCA9PSA5KSByZXR1cm4gclxuICByZXR1cm4gY2FtbF91dGYxNl9vZl91dGY4KHIpO1xufVxuTWxCeXRlcy5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIGNvbnRlbnQgPSB0aGlzLnQgPT0gNCA/IHRoaXMuYy5zbGljZSgpIDogdGhpcy5jO1xuICByZXR1cm4gbmV3IE1sQnl0ZXModGhpcy50LGNvbnRlbnQsdGhpcy5sKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMgKHMpIHtcbiAgLyogQXNzdW1lcyBub3QgQllURVMgKi9cbiAgaWYgKHMudCA9PSAyIC8qIFBBUlRJQUwgKi8pXG4gICAgcy5jICs9IGNhbWxfc3RyX3JlcGVhdChzLmwgLSBzLmMubGVuZ3RoLCAnXFwwJylcbiAgZWxzZVxuICAgIHMuYyA9IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyAocy5jLCAwLCBzLmMubGVuZ3RoKTtcbiAgcy50ID0gMDsgLypCWVRFUyB8IFVOS09XTiovXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IChzKSB7XG4gIC8qIEFzc3VtZXMgbm90IEFSUkFZICovXG4gIGlmKGdsb2JhbFRoaXMuVWludDhBcnJheSkge1xuICAgIHZhciBhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheShzLmwpO1xuICB9IGVsc2Uge1xuICAgIHZhciBhID0gbmV3IEFycmF5KHMubCk7XG4gIH1cbiAgdmFyIGIgPSBzLmMsIGwgPSBiLmxlbmd0aCwgaSA9IDA7XG4gIGZvciAoOyBpIDwgbDsgaSsrKSBhW2ldID0gYi5jaGFyQ29kZUF0KGkpO1xuICBmb3IgKGwgPSBzLmw7IGkgPCBsOyBpKyspIGFbaV0gPSAwO1xuICBzLmMgPSBhO1xuICBzLnQgPSA0OyAvKiBBUlJBWSAqL1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9vZl9ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfb2ZfYnl0ZXMgKHMpIHtcbiAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkocyk7XG4gIHJldHVybiBzLmM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfb2Zfc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG5mdW5jdGlvbiBjYW1sX2FycmF5X29mX3N0cmluZyAocykge1xuICB2YXIgbCA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIHZhciBpID0gMDtcbiAgZm9yICg7IGkgPCBsOyBpKyspIGFbaV0gPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSk7XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9jcmVhdGVfc3RyaW5nKGxlbikge1xuICBpZihsZW4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHJpbmcuY3JlYXRlXCIpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXMobGVuPzI6OSxcIlwiLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX3N0cmluZyhsZW4pIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyaW5nLmNyZWF0ZVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJ5dGVzLmNyZWF0ZVwiKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKGxlbj8yOjksXCJcIixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9hcnJheSAoYSkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoYSwwLGEubGVuZ3RoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfYXJyYXkgKGEpIHtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKDQsYSxhLmxlbmd0aCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfY29tcGFyZSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2NvbXBhcmUoczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8IHMyLmMpPy0xOihzMS5jID4gczIuYyk/MTowO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19lcXVhbChzMSwgczIpIHtcbiAgaWYoczEgPT09IHMyKSByZXR1cm4gMTtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jID09IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfZXF1YWxcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX25vdGVxdWFsKHMxLCBzMikgeyByZXR1cm4gMS1jYW1sX3N0cmluZ19lcXVhbChzMSwgczIpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19lcXVhbFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ub3RlcXVhbChzMSwgczIpIHsgcmV0dXJuIDEtY2FtbF9ieXRlc19lcXVhbChzMSwgczIpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPD0gczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWxcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dyZWF0ZXJlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMixzMSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzZXF1YWxcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzZXF1YWwoczIsczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ncmVhdGVydGhhblxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfbGVzc3RoYW5cbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczIsIHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ncmVhdGVydGhhblxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzdGhhblxuZnVuY3Rpb24gY2FtbF9ieXRlc19ncmVhdGVydGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczIsIHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maWxsX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cl9yZXBlYXQsIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9maWxsX2J5dGVzKHMsIGksIGwsIGMpIHtcbiAgaWYgKGwgPiAwKSB7XG4gICAgaWYgKGkgPT0gMCAmJiAobCA+PSBzLmwgfHwgKHMudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgbCA+PSBzLmMubGVuZ3RoKSkpIHtcbiAgICAgIGlmIChjID09IDApIHtcbiAgICAgICAgcy5jID0gXCJcIjtcbiAgICAgICAgcy50ID0gMjsgLyogUEFSVElBTCAqL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcy5jID0gY2FtbF9zdHJfcmVwZWF0IChsLCBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgICAgICAgcy50ID0gKGwgPT0gcy5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMpO1xuICAgICAgZm9yIChsICs9IGk7IGkgPCBsOyBpKyspIHMuY1tpXSA9IGM7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbGxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2ZpbGxfYnl0ZXNcbnZhciBjYW1sX2ZpbGxfc3RyaW5nID0gY2FtbF9maWxsX2J5dGVzXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzLCBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmxpdF9ieXRlcyhzMSwgaTEsIHMyLCBpMiwgbGVuKSB7XG4gIGlmIChsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIGlmICgoaTIgPT0gMCkgJiZcbiAgICAgIChsZW4gPj0gczIubCB8fCAoczIudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgbGVuID49IHMyLmMubGVuZ3RoKSkpIHtcbiAgICBzMi5jID0gKHMxLnQgPT0gNCAvKiBBUlJBWSAqLyk/XG4gICAgICBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoczEuYywgaTEsIGxlbik6XG4gICAgICAoaTEgPT0gMCAmJiBzMS5jLmxlbmd0aCA9PSBsZW4pP3MxLmM6czEuYy5zdWJzdHIoaTEsIGxlbik7XG4gICAgczIudCA9IChzMi5jLmxlbmd0aCA9PSBzMi5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gIH0gZWxzZSBpZiAoczIudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgaTIgPT0gczIuYy5sZW5ndGgpIHtcbiAgICBzMi5jICs9IChzMS50ID09IDQgLyogQVJSQVkgKi8pP1xuICAgICAgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKHMxLmMsIGkxLCBsZW4pOlxuICAgICAgKGkxID09IDAgJiYgczEuYy5sZW5ndGggPT0gbGVuKT9zMS5jOnMxLmMuc3Vic3RyKGkxLCBsZW4pO1xuICAgIHMyLnQgPSAoczIuYy5sZW5ndGggPT0gczIubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICB9IGVsc2Uge1xuICAgIGlmIChzMi50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzMik7XG4gICAgdmFyIGMxID0gczEuYywgYzIgPSBzMi5jO1xuICAgIGlmIChzMS50ID09IDQgLyogQVJSQVkgKi8pIHtcbiAgICAgIGlmIChpMiA8PSBpMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBjMiBbaTIgKyBpXSA9IGMxIFtpMSArIGldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSBjMiBbaTIgKyBpXSA9IGMxIFtpMSArIGldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbCA9IE1hdGgubWluIChsZW4sIGMxLmxlbmd0aCAtIGkxKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSBjMiBbaTIgKyBpXSA9IGMxLmNoYXJDb2RlQXQoaTEgKyBpKTtcbiAgICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIGMyIFtpMiArIGldID0gMDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYmxpdF9zdHJpbmcoYSxiLGMsZCxlKSB7XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX3N0cmluZyhhKSxiLGMsZCxlKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ieXRlc19sZW5ndGggY29uc3RcbmZ1bmN0aW9uIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHMpIHsgcmV0dXJuIHMubCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSkge1xuICByZXR1cm4gcy5jaGFyQ29kZUF0KGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykge1xuICByZXR1cm4gcy5sZW5ndGhcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfY29tcGFyZSBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19jb21wYXJlKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDwgczIpPy0xOihzMSA+IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2VxdWFsIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMikge1xuICBpZihzMSA9PT0gczIpIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8PSBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzdGhhbiBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpIHtcbiAgKHMudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMuYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl9qc2J5dGVzKGNhbWxfanNieXRlc19vZl9zdHJpbmcocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoeCkgeyByZXR1cm4geCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc2J5dGVzX29mX3N0cmluZyh4KSB7IHJldHVybiB4IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmMTZfb2ZfdXRmOFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSB7XG4gIGlmKGpzb29faXNfYXNjaWkocykpXG4gICAgcmV0dXJuIHM7XG4gIHJldHVybiBjYW1sX3V0ZjE2X29mX3V0Zjgocyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmOF9vZl91dGYxNiwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAocykge1xuICBpZiAoanNvb19pc19hc2NpaShzKSlcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKVxuICBlbHNlIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfdXRmOF9vZl91dGYxNihzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9qc2J5dGVzKHMpIHsgcmV0dXJuIG5ldyBNbEJ5dGVzKDAscyxzLmxlbmd0aCk7IH1cblxuXG4vLyBUaGUgc2VjdGlvbiBiZWxvdyBzaG91bGQgYmUgdXNlZCB3aGVuIHVzZS1qcy1zdHJpbmc9ZmFsc2VcblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocyxpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQocyxpLGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGggY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykge1xuICByZXR1cm4gY2FtbF9tbF9ieXRlc19sZW5ndGgocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfY29tcGFyZVxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19jb21wYXJlXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19jb21wYXJlKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19jb21wYXJlKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19lcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19lcXVhbFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2VxdWFsKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc3RoYW5cbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW5cbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzdGhhbihzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpIHsgcmV0dXJuIHMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9zdHJpbmcocykgeyByZXR1cm4gcyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB7IHJldHVybiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMocyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKSB7XG4gIChzLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICByZXR1cm4gcy5jIH1cblxuLy9Qcm92aWRlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKXtcbiAgcmV0dXJuIHMudG9VdGYxNigpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAocykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyhzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9pc19tbF9ieXRlcyhzKSB7XG4gIHJldHVybiAocyBpbnN0YW5jZW9mIE1sQnl0ZXMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfYnl0ZXNfY29udGVudChzKSB7XG4gIHN3aXRjaCAocy50ICYgNikge1xuICBkZWZhdWx0OiAvKiBQQVJUSUFMICovXG4gICAgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgY2FzZSAwOiAvKiBCWVRFUyAqL1xuICAgIHJldHVybiBzLmM7XG4gIGNhc2UgNDpcbiAgICByZXR1cm4gcy5jXG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWlcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9pc19tbF9zdHJpbmcocykge1xuICByZXR1cm4gKHR5cGVvZiBzID09PSBcInN0cmluZ1wiICYmICEvW15cXHgwMC1cXHhmZl0vLnRlc3QocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9pc19tbF9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9pc19tbF9ieXRlcyhzKTtcbn1cblxuLy8gVGhlIGZ1bmN0aW9ucyBiZWxvdyBhcmUgZGVwcmVjYXRlZFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2J5dGVfc3RyaW5nKHMpIHsgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25ld19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbmV3X3N0cmluZyAocykgeyByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19mcm9tX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RvX2pzX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3RvX2pzX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfdG9fc3RyaW5nIChzKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhzKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUmFpc2UgZXhjZXB0aW9uXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9jb25zdGFudCAodGFnKSB7IHRocm93IHRhZzsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JldHVybl9leG5fY29uc3RhbnQgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yZXR1cm5fZXhuX2NvbnN0YW50ICh0YWcpIHsgcmV0dXJuIHRhZzsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfYXJnIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJnICh0YWcsIGFyZykgeyB0aHJvdyBbMCwgdGFnLCBhcmddOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmdzIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJncyAodGFnLCBhcmdzKSB7IHRocm93IFswLCB0YWddLmNvbmNhdChhcmdzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfYXJnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nICh0YWcsIG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfYXJnICh0YWcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobXNnKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmFpbHdpdGggKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9mYWlsd2l0aCAobXNnKSB7XG4gIGlmKCFjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUpXG4gICAgY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlPVsyNDgsY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIkZhaWx1cmVcIiksLTNdO1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSwgbXNnKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLkludmFsaWRfYXJndW1lbnQsIG1zZyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuRW5kX29mX2ZpbGUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLkRpdmlzaW9uX2J5X3plcm8pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub3RfZm91bmQgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuTm90X2ZvdW5kKTsgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9hcnJheV9ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9jYWxsX2dlbiAoY29uc3QsIHNoYWxsb3cpXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfY2FsbF9nZW4oZiwgYXJncykge1xuICBpZihmLmZ1bilcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLmZ1biwgYXJncyk7XG4gIC8vRklYTUUsIGNhbiBoYXBwZW4gd2l0aCB0b28gbWFueSBhcmd1bWVudHNcbiAgaWYodHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGY7XG4gIHZhciBuID0gZi5sZW5ndGggfCAwO1xuICBpZihuID09PSAwKSByZXR1cm4gZi5hcHBseShudWxsLGFyZ3MpO1xuICB2YXIgYXJnc0xlbiA9IGFyZ3MubGVuZ3RoIHwgMDtcbiAgdmFyIGQgPSBuIC0gYXJnc0xlbiB8IDA7XG4gIGlmIChkID09IDApXG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIGVsc2UgaWYgKGQgPCAwKSB7XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZi5hcHBseShudWxsLGFyZ3Muc2xpY2UoMCxuKSksYXJncy5zbGljZShuKSk7XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpe1xuICAgICAgdmFyIGV4dHJhX2FyZ3MgPSAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKT8xOmFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJncy5sZW5ndGgrZXh0cmFfYXJncyk7XG4gICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKSBuYXJnc1thcmdzLmxlbmd0aCtpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIG5hcmdzKVxuICAgIH1cbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hbWVkX3ZhbHVlc1xudmFyIGNhbWxfbmFtZWRfdmFsdWVzID0ge307XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUgKGNvbnN0LGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUobm0sdikge1xuICBjYW1sX25hbWVkX3ZhbHVlc1tjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5tKV0gPSB2O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXNcbmZ1bmN0aW9uIGNhbWxfbmFtZWRfdmFsdWUobm0pIHtcbiAgcmV0dXJuIGNhbWxfbmFtZWRfdmFsdWVzW25tXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dsb2JhbF9kYXRhXG52YXIgY2FtbF9nbG9iYWxfZGF0YSA9IFswXTtcblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9nbG9iYWwgKGNvbnN0LCBzaGFsbG93LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChuLCB2LCBuYW1lX29wdCkge1xuICBpZihuYW1lX29wdCAmJiBnbG9iYWxUaGlzLnRvcGxldmVsUmVsb2MpXG4gICAgbiA9IGdsb2JhbFRoaXMudG9wbGV2ZWxSZWxvYyhuYW1lX29wdCk7XG4gIGNhbWxfZ2xvYmFsX2RhdGFbbiArIDFdID0gdjtcbiAgaWYobmFtZV9vcHQpIGNhbWxfZ2xvYmFsX2RhdGFbbmFtZV9vcHRdID0gdjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfZ2xvYmFsX2RhdGEgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9nZXRfZ2xvYmFsX2RhdGEgKCkgeyByZXR1cm4gY2FtbF9nbG9iYWxfZGF0YTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX3ByaW50YWJsZSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2lzX3ByaW50YWJsZShjKSB7IHJldHVybiArKGMgPiAzMSAmJiBjIDwgMTI3KTsgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBGb3JtYXRcblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9mb3JtYXRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9mb3JtYXQgKGZtdCkge1xuICBmbXQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCk7XG4gIHZhciBsZW4gPSBmbXQubGVuZ3RoO1xuICBpZiAobGVuID4gMzEpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImZvcm1hdF9pbnQ6IGZvcm1hdCB0b28gbG9uZ1wiKTtcbiAgdmFyIGYgPVxuICAgICAgeyBqdXN0aWZ5OicrJywgc2lnbnN0eWxlOictJywgZmlsbGVyOicgJywgYWx0ZXJuYXRlOmZhbHNlLFxuICAgICAgICBiYXNlOjAsIHNpZ25lZGNvbnY6ZmFsc2UsIHdpZHRoOjAsIHVwcGVyY2FzZTpmYWxzZSxcbiAgICAgICAgc2lnbjoxLCBwcmVjOi0xLCBjb252OidmJyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGMgPSBmbXQuY2hhckF0KGkpO1xuICAgIHN3aXRjaCAoYykge1xuICAgIGNhc2UgJy0nOlxuICAgICAgZi5qdXN0aWZ5ID0gJy0nOyBicmVhaztcbiAgICBjYXNlICcrJzogY2FzZSAnICc6XG4gICAgICBmLnNpZ25zdHlsZSA9IGM7IGJyZWFrO1xuICAgIGNhc2UgJzAnOlxuICAgICAgZi5maWxsZXIgPSAnMCc7IGJyZWFrO1xuICAgIGNhc2UgJyMnOlxuICAgICAgZi5hbHRlcm5hdGUgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzogY2FzZSAnNSc6XG4gICAgY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICBmLndpZHRoID0gMDtcbiAgICAgIHdoaWxlIChjPWZtdC5jaGFyQ29kZUF0KGkpIC0gNDgsIGMgPj0gMCAmJiBjIDw9IDkpIHtcbiAgICAgICAgZi53aWR0aCA9IGYud2lkdGggKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnLic6XG4gICAgICBmLnByZWMgPSAwO1xuICAgICAgaSsrO1xuICAgICAgd2hpbGUgKGM9Zm10LmNoYXJDb2RlQXQoaSkgLSA0OCwgYyA+PSAwICYmIGMgPD0gOSkge1xuICAgICAgICBmLnByZWMgPSBmLnByZWMgKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgIGNhc2UgJ2QnOiBjYXNlICdpJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAndSc6XG4gICAgICBmLmJhc2UgPSAxMDsgYnJlYWs7XG4gICAgY2FzZSAneCc6XG4gICAgICBmLmJhc2UgPSAxNjsgYnJlYWs7XG4gICAgY2FzZSAnWCc6XG4gICAgICBmLmJhc2UgPSAxNjsgZi51cHBlcmNhc2UgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICdvJzpcbiAgICAgIGYuYmFzZSA9IDg7IGJyZWFrO1xuICAgIGNhc2UgJ2UnOiBjYXNlICdmJzogY2FzZSAnZyc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyBmLmNvbnYgPSBjOyBicmVhaztcbiAgICBjYXNlICdFJzogY2FzZSAnRic6IGNhc2UgJ0cnOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgZi51cHBlcmNhc2UgPSB0cnVlO1xuICAgICAgZi5jb252ID0gYy50b0xvd2VyQ2FzZSAoKTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBmO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHJhd2J1ZmZlcikge1xuICBpZiAoZi51cHBlcmNhc2UpIHJhd2J1ZmZlciA9IHJhd2J1ZmZlci50b1VwcGVyQ2FzZSgpO1xuICB2YXIgbGVuID0gcmF3YnVmZmVyLmxlbmd0aDtcbiAgLyogQWRqdXN0IGxlbiB0byByZWZsZWN0IGFkZGl0aW9uYWwgY2hhcnMgKHNpZ24sIGV0YykgKi9cbiAgaWYgKGYuc2lnbmVkY29udiAmJiAoZi5zaWduIDwgMCB8fCBmLnNpZ25zdHlsZSAhPSAnLScpKSBsZW4rKztcbiAgaWYgKGYuYWx0ZXJuYXRlKSB7XG4gICAgaWYgKGYuYmFzZSA9PSA4KSBsZW4gKz0gMTtcbiAgICBpZiAoZi5iYXNlID09IDE2KSBsZW4gKz0gMjtcbiAgfVxuICAvKiBEbyB0aGUgZm9ybWF0dGluZyAqL1xuICB2YXIgYnVmZmVyID0gXCJcIjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnKycgJiYgZi5maWxsZXIgPT0gJyAnKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnICc7XG4gIGlmIChmLnNpZ25lZGNvbnYpIHtcbiAgICBpZiAoZi5zaWduIDwgMCkgYnVmZmVyICs9ICctJztcbiAgICBlbHNlIGlmIChmLnNpZ25zdHlsZSAhPSAnLScpIGJ1ZmZlciArPSBmLnNpZ25zdHlsZTtcbiAgfVxuICBpZiAoZi5hbHRlcm5hdGUgJiYgZi5iYXNlID09IDgpIGJ1ZmZlciArPSAnMCc7XG4gIGlmIChmLmFsdGVybmF0ZSAmJiBmLmJhc2UgPT0gMTYpIGJ1ZmZlciArPSBcIjB4XCI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJysnICYmIGYuZmlsbGVyID09ICcwJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJzAnO1xuICBidWZmZXIgKz0gcmF3YnVmZmVyO1xuICBpZiAoZi5qdXN0aWZ5ID09ICctJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJyAnO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhidWZmZXIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGpzb29fZmxvb3JfbG9nMlxudmFyIGxvZzJfb2sgPSBNYXRoLmxvZzIgJiYgTWF0aC5sb2cyKDEuMTIzNTU4MjA5Mjg4OTQ3NEUrMzA3KSA9PSAxMDIwXG5mdW5jdGlvbiBqc29vX2Zsb29yX2xvZzIoeCkge1xuICBpZihsb2cyX29rKSByZXR1cm4gTWF0aC5mbG9vcihNYXRoLmxvZzIoeCkpXG4gIHZhciBpID0gMDtcbiAgaWYgKHggPT0gMCkgcmV0dXJuIC1JbmZpbml0eTtcbiAgaWYoeD49MSkge3doaWxlICh4Pj0yKSB7eC89MjsgaSsrfSB9XG4gIGVsc2Uge3doaWxlICh4IDwgMSkge3gqPTI7IGktLX0gfTtcbiAgcmV0dXJuIGk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyLCBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaVxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0ICh4KSB7XG4gIGlmICghaXNGaW5pdGUoeCkpIHtcbiAgICBpZiAoaXNOYU4oeCkpXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMSwgMCwgMHg3ZmYwKTtcbiAgICBpZiAoeCA+IDApXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMCwgMCwgMHg3ZmYwKVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgwLCAwLCAweGZmZjApXG4gIH1cbiAgdmFyIHNpZ24gPSAoeD09MCAmJiAxL3ggPT0gLUluZmluaXR5KT8weDgwMDA6KHg+PTApPzA6MHg4MDAwO1xuICBpZiAoc2lnbikgeCA9IC14O1xuICAvLyBJbnQ2NC5iaXRzX29mX2Zsb2F0IDEuMTIzNTU4MjA5Mjg4OTQ3NEUrMzA3ID0gMHg3ZmIwMDAwMDAwMDAwMDAwTFxuICAvLyB1c2luZyBNYXRoLkxPRzJFKk1hdGgubG9nKHgpIGluIHBsYWNlIG9mIE1hdGgubG9nMiByZXN1bHQgaW4gcHJlY2lzaW9uIGxvc3RcbiAgdmFyIGV4cCA9IGpzb29fZmxvb3JfbG9nMih4KSArIDEwMjM7XG4gIGlmIChleHAgPD0gMCkge1xuICAgIGV4cCA9IDA7XG4gICAgeCAvPSBNYXRoLnBvdygyLC0xMDI2KTtcbiAgfSBlbHNlIHtcbiAgICB4IC89IE1hdGgucG93KDIsZXhwLTEwMjcpO1xuICAgIGlmICh4IDwgMTYpIHtcbiAgICAgIHggKj0gMjsgZXhwIC09MTsgfVxuICAgIGlmIChleHAgPT0gMCkge1xuICAgICAgeCAvPSAyOyB9XG4gIH1cbiAgdmFyIGsgPSBNYXRoLnBvdygyLDI0KTtcbiAgdmFyIHIzID0geHwwO1xuICB4ID0gKHggLSByMykgKiBrO1xuICB2YXIgcjIgPSB4fDA7XG4gIHggPSAoeCAtIHIyKSAqIGs7XG4gIHZhciByMSA9IHh8MDtcbiAgcjMgPSAocjMgJjB4ZikgfCBzaWduIHwgZXhwIDw8IDQ7XG4gIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaShyMSwgcjIsIHIzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzJcbmZ1bmN0aW9uIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdCAoeCkge1xuICB2YXIgZmxvYXQzMmEgPSBuZXcgZ2xvYmFsVGhpcy5GbG9hdDMyQXJyYXkoMSk7XG4gIGZsb2F0MzJhWzBdID0geDtcbiAgdmFyIGludDMyYSA9IG5ldyBnbG9iYWxUaGlzLkludDMyQXJyYXkoZmxvYXQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGludDMyYVswXSB8IDA7XG59XG5cbi8vRlAgbGl0ZXJhbHMgY2FuIGJlIHdyaXR0ZW4gdXNpbmcgdGhlIGhleGFkZWNpbWFsXG4vL25vdGF0aW9uIDB4PG1hbnRpc3NhIGluIGhleD5wPGV4cG9uZW50PiBmcm9tIElTTyBDOTkuXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9kYW5rb2dhaS9qcy1oZXhmbG9hdC9ibG9iL21hc3Rlci9oZXhmbG9hdC5qc1xuLy9Qcm92aWRlczogY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nLCBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0ICh4LCBwcmVjLCBzdHlsZSkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoXCJuYW5cIik7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nICgoeCA+IDApP1wiaW5maW5pdHlcIjpcIi1pbmZpbml0eVwiKTtcbiAgfVxuICB2YXIgc2lnbiA9ICh4PT0wICYmIDEveCA9PSAtSW5maW5pdHkpPzE6KHg+PTApPzA6MTtcbiAgaWYoc2lnbikgeCA9IC14O1xuICB2YXIgZXhwID0gMDtcbiAgaWYgKHggPT0gMCkgeyB9XG4gIGVsc2UgaWYgKHggPCAxKSB7XG4gICAgd2hpbGUgKHggPCAxICYmIGV4cCA+IC0xMDIyKSAgeyB4ICo9IDI7IGV4cC0tIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoeCA+PSAyKSB7IHggLz0gMjsgZXhwKysgfVxuICB9XG4gIHZhciBleHBfc2lnbiA9IGV4cCA8IDAgPyAnJyA6ICcrJztcbiAgdmFyIHNpZ25fc3RyID0gJyc7XG4gIGlmIChzaWduKSBzaWduX3N0ciA9ICctJ1xuICBlbHNlIHtcbiAgICBzd2l0Y2goc3R5bGUpe1xuICAgIGNhc2UgNDMgLyogJysnICovOiBzaWduX3N0ciA9ICcrJzsgYnJlYWs7XG4gICAgY2FzZSAzMiAvKiAnICcgKi86IHNpZ25fc3RyID0gJyAnOyBicmVhaztcbiAgICBkZWZhdWx0OiBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHByZWMgPj0gMCAmJiBwcmVjIDwgMTMpIHtcbiAgICAvKiBJZiBhIHByZWNpc2lvbiBpcyBnaXZlbiwgYW5kIGlzIHNtYWxsLCByb3VuZCBtYW50aXNzYSBhY2NvcmRpbmdseSAqL1xuICAgIHZhciBjc3QgPSBNYXRoLnBvdygyLHByZWMgKiA0KTtcbiAgICB4ID0gTWF0aC5yb3VuZCh4ICogY3N0KSAvIGNzdDtcbiAgfVxuICB2YXIgeF9zdHIgPSB4LnRvU3RyaW5nKDE2KTtcbiAgaWYocHJlYyA+PSAwKXtcbiAgICB2YXIgaWR4ID0geF9zdHIuaW5kZXhPZignLicpO1xuICAgIGlmKGlkeDwwKSB7XG4gICAgICB4X3N0ciArPSAnLicgKyBjYW1sX3N0cl9yZXBlYXQocHJlYywgJzAnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB2YXIgc2l6ZSA9IGlkeCsxK3ByZWM7XG4gICAgICBpZih4X3N0ci5sZW5ndGggPCBzaXplKVxuICAgICAgICB4X3N0ciArPSBjYW1sX3N0cl9yZXBlYXQoc2l6ZSAtIHhfc3RyLmxlbmd0aCwgJzAnKTtcbiAgICAgIGVsc2VcbiAgICAgICAgeF9zdHIgPSB4X3N0ci5zdWJzdHIoMCxzaXplKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzaWduX3N0ciArICcweCcgKyB4X3N0ciArICdwJyArIGV4cF9zaWduICsgZXhwLnRvU3RyaW5nKDEwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBsbyA9IHgubG87XG4gIHZhciBtaSA9IHgubWk7XG4gIHZhciBoaSA9IHguaGk7XG4gIHZhciBleHAgPSAoaGkgJiAweDdmZmYpID4+IDQ7XG4gIGlmIChleHAgPT0gMjA0Nykge1xuICAgIGlmICgobG98bWl8KGhpJjB4ZikpID09IDApXG4gICAgICByZXR1cm4gKGhpICYgMHg4MDAwKT8oLUluZmluaXR5KTpJbmZpbml0eTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gTmFOO1xuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwtMjQpO1xuICB2YXIgcmVzID0gKGxvKmsrbWkpKmsrKGhpJjB4Zik7XG4gIGlmIChleHAgPiAwKSB7XG4gICAgcmVzICs9IDE2O1xuICAgIHJlcyAqPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgfSBlbHNlXG4gICAgcmVzICo9IE1hdGgucG93KDIsLTEwMjYpO1xuICBpZiAoaGkgJiAweDgwMDApIHJlcyA9IC0gcmVzO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25leHRhZnRlcl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfYWRkLCBjYW1sX2ludDY0X3N1YixjYW1sX2ludDY0X29mX2ludDMyXG5mdW5jdGlvbiBjYW1sX25leHRhZnRlcl9mbG9hdCAoeCx5KSB7XG4gIGlmKGlzTmFOKHgpIHx8IGlzTmFOKHkpKSByZXR1cm4gTmFOO1xuICBpZih4PT15KSByZXR1cm4geTtcbiAgaWYoeD09MCl7XG4gICAgaWYoeSA8IDApXG4gICAgICByZXR1cm4gLU1hdGgucG93KDIsIC0xMDc0KVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBNYXRoLnBvdygyLCAtMTA3NClcbiAgfVxuICB2YXIgYml0cyA9IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh4KTtcbiAgdmFyIG9uZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoMSk7XG4gIGlmICgoeDx5KSA9PSAoeD4wKSlcbiAgICBiaXRzID0gY2FtbF9pbnQ2NF9hZGQoYml0cywgb25lKVxuICBlbHNlXG4gICAgYml0cyA9IGNhbWxfaW50NjRfc3ViKGJpdHMsIG9uZSlcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhiaXRzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF90cnVuY19mbG9hdFxuZnVuY3Rpb24gY2FtbF90cnVuY19mbG9hdCh4KXtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoeCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBpbnQzMmEgPSBuZXcgZ2xvYmFsVGhpcy5JbnQzMkFycmF5KDEpO1xuICBpbnQzMmFbMF0gPSB4O1xuICB2YXIgZmxvYXQzMmEgPSBuZXcgZ2xvYmFsVGhpcy5GbG9hdDMyQXJyYXkoaW50MzJhLmJ1ZmZlcik7XG4gIHJldHVybiBmbG9hdDMyYVswXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jbGFzc2lmeV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jbGFzc2lmeV9mbG9hdCAoeCkge1xuICBpZiAoaXNGaW5pdGUgKHgpKSB7XG4gICAgaWYgKE1hdGguYWJzKHgpID49IDIuMjI1MDczODU4NTA3MjAxNGUtMzA4KSByZXR1cm4gMDtcbiAgICBpZiAoeCAhPSAwKSByZXR1cm4gMTtcbiAgICByZXR1cm4gMjtcbiAgfVxuICByZXR1cm4gaXNOYU4oeCk/NDozO1xufVxuLy9Qcm92aWRlczogY2FtbF9tb2RmX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX21vZGZfZmxvYXQgKHgpIHtcbiAgaWYgKGlzRmluaXRlICh4KSkge1xuICAgIHZhciBuZWcgPSAoMS94KSA8IDA7XG4gICAgeCA9IE1hdGguYWJzKHgpO1xuICAgIHZhciBpID0gTWF0aC5mbG9vciAoeCk7XG4gICAgdmFyIGYgPSB4IC0gaTtcbiAgICBpZiAobmVnKSB7IGkgPSAtaTsgZiA9IC1mOyB9XG4gICAgcmV0dXJuIFswLCBmLCBpXTtcbiAgfVxuICBpZiAoaXNOYU4gKHgpKSByZXR1cm4gWzAsIE5hTiwgTmFOXTtcbiAgcmV0dXJuIFswLCAxL3gsIHhdO1xufVxuLy9Qcm92aWRlczogY2FtbF9sZGV4cF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sZGV4cF9mbG9hdCAoeCxleHApIHtcbiAgZXhwIHw9IDA7XG4gIGlmIChleHAgPiAxMDIzKSB7XG4gICAgZXhwIC09IDEwMjM7XG4gICAgeCAqPSBNYXRoLnBvdygyLCAxMDIzKTtcbiAgICBpZiAoZXhwID4gMTAyMykgeyAgLy8gaW4gY2FzZSB4IGlzIHN1Ym5vcm1hbFxuICAgICAgZXhwIC09IDEwMjM7XG4gICAgICB4ICo9IE1hdGgucG93KDIsIDEwMjMpO1xuICAgIH1cbiAgfVxuICBpZiAoZXhwIDwgLTEwMjMpIHtcbiAgICBleHAgKz0gMTAyMztcbiAgICB4ICo9IE1hdGgucG93KDIsIC0xMDIzKTtcbiAgfVxuICB4ICo9IE1hdGgucG93KDIsIGV4cCk7XG4gIHJldHVybiB4O1xufVxuLy9Qcm92aWRlczogY2FtbF9mcmV4cF9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyXG5mdW5jdGlvbiBjYW1sX2ZyZXhwX2Zsb2F0ICh4KSB7XG4gIGlmICgoeCA9PSAwKSB8fCAhaXNGaW5pdGUoeCkpIHJldHVybiBbMCwgeCwgMF07XG4gIHZhciBuZWcgPSB4IDwgMDtcbiAgaWYgKG5lZykgeCA9IC0geDtcbiAgdmFyIGV4cCA9IE1hdGgubWF4KC0xMDIzLCBqc29vX2Zsb29yX2xvZzIoeCkgKyAxKTtcbiAgeCAqPSBNYXRoLnBvdygyLC1leHApO1xuICB3aGlsZSAoeCA8IDAuNSkge1xuICAgIHggKj0gMjtcbiAgICBleHAtLTtcbiAgfVxuICB3aGlsZSAoeCA+PSAxKSB7XG4gICAgeCAqPSAwLjU7XG4gICAgZXhwKys7XG4gIH1cbiAgaWYgKG5lZykgeCA9IC0geDtcbiAgcmV0dXJuIFswLCB4LCBleHBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X2NvbXBhcmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfY29tcGFyZSAoeCwgeSkge1xuICBpZiAoeCA9PT0geSkgcmV0dXJuIDA7XG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xO1xuICBpZiAoeCA+IHkpIHJldHVybiAxO1xuICBpZiAoeCA9PT0geCkgcmV0dXJuIDE7XG4gIGlmICh5ID09PSB5KSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvcHlzaWduX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NvcHlzaWduX2Zsb2F0ICh4LCB5KSB7XG4gIGlmICh5ID09IDApIHkgPSAxIC8geTtcbiAgeCA9IE1hdGguYWJzKHgpO1xuICByZXR1cm4gKHkgPCAwKT8oLXgpOng7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2lnbmJpdF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9zaWduYml0X2Zsb2F0KHgpIHtcbiAgaWYgKHggPT0gMCkgeCA9IDEgLyB4O1xuICByZXR1cm4gKHggPCAwKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhwbTFfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXhwbTFfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguZXhwbTEoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZXhwMl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9leHAyX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgucG93KDIsIHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzFwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzFwX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgubG9nMXAoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cyX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgubG9nMih4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9oeXBvdF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9oeXBvdF9mbG9hdCAoeCwgeSkgeyByZXR1cm4gTWF0aC5oeXBvdCh4LCB5KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cxMF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cxMF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5sb2cxMCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9jb3NoX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Nvc2hfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguY29zaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hY29zaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hY29zaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hY29zaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9zaW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3NpbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguc2luaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hc2luaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hc2luaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hc2luaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF90YW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3RhbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgudGFuaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hdGFuaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hdGFuaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hdGFuaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9yb3VuZF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9yb3VuZF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5yb3VuZCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9jYnJ0X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NicnRfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguY2JydCh4KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VyZl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9lcmZfZmxvYXQoeCkge1xuICB2YXIgYTEgPSAwLjI1NDgyOTU5MjtcbiAgdmFyIGEyID0gLTAuMjg0NDk2NzM2O1xuICB2YXIgYTMgPSAxLjQyMTQxMzc0MTtcbiAgdmFyIGE0ID0gLTEuNDUzMTUyMDI3O1xuICB2YXIgYTUgPSAxLjA2MTQwNTQyOTtcbiAgdmFyIHAgPSAwLjMyNzU5MTE7XG5cbiAgdmFyIHNpZ24gPSAxO1xuICBpZiAoeCA8IDApIHtcbiAgICBzaWduID0gLTE7XG4gIH1cbiAgeCA9IE1hdGguYWJzKHgpO1xuICB2YXIgdCA9IDEuMCAvICgxLjAgKyBwICogeCk7XG4gIHZhciB5ID0gMS4wIC0gKCgoKGE1ICogdCArIGE0KSAqIHQgKyBhMykgKiB0ICsgYTIpICogdCArIGExKSAqIHQgKiBNYXRoLmV4cCgteCAqIHgpO1xuXG4gIHJldHVybiBzaWduICogeTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcmZjX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2VyZl9mbG9hdFxuZnVuY3Rpb24gY2FtbF9lcmZjX2Zsb2F0KHgpIHtcbiAgcmV0dXJuIDEgLSBjYW1sX2VyZl9mbG9hdCh4KTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZtYV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9mbWFfZmxvYXQoeCwgeSwgeikge1xuICB2YXIgU1BMSVQgPSBNYXRoLnBvdygyLCAyNykgKyAxO1xuICB2YXIgTUlOX1ZBTFVFID0gTWF0aC5wb3coMiwgLTEwMjIpO1xuICB2YXIgRVBTSUxPTiA9IE1hdGgucG93KDIsIC01Mik7XG4gIHZhciBDID0gNDE2O1xuICB2YXIgQSA9IE1hdGgucG93KDIsICtDKTtcbiAgdmFyIEIgPSBNYXRoLnBvdygyLCAtQyk7XG5cbiAgZnVuY3Rpb24gbXVsdGlwbHkgKGEsIGIpIHtcbiAgICB2YXIgYXQgPSBTUExJVCAqIGE7XG4gICAgdmFyIGFoaSA9IGF0IC0gKGF0IC0gYSk7XG4gICAgdmFyIGFsbyA9IGEgLSBhaGk7XG4gICAgdmFyIGJ0ID0gU1BMSVQgKiBiO1xuICAgIHZhciBiaGkgPSBidCAtIChidCAtIGIpO1xuICAgIHZhciBibG8gPSBiIC0gYmhpO1xuICAgIHZhciBwID0gYSAqIGI7XG4gICAgdmFyIGUgPSAoKGFoaSAqIGJoaSAtIHApICsgYWhpICogYmxvICsgYWxvICogYmhpKSArIGFsbyAqIGJsbztcbiAgICByZXR1cm4ge1xuICAgICAgcDogcCxcbiAgICAgIGU6IGVcbiAgICB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIGFkZCAoYSwgYikge1xuICAgIHZhciBzID0gYSArIGI7XG4gICAgdmFyIHYgPSBzIC0gYTtcbiAgICB2YXIgZSA9IChhIC0gKHMgLSB2KSkgKyAoYiAtIHYpO1xuICAgIHJldHVybiB7XG4gICAgICBzOiBzLFxuICAgICAgZTogZVxuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRqdXN0ICh4LCB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgJiYgeSAhPT0gMCAmJiBTUExJVCAqIHggLSAoU1BMSVQgKiB4IC0geCkgPT09IHggPyB4ICogKDEgKyAoeCA8IDAgPyAtMSA6ICsxKSAqICh5IDwgMCA/IC0xIDogKzEpICogRVBTSUxPTikgOiB4O1xuICB9O1xuXG4gIGlmICh4ID09PSAwIHx8IHggIT09IHggfHwgeCA9PT0gKzEgLyAwIHx8IHggPT09IC0xIC8gMCB8fFxuICAgICAgeSA9PT0gMCB8fCB5ICE9PSB5IHx8IHkgPT09ICsxIC8gMCB8fCB5ID09PSAtMSAvIDApIHtcbiAgICByZXR1cm4geCAqIHkgKyB6O1xuICB9XG4gIGlmICh6ID09PSAwKSB7XG4gICAgcmV0dXJuIHggKiB5O1xuICB9XG4gIGlmICh6ICE9PSB6IHx8IHogPT09ICsxIC8gMCB8fCB6ID09PSAtMSAvIDApIHtcbiAgICByZXR1cm4gejtcbiAgfVxuXG4gIHZhciBzY2FsZSA9IDE7XG4gIHdoaWxlIChNYXRoLmFicyh4KSA+IEEpIHtcbiAgICBzY2FsZSAqPSBBO1xuICAgIHggKj0gQjtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeSkgPiBBKSB7XG4gICAgc2NhbGUgKj0gQTtcbiAgICB5ICo9IEI7XG4gIH1cbiAgaWYgKHNjYWxlID09PSAxIC8gMCkge1xuICAgIHJldHVybiB4ICogeSAqIHNjYWxlO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh4KSA8IEIpIHtcbiAgICBzY2FsZSAqPSBCO1xuICAgIHggKj0gQTtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeSkgPCBCKSB7XG4gICAgc2NhbGUgKj0gQjtcbiAgICB5ICo9IEE7XG4gIH1cbiAgaWYgKHNjYWxlID09PSAwKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cblxuICB2YXIgeHMgPSB4O1xuICB2YXIgeXMgPSB5O1xuICB2YXIgenMgPSB6IC8gc2NhbGU7XG5cbiAgaWYgKE1hdGguYWJzKHpzKSA+IE1hdGguYWJzKHhzICogeXMpICogNCAvIEVQU0lMT04pIHtcbiAgICByZXR1cm4gejtcbiAgfVxuICBpZiAoTWF0aC5hYnMoenMpIDwgTWF0aC5hYnMoeHMgKiB5cykgKiBFUFNJTE9OIC8gNCAqIEVQU0lMT04gLyA0KSB7XG4gICAgenMgPSAoeiA8IDAgPyAtMSA6ICsxKSAqIE1JTl9WQUxVRTtcbiAgfVxuXG4gIHZhciB4eSA9IG11bHRpcGx5KHhzLCB5cyk7XG4gIHZhciBzID0gYWRkKHh5LnAsIHpzKTtcbiAgdmFyIHUgPSBhZGQoeHkuZSwgcy5lKTtcbiAgdmFyIGkgPSBhZGQocy5zLCB1LnMpO1xuXG4gIHZhciBmID0gaS5zICsgYWRqdXN0KGkuZSwgdS5lKTtcbiAgaWYgKGYgPT09IDApIHtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4gIHZhciBmcyA9IGYgKiBzY2FsZTtcbiAgaWYgKE1hdGguYWJzKGZzKSA+IE1JTl9WQUxVRSkge1xuICAgIHJldHVybiBmcztcbiAgfVxuXG4gIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgd2FzIGV4dHJhIHJvdW5kaW5nIGZvciBhIGRlbm9ybWFsaXplZCB2YWx1ZS5cbiAgcmV0dXJuIGZzICsgYWRqdXN0KGYgLSBmcyAvIHNjYWxlLCBpLmUpICogc2NhbGU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuZnVuY3Rpb24gY2FtbF9mb3JtYXRfZmxvYXQgKGZtdCwgeCkge1xuICBmdW5jdGlvbiB0b0ZpeGVkKHgsZHApIHtcbiAgICBpZiAoTWF0aC5hYnMoeCkgPCAxLjApIHtcbiAgICAgIHJldHVybiB4LnRvRml4ZWQoZHApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZSA9IHBhcnNlSW50KHgudG9TdHJpbmcoKS5zcGxpdCgnKycpWzFdKTtcbiAgICAgIGlmIChlID4gMjApIHtcbiAgICAgICAgZSAtPSAyMDtcbiAgICAgICAgeCAvPSBNYXRoLnBvdygxMCxlKTtcbiAgICAgICAgeCArPSAobmV3IEFycmF5KGUrMSkpLmpvaW4oJzAnKTtcbiAgICAgICAgaWYoZHAgPiAwKSB7XG4gICAgICAgICAgeCA9IHggKyAnLicgKyAobmV3IEFycmF5KGRwKzEpKS5qb2luKCcwJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9XG4gICAgICBlbHNlIHJldHVybiB4LnRvRml4ZWQoZHApXG4gICAgfVxuICB9XG4gIHZhciBzLCBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgdmFyIHByZWMgPSAoZi5wcmVjIDwgMCk/NjpmLnByZWM7XG4gIGlmICh4IDwgMCB8fCAoeCA9PSAwICYmIDEveCA9PSAtSW5maW5pdHkpKSB7IGYuc2lnbiA9IC0xOyB4ID0gLXg7IH1cbiAgaWYgKGlzTmFOKHgpKSB7IHMgPSBcIm5hblwiOyBmLmZpbGxlciA9ICcgJzsgfVxuICBlbHNlIGlmICghaXNGaW5pdGUoeCkpIHsgcyA9IFwiaW5mXCI7IGYuZmlsbGVyID0gJyAnOyB9XG4gIGVsc2VcbiAgICBzd2l0Y2ggKGYuY29udikge1xuICAgIGNhc2UgJ2UnOlxuICAgICAgdmFyIHMgPSB4LnRvRXhwb25lbnRpYWwocHJlYyk7XG4gICAgICAvLyBleHBvbmVudCBzaG91bGQgYmUgYXQgbGVhc3QgdHdvIGRpZ2l0c1xuICAgICAgdmFyIGkgPSBzLmxlbmd0aDtcbiAgICAgIGlmIChzLmNoYXJBdChpIC0gMykgPT0gJ2UnKVxuICAgICAgICBzID0gcy5zbGljZSAoMCwgaSAtIDEpICsgJzAnICsgcy5zbGljZSAoaSAtIDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZic6XG4gICAgICBzID0gdG9GaXhlZCh4LCBwcmVjKTsgYnJlYWs7XG4gICAgY2FzZSAnZyc6XG4gICAgICBwcmVjID0gcHJlYz9wcmVjOjE7XG4gICAgICBzID0geC50b0V4cG9uZW50aWFsKHByZWMgLSAxKTtcbiAgICAgIHZhciBqID0gcy5pbmRleE9mKCdlJyk7XG4gICAgICB2YXIgZXhwID0gK3Muc2xpY2UoaiArIDEpO1xuICAgICAgaWYgKGV4cCA8IC00IHx8IHggPj0gMWUyMSB8fCB4LnRvRml4ZWQoMCkubGVuZ3RoID4gcHJlYykge1xuICAgICAgICAvLyByZW1vdmUgdHJhaWxpbmcgemVyb2VzXG4gICAgICAgIHZhciBpID0gaiAtIDE7IHdoaWxlIChzLmNoYXJBdChpKSA9PSAnMCcpIGktLTtcbiAgICAgICAgaWYgKHMuY2hhckF0KGkpID09ICcuJykgaS0tO1xuICAgICAgICBzID0gcy5zbGljZSgwLCBpICsgMSkgKyBzLnNsaWNlKGopO1xuICAgICAgICBpID0gcy5sZW5ndGg7XG4gICAgICAgIGlmIChzLmNoYXJBdChpIC0gMykgPT0gJ2UnKVxuICAgICAgICAgIHMgPSBzLnNsaWNlICgwLCBpIC0gMSkgKyAnMCcgKyBzLnNsaWNlIChpIC0gMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHAgPSBwcmVjO1xuICAgICAgICBpZiAoZXhwIDwgMCkgeyBwIC09IGV4cCArIDE7IHMgPSB4LnRvRml4ZWQocCk7IH1cbiAgICAgICAgZWxzZSB3aGlsZSAocyA9IHgudG9GaXhlZChwKSwgcy5sZW5ndGggPiBwcmVjICsgMSkgcC0tO1xuICAgICAgICBpZiAocCkge1xuICAgICAgICAgIC8vIHJlbW92ZSB0cmFpbGluZyB6ZXJvZXNcbiAgICAgICAgICB2YXIgaSA9IHMubGVuZ3RoIC0gMTsgd2hpbGUgKHMuY2hhckF0KGkpID09ICcwJykgaS0tO1xuICAgICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSAnLicpIGktLTtcbiAgICAgICAgICBzID0gcy5zbGljZSgwLCBpICsgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfb2Zfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfb2Zfc3RyaW5nKHMpIHtcbiAgdmFyIHJlcztcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocylcbiAgcmVzID0gK3M7XG4gIGlmICgocy5sZW5ndGggPiAwKSAmJiAocmVzID09PSByZXMpKSByZXR1cm4gcmVzO1xuICBzID0gcy5yZXBsYWNlKC9fL2csXCJcIik7XG4gIHJlcyA9ICtzO1xuICBpZiAoKChzLmxlbmd0aCA+IDApICYmIChyZXMgPT09IHJlcykpIHx8IC9eWystXT9uYW4kL2kudGVzdChzKSkgcmV0dXJuIHJlcztcbiAgdmFyIG0gPSAvXiAqKFsrLV0/KTB4KFswLTlhLWZdKylcXC4/KFswLTlhLWZdKikocChbKy1dP1swLTldKykpPy9pLmV4ZWMocyk7XG4gIC8vICAgICAgICAgIDEgICAgICAgIDIgICAgICAgICAgICAgMyAgICAgICAgICAgNVxuICBpZihtKXtcbiAgICB2YXIgbTMgPSBtWzNdLnJlcGxhY2UoLzArJC8sJycpO1xuICAgIHZhciBtYW50aXNzYSA9IHBhcnNlSW50KG1bMV0gKyBtWzJdICsgbTMsIDE2KTtcbiAgICB2YXIgZXhwb25lbnQgPSAobVs1XXwwKSAtIDQqbTMubGVuZ3RoO1xuICAgIHJlcyA9IG1hbnRpc3NhICogTWF0aC5wb3coMiwgZXhwb25lbnQpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgaWYoL15cXCs/aW5mKGluaXR5KT8kL2kudGVzdChzKSkgcmV0dXJuIEluZmluaXR5O1xuICBpZigvXi1pbmYoaW5pdHkpPyQvaS50ZXN0KHMpKSByZXR1cm4gLUluZmluaXR5O1xuICBjYW1sX2ZhaWx3aXRoKFwiZmxvYXRfb2Zfc3RyaW5nXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIGZzX25vZGVfc3VwcG9ydGVkICgpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzICE9PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ucyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MudmVyc2lvbnMubm9kZSAhPT0gJ3VuZGVmaW5lZCcpXG59XG4vL1Byb3ZpZGVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gZnNfbm9kZV9zdXBwb3J0ZWQgKCkge1xuICByZXR1cm4gZmFsc2Vcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sTm9kZUZpbGUsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX3dpdGhfYXJnc1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gTWxOb2RlRGV2aWNlKHJvb3QpIHtcbiAgdGhpcy5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gIHRoaXMucm9vdCA9IHJvb3Q7XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm5tID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gKHRoaXMucm9vdCArIG5hbWUpO1xufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5leGlzdHMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuZXhpc3RzU3luYyh0aGlzLm5tKG5hbWUpKT8xOjA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm1rZGlyID0gZnVuY3Rpb24obmFtZSwgbW9kZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMubWtkaXJTeW5jKHRoaXMubm0obmFtZSkse21vZGU6bW9kZX0pO1xuICAgIHJldHVybiAwXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucm1kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5ybWRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZWFkZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnJlYWRkaXJTeW5jKHRoaXMubm0obmFtZSkpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmlzX2RpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKS5pc0RpcmVjdG9yeSgpPzE6MDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnVubGluayA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYiA9IHRoaXMuZnMuZXhpc3RzU3luYyh0aGlzLm5tKG5hbWUpKT8xOjA7XG4gICAgdGhpcy5mcy51bmxpbmtTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiBiO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbihuYW1lLCBmLCByYWlzZV91bml4KSB7XG4gIHZhciBjb25zdHMgPSByZXF1aXJlKCdjb25zdGFudHMnKTtcbiAgdmFyIHJlcyA9IDA7XG4gIGZvcih2YXIga2V5IGluIGYpe1xuICAgIHN3aXRjaChrZXkpe1xuICAgIGNhc2UgXCJyZG9ubHlcIiAgOiByZXMgfD0gY29uc3RzLk9fUkRPTkxZOyBicmVhaztcbiAgICBjYXNlIFwid3Jvbmx5XCIgIDogcmVzIHw9IGNvbnN0cy5PX1dST05MWTsgYnJlYWs7XG4gICAgY2FzZSBcImFwcGVuZFwiICA6XG4gICAgICByZXMgfD0gY29uc3RzLk9fV1JPTkxZIHwgY29uc3RzLk9fQVBQRU5EO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImNyZWF0ZVwiICAgOiByZXMgfD0gY29uc3RzLk9fQ1JFQVQ7ICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0cnVuY2F0ZVwiIDogcmVzIHw9IGNvbnN0cy5PX1RSVU5DOyAgICBicmVhaztcbiAgICBjYXNlIFwiZXhjbFwiICAgICA6IHJlcyB8PSBjb25zdHMuT19FWENMOyAgICAgYnJlYWs7XG4gICAgY2FzZSBcImJpbmFyeVwiICAgOiByZXMgfD0gY29uc3RzLk9fQklOQVJZOyAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0ZXh0XCIgICAgIDogcmVzIHw9IGNvbnN0cy5PX1RFWFQ7ICAgICBicmVhaztcbiAgICBjYXNlIFwibm9uYmxvY2tcIiA6IHJlcyB8PSBjb25zdHMuT19OT05CTE9DSzsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHRyeSB7XG4gICAgdmFyIGZkID0gdGhpcy5mcy5vcGVuU3luYyh0aGlzLm5tKG5hbWUpLCByZXMpO1xuICAgIHJldHVybiBuZXcgTWxOb2RlRmlsZShmZCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZW5hbWUgPSBmdW5jdGlvbihvLCBuLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5yZW5hbWVTeW5jKHRoaXMubm0obyksIHRoaXMubm0obikpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN0YXQgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGpzX3N0YXRzID0gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5sc3RhdCA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIganNfc3RhdHMgPSB0aGlzLmZzLmxzdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zeW1saW5rID0gZnVuY3Rpb24odG9fZGlyLCB0YXJnZXQsIHBhdGgsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnN5bWxpbmtTeW5jKHRoaXMubm0odGFyZ2V0KSwgdGhpcy5ubShwYXRoKSwgdG9fZGlyID8gJ2RpcicgOiAnZmlsZScpO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRsaW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBsaW5rID0gdGhpcy5mcy5yZWFkbGlua1N5bmModGhpcy5ubShuYW1lKSwgJ3V0ZjgnKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobGluayk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmFpc2Vfbm9kZWpzX2Vycm9yID0gZnVuY3Rpb24oZXJyLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gY2FtbF9uYW1lZF92YWx1ZShcIlVuaXguVW5peF9lcnJvclwiKTtcbiAgaWYgKHJhaXNlX3VuaXggJiYgdW5peF9lcnJvcikge1xuICAgIHZhciBhcmdzID0gbWFrZV91bml4X2Vycl9hcmdzKGVyci5jb2RlLCBlcnIuc3lzY2FsbCwgZXJyLnBhdGgsIGVyci5lcnJubyk7XG4gICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN0YXRzX2Zyb21fanMgPSBmdW5jdGlvbihqc19zdGF0cykge1xuICAvKiA9PT1Vbml4LmZpbGVfa2luZD09PVxuICAgKiB0eXBlIGZpbGVfa2luZCA9XG4gICAqICAgICBTX1JFRyAgICAgICAgICAgICAgICAgICAgICAgKCoqIFJlZ3VsYXIgZmlsZSAqKVxuICAgKiAgIHwgU19ESVIgICAgICAgICAgICAgICAgICAgICAgICgqKiBEaXJlY3RvcnkgKilcbiAgICogICB8IFNfQ0hSICAgICAgICAgICAgICAgICAgICAgICAoKiogQ2hhcmFjdGVyIGRldmljZSAqKVxuICAgKiAgIHwgU19CTEsgICAgICAgICAgICAgICAgICAgICAgICgqKiBCbG9jayBkZXZpY2UgKilcbiAgICogICB8IFNfTE5LICAgICAgICAgICAgICAgICAgICAgICAoKiogU3ltYm9saWMgbGluayAqKVxuICAgKiAgIHwgU19GSUZPICAgICAgICAgICAgICAgICAgICAgICgqKiBOYW1lZCBwaXBlICopXG4gICAqICAgfCBTX1NPQ0sgICAgICAgICAgICAgICAgICAgICAgKCoqIFNvY2tldCAqKVxuICAgKi9cbiAgdmFyIGZpbGVfa2luZDtcbiAgaWYgKGpzX3N0YXRzLmlzRmlsZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMDtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgZmlsZV9raW5kID0gMTtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0NoYXJhY3RlckRldmljZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMjtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0Jsb2NrRGV2aWNlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAzO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzU3ltYm9saWNMaW5rKCkpIHtcbiAgICBmaWxlX2tpbmQgPSA0O1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzRklGTygpKSB7XG4gICAgZmlsZV9raW5kID0gNTtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc1NvY2tldCgpKSB7XG4gICAgZmlsZV9raW5kID0gNjtcbiAgfVxuICAvKiA9PT1Vbml4LnN0YXRzPT09XG4gICAqIHR5cGUgc3RhdHMgPVxuICAgKiAgeyBzdF9kZXYgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIERldmljZSBudW1iZXIgKilcbiAgICogICAgc3RfaW5vIDogaW50OyAgICAgICAgICAgICAgICgqKiBJbm9kZSBudW1iZXIgKilcbiAgICogICAgc3Rfa2luZCA6IGZpbGVfa2luZDsgICAgICAgICgqKiBLaW5kIG9mIHRoZSBmaWxlICopXG4gICAqICAgIHN0X3Blcm0gOiBmaWxlX3Blcm07ICAgICAgICAoKiogQWNjZXNzIHJpZ2h0cyAqKVxuICAgKiAgICBzdF9ubGluayA6IGludDsgICAgICAgICAgICAgKCoqIE51bWJlciBvZiBsaW5rcyAqKVxuICAgKiAgICBzdF91aWQgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIFVzZXIgaWQgb2YgdGhlIG93bmVyICopXG4gICAqICAgIHN0X2dpZCA6IGludDsgICAgICAgICAgICAgICAoKiogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cCAqKVxuICAgKiAgICBzdF9yZGV2IDogaW50OyAgICAgICAgICAgICAgKCoqIERldmljZSBJRCAoaWYgc3BlY2lhbCBmaWxlKSAqKVxuICAgKiAgICBzdF9zaXplIDogaW50OyAgICAgICAgICAgICAgKCoqIFNpemUgaW4gYnl0ZXMgKilcbiAgICogICAgc3RfYXRpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IGFjY2VzcyB0aW1lICopXG4gICAqICAgIHN0X210aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBtb2RpZmljYXRpb24gdGltZSAqKVxuICAgKiAgICBzdF9jdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3Qgc3RhdHVzIGNoYW5nZSB0aW1lICopXG4gICAqICB9XG4gICAqL1xuICByZXR1cm4gQkxPQ0soXG4gICAgMCxcbiAgICBqc19zdGF0cy5kZXYsXG4gICAganNfc3RhdHMuaW5vLFxuICAgIGZpbGVfa2luZCxcbiAgICBqc19zdGF0cy5tb2RlLFxuICAgIGpzX3N0YXRzLm5saW5rLFxuICAgIGpzX3N0YXRzLnVpZCxcbiAgICBqc19zdGF0cy5naWQsXG4gICAganNfc3RhdHMucmRldixcbiAgICBqc19zdGF0cy5zaXplLFxuICAgIGpzX3N0YXRzLmF0aW1lTXMsXG4gICAganNfc3RhdHMubXRpbWVNcyxcbiAgICBqc19zdGF0cy5jdGltZU1zXG4gICk7XG59XG5cbk1sTm9kZURldmljZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbE5vZGVEZXZpY2VcblxuLy9Qcm92aWRlczogTWxOb2RlRGV2aWNlXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBNbE5vZGVEZXZpY2UoKSB7XG59XG5cbi8vUHJvdmlkZXM6IE1sTm9kZUZpbGVcbi8vUmVxdWlyZXM6IE1sRmlsZSwgY2FtbF9hcnJheV9vZl9zdHJpbmcsIGNhbWxfYXJyYXlfb2ZfYnl0ZXMsIGNhbWxfYnl0ZXNfc2V0LCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxOb2RlRmlsZShmZCl7XG4gIHRoaXMuZnMgPSByZXF1aXJlKCdmcycpO1xuICB0aGlzLmZkID0gZmQ7XG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZSA9IG5ldyBNbEZpbGUgKCk7XG5cbk1sTm9kZUZpbGUucHJvdG90eXBlLnRydW5jYXRlID0gZnVuY3Rpb24obGVuKXtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLmZ0cnVuY2F0ZVN5bmModGhpcy5mZCxsZW58MClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuZnN0YXRTeW5jKHRoaXMuZmQpLnNpemU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihvZmZzZXQsYnVmLGJ1Zl9vZmZzZXQsbGVuKXtcbiAgdmFyIGEgPSBjYW1sX2FycmF5X29mX3N0cmluZyhidWYpO1xuICBpZighIChhIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5VaW50OEFycmF5KSlcbiAgICBhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheShhKTtcbiAgdmFyIGJ1ZmZlciA9IGdsb2JhbFRoaXMuQnVmZmVyLmZyb20oYSk7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy53cml0ZVN5bmModGhpcy5mZCwgYnVmZmVyLCBidWZfb2Zmc2V0LCBsZW4sIG9mZnNldCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbihvZmZzZXQsYnVmLGJ1Zl9vZmZzZXQsbGVuKXtcbiAgdmFyIGEgPSBjYW1sX2FycmF5X29mX2J5dGVzKGJ1Zik7XG4gIGlmKCEgKGEgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkpKVxuICAgIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KGEpO1xuICB2YXIgYnVmZmVyID0gZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShhKTtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJlYWRTeW5jKHRoaXMuZmQsIGJ1ZmZlciwgYnVmX29mZnNldCwgbGVuLCBvZmZzZXQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBjYW1sX2J5dGVzX3NldChidWYsYnVmX29mZnNldCArIGksYnVmZmVyW2J1Zl9vZmZzZXQraV0pO1xuICB9XG4gIHJldHVybiAwXG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZS5yZWFkX29uZSA9IGZ1bmN0aW9uKG9mZnNldCl7XG4gIHZhciBhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheSgxKTtcbiAgdmFyIGJ1ZmZlciA9IGdsb2JhbFRoaXMuQnVmZmVyLmZyb20oYSk7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5yZWFkU3luYyh0aGlzLmZkLCBidWZmZXIsIDAsIDEsIG9mZnNldCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxuICByZXR1cm4gYnVmZmVyWzBdO1xufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbigpe1xuICB0cnkge1xuICAgIHRoaXMuZnMuY2xvc2VTeW5jKHRoaXMuZmQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cblxuTWxOb2RlRmlsZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbE5vZGVGaWxlO1xuXG4vL1Byb3ZpZGVzOiBNbE5vZGVGaWxlXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBNbE5vZGVGaWxlKCl7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIER1bW15IGZpbGVzeXN0ZW1cblxuLy9Qcm92aWRlczogY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF90cmFpbGluZ19zbGFzaChuYW1lKXtcbiAgcmV0dXJuIChuYW1lLnNsaWNlKC0xKSAhPT0gXCIvXCIpID8gKG5hbWUgKyBcIi9cIikgOiBuYW1lO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2N1cnJlbnRfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3RyYWlsaW5nX3NsYXNoLCBmc19ub2RlX3N1cHBvcnRlZFxuaWYoZnNfbm9kZV9zdXBwb3J0ZWQgKCkgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5jd2QpXG4gIHZhciBjYW1sX2N1cnJlbnRfZGlyID0gZ2xvYmFsVGhpcy5wcm9jZXNzLmN3ZCgpLnJlcGxhY2UoL1xcXFwvZywnLycpO1xuZWxzZVxuICB2YXIgY2FtbF9jdXJyZW50X2RpciA9ICBcIi9zdGF0aWNcIjtcbmNhbWxfY3VycmVudF9kaXIgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKGNhbWxfY3VycmVudF9kaXIpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9yb290XG4vL1JlcXVpcmVzOiBwYXRoX2lzX2Fic29sdXRlXG5mdW5jdGlvbiBjYW1sX2dldF9yb290KHBhdGgpe1xuICB2YXIgeCA9IHBhdGhfaXNfYWJzb2x1dGUocGF0aCk7XG4gIGlmICgheCkgcmV0dXJuO1xuICByZXR1cm4geFswXSArIFwiL1wifVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3Jvb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ2V0X3Jvb3QsIGNhbWxfY3VycmVudF9kaXIsIGNhbWxfZmFpbHdpdGhcbnZhciBjYW1sX3Jvb3QgPSBjYW1sX2dldF9yb290KGNhbWxfY3VycmVudF9kaXIpIHx8IGNhbWxfZmFpbHdpdGgoXCJ1bmFibGUgdG8gY29tcHV0ZSBjYW1sX3Jvb3RcIik7XG5cblxuLy9Qcm92aWRlczogTWxGaWxlXG5mdW5jdGlvbiBNbEZpbGUoKXsgIH1cblxuLy9Qcm92aWRlczogcGF0aF9pc19hYnNvbHV0ZVxuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIG1ha2VfcGF0aF9pc19hYnNvbHV0ZSgpIHtcbiAgZnVuY3Rpb24gcG9zaXgocGF0aCkge1xuICAgIGlmIChwYXRoLmNoYXJBdCgwKSA9PT0gJy8nKSByZXR1cm4gW1wiXCIsIHBhdGguc3Vic3RyaW5nKDEpXTtcbiAgICByZXR1cm47XG4gIH1cblxuICBmdW5jdGlvbiB3aW4zMihwYXRoKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvYjNmY2MyNDVmYjI1NTM5OTA5ZWYxZDVlYWEwMWRiZjkyZTE2ODYzMy9saWIvcGF0aC5qcyNMNTZcbiAgICB2YXIgc3BsaXREZXZpY2VSZSA9IC9eKFthLXpBLVpdOnxbXFxcXC9dezJ9W15cXFxcL10rW1xcXFwvXStbXlxcXFwvXSspPyhbXFxcXC9dKT8oW1xcc1xcU10qPykkLztcbiAgICB2YXIgcmVzdWx0ID0gc3BsaXREZXZpY2VSZS5leGVjKHBhdGgpO1xuICAgIHZhciBkZXZpY2UgPSByZXN1bHRbMV0gfHwgJyc7XG4gICAgdmFyIGlzVW5jID0gQm9vbGVhbihkZXZpY2UgJiYgZGV2aWNlLmNoYXJBdCgxKSAhPT0gJzonKTtcblxuICAgIC8vIFVOQyBwYXRocyBhcmUgYWx3YXlzIGFic29sdXRlXG4gICAgaWYgKEJvb2xlYW4ocmVzdWx0WzJdIHx8IGlzVW5jKSkge1xuICAgICAgdmFyIHJvb3QgPSAocmVzdWx0WzFdIHx8ICcnKTtcbiAgICAgIHZhciBzZXAgPSAocmVzdWx0WzJdIHx8ICcnKTtcbiAgICAgIHJldHVybiBbcm9vdCwgcGF0aC5zdWJzdHJpbmcocm9vdC5sZW5ndGggKyBzZXAubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmKGZzX25vZGVfc3VwcG9ydGVkICgpICYmIGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0pIHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInID8gd2luMzIgOiBwb3NpeDtcbiAgfVxuICBlbHNlIHJldHVybiBwb3NpeFxufVxudmFyIHBhdGhfaXNfYWJzb2x1dGUgPSBtYWtlX3BhdGhfaXNfYWJzb2x1dGUoKTtcblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX3BhdGhcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nLCBwYXRoX2lzX2Fic29sdXRlXG5mdW5jdGlvbiBjYW1sX21ha2VfcGF0aCAobmFtZSkge1xuICBuYW1lPWNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpO1xuICBpZiggIXBhdGhfaXNfYWJzb2x1dGUobmFtZSkgKVxuICAgIG5hbWUgPSBjYW1sX2N1cnJlbnRfZGlyICsgbmFtZTtcbiAgdmFyIGNvbXAwID0gcGF0aF9pc19hYnNvbHV0ZShuYW1lKTtcbiAgdmFyIGNvbXAgPSBjb21wMFsxXS5zcGxpdChcIi9cIik7XG4gIHZhciBuY29tcCA9IFtdXG4gIGZvcih2YXIgaSA9IDA7IGk8Y29tcC5sZW5ndGg7IGkrKyl7XG4gICAgc3dpdGNoKGNvbXBbaV0pe1xuICAgIGNhc2UgXCIuLlwiOiBpZihuY29tcC5sZW5ndGg+MSkgbmNvbXAucG9wKCk7IGJyZWFrO1xuICAgIGNhc2UgXCIuXCI6IGJyZWFrO1xuICAgIGRlZmF1bHQ6IG5jb21wLnB1c2goY29tcFtpXSk7YnJlYWtcbiAgICB9XG4gIH1cbiAgbmNvbXAudW5zaGlmdChjb21wMFswXSk7XG4gIG5jb21wLm9yaWcgPSBuYW1lO1xuICByZXR1cm4gbmNvbXA7XG59XG5cbi8vUHJvdmlkZXM6anNvb19tb3VudF9wb2ludFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBNbE5vZGVEZXZpY2UsIGNhbWxfcm9vdCwgZnNfbm9kZV9zdXBwb3J0ZWRcbnZhciBqc29vX21vdW50X3BvaW50ID0gW11cbmlmIChmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpjYW1sX3Jvb3QsZGV2aWNlOm5ldyBNbE5vZGVEZXZpY2UoY2FtbF9yb290KX0pO1xufSBlbHNlIHtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOmNhbWxfcm9vdCxkZXZpY2U6bmV3IE1sRmFrZURldmljZShjYW1sX3Jvb3QpfSk7XG59XG5qc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6XCIvc3RhdGljL1wiLCBkZXZpY2U6bmV3IE1sRmFrZURldmljZShcIi9zdGF0aWMvXCIpfSk7XG5cbi8vUHJvdmlkZXM6Y2FtbF9saXN0X21vdW50X3BvaW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xpc3RfbW91bnRfcG9pbnQoKXtcbiAgdmFyIHByZXYgPSAwXG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKXtcbiAgICB2YXIgb2xkID0gcHJldjtcbiAgICBwcmV2ID0gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoanNvb19tb3VudF9wb2ludFtpXS5wYXRoKSwgb2xkXVxuICB9XG4gIHJldHVybiBwcmV2O1xufVxuXG4vL1Byb3ZpZGVzOiByZXNvbHZlX2ZzX2RldmljZVxuLy9SZXF1aXJlczogY2FtbF9tYWtlX3BhdGgsIGpzb29fbW91bnRfcG9pbnQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX2dldF9yb290LCBNbE5vZGVEZXZpY2UsIGNhbWxfdHJhaWxpbmdfc2xhc2gsIGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiByZXNvbHZlX2ZzX2RldmljZShuYW1lKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBwYXRoLmpvaW4oXCIvXCIpO1xuICB2YXIgbmFtZV9zbGFzaCA9IGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSk7XG4gIHZhciByZXM7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG0gPSBqc29vX21vdW50X3BvaW50W2ldO1xuICAgIGlmKG5hbWVfc2xhc2guc2VhcmNoKG0ucGF0aCkgPT0gMFxuICAgICAgICYmICghcmVzIHx8IHJlcy5wYXRoLmxlbmd0aCA8IG0ucGF0aC5sZW5ndGgpKVxuICAgICAgcmVzID0ge3BhdGg6bS5wYXRoLGRldmljZTptLmRldmljZSxyZXN0Om5hbWUuc3Vic3RyaW5nKG0ucGF0aC5sZW5ndGgsbmFtZS5sZW5ndGgpfTtcbiAgfVxuICBpZiggIXJlcyAmJiBmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgdmFyIHJvb3QgPSBjYW1sX2dldF9yb290KG5hbWUpO1xuICAgIGlmIChyb290ICYmIHJvb3QubWF0Y2goL15bYS16QS1aXTpcXC8kLykpe1xuICAgICAgdmFyIG0gPSB7cGF0aDpyb290LGRldmljZTpuZXcgTWxOb2RlRGV2aWNlKHJvb3QpfTtcbiAgICAgIGpzb29fbW91bnRfcG9pbnQucHVzaChtKTtcbiAgICAgIHJlcyA9IHtwYXRoOm0ucGF0aCxkZXZpY2U6bS5kZXZpY2UscmVzdDpuYW1lLnN1YnN0cmluZyhtLnBhdGgubGVuZ3RoLG5hbWUubGVuZ3RoKX07XG4gICAgfVxuICB9XG4gIGlmKCByZXMgKSByZXR1cm4gcmVzO1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcihcIm5vIGRldmljZSBmb3VuZCBmb3IgXCIgKyBuYW1lX3NsYXNoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tb3VudF9hdXRvbG9hZFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBjYW1sX21ha2VfcGF0aCwganNvb19tb3VudF9wb2ludCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF9tb3VudF9hdXRvbG9hZChuYW1lLGYpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpuYW1lLGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKG5hbWUsZil9KVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bm1vdW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX21ha2VfcGF0aCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF91bm1vdW50KG5hbWUpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIHZhciBpZHggPSAtMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspXG4gICAgaWYoanNvb19tb3VudF9wb2ludFtpXS5wYXRoID09IG5hbWUpIGlkeCA9IGk7XG4gIGlmKGlkeCA+IC0xKSBqc29vX21vdW50X3BvaW50LnNwbGljZShpZHgsMSk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldGN3ZFxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpciwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0Y3dkKCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX2N1cnJlbnRfZGlyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY2hkaXJcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXIsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF90cmFpbGluZ19zbGFzaCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfY2hkaXIoZGlyKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UoZGlyKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICBpZihyb290LnJlc3QpIGNhbWxfY3VycmVudF9kaXIgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHJvb3QucGF0aCArIHJvb3QucmVzdCk7XG4gICAgZWxzZSBjYW1sX2N1cnJlbnRfZGlyID0gcm9vdC5wYXRoO1xuICAgIHJldHVybiAwO1xuICB9XG4gIGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZGlyKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub3RfYV9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9hX2RpcihuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19maWxlX2V4aXN0c1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2ZpbGVfZXhpc3RzIChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJldHVybiByb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVhZF9kaXJlY3Rvcnlcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2FfZGlyLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfcmVhZF9kaXJlY3RvcnkobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBhID0gcm9vdC5kZXZpY2UucmVhZGRpcihyb290LnJlc3QpO1xuICB2YXIgbCA9IG5ldyBBcnJheShhLmxlbmd0aCArIDEpO1xuICBsWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspXG4gICAgbFtpKzFdID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhhW2ldKTtcbiAgcmV0dXJuIGw7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlbW92ZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19yZW1vdmUobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBvayA9IHJvb3QuZGV2aWNlLnVubGluayhyb290LnJlc3QpO1xuICBpZihvayA9PSAwKSBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzX2RpcmVjdG9yeVxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzX2RpcmVjdG9yeShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGEgPSByb290LmRldmljZS5pc19kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIGE/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZW5hbWVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19yZW5hbWUobyxuKXtcbiAgdmFyIG9fcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG8pO1xuICB2YXIgbl9yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uobik7XG4gIGlmKG9fcm9vdC5kZXZpY2UgIT0gbl9yb290LmRldmljZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBjYW5ub3QgbW92ZSBmaWxlIGJldHdlZW4gdHdvIGZpbGVzeXN0ZW1cIik7XG4gIGlmKCFvX3Jvb3QuZGV2aWNlLnJlbmFtZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBubyBpbXBsZW1lbnRlZFwiKTtcbiAgb19yb290LmRldmljZS5yZW5hbWUob19yb290LnJlc3QsIG5fcm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfbWtkaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9zeXNfbWtkaXIobmFtZSwgcGVybSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJvb3QuZGV2aWNlLm1rZGlyKHJvb3QucmVzdCxwZXJtKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JtZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm90X2FfZGlyXG5mdW5jdGlvbiBjYW1sX3N5c19ybWRpcihuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcm9vdC5kZXZpY2Uucm1kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbWFwX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfYmFfbWFwX2ZpbGUodmZkLCBraW5kLCBsYXlvdXQsIHNoYXJlZCwgZGltcywgcG9zKSB7XG4gIC8vIHZhciBkYXRhID0gY2FtbF9nbG9iYWxfZGF0YS5mZHNbdmZkXTtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfYmFfbWFwX2ZpbGUgbm90IGltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX21hcF9maWxlXG5mdW5jdGlvbiBjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlKGFyZ3YsYXJnbil7XG4gIHJldHVybiBjYW1sX2JhX21hcF9maWxlKGFyZ3ZbMF0sYXJndlsxXSxhcmd2WzJdLGFyZ3ZbM10sYXJndls0XSxhcmd2WzVdKTtcbn1cblxuLy9Qcm92aWRlczoganNvb19jcmVhdGVfZmlsZV9leHRlcm5cbmZ1bmN0aW9uIGpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuKG5hbWUsY29udGVudCl7XG4gIGlmKGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZSlcbiAgICBnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KTtcbiAgZWxzZSB7XG4gICAgaWYoIWdsb2JhbFRoaXMuY2FtbF9mc190bXApIGdsb2JhbFRoaXMuY2FtbF9mc190bXAgPSBbXTtcbiAgICBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wLnB1c2goe25hbWU6bmFtZSxjb250ZW50OmNvbnRlbnR9KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mc19pbml0XG4vL1JlcXVpcmVzOiBqc29vX2NyZWF0ZV9maWxlXG5mdW5jdGlvbiBjYW1sX2ZzX2luaXQgKCl7XG4gIHZhciB0bXA9Z2xvYmFsVGhpcy5jYW1sX2ZzX3RtcFxuICBpZih0bXApe1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0bXAubGVuZ3RoOyBpKyspe1xuICAgICAganNvb19jcmVhdGVfZmlsZSh0bXBbaV0ubmFtZSx0bXBbaV0uY29udGVudCk7XG4gICAgfVxuICB9XG4gIGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZSA9IGpzb29fY3JlYXRlX2ZpbGU7XG4gIGdsb2JhbFRoaXMuY2FtbF9mc190bXAgPSBbXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZighIHJvb3QuZGV2aWNlLnJlZ2lzdGVyKSBjYW1sX2ZhaWx3aXRoKFwiY2Fubm90IHJlZ2lzdGVyIGZpbGVcIik7XG4gIHJvb3QuZGV2aWNlLnJlZ2lzdGVyKHJvb3QucmVzdCxjb250ZW50KTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczoganNvb19jcmVhdGVfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfZmlsZSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24ganNvb19jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpIHtcbiAgdmFyIG5hbWUgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpO1xuICB2YXIgY29udGVudCA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY29udGVudCk7XG4gIHJldHVybiBjYW1sX2NyZWF0ZV9maWxlKG5hbWUsIGNvbnRlbnQpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVhZF9maWxlX2NvbnRlbnRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlYWRfZmlsZV9jb250ZW50IChuYW1lKSB7XG4gIHZhciBuYW1lID0gKHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIpP2NhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSk6bmFtZTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICB2YXIgZmlsZSA9IHJvb3QuZGV2aWNlLm9wZW4ocm9vdC5yZXN0LHtyZG9ubHk6MX0pO1xuICAgIHZhciBsZW4gID0gZmlsZS5sZW5ndGgoKTtcbiAgICB2YXIgYnVmICA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gICAgZmlsZS5yZWFkKDAsYnVmLDAsbGVuKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMoYnVmKVxuICB9XG4gIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkpO1xufVxuIiwiLy9Qcm92aWRlczogdW5peF9nZXR0aW1lb2ZkYXlcbmZ1bmN0aW9uIHVuaXhfZ2V0dGltZW9mZGF5ICgpIHtcbiAgcmV0dXJuIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3RpbWVcbi8vUmVxdWlyZXM6IHVuaXhfZ2V0dGltZW9mZGF5XG5mdW5jdGlvbiB1bml4X3RpbWUgKCkge1xuICByZXR1cm4gTWF0aC5mbG9vcih1bml4X2dldHRpbWVvZmRheSAoKSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfZ210aW1lXG5mdW5jdGlvbiB1bml4X2dtdGltZSAodCkge1xuICB2YXIgZCA9IG5ldyBEYXRlICh0ICogMTAwMCk7XG4gIHZhciBkX251bSA9IGQuZ2V0VGltZSgpO1xuICB2YXIgamFudWFyeWZpcnN0ID0gKG5ldyBEYXRlKERhdGUuVVRDKGQuZ2V0VVRDRnVsbFllYXIoKSwgMCwgMSkpKS5nZXRUaW1lKCk7XG4gIHZhciBkb3kgPSBNYXRoLmZsb29yKChkX251bSAtIGphbnVhcnlmaXJzdCkgLyA4NjQwMDAwMCk7XG4gIHJldHVybiBCTE9DSygwLCBkLmdldFVUQ1NlY29uZHMoKSwgZC5nZXRVVENNaW51dGVzKCksIGQuZ2V0VVRDSG91cnMoKSxcbiAgICAgICAgICAgICAgIGQuZ2V0VVRDRGF0ZSgpLCBkLmdldFVUQ01vbnRoKCksIGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDAsXG4gICAgICAgICAgICAgICBkLmdldFVUQ0RheSgpLCBkb3ksXG4gICAgICAgICAgICAgICBmYWxzZSB8IDAgLyogZm9yIFVUQyBkYXlsaWdodCBzYXZpbmdzIHRpbWUgaXMgZmFsc2UgKi8pXG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfbG9jYWx0aW1lXG5mdW5jdGlvbiB1bml4X2xvY2FsdGltZSAodCkge1xuICB2YXIgZCA9IG5ldyBEYXRlICh0ICogMTAwMCk7XG4gIHZhciBkX251bSA9IGQuZ2V0VGltZSgpO1xuICB2YXIgamFudWFyeWZpcnN0ID0gKG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSkpLmdldFRpbWUoKTtcbiAgdmFyIGRveSA9IE1hdGguZmxvb3IoKGRfbnVtIC0gamFudWFyeWZpcnN0KSAvIDg2NDAwMDAwKTtcbiAgdmFyIGphbiA9IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XG4gIHZhciBqdWwgPSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDYsIDEpO1xuICB2YXIgc3RkVGltZXpvbmVPZmZzZXQgPSBNYXRoLm1heChqYW4uZ2V0VGltZXpvbmVPZmZzZXQoKSwganVsLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRTZWNvbmRzKCksIGQuZ2V0TWludXRlcygpLCBkLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldERhdGUoKSwgZC5nZXRNb250aCgpLCBkLmdldEZ1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXREYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgKGQuZ2V0VGltZXpvbmVPZmZzZXQoKSA8IHN0ZFRpbWV6b25lT2Zmc2V0KSB8IDAgLyogZGF5bGlnaHQgc2F2aW5ncyB0aW1lICBmaWVsZC4gKi8pXG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfbWt0aW1lXG4vL1JlcXVpcmVzOiB1bml4X2xvY2FsdGltZVxuZnVuY3Rpb24gdW5peF9ta3RpbWUodG0pe1xuICB2YXIgZCA9IChuZXcgRGF0ZSh0bVs2XSsxOTAwLHRtWzVdLHRtWzRdLHRtWzNdLHRtWzJdLHRtWzFdKSkuZ2V0VGltZSgpO1xuICB2YXIgdCA9IE1hdGguZmxvb3IoZCAvIDEwMDApO1xuICB2YXIgdG0yID0gdW5peF9sb2NhbHRpbWUodCk7XG4gIHJldHVybiBCTE9DSygwLHQsdG0yKTtcbn1cblxuLy9Qcm92aWRlczogd2luX3N0YXJ0dXAgY29uc3RcbmZ1bmN0aW9uIHdpbl9zdGFydHVwKCkge31cblxuLy9Qcm92aWRlczogd2luX2NsZWFudXAgY29uc3RcbmZ1bmN0aW9uIHdpbl9jbGVhbnVwKCkge31cblxuLy9Qcm92aWRlczogd2luX2hhbmRsZV9mZCBjb25zdFxuZnVuY3Rpb24gd2luX2hhbmRsZV9mZCh4KSB7cmV0dXJuIHg7fVxuXG4vL1Byb3ZpZGVzOiB1bml4X2lzYXR0eVxuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIHVuaXhfaXNhdHR5KGZpbGVEZXNjcmlwdG9yKSB7XG4gIGlmKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICB2YXIgdHR5ID0gcmVxdWlyZSgndHR5Jyk7XG4gICAgcmV0dXJuIHR0eS5pc2F0dHkoZmlsZURlc2NyaXB0b3IpPzE6MDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBtYWtlX3VuaXhfZXJyX2FyZ3Ncbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG52YXIgdW5peF9lcnJvciA9IFtcbiAgLyogPT09VW5peC5lcnJvcj09PVxuICAgKlxuICAgKiBUaGlzIGFycmF5IGlzIGluIG9yZGVyIG9mIHRoZSB2YXJpYW50IGluIE9DYW1sXG4gICAqL1xuICBcIkUyQklHXCIsIFwiRUFDQ0VTXCIsIFwiRUFHQUlOXCIsIFwiRUJBREZcIiwgXCJFQlVTWVwiLCBcIkVDSElMRFwiLCBcIkVERUFETEtcIiwgXCJFRE9NXCIsXG4gIFwiRUVYSVNUXCIsIFwiRUZBVUxUXCIsIFwiRUZCSUdcIiwgXCJFSU5UUlwiLCBcIkVJTlZBTFwiLCBcIkVJT1wiLCBcIkVJU0RJUlwiLCBcIkVNRklMRVwiLFxuICBcIkVNTElOS1wiLCBcIkVOQU1FVE9PTE9OR1wiLCBcIkVORklMRVwiLCBcIkVOT0RFVlwiLCBcIkVOT0VOVFwiLCBcIkVOT0VYRUNcIiwgXCJFTk9MQ0tcIixcbiAgXCJFTk9NRU1cIiwgXCJFTk9TUENcIiwgXCJFTk9TWVNcIiwgXCJFTk9URElSXCIsIFwiRU5PVEVNUFRZXCIsIFwiRU5PVFRZXCIsIFwiRU5YSU9cIixcbiAgXCJFUEVSTVwiLCBcIkVQSVBFXCIsIFwiRVJBTkdFXCIsIFwiRVJPRlNcIiwgXCJFU1BJUEVcIiwgXCJFU1JDSFwiLCBcIkVYREVWXCIsIFwiRVdPVUxEQkxPQ0tcIixcbiAgXCJFSU5QUk9HUkVTU1wiLCBcIkVBTFJFQURZXCIsIFwiRU5PVFNPQ0tcIiwgXCJFREVTVEFERFJSRVFcIiwgXCJFTVNHU0laRVwiLFxuICBcIkVQUk9UT1RZUEVcIiwgXCJFTk9QUk9UT09QVFwiLCBcIkVQUk9UT05PU1VQUE9SVFwiLCBcIkVTT0NLVE5PU1VQUE9SVFwiLFxuICBcIkVPUE5PVFNVUFBcIiwgXCJFUEZOT1NVUFBPUlRcIiwgXCJFQUZOT1NVUFBPUlRcIiwgXCJFQUREUklOVVNFXCIsIFwiRUFERFJOT1RBVkFJTFwiLFxuICBcIkVORVRET1dOXCIsIFwiRU5FVFVOUkVBQ0hcIiwgXCJFTkVUUkVTRVRcIiwgXCJFQ09OTkFCT1JURURcIiwgXCJFQ09OTlJFU0VUXCIsIFwiRU5PQlVGU1wiLFxuICBcIkVJU0NPTk5cIiwgXCJFTk9UQ09OTlwiLCBcIkVTSFVURE9XTlwiLCBcIkVUT09NQU5ZUkVGU1wiLCBcIkVUSU1FRE9VVFwiLCBcIkVDT05OUkVGVVNFRFwiLFxuICBcIkVIT1NURE9XTlwiLCBcIkVIT1NUVU5SRUFDSFwiLCBcIkVMT09QXCIsIFwiRU9WRVJGTE9XXCJcbl07XG5mdW5jdGlvbiBtYWtlX3VuaXhfZXJyX2FyZ3MoY29kZSwgc3lzY2FsbCwgcGF0aCwgZXJybm8pIHtcbiAgdmFyIHZhcmlhbnQgPSB1bml4X2Vycm9yLmluZGV4T2YoY29kZSk7XG4gIGlmICh2YXJpYW50IDwgMCkge1xuICAgIC8vIERlZmF1bHQgaWYgdW5kZWZpbmVkXG4gICAgaWYgKGVycm5vID09IG51bGwpIHtcbiAgICAgIGVycm5vID0gLTk5OTlcbiAgICB9XG4gICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgdmFyaWFudHMsIGZhbGxiYWNrIHRvIEVVTktOT1dORVJSKGludClcbiAgICB2YXJpYW50ID0gQkxPQ0soMCwgZXJybm8pO1xuICB9XG4gIHZhciBhcmdzID0gW1xuICAgIHZhcmlhbnQsXG4gICAgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoc3lzY2FsbCB8fCBcIlwiKSxcbiAgICBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhwYXRoIHx8IFwiXCIpXG4gIF07XG4gIHJldHVybiBhcmdzO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3N0YXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X3N0YXQobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnN0YXQpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9zdGF0OiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnN0YXQocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3N0YXRfNjRcbi8vUmVxdWlyZXM6IHVuaXhfc3RhdFxudmFyIHVuaXhfc3RhdF82NCA9IHVuaXhfc3RhdDtcblxuLy9Qcm92aWRlczogdW5peF9sc3RhdFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfbHN0YXQobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLmxzdGF0KSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfbHN0YXQ6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UubHN0YXQocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2xzdGF0XzY0XG4vL1JlcXVpcmVzOiB1bml4X2xzdGF0XG52YXIgdW5peF9sc3RhdF82NCA9IHVuaXhfbHN0YXQ7XG5cbi8vUHJvdmlkZXM6IHVuaXhfbWtkaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X21rZGlyKG5hbWUsIHBlcm0pIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5ta2Rpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X21rZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLm1rZGlyKHJvb3QucmVzdCwgcGVybSwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9ybWRpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfcm1kaXIobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnJtZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfcm1kaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2Uucm1kaXIocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3N5bWxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X3N5bWxpbmsodG9fZGlyLCBzcmMsIGRzdCkge1xuICB2YXIgc3JjX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShzcmMpO1xuICB2YXIgZHN0X3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShkc3QpO1xuICBpZihzcmNfcm9vdC5kZXZpY2UgIT0gZHN0X3Jvb3QuZGV2aWNlKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3N5bWxpbms6IGNhbm5vdCBzeW1saW5rIGJldHdlZW4gdHdvIGZpbGVzeXN0ZW1zXCIpO1xuICBpZiAoIXNyY19yb290LmRldmljZS5zeW1saW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfc3ltbGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiBzcmNfcm9vdC5kZXZpY2Uuc3ltbGluayh0b19kaXIsIHNyY19yb290LnJlc3QsIGRzdF9yb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfcmVhZGxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X3JlYWRsaW5rKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5yZWFkbGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3JlYWRsaW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnJlYWRsaW5rKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF91bmxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiB1bml4X3VubGluayhuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UudW5saW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfdW5saW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnVubGluayhyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfZ2V0dWlkXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuZnVuY3Rpb24gdW5peF9nZXR1aWQodW5pdCkge1xuICBpZihnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmdldHVpZCl7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXR1aWQoKTtcbiAgfVxuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2dldHB3dWlkXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuZnVuY3Rpb24gdW5peF9nZXRwd3VpZCh1bml0KSB7XG4gIGNhbWxfcmFpc2Vfbm90X2ZvdW5kKClcbn1cblxuLy9Qcm92aWRlczogdW5peF9oYXNfc3ltbGlua1xuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIHVuaXhfaGFzX3N5bWxpbmsodW5pdCkge1xuICByZXR1cm4gZnNfbm9kZV9zdXBwb3J0ZWQoKT8xOjBcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gU3lzXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLlN5c19lcnJvciwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZXhpdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N5c19leGl0IChjb2RlKSB7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgaWYoZy5xdWl0KSBnLnF1aXQoY29kZSk7XG4gIC8vbm9kZWpzXG4gIGlmKGcucHJvY2VzcyAmJiBnLnByb2Nlc3MuZXhpdClcbiAgICBnLnByb2Nlc3MuZXhpdChjb2RlKTtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiRnVuY3Rpb24gJ2V4aXQnIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbihleG4pe1xuICBzd2l0Y2goZXhuWzJdKSB7XG4gIGNhc2UgLTg6IC8vIE1hdGNoX2ZhaWx1cmVcbiAgY2FzZSAtMTE6IC8vIEFzc2VydF9mYWlsdXJlXG4gIGNhc2UgLTEyOiAvLyBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZVxuICAgIHJldHVybiAxO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiAwO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2V4Y2VwdGlvblxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9mb3JtYXRfZXhjZXB0aW9uKGV4bil7XG4gIHZhciByID0gXCJcIjtcbiAgaWYoZXhuWzBdID09IDApIHtcbiAgICByICs9IGV4blsxXVsxXTtcbiAgICBpZihleG4ubGVuZ3RoID09IDMgJiYgZXhuWzJdWzBdID09IDAgJiYgY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbihleG5bMV0pKSB7XG5cbiAgICAgIHZhciBidWNrZXQgPSBleG5bMl07XG4gICAgICB2YXIgc3RhcnQgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3RhcnQgPSAyXG4gICAgICB2YXIgYnVja2V0ID0gZXhuO1xuICAgIH1cbiAgICByICs9IFwiKFwiO1xuICAgIGZvcih2YXIgaSA9IHN0YXJ0OyBpIDwgYnVja2V0Lmxlbmd0aDsgaSArKyl7XG4gICAgICBpZihpID4gc3RhcnQpIHIrPVwiLCBcIjtcbiAgICAgIHZhciB2ID0gYnVja2V0W2ldXG4gICAgICBpZih0eXBlb2YgdiA9PSBcIm51bWJlclwiKVxuICAgICAgICByKz0gdi50b1N0cmluZygpO1xuICAgICAgZWxzZSBpZih2IGluc3RhbmNlb2YgTWxCeXRlcyl7XG4gICAgICAgIHIrPSAnXCInICsgdi50b1N0cmluZygpICsgJ1wiJztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYodHlwZW9mIHYgPT0gXCJzdHJpbmdcIil7XG4gICAgICAgIHIrPSAnXCInICsgdi50b1N0cmluZygpICsgJ1wiJztcbiAgICAgIH1cbiAgICAgIGVsc2UgciArPSBcIl9cIjtcbiAgICB9XG4gICAgciArPSBcIilcIlxuICB9IGVsc2UgaWYgKGV4blswXSA9PSAyNDgpe1xuICAgIHIgKz0gZXhuWzFdXG4gIH1cbiAgcmV0dXJuIHJcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25cbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfZm9ybWF0X2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXJyKXtcbiAgaWYoZXJyIGluc3RhbmNlb2YgQXJyYXkgJiYgKGVyclswXSA9PSAwIHx8IGVyclswXSA9PSAyNDgpKSB7XG4gICAgdmFyIGhhbmRsZXIgPSBjYW1sX25hbWVkX3ZhbHVlKFwiUHJpbnRleGMuaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblwiKTtcbiAgICBpZihoYW5kbGVyKSBoYW5kbGVyKGVycixmYWxzZSk7XG4gICAgZWxzZSB7XG4gICAgICB2YXIgbXNnID0gY2FtbF9mb3JtYXRfZXhjZXB0aW9uKGVycik7XG4gICAgICB2YXIgYXRfZXhpdCA9IGNhbWxfbmFtZWRfdmFsdWUoXCJQZXJ2YXNpdmVzLmRvX2F0X2V4aXRcIik7XG4gICAgICBpZihhdF9leGl0KSB7IGF0X2V4aXQoMCkgfVxuICAgICAgZ2xvYmFsVGhpcy5jb25zb2xlLmVycm9yKFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiBcIiArIG1zZyArIFwiXFxuXCIpO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBlcnJcbiAgfVxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3N0YXRpY19lbnZcbmZ1bmN0aW9uIGNhbWxfc2V0X3N0YXRpY19lbnYoayx2KXtcbiAgaWYoIWdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52KVxuICAgIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52ID0ge31cbiAgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZba10gPSB2O1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldGVudiAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19nZXRlbnYgKG5hbWUpIHtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICB2YXIgbiA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpO1xuICAvL25vZGVqcyBlbnZcbiAgaWYoZy5wcm9jZXNzXG4gICAgICYmIGcucHJvY2Vzcy5lbnZcbiAgICAgJiYgZy5wcm9jZXNzLmVudltuXSAhPSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGcucHJvY2Vzcy5lbnZbbl0pO1xuICBpZihnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudlxuICAgICAmJiBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltuXSlcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZbbl0pXG4gIGNhbWxfcmFpc2Vfbm90X2ZvdW5kICgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c191bnNhZmVfZ2V0ZW52XG4vL1JlcXVpcmVzOiBjYW1sX3N5c19nZXRlbnZcbmZ1bmN0aW9uIGNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYobmFtZSl7XG4gIHJldHVybiBjYW1sX3N5c19nZXRlbnYgKG5hbWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG52YXIgY2FtbF9hcmd2ID0gKChmdW5jdGlvbiAoKSB7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgdmFyIG1haW4gPSBcImEub3V0XCI7XG4gIHZhciBhcmdzID0gW11cblxuICBpZihnLnByb2Nlc3NcbiAgICAgJiYgZy5wcm9jZXNzLmFyZ3ZcbiAgICAgJiYgZy5wcm9jZXNzLmFyZ3YubGVuZ3RoID4gMSkge1xuICAgIHZhciBhcmd2ID0gZy5wcm9jZXNzLmFyZ3ZcbiAgICAvL25vZGVqc1xuICAgIG1haW4gPSBhcmd2WzFdO1xuICAgIGFyZ3MgPSBhcmd2LnNsaWNlKDIpO1xuICB9XG5cbiAgdmFyIHAgPSBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhtYWluKTtcbiAgdmFyIGFyZ3MyID0gWzAsIHBdO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKylcbiAgICBhcmdzMi5wdXNoKGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGFyZ3NbaV0pKTtcbiAgcmV0dXJuIGFyZ3MyO1xufSkoKSlcblxuLy9Qcm92aWRlczogY2FtbF9leGVjdXRhYmxlX25hbWVcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxudmFyIGNhbWxfZXhlY3V0YWJsZV9uYW1lID0gY2FtbF9hcmd2WzFdXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldF9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldF9hcmd2IChhKSB7XG4gIHJldHVybiBbMCwgY2FtbF9hcmd2WzFdLCBjYW1sX2FyZ3ZdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX2FyZ3YgKGEpIHtcbiAgcmV0dXJuIGNhbWxfYXJndjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfbW9kaWZ5X2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfbW9kaWZ5X2FyZ3YoYXJnKXtcbiAgY2FtbF9hcmd2ID0gYXJnO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxuZnVuY3Rpb24gY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lKGEpe1xuICByZXR1cm4gY2FtbF9leGVjdXRhYmxlX25hbWVcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZChjbWQpe1xuICB2YXIgY21kID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoY21kKTtcbiAgaWYgKHR5cGVvZiByZXF1aXJlICE9IFwidW5kZWZpbmVkXCJcbiAgICAgICYmIHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKVxuICAgICAgJiYgcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWNTeW5jKSB7XG4gICAgdHJ5IHtyZXF1aXJlKCdjaGlsZF9wcm9jZXNzJykuZXhlY1N5bmMoY21kLHtzdGRpbzogJ2luaGVyaXQnfSk7IHJldHVybiAwfVxuICAgIGNhdGNoIChlKSB7cmV0dXJuIDF9XG4gIH1cbiAgZWxzZSByZXR1cm4gMTI3O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c190aW1lIG11dGFibGVcbnZhciBjYW1sX2luaXRpYWxfdGltZSA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgKiAwLjAwMTtcbmZ1bmN0aW9uIGNhbWxfc3lzX3RpbWUgKCkge1xuICB2YXIgbm93ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgcmV0dXJuIG5vdyAqIDAuMDAxIC0gY2FtbF9pbml0aWFsX3RpbWU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlblxuLy9SZXF1aXJlczogY2FtbF9zeXNfdGltZVxuZnVuY3Rpb24gY2FtbF9zeXNfdGltZV9pbmNsdWRlX2NoaWxkcmVuKGIpIHtcbiAgcmV0dXJuIGNhbWxfc3lzX3RpbWUoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmFuZG9tX3NlZWQgbXV0YWJsZVxuLy9UaGUgZnVuY3Rpb24gbmVlZHMgdG8gcmV0dXJuIGFuIGFycmF5IHNpbmNlIE9DYW1sIDQuMC4uLlxuZnVuY3Rpb24gY2FtbF9zeXNfcmFuZG9tX3NlZWQgKCkge1xuICBpZihnbG9iYWxUaGlzLmNyeXB0bykge1xuICAgIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMgPT09ICdmdW5jdGlvbicpe1xuICAgICAgLy8gV2ViYnJvd3NlcnNcbiAgICAgIHZhciBhID0gbmV3IGdsb2JhbFRoaXMuVWludDMyQXJyYXkoMSk7XG4gICAgICBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYSk7XG4gICAgICByZXR1cm4gWzAsYVswXV07XG4gICAgfSBlbHNlIGlmKGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbUJ5dGVzID09PSAnZnVuY3Rpb24nKXtcbiAgICAgIC8vIE5vZGVqc1xuICAgICAgdmFyIGJ1ZmYgPSBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21CeXRlcyg0KTtcbiAgICAgIHZhciBhID0gbmV3IGdsb2JhbFRoaXMuVWludDMyQXJyYXkoYnVmZik7XG4gICAgICByZXR1cm4gWzAsYVswXV07XG4gICAgfVxuICB9XG4gIHZhciBub3cgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICB2YXIgeCA9IG5vd14weGZmZmZmZmZmKk1hdGgucmFuZG9tKCk7XG4gIHJldHVybiBbMCx4XTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiAoKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplICgpIHsgcmV0dXJuIDMyOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2ludF9zaXplIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9pbnRfc2l6ZSAoKSB7IHJldHVybiAzMjsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIGNvbnN0XG4vLyBtYXhfaW50IC8gNCBzbyB0aGF0IHRoZSBmb2xsb3dpbmcgZG9lcyBub3Qgb3ZlcmZsb3dcbi8vbGV0IG1heF9zdHJpbmdfbGVuZ3RoID0gd29yZF9zaXplIC8gOCAqIG1heF9hcnJheV9sZW5ndGggLSAxOztcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X21heF93b3NpemUgKCkgeyByZXR1cm4gKDB4N0ZGRkZGRkYvNCkgfCAwO31cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXggY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4ICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJVbml4XCIgPyAxIDogMDsgfVxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3dpbjMyIGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIgKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIldpbjMyXCIgPyAxIDogMDsgfVxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiAoKSB7IHJldHVybiBvc190eXBlID09IFwiQ3lnd2luXCIgPyAxIDogMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9iYWNrZW5kX3R5cGUgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSAoKSB7XG4gIHJldHVybiBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcImpzX29mX29jYW1sXCIpXTtcbn1cblxuLy9Qcm92aWRlczogb3NfdHlwZVxudmFyIG9zX3R5cGUgPSAoZ2xvYmFsVGhpcy5wcm9jZXNzICYmXG4gICAgICAgICAgICAgICBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gJiZcbiAgICAgICAgICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSA9PSBcIndpbjMyXCIpID8gXCJDeWd3aW5cIiA6IFwiVW5peFwiO1xuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldF9jb25maWcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldF9jb25maWcgKCkge1xuICByZXR1cm4gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMob3NfdHlwZSksIDMyLCAwXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfaXNhdHR5XG5mdW5jdGlvbiBjYW1sX3N5c19pc2F0dHkoX2NoYW4pIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV92YXJpYW50XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfdmFyaWFudChfdW5pdCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9wYXJhbWV0ZXJzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyhfdW5pdCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnN0YWxsX3NpZ25hbF9oYW5kbGVyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIoKXtyZXR1cm4gMH1cblxuLy9Qcm92aWRlczogdW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nXG5mdW5jdGlvbiB1bml4X2luZXRfYWRkcl9vZl9zdHJpbmcgKCkge3JldHVybiAwO31cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xudmFyIGNhbWxfcnVudGltZV93YXJuaW5ncyA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3Ncbi8vUmVxdWlyZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xuZnVuY3Rpb24gY2FtbF9tbF9lbmFibGVfcnVudGltZV93YXJuaW5ncyAoYm9vbCkge1xuICBjYW1sX3J1bnRpbWVfd2FybmluZ3MgPSBib29sO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWRcbi8vUmVxdWlyZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xuZnVuY3Rpb24gY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQgKF91bml0KSB7XG4gIHJldHVybiBjYW1sX3J1bnRpbWVfd2FybmluZ3M7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3NwYWNldGltZV9lbmFibGVkKF91bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQoX3VuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lKF9jaGFubmVsKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGUoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJTcGFjZXRpbWUgcHJvZmlsaW5nIG9ubHkgd29ya3MgZm9yIG5hdGl2ZSBjb2RlXCIpO1xufVxuXG4vL0Fsd2F5c1xuLy9SZXF1aXJlczogY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIoKSB7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgaWYoZy5wcm9jZXNzICYmIGcucHJvY2Vzcy5vbikge1xuICAgIGcucHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlvbiAoZXJyLCBvcmlnaW4pIHtcbiAgICAgIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGVycik7XG4gICAgICBnLnByb2Nlc3MuZXhpdCAoMik7XG4gICAgfSlcbiAgfVxuICBlbHNlIGlmKGcuYWRkRXZlbnRMaXN0ZW5lcil7XG4gICAgZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgIGlmKGV2ZW50LmVycm9yKXtcbiAgICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXZlbnQuZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5jYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyKCk7XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBNbEZha2VEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sRmFrZUZpbGUsIGNhbWxfY3JlYXRlX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2FycmF5LCBjYW1sX2J5dGVzX29mX3N0cmluZywgY2FtbF9ieXRlc19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9yYWlzZV93aXRoX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWVzXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3NcbmZ1bmN0aW9uIE1sRmFrZURldmljZSAocm9vdCwgZikge1xuICB0aGlzLmNvbnRlbnQ9e307XG4gIHRoaXMucm9vdCA9IHJvb3Q7XG4gIHRoaXMubG9va3VwRnVuID0gZjtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubm0gPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiAodGhpcy5yb290ICsgbmFtZSk7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmNyZWF0ZV9kaXJfaWZfbmVlZGVkID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgY29tcCA9IG5hbWUuc3BsaXQoXCIvXCIpO1xuICB2YXIgcmVzID0gXCJcIjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGNvbXAubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICByZXMgKz0gY29tcFtpXSArIFwiL1wiO1xuICAgIGlmKHRoaXMuY29udGVudFtyZXNdKSBjb250aW51ZTtcbiAgICB0aGlzLmNvbnRlbnRbcmVzXSA9IFN5bWJvbChcImRpcmVjdG9yeVwiKTtcbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5zbGFzaCA9IGZ1bmN0aW9uKG5hbWUpe1xuICByZXR1cm4gL1xcLyQvLnRlc3QobmFtZSk/bmFtZToobmFtZSArIFwiL1wiKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24obmFtZSkge1xuICBpZighdGhpcy5jb250ZW50W25hbWVdICYmIHRoaXMubG9va3VwRnVuKSB7XG4gICAgdmFyIHJlcyA9IHRoaXMubG9va3VwRnVuKGNhbWxfc3RyaW5nX29mX2pzYnl0ZXModGhpcy5yb290KSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKSk7XG4gICAgaWYocmVzICE9PSAwKSB7XG4gICAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgICAgdGhpcy5jb250ZW50W25hbWVdPW5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHJlc1sxXSkpO1xuICAgIH1cbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5leGlzdHMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIC8vIFRoZSByb290IG9mIHRoZSBkZXZpY2UgZXhpc3RzXG4gIGlmKG5hbWUgPT0gXCJcIikgcmV0dXJuIDE7XG4gIC8vIENoZWNrIGlmIGEgZGlyZWN0b3J5IGV4aXN0c1xuICB2YXIgbmFtZV9zbGFzaCA9IHRoaXMuc2xhc2gobmFtZSk7XG4gIGlmKHRoaXMuY29udGVudFtuYW1lX3NsYXNoXSkgcmV0dXJuIDE7XG4gIC8vIENoZWNrIGlmIGEgZmlsZSBleGlzdHNcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIHJldHVybiB0aGlzLmNvbnRlbnRbbmFtZV0/MTowO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ta2RpciA9IGZ1bmN0aW9uKG5hbWUsbW9kZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gIGlmKHRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVFWElTVFwiLCBcIm1rZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IEZpbGUgZXhpc3RzXCIpO1xuICAgIH1cbiAgfVxuICB2YXIgcGFyZW50ID0gL14oLiopXFwvW14vXSsvLmV4ZWMobmFtZSk7XG4gIHBhcmVudCA9IChwYXJlbnQgJiYgcGFyZW50WzFdKSB8fCAnJztcbiAgaWYoIXRoaXMuZXhpc3RzKHBhcmVudCkpe1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9FTlRcIiwgXCJta2RpclwiLCB0aGlzLm5tKHBhcmVudCkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihwYXJlbnQgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKHBhcmVudCkpe1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URElSXCIsIFwibWtkaXJcIiwgdGhpcy5ubShwYXJlbnQpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IocGFyZW50ICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZCh0aGlzLnNsYXNoKG5hbWUpKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUucm1kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gcmFpc2VfdW5peCAmJiBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgdmFyIG5hbWVfc2xhc2ggPSAobmFtZSA9PSBcIlwiKT9cIlwiOih0aGlzLnNsYXNoKG5hbWUpKTtcbiAgdmFyIHIgPSBuZXcgUmVnRXhwKFwiXlwiICsgbmFtZV9zbGFzaCArIFwiKFteL10rKVwiKTtcbiAgaWYoIXRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT0VOVFwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URElSXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBmb3IodmFyIG4gaW4gdGhpcy5jb250ZW50KSB7XG4gICAgaWYobi5tYXRjaChyKSkge1xuICAgICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVEVNUFRZXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiOiBEaXJlY3Rvcnkgbm90IGVtcHR5XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBkZWxldGUgdGhpcy5jb250ZW50W25hbWVfc2xhc2hdO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5yZWFkZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgbmFtZV9zbGFzaCA9IChuYW1lID09IFwiXCIpP1wiXCI6KHRoaXMuc2xhc2gobmFtZSkpO1xuICBpZighdGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKG5hbWUpKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gIH1cbiAgdmFyIHIgPSBuZXcgUmVnRXhwKFwiXlwiICsgbmFtZV9zbGFzaCArIFwiKFteL10rKVwiKTtcbiAgdmFyIHNlZW4gPSB7fVxuICB2YXIgYSA9IFtdO1xuICBmb3IodmFyIG4gaW4gdGhpcy5jb250ZW50KSB7XG4gICAgdmFyIG0gPSBuLm1hdGNoKHIpO1xuICAgIGlmKG0gJiYgIXNlZW5bbVsxXV0pIHtzZWVuW21bMV1dID0gdHJ1ZTsgYS5wdXNoKG1bMV0pfVxuICB9XG4gIHJldHVybiBhO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5pc19kaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIGlmKG5hbWUgPT0gXCJcIikgIHJldHVybiB0cnVlO1xuICB2YXIgbmFtZV9zbGFzaCA9IHRoaXMuc2xhc2gobmFtZSk7XG4gIHJldHVybiB0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF0/MTowO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS51bmxpbmsgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBvayA9IHRoaXMuY29udGVudFtuYW1lXT90cnVlOmZhbHNlO1xuICBkZWxldGUgdGhpcy5jb250ZW50W25hbWVdO1xuICByZXR1cm4gb2s7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbihuYW1lLCBmKSB7XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIGlmICh0aGlzLmNvbnRlbnRbbmFtZV0pIHtcbiAgICBpZiAodGhpcy5pc19kaXIobmFtZSkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGlzIGEgZGlyZWN0b3J5XCIpO1xuICAgIGlmIChmLmNyZWF0ZSAmJiBmLmV4Y2wpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gICAgdmFyIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gICAgaWYoZi50cnVuY2F0ZSkgZmlsZS50cnVuY2F0ZSgpO1xuICAgIHJldHVybiBmaWxlO1xuICB9IGVsc2UgaWYgKGYuY3JlYXRlKSB7XG4gICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICB0aGlzLmNvbnRlbnRbbmFtZV0gPSBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFtuYW1lXTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSAodGhpcy5ubShuYW1lKSk7XG4gIH1cbn1cblxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5yZWdpc3Rlcj0gZnVuY3Rpb24gKG5hbWUsY29udGVudCl7XG4gIHZhciBmaWxlO1xuICBpZih0aGlzLmNvbnRlbnRbbmFtZV0pIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gIGlmKGNhbWxfaXNfbWxfYnl0ZXMoY29udGVudCkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNvbnRlbnQpO1xuICBpZihjYW1sX2lzX21sX3N0cmluZyhjb250ZW50KSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9zdHJpbmcoY29udGVudCkpO1xuICBlbHNlIGlmKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9hcnJheShjb250ZW50KSk7XG4gIGVsc2UgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhjb250ZW50KSk7XG4gIGVsc2UgaWYoY29udGVudC50b1N0cmluZykge1xuICAgIHZhciBieXRlcyA9IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGNvbnRlbnQudG9TdHJpbmcoKSkpO1xuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShieXRlcyk7XG4gIH1cbiAgaWYoZmlsZSl7XG4gICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICB0aGlzLmNvbnRlbnRbbmFtZV0gPSBmaWxlO1xuICB9XG4gIGVsc2UgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogcmVnaXN0ZXJpbmcgZmlsZSB3aXRoIGludmFsaWQgY29udGVudCB0eXBlXCIpO1xufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxGYWtlRGV2aWNlXG5cbi8vUHJvdmlkZXM6IE1sRmFrZUZpbGVcbi8vUmVxdWlyZXM6IE1sRmlsZVxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYmxpdF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZ2V0XG5mdW5jdGlvbiBNbEZha2VGaWxlKGNvbnRlbnQpe1xuICB0aGlzLmRhdGEgPSBjb250ZW50O1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUgPSBuZXcgTWxGaWxlICgpO1xuTWxGYWtlRmlsZS5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB2YXIgb2xkID0gdGhpcy5kYXRhO1xuICB0aGlzLmRhdGEgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW58MCk7XG4gIGNhbWxfYmxpdF9ieXRlcyhvbGQsIDAsIHRoaXMuZGF0YSwgMCwgbGVuKTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHRoaXMuZGF0YSk7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYscG9zLGxlbil7XG4gIHZhciBjbGVuID0gdGhpcy5sZW5ndGgoKTtcbiAgaWYob2Zmc2V0ICsgbGVuID49IGNsZW4pIHtcbiAgICB2YXIgbmV3X3N0ciA9IGNhbWxfY3JlYXRlX2J5dGVzKG9mZnNldCArIGxlbik7XG4gICAgdmFyIG9sZF9kYXRhID0gdGhpcy5kYXRhO1xuICAgIHRoaXMuZGF0YSA9IG5ld19zdHI7XG4gICAgY2FtbF9ibGl0X2J5dGVzKG9sZF9kYXRhLCAwLCB0aGlzLmRhdGEsIDAsIGNsZW4pO1xuICB9XG4gIGNhbWxfYmxpdF9zdHJpbmcoYnVmLCBwb3MsIHRoaXMuZGF0YSwgb2Zmc2V0LCBsZW4pO1xuICByZXR1cm4gMFxufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKG9mZnNldCxidWYscG9zLGxlbil7XG4gIHZhciBjbGVuID0gdGhpcy5sZW5ndGgoKTtcbiAgY2FtbF9ibGl0X2J5dGVzKHRoaXMuZGF0YSwgb2Zmc2V0LCBidWYsIHBvcywgbGVuKTtcbiAgcmV0dXJuIDBcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLnJlYWRfb25lID0gZnVuY3Rpb24ob2Zmc2V0KXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfZ2V0KHRoaXMuZGF0YSwgb2Zmc2V0KTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24oKXtcblxufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbEZha2VGaWxlXG4iLCIvL1Byb3ZpZGVzOiBpbml0aWFsaXplX25hdFxuLy9SZXF1aXJlczogY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBzZXJpYWxpemVfbmF0LCBkZXNlcmlhbGl6ZV9uYXQsIGNhbWxfaGFzaF9uYXRcbmZ1bmN0aW9uIGluaXRpYWxpemVfbmF0KCkge1xuICBjYW1sX2N1c3RvbV9vcHNbXCJfbmF0XCJdID1cbiAgICB7IGRlc2VyaWFsaXplIDogZGVzZXJpYWxpemVfbmF0LFxuICAgICAgc2VyaWFsaXplIDogc2VyaWFsaXplX25hdCxcbiAgICAgIGhhc2ggOiBjYW1sX2hhc2hfbmF0XG4gICAgfVxufVxuXG4vL1Byb3ZpZGVzOiBNbE5hdFxuZnVuY3Rpb24gTWxOYXQoeCl7XG4gIHRoaXMuZGF0YSA9IG5ldyBnbG9iYWxUaGlzLkludDMyQXJyYXkoeCk7XG4gIC8vIGxlbmd0aF9uYXQgaXNuJ3QgZXh0ZXJuYWwsIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGUgT2JqLnNpemVcbiAgLy8gd29yayBvdXQgcmlnaHQuIFRoZSArMiB0byBhcnJheSBsZW5ndGggc2VlbXMgdG8gd29yay5cbiAgdGhpcy5sZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoICsgMlxufVxuXG5NbE5hdC5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBcIl9uYXRcIjtcblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX25hdFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnQsIG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjYW1sX2hhc2hfbmF0KHgpIHtcbiAgdmFyIGxlbiA9IG51bV9kaWdpdHNfbmF0KHgsIDAsIHguZGF0YS5sZW5ndGgpO1xuICB2YXIgaCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgeC5kYXRhW2ldKTtcbiAgfVxuICByZXR1cm4gaDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBuYXRfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBuYXRfb2ZfYXJyYXkobCl7XG4gIHJldHVybiBuZXcgTWxOYXQobCk7XG59XG5cbi8vUHJvdmlkZXM6IGNyZWF0ZV9uYXRcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBjcmVhdGVfbmF0KHNpemUpIHtcbiAgdmFyIGFyciA9IG5ldyBNbE5hdChzaXplKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgIGFyci5kYXRhW2ldID0gLTE7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cblxuLy9Qcm92aWRlczogc2V0X3RvX3plcm9fbmF0XG5mdW5jdGlvbiBzZXRfdG9femVyb19uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAwO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBibGl0X25hdFxuZnVuY3Rpb24gYmxpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMiwgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gbmF0Mi5kYXRhW29mczIraV07XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IHNldF9kaWdpdF9uYXRcbmZ1bmN0aW9uIHNldF9kaWdpdF9uYXQobmF0LCBvZnMsIGRpZ2l0KSB7XG4gIG5hdC5kYXRhW29mc10gPSBkaWdpdDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG50aF9kaWdpdF9uYXRcbmZ1bmN0aW9uIG50aF9kaWdpdF9uYXQobmF0LCBvZnMpIHtcbiAgcmV0dXJuIG5hdC5kYXRhW29mc107XG59XG5cbi8vUHJvdmlkZXM6IHNldF9kaWdpdF9uYXRfbmF0aXZlXG5mdW5jdGlvbiBzZXRfZGlnaXRfbmF0X25hdGl2ZShuYXQsIG9mcywgZGlnaXQpIHtcbiAgbmF0LmRhdGFbb2ZzXSA9IGRpZ2l0O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbnRoX2RpZ2l0X25hdF9uYXRpdmVcbmZ1bmN0aW9uIG50aF9kaWdpdF9uYXRfbmF0aXZlKG5hdCwgb2ZzKSB7XG4gIHJldHVybiBuYXQuZGF0YVtvZnNdO1xufVxuXG4vL1Byb3ZpZGVzOiBudW1fZGlnaXRzX25hdFxuZnVuY3Rpb24gbnVtX2RpZ2l0c19uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmKG5hdC5kYXRhW29mcytpXSAhPSAwKSByZXR1cm4gaSsxO1xuICB9XG4gIHJldHVybiAxOyAvLyAwIGNvdW50cyBhcyAxIGRpZ2l0XG59XG5cbi8vUHJvdmlkZXM6IG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdFxuZnVuY3Rpb24gbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0KG5hdCwgb2ZzKSB7XG4gIHZhciBhID0gbmF0LmRhdGFbb2ZzXTtcbiAgdmFyIGIgPSAwO1xuICBpZihhICYgMHhGRkZGMDAwMCkgeyBiICs9MTY7IGEgPj4+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+IDApKSByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBhcmVfbmF0X3JlYWxcbi8vUmVxdWlyZXM6IGNvbXBhcmVfbmF0XG5mdW5jdGlvbiBjb21wYXJlX25hdF9yZWFsKG5hdDEsbmF0Mil7XG4gIHJldHVybiBjb21wYXJlX25hdChuYXQxLDAsbmF0MS5kYXRhLmxlbmd0aCxuYXQyLDAsbmF0Mi5kYXRhLmxlbmd0aCk7XG59XG5cbi8vUHJvdmlkZXM6IGxhbmRfZGlnaXRfbmF0XG5mdW5jdGlvbiBsYW5kX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSAmPSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBsb3JfZGlnaXRfbmF0XG5mdW5jdGlvbiBsb3JfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdIHw9IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGx4b3JfZGlnaXRfbmF0XG5mdW5jdGlvbiBseG9yX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSBePSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IHNlcmlhbGl6ZV9uYXRcbmZ1bmN0aW9uIHNlcmlhbGl6ZV9uYXQod3JpdGVyLCBuYXQsIHN6KXtcbiAgdmFyIGxlbiA9IG5hdC5kYXRhLmxlbmd0aDtcbiAgd3JpdGVyLndyaXRlKDMyLCBsZW4pO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIHdyaXRlci53cml0ZSgzMiwgbmF0LmRhdGFbaV0pO1xuICB9XG4gIHN6WzBdID0gbGVuICogNDtcbiAgc3pbMV0gPSBsZW4gKiA4O1xufVxuXG4vL1Byb3ZpZGVzOiBkZXNlcmlhbGl6ZV9uYXRcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBkZXNlcmlhbGl6ZV9uYXQocmVhZGVyLCBzeil7XG4gIHZhciBsZW4gPSByZWFkZXIucmVhZDMycygpO1xuICB2YXIgbmF0ID0gbmV3IE1sTmF0KGxlbik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgbmF0LmRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICB9XG4gIHN6WzBdID0gbGVuICogNDtcbiAgcmV0dXJuIG5hdDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcblxuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVcbnZhciBjYW1sX2dyX3N0YXRlO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9nZXQoKSB7XG4gIGlmKGNhbWxfZ3Jfc3RhdGUpIHtcbiAgICByZXR1cm4gY2FtbF9ncl9zdGF0ZTtcbiAgfVxuICB0aHJvdyBbMCxjYW1sX25hbWVkX3ZhbHVlKFwiR3JhcGhpY3MuR3JhcGhpY19mYWlsdXJlXCIpLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiTm90IGluaXRpYWxpemVkXCIpXVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGUsY2FtbF9ncl9zdGF0ZV9pbml0XG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX3NldChjdHgpIHtcbiAgY2FtbF9ncl9zdGF0ZT1jdHg7XG4gIGNhbWxfZ3Jfc3RhdGVfaW5pdCgpXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX29wZW5fZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX3NldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfb3Blbl9ncmFwaChpbmZvKXtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICB2YXIgaW5mbyA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGluZm8pO1xuICBmdW5jdGlvbiBnZXQobmFtZSl7XG4gICAgdmFyIHJlcyA9IGluZm8ubWF0Y2goXCIoXnwsKSAqXCIrbmFtZStcIiAqPSAqKFthLXpBLVowLTlfXSspICooLHwkKVwiKTtcbiAgICBpZihyZXMpIHJldHVybiByZXNbMl07XG4gIH1cbiAgdmFyIHNwZWNzID0gW107XG4gIGlmKCEoaW5mbz09XCJcIikpIHNwZWNzLnB1c2goaW5mbyk7XG4gIHZhciB0YXJnZXQgPSBnZXQoXCJ0YXJnZXRcIik7XG4gIGlmKCF0YXJnZXQpIHRhcmdldD1cIlwiO1xuICB2YXIgc3RhdHVzID0gZ2V0KFwic3RhdHVzXCIpO1xuICBpZighc3RhdHVzKSBzcGVjcy5wdXNoKFwic3RhdHVzPTFcIilcblxuICB2YXIgdyA9IGdldChcIndpZHRoXCIpO1xuICB3ID0gdz9wYXJzZUludCh3KToyMDA7XG4gIHNwZWNzLnB1c2goXCJ3aWR0aD1cIit3KTtcblxuICB2YXIgaCA9IGdldChcImhlaWdodFwiKTtcbiAgaCA9IGg/cGFyc2VJbnQoaCk6MjAwO1xuICBzcGVjcy5wdXNoKFwiaGVpZ2h0PVwiK2gpO1xuXG4gIHZhciB3aW4gPSBnLm9wZW4oXCJhYm91dDpibGFua1wiLHRhcmdldCxzcGVjcy5qb2luKFwiLFwiKSk7XG4gIGlmKCF3aW4pIHtjYW1sX2ZhaWx3aXRoKFwiR3JhcGhpY3Mub3Blbl9ncmFwaDogY2Fubm90IG9wZW4gdGhlIHdpbmRvd1wiKX1cbiAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDtcbiAgdmFyIGNhbnZhcyA9IGRvYy5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICBjYW52YXMud2lkdGggPSB3O1xuICBjYW52YXMuaGVpZ2h0ID0gaDtcbiAgdmFyIGN0eCA9IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlKGNhbnZhcyx3LGgpO1xuICBjdHguc2V0X3RpdGxlID0gZnVuY3Rpb24gKHRpdGxlKSB7XG4gICAgZG9jLnRpdGxlID0gdGl0bGU7XG4gIH07XG4gIGNhbWxfZ3Jfc3RhdGVfc2V0KGN0eCk7XG4gIHZhciBib2R5ID0gZG9jLmJvZHk7XG4gIGJvZHkuc3R5bGUubWFyZ2luID0gXCIwcHhcIjtcbiAgYm9keS5hcHBlbmRDaGlsZChjYW52YXMpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9pbml0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF9jb2xvcixjYW1sX2dyX21vdmV0byxjYW1sX2dyX3Jlc2l6ZV93aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgsY2FtbF9ncl9zZXRfdGV4dF9zaXplLGNhbWxfZ3Jfc2V0X2ZvbnRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZVxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9pbml0KCl7XG4gIGNhbWxfZ3JfbW92ZXRvKGNhbWxfZ3Jfc3RhdGUueCxjYW1sX2dyX3N0YXRlLnkpO1xuICBjYW1sX2dyX3Jlc2l6ZV93aW5kb3coY2FtbF9ncl9zdGF0ZS53aWR0aCxjYW1sX2dyX3N0YXRlLmhlaWdodCk7XG4gIGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgoY2FtbF9ncl9zdGF0ZS5saW5lX3dpZHRoKTtcbiAgY2FtbF9ncl9zZXRfdGV4dF9zaXplKGNhbWxfZ3Jfc3RhdGUudGV4dF9zaXplKTtcbiAgY2FtbF9ncl9zZXRfZm9udChjYW1sX2dyX3N0YXRlLmZvbnQpO1xuICBjYW1sX2dyX3NldF9jb2xvcihjYW1sX2dyX3N0YXRlLmNvbG9yKTtcbiAgY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlKGNhbWxfZ3Jfc3RhdGUudGl0bGUpO1xuICAvL2NhbWxfZ3JfcmVzaXplX3dpbmRvdyBtaWdodCByZXNldCBzb21lIGNhbnZhcycgcHJvcGVydGllc1xuICBjYW1sX2dyX3N0YXRlLmNvbnRleHQudGV4dEJhc2VsaW5lID0gJ2JvdHRvbSc7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2NyZWF0ZShjYW52YXMsdyxoKXtcbiAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICByZXR1cm4ge1xuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgY2FudmFzIDogY2FudmFzLFxuICAgIHggOiAwLFxuICAgIHkgOiAwLFxuICAgIHdpZHRoIDogdyxcbiAgICBoZWlnaHQgOiBoLFxuICAgIGxpbmVfd2lkdGggOiAxLFxuICAgIGZvbnQgOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiZml4ZWRcIiksXG4gICAgdGV4dF9zaXplIDogMjYsXG4gICAgY29sb3IgOiAweDAwMDAwMCxcbiAgICB0aXRsZSA6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIilcbiAgfTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kb2Nfb2Zfc3RhdGVcbmZ1bmN0aW9uIGNhbWxfZ3JfZG9jX29mX3N0YXRlKHN0YXRlKSB7XG4gIGlmKHN0YXRlLmNhbnZhcy5vd25lckRvY3VtZW50KVxuICAgIHJldHVybiBzdGF0ZS5jYW52YXMub3duZXJEb2N1bWVudDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbG9zZV9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xvc2VfZ3JhcGgoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNhbnZhcy53aWR0aCA9IDA7XG4gIHMuY2FudmFzLmhlaWdodCA9IDA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlKG5hbWUpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMudGl0bGUgPSBuYW1lO1xuICB2YXIganNuYW1lID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSk7XG4gIGlmKHMuc2V0X3RpdGxlKSBzLnNldF90aXRsZShqc25hbWUpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9yZXNpemVfd2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9yZXNpemVfd2luZG93KHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKVxuICBzLndpZHRoID0gdztcbiAgcy5oZWlnaHQgPSBoO1xuICBzLmNhbnZhcy53aWR0aCA9IHc7XG4gIHMuY2FudmFzLmhlaWdodCA9IGg7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2NsZWFyX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jbGVhcl9ncmFwaCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY2FudmFzLndpZHRoID0gcy53aWR0aDtcbiAgcy5jYW52YXMuaGVpZ2h0ID0gcy5oZWlnaHQ7XG4gIC8vICBzLmNvbnRleHQuc3Ryb2tlUmVjdCAoMC4sIDAuLCBzLndpZHRoLCBzLmhlaWdodCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpemVfeFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2l6ZV94KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMud2lkdGg7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpemVfeVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2l6ZV95KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMuaGVpZ2h0O1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2NvbG9yXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zZXRfY29sb3IoY29sb3Ipe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIGZ1bmN0aW9uIGNvbnZlcnQobnVtYmVyKSB7XG4gICAgdmFyIHN0ciA9ICcnICsgbnVtYmVyLnRvU3RyaW5nKDE2KTtcbiAgICB3aGlsZSAoc3RyLmxlbmd0aCA8IDIpIHN0ciA9ICcwJyArIHN0cjtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIHZhclxuICByID0gKGNvbG9yID4+IDE2KSAmIDB4ZmYsXG4gIGcgPSAoY29sb3IgPj4gOCkgICYgMHhmZixcbiAgYiA9IChjb2xvciA+PiAwKSAgJiAweGZmO1xuICBzLmNvbG9yPWNvbG9yO1xuICB2YXIgY19zdHIgPSAnIycgKyBjb252ZXJ0KHIpICsgY29udmVydChnKSArIGNvbnZlcnQoYik7XG4gIHMuY29udGV4dC5maWxsU3R5bGUgPSAgIGNfc3RyO1xuICBzLmNvbnRleHQuc3Ryb2tlU3R5bGUgPSBjX3N0cjtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3Bsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3Bsb3QoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW09cy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSgxLDEpO1xuICB2YXIgZCA9IGltLmRhdGE7XG4gIHZhciBjb2xvciA9IHMuY29sb3I7XG4gIGRbMF0gPSAoY29sb3IgPj4gMTYpICYgMHhmZjsgLy9yXG4gIGRbMV0gPSAoY29sb3IgPj4gOCkgICYgMHhmZiwgLy9nXG4gIGRbMl0gPSAoY29sb3IgPj4gMCkgICYgMHhmZjsgLy9iXG4gIGRbM10gPSAweEZGOyAvL2FcbiAgcy54PXg7XG4gIHMueT15O1xuICBzLmNvbnRleHQucHV0SW1hZ2VEYXRhKGltLHgscy5oZWlnaHQgLSB5KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcG9pbnRfY29sb3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3BvaW50X2NvbG9yKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltPXMuY29udGV4dC5nZXRJbWFnZURhdGEoeCxzLmhlaWdodCAtIHksMSwxKTtcbiAgdmFyIGQgPSBpbS5kYXRhO1xuICByZXR1cm4gKGRbMF0gPDwgMTYpICsgKGRbMV0gPDwgOCkgKyBkWzJdO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9tb3ZldG9cbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX21vdmV0byh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMueD14O1xuICBzLnk9eTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3VycmVudF94XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jdXJyZW50X3goKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy54XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2N1cnJlbnRfeVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3VycmVudF95KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMueVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9saW5ldG9cbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2xpbmV0byh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgcy5jb250ZXh0Lm1vdmVUbyhzLngscy5oZWlnaHQgLSBzLnkpO1xuICBzLmNvbnRleHQubGluZVRvKHgscy5oZWlnaHQgLSB5KTtcbiAgcy5jb250ZXh0LnN0cm9rZSgpO1xuICBzLng9eDtcbiAgcy55PXk7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3JlY3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfcmVjdCh4LHksdyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuc3Ryb2tlUmVjdCh4LHMuaGVpZ2h0IC0geSx3LC1oKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9hcmNfYXV4KGN0eCxjeCxjeSxyeSxyeCxhMSxhMil7XG4gIHdoaWxlKGExPmEyKSBhMis9MzYwO1xuICBhMSAvPSAxODA7XG4gIGEyIC89IDE4MDtcbiAgdmFyIHJvdCA9IDAseFBvcyx5UG9zLHhQb3NfcHJldix5UG9zX3ByZXY7XG4gIHZhciBzcGFjZSA9IDI7XG4gIHZhciBudW0gPSAoKChhMiAtIGExKSAqIE1hdGguUEkgKiAoKHJ4K3J5KS8yKSkgLyBzcGFjZSkgfCAwO1xuICB2YXIgZGVsdGEgPSAoYTIgLSBhMSkgKiBNYXRoLlBJIC8gbnVtO1xuICB2YXIgaSA9IGExICogTWF0aC5QSTtcbiAgZm9yICh2YXIgaj0wO2o8PW51bTtqKyspe1xuICAgIHhQb3MgPSBjeCAtIChyeCAqIE1hdGguc2luKGkpKSAqIE1hdGguc2luKHJvdCAqIE1hdGguUEkpICsgKHJ5ICogTWF0aC5jb3MoaSkpICogTWF0aC5jb3Mocm90ICogTWF0aC5QSSk7XG4gICAgeFBvcyA9IHhQb3MudG9GaXhlZCgyKTtcbiAgICB5UG9zID0gY3kgKyAocnkgKiBNYXRoLmNvcyhpKSkgKiBNYXRoLnNpbihyb3QgKiBNYXRoLlBJKSArIChyeCAqIE1hdGguc2luKGkpKSAqIE1hdGguY29zKHJvdCAqIE1hdGguUEkpO1xuICAgIHlQb3MgPSB5UG9zLnRvRml4ZWQoMik7XG4gICAgaWYgKGo9PTApIHtcbiAgICAgIGN0eC5tb3ZlVG8oeFBvcywgeVBvcyk7XG4gICAgfSBlbHNlIGlmICh4UG9zX3ByZXYhPXhQb3MgfHwgeVBvc19wcmV2IT15UG9zKXtcbiAgICAgIGN0eC5saW5lVG8oeFBvcywgeVBvcyk7XG4gICAgfVxuICAgIHhQb3NfcHJldj14UG9zO1xuICAgIHlQb3NfcHJldj15UG9zO1xuICAgIGktPSBkZWx0YTsvL2Njd1xuICB9XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19hcmNcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0LCBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19hcmMoeCx5LHJ4LHJ5LGExLGEyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIGNhbWxfZ3JfYXJjX2F1eChzLmNvbnRleHQseCxzLmhlaWdodCAtIHkscngscnksYTEsYTIpO1xuICBzLmNvbnRleHQuc3Ryb2tlKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9saW5lX3dpZHRoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zZXRfbGluZV93aWR0aCh3KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmxpbmVfd2lkdGggPSB3O1xuICBzLmNvbnRleHQubGluZVdpZHRoID0gd1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX3JlY3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfcmVjdCh4LHksdyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuZmlsbFJlY3QoeCxzLmhlaWdodCAtIHksdywtaCk7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX3BvbHlcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfcG9seShhcil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBzLmNvbnRleHQubW92ZVRvKGFyWzFdWzFdLHMuaGVpZ2h0IC0gYXJbMV1bMl0pO1xuICBmb3IodmFyIGkgPSAyOyBpIDwgYXIubGVuZ3RoOyBpKyspXG4gICAgcy5jb250ZXh0LmxpbmVUbyhhcltpXVsxXSxzLmhlaWdodCAtIGFyW2ldWzJdKTtcbiAgcy5jb250ZXh0LmxpbmVUbyhhclsxXVsxXSxzLmhlaWdodCAtIGFyWzFdWzJdKTtcbiAgcy5jb250ZXh0LmZpbGwoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9hcmNcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0LCBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9hcmMoeCx5LHJ4LHJ5LGExLGEyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIGNhbWxfZ3JfYXJjX2F1eChzLmNvbnRleHQseCxzLmhlaWdodCAtIHkscngscnksYTEsYTIpO1xuICBzLmNvbnRleHQuZmlsbCgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3N0clxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19zdHIoc3RyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgbSA9IHMuY29udGV4dC5tZWFzdXJlVGV4dChzdHIpO1xuICB2YXIgZHggPSBtLndpZHRoO1xuICBzLmNvbnRleHQuZmlsbFRleHQoc3RyLHMueCxzLmhlaWdodCAtIHMueSk7XG4gIHMueCArPSBkeCB8IDA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfY2hhclxuLy9SZXF1aXJlczogY2FtbF9ncl9kcmF3X3N0clxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2NoYXIoYyl7XG4gIGNhbWxfZ3JfZHJhd19zdHIoU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2dyX2RyYXdfc3RyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3N0cmluZyhzdHIpe1xuICBjYW1sX2dyX2RyYXdfc3RyKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHN0cikpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfZm9udFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF9mb250KGYpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuZm9udCA9IGY7XG4gIHMuY29udGV4dC5mb250ID0gcy50ZXh0X3NpemUgKyBcInB4IFwiICsgY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocy5mb250KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF90ZXh0X3NpemUoc2l6ZSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy50ZXh0X3NpemUgPSBzaXplO1xuICBzLmNvbnRleHQuZm9udCA9IHMudGV4dF9zaXplICsgXCJweCBcIiArIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMuZm9udCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3RleHRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3RleHRfc2l6ZSh0eHQpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciB3ID0gcy5jb250ZXh0Lm1lYXN1cmVUZXh0KGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHR4dCkpLndpZHRoO1xuICByZXR1cm4gWzAsdyxzLnRleHRfc2l6ZV07XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9tYWtlX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9tYWtlX2ltYWdlKGFycil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGggPSBhcnIubGVuZ3RoIC0gMSA7XG4gIHZhciB3ID0gYXJyWzFdLmxlbmd0aCAtIDE7XG4gIHZhciBpbSA9IHMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEodyxoKTtcbiAgZm9yKHZhciBpPTA7aTxoO2krKyl7XG4gICAgZm9yKHZhciBqPTA7ajx3O2orKyl7XG4gICAgICB2YXIgYyA9IGFycltpKzFdW2orMV07XG4gICAgICB2YXIgbyA9IGkqKHcqNCkgKyAoaiAqIDQpO1xuICAgICAgaWYoYyA9PSAtMSkge1xuICAgICAgICBpbS5kYXRhW28gKyAwXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDFdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgMl0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAzXSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbS5kYXRhW28gKyAwXSA9IGMgPj4gMTYgJiAweGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAxXSA9IGMgPj4gIDggJiAweGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAyXSA9IGMgPj4gIDAgJiAwWGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAzXSA9IDB4ZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kdW1wX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kdW1wX2ltYWdlKGltKXtcbiAgdmFyIGRhdGEgPSBbMF1cbiAgZm9yKHZhciBpPTA7IGk8aW0uaGVpZ2h0O2krKyl7XG4gICAgZGF0YVtpKzFdID0gWzBdXG4gICAgZm9yKHZhciBqPTA7IGo8aW0ud2lkdGg7aisrKXtcbiAgICAgIHZhciBvID0gaSooaW0ud2lkdGgqNCkgKyAoaiAqIDQpLFxuICAgICAgICAgIHIgPSBpbS5kYXRhW28rMF0sXG4gICAgICAgICAgZyA9IGltLmRhdGFbbysxXSxcbiAgICAgICAgICBiID0gaW0uZGF0YVtvKzJdO1xuICAgICAgZGF0YVtpKzFdW2orMV0gPSAociA8PCAxNikgKyAoZyA8PCA4KSArIGJcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19pbWFnZShpbSx4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIGlmKCFpbS5pbWFnZSkge1xuICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGNhbnZhcy53aWR0aCA9IHMud2lkdGg7XG4gICAgY2FudmFzLmhlaWdodCA9IHMuaGVpZ2h0O1xuICAgIGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIikucHV0SW1hZ2VEYXRhKGltLDAsMCk7XG4gICAgdmFyIGltYWdlID0gbmV3IGdsb2JhbFRoaXMuSW1hZ2UoKTtcbiAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzLmNvbnRleHQuZHJhd0ltYWdlKGltYWdlLHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5KTtcbiAgICAgIGltLmltYWdlID0gaW1hZ2U7XG4gICAgfVxuICAgIGltYWdlLnNyYyA9IGNhbnZhcy50b0RhdGFVUkwoXCJpbWFnZS9wbmdcIik7XG4gIH0gZWxzZSB7XG4gICAgcy5jb250ZXh0LmRyYXdJbWFnZShpbS5pbWFnZSx4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2NyZWF0ZV9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3JlYXRlX2ltYWdlKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEoeCx5KTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfYmxpdF9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfYmxpdF9pbWFnZShpbSx4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbTIgPSBzLmNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5LGltLndpZHRoLGltLmhlaWdodCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW0yLmRhdGEubGVuZ3RoOyBpKz00KXtcbiAgICBpbS5kYXRhW2ldID0gaW0yLmRhdGFbaV07XG4gICAgaW0uZGF0YVtpKzFdID0gaW0yLmRhdGFbaSsxXTtcbiAgICBpbS5kYXRhW2krMl0gPSBpbTIuZGF0YVtpKzJdO1xuICAgIGltLmRhdGFbaSszXSA9IGltMi5kYXRhW2krM107XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpZ2lvX2hhbmRsZXJcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2lnaW9faGFuZGxlcigpe3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaWdpb19zaWduYWxcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2lnaW9fc2lnbmFsKCl7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3dhaXRfZXZlbnRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfd2FpdF9ldmVudChfZXZsKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfd2FpdF9ldmVudCBub3QgSW1wbGVtZW50ZWQ6IHVzZSBHcmFwaGljc19qcyBpbnN0ZWFkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N5bmNocm9uaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3N5bmNocm9uaXplICgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfc3luY2hyb25pemUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9yZW1lbWJlcl9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3JlbWVtYmVyX21vZGUgKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9yZW1lbWJlcl9tb2RlIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZGlzcGxheV9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX2Rpc3BsYXlfbW9kZSgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfZGlzcGxheV9tb2RlIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl93aW5kb3dfaWRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfd2luZG93X2lkKGEpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfd2luZG93X2lkIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9vcGVuX3N1YndpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9vcGVuX3N1YndpbmRvdyhhLGIsYyxkKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX29wZW5fc3Vid2luZG93IG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93KGEpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfY29uc3RhbnRzXG52YXIgY2FtbF9tYXJzaGFsX2NvbnN0YW50cyA9IHtcbiAgUFJFRklYX1NNQUxMX0JMT0NLOiAgICAgICAgIDB4ODAsXG4gIFBSRUZJWF9TTUFMTF9JTlQ6ICAgICAgICAgICAweDQwLFxuICBQUkVGSVhfU01BTExfU1RSSU5HOiAgICAgICAgMHgyMCxcbiAgQ09ERV9JTlQ4OiAgICAgICAgICAgICAgICAgIDB4MDAsXG4gIENPREVfSU5UMTY6ICAgICAgICAgICAgICAgICAweDAxLFxuICBDT0RFX0lOVDMyOiAgICAgICAgICAgICAgICAgMHgwMixcbiAgQ09ERV9JTlQ2NDogICAgICAgICAgICAgICAgIDB4MDMsXG4gIENPREVfU0hBUkVEODogICAgICAgICAgICAgICAweDA0LFxuICBDT0RFX1NIQVJFRDE2OiAgICAgICAgICAgICAgMHgwNSxcbiAgQ09ERV9TSEFSRUQzMjogICAgICAgICAgICAgIDB4MDYsXG4gIENPREVfQkxPQ0szMjogICAgICAgICAgICAgICAweDA4LFxuICBDT0RFX0JMT0NLNjQ6ICAgICAgICAgICAgICAgMHgxMyxcbiAgQ09ERV9TVFJJTkc4OiAgICAgICAgICAgICAgIDB4MDksXG4gIENPREVfU1RSSU5HMzI6ICAgICAgICAgICAgICAweDBBLFxuICBDT0RFX0RPVUJMRV9CSUc6ICAgICAgICAgICAgMHgwQixcbiAgQ09ERV9ET1VCTEVfTElUVExFOiAgICAgICAgIDB4MEMsXG4gIENPREVfRE9VQkxFX0FSUkFZOF9CSUc6ICAgICAweDBELFxuICBDT0RFX0RPVUJMRV9BUlJBWThfTElUVExFOiAgMHgwRSxcbiAgQ09ERV9ET1VCTEVfQVJSQVkzMl9CSUc6ICAgIDB4MEYsXG4gIENPREVfRE9VQkxFX0FSUkFZMzJfTElUVExFOiAweDA3LFxuICBDT0RFX0NPREVQT0lOVEVSOiAgICAgICAgICAgMHgxMCxcbiAgQ09ERV9JTkZJWFBPSU5URVI6ICAgICAgICAgIDB4MTEsXG4gIENPREVfQ1VTVE9NOiAgICAgICAgICAgICAgICAweDEyLFxuICBDT0RFX0NVU1RPTV9MRU46ICAgICAgICAgICAgMHgxOCxcbiAgQ09ERV9DVVNUT01fRklYRUQ6ICAgICAgICAgIDB4MTlcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbFN0cmluZ1JlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gTWxTdHJpbmdSZWFkZXIgKHMsIGkpIHsgdGhpcy5zID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKTsgdGhpcy5pID0gaTsgfVxuTWxTdHJpbmdSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zLmNoYXJDb2RlQXQodGhpcy5pKyspOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zLmNoYXJDb2RlQXQodGhpcy5pKyspIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpICsgMSlcbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgMjQgPj4gMTYpIHwgcy5jaGFyQ29kZUF0KGkgKyAxKTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgocy5jaGFyQ29kZUF0KGkpIDw8IDI0KSB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCAxNikgfFxuICAgICAgICAgICAgKHMuY2hhckNvZGVBdChpKzIpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkrMykpID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCAyNCkgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgMTYpIHxcbiAgICAgIChzLmNoYXJDb2RlQXQoaSsyKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpKzMpO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHRoaXMucy5zdWJzdHJpbmcoaSwgaSArIGxlbikpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IEJpZ1N0cmluZ1JlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXksIGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIEJpZ1N0cmluZ1JlYWRlciAoYnMsIGkpIHsgdGhpcy5zID0gYnM7IHRoaXMuaSA9IGk7IH1cbkJpZ1N0cmluZ1JlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiBjYW1sX2JhX2dldF8xKHRoaXMucyx0aGlzLmkrKyk7IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiBjYW1sX2JhX2dldF8xKHRoaXMucyx0aGlzLmkrKykgPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpIDw8IDgpIHwgY2FtbF9iYV9nZXRfMShzLGkgKyAxKVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSA8PCAyNCA+PiAxNikgfCBjYW1sX2JhX2dldF8xKHMsaSArIDEpO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChjYW1sX2JhX2dldF8xKHMsaSkgICA8PCAyNCkgfCAoY2FtbF9iYV9nZXRfMShzLGkrMSkgPDwgMTYpIHxcbiAgICAgICAgICAgIChjYW1sX2JhX2dldF8xKHMsaSsyKSA8PCA4KSAgfCBjYW1sX2JhX2dldF8xKHMsaSszKSAgICAgICAgICkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpICAgPDwgMjQpIHwgKGNhbWxfYmFfZ2V0XzEocyxpKzEpIDw8IDE2KSB8XG4gICAgICAoY2FtbF9iYV9nZXRfMShzLGkrMikgPDwgOCkgIHwgY2FtbF9iYV9nZXRfMShzLGkrMyk7XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHZhciBhcnIgPSBuZXcgQXJyYXkobGVuKVxuICAgIGZvcih2YXIgaiA9IDA7IGogPCBsZW47IGorKyl7XG4gICAgICBhcnJbal0gPSBjYW1sX2JhX2dldF8xKHRoaXMucywgaStqKTtcbiAgICB9XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYXJyKTtcbiAgfVxufVxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2Zsb2F0X29mX2J5dGVzIChhKSB7XG4gIHJldHVybiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgKGNhbWxfaW50NjRfb2ZfYnl0ZXMgKGEpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBNbFN0cmluZ1JlYWRlciwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlclxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyhzLG9mcykge1xuICB2YXIgcmVhZGVyID0gbmV3IE1sU3RyaW5nUmVhZGVyIChzLCB0eXBlb2Ygb2ZzPT1cIm51bWJlclwiP29mczpvZnNbMF0pO1xuICByZXR1cm4gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IE1sU3RyaW5nUmVhZGVyLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzKHMsb2ZzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgTWxTdHJpbmdSZWFkZXIgKGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpLCB0eXBlb2Ygb2ZzPT1cIm51bWJlclwiP29mczpvZnNbMF0pO1xuICByZXR1cm4gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICBzaXplWzBdID0gODtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMgKHQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X21hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbWFyc2hhbCh3cml0ZXIsIHYsIHNpemVzKSB7XG4gIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyAodik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB3cml0ZXIud3JpdGUgKDgsIGJbaV0pO1xuICBzaXplc1swXSA9IDg7IHNpemVzWzFdID0gODtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl91bm1hcnNoYWxcbmZ1bmN0aW9uIGNhbWxfaW50MzJfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHNpemVbMF0gPSA0O1xuICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHN3aXRjaCAocmVhZGVyLnJlYWQ4dSAoKSkge1xuICBjYXNlIDE6XG4gICAgc2l6ZVswXSA9IDQ7XG4gICAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xuICBjYXNlIDI6XG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBuYXRpdmUgaW50ZWdlciB2YWx1ZSB0b28gbGFyZ2VcIik7XG4gIGRlZmF1bHQ6IGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaWxsLWZvcm1lZCBuYXRpdmUgaW50ZWdlclwiKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdW5tYXJzaGFsLCBjYW1sX2ludDY0X21hcnNoYWwsIGNhbWxfaW50NjRfY29tcGFyZSwgY2FtbF9pbnQ2NF9oYXNoXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX3VubWFyc2hhbCwgY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2JhX3NlcmlhbGl6ZSwgY2FtbF9iYV9kZXNlcmlhbGl6ZSwgY2FtbF9iYV9jb21wYXJlLCBjYW1sX2JhX2hhc2hcbnZhciBjYW1sX2N1c3RvbV9vcHMgPVxuICAgIHtcIl9qXCI6IHtcbiAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9pbnQ2NF91bm1hcnNoYWwsXG4gICAgICBzZXJpYWxpemUgIDogY2FtbF9pbnQ2NF9tYXJzaGFsLFxuICAgICAgZml4ZWRfbGVuZ3RoIDogOCxcbiAgICAgIGNvbXBhcmUgOiBjYW1sX2ludDY0X2NvbXBhcmUsXG4gICAgICBoYXNoIDogY2FtbF9pbnQ2NF9oYXNoXG4gICAgfSxcbiAgICAgXCJfaVwiOiB7XG4gICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX2ludDMyX3VubWFyc2hhbCxcbiAgICAgICBmaXhlZF9sZW5ndGggOiA0LFxuICAgICB9LFxuICAgICBcIl9uXCI6IHtcbiAgICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCxcbiAgICAgICBmaXhlZF9sZW5ndGggOiA0LFxuICAgICB9LFxuICAgICBcIl9iaWdhcnJheVwiOntcbiAgICAgICBkZXNlcmlhbGl6ZSA6IChmdW5jdGlvbiAocmVhZGVyLCBzeikge3JldHVybiBjYW1sX2JhX2Rlc2VyaWFsaXplIChyZWFkZXIsc3osXCJfYmlnYXJyYXlcIil9KSxcbiAgICAgICBzZXJpYWxpemUgOiBjYW1sX2JhX3NlcmlhbGl6ZSxcbiAgICAgICBjb21wYXJlIDogY2FtbF9iYV9jb21wYXJlLFxuICAgICAgIGhhc2g6IGNhbWxfYmFfaGFzaCxcbiAgICAgfSxcbiAgICAgXCJfYmlnYXJyMDJcIjp7XG4gICAgICAgZGVzZXJpYWxpemUgOiAoZnVuY3Rpb24gKHJlYWRlciwgc3opIHtyZXR1cm4gY2FtbF9iYV9kZXNlcmlhbGl6ZSAocmVhZGVyLHN6LFwiX2JpZ2FycjAyXCIpfSksXG4gICAgICAgc2VyaWFsaXplIDogY2FtbF9iYV9zZXJpYWxpemUsXG4gICAgICAgY29tcGFyZSA6IGNhbWxfYmFfY29tcGFyZSxcbiAgICAgICBoYXNoOiBjYW1sX2JhX2hhc2gsXG4gICAgIH1cbiAgICB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9mbG9hdF9vZl9ieXRlcywgY2FtbF9jdXN0b21fb3BzXG5cbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpIHtcbiAgdmFyIF9tYWdpYyA9IHJlYWRlci5yZWFkMzJ1ICgpXG4gIHZhciBfYmxvY2tfbGVuID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gIHZhciBudW1fb2JqZWN0cyA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICB2YXIgX3NpemVfMzIgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgdmFyIF9zaXplXzY0ID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gIHZhciBzdGFjayA9IFtdO1xuICB2YXIgaW50ZXJuX29ial90YWJsZSA9IChudW1fb2JqZWN0cyA+IDApP1tdOm51bGw7XG4gIHZhciBvYmpfY291bnRlciA9IDA7XG4gIGZ1bmN0aW9uIGludGVybl9yZWMgKCkge1xuICAgIHZhciBjb2RlID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICBpZiAoY29kZSA+PSAweDQwIC8qY3N0LlBSRUZJWF9TTUFMTF9JTlQqLykge1xuICAgICAgaWYgKGNvZGUgPj0gMHg4MCAvKmNzdC5QUkVGSVhfU01BTExfQkxPQ0sqLykge1xuICAgICAgICB2YXIgdGFnID0gY29kZSAmIDB4RjtcbiAgICAgICAgdmFyIHNpemUgPSAoY29kZSA+PiA0KSAmIDB4NztcbiAgICAgICAgdmFyIHYgPSBbdGFnXTtcbiAgICAgICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIHY7XG4gICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2VcbiAgICAgICAgcmV0dXJuIChjb2RlICYgMHgzRik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2RlID49IDB4MjAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HICovKSB7XG4gICAgICAgIHZhciBsZW4gPSBjb2RlICYgMHgxRjtcbiAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaChjb2RlKSB7XG4gICAgICAgIGNhc2UgMHgwMDogLy9jc3QuQ09ERV9JTlQ4OlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDhzICgpO1xuICAgICAgICBjYXNlIDB4MDE6IC8vY3N0LkNPREVfSU5UMTY6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkMTZzICgpO1xuICAgICAgICBjYXNlIDB4MDI6IC8vY3N0LkNPREVfSU5UMzI6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xuICAgICAgICBjYXNlIDB4MDM6IC8vY3N0LkNPREVfSU5UNjQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbnRlZ2VyIHRvbyBsYXJnZVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDA0OiAvL2NzdC5DT0RFX1NIQVJFRDg6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIgLSBvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDU6IC8vY3N0LkNPREVfU0hBUkVEMTY6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkMTZ1ICgpO1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyIC0gb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA2OiAvL2NzdC5DT0RFX1NIQVJFRDMyOlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlciAtIG9mZnNldF07XG4gICAgICAgIGNhc2UgMHgwODogLy9jc3QuQ09ERV9CTE9DSzMyOlxuICAgICAgICAgIHZhciBoZWFkZXIgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICB2YXIgdGFnID0gaGVhZGVyICYgMHhGRjtcbiAgICAgICAgICB2YXIgc2l6ZSA9IGhlYWRlciA+PiAxMDtcbiAgICAgICAgICB2YXIgdiA9IFt0YWddO1xuICAgICAgICAgIGlmIChzaXplID09IDApIHJldHVybiB2O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MTM6IC8vY3N0LkNPREVfQkxPQ0s2NDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBkYXRhIGJsb2NrIHRvbyBsYXJnZVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDA5OiAvL2NzdC5DT0RFX1NUUklORzg6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBBOiAvL2NzdC5DT0RFX1NUUklORzMyOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEM6IC8vY3N0LkNPREVfRE9VQkxFX0xJVFRMRTpcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IDg7aSsrKSB0WzcgLSBpXSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgdmFyIHYgPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQjogLy9jc3QuQ09ERV9ET1VCTEVfQklHOlxuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgODtpKyspIHRbaV0gPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHZhciB2ID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEU6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZOF9MSVRUTEU6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0WzcgLSBqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHZbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRDogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVk4X0JJRzpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2IFtpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDA3OiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWTMyX0xJVFRMRTpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0WzcgLSBqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHZbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRjogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVkzMl9CSUc6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdiBbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgxMDogLy9jc3QuQ09ERV9DT0RFUE9JTlRFUjpcbiAgICAgICAgY2FzZSAweDExOiAvL2NzdC5DT0RFX0lORklYUE9JTlRFUjpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBjb2RlIHBvaW50ZXJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgxMjogLy9jc3QuQ09ERV9DVVNUT006XG4gICAgICAgIGNhc2UgMHgxODogLy9jc3QuQ09ERV9DVVNUT01fTEVOOlxuICAgICAgICBjYXNlIDB4MTk6IC8vY3N0LkNPREVfQ1VTVE9NX0ZJWEVEOlxuICAgICAgICAgIHZhciBjLCBzID0gXCJcIjtcbiAgICAgICAgICB3aGlsZSAoKGMgPSByZWFkZXIucmVhZDh1ICgpKSAhPSAwKSBzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUgKGMpO1xuICAgICAgICAgIHZhciBvcHMgPSBjYW1sX2N1c3RvbV9vcHNbc107XG4gICAgICAgICAgdmFyIGV4cGVjdGVkX3NpemU7XG4gICAgICAgICAgaWYoIW9wcylcbiAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdW5rbm93biBjdXN0b20gYmxvY2sgaWRlbnRpZmllclwiKTtcbiAgICAgICAgICBzd2l0Y2goY29kZSl7XG4gICAgICAgICAgY2FzZSAweDEyOiAvLyBjc3QuQ09ERV9DVVNUT00gKGRlcHJlY2F0ZWQpXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDB4MTk6IC8vIGNzdC5DT0RFX0NVU1RPTV9GSVhFRFxuICAgICAgICAgICAgaWYoIW9wcy5maXhlZF9sZW5ndGgpXG4gICAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogZXhwZWN0ZWQgYSBmaXhlZC1zaXplIGN1c3RvbSBibG9ja1wiKTtcbiAgICAgICAgICAgIGV4cGVjdGVkX3NpemUgPSBvcHMuZml4ZWRfbGVuZ3RoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAweDE4OiAvLyBjc3QuQ09ERV9DVVNUT01fTEVOXG4gICAgICAgICAgICBleHBlY3RlZF9zaXplID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgICAvLyBTa2lwIHNpemU2NFxuICAgICAgICAgICAgcmVhZGVyLnJlYWQzMnMoKTsgcmVhZGVyLnJlYWQzMnMoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2xkX3BvcyA9IHJlYWRlci5pO1xuICAgICAgICAgIHZhciBzaXplID0gWzBdO1xuICAgICAgICAgIHZhciB2ID0gb3BzLmRlc2VyaWFsaXplKHJlYWRlciwgc2l6ZSk7XG4gICAgICAgICAgaWYoZXhwZWN0ZWRfc2l6ZSAhPSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgaWYoZXhwZWN0ZWRfc2l6ZSAhPSBzaXplWzBdKVxuICAgICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGluY29ycmVjdCBsZW5ndGggb2Ygc2VyaWFsaXplZCBjdXN0b20gYmxvY2tcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBpbGwtZm9ybWVkIG1lc3NhZ2VcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIHJlcyA9IGludGVybl9yZWMgKCk7XG4gIHdoaWxlIChzdGFjay5sZW5ndGggPiAwKSB7XG4gICAgdmFyIHNpemUgPSBzdGFjay5wb3AoKTtcbiAgICB2YXIgdiA9IHN0YWNrLnBvcCgpO1xuICAgIHZhciBkID0gdi5sZW5ndGg7XG4gICAgaWYgKGQgPCBzaXplKSBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgIHZbZF0gPSBpbnRlcm5fcmVjICgpO1xuICB9XG4gIGlmICh0eXBlb2Ygb2ZzIT1cIm51bWJlclwiKSBvZnNbMF0gPSByZWFkZXIuaTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKHMsIG9mcykge1xuICBmdW5jdGlvbiBnZXQzMihzLGkpIHtcbiAgICByZXR1cm4gKGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLCBpKSA8PCAyNCkgfFxuICAgICAgKGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLCBpICsgMSkgPDwgMTYpIHxcbiAgICAgIChjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocywgaSArIDIpIDw8IDgpIHxcbiAgICAgIGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLCBpICsgMyk7XG4gIH1cbiAgaWYgKGdldDMyKHMsIG9mcykgIT0gKDB4ODQ5NUE2QkV8MCkpXG4gICAgY2FtbF9mYWlsd2l0aChcIk1hcnNoYWwuZGF0YV9zaXplOiBiYWQgb2JqZWN0XCIpO1xuICByZXR1cm4gKGdldDMyKHMsIG9mcyArIDQpKTtcbn1cblxuLy9Qcm92aWRlczogTWxPYmplY3RUYWJsZVxudmFyIE1sT2JqZWN0VGFibGU7XG5pZiAodHlwZW9mIGdsb2JhbFRoaXMuV2Vha01hcCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgTWxPYmplY3RUYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgIC8qIHBvbHlmaWxsICh1c2luZyBsaW5lYXIgc2VhcmNoKSAqL1xuICAgIGZ1bmN0aW9uIE5haXZlTG9va3VwKG9ianMpIHsgdGhpcy5vYmpzID0gb2JqczsgfVxuICAgIE5haXZlTG9va3VwLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbih2KSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub2Jqcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5vYmpzW2ldID09PSB2KSByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9O1xuICAgIE5haXZlTG9va3VwLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbigpIHtcbiAgICAgIC8vIERvIG5vdGhpbmcgaGVyZS4gW01sT2JqZWN0VGFibGUuc3RvcmVdIHdpbGwgcHVzaCB0byBbdGhpcy5vYmpzXSBkaXJlY3RseS5cbiAgICB9O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIE1sT2JqZWN0VGFibGUoKSB7XG4gICAgICB0aGlzLm9ianMgPSBbXTsgdGhpcy5sb29rdXAgPSBuZXcgTmFpdmVMb29rdXAodGhpcy5vYmpzKTtcbiAgICB9O1xuICB9KCk7XG59XG5lbHNlIHtcbiAgTWxPYmplY3RUYWJsZSA9IGZ1bmN0aW9uIE1sT2JqZWN0VGFibGUoKSB7XG4gICAgdGhpcy5vYmpzID0gW107IHRoaXMubG9va3VwID0gbmV3IGdsb2JhbFRoaXMuV2Vha01hcCgpO1xuICB9O1xufVxuXG5NbE9iamVjdFRhYmxlLnByb3RvdHlwZS5zdG9yZSA9IGZ1bmN0aW9uKHYpIHtcbiAgdGhpcy5sb29rdXAuc2V0KHYsIHRoaXMub2Jqcy5sZW5ndGgpO1xuICB0aGlzLm9ianMucHVzaCh2KTtcbn1cblxuTWxPYmplY3RUYWJsZS5wcm90b3R5cGUucmVjYWxsID0gZnVuY3Rpb24odikge1xuICB2YXIgaSA9IHRoaXMubG9va3VwLmdldCh2KTtcbiAgcmV0dXJuIChpID09PSB1bmRlZmluZWQpXG4gICAgPyB1bmRlZmluZWQgOiB0aGlzLm9ianMubGVuZ3RoIC0gaTsgICAvKiBpbmRleCBpcyByZWxhdGl2ZSAqL1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xlZ2FjeV9jdXN0b21fY29kZVxuLy9WZXJzaW9uOiA+PSA0LjA4XG52YXIgY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUgPSBmYWxzZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xlZ2FjeV9jdXN0b21fY29kZVxuLy9WZXJzaW9uOiA8IDQuMDhcbnZhciBjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSA9IHRydWVcblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IE1sT2JqZWN0VGFibGUsIGNhbWxfbGlzdF90b19qc19hcnJheSwgY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbnZhciBjYW1sX291dHB1dF92YWwgPSBmdW5jdGlvbiAoKXtcbiAgZnVuY3Rpb24gV3JpdGVyICgpIHsgdGhpcy5jaHVuayA9IFtdOyB9XG4gIFdyaXRlci5wcm90b3R5cGUgPSB7XG4gICAgY2h1bmtfaWR4OjIwLCBibG9ja19sZW46MCwgb2JqX2NvdW50ZXI6MCwgc2l6ZV8zMjowLCBzaXplXzY0OjAsXG4gICAgd3JpdGU6ZnVuY3Rpb24gKHNpemUsIHZhbHVlKSB7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9hdDpmdW5jdGlvbiAocG9zLCBzaXplLCB2YWx1ZSkge1xuICAgICAgdmFyIHBvcyA9IHBvcztcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3BvcysrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9jb2RlOmZ1bmN0aW9uIChzaXplLCBjb2RlLCB2YWx1ZSkge1xuICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9IGNvZGU7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9zaGFyZWQ6ZnVuY3Rpb24gKG9mZnNldCkge1xuICAgICAgaWYgKG9mZnNldCA8ICgxIDw8IDgpKSB0aGlzLndyaXRlX2NvZGUoOCwgMHgwNCAvKmNzdC5DT0RFX1NIQVJFRDgqLywgb2Zmc2V0KTtcbiAgICAgIGVsc2UgaWYgKG9mZnNldCA8ICgxIDw8IDE2KSkgdGhpcy53cml0ZV9jb2RlKDE2LCAweDA1IC8qY3N0LkNPREVfU0hBUkVEMTYqLywgb2Zmc2V0KTtcbiAgICAgIGVsc2UgdGhpcy53cml0ZV9jb2RlKDMyLCAweDA2IC8qY3N0LkNPREVfU0hBUkVEMzIqLywgb2Zmc2V0KTtcbiAgICB9LFxuICAgIHBvczpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmNodW5rX2lkeCB9LFxuICAgIGZpbmFsaXplOmZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMuYmxvY2tfbGVuID0gdGhpcy5jaHVua19pZHggLSAyMDtcbiAgICAgIHRoaXMuY2h1bmtfaWR4ID0gMDtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCAweDg0OTVBNkJFKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLmJsb2NrX2xlbik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5vYmpfY291bnRlcik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5zaXplXzMyKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLnNpemVfNjQpO1xuICAgICAgcmV0dXJuIHRoaXMuY2h1bms7XG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbiAodiwgZmxhZ3MpIHtcbiAgICBmbGFncyA9IGNhbWxfbGlzdF90b19qc19hcnJheShmbGFncyk7XG5cbiAgICB2YXIgbm9fc2hhcmluZyA9IChmbGFncy5pbmRleE9mKDAgLypNYXJzaGFsLk5vX3NoYXJpbmcqLykgIT09IC0xKSxcbiAgICAgICAgY2xvc3VyZXMgPSAgKGZsYWdzLmluZGV4T2YoMSAvKk1hcnNoYWwuQ2xvc3VyZXMqLykgIT09IC0xKTtcbiAgICAvKiBNYXJzaGFsLkNvbXBhdF8zMiBpcyByZWR1bmRhbnQgc2luY2UgaW50ZWdlcnMgYXJlIDMyLWJpdCBhbnl3YXkgKi9cblxuICAgIGlmIChjbG9zdXJlcylcbiAgICAgIGdsb2JhbFRoaXMuY29uc29sZS53YXJuKFwiaW4gY2FtbF9vdXRwdXRfdmFsOiBmbGFnIE1hcnNoYWwuQ2xvc3VyZXMgaXMgbm90IHN1cHBvcnRlZC5cIik7XG5cbiAgICB2YXIgd3JpdGVyID0gbmV3IFdyaXRlciAoKTtcbiAgICB2YXIgc3RhY2sgPSBbXTtcbiAgICB2YXIgaW50ZXJuX29ial90YWJsZSA9IG5vX3NoYXJpbmcgPyBudWxsIDogbmV3IE1sT2JqZWN0VGFibGUoKTtcblxuICAgIGZ1bmN0aW9uIG1lbW8odikge1xuICAgICAgaWYgKG5vX3NoYXJpbmcpIHJldHVybiBmYWxzZTtcbiAgICAgIHZhciBleGlzdGluZ19vZmZzZXQgPSBpbnRlcm5fb2JqX3RhYmxlLnJlY2FsbCh2KTtcbiAgICAgIGlmIChleGlzdGluZ19vZmZzZXQpIHsgd3JpdGVyLndyaXRlX3NoYXJlZChleGlzdGluZ19vZmZzZXQpOyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgZWxzZSB7IGludGVybl9vYmpfdGFibGUuc3RvcmUodik7IHJldHVybiBmYWxzZTsgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVybl9yZWMgKHYpIHtcbiAgICAgIGlmICh2LmNhbWxfY3VzdG9tKSB7XG4gICAgICAgIGlmIChtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIHZhciBuYW1lID0gdi5jYW1sX2N1c3RvbTtcbiAgICAgICAgdmFyIG9wcyA9IGNhbWxfY3VzdG9tX29wc1tuYW1lXTtcbiAgICAgICAgdmFyIHN6XzMyXzY0ID0gWzAsMF07XG4gICAgICAgIGlmKCFvcHMuc2VyaWFsaXplKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKEN1c3RvbSlcIik7XG4gICAgICAgIGlmKGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlKSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDEyIC8qY3N0LkNPREVfQ1VTVE9NKi8pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgbmFtZS5jaGFyQ29kZUF0KGkpKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgfSBlbHNlIGlmKG9wcy5maXhlZF9sZW5ndGggPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTggLypjc3QuQ09ERV9DVVNUT01fTEVOKi8pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgbmFtZS5jaGFyQ29kZUF0KGkpKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgdmFyIGhlYWRlcl9wb3MgPSB3cml0ZXIucG9zICgpO1xuICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wcy5zZXJpYWxpemUod3JpdGVyLCB2LCBzel8zMl82NCk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MsIDMyLCBzel8zMl82NFswXSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MgKyA0LCAzMiwgMCk7IC8vIHplcm9cbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcyArIDgsIDMyLCBzel8zMl82NFsxXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDE5IC8qY3N0LkNPREVfQ1VTVE9NX0ZJWEVEKi8pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgbmFtZS5jaGFyQ29kZUF0KGkpKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgdmFyIG9sZF9wb3MgPSB3cml0ZXIucG9zKCk7XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgICBpZiAob3BzLmZpeGVkX2xlbmd0aCAhPSB3cml0ZXIucG9zKCkgLSBvbGRfcG9zKVxuICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogaW5jb3JyZWN0IGZpeGVkIHNpemVzIHNwZWNpZmllZCBieSBcIiArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDIgKyAoKHN6XzMyXzY0WzBdICsgMykgPj4gMik7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDIgKyAoKHN6XzMyXzY0WzFdICsgNykgPj4gMyk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQXJyYXkgJiYgdlswXSA9PT0gKHZbMF18MCkpIHtcbiAgICAgICAgaWYgKHZbMF0gPT0gMjUxKSB7XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKEFic3RyYWN0KVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodi5sZW5ndGggPiAxICYmIG1lbW8odikpIHJldHVybjtcbiAgICAgICAgaWYgKHZbMF0gPCAxNiAmJiB2Lmxlbmd0aCAtIDEgPCA4KVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHg4MCAvKmNzdC5QUkVGSVhfU01BTExfQkxPQ0sqLyArIHZbMF0gKyAoKHYubGVuZ3RoIC0gMSk8PDQpKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDMyLCAweDA4IC8qY3N0LkNPREVfQkxPQ0szMiovLCAoKHYubGVuZ3RoLTEpIDw8IDEwKSB8IHZbMF0pO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSB2Lmxlbmd0aDtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gdi5sZW5ndGg7XG4gICAgICAgIGlmICh2Lmxlbmd0aCA+IDEpIHN0YWNrLnB1c2ggKHYsIDEpO1xuICAgICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHYpKSB7XG4gICAgICAgIGlmKCEoY2FtbF9pc19tbF9ieXRlcyhjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpKSkpIHtcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBbQnl0ZXMudF0gY2Fubm90IHNhZmVseSBiZSBtYXJzaGFsZWQgd2l0aCBbLS1lbmFibGUgdXNlLWpzLXN0cmluZ11cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIGxlbiA9IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHYpO1xuICAgICAgICBpZiAobGVuIDwgMHgyMClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MjAgLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyovICsgbGVuKTtcbiAgICAgICAgZWxzZSBpZiAobGVuIDwgMHgxMDApXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDgsIDB4MDkvKmNzdC5DT0RFX1NUUklORzgqLywgbGVuKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICgzMiwgMHgwQSAvKmNzdC5DT0RFX1NUUklORzMyKi8sIGxlbik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCBsZW47aSsrKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0KHYsaSkpO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAxICsgKCgobGVuICsgNCkgLyA0KXwwKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMSArICgoKGxlbiArIDgpIC8gOCl8MCk7XG4gICAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHYpKSB7XG4gICAgICAgIHZhciBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgodik7XG4gICAgICAgIGlmIChsZW4gPCAweDIwKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgyMCAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HKi8gKyBsZW4pO1xuICAgICAgICBlbHNlIGlmIChsZW4gPCAweDEwMClcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoOCwgMHgwOS8qY3N0LkNPREVfU1RSSU5HOCovLCBsZW4pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDMyLCAweDBBIC8qY3N0LkNPREVfU1RSSU5HMzIqLywgbGVuKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IGxlbjtpKyspXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHYsaSkpO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAxICsgKCgobGVuICsgNCkgLyA0KXwwKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMSArICgoKGxlbiArIDgpIC8gOCl8MCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodiAhPSAodnwwKSl7XG4gICAgICAgICAgdmFyIHR5cGVfb2ZfdiA9IHR5cGVvZiB2O1xuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gSWYgYSBmbG9hdCBoYXBwZW5zIHRvIGJlIGFuIGludGVnZXIgaXQgaXMgc2VyaWFsaXplZCBhcyBhbiBpbnRlZ2VyXG4gICAgICAgICAgLy8gKEpzX29mX29jYW1sIGNhbm5vdCB0ZWxsIHdoZXRoZXIgdGhlIHR5cGUgb2YgYW4gaW50ZWdlciBudW1iZXIgaXNcbiAgICAgICAgICAvLyBmbG9hdCBvciBpbnRlZ2VyLikgVGhpcyBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgY3Jhc2hlcyB3aGVuXG4gICAgICAgICAgLy8gdW5tYXJzaGFsbGluZyB1c2luZyB0aGUgc3RhbmRhcmQgcnVudGltZS4gSXQgc2VlbXMgYmV0dGVyIHRvXG4gICAgICAgICAgLy8gc3lzdGVtYXRpY2FsbHkgZmFpbCBvbiBtYXJzaGFsbGluZy5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vICAgICAgICAgIGlmKHR5cGVfb2ZfdiAhPSBcIm51bWJlclwiKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChcIit0eXBlX29mX3YrXCIpXCIpO1xuICAgICAgICAgIC8vICAgICAgICAgIHZhciB0ID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQodikpO1xuICAgICAgICAgIC8vICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgwQiAvKmNzdC5DT0RFX0RPVUJMRV9CSUcqLyk7XG4gICAgICAgICAgLy8gICAgICAgICAgZm9yKHZhciBpID0gMDsgaTw4OyBpKyspe3dyaXRlci53cml0ZSg4LHRbaV0pfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHYgPj0gMCAmJiB2IDwgMHg0MCkge1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMFg0MCAvKmNzdC5QUkVGSVhfU01BTExfSU5UKi8gKyB2KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodiA+PSAtKDEgPDwgNykgJiYgdiA8ICgxIDw8IDcpKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoOCwgMHgwMCAvKmNzdC5DT0RFX0lOVDgqLywgdik7XG4gICAgICAgICAgZWxzZSBpZiAodiA+PSAtKDEgPDwgMTUpICYmIHYgPCAoMSA8PCAxNSkpXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgxNiwgMHgwMSAvKmNzdC5DT0RFX0lOVDE2Ki8sIHYpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDMyLCAweDAyIC8qY3N0LkNPREVfSU5UMzIqLywgdik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuX3JlYyAodik7XG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBpID0gc3RhY2sucG9wICgpO1xuICAgICAgdmFyIHYgPSBzdGFjay5wb3AgKCk7XG4gICAgICBpZiAoaSArIDEgPCB2Lmxlbmd0aCkgc3RhY2sucHVzaCAodiwgaSArIDEpO1xuICAgICAgZXh0ZXJuX3JlYyAodltpXSk7XG4gICAgfVxuICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSB3cml0ZXIub2JqX2NvdW50ZXIgPSBpbnRlcm5fb2JqX3RhYmxlLm9ianMubGVuZ3RoO1xuICAgIHdyaXRlci5maW5hbGl6ZSgpO1xuICAgIHJldHVybiB3cml0ZXIuY2h1bms7XG4gIH1cbn0gKCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfc3RyaW5nX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcgKHYsIGZsYWdzKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheSAoY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzICh2LCBmbGFncykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl9hcnJheSAoY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXJcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9mYWlsd2l0aCwgY2FtbF9ibGl0X2J5dGVzXG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIgKHMsIG9mcywgbGVuLCB2LCBmbGFncykge1xuICB2YXIgdCA9IGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpO1xuICBpZiAodC5sZW5ndGggPiBsZW4pIGNhbWxfZmFpbHdpdGggKFwiTWFyc2hhbC50b19idWZmZXI6IGJ1ZmZlciBvdmVyZmxvd1wiKTtcbiAgY2FtbF9ibGl0X2J5dGVzKHQsIDAsIHMsIG9mcywgdC5sZW5ndGgpO1xuICByZXR1cm4gMDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSW9cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY2xvc2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfc3lzX2Nsb3NlKGZkKSB7XG4gIGRlbGV0ZSBjYW1sX2dsb2JhbF9kYXRhLmZkc1tmZF07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0ZF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9zdGRfb3V0cHV0KGNoYW5pZCxzKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBzdHIgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpO1xuICB2YXIgc2xlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzdHIpO1xuICBjaGFuLmZpbGUud3JpdGUoY2hhbi5vZmZzZXQsIHN0ciwgMCwgc2xlbik7XG4gIGNoYW4ub2Zmc2V0ICs9IHNsZW47XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19vcGVuXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9nbG9iYWxfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfYnl0ZXMsTWxGYWtlRmlsZVxuLy9SZXF1aXJlczoganNfcHJpbnRfc3RkZXJyLCBqc19wcmludF9zdGRvdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RkX291dHB1dFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoaWR4LG91dHB1dCxmaWxlLGZsYWdzKSB7XG4gIGlmKGNhbWxfZ2xvYmFsX2RhdGEuZmRzID09PSB1bmRlZmluZWQpIGNhbWxfZ2xvYmFsX2RhdGEuZmRzID0gbmV3IEFycmF5KCk7XG4gIGZsYWdzPWZsYWdzP2ZsYWdzOnt9O1xuICB2YXIgaW5mbyA9IHt9O1xuICBpbmZvLmZpbGUgPSBmaWxlO1xuICBpbmZvLm9mZnNldCA9IGZsYWdzLmFwcGVuZD9maWxlLmxlbmd0aCgpOjA7XG4gIGluZm8uZmxhZ3MgPSBmbGFncztcbiAgaW5mby5vdXRwdXQgPSBvdXRwdXQ7XG4gIGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2lkeF0gPSBpbmZvO1xuICBpZighY2FtbF9nbG9iYWxfZGF0YS5mZF9sYXN0X2lkeCB8fCBpZHggPiBjYW1sX2dsb2JhbF9kYXRhLmZkX2xhc3RfaWR4KVxuICAgIGNhbWxfZ2xvYmFsX2RhdGEuZmRfbGFzdF9pZHggPSBpZHg7XG4gIHJldHVybiBpZHg7XG59XG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuIChuYW1lLCBmbGFncywgX3Blcm1zKSB7XG4gIHZhciBmID0ge307XG4gIHdoaWxlKGZsYWdzKXtcbiAgICBzd2l0Y2goZmxhZ3NbMV0pe1xuICAgIGNhc2UgMDogZi5yZG9ubHkgPSAxO2JyZWFrO1xuICAgIGNhc2UgMTogZi53cm9ubHkgPSAxO2JyZWFrO1xuICAgIGNhc2UgMjogZi5hcHBlbmQgPSAxO2JyZWFrO1xuICAgIGNhc2UgMzogZi5jcmVhdGUgPSAxO2JyZWFrO1xuICAgIGNhc2UgNDogZi50cnVuY2F0ZSA9IDE7YnJlYWs7XG4gICAgY2FzZSA1OiBmLmV4Y2wgPSAxOyBicmVhaztcbiAgICBjYXNlIDY6IGYuYmluYXJ5ID0gMTticmVhaztcbiAgICBjYXNlIDc6IGYudGV4dCA9IDE7YnJlYWs7XG4gICAgY2FzZSA4OiBmLm5vbmJsb2NrID0gMTticmVhaztcbiAgICB9XG4gICAgZmxhZ3M9ZmxhZ3NbMl07XG4gIH1cbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgZmlsZSA9IHJvb3QuZGV2aWNlLm9wZW4ocm9vdC5yZXN0LGYpO1xuICB2YXIgaWR4ID0gY2FtbF9nbG9iYWxfZGF0YS5mZF9sYXN0X2lkeD9jYW1sX2dsb2JhbF9kYXRhLmZkX2xhc3RfaWR4OjA7XG4gIHJldHVybiBjYW1sX3N5c19vcGVuX2ludGVybmFsIChpZHgrMSxjYW1sX3N0ZF9vdXRwdXQsZmlsZSxmKTtcbn1cbmNhbWxfc3lzX29wZW5faW50ZXJuYWwoMCxjYW1sX3N0ZF9vdXRwdXQsIG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKSk7IC8vc3RkaW5cbmNhbWxfc3lzX29wZW5faW50ZXJuYWwoMSxqc19wcmludF9zdGRvdXQsIG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKSk7IC8vc3Rkb3V0XG5jYW1sX3N5c19vcGVuX2ludGVybmFsKDIsanNfcHJpbnRfc3RkZXJyLCBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSkpOyAvL3N0ZGVyclxuXG5cbi8vIG9jYW1sIENoYW5uZWxzXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVxuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lKCkge1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxzXG52YXIgY2FtbF9tbF9jaGFubmVscyA9IG5ldyBBcnJheSgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dF9jaGFubmVsc19saXN0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX291dF9jaGFubmVsc19saXN0ICgpIHtcbiAgdmFyIGwgPSAwO1xuICBmb3IodmFyIGMgPSAwOyBjIDwgY2FtbF9tbF9jaGFubmVscy5sZW5ndGg7IGMrKyl7XG4gICAgaWYoY2FtbF9tbF9jaGFubmVsc1tjXSAmJiBjYW1sX21sX2NoYW5uZWxzW2NdLm9wZW5lZCAmJiBjYW1sX21sX2NoYW5uZWxzW2NdLm91dClcbiAgICAgIGw9WzAsY2FtbF9tbF9jaGFubmVsc1tjXS5mZCxsXTtcbiAgfVxuICByZXR1cm4gbDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfZ2xvYmFsX2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQgKGZkKSB7XG4gIHZhciBkYXRhID0gY2FtbF9nbG9iYWxfZGF0YS5mZHNbZmRdO1xuICBpZihkYXRhLmZsYWdzLnJkb25seSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJmZCBcIisgZmQgKyBcIiBpcyByZWFkb25seVwiKTtcbiAgdmFyIGNoYW5uZWwgPSB7XG4gICAgZmlsZTpkYXRhLmZpbGUsXG4gICAgb2Zmc2V0OmRhdGEub2Zmc2V0LFxuICAgIGZkOmZkLFxuICAgIG9wZW5lZDp0cnVlLFxuICAgIG91dDp0cnVlLFxuICAgIGJ1ZmZlcjpcIlwiXG4gIH07XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbm5lbC5mZF09Y2hhbm5lbDtcbiAgcmV0dXJuIGNoYW5uZWwuZmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLGNhbWxfc3lzX29wZW4sY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW4gKGZkKSAge1xuICB2YXIgZGF0YSA9IGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2ZkXTtcbiAgaWYoZGF0YS5mbGFncy53cm9ubHkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiZmQgXCIrIGZkICsgXCIgaXMgd3JpdGVvbmx5XCIpO1xuICB2YXIgcmVmaWxsID0gbnVsbDtcbiAgaWYoZmQgPT0gMCAmJiBmc19ub2RlX3N1cHBvcnRlZCgpKXtcbiAgICB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuICAgIHJlZmlsbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhmcy5yZWFkRmlsZVN5bmMoMCwgJ3V0ZjgnKSl9O1xuICB9XG4gIHZhciBjaGFubmVsID0ge1xuICAgIGZpbGU6ZGF0YS5maWxlLFxuICAgIG9mZnNldDpkYXRhLm9mZnNldCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6IGZhbHNlLFxuICAgIHJlZmlsbDpyZWZpbGxcbiAgfTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFubmVsLmZkXT1jaGFubmVsO1xuICByZXR1cm4gY2hhbm5lbC5mZDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvclxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3IoY2hhbmlkKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLmZkO1xufVxuXG4vL1Byb3ZpZGVzOiB3aW5fZmlsZWRlc2NyX29mX2NoYW5uZWxcbi8vUmVxdWlyZXM6IGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yXG52YXIgd2luX2ZpbGVkZXNjcl9vZl9jaGFubmVsID0gY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3JcblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlKGNoYW5pZCxtb2RlKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBkYXRhID0gY2FtbF9nbG9iYWxfZGF0YS5mZHNbY2hhbi5mZF07XG4gIGRhdGEuZmxhZ3MudGV4dCA9ICFtb2RlXG4gIGRhdGEuZmxhZ3MuYmluYXJ5ID0gbW9kZVxuICByZXR1cm4gMDtcbn1cblxuLy9JbnB1dCBmcm9tIGluX2NoYW5uZWxcblxuLy9Qcm92aWRlczogY2FtbF9tbF9jbG9zZV9jaGFubmVsXG4vL1JlcXVpcmVzOiBjYW1sX21sX2ZsdXNoLCBjYW1sX21sX2NoYW5uZWxzXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19jbG9zZVxuZnVuY3Rpb24gY2FtbF9tbF9jbG9zZV9jaGFubmVsIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgY2hhbi5vcGVuZWQgPSBmYWxzZTtcbiAgY2hhbi5maWxlLmNsb3NlKCk7XG4gIGNhbWxfc3lzX2Nsb3NlKGNoYW4uZmQpXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9jaGFubmVsX3NpemUoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5maWxlLmxlbmd0aCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCxjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2NoYW5uZWxfc2l6ZV82NChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0KGNoYW4uZmlsZS5sZW5ndGggKCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXQoY2hhbmlkLGYpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2NoYW4uZmRdLm91dHB1dCA9IGY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGwoY2hhbmlkLGYpIHtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLnJlZmlsbCA9IGY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3JlZmlsbF9pbnB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX21sX3JlZmlsbF9pbnB1dCAoY2hhbikge1xuICB2YXIgc3RyID0gY2hhbi5yZWZpbGwoKTtcbiAgdmFyIHN0cl9sZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgoc3RyKTtcbiAgaWYgKHN0cl9sZW4gPT0gMCkgY2hhbi5yZWZpbGwgPSBudWxsO1xuICBjaGFuLmZpbGUud3JpdGUoY2hhbi5maWxlLmxlbmd0aCgpLCBzdHIsIDAsIHN0cl9sZW4pO1xuICByZXR1cm4gc3RyX2xlbjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX3JlZmlsbF9pbnB1dCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0IChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmIChjaGFuLnJlZmlsbCA9PSBudWxsKSByZXR1cm47XG4gIGlmIChjaGFuLmZpbGUubGVuZ3RoKCkgIT0gY2hhbi5vZmZzZXQpIHJldHVybjtcbiAgY2FtbF9tbF9yZWZpbGxfaW5wdXQgKGNoYW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX3JlZmlsbF9pbnB1dCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dCAoY2hhbmlkLCBzLCBpLCBsKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgbDIgPSBjaGFuLmZpbGUubGVuZ3RoKCkgLSBjaGFuLm9mZnNldDtcbiAgaWYgKGwyID09IDAgJiYgY2hhbi5yZWZpbGwgIT0gbnVsbCkgbDIgPSBjYW1sX21sX3JlZmlsbF9pbnB1dChjaGFuKTtcbiAgaWYgKGwyIDwgbCkgbCA9IGwyO1xuICBjaGFuLmZpbGUucmVhZChjaGFuLm9mZnNldCwgcywgaSwgbCk7XG4gIGNoYW4ub2Zmc2V0ICs9IGw7XG4gIHJldHVybiBsO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfZGF0YV9zaXplLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG5cbiAgdmFyIGJ1ZiA9IGNhbWxfY3JlYXRlX2J5dGVzKDgpO1xuICBjaGFuLmZpbGUucmVhZChjaGFuLm9mZnNldCxidWYsMCw4KTtcblxuICAvLyBIZWFkZXIgaXMgMjAgYnl0ZXNcbiAgdmFyIGxlbiA9IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKGJ1ZiwgMCkgKyAyMDtcblxuICB2YXIgYnVmID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKTtcbiAgY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsYnVmLDAsbGVuKTtcblxuICB2YXIgb2Zmc2V0ID0gWzBdO1xuICB2YXIgcmVzID0gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzKGJ1Ziwgb2Zmc2V0KTtcbiAgY2hhbi5vZmZzZXQgPSBjaGFuLm9mZnNldCArIG9mZnNldFswXTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlLCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX21heV9yZWZpbGxfaW5wdXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfY2hhciAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjYW1sX21sX21heV9yZWZpbGxfaW5wdXQoY2hhbmlkKTtcbiAgaWYgKGNoYW4ub2Zmc2V0ID49IGNoYW4uZmlsZS5sZW5ndGgoKSlcbiAgICBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIHZhciByZXMgPSBjaGFuLmZpbGUucmVhZF9vbmUoY2hhbi5vZmZzZXQpO1xuICBjaGFuLm9mZnNldCsrO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2ludFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9tbF9yZWZpbGxfaW5wdXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfaW50IChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBmaWxlID0gY2hhbi5maWxlO1xuICB3aGlsZSAoKGNoYW4ub2Zmc2V0ICsgMykgPj0gZmlsZS5sZW5ndGgoKSkge1xuICAgIHZhciBsID0gY2FtbF9tbF9yZWZpbGxfaW5wdXQoY2hhbik7XG4gICAgaWYgKGwgPT0gMCkgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB9XG4gIHZhciBvID0gY2hhbi5vZmZzZXQ7XG4gIHZhciByID0oZmlsZS5yZWFkX29uZShvICApIDw8IDI0KVxuICAgICAgfCAgKGZpbGUucmVhZF9vbmUobysxKSA8PCAxNilcbiAgICAgIHwgIChmaWxlLnJlYWRfb25lKG8rMikgPDwgOClcbiAgICAgIHwgIChmaWxlLnJlYWRfb25lKG8rMykpO1xuICBjaGFuLm9mZnNldCs9NDtcbiAgcmV0dXJuIHI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19pblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19pbihjaGFuaWQscG9zKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmIChjaGFuLnJlZmlsbCAhPSBudWxsKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIklsbGVnYWwgc2Vla1wiKTtcbiAgY2hhbi5vZmZzZXQgPSBwb3M7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5fNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfaW5fNjQoY2hhbmlkLHBvcyl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZiAoY2hhbi5yZWZpbGwgIT0gbnVsbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJJbGxlZ2FsIHNlZWtcIik7XG4gIGNoYW4ub2Zmc2V0ID0gY2FtbF9pbnQ2NF90b19mbG9hdChwb3MpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3NfaW5cbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX2luKGNoYW5pZCkge3JldHVybiBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19pbl82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9wb3NfaW5fNjQoY2hhbmlkKSB7cmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQoY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldCl9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX21heV9yZWZpbGxfaW5wdXQsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjYW1sX21sX21heV9yZWZpbGxfaW5wdXQoY2hhbmlkKTtcbiAgdmFyIHAgPSBjaGFuLm9mZnNldDtcbiAgdmFyIGxlbiA9IGNoYW4uZmlsZS5sZW5ndGgoKTtcbiAgaWYocCA+PSBsZW4pIHsgcmV0dXJuIDA7fVxuICB3aGlsZSh0cnVlKSB7XG4gICAgaWYocCA+PSBsZW4pIHJldHVybiAtIChwIC0gY2hhbi5vZmZzZXQpO1xuICAgIGlmKGNoYW4uZmlsZS5yZWFkX29uZShwKSA9PSAxMCkgcmV0dXJuIHAgLSBjaGFuLm9mZnNldCArIDE7XG4gICAgcCsrO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZmx1c2hcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2ZsdXNoIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKCEgY2hhbi5vcGVuZWQpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiQ2Fubm90IGZsdXNoIGEgY2xvc2VkIGNoYW5uZWxcIik7XG4gIGlmKCFjaGFuLmJ1ZmZlciB8fCBjaGFuLmJ1ZmZlciA9PSBcIlwiKSByZXR1cm4gMDtcbiAgaWYoY2hhbi5mZFxuICAgICAmJiBjYW1sX2dsb2JhbF9kYXRhLmZkc1tjaGFuLmZkXVxuICAgICAmJiBjYW1sX2dsb2JhbF9kYXRhLmZkc1tjaGFuLmZkXS5vdXRwdXQpIHtcbiAgICB2YXIgb3V0cHV0ID0gY2FtbF9nbG9iYWxfZGF0YS5mZHNbY2hhbi5mZF0ub3V0cHV0O1xuICAgIHN3aXRjaChvdXRwdXQubGVuZ3RoKXtcbiAgICBjYXNlIDI6IG91dHB1dChjaGFuaWQsY2hhbi5idWZmZXIpO2JyZWFrO1xuICAgIGRlZmF1bHQ6IG91dHB1dChjaGFuLmJ1ZmZlcilcbiAgICB9O1xuICB9XG4gIGNoYW4uYnVmZmVyID0gXCJcIjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vb3V0cHV0IHRvIG91dF9jaGFubmVsXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2ZsdXNoLGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9ibGl0X2J5dGVzLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVscywgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2J5dGVzKGNoYW5pZCxidWZmZXIsb2Zmc2V0LGxlbikge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYoISBjaGFuLm9wZW5lZCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJDYW5ub3Qgb3V0cHV0IHRvIGEgY2xvc2VkIGNoYW5uZWxcIik7XG4gIHZhciBieXRlcztcbiAgaWYob2Zmc2V0ID09IDAgJiYgY2FtbF9tbF9ieXRlc19sZW5ndGgoYnVmZmVyKSA9PSBsZW4pXG4gICAgYnl0ZXMgPSBidWZmZXI7XG4gIGVsc2Uge1xuICAgIGJ5dGVzID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKTtcbiAgICBjYW1sX2JsaXRfYnl0ZXMoYnVmZmVyLG9mZnNldCxieXRlcywwLGxlbik7XG4gIH1cbiAgdmFyIHN0cmluZyA9IGNhbWxfc3RyaW5nX29mX2J5dGVzKGJ5dGVzKTtcbiAgdmFyIGpzc3RyaW5nID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzdHJpbmcpO1xuICB2YXIgaWQgPSBqc3N0cmluZy5sYXN0SW5kZXhPZihcIlxcblwiKTtcbiAgaWYoaWQgPCAwKVxuICAgIGNoYW4uYnVmZmVyKz1qc3N0cmluZztcbiAgZWxzZSB7XG4gICAgY2hhbi5idWZmZXIrPWpzc3RyaW5nLnN1YnN0cigwLGlkKzEpO1xuICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgY2hhbi5idWZmZXIgKz0ganNzdHJpbmcuc3Vic3RyKGlkKzEpO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dChjaGFuaWQsYnVmZmVyLG9mZnNldCxsZW4pe1xuICByZXR1cm4gY2FtbF9tbF9vdXRwdXRfYnl0ZXMoY2hhbmlkLGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGJ1ZmZlciksb2Zmc2V0LGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9jaGFyIChjaGFuaWQsYykge1xuICB2YXIgcyA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsMSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nLCBjYW1sX21sX291dHB1dCxjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlIChjaGFuaWQsdixmbGFncykge1xuICB2YXIgcyA9IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyh2LCBmbGFncyk7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX291dChjaGFuaWQscG9zKXtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0ID0gcG9zO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX291dF82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19mbG9hdCwgY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX291dF82NChjaGFuaWQscG9zKXtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0ID0gY2FtbF9pbnQ2NF90b19mbG9hdChwb3MpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3Nfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19vdXQoY2hhbmlkKSB7XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgcmV0dXJuIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXRcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3Nfb3V0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19vdXRfNjQoY2hhbmlkKSB7XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQgKGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfaW50IChjaGFuaWQsaSkge1xuICB2YXIgYXJyID0gWyhpPj4yNCkgJiAweEZGLChpPj4xNikgJiAweEZGLChpPj44KSAmIDB4RkYsaSAmIDB4RkYgXTtcbiAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9hcnJheShhcnIpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLDQpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lzX2J1ZmZlcmVkXG5mdW5jdGlvbiBjYW1sX21sX2lzX2J1ZmZlcmVkKGMpIHsgcmV0dXJuIDEgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9idWZmZXJlZFxuZnVuY3Rpb24gY2FtbF9tbF9zZXRfYnVmZmVyZWQoYyx2KSB7IHJldHVybiAwIH1cbiIsIlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21pbm9yXG5mdW5jdGlvbiBjYW1sX2djX21pbm9yKCl7IHJldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9nY19tYWpvclxuZnVuY3Rpb24gY2FtbF9nY19tYWpvcigpeyByZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfZnVsbF9tYWpvclxuZnVuY3Rpb24gY2FtbF9nY19mdWxsX21ham9yKCl7IHJldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9nY19jb21wYWN0aW9uXG5mdW5jdGlvbiBjYW1sX2djX2NvbXBhY3Rpb24oKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2NvdW50ZXJzXG5mdW5jdGlvbiBjYW1sX2djX2NvdW50ZXJzKCkgeyByZXR1cm4gWzI1NCwwLDAsMF0gfVxuLy9Qcm92aWRlczogY2FtbF9nY19xdWlja19zdGF0XG5mdW5jdGlvbiBjYW1sX2djX3F1aWNrX3N0YXQoKXtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX3N0YXRcbmZ1bmN0aW9uIGNhbWxfZ2Nfc3RhdCgpIHtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2Nfc2V0XG5mdW5jdGlvbiBjYW1sX2djX3NldChfY29udHJvbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nY19nZXRcbmZ1bmN0aW9uIGNhbWxfZ2NfZ2V0KCl7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zZXRcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zZXQoX2NvbnRyb2wpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVnaXN0ZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVnaXN0ZXIgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlbGVhc2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVsZWFzZSAoKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zdGFydFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3N0YXJ0KHJhdGUsc3RhY2tfc2l6ZSx0cmFja2VyKXtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zdG9wXG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc3RvcCh1bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V2ZW50bG9nX3Jlc3VtZVxuZnVuY3Rpb24gY2FtbF9ldmVudGxvZ19yZXN1bWUodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V2ZW50bG9nX3BhdXNlXG5mdW5jdGlvbiBjYW1sX2V2ZW50bG9nX3BhdXNlKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50XG5mdW5jdGlvbiBjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21ham9yX3NsaWNlXG5mdW5jdGlvbiBjYW1sX2djX21ham9yX3NsaWNlKHdvcmspIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19taW5vcl93b3Jkc1xuZnVuY3Rpb24gY2FtbF9nY19taW5vcl93b3Jkcyh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21pbm9yX2ZyZWVcbmZ1bmN0aW9uIGNhbWxfZ2V0X21pbm9yX2ZyZWUodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9tYWpvcl9idWNrZXRcbmZ1bmN0aW9uIGNhbWxfZ2V0X21ham9yX2J1Y2tldChuKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21ham9yX2NyZWRpdFxuZnVuY3Rpb24gY2FtbF9nZXRfbWFqb3JfY3JlZGl0KG4pIHsgcmV0dXJuIDA7IH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkLCBBbmR5IFJheVxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuLy9cbi8vIEJpZ2FycmF5LlxuLy9cbi8vIC0gYWxsIGJpZ2FycmF5IHR5cGVzIGluY2x1ZGluZyBJbnQ2NCBhbmQgQ29tcGxleC5cbi8vIC0gZm9ydHJhbiArIGMgbGF5b3V0c1xuLy8gLSBzdWIvc2xpY2UvcmVzaGFwZVxuLy8gLSByZXRhaW4gZmFzdCBwYXRoIGZvciAxZCBhcnJheSBhY2Nlc3NcblxuLy9Qcm92aWRlczogY2FtbF9iYV9pbml0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2JhX2luaXQoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X3NpemUoZGltcykge1xuICB2YXIgbl9kaW1zID0gZGltcy5sZW5ndGg7XG4gIHZhciBzaXplID0gMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuX2RpbXM7IGkrKykge1xuICAgIGlmIChkaW1zW2ldIDwgMClcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmNyZWF0ZTogbmVnYXRpdmUgZGltZW5zaW9uXCIpO1xuICAgIHNpemUgPSBzaXplICogZGltc1tpXTtcbiAgfVxuICByZXR1cm4gc2l6ZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKXtcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDc6IGNhc2UgMTA6IGNhc2UgMTE6IHJldHVybiAyO1xuICBkZWZhdWx0OiByZXR1cm4gMTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIHNpemUpe1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIHZhciB2aWV3O1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMDogIHZpZXcgPSBnLkZsb2F0MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTogIHZpZXcgPSBnLkZsb2F0NjRBcnJheTsgYnJlYWs7XG4gIGNhc2UgMjogIHZpZXcgPSBnLkludDhBcnJheTsgYnJlYWs7XG4gIGNhc2UgMzogIHZpZXcgPSBnLlVpbnQ4QXJyYXk7IGJyZWFrO1xuICBjYXNlIDQ6ICB2aWV3ID0gZy5JbnQxNkFycmF5OyBicmVhaztcbiAgY2FzZSA1OiAgdmlldyA9IGcuVWludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDY6ICB2aWV3ID0gZy5JbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA3OiAgdmlldyA9IGcuSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgODogIHZpZXcgPSBnLkludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDk6ICB2aWV3ID0gZy5JbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxMDogdmlldyA9IGcuRmxvYXQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxMTogdmlldyA9IGcuRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAxMjogdmlldyA9IGcuVWludDhBcnJheTsgYnJlYWs7XG4gIH1cbiAgaWYgKCF2aWV3KSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5jcmVhdGU6IHVuc3VwcG9ydGVkIGtpbmRcIik7XG4gIHZhciBkYXRhID0gbmV3IHZpZXcoc2l6ZSAqIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCkpO1xuICByZXR1cm4gZGF0YTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9WZXJzaW9uOiA8IDQuMTFcbnZhciBjYW1sX2JhX2N1c3RvbV9uYW1lID0gXCJfYmlnYXJyYXlcIlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1ZlcnNpb246ID49IDQuMTFcbnZhciBjYW1sX2JhX2N1c3RvbV9uYW1lID0gXCJfYmlnYXJyMDJcIlxuXG4vL1Byb3ZpZGVzOiBNbF9CaWdhcnJheVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSwgY2FtbF9pbnQ2NF9oaTMyLCBjYW1sX2ludDY0X2xvMzJcbmZ1bmN0aW9uIE1sX0JpZ2FycmF5IChraW5kLCBsYXlvdXQsIGRpbXMsIGJ1ZmZlcikge1xuXG4gIHRoaXMua2luZCAgID0ga2luZCA7XG4gIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuICB0aGlzLmRpbXMgICA9IGRpbXM7XG4gIHRoaXMuZGF0YSA9IGJ1ZmZlcjtcbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gY2FtbF9iYV9jdXN0b21fbmFtZTtcblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uIChhcmcpIHtcbiAgdmFyIG9mcyA9IDA7XG4gIGlmKHR5cGVvZiBhcmcgPT09IFwibnVtYmVyXCIpIGFyZyA9IFthcmddO1xuICBpZiAoISAoYXJnIGluc3RhbmNlb2YgQXJyYXkpKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJiaWdhcnJheS5qczogaW52YWxpZCBvZmZzZXRcIik7XG4gIGlmICh0aGlzLmRpbXMubGVuZ3RoICE9IGFyZy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuZ2V0L3NldDogYmFkIG51bWJlciBvZiBkaW1lbnNpb25zXCIpO1xuICBpZih0aGlzLmxheW91dCA9PSAwIC8qIGNfbGF5b3V0ICovKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRpbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcmdbaV0gPCAwIHx8IGFyZ1tpXSA+PSB0aGlzLmRpbXNbaV0pXG4gICAgICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgICAgIG9mcyA9IChvZnMgKiB0aGlzLmRpbXNbaV0pICsgYXJnW2ldO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5kaW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoYXJnW2ldIDwgMSB8fCBhcmdbaV0gPiB0aGlzLmRpbXNbaV0pe1xuICAgICAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gICAgICB9XG4gICAgICBvZnMgPSAob2ZzICogdGhpcy5kaW1zW2ldKSArIChhcmdbaV0gLSAxKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9mcztcbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChvZnMpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHZhciBsID0gdGhpcy5kYXRhW29mcyAqIDIgKyAwXTtcbiAgICB2YXIgaCA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMV07XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKGwsaCk7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB2YXIgciA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMF07XG4gICAgdmFyIGkgPSB0aGlzLmRhdGFbb2ZzICogMiArIDFdO1xuICAgIHJldHVybiBbMjU0LCByLCBpXTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gdGhpcy5kYXRhW29mc11cbiAgfVxufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKG9mcyx2KSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDBdID0gY2FtbF9pbnQ2NF9sbzMyKHYpO1xuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMV0gPSBjYW1sX2ludDY0X2hpMzIodik7XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDBdID0gdlsxXTtcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDFdID0gdlsyXTtcbiAgICBicmVhaztcbiAgZGVmYXVsdDpcbiAgICB0aGlzLmRhdGFbb2ZzXSA9IHY7XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uICh2KSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB2YXIgYSA9IGNhbWxfaW50NjRfbG8zMih2KTtcbiAgICB2YXIgYiA9IGNhbWxfaW50NjRfaGkzMih2KTtcbiAgICBpZihhID09IGIpe1xuICAgICAgdGhpcy5kYXRhLmZpbGwoYSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgICB0aGlzLmRhdGFbaV0gPSAoaSUyID09IDApID8gYSA6IGI7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdmFyIGltID0gdlsxXTtcbiAgICB2YXIgcmUgPSB2WzJdO1xuICAgIGlmKGltID09IHJlKXtcbiAgICAgIHRoaXMuZGF0YS5maWxsKGltKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3IodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHRoaXMuZGF0YVtpXSA9IChpJTIgPT0gMCkgPyBpbSA6IHJlO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgZGVmYXVsdDpcbiAgICB0aGlzLmRhdGEuZmlsbCh2KTtcbiAgICBicmVhaztcbiAgfVxufVxuXG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKGIsIHRvdGFsKSB7XG4gIGlmICh0aGlzLmxheW91dCAhPSBiLmxheW91dCB8fCB0aGlzLmtpbmQgIT0gYi5raW5kKSB7XG4gICAgdmFyIGsxID0gdGhpcy5raW5kIHwgKHRoaXMubGF5b3V0IDw8IDgpO1xuICAgIHZhciBrMiA9ICAgIGIua2luZCB8IChiLmxheW91dCA8PCA4KTtcbiAgICByZXR1cm4gazIgLSBrMTtcbiAgfVxuICBpZiAodGhpcy5kaW1zLmxlbmd0aCAhPSBiLmRpbXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGIuZGltcy5sZW5ndGggLSB0aGlzLmRpbXMubGVuZ3RoO1xuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIGlmICh0aGlzLmRpbXNbaV0gIT0gYi5kaW1zW2ldKVxuICAgICAgcmV0dXJuICh0aGlzLmRpbXNbaV0gPCBiLmRpbXNbaV0pID8gLTEgOiAxO1xuICBzd2l0Y2ggKHRoaXMua2luZCkge1xuICBjYXNlIDA6XG4gIGNhc2UgMTpcbiAgY2FzZSAxMDpcbiAgY2FzZSAxMTpcbiAgICAvLyBGbG9hdHNcbiAgICB2YXIgeCwgeTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgeCA9IHRoaXMuZGF0YVtpXTtcbiAgICAgIHkgPSBiLmRhdGFbaV07XG4gICAgICBpZiAoeCA8IHkpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh4ID4geSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICBpZiAoeCAhPSB5KSB7XG4gICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgIGlmICh4ID09IHgpIHJldHVybiAxO1xuICAgICAgICBpZiAoeSA9PSB5KSByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrPTIpIHtcbiAgICAgIC8vIENoZWNrIGhpZ2hlc3QgYml0cyBmaXJzdFxuICAgICAgaWYgKHRoaXMuZGF0YVtpKzFdIDwgYi5kYXRhW2krMV0pXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh0aGlzLmRhdGFbaSsxXSA+IGIuZGF0YVtpKzFdKVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGlmICgodGhpcy5kYXRhW2ldID4+PiAwKSA8IChiLmRhdGFbaV0gPj4+IDApKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAoKHRoaXMuZGF0YVtpXSA+Pj4gMCkgPiAoYi5kYXRhW2ldID4+PiAwKSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDI6XG4gIGNhc2UgMzpcbiAgY2FzZSA0OlxuICBjYXNlIDU6XG4gIGNhc2UgNjpcbiAgY2FzZSA4OlxuICBjYXNlIDk6XG4gIGNhc2UgMTI6XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPCBiLmRhdGFbaV0pXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPiBiLmRhdGFbaV0pXG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogTWxfQmlnYXJyYXlfY18xXzFcbi8vUmVxdWlyZXM6IE1sX0JpZ2FycmF5LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIE1sX0JpZ2FycmF5X2NfMV8xKGtpbmQsIGxheW91dCwgZGltcywgYnVmZmVyKSB7XG4gIHRoaXMua2luZCAgID0ga2luZCA7XG4gIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuICB0aGlzLmRpbXMgICA9IGRpbXM7XG4gIHRoaXMuZGF0YSAgID0gYnVmZmVyO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUgPSBuZXcgTWxfQmlnYXJyYXkoKVxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uIChhcmcpIHtcbiAgaWYodHlwZW9mIGFyZyAhPT0gXCJudW1iZXJcIil7XG4gICAgaWYoKGFyZyBpbnN0YW5jZW9mIEFycmF5KSAmJiBhcmcubGVuZ3RoID09IDEpXG4gICAgICBhcmcgPSBhcmdbMF07XG4gICAgZWxzZSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJNbF9CaWdhcnJheV9jXzFfMS5vZmZzZXRcIik7XG4gIH1cbiAgaWYgKGFyZyA8IDAgfHwgYXJnID49IHRoaXMuZGltc1swXSlcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcmc7XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAob2ZzKSB7XG4gIHJldHVybiB0aGlzLmRhdGFbb2ZzXTtcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChvZnMsdikge1xuICB0aGlzLmRhdGFbb2ZzXSA9IHY7XG4gIHJldHVybiAwXG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gKHYpIHtcbiAgdGhpcy5kYXRhLmZpbGwodik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY29tcGFyZVxuZnVuY3Rpb24gY2FtbF9iYV9jb21wYXJlKGEsYix0b3RhbCl7XG4gIHJldHVybiBhLmNvbXBhcmUoYix0b3RhbClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG4vL1JlcXVpcmVzOiBNbF9CaWdhcnJheSwgTWxfQmlnYXJyYXlfY18xXzEsIGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSl7XG4gIHZhciBzaXplX3Blcl9lbGVtZW50ID0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKTtcbiAgaWYoY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSAqIHNpemVfcGVyX2VsZW1lbnQgIT0gZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJsZW5ndGggZG9lc24ndCBtYXRjaCBkaW1zXCIpO1xuICB9XG4gIGlmKGxheW91dCA9PSAwICYmIC8vIGNfbGF5b3V0XG4gICAgIGRpbXMubGVuZ3RoID09IDEgJiYgLy8gQXJyYXkxXG4gICAgIHNpemVfcGVyX2VsZW1lbnQgPT0gMSkgLy8gMS10by0xIG1hcHBpbmdcbiAgICByZXR1cm4gbmV3IE1sX0JpZ2FycmF5X2NfMV8xKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG4gIHJldHVybiBuZXcgTWxfQmlnYXJyYXkoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcblxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZShraW5kLCBsYXlvdXQsIGRpbXNfbWwpIHtcbiAgdmFyIGRpbXMgPSBjYW1sX2pzX2Zyb21fYXJyYXkoZGltc19tbCk7XG4gIHZhciBkYXRhID0gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIGNhbWxfYmFfZ2V0X3NpemUoZGltcykpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY2hhbmdlX2xheW91dFxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBjYW1sX2JhX2NoYW5nZV9sYXlvdXQoYmEsIGxheW91dCkge1xuICBpZihiYS5sYXlvdXQgPT0gbGF5b3V0KSByZXR1cm4gYmE7XG4gIHZhciBuZXdfZGltcyA9IFtdXG4gIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSBuZXdfZGltc1tpXSA9IGJhLmRpbXNbYmEuZGltcy5sZW5ndGggLSBpIC0gMV07XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgbGF5b3V0LCBuZXdfZGltcywgYmEuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfa2luZFxuZnVuY3Rpb24gY2FtbF9iYV9raW5kKGJhKSB7XG4gIHJldHVybiBiYS5raW5kO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2xheW91dFxuZnVuY3Rpb24gY2FtbF9iYV9sYXlvdXQoYmEpIHtcbiAgcmV0dXJuIGJhLmxheW91dDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9udW1fZGltc1xuZnVuY3Rpb24gY2FtbF9iYV9udW1fZGltcyhiYSkge1xuICByZXR1cm4gYmEuZGltcy5sZW5ndGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZGltKGJhLCBpKSB7XG4gIGlmIChpIDwgMCB8fCBpID49IGJhLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmRpbVwiKTtcbiAgcmV0dXJuIGJhLmRpbXNbaV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzFcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8xKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzJcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8yKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzNcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8zKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X2dlbmVyaWNcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfZ2VuZXJpYyhiYSwgaSkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGNhbWxfanNfZnJvbV9hcnJheShpKSk7XG4gIHJldHVybiBiYS5nZXQob2ZzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQxNlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQxNihiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDEgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMgKyAxKTtcbiAgcmV0dXJuIChiMSB8IChiMiA8PCA4KSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0MzIoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAzID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMrMCk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMrMSk7XG4gIHZhciBiMyA9IGJhLmdldChvZnMrMik7XG4gIHZhciBiNCA9IGJhLmdldChvZnMrMyk7XG4gIHJldHVybiAoIChiMSA8PCAwKSAgfFxuICAgICAgICAgICAoYjIgPDwgOCkgIHxcbiAgICAgICAgICAgKGIzIDw8IDE2KSB8XG4gICAgICAgICAgIChiNCA8PCAyNCkgKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQ2NChiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDcgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyswKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcysxKTtcbiAgdmFyIGIzID0gYmEuZ2V0KG9mcysyKTtcbiAgdmFyIGI0ID0gYmEuZ2V0KG9mcyszKTtcbiAgdmFyIGI1ID0gYmEuZ2V0KG9mcys0KTtcbiAgdmFyIGI2ID0gYmEuZ2V0KG9mcys1KTtcbiAgdmFyIGI3ID0gYmEuZ2V0KG9mcys2KTtcbiAgdmFyIGI4ID0gYmEuZ2V0KG9mcys3KTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoW2I4LGI3LGI2LGI1LGI0LGIzLGIyLGIxXSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzEoYmEsIGkwKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KGkwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzJcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzIoYmEsIGkwLCBpMSkge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChbaTAsaTFdKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzNcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzMoYmEsIGkwLCBpMSwgaTIpIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoW2kwLGkxLGkyXSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF9nZW5lcmljXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0X2dlbmVyaWMoYmEsIGksIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChjYW1sX2pzX2Zyb21fYXJyYXkoaSkpLCB2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQxNihiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDEgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYmEuc2V0KG9mcyswLCAgdiAgICAgICAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysxLCAodiA+Pj4gOCkgJiAweGZmKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0MzIoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAzID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGJhLnNldChvZnMrMCwgIHYgICAgICAgICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzEsICh2ID4+PiA4KSAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysyLCAodiA+Pj4gMTYpICYgMHhmZik7XG4gIGJhLnNldChvZnMrMywgKHYgPj4+IDI0KSAmIDB4ZmYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQ2NChiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDcgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIHYgPSBjYW1sX2ludDY0X3RvX2J5dGVzKHYpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgODsgaSsrKSBiYS5zZXQob2ZzK2ksIHZbNy1pXSlcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzEoYmEsIGkwLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoaTApLCB2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfMlxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMihiYSwgaTAsIGkxLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoW2kwLGkxXSksIHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfM1xuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMyhiYSwgaTAsIGkxLCBpMiwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KFtpMCxpMSxpMl0pLCB2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZmlsbFxuZnVuY3Rpb24gY2FtbF9iYV9maWxsKGJhLCB2KSB7XG4gIGJhLmZpbGwodik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2JsaXRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9ibGl0KHNyYywgZHN0KSB7XG4gIGlmIChkc3QuZGltcy5sZW5ndGggIT0gc3JjLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmJsaXQ6IGRpbWVuc2lvbiBtaXNtYXRjaFwiKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkc3QuZGltcy5sZW5ndGg7IGkrKylcbiAgICBpZiAoZHN0LmRpbXNbaV0gIT0gc3JjLmRpbXNbaV0pXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5ibGl0OiBkaW1lbnNpb24gbWlzbWF0Y2hcIik7XG4gIGRzdC5kYXRhLnNldChzcmMuZGF0YSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3N1YlxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfc3ViKGJhLCBvZnMsIGxlbikge1xuICB2YXIgY2hhbmdlZF9kaW07XG4gIHZhciBtdWwgPSAxO1xuICBpZiAoYmEubGF5b3V0ID09IDApIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgICBtdWwgPSBtdWwgKiBiYS5kaW1zW2ldO1xuICAgIGNoYW5nZWRfZGltID0gMDtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IChiYS5kaW1zLmxlbmd0aCAtIDEpOyBpKyspXG4gICAgICBtdWwgPSBtdWwgKiBiYS5kaW1zW2ldO1xuICAgIGNoYW5nZWRfZGltID0gYmEuZGltcy5sZW5ndGggLSAxO1xuICAgIG9mcyA9IG9mcyAtIDE7XG4gIH1cbiAgaWYgKG9mcyA8IDAgfHwgbGVuIDwgMCB8fCAob2ZzICsgbGVuKSA+IGJhLmRpbXNbY2hhbmdlZF9kaW1dKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5zdWI6IGJhZCBzdWItYXJyYXlcIik7XG4gIH1cbiAgdmFyIG5ld19kaW1zID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICBuZXdfZGltc1tpXSA9IGJhLmRpbXNbaV07XG4gIG5ld19kaW1zW2NoYW5nZWRfZGltXSA9IGxlbjtcbiAgbXVsICo9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoYmEua2luZCk7XG4gIHZhciBuZXdfZGF0YSA9IGJhLmRhdGEuc3ViYXJyYXkob2ZzICogbXVsLCAob2ZzICsgbGVuKSAqIG11bCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBuZXdfZGltcywgbmV3X2RhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NsaWNlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX3NsaWNlKGJhLCB2aW5kKSB7XG4gIHZpbmQgPSBjYW1sX2pzX2Zyb21fYXJyYXkodmluZCk7XG4gIHZhciBudW1faW5kcyA9IHZpbmQubGVuZ3RoO1xuICB2YXIgaW5kZXggPSBbXTtcbiAgdmFyIHN1Yl9kaW1zID0gW107XG4gIHZhciBvZnM7XG5cbiAgaWYgKG51bV9pbmRzID4gYmEuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuc2xpY2U6IHRvbyBtYW55IGluZGljZXNcIik7XG5cbiAgLy8gQ29tcHV0ZSBvZmZzZXQgYW5kIGNoZWNrIGJvdW5kc1xuICBpZiAoYmEubGF5b3V0ID09IDApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtpXSA9IHZpbmRbaV07XG4gICAgZm9yICg7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSAwO1xuICAgIHN1Yl9kaW1zID0gYmEuZGltcy5zbGljZShudW1faW5kcyk7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbYmEuZGltcy5sZW5ndGggLSBudW1faW5kcyArIGldID0gdmluZFtpXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2ldID0gMTtcbiAgICBzdWJfZGltcyA9IGJhLmRpbXMuc2xpY2UoMCwgYmEuZGltcy5sZW5ndGggLSBudW1faW5kcyk7XG4gIH1cbiAgb2ZzID0gYmEub2Zmc2V0KGluZGV4KTtcbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKHN1Yl9kaW1zKTtcbiAgdmFyIHNpemVfcGVyX2VsZW1lbnQgPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGJhLmtpbmQpO1xuICB2YXIgbmV3X2RhdGEgPSBiYS5kYXRhLnN1YmFycmF5KG9mcyAqIHNpemVfcGVyX2VsZW1lbnQsIChvZnMgKyBzaXplKSAqIHNpemVfcGVyX2VsZW1lbnQpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgc3ViX2RpbXMsIG5ld19kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9yZXNoYXBlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2JhX2dldF9zaXplXG5mdW5jdGlvbiBjYW1sX2JhX3Jlc2hhcGUoYmEsIHZpbmQpIHtcbiAgdmluZCA9IGNhbWxfanNfZnJvbV9hcnJheSh2aW5kKTtcbiAgdmFyIG5ld19kaW0gPSBbXTtcbiAgdmFyIG51bV9kaW1zID0gdmluZC5sZW5ndGg7XG5cbiAgaWYgKG51bV9kaW1zIDwgMCB8fCBudW1fZGltcyA+IDE2KXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBiYWQgbnVtYmVyIG9mIGRpbWVuc2lvbnNcIik7XG4gIH1cbiAgdmFyIG51bV9lbHRzID0gMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSB7XG4gICAgbmV3X2RpbVtpXSA9IHZpbmRbaV07XG4gICAgaWYgKG5ld19kaW1baV0gPCAwKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogbmVnYXRpdmUgZGltZW5zaW9uXCIpO1xuICAgIG51bV9lbHRzID0gbnVtX2VsdHMgKiBuZXdfZGltW2ldO1xuICB9XG5cbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKGJhLmRpbXMpO1xuICAvLyBDaGVjayB0aGF0IHNpemVzIGFncmVlXG4gIGlmIChudW1fZWx0cyAhPSBzaXplKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IHNpemUgbWlzbWF0Y2hcIik7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBuZXdfZGltLCBiYS5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXJpYWxpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9pbnQ2NF90b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2JhX3NlcmlhbGl6ZSh3cml0ZXIsIGJhLCBzeikge1xuICB3cml0ZXIud3JpdGUoMzIsIGJhLmRpbXMubGVuZ3RoKTtcbiAgd3JpdGVyLndyaXRlKDMyLCAoYmEua2luZCB8IChiYS5sYXlvdXQgPDwgOCkpKTtcbiAgaWYoYmEuY2FtbF9jdXN0b20gPT0gXCJfYmlnYXJyMDJcIilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYoYmEuZGltc1tpXSA8IDB4ZmZmZilcbiAgICAgICAgd3JpdGVyLndyaXRlKDE2LCBiYS5kaW1zW2ldKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB3cml0ZXIud3JpdGUoMTYsIDB4ZmZmZik7XG4gICAgICAgIHdyaXRlci53cml0ZSgzMiwgMCk7XG4gICAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGltc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICBlbHNlXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIHdyaXRlci53cml0ZSgzMixiYS5kaW1zW2ldKVxuICBzd2l0Y2goYmEua2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoOCwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDE2LCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICB3cml0ZXIud3JpdGUoOCwwKTtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OiAgLy8gSW50MzJBcnJheSAoaW50NjQpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhiYS5nZXQoaSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGJhLmdldChpKSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChiYS5nZXQoaSkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgaiA9IGJhLmdldChpKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGpbMV0pKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGpbMl0pKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgY29tcGxleCA9IGJhLmdldChpKTtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoY29tcGxleFsxXSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGNvbXBsZXhbMl0pKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICBzelswXSA9ICg0ICsgYmEuZGltcy5sZW5ndGgpICogNDtcbiAgc3pbMV0gPSAoNCArIGJhLmRpbXMubGVuZ3RoKSAqIDg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGVzZXJpYWxpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlcywgY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuZnVuY3Rpb24gY2FtbF9iYV9kZXNlcmlhbGl6ZShyZWFkZXIsIHN6LCBuYW1lKXtcbiAgdmFyIG51bV9kaW1zID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgaWYgKG51bV9kaW1zIDwgMCB8fCBudW1fZGltcyA+IDE2KVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogd3JvbmcgbnVtYmVyIG9mIGJpZ2FycmF5IGRpbWVuc2lvbnNcIik7XG4gIHZhciB0YWcgPSByZWFkZXIucmVhZDMycygpO1xuICB2YXIga2luZCA9IHRhZyAmIDB4ZmZcbiAgdmFyIGxheW91dCA9ICh0YWcgPj4gOCkgJiAxO1xuICB2YXIgZGltcyA9IFtdXG4gIGlmKG5hbWUgPT0gXCJfYmlnYXJyMDJcIilcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIHtcbiAgICAgIHZhciBzaXplX2RpbSA9IHJlYWRlci5yZWFkMTZ1KCk7XG4gICAgICBpZihzaXplX2RpbSA9PSAweGZmZmYpe1xuICAgICAgICB2YXIgc2l6ZV9kaW1faGkgPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICB2YXIgc2l6ZV9kaW1fbG8gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICBpZihzaXplX2RpbV9oaSAhPSAwKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogYmlnYXJyYXkgZGltZW5zaW9uIG92ZXJmbG93IGluIDMyYml0XCIpO1xuICAgICAgICBzaXplX2RpbSA9IHNpemVfZGltX2xvO1xuICAgICAgfVxuICAgICAgZGltcy5wdXNoKHNpemVfZGltKTtcbiAgICB9XG4gIGVsc2VcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIGRpbXMucHVzaChyZWFkZXIucmVhZDMydSgpKTtcbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKGRpbXMpO1xuICB2YXIgZGF0YSA9IGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBzaXplKTtcbiAgdmFyIGJhID0gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDhzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMTZzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMTZ1KCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgdmFyIHNpeHR5ID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgIGlmKHNpeHR5KSBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGNhbm5vdCByZWFkIGJpZ2FycmF5IHdpdGggNjQtYml0IE9DYW1sIGludHNcIik7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogLy8gKGludDY0KVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBpbnQ2NCA9IGNhbWxfaW50NjRfb2ZfYnl0ZXModCk7XG4gICAgICBiYS5zZXQoaSxpbnQ2NCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgZiA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGJhLnNldChpLGYpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICB2YXIgZiA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIGJhLnNldChpLGYpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICB2YXIgcmUgPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICB2YXIgaW0gPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICBiYS5zZXQoaSxbMjU0LHJlLGltXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgcmUgPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgaW0gPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBiYS5zZXQoaSxbMjU0LHJlLGltXSk7XG4gICAgfVxuICAgIGJyZWFrXG4gIH1cbiAgc3pbMF0gPSAoNCArIG51bV9kaW1zKSAqIDQ7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbn1cblxuLy9EZXByZWNhdGVkXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV9mcm9tXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfZnJvbShkYXRhMSwgZGF0YTIsIGpzdHlwLCBraW5kLCBsYXlvdXQsIGRpbXMpe1xuICBpZihkYXRhMiB8fCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpID09IDIpe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmFfY3JlYXRlX2Zyb206IHVzZSByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlXCIpO1xuICB9XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfaGFzaCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9oYXNoX21peF9pbnQsIGNhbWxfaGFzaF9taXhfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfYmFfaGFzaChiYSl7XG4gIHZhciBudW1fZWx0cyA9IGNhbWxfYmFfZ2V0X3NpemUoYmEuZGltcyk7XG4gIHZhciBoID0gMDtcbiAgc3dpdGNoKGJhLmtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgaWYobnVtX2VsdHMgPiAyNTYpIG51bV9lbHRzID0gMjU2O1xuICAgIHZhciB3ID0gMCwgaSA9MDtcbiAgICBmb3IoaSA9IDA7IGkgKyA0IDw9IGJhLmRhdGEubGVuZ3RoOyBpKz00KXtcbiAgICAgIHcgPSBiYS5kYXRhW2krMF0gfCAoYmEuZGF0YVtpKzFdIDw8IDgpIHwgKGJhLmRhdGFbaSsyXSA8PCAxNikgfCAoYmEuZGF0YVtpKzNdIDw8IDI0KTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLHcpO1xuICAgIH1cbiAgICB3ID0gMDtcbiAgICBzd2l0Y2ggKG51bV9lbHRzICYgMykge1xuICAgIGNhc2UgMzogdyAgPSBiYS5kYXRhW2krMl0gPDwgMTY7ICAgIC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAyOiB3IHw9IGJhLmRhdGFbaSsxXSA8PCA4OyAgICAgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlIDE6IHcgfD0gYmEuZGF0YVtpKzBdO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGlmKG51bV9lbHRzID4gMTI4KSBudW1fZWx0cyA9IDEyODtcbiAgICB2YXIgdyA9IDAsIGkgPTA7XG4gICAgZm9yKGkgPSAwOyBpICsgMiA8PSBiYS5kYXRhLmxlbmd0aDsgaSs9Mil7XG4gICAgICB3ID0gYmEuZGF0YVtpKzBdIHwgKGJhLmRhdGFbaSsxXSA8PCAxNik7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCx3KTtcbiAgICB9XG4gICAgaWYgKChudW1fZWx0cyAmIDEpICE9IDApXG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA3OiAgLy8gSW50MzJBcnJheSAoaW50NjQpXG4gICAgaWYgKG51bV9lbHRzID4gMzIpIG51bV9lbHRzID0gMzI7XG4gICAgbnVtX2VsdHMgKj0gMlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgbnVtX2VsdHMgKj0yOyAvKiBmYWxsdGhyb3VnaCAqL1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICBudW1fZWx0cyAqPTI7IC8qIGZhbGx0aHJvdWdoICovXG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIGlmIChudW1fZWx0cyA+IDMyKSBudW1fZWx0cyA9IDMyO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdG9fdHlwZWRfYXJyYXkgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9iYV90b190eXBlZF9hcnJheShiYSl7XG4gIHJldHVybiBiYS5kYXRhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkodGEpe1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIHZhciBraW5kO1xuICBpZiAodGEgaW5zdGFuY2VvZiBnLkZsb2F0MzJBcnJheSkga2luZCA9IDA7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5GbG9hdDY0QXJyYXkpIGtpbmQgPSAxO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuSW50OEFycmF5KSBraW5kID0gMjtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLlVpbnQ4QXJyYXkpIGtpbmQgPSAzO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuSW50MTZBcnJheSkga2luZCA9IDQ7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5VaW50MTZBcnJheSkga2luZCA9IDU7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5JbnQzMkFycmF5KSBraW5kID0gNjtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLlVpbnQzMkFycmF5KSBraW5kID0gNjtcbiAgZWxzZSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXk6IHVuc3VwcG9ydGVkIGtpbmRcIik7XG4gIHJldHVybiBraW5kO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSh0YSl7XG4gIHZhciBraW5kID0gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF90YWdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX3RhZyhhKXtcbiAgaWYgKHR5cGVvZiBhID09PSBcIm51bWJlclwiKSByZXR1cm4gMTAwMDsgLy8gaW50X3RhZyAod2UgdXNlIGl0IGZvciBhbGwgbnVtYmVycylcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyhhKSkgcmV0dXJuIDI1MjsgLy8gc3RyaW5nX3RhZ1xuICBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyhhKSkgcmV0dXJuIDEyNTI7IC8vIG9jYW1sIHN0cmluZyAoaWYgZGlmZmVyZW50IGZyb20gYnl0ZXMpXG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSAmJiBhWzBdID09PSAoYVswXT4+PjApICYmIGFbMF0gPD0gMjU1KSB7XG4gICAgLy8gTG9vayBsaWtlIGFuIG9jYW1sIGJsb2NrXG4gICAgdmFyIHRhZyA9IGFbMF0gfCAwO1xuICAgIC8vIGlnbm9yZSBkb3VibGVfYXJyYXlfdGFnIGJlY2F1c2Ugd2UgY2Fubm90IGFjY3VyYXRlbHkgc2V0XG4gICAgLy8gdGhpcyB0YWcgd2hlbiB3ZSBjcmVhdGUgYW4gYXJyYXkgb2YgZmxvYXQuXG4gICAgcmV0dXJuICh0YWcgPT0gMjU0KT8wOnRhZ1xuICB9XG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBTdHJpbmcpIHJldHVybiAxMjUyMDsgLy8gamF2YXNjcmlwdCBzdHJpbmcsIGxpa2Ugc3RyaW5nX3RhZyAoMjUyKVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcInN0cmluZ1wiKSByZXR1cm4gMTI1MjA7IC8vIGphdmFzY3JpcHQgc3RyaW5nLCBsaWtlIHN0cmluZ190YWcgKDI1MilcbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIE51bWJlcikgcmV0dXJuIDEwMDA7IC8vIGludF90YWcgKHdlIHVzZSBpdCBmb3IgYWxsIG51bWJlcnMpXG4gIGVsc2UgaWYgKGEgJiYgYS5jYW1sX2N1c3RvbSkgcmV0dXJuIDEyNTU7IC8vIGxpa2UgY3VzdG9tX3RhZyAoMjU1KVxuICBlbHNlIGlmIChhICYmIGEuY29tcGFyZSkgcmV0dXJuIDEyNTY7IC8vIGxpa2UgY3VzdG9tX3RhZyAoMjU1KVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcImZ1bmN0aW9uXCIpIHJldHVybiAxMjQ3OyAvLyBsaWtlIGNsb3N1cmVfdGFnICgyNDcpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwic3ltYm9sXCIpIHJldHVybiAxMjUxO1xuICByZXR1cm4gMTAwMTsgLy9vdXRfb2ZfaGVhcF90YWdcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9vcHNcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShhKXtcbiAgcmV0dXJuIGNhbWxfY3VzdG9tX29wc1thLmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbYS5jYW1sX2N1c3RvbV0uY29tcGFyZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b21cbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShudW0sIGN1c3RvbSwgc3dhcCwgdG90YWwpIHtcbiAgdmFyIGNvbXAgPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oY3VzdG9tKTtcbiAgaWYoY29tcCkge1xuICAgIHZhciB4ID0gKHN3YXAgPiAwKT9jb21wKGN1c3RvbSxudW0sdG90YWwpOmNvbXAobnVtLGN1c3RvbSx0b3RhbCk7XG4gICAgaWYodG90YWwgJiYgeCAhPSB4KSByZXR1cm4gc3dhcDsgLy8gdG90YWwgJiYgbmFuXG4gICAgaWYoK3ggIT0gK3gpIHJldHVybiAreDsgLy8gbmFuXG4gICAgaWYoKHggfCAwKSAhPSAwKSByZXR1cm4gKHggfCAwKTsgLy8gIW5hblxuICB9XG4gIHJldHVybiBzd2FwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWwgKGNvbnN0LCBjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ludF9jb21wYXJlLCBjYW1sX3N0cmluZ19jb21wYXJlLCBjYW1sX2J5dGVzX2NvbXBhcmVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tLCBjYW1sX2NvbXBhcmVfdmFsX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsIChhLCBiLCB0b3RhbCkge1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgZm9yKDs7KSB7XG4gICAgaWYgKCEodG90YWwgJiYgYSA9PT0gYikpIHtcbiAgICAgIHZhciB0YWdfYSA9IGNhbWxfY29tcGFyZV92YWxfdGFnKGEpO1xuICAgICAgLy8gZm9yd2FyZF90YWcgP1xuICAgICAgaWYodGFnX2EgPT0gMjUwKSB7IGEgPSBhWzFdOyBjb250aW51ZSB9XG5cbiAgICAgIHZhciB0YWdfYiA9IGNhbWxfY29tcGFyZV92YWxfdGFnKGIpO1xuICAgICAgLy8gZm9yd2FyZF90YWcgP1xuICAgICAgaWYodGFnX2IgPT0gMjUwKSB7IGIgPSBiWzFdOyBjb250aW51ZSB9XG5cbiAgICAgIC8vIHRhZ3MgYXJlIGRpZmZlcmVudFxuICAgICAgaWYodGFnX2EgIT09IHRhZ19iKSB7XG4gICAgICAgIGlmKHRhZ19hID09IDEwMDApIHtcbiAgICAgICAgICBpZih0YWdfYiA9PSAxMjU1KSB7IC8vaW1tZWRpYXRlIGNhbiBjb21wYXJlIGFnYWluc3QgY3VzdG9tXG4gICAgICAgICAgICByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKGEsIGIsIC0xLCB0b3RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmKHRhZ19iID09IDEwMDApIHtcbiAgICAgICAgICBpZih0YWdfYSA9PSAxMjU1KSB7IC8vaW1tZWRpYXRlIGNhbiBjb21wYXJlIGFnYWluc3QgY3VzdG9tXG4gICAgICAgICAgICByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKGIsIGEsIDEsIHRvdGFsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDFcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRhZ19hIDwgdGFnX2IpPy0xOjE7XG4gICAgICB9XG4gICAgICBzd2l0Y2godGFnX2Epe1xuICAgICAgICAvLyAyNDY6IExhenlfdGFnIGhhbmRsZWQgYmVsbG93XG4gICAgICBjYXNlIDI0NzogLy8gQ2xvc3VyZV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNDg6IC8vIE9iamVjdFxuICAgICAgICB2YXIgeCA9IGNhbWxfaW50X2NvbXBhcmUoYVsyXSwgYlsyXSk7XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjQ5OiAvLyBJbmZpeFxuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI1MDogLy8gRm9yd2FyZCB0YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlbiwgaGFuZGxlZCBhYm92ZVxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IEZvcndhcmRfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MTogLy9BYnN0cmFjdFxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogYWJzdHJhY3QgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTI6IC8vIE9DYW1sIGJ5dGVzXG4gICAgICAgIGlmIChhICE9PSBiKSB7XG4gICAgICAgICAgdmFyIHggPSBjYW1sX2J5dGVzX2NvbXBhcmUoYSwgYik7XG4gICAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTM6IC8vIERvdWJsZV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IERvdWJsZV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjU0OiAvLyBEb3VibGVfYXJyYXlfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW4sIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBEb3VibGVfYXJyYXlfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjU1OiAvLyBDdXN0b21fdGFnXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgQ3VzdG9tX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjQ3OiAvLyBGdW5jdGlvblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1NTogLy8gQ3VzdG9tXG4gICAgICAgIHZhciBjb21wID0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGEpO1xuICAgICAgICBpZihjb21wICE9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShiKSl7XG4gICAgICAgICAgcmV0dXJuIChhLmNhbWxfY3VzdG9tPGIuY2FtbF9jdXN0b20pPy0xOjE7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWNvbXApXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogYWJzdHJhY3QgdmFsdWVcIik7XG4gICAgICAgIHZhciB4ID0gY29tcChhLGIsdG90YWwpO1xuICAgICAgICBpZih4ICE9IHgpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBVTk9SREVSRURcbiAgICAgICAgICByZXR1cm4gdG90YWw/LTE6eDtcbiAgICAgICAgfVxuICAgICAgICBpZih4ICE9PSAoeHwwKSl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIHJldHVybiB2YWx1ZVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1NjogLy8gY29tcGFyZSBmdW5jdGlvblxuICAgICAgICB2YXIgeCA9IGEuY29tcGFyZShiLHRvdGFsKTtcbiAgICAgICAgaWYoeCAhPSB4KSB7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIFVOT1JERVJFRFxuICAgICAgICAgIHJldHVybiB0b3RhbD8tMTp4O1xuICAgICAgICB9XG4gICAgICAgIGlmKHggIT09ICh4fDApKXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDAwOiAvLyBOdW1iZXJcbiAgICAgICAgYSA9ICthO1xuICAgICAgICBiID0gK2I7XG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICBpZiAoYSAhPSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICBpZiAoYSA9PSBhKSByZXR1cm4gMTtcbiAgICAgICAgICBpZiAoYiA9PSBiKSByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEwMDE6IC8vIFRoZSByZXN0XG4gICAgICAgIC8vIEhlcmUgd2UgY2FuIGJlIGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG4gICAgICAgIC8vIDEuIEphdmFTY3JpcHQgcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vIDIuIEphdmFTY3JpcHQgb2JqZWN0IHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vIDMuIEphdmFTY3JpcHQgb2JqZWN0IHRoYW4gY2Fubm90IGJlIGNvZXJjZWQgdG8gcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vXG4gICAgICAgIC8vICgzKSB3aWxsIHJhaXNlIGEgW1R5cGVFcnJvcl1cbiAgICAgICAgLy8gKDIpIHdpbGwgY29lcmNlIHRvIHByaW1pdGl2ZSB0eXBlcyB1c2luZyBbdmFsdWVPZl0gb3IgW3RvU3RyaW5nXVxuICAgICAgICAvLyAoMikgYW5kICgzKSwgYWZ0ZXIgZXZlbnR1YWwgY29lcmNpb25cbiAgICAgICAgLy8gLSBpZiBhIGFuZCBiIGFyZSBzdHJpbmdzLCBhcHBseSBsZXhpY29ncmFwaGljIGNvbXBhcmlzb25cbiAgICAgICAgLy8gLSBpZiBhIG9yIGIgYXJlIG5vdCBzdHJpbmdzLCBjb252ZXJ0IGEgYW5kIGIgdG8gbnVtYmVyXG4gICAgICAgIC8vICAgYW5kIGFwcGx5IHN0YW5kYXJkIGNvbXBhcmlzb25cbiAgICAgICAgLy9cbiAgICAgICAgLy8gRXhjZXB0aW9uOiBgIT1gIHdpbGwgbm90IGNvZXJjZS9jb252ZXJ0IGlmIGJvdGggYSBhbmQgYiBhcmUgb2JqZWN0c1xuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKGEgIT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgaWYgKGEgPT0gYSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGIgPT0gYikgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUxOiAvLyBKYXZhU2NyaXB0IFN5bWJvbCwgbm8gb3JkZXJpbmcuXG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUyOiAvLyBvY2FtbCBzdHJpbmdzXG4gICAgICAgIHZhciBhID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhhKTtcbiAgICAgICAgdmFyIGIgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGIpO1xuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgICBpZihhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTIwOiAvLyBqYXZhc2NyaXB0IHN0cmluZ3NcbiAgICAgICAgdmFyIGEgPSBhLnRvU3RyaW5nKCk7XG4gICAgICAgIHZhciBiID0gYi50b1N0cmluZygpO1xuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgICBpZihhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI0NjogLy8gTGF6eV90YWdcbiAgICAgIGNhc2UgMjU0OiAvLyBEb3VibGVfYXJyYXlcbiAgICAgIGRlZmF1bHQ6IC8vIEJsb2NrIHdpdGggb3RoZXIgdGFnXG4gICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIChhLmxlbmd0aCA8IGIubGVuZ3RoKT8tMToxO1xuICAgICAgICBpZiAoYS5sZW5ndGggPiAxKSBzdGFjay5wdXNoKGEsIGIsIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0YWNrLmxlbmd0aCA9PSAwKSByZXR1cm4gMDtcbiAgICB2YXIgaSA9IHN0YWNrLnBvcCgpO1xuICAgIGIgPSBzdGFjay5wb3AoKTtcbiAgICBhID0gc3RhY2sucG9wKCk7XG4gICAgaWYgKGkgKyAxIDwgYS5sZW5ndGgpIHN0YWNrLnB1c2goYSwgYiwgaSArIDEpO1xuICAgIGEgPSBhW2ldO1xuICAgIGIgPSBiW2ldO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZSAoYSwgYikgeyByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdHJ1ZSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaW50X2NvbXBhcmUgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pbnRfY29tcGFyZSAoYSwgYikge1xuICBpZiAoYSA8IGIpIHJldHVybiAoLTEpOyBpZiAoYSA9PSBiKSByZXR1cm4gMDsgcmV0dXJuIDE7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID09IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbm90ZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpICE9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyZWF0ZXJlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2dyZWF0ZXJlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPj0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JlYXRlcnRoYW4gbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ncmVhdGVydGhhbiAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPiAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9sZXNzZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9sZXNzZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDw9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xlc3N0aGFuIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbGVzc3RoYW4gKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDwgMCk7IH1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENvcHlyaWdodCAoYykgMjAxNyBJbmhhYml0ZWQgVHlwZSBMTEMuXG5cbiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXG4gICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zXG4gICAgYXJlIG1ldDpcblxuICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuXG4gICAgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlXG4gICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cblxuICAgIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGF1dGhvciBub3IgdGhlIG5hbWVzIG9mIGhpcyBjb250cmlidXRvcnNcbiAgICAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmVcbiAgICAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cblxuICAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTXG4gICAgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAgICBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gICAgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SXG4gICAgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTFxuICAgIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTXG4gICAgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pXG4gICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULFxuICAgIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTlxuICAgIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRVxuICAgIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfYmxpdF90b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlc1xuZnVuY3Rpb24gYmlnc3RyaW5nYWZfYmxpdF90b19ieXRlcyhzcmMsIHNyY19vZmYsIGRzdCwgZHN0X29mZiwgbGVuKSB7XG4gIHJldHVybiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzKHNyYyxzcmNfb2ZmLGRzdCxkc3Rfb2ZmLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhXG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9ibGl0X3RvX2JpZ3N0cmluZyhzcmMsIHNyY19vZmYsIGRzdCwgZHN0X29mZiwgbGVuKSB7XG4gIHJldHVybiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhKHNyYywgc3JjX29mZiwgZHN0LCBkc3Rfb2ZmLCBsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9ibGl0X2Zyb21fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhXG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9ibGl0X2Zyb21fYnl0ZXMoc3JjLCBzcmNfb2ZmLCBkc3QsIGRzdF9vZmYsIGxlbikge1xuICByZXR1cm4gY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEoc3JjLCBzcmNfb2ZmLCBkc3QsIGRzdF9vZmYsIGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX21lbWNtcF9iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzEsIGNhbWxfaW50X2NvbXBhcmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX21lbWNtcF9iaWdzdHJpbmcoYmExLCBiYTFfb2ZmLCBiYTIsIGJhMl9vZmYsIGxlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGMgPSBjYW1sX2ludF9jb21wYXJlKGNhbWxfYmFfZ2V0XzEoYmExLCBiYTFfb2ZmICsgaSksIGNhbWxfYmFfZ2V0XzEoYmEyLCBiYTJfb2ZmICsgaSkpO1xuICAgIGlmIChjICE9IDApIHJldHVybiBjXG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX21lbWNtcF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzEsIGNhbWxfaW50X2NvbXBhcmUsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX21lbWNtcF9zdHJpbmcoYmEsIGJhX29mZiwgc3RyLCBzdHJfb2ZmLCBsZW4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBjID0gY2FtbF9pbnRfY29tcGFyZShjYW1sX2JhX2dldF8xKGJhLCBiYV9vZmYgKyBpKSwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzdHIsIHN0cl9vZmYgKyBpKSk7XG4gICAgaWYgKGMgIT0gMCkgcmV0dXJuIGNcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfbWVtY2hyXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9tZW1jaHIoYmEsIGJhX29mZiwgY2hyLCBsZW4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChjYW1sX2JhX2dldF8xKGJhLCBiYV9vZmYgKyBpKSA9PSBjaHIpIHtcbiAgICAgIHJldHVybiAoYmFfb2ZmICsgaSk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIGxpYnJhcnlcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBKc2xpYlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3B1cmVfZXhwciBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19wdXJlX2V4cHIgKGYpIHsgcmV0dXJuIGYoKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3NldCAobXV0YWJsZSwgY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19zZXQobyxmLHYpIHsgb1tmXT12O3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9qc19nZXQgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19nZXQobyxmKSB7IHJldHVybiBvW2ZdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2RlbGV0ZSAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2RlbGV0ZShvLGYpIHsgZGVsZXRlIG9bZl07IHJldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2luc3RhbmNlb2YgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfaW5zdGFuY2VvZihvLGMpIHsgcmV0dXJuIChvIGluc3RhbmNlb2YgYykgPyAxIDogMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3R5cGVvZiAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3R5cGVvZihvKSB7IHJldHVybiB0eXBlb2YgbzsgfVxuXG4vL1Byb3ZpZGVzOmNhbWxfdHJhbXBvbGluZVxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lKHJlcykge1xuICB2YXIgYyA9IDE7XG4gIHdoaWxlKHJlcyAmJiByZXMuam9vX3RyYW1wKXtcbiAgICByZXMgPSByZXMuam9vX3RyYW1wLmFwcGx5KG51bGwsIHJlcy5qb29fYXJncyk7XG4gICAgYysrO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6Y2FtbF90cmFtcG9saW5lX3JldHVyblxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lX3JldHVybihmLGFyZ3MpIHtcbiAgcmV0dXJuIHtqb29fdHJhbXA6Zixqb29fYXJnczphcmdzfTtcbn1cblxuLy9Qcm92aWRlczoganNfcHJpbnRfc3Rkb3V0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24ganNfcHJpbnRfc3Rkb3V0KHMpIHtcbiAgdmFyIHMgPSBjYW1sX3V0ZjE2X29mX3V0Zjgocyk7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgaWYgKGcucHJvY2VzcyAmJiBnLnByb2Nlc3Muc3Rkb3V0ICYmIGcucHJvY2Vzcy5zdGRvdXQud3JpdGUpIHtcbiAgICBnLnByb2Nlc3Muc3Rkb3V0LndyaXRlKHMpXG4gIH0gZWxzZSB7XG4gICAgLy8gRG8gbm90IG91dHB1dCB0aGUgbGFzdCBcXG4gaWYgcHJlc2VudFxuICAgIC8vIGFzIGNvbnNvbGUgbG9nZ2luZyBkaXNwbGF5IGEgbmV3bGluZSBhdCB0aGUgZW5kXG4gICAgaWYocy5jaGFyQ29kZUF0KHMubGVuZ3RoIC0gMSkgPT0gMTApXG4gICAgICBzID0gcy5zdWJzdHIoMCxzLmxlbmd0aCAtIDEgKTtcbiAgICB2YXIgdiA9IGcuY29uc29sZTtcbiAgICB2ICAmJiB2LmxvZyAmJiB2LmxvZyhzKTtcbiAgfVxufVxuLy9Qcm92aWRlczoganNfcHJpbnRfc3RkZXJyIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24ganNfcHJpbnRfc3RkZXJyKHMpIHtcbiAgdmFyIHMgPSBjYW1sX3V0ZjE2X29mX3V0Zjgocyk7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgaWYgKGcucHJvY2VzcyAmJiBnLnByb2Nlc3Muc3Rkb3V0ICYmIGcucHJvY2Vzcy5zdGRvdXQud3JpdGUpIHtcbiAgICBnLnByb2Nlc3Muc3RkZXJyLndyaXRlKHMpXG4gIH0gZWxzZSB7XG4gICAgLy8gRG8gbm90IG91dHB1dCB0aGUgbGFzdCBcXG4gaWYgcHJlc2VudFxuICAgIC8vIGFzIGNvbnNvbGUgbG9nZ2luZyBkaXNwbGF5IGEgbmV3bGluZSBhdCB0aGUgZW5kXG4gICAgaWYocy5jaGFyQ29kZUF0KHMubGVuZ3RoIC0gMSkgPT0gMTApXG4gICAgICBzID0gcy5zdWJzdHIoMCxzLmxlbmd0aCAtIDEgKTtcbiAgICB2YXIgdiA9IGcuY29uc29sZTtcbiAgICB2ICYmIHYuZXJyb3IgJiYgdi5lcnJvcihzKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX2pzXG5mdW5jdGlvbiBjYW1sX2lzX2pzKCkge1xuICByZXR1cm4gMTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93cmFwX2V4Y2VwdGlvbiBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nLGNhbWxfbmFtZWRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfcmV0dXJuX2V4bl9jb25zdGFudFxuZnVuY3Rpb24gY2FtbF93cmFwX2V4Y2VwdGlvbihlKSB7XG4gIGlmKGUgaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIGU7XG4gIC8vU3RhY2tfb3ZlcmZsb3c6IGNocm9tZSwgc2FmYXJpXG4gIGlmKGdsb2JhbFRoaXMuUmFuZ2VFcnJvclxuICAgICAmJiBlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5SYW5nZUVycm9yXG4gICAgICYmIGUubWVzc2FnZVxuICAgICAmJiBlLm1lc3NhZ2UubWF0Y2goL21heGltdW0gY2FsbCBzdGFjay9pKSlcbiAgICByZXR1cm4gY2FtbF9yZXR1cm5fZXhuX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuU3RhY2tfb3ZlcmZsb3cpO1xuICAvL1N0YWNrX292ZXJmbG93OiBmaXJlZm94XG4gIGlmKGdsb2JhbFRoaXMuSW50ZXJuYWxFcnJvclxuICAgICAmJiBlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5JbnRlcm5hbEVycm9yXG4gICAgICYmIGUubWVzc2FnZVxuICAgICAmJiBlLm1lc3NhZ2UubWF0Y2goL3RvbyBtdWNoIHJlY3Vyc2lvbi9pKSlcbiAgICByZXR1cm4gY2FtbF9yZXR1cm5fZXhuX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuU3RhY2tfb3ZlcmZsb3cpO1xuICAvL1dyYXAgRXJyb3IgaW4gSnMuRXJyb3IgZXhjZXB0aW9uXG4gIGlmKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkVycm9yICYmIGNhbWxfbmFtZWRfdmFsdWUoXCJqc0Vycm9yXCIpKVxuICAgIHJldHVybiBbMCxjYW1sX25hbWVkX3ZhbHVlKFwianNFcnJvclwiKSxlXTtcbiAgLy9mYWxsYmFjazogd3JhcHBlZCBpbiBGYWlsdXJlXG4gIHJldHVybiBbMCxjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUsY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKFN0cmluZyhlKSldO1xufVxuXG4vLyBFeHBlcmltZW50YWxcbi8vUHJvdmlkZXM6IGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZShleG4sIGZvcmNlKSB7XG4gIC8vbmV2ZXIgcmVyYWlzZSBmb3IgY29uc3RhbnQgZXhuXG4gIGlmKCFleG4uanNfZXJyb3IgfHwgZm9yY2UgfHwgZXhuWzBdID09IDI0OCkgZXhuLmpzX2Vycm9yID0gbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJKcyBleGNlcHRpb24gY29udGFpbmluZyBiYWNrdHJhY2VcIik7XG4gIHJldHVybiBleG47XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24oZXhuKSB7XG4gIGlmKGV4bi5qc19lcnJvcikgeyByZXR1cm4gWzAsIGV4bi5qc19lcnJvcl07IH1cbiAgcmV0dXJuIDA7XG59XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fYm9vbCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fYm9vbCh4KSB7IHJldHVybiAhIXg7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYm9vbCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2Jvb2woeCkgeyByZXR1cm4gK3g7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9mbG9hdCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fZmxvYXQoeCkgeyByZXR1cm4geDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc190b19mbG9hdCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2Zsb2F0KHgpIHsgcmV0dXJuIHg7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2FycmF5IG11dGFibGUgKHNoYWxsb3cpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fYXJyYXkoYSkge1xuICByZXR1cm4gYS5zbGljZSgxKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYXJyYXkgbXV0YWJsZSAoc2hhbGxvdylcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYXJyYXkoYSkge1xuICB2YXIgbGVuID0gYS5sZW5ndGg7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbisxKTtcbiAgYlswXSA9IDA7XG4gIGZvcih2YXIgaT0wO2k8bGVuO2krKykgYltpKzFdID0gYVtpXTtcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGlzdF9vZl9qc19hcnJheSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2xpc3Rfb2ZfanNfYXJyYXkoYSl7XG4gIHZhciBsID0gMDtcbiAgZm9yKHZhciBpPWEubGVuZ3RoIC0gMTsgaT49MDsgaS0tKXtcbiAgICB2YXIgZSA9IGFbaV07XG4gICAgbCA9IFswLGUsbF07XG4gIH1cbiAgcmV0dXJuIGxcbn1cblxuLy9Qcm92aWRlczogY2FtbF9saXN0X3RvX2pzX2FycmF5IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfbGlzdF90b19qc19hcnJheShsKXtcbiAgdmFyIGEgPSBbXTtcbiAgZm9yKDsgbCAhPT0gMDsgbCA9IGxbMl0pIHtcbiAgICBhLnB1c2gobFsxXSk7XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdmFyIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczoganNfcHJpbnRfc3RkZXJyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc192YXIoeCkge1xuICB2YXIgeCA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHgpO1xuICAvL0NoZWNrcyB0aGF0IHggaGFzIHRoZSBmb3JtIGlkZW50Wy5pZGVudF0qXG4gIGlmKCF4Lm1hdGNoKC9eW2EtekEtWl8kXVthLXpBLVpfJDAtOV0qKFxcLlthLXpBLVpfJF1bYS16QS1aXyQwLTldKikqJC8pKXtcbiAgICBqc19wcmludF9zdGRlcnIoXCJjYW1sX2pzX3ZhcjogXFxcIlwiICsgeCArIFwiXFxcIiBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IHZhcmlhYmxlLiBjb250aW51aW5nIC4uXCIpO1xuICAgIC8vZ2xvYmFsVGhpcy5jb25zb2xlLmVycm9yKFwiSnMuVW5zYWZlLmV2YWxfc3RyaW5nXCIpXG4gIH1cbiAgcmV0dXJuIGV2YWwoeCk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2NhbGwgKGNvbnN0LCBtdXRhYmxlLCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX2NhbGwoZiwgbywgYXJncykgeyByZXR1cm4gZi5hcHBseShvLCBjYW1sX2pzX2Zyb21fYXJyYXkoYXJncykpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Z1bl9jYWxsIChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19mdW5fY2FsbChmLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAxOiByZXR1cm4gZigpO1xuICBjYXNlIDI6IHJldHVybiBmIChhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gZiAoYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICBjYXNlIDg6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSxhWzddKTtcbiAgfVxuICByZXR1cm4gZi5hcHBseShudWxsLCBjYW1sX2pzX2Zyb21fYXJyYXkoYSkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19tZXRoX2NhbGwgKG11dGFibGUsIGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19tZXRoX2NhbGwobywgZiwgYXJncykge1xuICByZXR1cm4gb1tjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhmKV0uYXBwbHkobywgY2FtbF9qc19mcm9tX2FycmF5KGFyZ3MpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfbmV3IChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19uZXcoYywgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMTogcmV0dXJuIG5ldyBjO1xuICBjYXNlIDI6IHJldHVybiBuZXcgYyAoYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICBjYXNlIDg6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sYVs3XSk7XG4gIH1cbiAgZnVuY3Rpb24gRigpIHsgcmV0dXJuIGMuYXBwbHkodGhpcywgY2FtbF9qc19mcm9tX2FycmF5KGEpKTsgfVxuICBGLnByb3RvdHlwZSA9IGMucHJvdG90eXBlO1xuICByZXR1cm4gbmV3IEY7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX29qc19uZXdfYXJyIChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9vanNfbmV3X2FycihjLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAwOiByZXR1cm4gbmV3IGM7XG4gIGNhc2UgMTogcmV0dXJuIG5ldyBjIChhWzBdKTtcbiAgY2FzZSAyOiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgfVxuICBmdW5jdGlvbiBGKCkgeyByZXR1cm4gYy5hcHBseSh0aGlzLCBhKTsgfVxuICBGLnByb3RvdHlwZSA9IGMucHJvdG90eXBlO1xuICByZXR1cm4gbmV3IEY7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2sgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBpZihsZW4gPiAwKXtcbiAgICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIFt1bmRlZmluZWRdKTtcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50c1xuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyhmKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgW2FyZ3NdKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdChhcml0eSwgZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBpZihuID09IGFyaXR5ICYmIGYubGVuZ3RoID09IGFyaXR5KSByZXR1cm4gZi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyaXR5KTtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aCwgYXJpdHkpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBhcmdzKTtcbiAgfTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4gKyAxKTtcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZixhcmdzKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50cyhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsW3RoaXMsYXJnc10pO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdChhcml0eSwgZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyaXR5ICsgMSk7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGgsIGFyaXR5KVxuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBhcmdzKTtcbiAgfTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZSBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbiArIDEpO1xuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTsgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc19lcXVhbHMgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19lcXVhbHMgKHgsIHkpIHsgcmV0dXJuICsoeCA9PSB5KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2V2YWxfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2V2YWxfc3RyaW5nIChzKSB7cmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9qc19leHByIChjb25zdClcbi8vUmVxdWlyZXM6IGpzX3ByaW50X3N0ZGVyclxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXhwcihzKSB7XG4gIGpzX3ByaW50X3N0ZGVycihcImNhbWxfanNfZXhwcjogZmFsbGJhY2sgdG8gcnVudGltZSBldmFsdWF0aW9uXFxuXCIpO1xuICByZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3B1cmVfanNfZXhwciBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBqc19wcmludF9zdGRlcnJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3B1cmVfanNfZXhwciAocyl7XG4gIGpzX3ByaW50X3N0ZGVycihcImNhbWxfcHVyZV9qc19leHByOiBmYWxsYmFjayB0byBydW50aW1lIGV2YWx1YXRpb25cXG5cIik7XG4gIHJldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfb2JqZWN0IChvYmplY3RfbGl0ZXJhbClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX29iamVjdCAoYSkge1xuICB2YXIgbyA9IHt9O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcCA9IGFbaV07XG4gICAgb1tjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhwWzFdKV0gPSBwWzJdO1xuICB9XG4gIHJldHVybiBvO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RpdmUgQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAqL1xuLyogIGVuIEF1dG9tYXRpcXVlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCAgICAqL1xuLyogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aXRoICAgICAqL1xuLyogIHRoZSBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIC4uL0xJQ0VOU0UuICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiAkSWQ6IHBhcnNpbmcuYyA4OTgzIDIwMDgtMDgtMDYgMDk6Mzg6MjVaIHhsZXJveSAkICovXG5cbi8qIFRoZSBQREEgYXV0b21hdG9uIGZvciBwYXJzZXJzIGdlbmVyYXRlZCBieSBjYW1seWFjYyAqL1xuXG4vKiBUaGUgcHVzaGRvd24gYXV0b21hdGEgKi9cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfbGV4X2FycmF5XG5mdW5jdGlvbiBjYW1sX3BhcnNlX2VuZ2luZSh0YWJsZXMsIGVudiwgY21kLCBhcmcpXG57XG4gIHZhciBFUlJDT0RFID0gMjU2O1xuXG4gIC8vdmFyIFNUQVJUID0gMDtcbiAgLy92YXIgVE9LRU5fUkVBRCA9IDE7XG4gIC8vdmFyIFNUQUNLU19HUk9XTl8xID0gMjtcbiAgLy92YXIgU1RBQ0tTX0dST1dOXzIgPSAzO1xuICAvL3ZhciBTRU1BTlRJQ19BQ1RJT05fQ09NUFVURUQgPSA0O1xuICAvL3ZhciBFUlJPUl9ERVRFQ1RFRCA9IDU7XG4gIHZhciBsb29wID0gNjtcbiAgdmFyIHRlc3RzaGlmdCA9IDc7XG4gIHZhciBzaGlmdCA9IDg7XG4gIHZhciBzaGlmdF9yZWNvdmVyID0gOTtcbiAgdmFyIHJlZHVjZSA9IDEwO1xuXG4gIHZhciBSRUFEX1RPS0VOID0gMDtcbiAgdmFyIFJBSVNFX1BBUlNFX0VSUk9SID0gMTtcbiAgdmFyIEdST1dfU1RBQ0tTXzEgPSAyO1xuICB2YXIgR1JPV19TVEFDS1NfMiA9IDM7XG4gIHZhciBDT01QVVRFX1NFTUFOVElDX0FDVElPTiA9IDQ7XG4gIHZhciBDQUxMX0VSUk9SX0ZVTkNUSU9OID0gNTtcblxuICB2YXIgZW52X3Nfc3RhY2sgPSAxO1xuICB2YXIgZW52X3Zfc3RhY2sgPSAyO1xuICB2YXIgZW52X3N5bWJfc3RhcnRfc3RhY2sgPSAzO1xuICB2YXIgZW52X3N5bWJfZW5kX3N0YWNrID0gNDtcbiAgdmFyIGVudl9zdGFja3NpemUgPSA1O1xuICB2YXIgZW52X3N0YWNrYmFzZSA9IDY7XG4gIHZhciBlbnZfY3Vycl9jaGFyID0gNztcbiAgdmFyIGVudl9sdmFsID0gODtcbiAgdmFyIGVudl9zeW1iX3N0YXJ0ID0gOTtcbiAgdmFyIGVudl9zeW1iX2VuZCA9IDEwO1xuICB2YXIgZW52X2FzcCA9IDExO1xuICB2YXIgZW52X3J1bGVfbGVuID0gMTI7XG4gIHZhciBlbnZfcnVsZV9udW1iZXIgPSAxMztcbiAgdmFyIGVudl9zcCA9IDE0O1xuICB2YXIgZW52X3N0YXRlID0gMTU7XG4gIHZhciBlbnZfZXJyZmxhZyA9IDE2O1xuXG4gIC8vIHZhciBfdGJsX2FjdGlvbnMgPSAxO1xuICB2YXIgdGJsX3RyYW5zbF9jb25zdCA9IDI7XG4gIHZhciB0YmxfdHJhbnNsX2Jsb2NrID0gMztcbiAgdmFyIHRibF9saHMgPSA0O1xuICB2YXIgdGJsX2xlbiA9IDU7XG4gIHZhciB0YmxfZGVmcmVkID0gNjtcbiAgdmFyIHRibF9kZ290byA9IDc7XG4gIHZhciB0Ymxfc2luZGV4ID0gODtcbiAgdmFyIHRibF9yaW5kZXggPSA5O1xuICB2YXIgdGJsX2dpbmRleCA9IDEwO1xuICB2YXIgdGJsX3RhYmxlc2l6ZSA9IDExO1xuICB2YXIgdGJsX3RhYmxlID0gMTI7XG4gIHZhciB0YmxfY2hlY2sgPSAxMztcbiAgLy8gdmFyIF90YmxfZXJyb3JfZnVuY3Rpb24gPSAxNDtcbiAgLy8gdmFyIF90YmxfbmFtZXNfY29uc3QgPSAxNTtcbiAgLy8gdmFyIF90YmxfbmFtZXNfYmxvY2sgPSAxNjtcblxuICBpZiAoIXRhYmxlcy5kZ290bykge1xuICAgIHRhYmxlcy5kZWZyZWQgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9kZWZyZWRdKTtcbiAgICB0YWJsZXMuc2luZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0Ymxfc2luZGV4XSk7XG4gICAgdGFibGVzLmNoZWNrICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2NoZWNrXSk7XG4gICAgdGFibGVzLnJpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3JpbmRleF0pO1xuICAgIHRhYmxlcy50YWJsZSAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF90YWJsZV0pO1xuICAgIHRhYmxlcy5sZW4gICAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9sZW5dKTtcbiAgICB0YWJsZXMubGhzICAgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfbGhzXSk7XG4gICAgdGFibGVzLmdpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2dpbmRleF0pO1xuICAgIHRhYmxlcy5kZ290byAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9kZ290b10pO1xuICB9XG5cbiAgdmFyIHJlcyA9IDAsIG4sIG4xLCBuMiwgc3RhdGUxO1xuXG4gIC8vIFJFU1RPUkVcbiAgdmFyIHNwID0gZW52W2Vudl9zcF07XG4gIHZhciBzdGF0ZSA9IGVudltlbnZfc3RhdGVdO1xuICB2YXIgZXJyZmxhZyA9IGVudltlbnZfZXJyZmxhZ107XG5cbiAgZXhpdDpmb3IgKDs7KSB7XG4gICAgc3dpdGNoKGNtZCkge1xuICAgIGNhc2UgMDovL1NUQVJUOlxuICAgICAgc3RhdGUgPSAwO1xuICAgICAgZXJyZmxhZyA9IDA7XG4gICAgICAvLyBGYWxsIHRocm91Z2hcblxuICAgIGNhc2UgNjovL2xvb3A6XG4gICAgICBuID0gdGFibGVzLmRlZnJlZFtzdGF0ZV07XG4gICAgICBpZiAobiAhPSAwKSB7IGNtZCA9IHJlZHVjZTsgYnJlYWs7IH1cbiAgICAgIGlmIChlbnZbZW52X2N1cnJfY2hhcl0gPj0gMCkgeyBjbWQgPSB0ZXN0c2hpZnQ7IGJyZWFrOyB9XG4gICAgICByZXMgPSBSRUFEX1RPS0VOO1xuICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBsZXhlciBhbmQgdXBkYXRlcyAqL1xuICAgICAgLyogc3ltYl9zdGFydCBhbmQgc3ltYl9lbmQgKi9cbiAgICBjYXNlIDE6Ly9UT0tFTl9SRUFEOlxuICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IHRhYmxlc1t0YmxfdHJhbnNsX2Jsb2NrXVthcmdbMF0gKyAxXTtcbiAgICAgICAgZW52W2Vudl9sdmFsXSA9IGFyZ1sxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IHRhYmxlc1t0YmxfdHJhbnNsX2NvbnN0XVthcmcgKyAxXTtcbiAgICAgICAgZW52W2Vudl9sdmFsXSA9IDA7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcblxuICAgIGNhc2UgNzovL3Rlc3RzaGlmdDpcbiAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZV07XG4gICAgICBuMiA9IG4xICsgZW52W2Vudl9jdXJyX2NoYXJdO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IGVudltlbnZfY3Vycl9jaGFyXSkge1xuICAgICAgICBjbWQgPSBzaGlmdDsgYnJlYWs7XG4gICAgICB9XG4gICAgICBuMSA9IHRhYmxlcy5yaW5kZXhbc3RhdGVdO1xuICAgICAgbjIgPSBuMSArIGVudltlbnZfY3Vycl9jaGFyXTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBlbnZbZW52X2N1cnJfY2hhcl0pIHtcbiAgICAgICAgbiA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICAgIGNtZCA9IHJlZHVjZTsgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoZXJyZmxhZyA8PSAwKSB7XG4gICAgICAgIHJlcyA9IENBTExfRVJST1JfRlVOQ1RJT047XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBlcnJvciBmdW5jdGlvbiAqL1xuICAgIGNhc2UgNTovL0VSUk9SX0RFVEVDVEVEOlxuICAgICAgaWYgKGVycmZsYWcgPCAzKSB7XG4gICAgICAgIGVycmZsYWcgPSAzO1xuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdO1xuICAgICAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZTFdO1xuICAgICAgICAgIG4yID0gbjEgKyBFUlJDT0RFO1xuICAgICAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gRVJSQ09ERSkge1xuICAgICAgICAgICAgY21kID0gc2hpZnRfcmVjb3ZlcjsgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzcCA8PSBlbnZbZW52X3N0YWNrYmFzZV0pIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjtcbiAgICAgICAgICAgIC8qIFRoZSBNTCBjb2RlIHJhaXNlcyBQYXJzZV9lcnJvciAqL1xuICAgICAgICAgICAgc3AtLTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlbnZbZW52X2N1cnJfY2hhcl0gPT0gMCkgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SO1xuICAgICAgICAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gLTE7XG4gICAgICAgIGNtZCA9IGxvb3A7IGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgY2FzZSA4Oi8vc2hpZnQ6XG4gICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSAtMTtcbiAgICAgIGlmIChlcnJmbGFnID4gMCkgZXJyZmxhZy0tO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgY2FzZSA5Oi8vc2hpZnRfcmVjb3ZlcjpcbiAgICAgIHN0YXRlID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgIHNwKys7XG4gICAgICBpZiAoc3AgPj0gZW52W2Vudl9zdGFja3NpemVdKSB7XG4gICAgICAgIHJlcyA9IEdST1dfU1RBQ0tTXzE7XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIHJlc2l6ZXMgdGhlIHN0YWNrcyAqL1xuICAgIGNhc2UgMjovL1NUQUNLU19HUk9XTl8xOlxuICAgICAgZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdID0gc3RhdGU7XG4gICAgICBlbnZbZW52X3Zfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X2x2YWxdO1xuICAgICAgZW52W2Vudl9zeW1iX3N0YXJ0X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX3N0YXJ0XTtcbiAgICAgIGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kXTtcbiAgICAgIGNtZCA9IGxvb3A7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgMTA6Ly9yZWR1Y2U6XG4gICAgICB2YXIgbSA9IHRhYmxlcy5sZW5bbl07XG4gICAgICBlbnZbZW52X2FzcF0gPSBzcDtcbiAgICAgIGVudltlbnZfcnVsZV9udW1iZXJdID0gbjtcbiAgICAgIGVudltlbnZfcnVsZV9sZW5dID0gbTtcbiAgICAgIHNwID0gc3AgLSBtICsgMTtcbiAgICAgIG0gPSB0YWJsZXMubGhzW25dO1xuICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcF07XG4gICAgICBuMSA9IHRhYmxlcy5naW5kZXhbbV07XG4gICAgICBuMiA9IG4xICsgc3RhdGUxO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IHN0YXRlMSlcbiAgICAgICAgc3RhdGUgPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgZWxzZVxuICAgICAgICBzdGF0ZSA9IHRhYmxlcy5kZ290b1ttXTtcbiAgICAgIGlmIChzcCA+PSBlbnZbZW52X3N0YWNrc2l6ZV0pIHtcbiAgICAgICAgcmVzID0gR1JPV19TVEFDS1NfMjtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgcmVzaXplcyB0aGUgc3RhY2tzICovXG4gICAgY2FzZSAzOi8vU1RBQ0tTX0dST1dOXzI6XG4gICAgICByZXMgPSBDT01QVVRFX1NFTUFOVElDX0FDVElPTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgc2VtYW50aWMgYWN0aW9uICovXG4gICAgY2FzZSA0Oi8vU0VNQU5USUNfQUNUSU9OX0NPTVBVVEVEOlxuICAgICAgZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdID0gc3RhdGU7XG4gICAgICBlbnZbZW52X3Zfc3RhY2tdW3NwICsgMV0gPSBhcmc7XG4gICAgICB2YXIgYXNwID0gZW52W2Vudl9hc3BdO1xuICAgICAgZW52W2Vudl9zeW1iX2VuZF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgaWYgKHNwID4gYXNwKSB7XG4gICAgICAgIC8qIFRoaXMgaXMgYW4gZXBzaWxvbiBwcm9kdWN0aW9uLiBUYWtlIHN5bWJfc3RhcnQgZXF1YWwgdG8gc3ltYl9lbmQuICovXG4gICAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgfVxuICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICAvKiBTaG91bGQgbm90IGhhcHBlbiAqL1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgfVxuICB9XG4gIC8vIFNBVkVcbiAgZW52W2Vudl9zcF0gPSBzcDtcbiAgZW52W2Vudl9zdGF0ZV0gPSBzdGF0ZTtcbiAgZW52W2Vudl9lcnJmbGFnXSA9IGVycmZsYWc7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3BhcnNlcl90cmFjZSBjb25zdFxuLy9EdW1teSBmdW5jdGlvbiFcbmZ1bmN0aW9uIGNhbWxfc2V0X3BhcnNlcl90cmFjZSgpIHsgcmV0dXJuIDA7IH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2ludCBjb25zdCAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcsIGNhbWxfc3RyX3JlcGVhdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9mb3JtYXRfaW50KGZtdCwgaSkge1xuICBpZiAoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhmbXQpID09IFwiJWRcIikgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIitpKTtcbiAgdmFyIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICBpZiAoaSA8IDApIHsgaWYgKGYuc2lnbmVkY29udikgeyBmLnNpZ24gPSAtMTsgaSA9IC1pOyB9IGVsc2UgaSA+Pj49IDA7IH1cbiAgdmFyIHMgPSBpLnRvU3RyaW5nKGYuYmFzZSk7XG4gIGlmIChmLnByZWMgPj0gMCkge1xuICAgIGYuZmlsbGVyID0gJyAnO1xuICAgIHZhciBuID0gZi5wcmVjIC0gcy5sZW5ndGg7XG4gICAgaWYgKG4gPiAwKSBzID0gY2FtbF9zdHJfcmVwZWF0IChuLCAnMCcpICsgcztcbiAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocykge1xuICB2YXIgaSA9IDAsIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSwgYmFzZSA9IDEwLCBzaWduID0gMTtcbiAgaWYgKGxlbiA+IDApIHtcbiAgICBzd2l0Y2ggKGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocyxpKSkge1xuICAgIGNhc2UgNDU6IGkrKzsgc2lnbiA9IC0xOyBicmVhaztcbiAgICBjYXNlIDQzOiBpKys7IHNpZ24gPSAxOyBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKGkgKyAxIDwgbGVuICYmIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSkgPT0gNDgpXG4gICAgc3dpdGNoIChjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkgKyAxKSkge1xuICAgIGNhc2UgMTIwOiBjYXNlIDg4OiBiYXNlID0gMTY7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAxMTE6IGNhc2UgNzk6IGJhc2UgPSAgODsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlICA5ODogY2FzZSA2NjogYmFzZSA9ICAyOyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgMTE3OiBjYXNlIDg1OiBpICs9IDI7IGJyZWFrO1xuICAgIH1cbiAgcmV0dXJuIFtpLCBzaWduLCBiYXNlXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9kaWdpdFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9kaWdpdChjKSB7XG4gIGlmIChjID49IDQ4ICYmIGMgPD0gNTcpICByZXR1cm4gYyAtIDQ4O1xuICBpZiAoYyA+PSA2NSAmJiBjIDw9IDkwKSAgcmV0dXJuIGMgLSA1NTtcbiAgaWYgKGMgPj0gOTcgJiYgYyA8PSAxMjIpIHJldHVybiBjIC0gODc7XG4gIHJldHVybiAtMTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnRfb2Zfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlLCBjYW1sX3BhcnNlX2RpZ2l0LCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2ludF9vZl9zdHJpbmcgKHMpIHtcbiAgdmFyIHIgPSBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpO1xuICB2YXIgaSA9IHJbMF0sIHNpZ24gPSByWzFdLCBiYXNlID0gclsyXTtcbiAgdmFyIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKTtcbiAgdmFyIHRocmVzaG9sZCA9IC0xID4+PiAwO1xuICB2YXIgYyA9IChpIDwgbGVuKT9jYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpOjA7XG4gIHZhciBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHZhciByZXMgPSBkO1xuICBmb3IgKGkrKztpPGxlbjtpKyspIHtcbiAgICBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgICBpZiAoYyA9PSA5NSkgY29udGludWU7XG4gICAgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gICAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgYnJlYWs7XG4gICAgcmVzID0gYmFzZSAqIHJlcyArIGQ7XG4gICAgaWYgKHJlcyA+IHRocmVzaG9sZCkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIH1cbiAgaWYgKGkgIT0gbGVuKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgLy8gRm9yIGJhc2UgZGlmZmVyZW50IGZyb20gMTAsIHdlIGV4cGVjdCBhbiB1bnNpZ25lZCByZXByZXNlbnRhdGlvbixcbiAgLy8gaGVuY2UgYW55IHZhbHVlIG9mICdyZXMnIChsZXNzIHRoYW4gJ3RocmVzaG9sZCcpIGlzIGFjY2VwdGFibGUuXG4gIC8vIEJ1dCB3ZSBoYXZlIHRvIGNvbnZlcnQgdGhlIHJlc3VsdCBiYWNrIHRvIGEgc2lnbmVkIGludGVnZXIuXG4gIHJlcyA9IHNpZ24gKiByZXM7XG4gIGlmICgoYmFzZSA9PSAxMCkgJiYgKChyZXMgfCAwKSAhPSByZXMpKVxuICAgIC8qIFNpZ25lZCByZXByZXNlbnRhdGlvbiBleHBlY3RlZCwgYWxsb3cgLTJeKG5iaXRzLTEpIHRvIDJeKG5iaXRzLTEpIC0gMSAqL1xuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICByZXR1cm4gcmVzIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tdWwgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbXVsKGEsYil7XG4gIHJldHVybiBNYXRoLmltdWwoYSxiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9kaXZcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIGNhbWxfZGl2KHgseSkge1xuICBpZiAoeSA9PSAwKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICByZXR1cm4gKHgveSl8MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tb2Rcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIGNhbWxfbW9kKHgseSkge1xuICBpZiAoeSA9PSAwKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICByZXR1cm4geCV5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Jzd2FwMTZcbmZ1bmN0aW9uIGNhbWxfYnN3YXAxNih4KSB7XG4gIHJldHVybiAoKCgoeCAmIDB4MDBGRikgPDwgOCkgfFxuICAgICAgICAgICAoKHggJiAweEZGMDApID4+IDgpKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2Jzd2FwXG5mdW5jdGlvbiBjYW1sX2ludDMyX2Jzd2FwKHgpIHtcbiAgcmV0dXJuICgoKHggJiAweDAwMDAwMEZGKSA8PCAyNCkgfFxuICAgICAgICAgICgoeCAmIDB4MDAwMEZGMDApIDw8IDgpIHxcbiAgICAgICAgICAoKHggJiAweDAwRkYwMDAwKSA+Pj4gOCkgfFxuICAgICAgICAgICgoeCAmIDB4RkYwMDAwMDApID4+PiAyNCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9ic3dhcFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF9ic3dhcCh4KSB7XG4gIHZhciB5ID0gY2FtbF9pbnQ2NF90b19ieXRlcyh4KTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoW3lbN10sIHlbNl0sIHlbNV0sIHlbNF0sIHlbM10sIHlbMl0sIHlbMV0sIHlbMF1dKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSGFzaHRibFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfdW5pdl9wYXJhbSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaGFzaF91bml2X3BhcmFtIChjb3VudCwgbGltaXQsIG9iaikge1xuICB2YXIgaGFzaF9hY2N1ID0gMDtcbiAgZnVuY3Rpb24gaGFzaF9hdXggKG9iaikge1xuICAgIGxpbWl0IC0tO1xuICAgIGlmIChjb3VudCA8IDAgfHwgbGltaXQgPCAwKSByZXR1cm47XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5ICYmIG9ialswXSA9PT0gKG9ialswXXwwKSkge1xuICAgICAgc3dpdGNoIChvYmpbMF0pIHtcbiAgICAgIGNhc2UgMjQ4OlxuICAgICAgICAvLyBPYmplY3RcbiAgICAgICAgY291bnQgLS07XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIG9ialsyXSkgfCAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUwOlxuICAgICAgICAvLyBGb3J3YXJkXG4gICAgICAgIGxpbWl0Kys7IGhhc2hfYXV4KG9iaik7IGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY291bnQgLS07XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIG9ialswXSkgfCAwO1xuICAgICAgICBmb3IgKHZhciBpID0gb2JqLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIGhhc2hfYXV4IChvYmpbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyhvYmopKSB7XG4gICAgICBjb3VudCAtLTtcbiAgICAgIHZhciBjb250ZW50ID0gY2FtbF9tbF9ieXRlc19jb250ZW50KG9iaik7XG4gICAgICBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikge1xuXHRmb3IgKHZhciBiID0gY29udGVudCwgbCA9IGIubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICAgIH0gZWxzZSB7IC8qIEFSUkFZICovXG4gICAgICAgIGZvciAodmFyIGEgPSBjb250ZW50LCBsID0gYS5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGFbaV0pIHwgMDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKG9iaikpIHtcbiAgICAgIHZhciBqc2J5dGVzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhvYmopO1xuICAgICAgZm9yICh2YXIgYiA9IGpzYnl0ZXMsIGwgPSBqc2J5dGVzLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZm9yICh2YXIgYiA9IG9iaiwgbCA9IG9iai5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICB9IGVsc2UgaWYgKG9iaiA9PT0gKG9ianwwKSkge1xuICAgICAgLy8gSW50ZWdlclxuICAgICAgY291bnQgLS07XG4gICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBvYmopIHwgMDtcbiAgICB9IGVsc2UgaWYgKG9iaiA9PT0gK29iaikge1xuICAgICAgLy8gRmxvYXRcbiAgICAgIGNvdW50LS07XG4gICAgICB2YXIgcCA9IGNhbWxfaW50NjRfdG9fYnl0ZXMgKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAob2JqKSk7XG4gICAgICBmb3IgKHZhciBpID0gNzsgaSA+PSAwOyBpLS0pIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIHBbaV0pIHwgMDtcbiAgICB9IGVsc2UgaWYob2JqICYmIG9iai5jYW1sX2N1c3RvbSkge1xuICAgICAgaWYoY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0uaGFzaCkge1xuICAgICAgICB2YXIgaCA9IGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dLmhhc2gob2JqKSB8IDA7XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIGgpIHwgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaGFzaF9hdXggKG9iaik7XG4gIHJldHVybiBoYXNoX2FjY3UgJiAweDNGRkZGRkZGO1xufVxuXG4vL2Z1bmN0aW9uIFJPVEwzMih4LG4pIHsgcmV0dXJuICgoeCA8PCBuKSB8ICh4ID4+PiAoMzItbikpKTsgfVxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfbXVsXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ludChoLGQpIHtcbiAgZCA9IGNhbWxfbXVsKGQsIDB4Y2M5ZTJkNTF8MCk7XG4gIGQgPSAoKGQgPDwgMTUpIHwgKGQgPj4+ICgzMi0xNSkpKTsgLy8gUk9UTDMyKGQsIDE1KTtcbiAgZCA9IGNhbWxfbXVsKGQsIDB4MWI4NzM1OTMpO1xuICBoIF49IGQ7XG4gIGggPSAoKGggPDwgMTMpIHwgKGggPj4+ICgzMi0xMykpKTsgICAvL1JPVEwzMihoLCAxMyk7XG4gIHJldHVybiAoKChoICsgKGggPDwgMikpfDApICsgKDB4ZTY1NDZiNjR8MCkpfDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfZmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfbXVsXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpIHtcbiAgaCBePSBoID4+PiAxNjtcbiAgaCA9IGNhbWxfbXVsIChoLCAweDg1ZWJjYTZifDApO1xuICBoIF49IGggPj4+IDEzO1xuICBoID0gY2FtbF9tdWwgKGgsIDB4YzJiMmFlMzV8MCk7XG4gIGggXj0gaCA+Pj4gMTY7XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2Zsb2F0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaGFzaF9taXhfaW50NjRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfZmxvYXQgKGgsIHYwKSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2ludDY0KGgsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAodjApKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfaW50NjRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2xvMzIsIGNhbWxfaW50NjRfaGkzMlxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9pbnQ2NCAoaCwgdikge1xuICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgY2FtbF9pbnQ2NF9sbzMyKHYpKTtcbiAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGNhbWxfaW50NjRfaGkzMih2KSk7XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgcykge1xuICB2YXIgbGVuID0gcy5sZW5ndGgsIGksIHc7XG4gIGZvciAoaSA9IDA7IGkgKyA0IDw9IGxlbjsgaSArPSA0KSB7XG4gICAgdyA9IHMuY2hhckNvZGVBdChpKVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgOClcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzIpIDw8IDE2KVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMykgPDwgMjQpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgfVxuICB3ID0gMDtcbiAgc3dpdGNoIChsZW4gJiAzKSB7XG4gIGNhc2UgMzogdyAgPSBzLmNoYXJDb2RlQXQoaSsyKSA8PCAxNjtcbiAgY2FzZSAyOiB3IHw9IHMuY2hhckNvZGVBdChpKzEpIDw8IDg7XG4gIGNhc2UgMTpcbiAgICB3IHw9IHMuY2hhckNvZGVBdChpKTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIGRlZmF1bHQ6XG4gIH1cbiAgaCBePSBsZW47XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsIHMpIHtcbiAgdmFyIGxlbiA9IHMubGVuZ3RoLCBpLCB3O1xuICBmb3IgKGkgPSAwOyBpICsgNCA8PSBsZW47IGkgKz0gNCkge1xuICAgIHcgPSBzW2ldXG4gICAgICB8IChzW2krMV0gPDwgOClcbiAgICAgIHwgKHNbaSsyXSA8PCAxNilcbiAgICAgIHwgKHNbaSszXSA8PCAyNCk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICB9XG4gIHcgPSAwO1xuICBzd2l0Y2ggKGxlbiAmIDMpIHtcbiAgY2FzZSAzOiB3ICA9IHNbaSsyXSA8PCAxNjtcbiAgY2FzZSAyOiB3IHw9IHNbaSsxXSA8PCA4O1xuICBjYXNlIDE6IHcgfD0gc1tpXTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIGRlZmF1bHQ6XG4gIH1cbiAgaCBePSBsZW47XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYnl0ZXMoaCwgdikge1xuICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudCh2KTtcbiAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBjb250ZW50KVxuICBlbHNlIC8qIEFSUkFZICovXG4gICAgcmV0dXJuIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsIGNvbnRlbnQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X3N0cmluZyhoLCB2KSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZyh2KSk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludCwgY2FtbF9oYXNoX21peF9maW5hbFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9mbG9hdCwgY2FtbF9oYXNoX21peF9zdHJpbmcsIGNhbWxfaGFzaF9taXhfYnl0ZXMsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2hhc2ggKGNvdW50LCBsaW1pdCwgc2VlZCwgb2JqKSB7XG4gIHZhciBxdWV1ZSwgcmQsIHdyLCBzeiwgbnVtLCBoLCB2LCBpLCBsZW47XG4gIHN6ID0gbGltaXQ7XG4gIGlmIChzeiA8IDAgfHwgc3ogPiAyNTYpIHN6ID0gMjU2O1xuICBudW0gPSBjb3VudDtcbiAgaCA9IHNlZWQ7XG4gIHF1ZXVlID0gW29ial07IHJkID0gMDsgd3IgPSAxO1xuICB3aGlsZSAocmQgPCB3ciAmJiBudW0gPiAwKSB7XG4gICAgdiA9IHF1ZXVlW3JkKytdO1xuICAgIGlmICh2ICYmIHYuY2FtbF9jdXN0b20pe1xuICAgICAgaWYoY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKSB7XG4gICAgICAgIHZhciBoaCA9IGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKHYpO1xuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQgKGgsIGhoKTtcbiAgICAgICAgbnVtIC0tO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQXJyYXkgJiYgdlswXSA9PT0gKHZbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAodlswXSkge1xuICAgICAgY2FzZSAyNDg6XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdlsyXSk7XG4gICAgICAgIG51bS0tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUwOlxuICAgICAgICAvLyBGb3J3YXJkXG4gICAgICAgIHF1ZXVlWy0tcmRdID0gdlsxXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YXIgdGFnID0gKCh2Lmxlbmd0aCAtIDEpIDw8IDEwKSB8IHZbMF07XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB0YWcpO1xuICAgICAgICBmb3IgKGkgPSAxLCBsZW4gPSB2Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgaWYgKHdyID49IHN6KSBicmVhaztcbiAgICAgICAgICBxdWV1ZVt3cisrXSA9IHZbaV07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9ieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9zdHJpbmcoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfanNieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHYgPT09ICh2fDApKSB7XG4gICAgICAvLyBJbnRlZ2VyXG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdit2KzEpO1xuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh2ID09PSArdikge1xuICAgICAgLy8gRmxvYXRcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsdik7XG4gICAgICBudW0tLTtcbiAgICB9XG4gIH1cbiAgaCA9IGNhbWxfaGFzaF9taXhfZmluYWwoaCk7XG4gIHJldHVybiBoICYgMHgzRkZGRkZGRjtcbn1cbiIsIi8vLy8vLy8vLyBCSUdTVFJJTkdcblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyhoLCBicykge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCxicy5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciBtdXRhYmxlXG5mdW5jdGlvbiBiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyKGJzKSB7XG4gIHJldHVybiBicy5kYXRhLmJ1ZmZlclxufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkgbXV0YWJsZVxuZnVuY3Rpb24gYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5KGJzKSB7XG4gIHJldHVybiBicy5kYXRhXG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXIgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyKGFiKSB7XG4gIHZhciB0YSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkoYWIpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKDEyLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkoYmEpIHtcbiAgdmFyIHRhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheShiYS5idWZmZXIsIGJhLmJ5dGVPZmZzZXQsIGJhLmxlbmd0aCAqIGJhLkJZVEVTX1BFUl9FTEVNRU5UKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSgxMiwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfbWVtY21wXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19tZW1jbXAoczEsIHBvczEsIHMyLCBwb3MyLCBsZW4pe1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGEgPSBjYW1sX2JhX2dldF8xKHMxLHBvczEgKyBpKTtcbiAgICB2YXIgYiA9IGNhbWxfYmFfZ2V0XzEoczIscG9zMiArIGkpO1xuICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYShiYTEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMSA9IGJhMS5vZmZzZXQocG9zMSk7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYob2ZzMSArIGxlbiA+IGJhMS5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zdWJhcnJheShvZnMxLG9mczErbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLHBvczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzdHIxKSkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGNhbWxfYXJyYXlfb2Zfc3RyaW5nKHN0cjEpLnNsaWNlKHBvczEscG9zMSArIGxlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxvZnMyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHN0cjEpKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gY2FtbF9hcnJheV9vZl9ieXRlcyhzdHIxKS5zbGljZShwb3MxLHBvczEgKyBsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2Usb2ZzMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyhiYTEsIHBvczEsIGJ5dGVzMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczEgPSBiYTEub2Zmc2V0KHBvczEpO1xuICBpZihvZnMxICsgbGVuID4gYmExLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYocG9zMiArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKGJ5dGVzMikpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zbGljZShvZnMxLCBvZnMxK2xlbik7XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KHNsaWNlKSwgMCwgYnl0ZXMyLCBwb3MyLCBsZW4pO1xuICByZXR1cm4gMFxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgbGlicmFyeVxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEpzbGliOiBjb2RlIHNwZWNpZmljIHRvIEpzX29mX29jYW1sXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfb25faWUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfanNfb25faWUgKCkge1xuICB2YXIgdWEgPVxuICAgICAgZ2xvYmFsVGhpcy5uYXZpZ2F0b3I/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IudXNlckFnZW50OlwiXCI7XG4gIHJldHVybiB1YS5pbmRleE9mKFwiTVNJRVwiKSAhPSAtMSAmJiB1YS5pbmRleE9mKFwiT3BlcmFcIikgIT0gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19odG1sX2VzY2FwZSBjb25zdCAoY29uc3QpXG52YXIgY2FtbF9qc19yZWdleHBzID0geyBhbXA6LyYvZywgbHQ6LzwvZywgcXVvdDovXFxcIi9nLCBhbGw6L1smPFxcXCJdLyB9O1xuZnVuY3Rpb24gY2FtbF9qc19odG1sX2VzY2FwZSAocykge1xuICBpZiAoIWNhbWxfanNfcmVnZXhwcy5hbGwudGVzdChzKSkgcmV0dXJuIHM7XG4gIHJldHVybiBzLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLmFtcCwgXCImYW1wO1wiKVxuICAgIC5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5sdCwgXCImbHQ7XCIpXG4gICAgLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLnF1b3QsIFwiJnF1b3Q7XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2h0bWxfZW50aXRpZXNcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfanNfaHRtbF9lbnRpdGllcyhzKSB7XG4gIHZhciBlbnRpdHkgPSAvXiYjP1swLTlhLXpBLVpdKzskL1xuICBpZihzLm1hdGNoKGVudGl0eSkpXG4gIHtcbiAgICB2YXIgc3RyLCB0ZW1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xuICAgIHRlbXAuaW5uZXJIVE1MPSBzO1xuICAgIHN0cj0gdGVtcC50ZXh0Q29udGVudCB8fCB0ZW1wLmlubmVyVGV4dDtcbiAgICB0ZW1wPW51bGw7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBlbHNlIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiSW52YWxpZCBlbnRpdHkgXCIgKyBzKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2dldF9jb25zb2xlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX2dldF9jb25zb2xlICgpIHtcbiAgdmFyIGMgPSBnbG9iYWxUaGlzLmNvbnNvbGU/Z2xvYmFsVGhpcy5jb25zb2xlOnt9O1xuICB2YXIgbSA9IFtcImxvZ1wiLCBcImRlYnVnXCIsIFwiaW5mb1wiLCBcIndhcm5cIiwgXCJlcnJvclwiLCBcImFzc2VydFwiLCBcImRpclwiLCBcImRpcnhtbFwiLFxuICAgICAgICAgICBcInRyYWNlXCIsIFwiZ3JvdXBcIiwgXCJncm91cENvbGxhcHNlZFwiLCBcImdyb3VwRW5kXCIsIFwidGltZVwiLCBcInRpbWVFbmRcIl07XG4gIGZ1bmN0aW9uIGYgKCkge31cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtLmxlbmd0aDsgaSsrKSBpZiAoIWNbbVtpXV0pIGNbbVtpXV09ZjtcbiAgcmV0dXJuIGM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlKHVuaXQpe1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIGlmKHR5cGVvZiBnLlhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7IHJldHVybiBuZXcgZy5YTUxIdHRwUmVxdWVzdCB9IGNhdGNoIChlKSB7IH07XG4gIH1cbiAgaWYodHlwZW9mIGcuYWN0aXZlWE9iamVjdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGcuYWN0aXZlWE9iamVjdChcIk1zeG1sMi5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnLmFjdGl2ZVhPYmplY3QoXCJNc3htbDMuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICAgIHRyeSB7IHJldHVybiBuZXcgZy5hY3RpdmVYT2JqZWN0KFwiTWljcm9zb2Z0LlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgfVxuICBjYW1sX2ZhaWx3aXRoKFwiQ2Fubm90IGNyZWF0ZSBhIFhNTEh0dHBSZXF1ZXN0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb24oZXhuKSB7XG4gIGlmKGV4bi5qc19lcnJvcikgeyByZXR1cm4gZXhuLmpzX2Vycm9yOyB9XG4gIHJldHVybiBudWxsO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF91cGRhdGVfZHVtbXlcbmZ1bmN0aW9uIGNhbWxfdXBkYXRlX2R1bW15ICh4LCB5KSB7XG4gIGlmKCB0eXBlb2YgeT09PVwiZnVuY3Rpb25cIiApIHsgeC5mdW4gPSB5OyByZXR1cm4gMDsgfVxuICBpZiggeS5mdW4gKSB7IHguZnVuID0geS5mdW47IHJldHVybiAwOyB9XG4gIHZhciBpID0geS5sZW5ndGg7IHdoaWxlIChpLS0pIHhbaV0gPSB5W2ldOyByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfaXNfYmxvY2sgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfaXNfYmxvY2sgKHgpIHsgcmV0dXJuICsoeCBpbnN0YW5jZW9mIEFycmF5KTsgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9pc19tbF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfb2JqX3RhZyAoeCkge1xuICBpZiAoKHggaW5zdGFuY2VvZiBBcnJheSkgJiYgeFswXSA9PSAoeFswXSA+Pj4gMCkpXG4gICAgcmV0dXJuIHhbMF1cbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh4KSlcbiAgICByZXR1cm4gMjUyXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHgpKVxuICAgIHJldHVybiAyNTJcbiAgZWxzZSBpZiAoKHggaW5zdGFuY2VvZiBGdW5jdGlvbikgfHwgdHlwZW9mIHggPT0gXCJmdW5jdGlvblwiKVxuICAgIHJldHVybiAyNDdcbiAgZWxzZSBpZiAoeCAmJiB4LmNhbWxfY3VzdG9tKVxuICAgIHJldHVybiAyNTVcbiAgZWxzZVxuICAgIHJldHVybiAxMDAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3NldF90YWcgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfc2V0X3RhZyAoeCwgdGFnKSB7IHhbMF0gPSB0YWc7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX29ial9ibG9jayBjb25zdCAoY29uc3QsY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9ibG9jayAodGFnLCBzaXplKSB7XG4gIHZhciBvID0gbmV3IEFycmF5KHNpemUrMSk7XG4gIG9bMF09dGFnO1xuICBmb3IgKHZhciBpID0gMTsgaSA8PSBzaXplOyBpKyspIG9baV0gPSAwO1xuICByZXR1cm4gbztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfd2l0aF90YWdcbmZ1bmN0aW9uIGNhbWxfb2JqX3dpdGhfdGFnKHRhZyx4KSB7XG4gIHZhciBsID0geC5sZW5ndGg7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBhWzBdID0gdGFnO1xuICBmb3IodmFyIGkgPSAxOyBpIDwgbDsgaSsrICkgYVtpXSA9IHhbaV07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9kdXAgbXV0YWJsZSAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9kdXAgKHgpIHtcbiAgdmFyIGwgPSB4Lmxlbmd0aDtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsOyBpKysgKSBhW2ldID0geFtpXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3RydW5jYXRlIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9vYmpfdHJ1bmNhdGUgKHgsIHMpIHtcbiAgaWYgKHM8PTAgfHwgcyArIDEgPiB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiT2JqLnRydW5jYXRlXCIpO1xuICBpZiAoeC5sZW5ndGggIT0gcyArIDEpIHgubGVuZ3RoID0gcyArIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9tYWtlX2ZvcndhcmRcbmZ1bmN0aW9uIGNhbWxfb2JqX21ha2VfZm9yd2FyZCAoYix2KSB7XG4gIGJbMF09MjUwO1xuICBiWzFdPXY7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV9tYWtlX2ZvcndhcmQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9sYXp5X21ha2VfZm9yd2FyZCAodikgeyByZXR1cm4gWzI1MCwgdl07IH1cblxuLy8vLy8vLy8vLy8vLyBDYW1saW50ZXJuYWxPT1xuLy9Qcm92aWRlczogY2FtbF9nZXRfcHVibGljX21ldGhvZCBjb25zdFxudmFyIGNhbWxfbWV0aG9kX2NhY2hlID0gW107XG5mdW5jdGlvbiBjYW1sX2dldF9wdWJsaWNfbWV0aG9kIChvYmosIHRhZywgY2FjaGVpZCkge1xuICB2YXIgbWV0aHMgPSBvYmpbMV07XG4gIHZhciBvZnMgPSBjYW1sX21ldGhvZF9jYWNoZVtjYWNoZWlkXTtcbiAgaWYgKG9mcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJheSBpcyBub3Qgc3BhcnNlXG4gICAgZm9yICh2YXIgaSA9IGNhbWxfbWV0aG9kX2NhY2hlLmxlbmd0aDsgaSA8IGNhY2hlaWQ7IGkrKylcbiAgICAgIGNhbWxfbWV0aG9kX2NhY2hlW2ldID0gMDtcbiAgfSBlbHNlIGlmIChtZXRoc1tvZnNdID09PSB0YWcpIHtcbiAgICByZXR1cm4gbWV0aHNbb2ZzIC0gMV07XG4gIH1cbiAgdmFyIGxpID0gMywgaGkgPSBtZXRoc1sxXSAqIDIgKyAxLCBtaTtcbiAgd2hpbGUgKGxpIDwgaGkpIHtcbiAgICBtaSA9ICgobGkraGkpID4+IDEpIHwgMTtcbiAgICBpZiAodGFnIDwgbWV0aHNbbWkrMV0pIGhpID0gbWktMjtcbiAgICBlbHNlIGxpID0gbWk7XG4gIH1cbiAgY2FtbF9tZXRob2RfY2FjaGVbY2FjaGVpZF0gPSBsaSArIDE7XG4gIC8qIHJldHVybiAwIGlmIHRhZyBpcyBub3QgdGhlcmUgKi9cbiAgcmV0dXJuICh0YWcgPT0gbWV0aHNbbGkrMV0gPyBtZXRoc1tsaV0gOiAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vb19sYXN0X2lkXG52YXIgY2FtbF9vb19sYXN0X2lkID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9zZXRfb29faWRcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9zZXRfb29faWQgKGIpIHtcbiAgYlsyXT1jYW1sX29vX2xhc3RfaWQrKztcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnJlc2hfb29faWQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9mcmVzaF9vb19pZCgpIHtcbiAgcmV0dXJuIGNhbWxfb29fbGFzdF9pZCsrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3Jhd19maWVsZChvLGkpIHsgcmV0dXJuIG9baSsxXSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3NldF9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3NldF9yYXdfZmllbGQobyxpLHYpIHsgcmV0dXJuIG9baSsxXSA9IHYgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yZWFjaGFibGVfd29yZHNcbmZ1bmN0aW9uIGNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyhvKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2FkZF9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfb2JqX2FkZF9vZmZzZXQodixvZmZzZXQpIHtcbiAgY2FtbF9mYWlsd2l0aChcIk9iai5hZGRfb2Zmc2V0IGlzIG5vdCBzdXBwb3J0ZWRcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYmFja3RyYWNlX3N0YXR1cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9iYWNrdHJhY2Vfc3RhdHVzICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlICgpIHsgcmV0dXJuIFswXTsgfVxuLy9Qcm92aWRlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3JlY29yZF9iYWNrdHJhY2UgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlICgpIHsgcmV0dXJuIFswXTsgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX2xlbmd0aCgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3RcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QoKSB7IHJldHVybiAwIH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9zbG90XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9zbG90ICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2Vfc2xvdDogaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfcmVzdG9yZV9yYXdfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZShleG4sIGJ0KSB7IHJldHVybiAwIH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayAoKSB7IHJldHVybiBbMF07IH1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdCgpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFwiKTtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0aXZlIENhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgKi9cbi8qICBlbiBBdXRvbWF0aXF1ZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgICAgKi9cbi8qICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2l0aCAgICAgKi9cbi8qICB0aGUgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSAuLi9MSUNFTlNFLiAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogJElkOiBsZXhpbmcuYyA2MDQ1IDIwMDQtMDEtMDEgMTY6NDI6NDNaIGRvbGlnZXogJCAqL1xuXG4vKiBUaGUgdGFibGUtZHJpdmVuIGF1dG9tYXRvbiBmb3IgbGV4ZXJzIGdlbmVyYXRlZCBieSBjYW1sbGV4LiAqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2xleF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9sZXhfYXJyYXkocykge1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKTtcbiAgdmFyIGwgPSBzLmxlbmd0aCAvIDI7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKylcbiAgICBhW2ldID0gKHMuY2hhckNvZGVBdCgyICogaSkgfCAocy5jaGFyQ29kZUF0KDIgKiBpICsgMSkgPDwgOCkpIDw8IDE2ID4+IDE2O1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sZXhfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2xleF9hcnJheSwgY2FtbF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9sZXhfZW5naW5lKHRibCwgc3RhcnRfc3RhdGUsIGxleGJ1Zikge1xuICB2YXIgbGV4X2J1ZmZlciA9IDI7XG4gIHZhciBsZXhfYnVmZmVyX2xlbiA9IDM7XG4gIHZhciBsZXhfc3RhcnRfcG9zID0gNTtcbiAgdmFyIGxleF9jdXJyX3BvcyA9IDY7XG4gIHZhciBsZXhfbGFzdF9wb3MgPSA3O1xuICB2YXIgbGV4X2xhc3RfYWN0aW9uID0gODtcbiAgdmFyIGxleF9lb2ZfcmVhY2hlZCA9IDk7XG4gIHZhciBsZXhfYmFzZSA9IDE7XG4gIHZhciBsZXhfYmFja3RyayA9IDI7XG4gIHZhciBsZXhfZGVmYXVsdCA9IDM7XG4gIHZhciBsZXhfdHJhbnMgPSA0O1xuICB2YXIgbGV4X2NoZWNrID0gNTtcblxuICBpZiAoIXRibC5sZXhfZGVmYXVsdCkge1xuICAgIHRibC5sZXhfYmFzZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VdKTtcbiAgICB0YmwubGV4X2JhY2t0cmsgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrXSk7XG4gICAgdGJsLmxleF9jaGVjayA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tdKTtcbiAgICB0YmwubGV4X3RyYW5zID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc10pO1xuICAgIHRibC5sZXhfZGVmYXVsdCA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRdKTtcbiAgfVxuXG4gIHZhciBjLCBzdGF0ZSA9IHN0YXJ0X3N0YXRlO1xuXG4gIHZhciBidWZmZXIgPSBjYW1sX2FycmF5X29mX2J5dGVzKGxleGJ1ZltsZXhfYnVmZmVyXSk7XG5cbiAgaWYgKHN0YXRlID49IDApIHtcbiAgICAvKiBGaXJzdCBlbnRyeSAqL1xuICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9zdGFydF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICAvKiBSZWVudHJ5IGFmdGVyIHJlZmlsbCAqL1xuICAgIHN0YXRlID0gLXN0YXRlIC0gMTtcbiAgfVxuICBmb3IoOzspIHtcbiAgICAvKiBMb29rdXAgYmFzZSBhZGRyZXNzIG9yIGFjdGlvbiBudW1iZXIgZm9yIGN1cnJlbnQgc3RhdGUgKi9cbiAgICB2YXIgYmFzZSA9IHRibC5sZXhfYmFzZVtzdGF0ZV07XG4gICAgaWYgKGJhc2UgPCAwKSByZXR1cm4gLWJhc2UtMTtcbiAgICAvKiBTZWUgaWYgaXQncyBhIGJhY2t0cmFjayBwb2ludCAqL1xuICAgIHZhciBiYWNrdHJrID0gdGJsLmxleF9iYWNrdHJrW3N0YXRlXTtcbiAgICBpZiAoYmFja3RyayA+PSAwKSB7XG4gICAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSBiYWNrdHJrO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgd2UgbmVlZCBhIHJlZmlsbCAqL1xuICAgIGlmIChsZXhidWZbbGV4X2N1cnJfcG9zXSA+PSBsZXhidWZbbGV4X2J1ZmZlcl9sZW5dKXtcbiAgICAgIGlmIChsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9PSAwKVxuICAgICAgICByZXR1cm4gLXN0YXRlIC0gMTtcbiAgICAgIGVsc2VcbiAgICAgICAgYyA9IDI1NjtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIFJlYWQgbmV4dCBpbnB1dCBjaGFyICovXG4gICAgICBjID0gYnVmZmVyW2xleGJ1ZltsZXhfY3Vycl9wb3NdXTtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdICsrO1xuICAgIH1cbiAgICAvKiBEZXRlcm1pbmUgbmV4dCBzdGF0ZSAqL1xuICAgIGlmICh0YmwubGV4X2NoZWNrW2Jhc2UgKyBjXSA9PSBzdGF0ZSlcbiAgICAgIHN0YXRlID0gdGJsLmxleF90cmFuc1tiYXNlICsgY107XG4gICAgZWxzZVxuICAgICAgc3RhdGUgPSB0YmwubGV4X2RlZmF1bHRbc3RhdGVdO1xuICAgIC8qIElmIG5vIHRyYW5zaXRpb24gb24gdGhpcyBjaGFyLCByZXR1cm4gdG8gbGFzdCBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICBpZiAoc3RhdGUgPCAwKSB7XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSA9IGxleGJ1ZltsZXhfbGFzdF9wb3NdO1xuICAgICAgaWYgKGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID09IC0xKVxuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwibGV4aW5nOiBlbXB0eSB0b2tlblwiKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dO1xuICAgIH1lbHNle1xuICAgICAgLyogRXJhc2UgdGhlIEVPRiBjb25kaXRpb24gb25seSBpZiB0aGUgRU9GIHBzZXVkby1jaGFyYWN0ZXIgd2FzXG4gICAgICAgICBjb25zdW1lZCBieSB0aGUgYXV0b21hdG9uIChpLmUuIHRoZXJlIHdhcyBubyBiYWNrdHJhY2sgYWJvdmUpXG4gICAgICAqL1xuICAgICAgaWYgKGMgPT0gMjU2KSBsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9IDA7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE5ldyBsZXhlciBlbmdpbmUsIHdpdGggbWVtb3J5IG9mIHBvc2l0aW9ucyAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLy9Qcm92aWRlczogY2FtbF9uZXdfbGV4X2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9sZXhfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGV4X3J1bl9tZW0ocywgaSwgbWVtLCBjdXJyX3Bvcykge1xuICBmb3IgKDs7KSB7XG4gICAgdmFyIGRzdCA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChkc3QgPT0gMHhmZikgcmV0dXJuO1xuICAgIHZhciBzcmMgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoc3JjID09IDB4ZmYpXG4gICAgICBtZW0gW2RzdCArIDFdID0gY3Vycl9wb3M7XG4gICAgZWxzZVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IG1lbSBbc3JjICsgMV07XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FtbF9sZXhfcnVuX3RhZyhzLCBpLCBtZW0pIHtcbiAgZm9yICg7Oykge1xuICAgIHZhciBkc3QgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoZHN0ID09IDB4ZmYpIHJldHVybiA7XG4gICAgdmFyIHNyYyA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChzcmMgPT0gMHhmZilcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSAtMTtcbiAgICBlbHNlXG4gICAgICBtZW0gW2RzdCArIDFdID0gbWVtIFtzcmMgKyAxXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW1sX25ld19sZXhfZW5naW5lKHRibCwgc3RhcnRfc3RhdGUsIGxleGJ1Zikge1xuICB2YXIgbGV4X2J1ZmZlciA9IDI7XG4gIHZhciBsZXhfYnVmZmVyX2xlbiA9IDM7XG4gIHZhciBsZXhfc3RhcnRfcG9zID0gNTtcbiAgdmFyIGxleF9jdXJyX3BvcyA9IDY7XG4gIHZhciBsZXhfbGFzdF9wb3MgPSA3O1xuICB2YXIgbGV4X2xhc3RfYWN0aW9uID0gODtcbiAgdmFyIGxleF9lb2ZfcmVhY2hlZCA9IDk7XG4gIHZhciBsZXhfbWVtID0gMTA7XG4gIHZhciBsZXhfYmFzZSA9IDE7XG4gIHZhciBsZXhfYmFja3RyayA9IDI7XG4gIHZhciBsZXhfZGVmYXVsdCA9IDM7XG4gIHZhciBsZXhfdHJhbnMgPSA0O1xuICB2YXIgbGV4X2NoZWNrID0gNTtcbiAgdmFyIGxleF9iYXNlX2NvZGUgPSA2O1xuICB2YXIgbGV4X2JhY2t0cmtfY29kZSA9IDc7XG4gIHZhciBsZXhfZGVmYXVsdF9jb2RlID0gODtcbiAgdmFyIGxleF90cmFuc19jb2RlID0gOTtcbiAgdmFyIGxleF9jaGVja19jb2RlID0gMTA7XG4gIHZhciBsZXhfY29kZSA9IDExO1xuXG4gIGlmICghdGJsLmxleF9kZWZhdWx0KSB7XG4gICAgdGJsLmxleF9iYXNlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV0pO1xuICAgIHRibC5sZXhfYmFja3RyayA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtdKTtcbiAgICB0YmwubGV4X2NoZWNrID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja10pO1xuICAgIHRibC5sZXhfdHJhbnMgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0ID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF0pO1xuICB9XG4gIGlmICghdGJsLmxleF9kZWZhdWx0X2NvZGUpIHtcbiAgICB0YmwubGV4X2Jhc2VfY29kZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VfY29kZV0pO1xuICAgIHRibC5sZXhfYmFja3Rya19jb2RlID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya19jb2RlXSk7XG4gICAgdGJsLmxleF9jaGVja19jb2RlID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja19jb2RlXSk7XG4gICAgdGJsLmxleF90cmFuc19jb2RlID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc19jb2RlXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0X2NvZGUgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0X2NvZGVdKTtcbiAgfVxuICBpZiAodGJsLmxleF9jb2RlID09IG51bGwpIHRibC5sZXhfY29kZSA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcodGJsW2xleF9jb2RlXSk7XG5cbiAgdmFyIGMsIHN0YXRlID0gc3RhcnRfc3RhdGU7XG5cbiAgdmFyIGJ1ZmZlciA9IGNhbWxfYXJyYXlfb2ZfYnl0ZXMobGV4YnVmW2xleF9idWZmZXJdKTtcblxuICBpZiAoc3RhdGUgPj0gMCkge1xuICAgIC8qIEZpcnN0IGVudHJ5ICovXG4gICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X3N0YXJ0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IC0xO1xuICB9IGVsc2Uge1xuICAgIC8qIFJlZW50cnkgYWZ0ZXIgcmVmaWxsICovXG4gICAgc3RhdGUgPSAtc3RhdGUgLSAxO1xuICB9XG4gIGZvcig7Oykge1xuICAgIC8qIExvb2t1cCBiYXNlIGFkZHJlc3Mgb3IgYWN0aW9uIG51bWJlciBmb3IgY3VycmVudCBzdGF0ZSAqL1xuICAgIHZhciBiYXNlID0gdGJsLmxleF9iYXNlW3N0YXRlXTtcbiAgICBpZiAoYmFzZSA8IDApIHtcbiAgICAgIHZhciBwY19vZmYgPSB0YmwubGV4X2Jhc2VfY29kZVtzdGF0ZV07XG4gICAgICBjYW1sX2xleF9ydW5fdGFnKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0pO1xuICAgICAgcmV0dXJuIC1iYXNlLTE7XG4gICAgfVxuICAgIC8qIFNlZSBpZiBpdCdzIGEgYmFja3RyYWNrIHBvaW50ICovXG4gICAgdmFyIGJhY2t0cmsgPSB0YmwubGV4X2JhY2t0cmtbc3RhdGVdO1xuICAgIGlmIChiYWNrdHJrID49IDApIHtcbiAgICAgIHZhciBwY19vZmYgPSB0YmwubGV4X2JhY2t0cmtfY29kZVtzdGF0ZV07XG4gICAgICBjYW1sX2xleF9ydW5fdGFnKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0pO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gYmFja3RyaztcbiAgICB9XG4gICAgLyogU2VlIGlmIHdlIG5lZWQgYSByZWZpbGwgKi9cbiAgICBpZiAobGV4YnVmW2xleF9jdXJyX3Bvc10gPj0gbGV4YnVmW2xleF9idWZmZXJfbGVuXSl7XG4gICAgICBpZiAobGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPT0gMClcbiAgICAgICAgcmV0dXJuIC1zdGF0ZSAtIDE7XG4gICAgICBlbHNlXG4gICAgICAgIGMgPSAyNTY7XG4gICAgfWVsc2V7XG4gICAgICAvKiBSZWFkIG5leHQgaW5wdXQgY2hhciAqL1xuICAgICAgYyA9IGJ1ZmZlcltsZXhidWZbbGV4X2N1cnJfcG9zXV07XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSArKztcbiAgICB9XG4gICAgLyogRGV0ZXJtaW5lIG5leHQgc3RhdGUgKi9cbiAgICB2YXIgcHN0YXRlID0gc3RhdGUgO1xuICAgIGlmICh0YmwubGV4X2NoZWNrW2Jhc2UgKyBjXSA9PSBzdGF0ZSlcbiAgICAgIHN0YXRlID0gdGJsLmxleF90cmFuc1tiYXNlICsgY107XG4gICAgZWxzZVxuICAgICAgc3RhdGUgPSB0YmwubGV4X2RlZmF1bHRbc3RhdGVdO1xuICAgIC8qIElmIG5vIHRyYW5zaXRpb24gb24gdGhpcyBjaGFyLCByZXR1cm4gdG8gbGFzdCBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICBpZiAoc3RhdGUgPCAwKSB7XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSA9IGxleGJ1ZltsZXhfbGFzdF9wb3NdO1xuICAgICAgaWYgKGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID09IC0xKVxuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwibGV4aW5nOiBlbXB0eSB0b2tlblwiKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dO1xuICAgIH1lbHNle1xuICAgICAgLyogSWYgc29tZSB0cmFuc2l0aW9uLCBnZXQgYW5kIHBlcmZvcm0gbWVtb3J5IG1vdmVzICovXG4gICAgICB2YXIgYmFzZV9jb2RlID0gdGJsLmxleF9iYXNlX2NvZGVbcHN0YXRlXSwgcGNfb2ZmO1xuICAgICAgaWYgKHRibC5sZXhfY2hlY2tfY29kZVtiYXNlX2NvZGUgKyBjXSA9PSBwc3RhdGUpXG4gICAgICAgIHBjX29mZiA9IHRibC5sZXhfdHJhbnNfY29kZVtiYXNlX2NvZGUgKyBjXTtcbiAgICAgIGVsc2VcbiAgICAgICAgcGNfb2ZmID0gdGJsLmxleF9kZWZhdWx0X2NvZGVbcHN0YXRlXTtcbiAgICAgIGlmIChwY19vZmYgPiAwKVxuICAgICAgICBjYW1sX2xleF9ydW5fbWVtXG4gICAgICAodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSwgbGV4YnVmW2xleF9jdXJyX3Bvc10pO1xuICAgICAgLyogRXJhc2UgdGhlIEVPRiBjb25kaXRpb24gb25seSBpZiB0aGUgRU9GIHBzZXVkby1jaGFyYWN0ZXIgd2FzXG4gICAgICAgICBjb25zdW1lZCBieSB0aGUgYXV0b21hdG9uIChpLmUuIHRoZXJlIHdhcyBubyBiYWNrdHJhY2sgYWJvdmUpXG4gICAgICAqL1xuICAgICAgaWYgKGMgPT0gMjU2KSBsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEFycmF5XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfc3ViIG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfc3ViIChhLCBpLCBsZW4pIHtcbiAgdmFyIGEyID0gbmV3IEFycmF5KGxlbisxKTtcbiAgYTJbMF09MDtcbiAgZm9yKHZhciBpMiA9IDEsIGkxPSBpKzE7IGkyIDw9IGxlbjsgaTIrKyxpMSsrICl7XG4gICAgYTJbaTJdPWFbaTFdO1xuICB9XG4gIHJldHVybiBhMjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9hcHBlbmQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9hcHBlbmQoYTEsIGEyKSB7XG4gIHZhciBsMSA9IGExLmxlbmd0aCwgbDIgPSBhMi5sZW5ndGg7XG4gIHZhciBsID0gbDErbDItMVxuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgYVswXSA9IDA7XG4gIHZhciBpID0gMSxqID0gMTtcbiAgZm9yKDtpPGwxO2krKykgYVtpXT1hMVtpXTtcbiAgZm9yKDtpPGw7aSsrLGorKykgYVtpXT1hMltqXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfY29uY2F0IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfY29uY2F0KGwpIHtcbiAgdmFyIGEgPSBbMF07XG4gIHdoaWxlIChsICE9PSAwKSB7XG4gICAgdmFyIGIgPSBsWzFdO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYi5sZW5ndGg7IGkrKykgYS5wdXNoKGJbaV0pO1xuICAgIGwgPSBsWzJdO1xuICB9XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2JsaXRcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYmxpdChhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIGlmIChpMiA8PSBpMSkge1xuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IGxlbjsgaisrKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBqID0gbGVuOyBqID49IDE7IGotLSkgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0YXJyYXlfYmxpdFxuZnVuY3Rpb24gY2FtbF9mbG9hdGFycmF5X2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICBpZiAoaTIgPD0gaTEpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBsZW47IGorKykgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaiA9IGxlbjsgaiA+PSAxOyBqLS0pIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9O1xuICByZXR1cm4gMDtcbn1cblxuLy8vLy8vLy8vLy8vLyBQZXJ2YXNpdmVcbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfc2V0IChtdXRhYmxlLCBjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2FycmF5X3NldCAoYXJyYXksIGluZGV4LCBuZXd2YWwpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBhcnJheVtpbmRleCsxXT1uZXd2YWw7IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2dldCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2FycmF5X2dldCAoYXJyYXksIGluZGV4KSB7XG4gIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gYXJyYXkubGVuZ3RoIC0gMSkpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFycmF5W2luZGV4KzFdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2ZpbGxcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfZmlsbChhcnJheSwgb2ZzLCBsZW4sIHYpe1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIGFycmF5W29mcytpKzFdID0gdjtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jaGVja19ib3VuZCAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9jaGVja19ib3VuZCAoYXJyYXksIGluZGV4KSB7XG4gIGlmIChpbmRleCA+Pj4gMCA+PSBhcnJheS5sZW5ndGggLSAxKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcnJheTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX3ZlY3QgY29uc3QgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWFrZV92ZWN0IChsZW4sIGluaXQpIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTA7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSBpbml0O1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX2Zsb2F0X3ZlY3QgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9tYWtlX2Zsb2F0X3ZlY3QobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9jcmVhdGUobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gV2VhayBBUEksIGJ1dCB3aXRob3V0IHRoZSB3ZWFrIHNlbWFudGljc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxudmFyIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ID0gM1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbnZhciBjYW1sX2VwaGVfZGF0YV9vZmZzZXQgPSAyXG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfd2Vha19jcmVhdGUgKG4pIHtcbiAgaWYgKG4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5jcmVhdGVcIik7XG4gIHZhciB4ID0gWzI1MSxcImNhbWxfZXBoZV9saXN0X2hlYWRcIl07XG4gIHgubGVuZ3RoID0gY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBuO1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX3NldFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF93ZWFrX3NldCh4LCBpLCB2KSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5zZXRcIik7XG4gIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IHY7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2dldFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF93ZWFrX2dldCh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5nZXRfa2V5XCIpO1xuICByZXR1cm4gKHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpIF09PT11bmRlZmluZWQpPzA6eFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldO1xufVxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2dldF9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfZ2V0LGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX29ial9kdXAsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF93ZWFrX2dldF9jb3B5KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmdldF9jb3B5XCIpO1xuICB2YXIgeSA9IGNhbWxfd2Vha19nZXQoeCwgaSk7XG4gIGlmICh5ID09PSAwKSByZXR1cm4geTtcbiAgdmFyIHogPSB5WzFdO1xuICBpZiAoeiBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gWzAsIGNhbWxfb2JqX2R1cCh6KV07XG4gIHJldHVybiB5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfY2hlY2sgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfd2Vha19jaGVjayh4LCBpKSB7XG4gIGlmKHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSE9PXVuZGVmaW5lZCAmJiB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gIT09MClcbiAgICByZXR1cm4gMTtcbiAgZWxzZVxuICAgIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF93ZWFrX2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICAvLyBtaW51cyBvbmUgYmVjYXVzZSBjYW1sX2FycmF5X2JsaXQgd29ya3Mgb24gb2NhbWwgYXJyYXlcbiAgY2FtbF9hcnJheV9ibGl0KGExLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkxIC0gMSxcbiAgICAgICAgICAgICAgICAgIGEyLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkyIC0gMSxcbiAgICAgICAgICAgICAgICAgIGxlbik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfY3JlYXRlXG52YXIgY2FtbF9lcGhlX2NyZWF0ZSA9IGNhbWxfd2Vha19jcmVhdGVcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2JsaXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfYmxpdFxudmFyIGNhbWxfZXBoZV9ibGl0X2tleSA9IGNhbWxfd2Vha19ibGl0XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfZ2V0XG52YXIgY2FtbF9lcGhlX2dldF9rZXkgPSBjYW1sX3dlYWtfZ2V0XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfa2V5X2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19nZXRfY29weVxudmFyIGNhbWxfZXBoZV9nZXRfa2V5X2NvcHkgPSBjYW1sX3dlYWtfZ2V0X2NvcHlcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NoZWNrX2tleVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2NoZWNrXG52YXIgY2FtbF9lcGhlX2NoZWNrX2tleSA9IGNhbWxfd2Vha19jaGVja1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfc2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX3NldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9rZXkoeCwgaSwgdikge1xuICByZXR1cm4gY2FtbF93ZWFrX3NldCh4LCBpLCBbMCwgdl0pXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV91bnNldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19zZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV91bnNldF9rZXkoeCwgaSkge1xuICByZXR1cm4gY2FtbF93ZWFrX3NldCh4LCBpLCAwKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9ibGl0X2RhdGEoc3JjLCBkc3Qpe1xuICBkc3RbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IHNyY1tjYW1sX2VwaGVfZGF0YV9vZmZzZXRdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfZGF0YSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gWzAsIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX2R1cFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIFswLCBjYW1sX29ial9kdXAoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdKV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9zZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfc2V0X2RhdGEoeCwgZGF0YSl7XG4gIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IGRhdGE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfdW5zZXRfZGF0YSh4LCBkYXRhKXtcbiAgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID0gdW5kZWZpbmVkO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NoZWNrX2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2NoZWNrX2RhdGEoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIDE7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9jaGFuXG4vL1JlcXVpcmVzOiBjYW1sX21kNV9zdHJpbmcsIGNhbWxfc3RyaW5nX29mX2FycmF5LGNhbWxfbWxfY2hhbm5lbHNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tZDVfY2hhbihjaGFuaWQsbGVuKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBjaGFuX2xlbiA9IGNoYW4uZmlsZS5sZW5ndGgoKTtcbiAgaWYobGVuPDApIGxlbiA9IGNoYW5fbGVuIC0gY2hhbi5vZmZzZXQ7XG4gIGlmKGNoYW4ub2Zmc2V0ICsgbGVuID4gY2hhbl9sZW4pIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgdmFyIGJ1ZiA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gIGNoYW4uZmlsZS5yZWFkKGNoYW4ub2Zmc2V0LGJ1ZiwwLGxlbik7XG4gIHJldHVybiBjYW1sX21kNV9zdHJpbmcoY2FtbF9zdHJpbmdfb2ZfYnl0ZXMoYnVmKSwwLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9zdHJpbmcsIGNhbWxfbWQ1X2J5dGVzXG5mdW5jdGlvbiBjYW1sX21kNV9zdHJpbmcocywgb2ZzLCBsZW4pIHtcbiAgcmV0dXJuIGNhbWxfbWQ1X2J5dGVzKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpLG9mcyxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXksIGNhbWxfbWxfYnl0ZXNfY29udGVudFxudmFyIGNhbWxfbWQ1X2J5dGVzID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBhZGQgKHgsIHkpIHsgcmV0dXJuICh4ICsgeSkgfCAwOyB9XG4gIGZ1bmN0aW9uIHh4KHEsYSxiLHgscyx0KSB7XG4gICAgYSA9IGFkZChhZGQoYSwgcSksIGFkZCh4LCB0KSk7XG4gICAgcmV0dXJuIGFkZCgoYSA8PCBzKSB8IChhID4+PiAoMzIgLSBzKSksIGIpO1xuICB9XG4gIGZ1bmN0aW9uIGZmKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGdnKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBkKSB8IChjICYgKH5kKSksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGhoKGEsYixjLGQseCxzLHQpIHsgcmV0dXJuIHh4KGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7IH1cbiAgZnVuY3Rpb24gaWkoYSxiLGMsZCx4LHMsdCkgeyByZXR1cm4geHgoYyBeIChiIHwgKH5kKSksIGEsIGIsIHgsIHMsIHQpOyB9XG5cbiAgZnVuY3Rpb24gbWQ1KGJ1ZmZlciwgbGVuZ3RoKSB7XG4gICAgdmFyIGkgPSBsZW5ndGg7XG4gICAgYnVmZmVyW2kgPj4gMl0gfD0gMHg4MCA8PCAoOCAqIChpICYgMykpO1xuICAgIGZvciAoaSA9IChpICYgfjB4MykgKyA4OyhpICYgMHgzRikgPCA2MCA7aSArPSA0KVxuICAgICAgYnVmZmVyWyhpID4+IDIpIC0gMV0gPSAwO1xuICAgIGJ1ZmZlclsoaSA+PiAyKSAtMV0gPSBsZW5ndGggPDwgMztcbiAgICBidWZmZXJbaSA+PiAyXSA9IChsZW5ndGggPj4gMjkpICYgMHgxRkZGRkZGRjtcblxuICAgIHZhciB3ID0gWzB4Njc0NTIzMDEsIDB4RUZDREFCODksIDB4OThCQURDRkUsIDB4MTAzMjU0NzZdO1xuXG4gICAgZm9yKGkgPSAwOyBpIDwgYnVmZmVyLmxlbmd0aDsgaSArPSAxNikge1xuICAgICAgdmFyIGEgPSB3WzBdLCBiID0gd1sxXSwgYyA9IHdbMl0sIGQgPSB3WzNdO1xuXG4gICAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyW2krIDBdLCA3LCAweEQ3NkFBNDc4KTtcbiAgICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbaSsgMV0sIDEyLCAweEU4QzdCNzU2KTtcbiAgICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbaSsgMl0sIDE3LCAweDI0MjA3MERCKTtcbiAgICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbaSsgM10sIDIyLCAweEMxQkRDRUVFKTtcbiAgICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbaSsgNF0sIDcsIDB4RjU3QzBGQUYpO1xuICAgICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA1XSwgMTIsIDB4NDc4N0M2MkEpO1xuICAgICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyA2XSwgMTcsIDB4QTgzMDQ2MTMpO1xuICAgICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA3XSwgMjIsIDB4RkQ0Njk1MDEpO1xuICAgICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA4XSwgNywgMHg2OTgwOThEOCk7XG4gICAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyW2krIDldLCAxMiwgMHg4QjQ0RjdBRik7XG4gICAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyW2krMTBdLCAxNywgMHhGRkZGNUJCMSk7XG4gICAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyW2krMTFdLCAyMiwgMHg4OTVDRDdCRSk7XG4gICAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyW2krMTJdLCA3LCAweDZCOTAxMTIyKTtcbiAgICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbaSsxM10sIDEyLCAweEZEOTg3MTkzKTtcbiAgICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbaSsxNF0sIDE3LCAweEE2Nzk0MzhFKTtcbiAgICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbaSsxNV0sIDIyLCAweDQ5QjQwODIxKTtcblxuICAgICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyAxXSwgNSwgMHhGNjFFMjU2Mik7XG4gICAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyW2krIDZdLCA5LCAweEMwNDBCMzQwKTtcbiAgICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbaSsxMV0sIDE0LCAweDI2NUU1QTUxKTtcbiAgICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbaSsgMF0sIDIwLCAweEU5QjZDN0FBKTtcbiAgICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbaSsgNV0sIDUsIDB4RDYyRjEwNUQpO1xuICAgICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzEwXSwgOSwgMHgwMjQ0MTQ1Myk7XG4gICAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyW2krMTVdLCAxNCwgMHhEOEExRTY4MSk7XG4gICAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyW2krIDRdLCAyMCwgMHhFN0QzRkJDOCk7XG4gICAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyW2krIDldLCA1LCAweDIxRTFDREU2KTtcbiAgICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbaSsxNF0sIDksIDB4QzMzNzA3RDYpO1xuICAgICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyAzXSwgMTQsIDB4RjRENTBEODcpO1xuICAgICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA4XSwgMjAsIDB4NDU1QTE0RUQpO1xuICAgICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKzEzXSwgNSwgMHhBOUUzRTkwNSk7XG4gICAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyW2krIDJdLCA5LCAweEZDRUZBM0Y4KTtcbiAgICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbaSsgN10sIDE0LCAweDY3NkYwMkQ5KTtcbiAgICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbaSsxMl0sIDIwLCAweDhEMkE0QzhBKTtcblxuICAgICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA1XSwgNCwgMHhGRkZBMzk0Mik7XG4gICAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyW2krIDhdLCAxMSwgMHg4NzcxRjY4MSk7XG4gICAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyW2krMTFdLCAxNiwgMHg2RDlENjEyMik7XG4gICAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyW2krMTRdLCAyMywgMHhGREU1MzgwQyk7XG4gICAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyW2krIDFdLCA0LCAweEE0QkVFQTQ0KTtcbiAgICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbaSsgNF0sIDExLCAweDRCREVDRkE5KTtcbiAgICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbaSsgN10sIDE2LCAweEY2QkI0QjYwKTtcbiAgICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbaSsxMF0sIDIzLCAweEJFQkZCQzcwKTtcbiAgICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbaSsxM10sIDQsIDB4Mjg5QjdFQzYpO1xuICAgICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyAwXSwgMTEsIDB4RUFBMTI3RkEpO1xuICAgICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyAzXSwgMTYsIDB4RDRFRjMwODUpO1xuICAgICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA2XSwgMjMsIDB4MDQ4ODFEMDUpO1xuICAgICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA5XSwgNCwgMHhEOUQ0RDAzOSk7XG4gICAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyW2krMTJdLCAxMSwgMHhFNkRCOTlFNSk7XG4gICAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyW2krMTVdLCAxNiwgMHgxRkEyN0NGOCk7XG4gICAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyW2krIDJdLCAyMywgMHhDNEFDNTY2NSk7XG5cbiAgICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbaSsgMF0sIDYsIDB4RjQyOTIyNDQpO1xuICAgICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA3XSwgMTAsIDB4NDMyQUZGOTcpO1xuICAgICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzE0XSwgMTUsIDB4QUI5NDIzQTcpO1xuICAgICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA1XSwgMjEsIDB4RkM5M0EwMzkpO1xuICAgICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKzEyXSwgNiwgMHg2NTVCNTlDMyk7XG4gICAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyW2krIDNdLCAxMCwgMHg4RjBDQ0M5Mik7XG4gICAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyW2krMTBdLCAxNSwgMHhGRkVGRjQ3RCk7XG4gICAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyW2krIDFdLCAyMSwgMHg4NTg0NUREMSk7XG4gICAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyW2krIDhdLCA2LCAweDZGQTg3RTRGKTtcbiAgICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbaSsxNV0sIDEwLCAweEZFMkNFNkUwKTtcbiAgICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbaSsgNl0sIDE1LCAweEEzMDE0MzE0KTtcbiAgICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbaSsxM10sIDIxLCAweDRFMDgxMUExKTtcbiAgICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbaSsgNF0sIDYsIDB4Rjc1MzdFODIpO1xuICAgICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzExXSwgMTAsIDB4QkQzQUYyMzUpO1xuICAgICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyAyXSwgMTUsIDB4MkFEN0QyQkIpO1xuICAgICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyA5XSwgMjEsIDB4RUI4NkQzOTEpO1xuXG4gICAgICB3WzBdID0gYWRkKGEsIHdbMF0pO1xuICAgICAgd1sxXSA9IGFkZChiLCB3WzFdKTtcbiAgICAgIHdbMl0gPSBhZGQoYywgd1syXSk7XG4gICAgICB3WzNdID0gYWRkKGQsIHdbM10pO1xuICAgIH1cblxuICAgIHZhciB0ID0gbmV3IEFycmF5KDE2KTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKylcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgaisrKVxuICAgICAgICB0W2kgKiA0ICsgal0gPSAod1tpXSA+PiAoOCAqIGopKSAmIDB4RkY7XG4gICAgcmV0dXJuIHQ7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKHMsIG9mcywgbGVuKSB7XG4gICAgLy8gRklYOiBtYXliZSB3ZSBzaG91bGQgcGVyZm9ybSB0aGUgY29tcHV0YXRpb24gYnkgY2h1bmsgb2YgNjQgYnl0ZXNcbiAgICAvLyBhcyBpbiBodHRwOi8vd3d3Lm15ZXJzZGFpbHkub3JnL2pvc2VwaC9qYXZhc2NyaXB0L21kNS5qc1xuICAgIHZhciBidWYgPSBbXTtcbiAgICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudChzKTtcbiAgICBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIil7XG4gICAgICB2YXIgYiA9IGNvbnRlbnQ7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSs9NCkge1xuICAgICAgICB2YXIgaiA9IGkgKyBvZnM7XG4gICAgICAgIGJ1ZltpPj4yXSA9XG4gICAgICAgICAgYi5jaGFyQ29kZUF0KGopIHwgKGIuY2hhckNvZGVBdChqKzEpIDw8IDgpIHxcbiAgICAgICAgICAoYi5jaGFyQ29kZUF0KGorMikgPDwgMTYpIHwgKGIuY2hhckNvZGVBdChqKzMpIDw8IDI0KTtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIGJ1ZltpPj4yXSB8PSBiLmNoYXJDb2RlQXQoaSArIG9mcykgPDwgKDggKiAoaSAmIDMpKTtcbiAgICB9IGVsc2UgeyAvKiBBUlJBWSAqL1xuICAgICAgdmFyIGEgPSBjb250ZW50O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrPTQpIHtcbiAgICAgICAgdmFyIGogPSBpICsgb2ZzO1xuICAgICAgICBidWZbaT4+Ml0gPSBhW2pdIHwgKGFbaisxXSA8PCA4KSB8IChhW2orMl0gPDwgMTYpIHwgKGFbaiszXSA8PCAyNCk7XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IGxlbjsgaSsrKSBidWZbaT4+Ml0gfD0gYVtpICsgb2ZzXSA8PCAoOCAqIChpICYgMykpO1xuICAgIH1cbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkobWQ1KGJ1ZiwgbGVuKSk7XG4gIH1cbn0gKCk7XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMjAgLSBIdWdvIEhldXphcmRcbi8vIENvcHlyaWdodCAoQykgMjAyMCAtIFNoYWNoYXIgSXR6aGFreVxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2Jsb2IvNC4wNy9vdGhlcmxpYnMvc3RyL3N0cnN0dWJzLmNcbi8vIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2NvcS9qc2NvcS9ibG9iL3Y4LjExL2NvcS1qcy9qc19zdHViL3N0ci5qc1xuXG4vL1Byb3ZpZGVzOiByZV9tYXRjaFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfZ2V0XG5cbnZhciByZV9tYXRjaCA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZV93b3JkX2xldHRlcnMgPSBbXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHgwMC0weDFGOiBub25lICovXG4gICAgMHgwMCwgMHgwMCwgMHhGRiwgMHgwMywgICAgICAgLyogMHgyMC0weDNGOiBkaWdpdHMgMC05ICovXG4gICAgMHhGRSwgMHhGRiwgMHhGRiwgMHg4NywgICAgICAgLyogMHg0MC0weDVGOiBBIHRvIFosIF8gKi9cbiAgICAweEZFLCAweEZGLCAweEZGLCAweDA3LCAgICAgICAvKiAweDYwLTB4N0Y6IGEgdG8geiAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4ODAtMHg5Rjogbm9uZSAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4QTAtMHhCRjogbm9uZSAqL1xuICAgIDB4RkYsIDB4RkYsIDB4N0YsIDB4RkYsICAgICAgIC8qIDB4QzAtMHhERjogTGF0aW4tMSBhY2NlbnRlZCB1cHBlcmNhc2UgKi9cbiAgICAweEZGLCAweEZGLCAweDdGLCAweEZGICAgICAgICAvKiAweEUwLTB4RkY6IExhdGluLTEgYWNjZW50ZWQgbG93ZXJjYXNlICovXG4gIF07XG5cbiAgdmFyIG9wY29kZXMgPSB7XG4gICAgQ0hBUjogMCwgQ0hBUk5PUk06IDEsIFNUUklORzogMiwgU1RSSU5HTk9STTogMywgQ0hBUkNMQVNTOiA0LFxuICAgIEJPTDogNSwgRU9MOiA2LCBXT1JEQk9VTkRBUlk6IDcsXG4gICAgQkVHR1JPVVA6IDgsIEVOREdST1VQOiA5LCBSRUZHUk9VUDogMTAsXG4gICAgQUNDRVBUOiAxMSxcbiAgICBTSU1QTEVPUFQ6IDEyLCBTSU1QTEVTVEFSOiAxMywgU0lNUExFUExVUzogMTQsXG4gICAgR09UTzogMTUsIFBVU0hCQUNLOiAxNiwgU0VUTUFSSzogMTcsXG4gICAgQ0hFQ0tQUk9HUkVTUzogMThcbiAgfTtcblxuICBmdW5jdGlvbiBpc193b3JkX2xldHRlcihjKSB7XG4gICAgcmV0dXJuIChyZV93b3JkX2xldHRlcnNbICAoYyA+PiAzKV0gPj4gKGMgJiA3KSkgJiAxO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5fYml0c2V0KHMsaSkge1xuICAgIHJldHVybiAoY2FtbF9zdHJpbmdfZ2V0KHMsKGkgPj4gMykpID4+IChpICYgNykpICYgMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlX21hdGNoX2ltcGwocmUsIHMsIHBvcywgcGFydGlhbCkge1xuXG4gICAgdmFyIHByb2cgICAgICAgICAgPSBjYW1sX2pzX2Zyb21fYXJyYXkocmVbMV0pLFxuICAgICAgICBjcG9vbCAgICAgICAgID0gY2FtbF9qc19mcm9tX2FycmF5KHJlWzJdKSxcbiAgICAgICAgbm9ybXRhYmxlICAgICA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocmVbM10pLFxuICAgICAgICBudW1ncm91cHMgICAgID0gcmVbNF0gfCAwLFxuICAgICAgICBudW1yZWdpc3RlcnMgID0gcmVbNV0gfCAwLFxuICAgICAgICBzdGFydGNoYXJzICAgID0gcmVbNl0gfCAwO1xuXG4gICAgdmFyIHMgPSBjYW1sX2FycmF5X29mX3N0cmluZyhzKTtcblxuICAgIHZhciBwYyA9IDAsXG4gICAgICAgIHF1aXQgPSBmYWxzZSxcbiAgICAgICAgc3RhY2sgPSBbXSxcbiAgICAgICAgZ3JvdXBzID0gbmV3IEFycmF5KG51bWdyb3VwcyksXG4gICAgICAgIHJlX3JlZ2lzdGVyID0gbmV3IEFycmF5KG51bXJlZ2lzdGVycyk7XG5cbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGdyb3Vwc1tpXSA9IHtzdGFydDogLTEsIGVuZDotMX1cbiAgICB9XG4gICAgZ3JvdXBzWzBdLnN0YXJ0ID0gcG9zO1xuXG4gICAgdmFyIGJhY2t0cmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBzdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKGl0ZW0udW5kbykge1xuICAgICAgICAgIGl0ZW0udW5kby5vYmpbaXRlbS51bmRvLnByb3BdID0gaXRlbS51bmRvLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoaXRlbS5wb3MpIHtcbiAgICAgICAgICBwYyA9IGl0ZW0ucG9zLnBjO1xuICAgICAgICAgIHBvcyA9IGl0ZW0ucG9zLnR4dDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHF1aXQgPSB0cnVlO1xuICAgIH07XG5cbiAgICB2YXIgcHVzaCA9IGZ1bmN0aW9uKGl0ZW0pIHsgc3RhY2sucHVzaChpdGVtKTsgfTtcblxuICAgIHZhciBhY2NlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBncm91cHNbMF0uZW5kID0gcG9zO1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSgxICsgZ3JvdXBzLmxlbmd0aCoyKTtcbiAgICAgIHJlc3VsdFswXSA9IDA7IC8vIHRhZ1xuICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHZhciBnID0gZ3JvdXBzW2ldO1xuICAgICAgICBpZihnLnN0YXJ0IDwgMCB8fCBnLmVuZCA8IDApIHtcbiAgICAgICAgICBnLnN0YXJ0ID0gZy5lbmQgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRbMippICsgMSBdID0gZy5zdGFydDtcbiAgICAgICAgcmVzdWx0WzIqaSArIDEgKyAxIF0gPSBnLmVuZDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfTtcblxuICAgIHZhciBwcmVmaXhfbWF0Y2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZihwYXJ0aWFsKSByZXR1cm4gYWNjZXB0ICgpO1xuICAgICAgZWxzZSBiYWNrdHJhY2sgKCk7XG4gICAgfVxuXG4gICAgLyogTWFpbiBERkEgaW50ZXJwcmV0ZXIgbG9vcCAqL1xuICAgIHdoaWxlICghcXVpdCkge1xuICAgICAgdmFyIG9wID0gcHJvZ1twY10gJiAweGZmLFxuICAgICAgICAgIHNhcmcgPSBwcm9nW3BjXSA+PiA4LFxuICAgICAgICAgIHVhcmcgPSBzYXJnICYgMHhmZixcbiAgICAgICAgICBjID0gc1twb3NdLFxuICAgICAgICAgIGdyb3VwO1xuXG4gICAgICBwYysrO1xuXG4gICAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUjpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoYyA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJOT1JNOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNUUklORzpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChjID09PSBhcmcuY2hhckNvZGVBdChpKSlcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICBlbHNlIHsgYmFja3RyYWNrKCk7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU1RSSU5HTk9STTpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gYXJnLmNoYXJDb2RlQXQoaSkpXG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgZWxzZSB7IGJhY2t0cmFjaygpOyBicmVhazsgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJDTEFTUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJPTDpcbiAgICAgICAgaWYocG9zID4gMCAmJiBzW3BvcyAtIDFdICE9IDEwIC8qIFxcbiAqLykge2JhY2t0cmFjaygpfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5FT0w6XG4gICAgICAgIGlmKHBvcyA8IHMubGVuZ3RoICYmIHNbcG9zXSAhPSAxMCAvKiBcXG4gKi8pIHtiYWNrdHJhY2soKX1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuV09SREJPVU5EQVJZOlxuICAgICAgICBpZihwb3MgPT0gMCkge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzWzBdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocG9zID09PSBzLmxlbmd0aCkge1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbcG9zIC0gMV0pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2sgKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1twb3MgLSAxXSkgIT0gaXNfd29yZF9sZXR0ZXIoc1twb3NdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrICgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJFR0dST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajpncm91cCxcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6J3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC5zdGFydH19KTtcbiAgICAgICAgZ3JvdXAuc3RhcnQgPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkVOREdST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOidlbmQnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdyb3VwLmVuZH19KTtcbiAgICAgICAgZ3JvdXAuZW5kID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5SRUZHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIGlmKGdyb3VwLnN0YXJ0IDwgMCB8fCBncm91cC5lbmQgPCAwKSB7YmFja3RyYWNrICgpOyBicmVha31cbiAgICAgICAgZm9yICh2YXIgaSA9IGdyb3VwLnN0YXJ0OyBpIDwgZ3JvdXAuZW5kOyBpKyspe1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihzW2ldICE9IHNbcG9zXSkge2JhY2t0cmFjayAoKTsgYnJlYWt9XG4gICAgICAgICAgcG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFT1BUOlxuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRVNUQVI6XG4gICAgICAgIHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKVxuICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFUExVUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICB9IHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5BQ0NFUFQ6XG4gICAgICAgIHJldHVybiBhY2NlcHQoKTtcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5HT1RPOlxuICAgICAgICBwYyA9IHBjICsgc2FyZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuUFVTSEJBQ0s6XG4gICAgICAgIHB1c2goe3Bvczoge3BjOiBwYyArIHNhcmcsIHR4dDogcG9zfX0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TRVRNQVJLOlxuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOnJlX3JlZ2lzdGVyLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDogdWFyZyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZV9yZWdpc3Rlclt1YXJnXX19KTtcbiAgICAgICAgcmVfcmVnaXN0ZXJbdWFyZ10gPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIRUNLUFJPR1JFU1M6XG4gICAgICAgIGlmIChyZV9yZWdpc3Rlclt1YXJnXSA9PT0gcG9zKSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJ5dGVjb2RlXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiByZV9tYXRjaF9pbXBsO1xufSgpO1xuXG5cbi8vUHJvdmlkZXM6IHJlX3NlYXJjaF9mb3J3YXJkXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3NlYXJjaF9mb3J3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9mb3J3YXJkXCIpXG4gIHdoaWxlIChwb3MgPD0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSB7XG4gICAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICAgIGlmIChyZXMpIHJldHVybiByZXM7XG4gICAgcG9zKys7XG4gIH1cblxuICByZXR1cm4gWzBdOyAgLyogW3x8XSA6IGludCBhcnJheSAqL1xufVxuXG4vL1Byb3ZpZGVzOiByZV9zZWFyY2hfYmFja3dhcmRcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc2VhcmNoX2JhY2t3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9iYWNrd2FyZFwiKVxuICB3aGlsZSAocG9zID49IDApIHtcbiAgICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICBwb3MtLTtcbiAgfVxuXG4gIHJldHVybiBbMF07ICAvKiBbfHxdIDogaW50IGFycmF5ICovXG59XG5cblxuLy9Qcm92aWRlczogcmVfc3RyaW5nX21hdGNoXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3N0cmluZ19tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zdHJpbmdfbWF0Y2hcIilcbiAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICBlbHNlIHJldHVybiBbMF07XG59XG5cbi8vUHJvdmlkZXM6IHJlX3BhcnRpYWxfbWF0Y2hcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfcGFydGlhbF9tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5wYXJ0aWFsX21hdGNoXCIpXG4gIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAxKTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgZWxzZSByZXR1cm4gWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiByZV9yZXBsYWNlbWVudF90ZXh0XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2dldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy8gZXh0ZXJuYWwgcmVfcmVwbGFjZW1lbnRfdGV4dDogc3RyaW5nIC0+IGludCBhcnJheSAtPiBzdHJpbmcgLT4gc3RyaW5nXG5mdW5jdGlvbiByZV9yZXBsYWNlbWVudF90ZXh0KHJlcGwsZ3JvdXBzLG9yaWcpIHtcbiAgdmFyIHJlcGwgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHJlcGwpO1xuICB2YXIgbGVuID0gcmVwbC5sZW5ndGg7XG4gIHZhciBvcmlnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhvcmlnKTtcbiAgdmFyIHJlcyA9IFwiXCI7IC8vcmVzdWx0XG4gIHZhciBuID0gMDsgLy8gY3VycmVudCBwb3NpdGlvblxuICB2YXIgY3VyOyAvL2N1cnJlbnQgY2hhclxuICB2YXIgc3RhcnQsIGVuZCwgYztcbiAgd2hpbGUobiA8IGxlbil7XG4gICAgY3VyID0gcmVwbC5jaGFyQXQobisrKTtcbiAgICBpZihjdXIgIT0gJ1xcXFwnKXtcbiAgICAgIHJlcyArPSBjdXI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYobiA9PSBsZW4pIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogaWxsZWdhbCBiYWNrc2xhc2ggc2VxdWVuY2VcIik7XG4gICAgICBjdXIgPSByZXBsLmNoYXJBdChuKyspO1xuICAgICAgc3dpdGNoKGN1cil7XG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgcmVzICs9IGN1cjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6XG4gICAgICBjYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICAgIGMgPSArY3VyO1xuICAgICAgICBpZiAoYyoyID49IGdyb3Vwcy5sZW5ndGggLSAxIClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIiApO1xuICAgICAgICBzdGFydCA9IGNhbWxfYXJyYXlfZ2V0KGdyb3VwcyxjKjIpO1xuICAgICAgICBlbmQgPSBjYW1sX2FycmF5X2dldChncm91cHMsIGMqMiArMSk7XG4gICAgICAgIGlmIChzdGFydCA9PSAtMSlcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIik7XG4gICAgICAgIHJlcys9b3JpZy5zbGljZShzdGFydCxlbmQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJlcyArPSAoJ1xcXFwnICArIGN1cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHJlcyk7IH1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2l0cml4IEluY1xuICpcbiAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFU1xuICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1JcbiAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVNcbiAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTlxuICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0ZcbiAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4gKi9cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcbnZhciBjYW1sX2JsaXRfYmlnc3RyaW5nX3RvX2JpZ3N0cmluZyA9IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcbnZhciBjYW1sX2JsaXRfYmlnc3RyaW5nX3RvX3N0cmluZyA9IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhXG52YXIgY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmcgPSBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2ludF9jb21wYXJlLCBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfYmlnc3RyaW5nKGJ1ZjEsIGJ1ZjFfb2ZmLCBidWYyLCBidWYyX29mZiwgbGVuKSB7XG4gIHZhciBpLCByO1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICByID0gY2FtbF9pbnRfY29tcGFyZShjYW1sX2JhX2dldF8xKGJ1ZjEsIGJ1ZjFfb2ZmICsgaSksIGNhbWxfYmFfZ2V0XzEoYnVmMiwgYnVmMl9vZmYgKyBpKSk7XG4gICAgaWYgKHIgIT0gMCkgcmV0dXJuIHI7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmlsbF9iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmFfc2V0XzFcbmZ1bmN0aW9uIGNhbWxfZmlsbF9iaWdzdHJpbmcoYnVmLCBidWZfb2ZmLCBidWZfbGVuLCB2KSB7XG4gIHZhciBpO1xuICBmb3IgKGkgPSAwOyBpIDwgYnVmX2xlbjsgaSsrKSB7XG4gICAgY2FtbF9iYV9zZXRfMShidWYsIGJ1Zl9vZmYgKyBpLCB2KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jaGVja19hbGlnbm1lbnRfYmlnc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NoZWNrX2FsaWdubWVudF9iaWdzdHJpbmcoYnVmLCBvZnMsIGFsaWdubWVudCkge1xuICByZXR1cm4gdHJ1ZTsgLy8gRklYTUU6IE5vIGNvbmNlcHQgb2YgYSBmaXhlZCBidWZmZXIgYWRkcmVzcz9cbn1cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgRGFuaWVsIEMuIEJ1ZW56bGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuXG5sZXQgZXJyX25vX3ByZWQgPSBcIlUrMDAwMCBoYXMgbm8gcHJlZGVjZXNzb3JcIlxubGV0IGVycl9ub19zdWNjID0gXCJVKzEwRkZGRiBoYXMgbm8gc3VjY2Vzc29yXCJcbmxldCBlcnJfbm90X3N2IGkgPSBmb3JtYXRfaW50IFwiJVhcIiBpIF4gXCIgaXMgbm90IGFuIFVuaWNvZGUgc2NhbGFyIHZhbHVlXCJcbmxldCBlcnJfbm90X2xhdGluMSB1ID0gXCJVK1wiIF4gZm9ybWF0X2ludCBcIiUwNFhcIiB1IF4gXCIgaXMgbm90IGEgbGF0aW4xIGNoYXJhY3RlclwiXG5cbnR5cGUgdCA9IGludFxuXG5sZXQgbWluID0gMHgwMDAwXG5sZXQgbWF4ID0gMHgxMEZGRkZcbmxldCBsb19ib3VuZCA9IDB4RDdGRlxubGV0IGhpX2JvdW5kID0gMHhFMDAwXG5cbmxldCBib20gPSAweEZFRkZcbmxldCByZXAgPSAweEZGRkRcblxubGV0IHN1Y2MgdSA9XG4gIGlmIHUgPSBsb19ib3VuZCB0aGVuIGhpX2JvdW5kIGVsc2VcbiAgaWYgdSA9IG1heCB0aGVuIGludmFsaWRfYXJnIGVycl9ub19zdWNjIGVsc2VcbiAgdSArIDFcblxubGV0IHByZWQgdSA9XG4gIGlmIHUgPSBoaV9ib3VuZCB0aGVuIGxvX2JvdW5kIGVsc2VcbiAgaWYgdSA9IG1pbiB0aGVuIGludmFsaWRfYXJnIGVycl9ub19wcmVkIGVsc2VcbiAgdSAtIDFcblxubGV0IGlzX3ZhbGlkIGkgPSAobWluIDw9IGkgJiYgaSA8PSBsb19ib3VuZCkgfHwgKGhpX2JvdW5kIDw9IGkgJiYgaSA8PSBtYXgpXG5sZXQgb2ZfaW50IGkgPSBpZiBpc192YWxpZCBpIHRoZW4gaSBlbHNlIGludmFsaWRfYXJnIChlcnJfbm90X3N2IGkpXG5leHRlcm5hbCB1bnNhZmVfb2ZfaW50IDogaW50IC0+IHQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB0b19pbnQgOiB0IC0+IGludCA9IFwiJWlkZW50aXR5XCJcblxubGV0IGlzX2NoYXIgdSA9IHUgPCAyNTZcbmxldCBvZl9jaGFyIGMgPSBDaGFyLmNvZGUgY1xubGV0IHRvX2NoYXIgdSA9XG4gIGlmIHUgPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyAoZXJyX25vdF9sYXRpbjEgdSkgZWxzZVxuICBDaGFyLnVuc2FmZV9jaHIgdVxuXG5sZXQgdW5zYWZlX3RvX2NoYXIgPSBDaGFyLnVuc2FmZV9jaHJcblxubGV0IGVxdWFsIDogaW50IC0+IGludCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogaW50IC0+IGludCAtPiBpbnQgPSBTdGRsaWIuY29tcGFyZVxubGV0IGhhc2ggPSB0b19pbnRcblxuKCogVVRGIGNvZGVjcyB0b29scyAqKVxuXG50eXBlIHV0Zl9kZWNvZGUgPSBpbnRcbigqIFRoaXMgaXMgYW4gaW50IFsweERVVVVVVVVdIGRlY29tcG9zZWQgYXMgZm9sbG93czpcbiAgIC0gW0RdIGlzIGZvdXIgYml0cyBmb3IgZGVjb2RlIGluZm9ybWF0aW9uLCB0aGUgaGlnaGVzdCBiaXQgaXMgc2V0IGlmIHRoZVxuICAgICBkZWNvZGUgaXMgdmFsaWQuIFRoZSB0aHJlZSBsb3dlciBiaXRzIGluZGljYXRlIHRoZSBudW1iZXIgb2YgZWxlbWVudHNcbiAgICAgZnJvbSB0aGUgc291cmNlIHRoYXQgd2VyZSBjb25zdW1lZCBieSB0aGUgZGVjb2RlLlxuICAgLSBbVVVVVVVVXSBpcyB0aGUgZGVjb2RlZCBVbmljb2RlIGNoYXJhY3RlciBvciB0aGUgVW5pY29kZSByZXBsYWNlbWVudFxuICAgICBjaGFyYWN0ZXIgVStGRkZEIGlmIGZvciBpbnZhbGlkIGRlY29kZXMuICopXG5cbmxldCB2YWxpZF9iaXQgPSAyN1xubGV0IGRlY29kZV9iaXRzID0gMjRcblxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfaXNfdmFsaWQgZCA9IChkIGxzciB2YWxpZF9iaXQpID0gMVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfbGVuZ3RoIGQgPSAoZCBsc3IgZGVjb2RlX2JpdHMpIGxhbmQgMGIxMTFcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX3VjaGFyIGQgPSB1bnNhZmVfb2ZfaW50IChkIGxhbmQgMHhGRkZGRkYpXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZSBuIHUgPSAoKDggbG9yIG4pIGxzbCBkZWNvZGVfYml0cykgbG9yICh0b19pbnQgdSlcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2ludmFsaWQgbiA9IChuIGxzbCBkZWNvZGVfYml0cykgbG9yIHJlcFxuXG5sZXQgdXRmXzhfYnl0ZV9sZW5ndGggdSA9IG1hdGNoIHRvX2ludCB1IHdpdGhcbnwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxufCB1IHdoZW4gdSA8PSAweDAwN0YgLT4gMVxufCB1IHdoZW4gdSA8PSAweDA3RkYgLT4gMlxufCB1IHdoZW4gdSA8PSAweEZGRkYgLT4gM1xufCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPiA0XG58IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCB1dGZfMTZfYnl0ZV9sZW5ndGggdSA9IG1hdGNoIHRvX2ludCB1IHdpdGhcbnwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxufCB1IHdoZW4gdSA8PSAweEZGRkYgLT4gMlxufCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPiA0XG58IF8gLT4gYXNzZXJ0IGZhbHNlXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50NjRdOiA2NC1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50NjQgLT4gaW50ID0gXCIlaW50NjRfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2ZfZmxvYXRcIiBcImNhbWxfaW50NjRfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X3RvX2Zsb2F0XCIgXCJjYW1sX2ludDY0X3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgb2ZfaW50MzIgOiBpbnQzMiAtPiBpbnQ2NCA9IFwiJWludDY0X29mX2ludDMyXCJcbmV4dGVybmFsIHRvX2ludDMyIDogaW50NjQgLT4gaW50MzIgPSBcIiVpbnQ2NF90b19pbnQzMlwiXG5leHRlcm5hbCBvZl9uYXRpdmVpbnQgOiBuYXRpdmVpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9uYXRpdmVpbnRcIlxuZXh0ZXJuYWwgdG9fbmF0aXZlaW50IDogaW50NjQgLT4gbmF0aXZlaW50ID0gXCIlaW50NjRfdG9fbmF0aXZlaW50XCJcblxubGV0IHplcm8gPSAwTFxubGV0IG9uZSA9IDFMXG5sZXQgbWludXNfb25lID0gLTFMXG5sZXQgc3VjYyBuID0gYWRkIG4gMUxcbmxldCBwcmVkIG4gPSBzdWIgbiAxTFxubGV0IGFicyBuID0gaWYgbiA+PSAwTCB0aGVuIG4gZWxzZSBuZWcgblxubGV0IG1pbl9pbnQgPSAweDgwMDAwMDAwMDAwMDAwMDBMXG5sZXQgbWF4X2ludCA9IDB4N0ZGRkZGRkZGRkZGRkZGRkxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMUwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmcgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjQgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cblxuXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxudHlwZSB0ID0gaW50NjRcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3IgbGV4ZXJzIGdlbmVyYXRlZCBieSBjYW1sbGV4ICopXG5cbnR5cGUgcG9zaXRpb24gPSB7XG4gIHBvc19mbmFtZSA6IHN0cmluZztcbiAgcG9zX2xudW0gOiBpbnQ7XG4gIHBvc19ib2wgOiBpbnQ7XG4gIHBvc19jbnVtIDogaW50O1xufVxuXG5sZXQgZHVtbXlfcG9zID0ge1xuICBwb3NfZm5hbWUgPSBcIlwiO1xuICBwb3NfbG51bSA9IDA7XG4gIHBvc19ib2wgPSAwO1xuICBwb3NfY251bSA9IC0xO1xufVxuXG50eXBlIGxleGJ1ZiA9XG4gIHsgcmVmaWxsX2J1ZmYgOiBsZXhidWYgLT4gdW5pdDtcbiAgICBtdXRhYmxlIGxleF9idWZmZXIgOiBieXRlcztcbiAgICBtdXRhYmxlIGxleF9idWZmZXJfbGVuIDogaW50O1xuICAgIG11dGFibGUgbGV4X2Fic19wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfc3RhcnRfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2N1cnJfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2xhc3RfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2xhc3RfYWN0aW9uIDogaW50O1xuICAgIG11dGFibGUgbGV4X2VvZl9yZWFjaGVkIDogYm9vbDtcbiAgICBtdXRhYmxlIGxleF9tZW0gOiBpbnQgYXJyYXk7XG4gICAgbXV0YWJsZSBsZXhfc3RhcnRfcCA6IHBvc2l0aW9uO1xuICAgIG11dGFibGUgbGV4X2N1cnJfcCA6IHBvc2l0aW9uO1xuICB9XG5cbnR5cGUgbGV4X3RhYmxlcyA9XG4gIHsgbGV4X2Jhc2U6IHN0cmluZztcbiAgICBsZXhfYmFja3Ryazogc3RyaW5nO1xuICAgIGxleF9kZWZhdWx0OiBzdHJpbmc7XG4gICAgbGV4X3RyYW5zOiBzdHJpbmc7XG4gICAgbGV4X2NoZWNrOiBzdHJpbmc7XG4gICAgbGV4X2Jhc2VfY29kZSA6IHN0cmluZztcbiAgICBsZXhfYmFja3Rya19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9kZWZhdWx0X2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X3RyYW5zX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2NoZWNrX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2NvZGU6IHN0cmluZzt9XG5cbmV4dGVybmFsIGNfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludCA9IFwiY2FtbF9sZXhfZW5naW5lXCJcbmV4dGVybmFsIGNfbmV3X2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9uZXdfbGV4X2VuZ2luZVwiXG5cbmxldCBlbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gIGxldCByZXN1bHQgPSBjX2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gIGlmIHJlc3VsdCA+PSAwICYmIGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3BvcyB0aGVuIGJlZ2luXG4gICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gIGVuZDtcbiAgcmVzdWx0XG5cblxubGV0IG5ld19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gIGxldCByZXN1bHQgPSBjX25ld19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICBpZiByZXN1bHQgPj0gMCAmJiBidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3MgdGhlbiBiZWdpblxuICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICBlbmQ7XG4gIHJlc3VsdFxuXG5sZXQgbGV4X3JlZmlsbCByZWFkX2Z1biBhdXhfYnVmZmVyIGxleGJ1ZiA9XG4gIGxldCByZWFkID1cbiAgICByZWFkX2Z1biBhdXhfYnVmZmVyIChCeXRlcy5sZW5ndGggYXV4X2J1ZmZlcikgaW5cbiAgbGV0IG4gPVxuICAgIGlmIHJlYWQgPiAwXG4gICAgdGhlbiByZWFkXG4gICAgZWxzZSAobGV4YnVmLmxleF9lb2ZfcmVhY2hlZCA8LSB0cnVlOyAwKSBpblxuICAoKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBidWZmZXI6XG4gICAgICAgIDwtLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLT5cbiAgICAgICAgfCAganVuayB8ICAgICAgdmFsaWQgZGF0YSAgICAgfCAgIGp1bmsgICAgfFxuICAgICAgICBeICAgICAgIF4gICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICBeXG4gICAgICAgIDAgICAgc3RhcnRfcG9zICAgICAgICAgICAgIGJ1ZmZlcl9lbmQgICAgQnl0ZXMubGVuZ3RoIGJ1ZmZlclxuICAqKVxuICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gKyBuID4gQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyIHRoZW4gYmVnaW5cbiAgICAoKiBUaGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciAqKVxuICAgIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgblxuICAgICAgIDw9IEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlclxuICAgIHRoZW4gYmVnaW5cbiAgICAgICgqIEJ1dCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgaWYgd2UgcmVjbGFpbSB0aGUganVuayBhdCB0aGUgYmVnaW5uaW5nXG4gICAgICAgICBvZiB0aGUgYnVmZmVyICopXG4gICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zXG4gICAgICAgICAgICAgICAgICBsZXhidWYubGV4X2J1ZmZlciAwXG4gICAgICAgICAgICAgICAgICAobGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MpXG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICgqIFdlIG11c3QgZ3JvdyB0aGUgYnVmZmVyLiAgRG91YmxpbmcgaXRzIHNpemUgd2lsbCBwcm92aWRlIGVub3VnaFxuICAgICAgICAgc3BhY2Ugc2luY2UgbiA8PSBTdHJpbmcubGVuZ3RoIGF1eF9idWZmZXIgPD0gU3RyaW5nLmxlbmd0aCBidWZmZXIuXG4gICAgICAgICBXYXRjaCBvdXQgZm9yIHN0cmluZyBsZW5ndGggb3ZlcmZsb3csIHRob3VnaC4gKilcbiAgICAgIGxldCBuZXdsZW4gPVxuICAgICAgICBJbnQubWluICgyICogQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyKSBTeXMubWF4X3N0cmluZ19sZW5ndGggaW5cbiAgICAgIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgbiA+IG5ld2xlblxuICAgICAgdGhlbiBmYWlsd2l0aCBcIkxleGluZy5sZXhfcmVmaWxsOiBjYW5ub3QgZ3JvdyBidWZmZXJcIjtcbiAgICAgIGxldCBuZXdidWYgPSBCeXRlcy5jcmVhdGUgbmV3bGVuIGluXG4gICAgICAoKiBDb3B5IHRoZSB2YWxpZCBkYXRhIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5ldyBidWZmZXIgKilcbiAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3NcbiAgICAgICAgICAgICAgICAgIG5ld2J1ZiAwXG4gICAgICAgICAgICAgICAgICAobGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MpO1xuICAgICAgbGV4YnVmLmxleF9idWZmZXIgPC0gbmV3YnVmXG4gICAgZW5kO1xuICAgICgqIFJlYWxsb2NhdGlvbiBvciBub3QsIHdlIGhhdmUgc2hpZnRlZCB0aGUgZGF0YSBsZWZ0IGJ5XG4gICAgICAgc3RhcnRfcG9zIGNoYXJhY3RlcnM7IHVwZGF0ZSB0aGUgcG9zaXRpb25zICopXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGxleGJ1Zi5sZXhfYWJzX3BvcyA8LSBsZXhidWYubGV4X2Fic19wb3MgKyBzO1xuICAgIGxleGJ1Zi5sZXhfY3Vycl9wb3MgPC0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIHM7XG4gICAgbGV4YnVmLmxleF9zdGFydF9wb3MgPC0gMDtcbiAgICBsZXhidWYubGV4X2xhc3RfcG9zIDwtIGxleGJ1Zi5sZXhfbGFzdF9wb3MgLSBzO1xuICAgIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiA8LSBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBzIDtcbiAgICBsZXQgdCA9IGxleGJ1Zi5sZXhfbWVtIGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCB0LTEgZG9cbiAgICAgIGxldCB2ID0gdC4oaSkgaW5cbiAgICAgIGlmIHYgPj0gMCB0aGVuXG4gICAgICAgIHQuKGkpIDwtIHYtc1xuICAgIGRvbmVcbiAgZW5kO1xuICAoKiBUaGVyZSBpcyBub3cgZW5vdWdoIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciAqKVxuICBCeXRlcy5ibGl0IGF1eF9idWZmZXIgMCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X2J1ZmZlcl9sZW4gbjtcbiAgbGV4YnVmLmxleF9idWZmZXJfbGVuIDwtIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiArIG5cblxubGV0IHplcm9fcG9zID0ge1xuICBwb3NfZm5hbWUgPSBcIlwiO1xuICBwb3NfbG51bSA9IDE7XG4gIHBvc19ib2wgPSAwO1xuICBwb3NfY251bSA9IDA7XG59XG5cbmxldCBmcm9tX2Z1bmN0aW9uID8od2l0aF9wb3NpdGlvbnMgPSB0cnVlKSBmID1cbiAgeyByZWZpbGxfYnVmZiA9IGxleF9yZWZpbGwgZiAoQnl0ZXMuY3JlYXRlIDUxMik7XG4gICAgbGV4X2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAxMDI0O1xuICAgIGxleF9idWZmZXJfbGVuID0gMDtcbiAgICBsZXhfYWJzX3BvcyA9IDA7XG4gICAgbGV4X3N0YXJ0X3BvcyA9IDA7XG4gICAgbGV4X2N1cnJfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9wb3MgPSAwO1xuICAgIGxleF9sYXN0X2FjdGlvbiA9IDA7XG4gICAgbGV4X21lbSA9IFt8fF07XG4gICAgbGV4X2VvZl9yZWFjaGVkID0gZmFsc2U7XG4gICAgbGV4X3N0YXJ0X3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICAgIGxleF9jdXJyX3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICB9XG5cbmxldCBmcm9tX2NoYW5uZWwgP3dpdGhfcG9zaXRpb25zIGljID1cbiAgZnJvbV9mdW5jdGlvbiA/d2l0aF9wb3NpdGlvbnMgKGZ1biBidWYgbiAtPiBpbnB1dCBpYyBidWYgMCBuKVxuXG5sZXQgZnJvbV9zdHJpbmcgPyh3aXRoX3Bvc2l0aW9ucyA9IHRydWUpIHMgPVxuICB7IHJlZmlsbF9idWZmID0gKGZ1biBsZXhidWYgLT4gbGV4YnVmLmxleF9lb2ZfcmVhY2hlZCA8LSB0cnVlKTtcbiAgICBsZXhfYnVmZmVyID0gQnl0ZXMub2Zfc3RyaW5nIHM7ICgqIGhhdmUgdG8gbWFrZSBhIGNvcHkgZm9yIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdW5zYWZlLXN0cmluZyBtb2RlICopXG4gICAgbGV4X2J1ZmZlcl9sZW4gPSBTdHJpbmcubGVuZ3RoIHM7XG4gICAgbGV4X2Fic19wb3MgPSAwO1xuICAgIGxleF9zdGFydF9wb3MgPSAwO1xuICAgIGxleF9jdXJyX3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9hY3Rpb24gPSAwO1xuICAgIGxleF9tZW0gPSBbfHxdO1xuICAgIGxleF9lb2ZfcmVhY2hlZCA9IHRydWU7XG4gICAgbGV4X3N0YXJ0X3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICAgIGxleF9jdXJyX3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICB9XG5cbmxldCBzZXRfcG9zaXRpb24gbGV4YnVmIHBvc2l0aW9uID1cbiAgbGV4YnVmLmxleF9jdXJyX3AgIDwtIHtwb3NpdGlvbiB3aXRoIHBvc19mbmFtZSA9IGxleGJ1Zi5sZXhfY3Vycl9wLnBvc19mbmFtZX07XG4gIGxleGJ1Zi5sZXhfYWJzX3BvcyA8LSBwb3NpdGlvbi5wb3NfY251bVxuXG5sZXQgc2V0X2ZpbGVuYW1lIGxleGJ1ZiBmbmFtZSA9XG4gIGxleGJ1Zi5sZXhfY3Vycl9wIDwtIHtsZXhidWYubGV4X2N1cnJfcCB3aXRoIHBvc19mbmFtZSA9IGZuYW1lfVxuXG5sZXQgd2l0aF9wb3NpdGlvbnMgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zXG5cbmxldCBsZXhlbWUgbGV4YnVmID1cbiAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICBCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlblxuXG5sZXQgc3ViX2xleGVtZSBsZXhidWYgaTEgaTIgPVxuICBsZXQgbGVuID0gaTItaTEgaW5cbiAgQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBpMSBsZW5cblxubGV0IHN1Yl9sZXhlbWVfb3B0IGxleGJ1ZiBpMSBpMiA9XG4gIGlmIGkxID49IDAgdGhlbiBiZWdpblxuICAgIGxldCBsZW4gPSBpMi1pMSBpblxuICAgIFNvbWUgKEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgaTEgbGVuKVxuICBlbmQgZWxzZSBiZWdpblxuICAgIE5vbmVcbiAgZW5kXG5cbmxldCBzdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIGkgPSBCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgaVxuXG5sZXQgc3ViX2xleGVtZV9jaGFyX29wdCBsZXhidWYgaSA9XG4gIGlmIGkgPj0gMCB0aGVuXG4gICAgU29tZSAoQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIGkpXG4gIGVsc2VcbiAgICBOb25lXG5cblxubGV0IGxleGVtZV9jaGFyIGxleGJ1ZiBpID1cbiAgQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIChsZXhidWYubGV4X3N0YXJ0X3BvcyArIGkpXG5cbmxldCBsZXhlbWVfc3RhcnQgbGV4YnVmID0gbGV4YnVmLmxleF9zdGFydF9wLnBvc19jbnVtXG5sZXQgbGV4ZW1lX2VuZCBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcC5wb3NfY251bVxuXG5sZXQgbGV4ZW1lX3N0YXJ0X3AgbGV4YnVmID0gbGV4YnVmLmxleF9zdGFydF9wXG5sZXQgbGV4ZW1lX2VuZF9wIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wXG5cbmxldCBuZXdfbGluZSBsZXhidWYgPVxuICBsZXQgbGNwID0gbGV4YnVmLmxleF9jdXJyX3AgaW5cbiAgaWYgbGNwICE9IGR1bW15X3BvcyB0aGVuXG4gICAgbGV4YnVmLmxleF9jdXJyX3AgPC1cbiAgICAgIHsgbGNwIHdpdGhcbiAgICAgICAgcG9zX2xudW0gPSBsY3AucG9zX2xudW0gKyAxO1xuICAgICAgICBwb3NfYm9sID0gbGNwLnBvc19jbnVtO1xuICAgICAgfVxuXG5cblxuKCogRGlzY2FyZCBkYXRhIGxlZnQgaW4gbGV4ZXIgYnVmZmVyLiAqKVxuXG5sZXQgZmx1c2hfaW5wdXQgbGIgPVxuICBsYi5sZXhfY3Vycl9wb3MgPC0gMDtcbiAgbGIubGV4X2Fic19wb3MgPC0gMDtcbiAgbGV0IGxjcCA9IGxiLmxleF9jdXJyX3AgaW5cbiAgaWYgbGNwICE9IGR1bW15X3BvcyB0aGVuXG4gICAgbGIubGV4X2N1cnJfcCA8LSB7emVyb19wb3Mgd2l0aCBwb3NfZm5hbWUgPSBsY3AucG9zX2ZuYW1lfTtcbiAgbGIubGV4X2J1ZmZlcl9sZW4gPC0gMDtcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICBCZW5vaXQgVmF1Z29uLCBFTlNUQSAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3NcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgKCogVG9vbHMgdG8gbWFuaXB1bGF0ZSBzY2FubmluZyBzZXQgb2YgY2hhcnMgKHNlZSAlWy4uLl0pICopXG5cbnR5cGUgbXV0YWJsZV9jaGFyX3NldCA9IGJ5dGVzXG5cbigqIENyZWF0ZSBhIGZyZXNoLCBlbXB0eSwgbXV0YWJsZSBjaGFyIHNldC4gKilcbmxldCBjcmVhdGVfY2hhcl9zZXQgKCkgPSBCeXRlcy5tYWtlIDMyICdcXDAwMCdcblxuKCogQWRkIGEgY2hhciBpbiBhIG11dGFibGUgY2hhciBzZXQuICopXG5sZXQgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgPVxuICBsZXQgaW5kID0gaW50X29mX2NoYXIgYyBpblxuICBsZXQgc3RyX2luZCA9IGluZCBsc3IgMyBhbmQgbWFzayA9IDEgbHNsIChpbmQgbGFuZCAwYjExMSkgaW5cbiAgQnl0ZXMuc2V0IGNoYXJfc2V0IHN0cl9pbmRcbiAgICAoY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIChCeXRlcy5nZXQgY2hhcl9zZXQgc3RyX2luZCkgbG9yIG1hc2spKVxuXG5sZXQgZnJlZXplX2NoYXJfc2V0IGNoYXJfc2V0ID1cbiAgQnl0ZXMudG9fc3RyaW5nIGNoYXJfc2V0XG5cbigqIENvbXB1dGUgdGhlIGNvbXBsZW1lbnQgb2YgYSBjaGFyIHNldC4gKilcbmxldCByZXZfY2hhcl9zZXQgY2hhcl9zZXQgPVxuICBsZXQgY2hhcl9zZXQnID0gY3JlYXRlX2NoYXJfc2V0ICgpIGluXG4gIGZvciBpID0gMCB0byAzMSBkb1xuICAgIEJ5dGVzLnNldCBjaGFyX3NldCcgaVxuICAgICAgKGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBpKSBseG9yIDB4RkYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBjaGFyX3NldCdcblxuKCogUmV0dXJuIHRydWUgaWYgYSBgYycgaXMgaW4gYGNoYXJfc2V0Jy4gKilcbmxldCBpc19pbl9jaGFyX3NldCBjaGFyX3NldCBjID1cbiAgbGV0IGluZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgbGV0IHN0cl9pbmQgPSBpbmQgbHNyIDMgYW5kIG1hc2sgPSAxIGxzbCAoaW5kIGxhbmQgMGIxMTEpIGluXG4gIChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBzdHJfaW5kKSBsYW5kIG1hc2spIDw+IDBcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgqIElnbm9yZWQgcGFyYW0gY29udmVyc2lvbiAqKVxuXG4oKiBHQURUIHVzZWQgdG8gYWJzdHJhY3QgYW4gZXhpc3RlbnRpYWwgdHlwZSBwYXJhbWV0ZXIuICopXG4oKiBTZWUgcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0LiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYiA9IFBhcmFtX2Zvcm1hdF9FQkIgOlxuICAgICgneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYlxuXG4oKiBDb21wdXRlIGEgcGFkZGluZyBhc3NvY2lhdGVkIHRvIGEgcGFkX29wdGlvbiAoc2VlIFwiJV80MmRcIikuICopXG5sZXQgcGFkX29mX3BhZF9vcHQgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcGFkZGluZ1xuICB8IFNvbWUgd2lkdGggLT4gTGl0X3BhZGRpbmcgKFJpZ2h0LCB3aWR0aClcblxuKCogQ29tcHV0ZSBhIHByZWNpc2lvbiBhc3NvY2lhdGVkIHRvIGEgcHJlY19vcHRpb24gKHNlZSBcIiVfLjQyZlwiKS4gKilcbmxldCBwcmVjX29mX3ByZWNfb3B0IHByZWNfb3B0ID0gbWF0Y2ggcHJlY19vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcHJlY2lzaW9uXG4gIHwgU29tZSBuZGVjIC0+IExpdF9wcmVjaXNpb24gbmRlY1xuXG4oKiBUdXJuIGFuIGlnbm9yZWQgcGFyYW0gaW50byBpdHMgZXF1aXZhbGVudCBub3QtaWdub3JlZCBmb3JtYXQgbm9kZS4gKilcbigqIFVzZWQgZm9yIGZvcm1hdCBwcmV0dHktcHJpbnRpbmcgYW5kIFNjYW5mLiAqKVxubGV0IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPiAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFyYW1fZm9ybWF0X2ViYiA9XG5mdW4gaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENoYXIgZm10KVxuICB8IElnbm9yZWRfY2FtbF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2FtbF9jaGFyIGZtdClcbiAgfCBJZ25vcmVkX3N0cmluZyBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENhbWxfc3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChJbnQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQzMiAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEludDMyIChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfbmF0aXZlaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoTmF0aXZlaW50IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfaW50NjQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChJbnQ2NCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2Zsb2F0IChwYWRfb3B0LCBwcmVjX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoRmxvYXQgKChGbG9hdF9mbGFnXywgRmxvYXRfZiksXG4gICAgICAgICAgICAgIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIHByZWNfb2ZfcHJlY19vcHQgcHJlY19vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9ib29sIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChCb29sIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHkpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIGZtdCkpXG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCBmbXQpKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoUmVhZGVyIGZtdClcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10KSlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdCkpXG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdClcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVHlwZXMgKilcblxudHlwZSAoJ2IsICdjKSBhY2NfZm9ybWF0dGluZ19nZW4gPVxuICB8IEFjY19vcGVuX3RhZyBvZiAoJ2IsICdjKSBhY2NcbiAgfCBBY2Nfb3Blbl9ib3ggb2YgKCdiLCAnYykgYWNjXG5cbigqIFJldmVyc2VkIGxpc3Qgb2YgcHJpbnRpbmcgYXRvbXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgcHJpbnRmIGFyZ3VtZW50cy4gKilcbmFuZCAoJ2IsICdjKSBhY2MgPVxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCBvZiAoJ2IsICdjKSBhY2MgKiBmb3JtYXR0aW5nX2xpdFxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIG9mICgnYiwgJ2MpIGFjYyAqICgnYiwgJ2MpIGFjY19mb3JtYXR0aW5nX2dlblxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZyAgICAgKCogTGl0ZXJhbCBzdHJpbmcgKilcbiAgfCBBY2NfY2hhcl9saXRlcmFsICAgb2YgKCdiLCAnYykgYWNjICogY2hhciAgICAgICAoKiBMaXRlcmFsIGNoYXIgKilcbiAgfCBBY2NfZGF0YV9zdHJpbmcgICAgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nICAgICAoKiBHZW5lcmF0ZWQgc3RyaW5nICopXG4gIHwgQWNjX2RhdGFfY2hhciAgICAgIG9mICgnYiwgJ2MpIGFjYyAqIGNoYXIgICAgICAgKCogR2VuZXJhdGVkIGNoYXIgKilcbiAgfCBBY2NfZGVsYXkgICAgICAgICAgb2YgKCdiLCAnYykgYWNjICogKCdiIC0+ICdjKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRGVsYXllZCBwcmludGluZyAoJWEsICV0KSAqKVxuICB8IEFjY19mbHVzaCAgICAgICAgICBvZiAoJ2IsICdjKSBhY2MgICAgICAgICAgICAgICgqIEZsdXNoICopXG4gIHwgQWNjX2ludmFsaWRfYXJnICAgIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZ1xuICAgICAgKCogUmFpc2UgSW52YWxpZF9hcmd1bWVudCBtc2cgKilcbiAgfCBFbmRfb2ZfYWNjXG5cbigqIExpc3Qgb2YgaGV0ZXJvZ2VuZW91cyB2YWx1ZXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgc2NhbmYgY2FsbGJhY2sgYXJndW1lbnRzLiAqKVxudHlwZSAoJ2EsICdiKSBoZXRlcl9saXN0ID1cbiAgfCBDb25zIDogJ2MgKiAoJ2EsICdiKSBoZXRlcl9saXN0IC0+ICgnYyAtPiAnYSwgJ2IpIGhldGVyX2xpc3RcbiAgfCBOaWwgOiAoJ2IsICdiKSBoZXRlcl9saXN0XG5cbigqIEV4aXN0ZW50aWFsIEJsYWNrIEJveGVzLiAqKVxuKCogVXNlZCB0byBhYnN0cmFjdCBzb21lIGV4aXN0ZW50aWFsIHR5cGUgcGFyYW1ldGVycy4gKilcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZyBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkZGluZyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZGRpbmdfZm10dHlfZWJiID0gUGFkZGluZ19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRkaW5nX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkcHJlYyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZHByZWNfZm10dHlfZWJiID0gUGFkcHJlY19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAneikgcHJlY2lzaW9uICogKCd6LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRwcmVjX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHBhZGRpbmdfZm10X2ViYiA9IFBhZGRpbmdfZm10X0VCQiA6XG4gICAgIChfLCAneCAtPiAnYSkgcGFkZGluZyAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcGFkZGluZ19mbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHByZWNpc2lvbiBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHByZWNpc2lvbl9mbXRfZWJiID0gUHJlY2lzaW9uX2ZtdF9FQkIgOlxuICAgICAoXywgJ3ggLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcHJlY2lzaW9uX2ZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZywgYSBwcmVjaXNpb24gYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3BhZHByZWNfZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiID0gUGFkcHJlY19mbXRfRUJCIDpcbiAgICAgKCd4LCAneSkgcGFkZGluZyAqICgneSwgJ3AgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiXG5cbigqIEFic3RyYWN0IHRoZSAnYSBhbmQgJ2QgcGFyYW1ldGVycyBvZiBhbiBmbXQuICopXG4oKiBPdXRwdXQgdHlwZSBvZiB0aGUgZm9ybWF0IHBhcnNpbmcgZnVuY3Rpb24uICopXG50eXBlICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYiA9IEZtdF9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYW4gZm10dHkgYW5kIGFuIGZtdC4gKilcbigqIFNlZSB0aGUgdHlwZV9mb3JtYXRfZ2VuIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10X2ZtdHR5X2ViYiA9IEZtdF9mbXR0eV9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgZm10ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhbiBmbXR0eSBhbmQgYW4gZm10LiAqKVxuKCogU2VlIHRoZSB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmIgPSBGbXR0eV9mbXRfRUJCIDpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGZtdHR5ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmIgLT5cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmJcblxuKCogQWJzdHJhY3QgYWxsIGZtdHR5IHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBmb3JtYXQgdHlwZXMuICopXG50eXBlIGZtdHR5X2ViYiA9IEZtdHR5X0VCQiA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPiBmbXR0eV9lYmJcblxuKCogQWJzdHJhY3QgYWxsIHBhZGRpbmcgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIHBhZGRpbmdzLiAqKVxudHlwZSBwYWRkaW5nX2ViYiA9IFBhZGRpbmdfRUJCIDogKCdhLCAnYikgcGFkZGluZyAtPiBwYWRkaW5nX2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgcHJlY2lzaW9uIHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBwcmVjaXNpb25zLiAqKVxudHlwZSBwcmVjaXNpb25fZWJiID0gUHJlY2lzaW9uX0VCQiA6ICgnYSwgJ2IpIHByZWNpc2lvbiAtPiBwcmVjaXNpb25fZWJiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQ29uc3RhbnRzICopXG5cbigqIERlZmF1bHQgcHJlY2lzaW9uIGZvciBmbG9hdCBwcmludGluZy4gKilcbmxldCBkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udiA9XG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cgfCBGbG9hdF9oIHwgRmxvYXRfSFxuICB8IEZsb2F0X0NGIC0+IC02XG4gICgqIEZvciAlaCAlSCBhbmQgJSNGIGZvcm1hdHMsIGEgbmVnYXRpdmUgcHJlY2lzaW9uIG1lYW5zIFwiYXMgbWFueSBkaWdpdHMgYXNcbiAgICAgbmVjZXNzYXJ5XCIuICBGb3IgdGhlIG90aGVyIEZQIGZvcm1hdHMsIHdlIHRha2UgdGhlIGFic29sdXRlIHZhbHVlXG4gICAgIG9mIHRoZSBwcmVjaXNpb24sIGhlbmNlIDYgZGlnaXRzIGJ5IGRlZmF1bHQuICopXG4gIHwgRmxvYXRfRiAtPiAxMlxuICAoKiBEZWZhdWx0IHByZWNpc2lvbiBmb3IgT0NhbWwgZmxvYXQgcHJpbnRpbmcgKCVGKS4gKilcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFeHRlcm5hbHMgKilcblxuZXh0ZXJuYWwgZm9ybWF0X2Zsb2F0OiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50OiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQzMjogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZ1xuICA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxuZXh0ZXJuYWwgZm9ybWF0X25hdGl2ZWludDogc3RyaW5nIC0+IG5hdGl2ZWludCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfbmF0aXZlaW50X2Zvcm1hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50NjQ6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmV4dGVybmFsIGhleHN0cmluZ19vZl9mbG9hdDogZmxvYXQgLT4gaW50IC0+IGNoYXIgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdFwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAoKiBUb29scyB0byBwcmV0dHktcHJpbnQgZm9ybWF0cyAqKVxuXG4oKiBUeXBlIG9mIGV4dGVuc2libGUgY2hhcmFjdGVyIGJ1ZmZlcnMuICopXG50eXBlIGJ1ZmZlciA9IHtcbiAgbXV0YWJsZSBpbmQgOiBpbnQ7XG4gIG11dGFibGUgYnl0ZXMgOiBieXRlcztcbn1cblxuKCogQ3JlYXRlIGEgZnJlc2ggYnVmZmVyLiAqKVxubGV0IGJ1ZmZlcl9jcmVhdGUgaW5pdF9zaXplID0geyBpbmQgPSAwOyBieXRlcyA9IEJ5dGVzLmNyZWF0ZSBpbml0X3NpemUgfVxuXG4oKiBDaGVjayBzaXplIG9mIHRoZSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgbmVlZGVkLiAqKVxubGV0IGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiBvdmVyaGVhZCA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmLmJ5dGVzIGluXG4gIGxldCBtaW5fbGVuID0gYnVmLmluZCArIG92ZXJoZWFkIGluXG4gIGlmIG1pbl9sZW4gPiBsZW4gdGhlbiAoXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWF4IChsZW4gKiAyKSBtaW5fbGVuIGluXG4gICAgbGV0IG5ld19zdHIgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmLmJ5dGVzIDAgbmV3X3N0ciAwIGxlbjtcbiAgICBidWYuYnl0ZXMgPC0gbmV3X3N0cjtcbiAgKVxuXG4oKiBBZGQgdGhlIGNoYXJhY3RlciBgYycgdG8gdGhlIGJ1ZmZlciBgYnVmJy4gKilcbmxldCBidWZmZXJfYWRkX2NoYXIgYnVmIGMgPVxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgMTtcbiAgQnl0ZXMuc2V0IGJ1Zi5ieXRlcyBidWYuaW5kIGM7XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIDFcblxuKCogQWRkIHRoZSBzdHJpbmcgYHMnIHRvIHRoZSBidWZmZXIgYGJ1ZicuICopXG5sZXQgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHMgPVxuICBsZXQgc3RyX2xlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgc3RyX2xlbjtcbiAgU3RyaW5nLmJsaXQgcyAwIGJ1Zi5ieXRlcyBidWYuaW5kIHN0cl9sZW47XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIHN0cl9sZW5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIuICopXG5sZXQgYnVmZmVyX2NvbnRlbnRzIGJ1ZiA9XG4gIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmLmJ5dGVzIDAgYnVmLmluZFxuXG4oKioqKVxuXG4oKiBDb252ZXJ0IGFuIGludGVnZXIgY29udmVyc2lvbiB0byBjaGFyLiAqKVxubGV0IGNoYXJfb2ZfaWNvbnYgaWNvbnYgPSBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X2QgfCBJbnRfcGQgfCBJbnRfc2QgfCBJbnRfQ2QgLT4gJ2QnIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2lcbiAgfCBJbnRfQ2kgLT4gJ2knIHwgSW50X3ggfCBJbnRfQ3ggLT4gJ3gnIHwgSW50X1ggfCBJbnRfQ1ggLT4gJ1gnIHwgSW50X29cbiAgfCBJbnRfQ28gLT4gJ28nIHwgSW50X3UgfCBJbnRfQ3UgLT4gJ3UnXG5cbigqIENvbnZlcnQgYSBmbG9hdCBjb252ZXJzaW9uIHRvIGNoYXIuICopXG4oKiBgY0YnIHdpbGwgYmUgJ0YnIGZvciBkaXNwbGF5aW5nIGZvcm1hdCBhbmQgJ2cnIHRvIGNhbGwgbGliYyBwcmludGYgKilcbmxldCBjaGFyX29mX2Zjb252ID8oY0Y9J0YnKSBmY29udiA9IG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiAtPiAnZicgfCBGbG9hdF9lIC0+ICdlJ1xuICB8IEZsb2F0X0UgLT4gJ0UnIHwgRmxvYXRfZyAtPiAnZydcbiAgfCBGbG9hdF9HIC0+ICdHJyB8IEZsb2F0X0YgLT4gY0ZcbiAgfCBGbG9hdF9oIC0+ICdoJyB8IEZsb2F0X0ggLT4gJ0gnXG4gIHwgRmxvYXRfQ0YgLT4gJ0YnXG5cblxuKCogQ29udmVydCBhIHNjYW5uaW5nIGNvdW50ZXIgdG8gY2hhci4gKilcbmxldCBjaGFyX29mX2NvdW50ZXIgY291bnRlciA9IG1hdGNoIGNvdW50ZXIgd2l0aFxuICB8IExpbmVfY291bnRlciAgLT4gJ2wnXG4gIHwgQ2hhcl9jb3VudGVyICAtPiAnbidcbiAgfCBUb2tlbl9jb3VudGVyIC0+ICdOJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIGNoYXJfc2V0IGluIGEgYnVmZmVyIHdpdGggdGhlIE9DYW1sIGZvcm1hdCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldCA9XG4gIGxldCByZWMgcHJpbnRfc3RhcnQgc2V0ID1cbiAgICBsZXQgaXNfYWxvbmUgYyA9XG4gICAgICBsZXQgYmVmb3JlLCBhZnRlciA9IENoYXIuKGNociAoY29kZSBjIC0gMSksIGNociAoY29kZSBjICsgMSkpIGluXG4gICAgICBpc19pbl9jaGFyX3NldCBzZXQgY1xuICAgICAgJiYgbm90IChpc19pbl9jaGFyX3NldCBzZXQgYmVmb3JlICYmIGlzX2luX2NoYXJfc2V0IHNldCBhZnRlcikgaW5cbiAgICBpZiBpc19hbG9uZSAnXScgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICddJztcbiAgICBwcmludF9vdXQgc2V0IDE7XG4gICAgaWYgaXNfYWxvbmUgJy0nIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLSc7XG4gIGFuZCBwcmludF9vdXQgc2V0IGkgPVxuICAgIGlmIGkgPCAyNTYgdGhlblxuICAgICAgaWYgaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBpKSB0aGVuIHByaW50X2ZpcnN0IHNldCBpXG4gICAgICBlbHNlIHByaW50X291dCBzZXQgKGkgKyAxKVxuICBhbmQgcHJpbnRfZmlyc3Qgc2V0IGkgPVxuICAgIG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJ1xcMjU1JyAtPiBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgfCAnXScgfCAnLScgLT4gcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgIHwgXyAtPiBwcmludF9zZWNvbmQgc2V0IChpICsgMSk7XG4gIGFuZCBwcmludF9zZWNvbmQgc2V0IGkgPVxuICAgIGlmIGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaSkgdGhlblxuICAgICAgbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgICB8ICdcXDI1NScgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgMjU0O1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgICB8ICddJyB8ICctJyB3aGVuIG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCAoaSArIDEpKSkgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgICAgcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgICAgfCBfIHdoZW4gbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IChpICsgMSkpKSAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiBpO1xuICAgICAgICBwcmludF9vdXQgc2V0IChpICsgMik7XG4gICAgICB8IF8gLT5cbiAgICAgICAgcHJpbnRfaW4gc2V0IChpIC0gMSkgKGkgKyAyKTtcbiAgICBlbHNlIChcbiAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgKVxuICBhbmQgcHJpbnRfaW4gc2V0IGkgaiA9XG4gICAgaWYgaiA9IDI1NiB8fCBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaikpIHRoZW4gKFxuICAgICAgcHJpbnRfY2hhciBidWYgaTtcbiAgICAgIHByaW50X2NoYXIgYnVmIChpbnRfb2ZfY2hhciAnLScpO1xuICAgICAgcHJpbnRfY2hhciBidWYgKGogLSAxKTtcbiAgICAgIGlmIGogPCAyNTYgdGhlbiBwcmludF9vdXQgc2V0IChqICsgMSk7XG4gICAgKSBlbHNlXG4gICAgICBwcmludF9pbiBzZXQgaSAoaiArIDEpO1xuICBhbmQgcHJpbnRfY2hhciBidWYgaSA9IG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJyUnIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgICB8ICdAJyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQCc7XG4gICAgfCBjICAgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBpblxuICBidWZmZXJfYWRkX2NoYXIgYnVmICdbJztcbiAgcHJpbnRfc3RhcnQgKFxuICAgIGlmIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0ICdcXDAwMCdcbiAgICB0aGVuICggYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXic7IHJldl9jaGFyX3NldCBjaGFyX3NldCApXG4gICAgZWxzZSBjaGFyX3NldFxuICApO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmICddJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIHBhZHR5IGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcGFkdHkgYnVmIHBhZHR5ID0gbWF0Y2ggcGFkdHkgd2l0aFxuICB8IExlZnQgIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJy0nXG4gIHwgUmlnaHQgLT4gKClcbiAgfCBaZXJvcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcwJ1xuXG4oKiBQcmludCB0aGUgJ18nIG9mIGFuIGlnbm9yZWQgZmxhZyBpZiBuZWVkZWQuICopXG5sZXQgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWcgPVxuICBpZiBpZ25fZmxhZyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ18nXG5cbigqKiopXG5cbmxldCBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHdpZHRoIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyB3aWR0aClcblxuKCoqKilcblxuKCogUHJpbnQgcGFkZGluZyBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBmb3JtYXQtbGlrZSBzeW50YXguICopXG5sZXQgYnByaW50X3BhZGRpbmcgOiB0eXBlIGEgYiAuIGJ1ZmZlciAtPiAoYSwgYikgcGFkZGluZyAtPiB1bml0ID1cbmZ1biBidWYgcGFkIC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAtPiAoKVxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgbikgLT5cbiAgICBicHJpbnRfcGFkdHkgYnVmIHBhZHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSAtPlxuICAgIGJwcmludF9wYWR0eSBidWYgcGFkdHk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKidcblxuKCogUHJpbnQgcHJlY2lzaW9uIGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcHJlY2lzaW9uIDogdHlwZSBhIGIgLiBidWZmZXIgLT4gKGEsIGIpIHByZWNpc2lvbiAtPiB1bml0ID1cbiAgZnVuIGJ1ZiBwcmVjIC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAtPiAoKVxuICB8IExpdF9wcmVjaXNpb24gbiAtPlxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy4nO1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiLipcIlxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgb3IgJyMnIGFzc29jaWF0ZWQgdG8gYW4gaW50IGNvbnZlcnNpb24uICopXG5sZXQgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252ID0gbWF0Y2ggaWNvbnYgd2l0aFxuICB8IEludF9wZCB8IEludF9waSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEludF9zZCB8IEludF9zaSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEludF9DeCB8IEludF9DWCB8IEludF9DbyB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnIydcbiAgfCBJbnRfZCB8IEludF9pIHwgSW50X3ggfCBJbnRfWCB8IEludF9vIHwgSW50X3UgLT4gKClcblxuKCogUHJpbnQgYW4gY29tcGxldGUgaW50IGZvcm1hdCBpbiBhIGJ1ZmZlciAoZXg6IFwiJTMuKmRcIikuICopXG5sZXQgYnByaW50X2ludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjID1cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gIGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnY7XG4gIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7XG4gIGJwcmludF9wcmVjaXNpb24gYnVmIHByZWM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpXG5cbigqIFByaW50IGEgY29tcGxldGUgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjIGMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2ljb252IGljb252KVxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgYW5kL29yICcjJyBhc3NvY2lhdGVkIHRvIGEgZmxvYXQgY29udmVyc2lvbi4gKilcbmxldCBicHJpbnRfZmNvbnZfZmxhZyBidWYgZmNvbnYgPVxuICBiZWdpbiBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ZsYWdfcCAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEZsb2F0X2ZsYWdfcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEZsb2F0X2ZsYWdfIC0+ICgpIGVuZDtcbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9DRiAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcjJ1xuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HXG4gIHwgRmxvYXRfRiB8IEZsb2F0X2ggfCBGbG9hdF9IIC0+ICgpXG5cbigqIFByaW50IGEgY29tcGxldGUgZmxvYXQgZm9ybWF0IGluIGEgYnVmZmVyIChleDogXCIlKyouM2ZcIikuICopXG5sZXQgYnByaW50X2Zsb2F0X2ZtdCBidWYgaWduX2ZsYWcgZmNvbnYgcGFkIHByZWMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9mY29udiBmY29udilcblxuKCogQ29tcHV0ZSB0aGUgbGl0ZXJhbCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBGb3JtYXR0aW5nX2xpdC4gKilcbigqIFVzZWQgYnkgUHJpbnRmIGFuZCBTY2FuZiB3aGVyZSBmb3JtYXR0aW5nIGlzIG5vdCBpbnRlcnByZXRlZC4gKilcbmxldCBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm9ybWF0dGluZ19saXQgPSBtYXRjaCBmb3JtYXR0aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgLT4gXCJAXVwiXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgLT4gXCJAfVwiXG4gIHwgQnJlYWsgKHN0ciwgXywgXykgICAgLT4gc3RyXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgLT4gXCJAP1wiXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgLT4gXCJAXFxuXCJcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAtPiBcIkAuXCJcbiAgfCBNYWdpY19zaXplIChzdHIsIF8pICAtPiBzdHJcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAtPiBcIkBAXCJcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAtPiBcIkAlXCJcbiAgfCBTY2FuX2luZGljIGMgLT4gXCJAXCIgXiAoU3RyaW5nLm1ha2UgMSBjKVxuXG4oKioqKVxuXG4oKiBQcmludCBhIGxpdGVyYWwgY2hhciBpbiBhIGJ1ZmZlciwgZXNjYXBlICclJyBieSBcIiUlXCIuICopXG5sZXQgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgY2hyID0gbWF0Y2ggY2hyIHdpdGhcbiAgfCAnJScgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSVcIlxuICB8IF8gLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjaHJcblxuKCogUHJpbnQgYSBsaXRlcmFsIHN0cmluZyBpbiBhIGJ1ZmZlciwgZXNjYXBlIGFsbCAnJScgYnkgXCIlJVwiLiAqKVxubGV0IGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgc3RyID1cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggc3RyIC0gMSBkb1xuICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIHN0ci5baV1cbiAgZG9uZVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcHJldHR5LXByaW50aW5nICopXG5cbigqIFByaW50IGEgY29tcGxldGUgZm9ybWF0IHR5cGUgKGFuIGZtdHR5KSBpbiBhIGJ1ZmZlci4gKilcbmxldCByZWMgYnByaW50X2ZtdHR5IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCAuXG4gICAgYnVmZmVyIC0+IChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsKSBmbXR0eV9yZWwgLT4gdW5pdCA9XG5mdW4gYnVmIGZtdHR5IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlY1wiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFN0cmluZ190eSByZXN0ICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVzXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50X3R5IHJlc3QgICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWlcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnQzMl90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlbGlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVuaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJUxpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBGbG9hdF90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlZlwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEJvb2xfdHkgcmVzdCAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVCXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWFcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBUaGV0YV90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIldFwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEFueV90eSByZXN0ICAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiU/XCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgUmVhZGVyX3R5IHJlc3QgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXJcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlX3JcIjtcbiAgICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG5cbiAgfCBGb3JtYXRfYXJnX3R5IChzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXtcIjsgYnByaW50X2ZtdHR5IGJ1ZiBzdWJfZm10dHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJX1cIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEZvcm1hdF9zdWJzdF90eSAoc3ViX2ZtdHR5LCBfLCByZXN0KSAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUoXCI7IGJwcmludF9mbXR0eSBidWYgc3ViX2ZtdHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IEVuZF9vZl9mbXR0eSAtPiAoKVxuXG4oKioqKVxuXG5sZXQgcmVjIGludF9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIGEgYiBjIC5cbiAgKGEsIGIsIGMpIGN1c3RvbV9hcml0eSAtPiBpbnQgPVxuICBmdW5jdGlvblxuICB8IEN1c3RvbV96ZXJvIC0+IDBcbiAgfCBDdXN0b21fc3VjYyB4IC0+IDEgKyBpbnRfb2ZfY3VzdG9tX2FyaXR5IHhcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2ZtdCBidWYgZm10ID1cbiAgbGV0IHJlYyBmbXRpdGVyIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGJvb2wgLT4gdW5pdCA9XG4gIGZ1biBmbXQgaWduX2ZsYWcgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAncyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnUyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9pbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICdsJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnbic7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnTCc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9mbG9hdF9mbXQgYnVmIGlnbl9mbGFnIGZjb252IHBhZCBwcmVjO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBDaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ2MnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQyc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ0InO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQWxwaGEgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnYSc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3QnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAtPlxuICAgICAgZm9yIF9pID0gMSB0byBpbnRfb2ZfY3VzdG9tX2FyaXR5IGFyaXR5IGRvXG4gICAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnPyc7XG4gICAgICBkb25lO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgUmVhZGVyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3InOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbHVzaCByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlIVwiO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgICAgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBzdHI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIGNocjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAneyc7XG4gICAgICBicHJpbnRfZm10dHkgYnVmIGZtdHR5OyBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnfSc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHBhZF9vcHQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJygnO1xuICAgICAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyknO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHdpZHRoX29wdDsgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2NvdW50ZXIgY291bnRlcik7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIFwiMGNcIjsgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICBsZXQgUGFyYW1fZm9ybWF0X0VCQiBmbXQnID0gcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0IGluXG4gICAgICBmbXRpdGVyIGZtdCcgdHJ1ZTtcblxuICAgIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIChzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCk7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGZtdGluZ19nZW4gd2l0aFxuICAgICAgfCBPcGVuX3RhZyAoRm9ybWF0IChfLCBzdHIpKSAtPlxuICAgICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCJAe1wiOyBidWZmZXJfYWRkX3N0cmluZyBidWYgc3RyXG4gICAgICB8IE9wZW5fYm94IChGb3JtYXQgKF8sIHN0cikpIC0+XG4gICAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIkBbXCI7IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzdHJcbiAgICAgIGVuZDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRW5kX29mX2Zvcm1hdCAtPiAoKVxuXG4gIGluIGZtdGl0ZXIgZm10IGZhbHNlXG5cbigqKiopXG5cbigqIENvbnZlcnQgYSBmb3JtYXQgdG8gc3RyaW5nLiAqKVxubGV0IHN0cmluZ19vZl9mbXQgZm10ID1cbiAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgYnByaW50X2ZtdCBidWYgZm10O1xuICBidWZmZXJfY29udGVudHMgYnVmXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIFR5cGUgZXh0cmFjdGlvbiAqKVxuXG50eXBlIChfLCBfKSBlcSA9IFJlZmwgOiAoJ2EsICdhKSBlcVxuXG4oKiBJbnZhcmlhbnQ6IHRoaXMgZnVuY3Rpb24gaXMgdGhlIGlkZW50aXR5IG9uIHZhbHVlcy5cblxuICAgSW4gcGFydGljdWxhciwgaWYgKHR5MSwgdHkyKSBoYXZlIGVxdWFsIHZhbHVlcywgdGhlblxuICAgKHRyYW5zIChzeW1tIHR5MSkgdHkyKSByZXNwZWN0cyB0aGUgJ3RyYW5zJyBwcmVjb25kaXRpb24uICopXG5sZXQgcmVjIHN5bW0gOiB0eXBlIGExIGIxIGMxIGQxIGUxIGYxIGEyIGIyIGMyIGQyIGUyIGYyIC5cbiAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIsXG4gICAgYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10dHlfcmVsXG49IGZ1bmN0aW9uXG4gIHwgQ2hhcl90eSByZXN0IC0+IENoYXJfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnRfdHkgcmVzdCAtPiBJbnRfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnQzMl90eSByZXN0IC0+IEludDMyX3R5IChzeW1tIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPiBJbnQ2NF90eSAoc3ltbSByZXN0KVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IE5hdGl2ZWludF90eSAoc3ltbSByZXN0KVxuICB8IEZsb2F0X3R5IHJlc3QgLT4gRmxvYXRfdHkgKHN5bW0gcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT4gQm9vbF90eSAoc3ltbSByZXN0KVxuICB8IFN0cmluZ190eSByZXN0IC0+IFN0cmluZ190eSAoc3ltbSByZXN0KVxuICB8IFRoZXRhX3R5IHJlc3QgLT4gVGhldGFfdHkgKHN5bW0gcmVzdClcbiAgfCBBbHBoYV90eSByZXN0IC0+IEFscGhhX3R5IChzeW1tIHJlc3QpXG4gIHwgQW55X3R5IHJlc3QgLT4gQW55X3R5IChzeW1tIHJlc3QpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT4gUmVhZGVyX3R5IChzeW1tIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPiBJZ25vcmVkX3JlYWRlcl90eSAoc3ltbSByZXN0KVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBzeW1tIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MiwgdHkxLCBzeW1tIHJlc3QpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuXG5sZXQgcmVjIGZtdHR5X3JlbF9kZXQgOiB0eXBlIGExIGIgYyBkMSBlMSBmMSBhMiBkMiBlMiBmMiAuXG4gIChhMSwgYiwgYywgZDEsIGUxLCBmMSxcbiAgIGEyLCBiLCBjLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWwgLT5cbiAgICAoKGYxLCBmMikgZXEgLT4gKGExLCBhMikgZXEpXG4gICogKChhMSwgYTIpIGVxIC0+IChmMSwgZjIpIGVxKVxuICAqICgoZTEsIGUyKSBlcSAtPiAoZDEsIGQyKSBlcSlcbiAgKiAoKGQxLCBkMikgZXEgLT4gKGUxLCBlMikgZXEpXG49IGZ1bmN0aW9uXG4gIHwgRW5kX29mX2ZtdHR5IC0+XG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcblxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGRlIFJlZmwgaW4gUmVmbClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuICB8IEZvcm1hdF9hcmdfdHkgKF90eSwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIGxldCBhZywgZ2EsIGRqLCBqZCA9IGZtdHR5X3JlbF9kZXQgdHkgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIGxldCBSZWZsID0gYWcgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBnYSBSZWZsIGluIGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIGxldCBSZWZsID0gZGogUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBqZCBSZWZsIGluIGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuXG4oKiBQcmVjb25kaXRpb246IHdlIGFzc3VtZSB0aGF0IHRoZSB0d28gZm10dHlfcmVsIGFyZ3VtZW50cyBoYXZlIGVxdWFsXG4gICB2YWx1ZXMgKGF0IHBvc3NpYmx5IGRpc3RpbmN0IHR5cGVzKTsgdGhpcyBpbnZhcmlhbnQgY29tZXMgZnJvbSB0aGUgd2F5XG4gICBmbXR0eV9yZWwgd2l0bmVzc2VzIGFyZSBwcm9kdWNlZCBieSB0aGUgdHlwZS1jaGVja2VyXG5cbiAgIFRoZSBjb2RlIGJlbG93IHVzZXMgKGFzc2VydCBmYWxzZSkgd2hlbiB0aGlzIGFzc3VtcHRpb24gaXMgYnJva2VuLiBUaGVcbiAgIGNvZGUgcGF0dGVybiBpcyB0aGUgZm9sbG93aW5nOlxuXG4gICAgIHwgRm9vIHgsIEZvbyB5IC0+XG4gICAgICAgKCogY2FzZSB3aGVyZSBpbmRlZWQgYm90aCB2YWx1ZXNcbiAgICAgICAgICBzdGFydCB3aXRoIGNvbnN0cnVjdG9yIEZvbyAqKVxuICAgICB8IEZvbyBfLCBfXG4gICAgIHwgXywgRm9vIF8gLT5cbiAgICAgICAoKiBkaWZmZXJlbnQgaGVhZCBjb25zdHJ1Y3RvcnM6IGJyb2tlbiBwcmVjb25kaXRpb24gKilcbiAgICAgICBhc3NlcnQgZmFsc2VcbiopXG5hbmQgdHJhbnMgOiB0eXBlXG4gIGExIGIxIGMxIGQxIGUxIGYxXG4gIGEyIGIyIGMyIGQyIGUyIGYyXG4gIGEzIGIzIGMzIGQzIGUzIGYzXG4uXG4gICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbi0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyLFxuICAgIGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdHR5X3JlbFxuLT4gKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHlfcmVsXG49IGZ1biB0eTEgdHkyIC0+IG1hdGNoIHR5MSwgdHkyIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QxLCBDaGFyX3R5IHJlc3QyIC0+IENoYXJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IFN0cmluZ190eSByZXN0MSwgU3RyaW5nX3R5IHJlc3QyIC0+IFN0cmluZ190eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQm9vbF90eSByZXN0MSwgQm9vbF90eSByZXN0MiAtPiBCb29sX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnRfdHkgcmVzdDEsIEludF90eSByZXN0MiAtPiBJbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludDMyX3R5IHJlc3QxLCBJbnQzMl90eSByZXN0MiAtPiBJbnQzMl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50NjRfdHkgcmVzdDEsIEludDY0X3R5IHJlc3QyIC0+IEludDY0X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdDEsIE5hdGl2ZWludF90eSByZXN0MiAtPiBOYXRpdmVpbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZsb2F0X3R5IHJlc3QxLCBGbG9hdF90eSByZXN0MiAtPiBGbG9hdF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG5cbiAgfCBBbHBoYV90eSByZXN0MSwgQWxwaGFfdHkgcmVzdDIgLT4gQWxwaGFfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEFscGhhX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgQWxwaGFfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFRoZXRhX3R5IHJlc3QxLCBUaGV0YV90eSByZXN0MiAtPiBUaGV0YV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgVGhldGFfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBUaGV0YV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgQW55X3R5IHJlc3QxLCBBbnlfdHkgcmVzdDIgLT4gQW55X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBBbnlfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBBbnlfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFJlYWRlcl90eSByZXN0MSwgUmVhZGVyX3R5IHJlc3QyIC0+IFJlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgUmVhZGVyX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgUmVhZGVyX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0MSwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdDIgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBJZ25vcmVkX3JlYWRlcl90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRm9ybWF0X2FyZ190eSAodHkxLCByZXN0MSksIEZvcm1hdF9hcmdfdHkgKHR5MiwgcmVzdDIpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHJhbnMgdHkxIHR5MiwgdHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRm9ybWF0X2FyZ190eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEZvcm1hdF9hcmdfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxMSwgdHkxMiwgcmVzdDEpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkyMSwgdHkyMiwgcmVzdDIpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxMikgdHkyMSBpblxuICAgIGxldCBfLCBmMiwgXywgZjQgPSBmbXR0eV9yZWxfZGV0IHR5IGluXG4gICAgbGV0IFJlZmwgPSBmMiBSZWZsIGluXG4gICAgbGV0IFJlZmwgPSBmNCBSZWZsIGluXG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTExLCB0eTIyLCB0cmFucyByZXN0MSByZXN0MilcbiAgfCBGb3JtYXRfc3Vic3RfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBGb3JtYXRfc3Vic3RfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEVuZF9vZl9mbXR0eSwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuICB8IEVuZF9vZl9mbXR0eSwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBFbmRfb2ZfZm10dHkgLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCByZWMgZm10dHlfb2ZfZm9ybWF0dGluZ19nZW4gOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZvcm1hdHRpbmdfZ2VuIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBmb3JtYXR0aW5nX2dlbiAtPiBtYXRjaCBmb3JtYXR0aW5nX2dlbiB3aXRoXG4gIHwgT3Blbl90YWcgKEZvcm1hdCAoZm10LCBfKSkgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IE9wZW5fYm94IChGb3JtYXQgKGZtdCwgXykpIC0+IGZtdHR5X29mX2ZtdCBmbXRcblxuKCogRXh0cmFjdCB0aGUgdHlwZSByZXByZXNlbnRhdGlvbiAoYW4gZm10dHkpIG9mIGEgZm9ybWF0LiAqKVxuYW5kIGZtdHR5X29mX2ZtdCA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gZm10dHkgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcblxuICB8IEludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgSW50MzIgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoSW50MzJfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgTmF0aXZlaW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKE5hdGl2ZWludF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBJbnQ2NCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnQ2NF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChGbG9hdF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcblxuICB8IENoYXIgcmVzdCAgICAgICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEJvb2wgKHBhZCwgcmVzdCkgICAgICAgICAgIC0+XG4gICAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCAoQm9vbF90eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgIC0+IEFscGhhX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBUaGV0YSByZXN0ICAgICAgICAgICAgICAgICAtPiBUaGV0YV90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgICAgLT4gZm10dHlfb2ZfY3VzdG9tIGFyaXR5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBSZWFkZXIgcmVzdCAgICAgICAgICAgICAgICAtPiBSZWFkZXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRm9ybWF0X2FyZyAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEZvcm1hdF9zdWJzdCAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eSwgdHksIGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRmx1c2ggcmVzdCAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcbiAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgICAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPiBTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+IEludF90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAgLT4gZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAgLT5cbiAgICBjb25jYXRfZm10dHkgKGZtdHR5X29mX2Zvcm1hdHRpbmdfZ2VuIGZtdGluZ19nZW4pIChmbXR0eV9vZl9mbXQgcmVzdClcblxuICB8IEVuZF9vZl9mb3JtYXQgICAgICAgICAgICAgIC0+IEVuZF9vZl9mbXR0eVxuXG5hbmQgZm10dHlfb2ZfY3VzdG9tIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAoeSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGFyaXR5IGZtdHR5IC0+IG1hdGNoIGFyaXR5IHdpdGhcbiAgfCBDdXN0b21femVybyAtPiBmbXR0eVxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+IEFueV90eSAoZm10dHlfb2ZfY3VzdG9tIGFyaXR5IGZtdHR5KVxuXG4oKiBFeHRyYWN0IHRoZSBmbXR0eSBvZiBhbiBpZ25vcmVkIHBhcmFtZXRlciBmb2xsb3dlZCBieSB0aGUgcmVzdCBvZlxuICAgdGhlIGZvcm1hdC4gKilcbmFuZCBmbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IGNvbmNhdF9mbXR0eSBmbXR0eSAoZm10dHlfb2ZfZm10IGZtdClcbiAgfCBJZ25vcmVkX3JlYWRlciAgICAgICAgICAgICAgICAgIC0+IElnbm9yZWRfcmVhZGVyX3R5IChmbXR0eV9vZl9mbXQgZm10KVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcGFkZGluZyBpcyB0YWtlbiBhcyBhbiBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpzXCIpLiAqKVxuYW5kIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgOiB0eXBlIHggYSBiIGMgZCBlIGYgLlxuICAgICh4LCBhKSBwYWRkaW5nIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcGFkIGZtdHR5IC0+IG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nICAgIC0+IGZtdHR5XG4gICAgfCBMaXRfcGFkZGluZyBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcGFkZGluZyBfIC0+IEludF90eSBmbXR0eVxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcHJlY2lzaW9uIGlzIHRha2VuIGFzIGFuIGV4dHJhIGFyZ3VtZW50IChleDogXCIlLipmXCIpLiopXG5hbmQgZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IDogdHlwZSB4IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgYSkgcHJlY2lzaW9uIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcHJlYyBmbXR0eSAtPiBtYXRjaCBwcmVjIHdpdGhcbiAgICB8IE5vX3ByZWNpc2lvbiAgICAtPiBmbXR0eVxuICAgIHwgTGl0X3ByZWNpc2lvbiBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcHJlY2lzaW9uICAgLT4gSW50X3R5IGZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGluZyAqKVxuXG4oKiBFeGNlcHRpb24gcmFpc2VkIHdoZW4gYSBmb3JtYXQgZG9lcyBub3QgbWF0Y2ggYSBnaXZlbiBmb3JtYXQgdHlwZS4gKilcbmV4Y2VwdGlvbiBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBwYWRkaW5nLiAqKVxuKCogVGFrZSBhbiBJbnRfdHkgZnJvbSB0aGUgZm10dHkgaWYgdGhlIGludGVnZXIgc2hvdWxkIGJlIGtlcHQgYXMgYXJndW1lbnQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZGRpbmcgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkZGluZ19mbXR0eV9lYmIgPVxuZnVuIHBhZCBmbXR0eSAtPiBtYXRjaCBwYWQsIGZtdHR5IHdpdGhcbiAgfCBOb19wYWRkaW5nLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChOb19wYWRkaW5nLCBmbXR0eSlcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChMaXRfcGFkZGluZyAocGFkdHksdyksZm10dHkpXG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEludF90eSByZXN0IC0+IFBhZGRpbmdfZm10dHlfRUJCIChBcmdfcGFkZGluZyBwYWR0eSxyZXN0KVxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG4oKiBDb252ZXJ0IGEgKHVwYWRkaW5nLCB1cHJlY2lzaW9uKSB0byBhIChwYWRkaW5nLCBwcmVjaXNpb24pLiAqKVxuKCogVGFrZSBvbmUgb3IgdHdvIEludF90eSBmcm9tIHRoZSBmbXR0eSBpZiBuZWVkZWQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZHByZWMgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSB6IC5cbiAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHopIHByZWNpc2lvbiAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkcHJlY19mbXR0eV9lYmIgPVxuZnVuIHBhZCBwcmVjIGZtdHR5IC0+IG1hdGNoIHByZWMsIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBOb19wcmVjaXNpb24sIHJlc3QpXG4gIHwgTGl0X3ByZWNpc2lvbiBwLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIExpdF9wcmVjaXNpb24gcCwgcmVzdClcbiAgfCBBcmdfcHJlY2lzaW9uLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBJbnRfdHkgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBBcmdfcHJlY2lzaW9uLCByZXN0KVxuICB8IF8sIFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBmb3JtYXQgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuKCogSWYgdHlwaW5nIHN1Y2NlZWQsIGdlbmVyYXRlIGEgY29weSBvZiB0aGUgZm9ybWF0IHdpdGggdGhlIHNhbWVcbiAgICB0eXBlIHBhcmFtZXRlcnMgYXMgdGhlIGZtdHR5LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgcmVjIHR5cGVfZm9ybWF0IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPiBtYXRjaCB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5IHdpdGhcbiAgfCBGbXRfZm10dHlfRUJCIChmbXQnLCBFbmRfb2ZfZm10dHkpIC0+IGZtdCdcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuYW5kIHR5cGVfZm9ybWF0X2dlbiA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eVxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10X2ZtdHR5X2ViYlxuPSBmdW4gZm10IGZtdHR5IC0+IG1hdGNoIGZtdCwgZm10dHkgd2l0aFxuICB8IENoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyIGZtdCcsIGZtdHR5JylcbiAgfCBDYW1sX2NoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDYW1sX2NoYXIgZm10JywgZm10dHknKVxuICB8IFN0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChTdHJpbmcgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBDYW1sX3N0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChDYW1sX3N0cmluZyAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludDMyX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIE5hdGl2ZWludF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnQ2NF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSW50NjQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEZsb2F0X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBCb29sIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBCb29sX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChCb29sIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmx1c2ggZm10X3Jlc3QsIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRmx1c2ggZm10JywgZm10dHknKVxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFN0cmluZ19saXRlcmFsIChzdHIsIGZtdCcpLCBmbXR0eScpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyX2xpdGVyYWwgKGNociwgZm10JyksIGZtdHR5JylcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpLFxuICAgIEZvcm1hdF9hcmdfdHkgKHN1Yl9mbXR0eScsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIHN1Yl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViX2ZtdHR5JyB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eScsIGZtdCcpLCBmbXR0eScpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHksIGZtdF9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1Yl9mbXR0eTEsIF9zdWJfZm10dHkyLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1Yl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViX2ZtdHR5MSkgdGhlblxuICAgICAgcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9XG4gICAgICB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgKGVyYXNlX3JlbCBmbXR0eV9yZXN0KVxuICAgIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkxLCBmbXQnKSwgZm10dHknKVxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgQWxwaGEgZm10X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQWxwaGEgZm10JywgZm10dHknKVxuICB8IFRoZXRhIGZtdF9yZXN0LCBUaGV0YV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFRoZXRhIGZtdCcsIGZtdHR5JylcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10JyksIGZtdHR5JylcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZ19nZW4sIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIHR5cGVfZm9ybWF0dGluZ19nZW4gZm9ybWF0dGluZ19nZW4gZm10X3Jlc3QgZm10dHlfcmVzdFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBSZWFkZXIgZm10X3Jlc3QsIFJlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFJlYWRlciBmbXQnLCBmbXR0eScpXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10X3Jlc3QpLCBTdHJpbmdfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXQnKSwgZm10dHknKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSwgSW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10JyksIGZtdHR5JylcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgdHlwZV9pZ25vcmVkX3BhcmFtIGlnbiByZXN0IGZtdHR5X3Jlc3RcblxuICB8IEVuZF9vZl9mb3JtYXQsIGZtdHR5X3Jlc3QgLT4gRm10X2ZtdHR5X0VCQiAoRW5kX29mX2Zvcm1hdCwgZm10dHlfcmVzdClcblxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG5hbmQgdHlwZV9mb3JtYXR0aW5nX2dlbiA6IHR5cGUgYTEgYTMgYjEgYjMgYzEgYzMgZDEgZDMgZTEgZTIgZTMgZjEgZjIgZjMgLlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmb3JtYXR0aW5nX2dlbiAtPlxuICAgIChmMSwgYjEsIGMxLCBlMSwgZTIsIGYyKSBmbXQgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHkgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10X2ZtdHR5X2ViYiA9XG5mdW4gZm9ybWF0dGluZ19nZW4gZm10MCBmbXR0eTAgLT4gbWF0Y2ggZm9ybWF0dGluZ19nZW4gd2l0aFxuICB8IE9wZW5fdGFnIChGb3JtYXQgKGZtdDEsIHN0cikpIC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDIsIGZtdHR5MikgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MSBmbXR0eTAgaW5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MywgZm10dHkzKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQwIGZtdHR5MiBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQyLCBzdHIpKSwgZm10MyksIGZtdHR5MylcbiAgfCBPcGVuX2JveCAoRm9ybWF0IChmbXQxLCBzdHIpKSAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQyLCBmbXR0eTIpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDEgZm10dHkwIGluXG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDMsIGZtdHR5MykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MCBmbXR0eTIgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10Miwgc3RyKSksIGZtdDMpLCBmbXR0eTMpXG5cbigqIFR5cGUgYW4gSWdub3JlZF9wYXJhbSBub2RlIGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbmFuZCB0eXBlX2lnbm9yZWRfcGFyYW0gOiB0eXBlIHAgcSB4IHkgeiB0IHUgdiBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIHksIHosIHQsIHEsIHApIGlnbm9yZWQgLT5cbiAgICAocCwgeSwgeiwgcSwgdSwgdikgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdF9mbXR0eV9lYmIgPVxuZnVuIGlnbiBmbXQgZm10dHkgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludCBfICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDMyIF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX25hdGl2ZWludCBfICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDY0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zsb2F0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkgLT5cbiAgICB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIChJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkpIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkpIC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eScsIEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eSBmbXQgZm10dHkgaW5cbiAgICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10JyksXG4gICAgICAgICAgICAgICAgICAgZm10dHknKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+IChcbiAgICBtYXRjaCBmbXR0eSB3aXRoXG4gICAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9yZWFkZXIsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuXG5hbmQgdHlwZV9pZ25vcmVkX3BhcmFtX29uZSA6IHR5cGUgYTEgYTIgYjEgYjIgYzEgYzIgZDEgZDIgZTEgZTIgZjEgZjIgLlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZDIsIGEyKSBpZ25vcmVkIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdCAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eSAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRfZm10dHlfZWJiXG49IGZ1biBpZ24gZm10IGZtdHR5IC0+XG4gIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSBpblxuICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChpZ24sIGZtdCcpLCBmbXR0eScpXG5cbigqIFR5cGluZyBvZiB0aGUgY29tcGxleCBjYXNlOiBcIiVfKC4uLiUpXCIuICopXG5hbmQgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gOiB0eXBlIHcgeCB5IHogcCBzIHQgdSBhIGIgYyBkIGUgZiAuXG4gICAgKHcsIHgsIHksIHosIHMsIHApIGZtdHR5IC0+XG4gICAgKHAsIHgsIHksIHMsIHQsIHUpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlfZm10X2ViYiA9XG5mdW4gc3ViX2ZtdHR5IGZtdCBmbXR0eSAtPiBtYXRjaCBzdWJfZm10dHksIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHN1Yl9mbXR0eV9yZXN0LCBDaGFyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKENoYXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50X3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnQzMl90eSBzdWJfZm10dHlfcmVzdCwgSW50MzJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50MzJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCwgTmF0aXZlaW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50NjRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludDY0X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEludDY0X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBGbG9hdF90eSBzdWJfZm10dHlfcmVzdCwgRmxvYXRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRmxvYXRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEJvb2xfdHkgc3ViX2ZtdHR5X3Jlc3QsIEJvb2xfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQm9vbF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgQWxwaGFfdHkgc3ViX2ZtdHR5X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEFscGhhX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBUaGV0YV90eSBzdWJfZm10dHlfcmVzdCwgVGhldGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoVGhldGFfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCwgUmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIElnbm9yZWRfcmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKElnbm9yZWRfcmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcblxuICB8IEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHksIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgc3ViMl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViMl9mbXR0eScgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eScsIHN1Yl9mbXR0eV9yZXN0JyksIGZtdCcpXG4gIHwgRm9ybWF0X3N1YnN0X3R5IChzdWIxX2ZtdHR5LCAgc3ViMl9mbXR0eSwgIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICAoKiBUT0RPIGRlZmluZSBGbXR0eV9yZWxfRUJCIHRvIHJlbW92ZSB0aG9zZSBlcmFzZV9yZWwgKilcbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5JylcbiAgICB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eScpXG4gICAgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBzdWJfZm10dHknID0gdHJhbnMgKHN5bW0gc3ViMV9mbXR0eScpIHN1YjJfZm10dHknIGluXG4gICAgbGV0IF8sIGYyLCBfLCBmNCA9IGZtdHR5X3JlbF9kZXQgc3ViX2ZtdHR5JyBpblxuICAgIGxldCBSZWZsID0gZjIgUmVmbCBpblxuICAgIGxldCBSZWZsID0gZjQgUmVmbCBpblxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIChlcmFzZV9yZWwgc3ViX2ZtdHR5X3Jlc3QpIGZtdCBmbXR0eV9yZXN0XG4gICAgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bW0gc3ViX2ZtdHR5X3Jlc3QnKSxcbiAgICAgICAgICAgICAgICAgICBmbXQnKVxuICB8IEVuZF9vZl9mbXR0eSwgZm10dHkgLT5cbiAgICBGbXR0eV9mbXRfRUJCIChFbmRfb2ZfZm10dHksIHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkpXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYHJlY2FzdGAgaXMgYSBiaXQgZGlzYXBwb2ludGluZy4gVGhlXG4gICBpbnZhcmlhbnQgcHJvdmlkZWQgYnkgdGhlIHR5cGUgYXJlIHZlcnkgc3Ryb25nOiB0aGUgaW5wdXQgZm9ybWF0J3NcbiAgIHR5cGUgaXMgaW4gcmVsYXRpb24gdG8gdGhlIG91dHB1dCB0eXBlJ3MgYXMgd2l0bmVzc2VkIGJ5IHRoZVxuICAgZm10dHlfcmVsIGFyZ3VtZW50LiBPbmUgd291bGQgYXQgZmlyc3QgZXhwZWN0IHRoaXMgZnVuY3Rpb24gdG8gYmVcbiAgIHRvdGFsLCBhbmQgaW1wbGVtZW50YWJsZSBieSBleGhhdXN0aXZlIHBhdHRlcm4gbWF0Y2hpbmcuIEluc3RlYWQsXG4gICB3ZSByZXVzZSB0aGUgaGlnaGx5IHBhcnRpYWwgYW5kIG11Y2ggbGVzcyB3ZWxsLWRlZmluZWQgZnVuY3Rpb25cbiAgIGB0eXBlX2Zvcm1hdGAgdGhhdCBoYXMgbG9zdCBhbGwga25vd2xlZGdlIG9mIHRoZSBjb3JyZXNwb25kZW5jZVxuICAgYmV0d2VlbiB0aGUgYXJndW1lbnQncyB0eXBlcy5cblxuICAgQmVzaWRlcyB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gcmV1c2VzIGEgbG90IG9mIHRoZVxuICAgYHR5cGVfZm9ybWF0YCBsb2dpYyAoZWcuOiBzZWVpbmcgSW50X3R5IGluIHRoZSBmbXR0eSBwYXJhbWV0ZXIgZG9lc1xuICAgbm90IGxldCB5b3UgbWF0Y2ggb24gSW50IG9ubHksIGFzIHlvdSBtYXkgaW4gZmFjdCBoYXZlIEZsb2F0XG4gICAoQXJnX3BhZGRpbmcsIC4uLikgKFwiJS4qZFwiKSBiZWdpbm5pbmcgd2l0aCBhbiBJbnRfdHkpLCBpdCBpcyBhbHNvXG4gICBhIHBhcnRpYWwgZnVuY3Rpb24sIGJlY2F1c2UgdGhlIHR5cGluZyBpbmZvcm1hdGlvbiBpbiBhIGZvcm1hdCBpc1xuICAgbm90IHF1aXRlIGVub3VnaCB0byByZWNvbnN0cnVjdCBpdCB1bmFtYmlndW91c2x5LiBGb3IgZXhhbXBsZSwgdGhlXG4gICBmb3JtYXQgdHlwZXMgb2YgXCIlZCVfclwiIGFuZCBcIiVfciVkXCIgaGF2ZSB0aGUgc2FtZSBmb3JtYXQ2XG4gICBwYXJhbWV0ZXJzLCBidXQgdGhleSBhcmUgbm90IGF0IGFsbCBleGNoYW5nZWFibGUsIGFuZCBwdXR0aW5nIG9uZVxuICAgaW4gcGxhY2Ugb2YgdGhlIG90aGVyIG11c3QgcmVzdWx0IGluIGEgZHluYW1pYyBmYWlsdXJlLlxuXG4gICBHaXZlbiB0aGF0OlxuICAgLSB3ZSdkIGhhdmUgdG8gZHVwbGljYXRlIGEgbG90IG9mIG5vbi10cml2aWFsIHR5cGluZyBsb2dpYyBmcm9tIHR5cGVfZm9ybWF0XG4gICAtIHRoaXMgd291bGRuJ3QgZXZlbiBlbGltaW5hdGUgKGFsbCkgdGhlIGR5bmFtaWMgZmFpbHVyZXNcbiAgIHdlIGRlY2lkZWQgdG8ganVzdCByZXVzZSB0eXBlX2Zvcm1hdCBkaXJlY3RseSBmb3Igbm93LlxuKilcbmxldCByZWNhc3QgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPlxuICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFByaW50aW5nIHRvb2xzICopXG5cbigqIEFkZCBwYWRkaW5nIHNwYWNlcyBhcm91bmQgYSBzdHJpbmcuICopXG5sZXQgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggc3RyID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCB3aWR0aCwgcGFkdHkgPVxuICAgIGFicyB3aWR0aCxcbiAgICAoKiB3aGlsZSBsaXRlcmFsIHBhZGRpbmcgd2lkdGhzIGFyZSBhbHdheXMgbm9uLW5lZ2F0aXZlLFxuICAgICAgIGR5bmFtaWNhbGx5LXNldCB3aWR0aHMgKEFyZ19wYWRkaW5nLCBlZy4gJSpkKSBtYXkgYmUgbmVnYXRpdmU7XG4gICAgICAgd2UgaW50ZXJwcmV0IHRob3NlIGFzIHNwZWNpZnlpbmcgYSBwYWRkaW5nLXRvLXRoZS1sZWZ0OyB0aGlzXG4gICAgICAgbWVhbnMgdGhhdCAnMCcgbWF5IGdldCBkcm9wcGVkIGV2ZW4gaWYgaXQgd2FzIGV4cGxpY2l0bHkgc2V0LFxuICAgICAgIGJ1dDpcbiAgICAgICAtIHRoaXMgaXMgd2hhdCB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIGRvZXMsIGFuZFxuICAgICAgICAgd2UgcHJlc2VydmUgY29tcGF0aWJpbGl0eSBpZiBwb3NzaWJsZVxuICAgICAgIC0gd2UgY291bGQgb25seSBzaWduYWwgdGhpcyBpc3N1ZSBieSBmYWlsaW5nIGF0IHJ1bnRpbWUsXG4gICAgICAgICB3aGljaCBpcyBub3QgdmVyeSBuaWNlLi4uICopXG4gICAgaWYgd2lkdGggPCAwIHRoZW4gTGVmdCBlbHNlIHBhZHR5IGluXG4gIGlmIHdpZHRoIDw9IGxlbiB0aGVuIHN0ciBlbHNlXG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2Ugd2lkdGggKGlmIHBhZHR5ID0gWmVyb3MgdGhlbiAnMCcgZWxzZSAnICcpIGluXG4gICAgYmVnaW4gbWF0Y2ggcGFkdHkgd2l0aFxuICAgIHwgTGVmdCAgLT4gU3RyaW5nLmJsaXQgc3RyIDAgcmVzIDAgbGVuXG4gICAgfCBSaWdodCAtPiBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMCAmJiAoc3RyLlswXSA9ICcrJyB8fCBzdHIuWzBdID0gJy0nIHx8IHN0ci5bMF0gPSAnICcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDAgc3RyLlswXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAod2lkdGggLSBsZW4gKyAxKSAobGVuIC0gMSlcbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMSAmJiBzdHIuWzBdID0gJzAnICYmIChzdHIuWzFdID0gJ3gnIHx8IHN0ci5bMV0gPSAnWCcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDEgc3RyLlsxXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAod2lkdGggLSBsZW4gKyAyKSAobGVuIC0gMilcbiAgICB8IFplcm9zIC0+XG4gICAgICBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICBlbmQ7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQWRkICcwJyBwYWRkaW5nIHRvIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBzdHJpbmcgcmVwcmVzZW50YXRpb24uICopXG5sZXQgZml4X2ludF9wcmVjaXNpb24gcHJlYyBzdHIgPVxuICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBtYXRjaCBzdHIuWzBdIHdpdGhcbiAgfCAoJysnIHwgJy0nIHwgJyAnKSBhcyBjIHdoZW4gcHJlYyArIDEgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDEpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMCBjO1xuICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAocHJlYyAtIGxlbiArIDIpIChsZW4gLSAxKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyB3aGVuIHByZWMgKyAyID4gbGVuICYmIGxlbiA+IDEgJiYgKHN0ci5bMV0gPSAneCcgfHwgc3RyLlsxXSA9ICdYJykgLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDIpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMSBzdHIuWzFdO1xuICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAocHJlYyAtIGxlbiArIDQpIChsZW4gLSAyKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyAuLiAnOScgfCAnYScgLi4gJ2YnIHwgJ0EnIC4uICdGJyB3aGVuIHByZWMgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSBwcmVjICcwJyBpblxuICAgIFN0cmluZy5ibGl0IHN0ciAwIHJlcyAocHJlYyAtIGxlbikgbGVuO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgXyAtPlxuICAgIHN0clxuXG4oKiBFc2NhcGUgYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpbmcgY29udmVudGlvbi4gKilcbmxldCBzdHJpbmdfdG9fY2FtbF9zdHJpbmcgc3RyID1cbiAgbGV0IHN0ciA9IFN0cmluZy5lc2NhcGVkIHN0ciBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCByZXMgPSBCeXRlcy5tYWtlIChsICsgMikgJ1xcXCInIGluXG4gIFN0cmluZy51bnNhZmVfYmxpdCBzdHIgMCByZXMgMSBsO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2ludC9pbnQzMi9uYXRpdmVpbnQvaW50NjQgZmlyc3QgYXJndW1lbnRcbiAgIGZyb20gYW4gaW50X2NvbnYuICopXG5sZXQgZm9ybWF0X29mX2ljb252ID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVkXCIgfCBJbnRfcGQgLT4gXCIlK2RcIiB8IEludF9zZCAtPiBcIiUgZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlaVwiIHwgSW50X3BpIC0+IFwiJStpXCIgfCBJbnRfc2kgLT4gXCIlIGlcIlxuICB8IEludF94IC0+IFwiJXhcIiB8IEludF9DeCAtPiBcIiUjeFwiXG4gIHwgSW50X1ggLT4gXCIlWFwiIHwgSW50X0NYIC0+IFwiJSNYXCJcbiAgfCBJbnRfbyAtPiBcIiVvXCIgfCBJbnRfQ28gLT4gXCIlI29cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJXVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252TCA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlTGRcIiB8IEludF9wZCAtPiBcIiUrTGRcIiB8IEludF9zZCAtPiBcIiUgTGRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJUxpXCIgfCBJbnRfcGkgLT4gXCIlK0xpXCIgfCBJbnRfc2kgLT4gXCIlIExpXCJcbiAgfCBJbnRfeCAtPiBcIiVMeFwiIHwgSW50X0N4IC0+IFwiJSNMeFwiXG4gIHwgSW50X1ggLT4gXCIlTFhcIiB8IEludF9DWCAtPiBcIiUjTFhcIlxuICB8IEludF9vIC0+IFwiJUxvXCIgfCBJbnRfQ28gLT4gXCIlI0xvXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVMdVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZsID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVsZFwiIHwgSW50X3BkIC0+IFwiJStsZFwiIHwgSW50X3NkIC0+IFwiJSBsZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlbGlcIiB8IEludF9waSAtPiBcIiUrbGlcIiB8IEludF9zaSAtPiBcIiUgbGlcIlxuICB8IEludF94IC0+IFwiJWx4XCIgfCBJbnRfQ3ggLT4gXCIlI2x4XCJcbiAgfCBJbnRfWCAtPiBcIiVsWFwiIHwgSW50X0NYIC0+IFwiJSNsWFwiXG4gIHwgSW50X28gLT4gXCIlbG9cIiB8IEludF9DbyAtPiBcIiUjbG9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJWx1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udm4gPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJW5kXCIgfCBJbnRfcGQgLT4gXCIlK25kXCIgfCBJbnRfc2QgLT4gXCIlIG5kXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVuaVwiIHwgSW50X3BpIC0+IFwiJStuaVwiIHwgSW50X3NpIC0+IFwiJSBuaVwiXG4gIHwgSW50X3ggLT4gXCIlbnhcIiB8IEludF9DeCAtPiBcIiUjbnhcIlxuICB8IEludF9YIC0+IFwiJW5YXCIgfCBJbnRfQ1ggLT4gXCIlI25YXCJcbiAgfCBJbnRfbyAtPiBcIiVub1wiIHwgSW50X0NvIC0+IFwiJSNub1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlbnVcIlxuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2Zsb2F0IGZpcnN0IGFyZ3VtZW50IGZyb20gYSBmbG9hdF9jb252LiAqKVxubGV0IGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjID1cbiAgICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gICAgbGV0IHN5bWIgPSBjaGFyX29mX2Zjb252IH5jRjonZycgZmNvbnYgaW5cbiAgICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICAgIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcuJztcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgcHJlYyk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBzeW1iO1xuICAgIGJ1ZmZlcl9jb250ZW50cyBidWZcblxubGV0IHRyYW5zZm9ybV9pbnRfYWx0IGljb252IHMgPVxuICBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1IC0+XG4gICAgbGV0IGRpZ2l0cyA9XG4gICAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgICB8ICcwJy4uJzknIC0+IGluY3IgblxuICAgICAgICB8IF8gLT4gKClcbiAgICAgIGRvbmU7XG4gICAgICAhblxuICAgIGluXG4gICAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSAoU3RyaW5nLmxlbmd0aCBzICsgKGRpZ2l0cyAtIDEpIC8gMykgaW5cbiAgICBsZXQgcG9zID0gcmVmIDAgaW5cbiAgICBsZXQgcHV0IGMgPSBCeXRlcy5zZXQgYnVmICFwb3MgYzsgaW5jciBwb3MgaW5cbiAgICBsZXQgbGVmdCA9IHJlZiAoKGRpZ2l0cyAtIDEpIG1vZCAzICsgMSkgaW5cbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJzAnLi4nOScgYXMgYyAtPlxuICAgICAgICAgIGlmICFsZWZ0ID0gMCB0aGVuIChwdXQgJ18nOyBsZWZ0IDo9IDMpOyBkZWNyIGxlZnQ7IHB1dCBjXG4gICAgICB8IGMgLT4gcHV0IGNcbiAgICBkb25lO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYnVmXG4gIHwgXyAtPiBzXG5cbigqIENvbnZlcnQgYW4gaW50ZWdlciB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBjb252ZXJzaW9uLiAqKVxubGV0IGNvbnZlcnRfaW50IGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X2ludCAoZm9ybWF0X29mX2ljb252IGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50MzIgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50MzIgKGZvcm1hdF9vZl9pY29udmwgaWNvbnYpIG4pXG5sZXQgY29udmVydF9uYXRpdmVpbnQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfbmF0aXZlaW50IChmb3JtYXRfb2ZfaWNvbnZuIGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50NjQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50NjQgKGZvcm1hdF9vZl9pY29udkwgaWNvbnYpIG4pXG5cbigqIENvbnZlcnQgYSBmbG9hdCB0byBzdHJpbmcuICopXG4oKiBGaXggc3BlY2lhbCBjYXNlIG9mIFwiT0NhbWwgZmxvYXQgZm9ybWF0XCIuICopXG5sZXQgY29udmVydF9mbG9hdCBmY29udiBwcmVjIHggPVxuICBsZXQgaGV4ICgpID1cbiAgICBsZXQgc2lnbiA9XG4gICAgICBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICAgICAgfCBGbG9hdF9mbGFnX3AgLT4gJysnXG4gICAgICB8IEZsb2F0X2ZsYWdfcyAtPiAnICdcbiAgICAgIHwgXyAtPiAnLScgaW5cbiAgICBoZXhzdHJpbmdfb2ZfZmxvYXQgeCBwcmVjIHNpZ24gaW5cbiAgbGV0IGFkZF9kb3RfaWZfbmVlZGVkIHN0ciA9XG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gICAgbGV0IHJlYyBpc192YWxpZCBpID1cbiAgICAgIGlmIGkgPSBsZW4gdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5baV0gd2l0aFxuICAgICAgICB8ICcuJyB8ICdlJyB8ICdFJyAtPiB0cnVlXG4gICAgICAgIHwgXyAtPiBpc192YWxpZCAoaSArIDEpIGluXG4gICAgaWYgaXNfdmFsaWQgMCB0aGVuIHN0ciBlbHNlIHN0ciBeIFwiLlwiIGluXG4gIGxldCBjYW1sX3NwZWNpYWxfdmFsIHN0ciA9IG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIHwgRlBfbm9ybWFsIHwgRlBfc3Vibm9ybWFsIHwgRlBfemVybyAtPiBzdHJcbiAgICB8IEZQX2luZmluaXRlIC0+IGlmIHggPCAwLjAgdGhlbiBcIm5lZ19pbmZpbml0eVwiIGVsc2UgXCJpbmZpbml0eVwiXG4gICAgfCBGUF9uYW4gLT4gXCJuYW5cIiBpblxuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ggLT4gaGV4ICgpXG4gIHwgRmxvYXRfSCAtPiBTdHJpbmcudXBwZXJjYXNlX2FzY2lpIChoZXggKCkpXG4gIHwgRmxvYXRfQ0YgLT4gY2FtbF9zcGVjaWFsX3ZhbCAoaGV4ICgpKVxuICB8IEZsb2F0X0YgLT5cbiAgICBsZXQgc3RyID0gZm9ybWF0X2Zsb2F0IChmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYykgeCBpblxuICAgIGNhbWxfc3BlY2lhbF92YWwgKGFkZF9kb3RfaWZfbmVlZGVkIHN0cilcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRyAtPlxuICAgIGZvcm1hdF9mbG9hdCAoZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMpIHhcblxuKCogQ29udmVydCBhIGNoYXIgdG8gYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgZm9ybWF0X2NhbWxfY2hhciBjID1cbiAgbGV0IHN0ciA9IENoYXIuZXNjYXBlZCBjIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKGwgKyAyKSAnXFwnJyBpblxuICBTdHJpbmcudW5zYWZlX2JsaXQgc3RyIDAgcmVzIDEgbDtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQ29udmVydCBhIGZvcm1hdCB0eXBlIHRvIHN0cmluZyAqKVxubGV0IHN0cmluZ19vZl9mbXR0eSBmbXR0eSA9XG4gIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gIGJwcmludF9mbXR0eSBidWYgZm10dHk7XG4gIGJ1ZmZlcl9jb250ZW50cyBidWZcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICgqIEdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24gKilcblxuKCogTWFrZSBhIGdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24uICopXG4oKiBVc2VkIHRvIGdlbmVyYXRlIFByaW50ZiBhbmQgRm9ybWF0IHByaW50aW5nIGZ1bmN0aW9ucy4gKilcbigqIFBhcmFtZXRlcnM6XG4gICAgIGs6IGEgY29udGludWF0aW9uIGZpbmFsbHkgYXBwbGllZCB0byB0aGUgb3V0cHV0IHN0cmVhbSBhbmQgdGhlIGFjY3VtdWxhdG9yLlxuICAgICBvOiB0aGUgb3V0cHV0IHN0cmVhbSAoc2VlIGssICVhIGFuZCAldCkuXG4gICAgIGFjYzogcmV2IGxpc3Qgb2YgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1c2gsIGZvcm1hdHRpbmcsIC4uLikuXG4gICAgIGZtdDogdGhlIGZvcm1hdC4gKilcbmxldCByZWMgbWFrZV9wcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBDaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9jaGFyIChhY2MsIGMpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZvcm1hdF9jYW1sX2NoYXIgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIChmdW4gc3RyIC0+IHN0cilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfdG9fY2FtbF9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludCBpY29udlxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9pbnQzMiBpY29udlxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfbmF0aXZlaW50IGljb252XG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludDY0IGljb252XG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGZjb252XG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfb2ZfYm9vbFxuICB8IEFscGhhIHJlc3QgLT5cbiAgICBmdW4gZiB4IC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kZWxheSAoYWNjLCBmdW4gbyAtPiBmIG8geCkpIHJlc3RcbiAgfCBUaGV0YSByZXN0IC0+XG4gICAgZnVuIGYgLT4gbWFrZV9wcmludGYgayAoQWNjX2RlbGF5IChhY2MsIGYpKSByZXN0XG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBtYWtlX2N1c3RvbSBrIGFjYyByZXN0IGFyaXR5IChmICgpKVxuICB8IFJlYWRlciBfIC0+XG4gICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAqKVxuICAgICgqIEluZGVlZCwgc2luY2UgcHJpbnRmIGFuZCBjby4gdGFrZSBhIGZvcm1hdDQgYXMgYXJndW1lbnQsIHRoZSAnZCBhbmQgJ2VcbiAgICAgICB0eXBlIHBhcmFtZXRlcnMgb2YgZm10IGFyZSBvYnZpb3VzbHkgZXF1YWxzLiBUaGUgUmVhZGVyIGlzIHRoZVxuICAgICAgIG9ubHkgY29uc3RydWN0b3Igd2hpY2ggdG91Y2ggJ2QgYW5kICdlIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgZm9ybWF0XG4gICAgICAgdHlwZSwgaXQgYWRkcyBhbiAoLT4pIHRvIHRoZSAnZCBwYXJhbWV0ZXJzLiBDb25zZXF1ZW50bHksIGEgZm9ybWF0NFxuICAgICAgIGNhbm5vdCBjb250YWluIGEgUmVhZGVyIG5vZGUsIGV4Y2VwdCBpbiB0aGUgc3ViLWZvcm1hdCBhc3NvY2lhdGVkIHRvXG4gICAgICAgYW4gJXsuLi4lfS4gSXQncyBub3QgYSBwcm9ibGVtIGJlY2F1c2UgbWFrZV9wcmludGYgZG8gbm90IGNhbGxcbiAgICAgICBpdHNlbGYgcmVjdXJzaXZlbHkgb24gdGhlIHN1Yi1mb3JtYXQgYXNzb2NpYXRlZCB0byAley4uLiV9LiAqKVxuICAgIGFzc2VydCBmYWxzZVxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfZmx1c2ggYWNjKSByZXN0XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19zdHJpbmdfbGl0ZXJhbCAoYWNjLCBzdHIpKSByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2NoYXJfbGl0ZXJhbCAoYWNjLCBjaHIpKSByZXN0XG5cbiAgfCBGb3JtYXRfYXJnIChfLCBzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gc3RyaW5nX29mX2ZtdHR5IHN1Yl9mbXR0eSBpblxuICAgIChmdW4gc3RyIC0+XG4gICAgICBpZ25vcmUgc3RyO1xuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHR5KSkgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAtPlxuICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPiBtYWtlX3ByaW50ZiBrIGFjY1xuICAgICAgKGNvbmNhdF9mbXQgKHJlY2FzdCBmbXQgZm10dHkpIHJlc3QpXG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPlxuICAgIGxldCBuZXdfYWNjID0gQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlW1wiKSBpblxuICAgIGZ1biBfIC0+IG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT5cbiAgICAoKiBUaGlzIGNhc2Ugc2hvdWxkIGJlIHJlZnVzZWQgZm9yIFByaW50Zi4gKilcbiAgICAoKiBBY2NlcHRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gKilcbiAgICAoKiBJbnRlcnByZXQgJWwsICVuIGFuZCAlTCBhcyAldS4gKilcbiAgICBmdW4gbiAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZm9ybWF0X2ludCBcIiV1XCIgbikgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX2NoYXIgKGFjYywgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIG1ha2VfaWdub3JlZF9wYXJhbSBrIGFjYyBpZ24gcmVzdFxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2Zvcm1hdHRpbmdfbGl0IChhY2MsIGZtdGluZ19saXQpKSByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fdGFnIGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fYm94IGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgayBhY2NcblxuKCogRGVsYXkgdGhlIGVycm9yIChJbnZhbGlkX2FyZ3VtZW50IFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKS4gKilcbigqIEdlbmVyYXRlIGZ1bmN0aW9ucyB0byB0YWtlIHJlbWFpbmluZyBhcmd1bWVudHMgKGFmdGVyIHRoZSBcIiVfXCIpLiAqKVxuYW5kIG1ha2VfaWdub3JlZF9wYXJhbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGlnbm9yZWQgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfcmVhZGVyICAgICAgICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG5cblxuKCogU3BlY2lhbCBjYXNlIG9mIHByaW50ZiBcIiVfKFwiLiAqKVxuYW5kIG1ha2VfZnJvbV9mbXR0eSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGZtdHR5IC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXR0eSBmbXQgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IFN0cmluZ190eSByZXN0ICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludF90eSByZXN0ICAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IE5hdGl2ZWludF90eSByZXN0ICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDY0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEJvb2xfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEFscGhhX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQW55X3R5IHJlc3QgICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgUmVhZGVyX3R5IF8gICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXyAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgRW5kX29mX2ZtdHR5ICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIChjb25jYXRfZm10dHkgdHkgcmVzdCkgZm10XG5cbigqIEluc2VydCBhbiBBY2NfaW52YWxpZF9hcmcgaW4gdGhlIGFjY3VtdWxhdG9yIGFuZCBjb250aW51ZSB0byBnZW5lcmF0ZVxuICAgY2xvc3VyZXMgdG8gZ2V0IHRoZSByZW1haW5pbmcgYXJndW1lbnRzLiAqKVxuYW5kIG1ha2VfaW52YWxpZF9hcmcgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT5cbiAgbWFrZV9wcmludGYgayAoQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKSkgZm10XG5cbigqIEZpeCBwYWRkaW5nLCB0YWtlIGl0IGFzIGFuIGV4dHJhIGludGVnZXIgYXJndW1lbnQgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfcGFkZGluZyA6IHR5cGUgeCB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB6IC0+IGEpIHBhZGRpbmcgLT4gKHogLT4gc3RyaW5nKSAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgdHJhbnMgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIHRyYW5zIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3aWR0aCkgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggKHRyYW5zIHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5IC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG5cbigqIEZpeCBwYWRkaW5nIGFuZCBwcmVjaXNpb24gZm9yIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NC4gKilcbigqIFRha2Ugb25lIG9yIHR3byBleHRyYSBpbnRlZ2VyIGFyZ3VtZW50cyBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gOiB0eXBlIHggeSB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiAoaW50X2NvbnYgLT4geiAtPiBzdHJpbmcpIC0+XG4gICAgaW50X2NvbnYgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHByZWMgdHJhbnMgaWNvbnYgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IHRyYW5zIGljb252IHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcblxuKCogQ29udmVydCBhIGZsb2F0LCBmaXggcGFkZGluZyBhbmQgcHJlY2lzaW9uIGlmIG5lZWRlZC4gKilcbigqIFRha2UgdGhlIGZsb2F0IGFyZ3VtZW50IGFuZCBvbmUgb3IgdHdvIGV4dHJhIGludGVnZXIgYXJndW1lbnRzIGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX2Zsb2F0X3BhZGRpbmdfcHJlY2lzaW9uIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIGZsb2F0IC0+IGEpIHByZWNpc2lvbiAtPiBmbG9hdF9jb252IC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCBwcmVjIGZjb252IC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiBwIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG5hbmQgbWFrZV9jdXN0b20gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IHggLT4geSA9XG4gIGZ1biBrIGFjYyByZXN0IGFyaXR5IGYgLT4gbWF0Y2ggYXJpdHkgd2l0aFxuICB8IEN1c3RvbV96ZXJvIC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBmKSkgcmVzdFxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+XG4gICAgZnVuIHggLT5cbiAgICAgIG1ha2VfY3VzdG9tIGsgYWNjIHJlc3QgYXJpdHkgKGYgeClcblxubGV0IGNvbnN0IHggXyA9IHhcblxubGV0IHJlYyBtYWtlX2lwcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT4gc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbiAgZnVuIGsgbyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IENoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoQXJnX3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgQ2FtbF9zdHJpbmcgKE5vX3BhZGRpbmcsIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX3N0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfc3RyaW5nIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBJbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDMyIChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBOYXRpdmVpbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDY0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgQm9vbCAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEJvb2wgKExpdF9wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBCb29sIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBBbHBoYSByZXN0IC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX2N1c3RvbV9hcml0eSBrIG8gcmVzdCBhcml0eVxuICAgIHwgUmVhZGVyIF8gLT5cbiAgICAgICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAgU2VlIHRoZVxuICAgICAgICAgICBub3RlIGluIHRoZSBjb3JyZXNwb25kaW5nIGNhc2UgZm9yIG1ha2VfcHJpbnRmLiAqKVxuICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICB8IEZsdXNoIHJlc3QgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgRm9ybWF0X2FyZyAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpIC0+XG4gICAgICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPlxuICAgICAgICAgIG1ha2VfaXByaW50ZiBrIG9cbiAgICAgICAgICAgIChjb25jYXRfZm10IChyZWNhc3QgZm10IGZtdHR5KSByZXN0KVxuICAgIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaWdub3JlZF9wYXJhbSAoZnVuIF8gLT4gayBvKSAoRW5kX29mX2FjYykgaWduIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiAoZnVuIGtvYyAtPiBtYWtlX2lwcmludGYgayBrb2MgcmVzdCkgbyBmbXQnXG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgKGZ1biBrb2MgLT4gbWFrZV9pcHJpbnRmIGsga29jIHJlc3QpIG8gZm10J1xuICAgIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgICAgICBrIG9cbmFuZCBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiA6XG4gIHR5cGUgeCB5IHogYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPiBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiB4ID1cbiAgZnVuIGsgbyBmbXQgcGFkIHByZWMgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgICAsIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBOb19wYWRkaW5nICAgLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTm9fcGFkZGluZyAgICwgQXJnX3ByZWNpc2lvbiAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgTGl0X3BhZGRpbmcgXywgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IExpdF9wYWRkaW5nIF8sIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKSlcbmFuZCBmbl9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIHggeSBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+XG4gIHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gKGEsIHgsIHkpIGN1c3RvbV9hcml0eSAtPiB5ID1cbiAgZnVuIGsgbyBmbXQgLT4gZnVuY3Rpb25cbiAgICB8IEN1c3RvbV96ZXJvIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gZm10XG4gICAgfCBDdXN0b21fc3VjYyBhcml0eSAtPlxuICAgICAgICBjb25zdCAoZm5fb2ZfY3VzdG9tX2FyaXR5IGsgbyBmbXQgYXJpdHkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIENvbnRpbnVhdGlvbnMgZm9yIG1ha2VfcHJpbnRmICopXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYW4gb3V0cHV0X3N0cmVhbS4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIG91dHB1dF9hY2MgbyBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkB7XCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkBbXCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9jaGFyIG8gY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgZiBvXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBmbHVzaCBvXG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IG91dHB1dF9hY2MgbyBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBidWZwdXRfYWNjIGIgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkB7XCI7IGJ1ZnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAW1wiOyBidWZwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBidWZwdXRfYWNjIGIgcDsgZiBiXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBidWZwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gYnVmcHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgJWEgYW5kICV0LiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBiIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAe1wiOyBzdHJwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQFtcIjsgc3RycHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgKGYgKCkpXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBzdHJwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFcnJvciBtYW5hZ2VtZW50ICopXG5cbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgcHJldHR5LXByaW50ZWQgZXJyb3IgbWVzc2FnZS4gKilcbmxldCBmYWlsd2l0aF9tZXNzYWdlIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMjU2IGluXG4gIGxldCBrIGFjYyA9IHN0cnB1dF9hY2MgYnVmIGFjYzsgZmFpbHdpdGggKEJ1ZmZlci5jb250ZW50cyBidWYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXR0aW5nIHRvb2xzICopXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYW4gb3BlbiBibG9jayBkZXNjcmlwdGlvbiAoaW5kZW50LCBibG9ja190eXBlKSAqKVxubGV0IG9wZW5fYm94X29mX3N0cmluZyBzdHIgPVxuICBpZiBzdHIgPSBcIlwiIHRoZW4gKDAsIFBwX2JveCkgZWxzZVxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICAgIGxldCBpbnZhbGlkX2JveCAoKSA9IGZhaWx3aXRoX21lc3NhZ2UgXCJpbnZhbGlkIGJveCBkZXNjcmlwdGlvbiAlU1wiIHN0ciBpblxuICAgIGxldCByZWMgcGFyc2Vfc3BhY2VzIGkgPVxuICAgICAgaWYgaSA9IGxlbiB0aGVuIGkgZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2ldIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyAtPiBwYXJzZV9zcGFjZXMgKGkgKyAxKVxuICAgICAgICB8IF8gLT4gaVxuICAgIGFuZCBwYXJzZV9sd29yZCBpIGogPVxuICAgICAgaWYgaiA9IGxlbiB0aGVuIGogZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2pdIHdpdGhcbiAgICAgICAgfCAnYScgLi4gJ3onIC0+IHBhcnNlX2x3b3JkIGkgKGogKyAxKVxuICAgICAgICB8IF8gLT4galxuICAgIGFuZCBwYXJzZV9pbnQgaSBqID1cbiAgICAgIGlmIGogPSBsZW4gdGhlbiBqIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltqXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBwYXJzZV9pbnQgaSAoaiArIDEpXG4gICAgICAgIHwgXyAtPiBqIGluXG4gICAgbGV0IHdzdGFydCA9IHBhcnNlX3NwYWNlcyAwIGluXG4gICAgbGV0IHdlbmQgPSBwYXJzZV9sd29yZCB3c3RhcnQgd3N0YXJ0IGluXG4gICAgbGV0IGJveF9uYW1lID0gU3RyaW5nLnN1YiBzdHIgd3N0YXJ0ICh3ZW5kIC0gd3N0YXJ0KSBpblxuICAgIGxldCBuc3RhcnQgPSBwYXJzZV9zcGFjZXMgd2VuZCBpblxuICAgIGxldCBuZW5kID0gcGFyc2VfaW50IG5zdGFydCBuc3RhcnQgaW5cbiAgICBsZXQgaW5kZW50ID1cbiAgICAgIGlmIG5zdGFydCA9IG5lbmQgdGhlbiAwIGVsc2VcbiAgICAgICAgdHJ5IGludF9vZl9zdHJpbmcgKFN0cmluZy5zdWIgc3RyIG5zdGFydCAobmVuZCAtIG5zdGFydCkpXG4gICAgICAgIHdpdGggRmFpbHVyZSBfIC0+IGludmFsaWRfYm94ICgpIGluXG4gICAgbGV0IGV4cF9lbmQgPSBwYXJzZV9zcGFjZXMgbmVuZCBpblxuICAgIGlmIGV4cF9lbmQgPD4gbGVuIHRoZW4gaW52YWxpZF9ib3ggKCk7XG4gICAgbGV0IGJveF90eXBlID0gbWF0Y2ggYm94X25hbWUgd2l0aFxuICAgICAgfCBcIlwiIHwgXCJiXCIgLT4gUHBfYm94XG4gICAgICB8IFwiaFwiICAgICAgLT4gUHBfaGJveFxuICAgICAgfCBcInZcIiAgICAgIC0+IFBwX3Zib3hcbiAgICAgIHwgXCJodlwiICAgICAtPiBQcF9odmJveFxuICAgICAgfCBcImhvdlwiICAgIC0+IFBwX2hvdmJveFxuICAgICAgfCBfICAgICAgICAtPiBpbnZhbGlkX2JveCAoKSBpblxuICAgIChpbmRlbnQsIGJveF90eXBlKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFBhcnNpbmcgdG9vbHMgKilcblxuKCogQ3JlYXRlIGEgcGFkZGluZ19mbXRfZWJiIGZyb20gYSBwYWRkaW5nIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHBhZGRpbmcgdG8gZGlzam9pbiB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50IGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgICAgKF8sIF8sIF8sIF8sIF8pIHBhZGRpbmdfZm10X2ViYiA9XG5mdW4gcGFkIGZtdCAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgICAgICAgICAtPiBQYWRkaW5nX2ZtdF9FQkIgKE5vX3BhZGRpbmcsIGZtdClcbiAgfCBMaXRfcGFkZGluZyAocywgdykgLT4gUGFkZGluZ19mbXRfRUJCIChMaXRfcGFkZGluZyAocywgdyksIGZtdClcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkZGluZ19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBmbXQpXG5cbigqIENyZWF0ZSBhIHByZWNpc2lvbl9mbXRfZWJiIGZyb20gYSBwcmVjaXNpb24gYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdGhlIHR5cGUgcGFyYW1ldGVycyBvZiBhcmd1bWVudCBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHByZWNpc2lvbiAtPiAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgICAoXywgXywgXywgXywgXykgcHJlY2lzaW9uX2ZtdF9lYmIgPVxuZnVuIHByZWMgZm10IC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAgICAtPiBQcmVjaXNpb25fZm10X0VCQiAoTm9fcHJlY2lzaW9uLCBmbXQpXG4gIHwgTGl0X3ByZWNpc2lvbiBwIC0+IFByZWNpc2lvbl9mbXRfRUJCIChMaXRfcHJlY2lzaW9uIHAsIGZtdClcbiAgfCBBcmdfcHJlY2lzaW9uICAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKEFyZ19wcmVjaXNpb24sIGZtdClcblxuKCogQ3JlYXRlIGEgcGFkcHJlY19mbXRfZWJiIGZyb20gYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwYWRkaW5nIGFuZCB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50c1xuICAgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3BhZHByZWNfZm10X2ViYiA6IHR5cGUgeCB5IHogdCAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHosIHQpIHByZWNpc2lvbiAtPlxuICAgIChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAoXywgXywgXywgXywgXykgcGFkcHJlY19mbXRfZWJiID1cbmZ1biBwYWQgcHJlYyBmbXQgLT5cbiAgbGV0IFByZWNpc2lvbl9mbXRfRUJCIChwcmVjLCBmbXQnKSA9IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgcHJlYyBmbXQgaW5cbiAgbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nICAgICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChOb19wYWRkaW5nLCBwcmVjLCBmbXQnKVxuICB8IExpdF9wYWRkaW5nIChzLCB3KSAtPiBQYWRwcmVjX2ZtdF9FQkIgKExpdF9wYWRkaW5nIChzLCB3KSwgcHJlYywgZm10JylcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBwcmVjLCBmbXQnKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcGFyc2luZyAqKVxuXG4oKiBQYXJzZSBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBmb3JtYXQgYW5kIGNyZWF0ZSBhIGZtdF9lYmIuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gaW4gY2FzZSBvZiBpbnZhbGlkIGZvcm1hdC4gKilcbmxldCBmbXRfZWJiX29mX3N0cmluZyA/bGVnYWN5X2JlaGF2aW9yIHN0ciA9XG4gICgqIFBhcmFtZXRlcnMgbmFtaW5nIGNvbnZlbnRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIGxpdF9zdGFydDogc3RhcnQgb2YgdGhlIGxpdGVyYWwgc2VxdWVuY2UuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gc3RyX2luZDogY3VycmVudCBpbmRleCBpbiB0aGUgc3RyaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBlbmRfaW5kOiBlbmQgb2YgdGhlIGN1cnJlbnQgKHN1Yi0pZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHBjdF9pbmQ6IGluZGV4IG9mIHRoZSAnJScgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAqKVxuICAoKiAgIC0gemVybzogIGlzIHRoZSAnMCcgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBtaW51czogaXMgdGhlICctJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHBsdXM6ICBpcyB0aGUgJysnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gaGFzaDogIGlzIHRoZSAnIycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBzcGFjZTogaXMgdGhlICcgJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIGlnbjogICBpcyB0aGUgJ18nIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gcGFkOiBwYWRkaW5nIG9mIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBwcmVjOiBwcmVjaXNpb24gb2YgdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHN5bWI6IGNoYXIgcmVwcmVzZW50aW5nIHRoZSBjb252ZXJzaW9uICgnYycsICdzJywgJ2QnLCAuLi4pLiAqKVxuICAoKiAgIC0gY2hhcl9zZXQ6IHNldCBvZiBjaGFyYWN0ZXJzIGFzIGJpdG1hcCAoc2VlIHNjYW5mICVbLi4uXSkuICAgICopXG5cbiAgbGV0IGxlZ2FjeV9iZWhhdmlvciA9IG1hdGNoIGxlZ2FjeV9iZWhhdmlvciB3aXRoXG4gICAgfCBTb21lIGZsYWcgLT4gZmxhZ1xuICAgIHwgTm9uZSAtPiB0cnVlXG4gICgqICBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkLCB0aGUgZm9ybWF0IHBhcnNlciB0cmllcyB0byBiZWhhdmUgYXNcbiAgICAgIHRoZSA8NC4wMiBpbXBsZW1lbnRhdGlvbnMsIGluIHBhcnRpY3VsYXIgaXQgaWdub3JlcyBtb3N0IGJlbmluZVxuICAgICAgbm9uc2Vuc2ljYWwgZm9ybWF0LiBXaGVuIHRoZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIHJlamVjdCBhbnlcbiAgICAgIGZvcm1hdCB0aGF0IGlzIG5vdCBhY2NlcHRlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi5cblxuICAgICAgQSB0eXBpY2FsIGV4YW1wbGUgd291bGQgYmUgXCIlKyBkXCI6IHNwZWNpZnlpbmcgYm90aCAnKycgKGlmIHRoZVxuICAgICAgbnVtYmVyIGlzIHBvc2l0aXZlLCBwYWQgd2l0aCBhICcrJyB0byBnZXQgdGhlIHNhbWUgd2lkdGggYXNcbiAgICAgIG5lZ2F0aXZlIG51bWJlcnMpIGFuZCAnICcgKGlmIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUsIHBhZCB3aXRoXG4gICAgICBhIHNwYWNlKSBkb2VzIG5vdCBtYWtlIHNlbnNlLCBidXQgdGhlIGxlZ2FjeSAoPCA0LjAyKVxuICAgICAgaW1wbGVtZW50YXRpb24gd2FzIGhhcHB5IHRvIGp1c3QgaWdub3JlIHRoZSBzcGFjZS5cbiAgKilcbiAgaW5cblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UuICopXG4gIGxldCBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIHN0cl9pbmQgbXNnID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAlc1wiXG4gICAgICBzdHIgc3RyX2luZCBtc2dcbiAgaW5cblxuICAoKiBVc2VkIHdoZW4gdGhlIGVuZCBvZiB0aGUgZm9ybWF0IChvciB0aGUgY3VycmVudCBzdWItZm9ybWF0KSB3YXMgZW5jb3VudGVyZWRcbiAgICAgIHVuZXhwZWN0ZWRseS4gKilcbiAgbGV0IHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kID1cbiAgICBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIGVuZF9pbmRcbiAgICAgIFwidW5leHBlY3RlZCBlbmQgb2YgZm9ybWF0XCJcbiAgaW5cblxuICAoKiBVc2VkIGZvciAlMGM6IG5vIG90aGVyIHdpZHRocyBhcmUgaW1wbGVtZW50ZWQgKilcbiAgbGV0IGludmFsaWRfbm9ubnVsbF9jaGFyX3dpZHRoIHN0cl9pbmQgPVxuICAgIGludmFsaWRfZm9ybWF0X21lc3NhZ2Ugc3RyX2luZFxuICAgICAgXCJub24temVybyB3aWR0aHMgYXJlIHVuc3VwcG9ydGVkIGZvciAlYyBjb252ZXJzaW9uc1wiXG4gIGluXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiBvcHRpb24gZGVwZW5kZW5jeVxuICAgICBwcm9ibGVtLiAqKVxuICBsZXQgaW52YWxpZF9mb3JtYXRfd2l0aG91dCBzdHJfaW5kIGMgcyA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJyVjJyB3aXRob3V0ICVzXCJcbiAgICAgIHN0ciBzdHJfaW5kIGMgc1xuICBpblxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiB1bmV4cGVjdGVkXG4gICAgIGNoYXJhY3Rlci4gKilcbiAgbGV0IGV4cGVjdGVkX2NoYXJhY3RlciBzdHJfaW5kIGV4cGVjdGVkIHJlYWQgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJXMgZXhwZWN0ZWQsIHJlYWQgJUNcIlxuICAgICAgc3RyIHN0cl9pbmQgZXhwZWN0ZWQgcmVhZFxuICBpblxuXG4gICgqIFBhcnNlIHRoZSBzdHJpbmcgZnJvbSBiZWdfaW5kIChpbmNsdWRlZCkgdG8gZW5kX2luZCAoZXhjbHVkZWQpLiAqKVxuICBsZXQgcmVjIHBhcnNlIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGJlZ19pbmQgZW5kX2luZCAtPiBwYXJzZV9saXRlcmFsIGJlZ19pbmQgYmVnX2luZCBlbmRfaW5kXG5cbiAgKCogUmVhZCBsaXRlcmFsIGNoYXJhY3RlcnMgdXAgdG8gJyUnIG9yICdAJyBzcGVjaWFsIGNoYXJhY3RlcnMuICopXG4gIGFuZCBwYXJzZV9saXRlcmFsIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBsaXRfc3RhcnQgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBFbmRfb2ZfZm9ybWF0IGVsc2VcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZV9mb3JtYXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIGZtdF9yZXN0XG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlX2FmdGVyX2F0IChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBmbXRfcmVzdFxuICAgICAgfCBfIC0+XG4gICAgICAgIHBhcnNlX2xpdGVyYWwgbGl0X3N0YXJ0IChzdHJfaW5kICsgMSkgZW5kX2luZFxuXG4gICgqIFBhcnNlIGEgZm9ybWF0IGFmdGVyICclJyAqKVxuICBhbmQgcGFyc2VfZm9ybWF0IDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgZW5kX2luZCAtPiBwYXJzZV9pZ24gcGN0X2luZCAocGN0X2luZCArIDEpIGVuZF9pbmRcblxuICBhbmQgcGFyc2VfaWduIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdfJyAtPiBwYXJzZV9mbGFncyBwY3RfaW5kIChzdHJfaW5kKzEpIGVuZF9pbmQgdHJ1ZVxuICAgICAgfCBfIC0+IHBhcnNlX2ZsYWdzIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGZhbHNlXG5cbiAgYW5kIHBhcnNlX2ZsYWdzIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiXG4gID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGlnbiAtPlxuICAgIGxldCB6ZXJvID0gcmVmIGZhbHNlIGFuZCBtaW51cyA9IHJlZiBmYWxzZVxuICAgIGFuZCBwbHVzID0gcmVmIGZhbHNlIGFuZCBzcGFjZSA9IHJlZiBmYWxzZVxuICAgIGFuZCBoYXNoID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IHNldF9mbGFnIHN0cl9pbmQgZmxhZyA9XG4gICAgICAoKiBpbiBsZWdhY3kgbW9kZSwgZHVwbGljYXRlIGZsYWdzIGFyZSBhY2NlcHRlZCAqKVxuICAgICAgaWYgIWZsYWcgJiYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBkdXBsaWNhdGUgZmxhZyAlQ1wiXG4gICAgICAgICAgc3RyIHN0cl9pbmQgc3RyLltzdHJfaW5kXTtcbiAgICAgIGZsYWcgOj0gdHJ1ZTtcbiAgICBpblxuICAgIGxldCByZWMgcmVhZF9mbGFncyBzdHJfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJzAnIC0+IHNldF9mbGFnIHN0cl9pbmQgemVybzsgIHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnLScgLT4gc2V0X2ZsYWcgc3RyX2luZCBtaW51czsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcrJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHBsdXM7ICByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJyMnIC0+IHNldF9mbGFnIHN0cl9pbmQgaGFzaDsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcgJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHNwYWNlOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgXyAtPlxuICAgICAgICBwYXJzZV9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kXG4gICAgICAgICAgIXplcm8gIW1pbnVzICFwbHVzICFoYXNoICFzcGFjZSBpZ25cbiAgICAgIGVuZFxuICAgIGluXG4gICAgcmVhZF9mbGFncyBzdHJfaW5kXG5cbiAgKCogVHJ5IHRvIHJlYWQgYSBkaWdpdGFsIG9yIGEgJyonIHBhZGRpbmcuICopXG4gIGFuZCBwYXJzZV9wYWRkaW5nIDogdHlwZSBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgemVybyBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBsZXQgcGFkdHkgPSBtYXRjaCB6ZXJvLCBtaW51cyB3aXRoXG4gICAgICB8IGZhbHNlLCBmYWxzZSAtPiBSaWdodFxuICAgICAgfCBmYWxzZSwgdHJ1ZSAgLT4gTGVmdFxuICAgICAgfCAgdHJ1ZSwgZmFsc2UgLT4gWmVyb3NcbiAgICAgIHwgIHRydWUsIHRydWUgIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExlZnRcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJy0nIFwiMFwiIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+XG4gICAgICBsZXQgbmV3X2luZCwgd2lkdGggPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIG5ld19pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIChMaXRfcGFkZGluZyAocGFkdHksIHdpZHRoKSlcbiAgICB8ICcqJyAtPlxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2VcbiAgICAgICAgaWduIChBcmdfcGFkZGluZyBwYWR0eSlcbiAgICB8IF8gLT5cbiAgICAgIGJlZ2luIG1hdGNoIHBhZHR5IHdpdGhcbiAgICAgIHwgTGVmdCAgLT5cbiAgICAgICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICctJyBcInBhZGRpbmdcIjtcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgfCBaZXJvcyAtPlxuICAgICAgICAgKCogYSAnMCcgcGFkZGluZyBpbmRpY2F0aW9uIG5vdCBmb2xsb3dlZCBieSBhbnl0aGluZyBzaG91bGRcbiAgICAgICAgICAgYmUgaW50ZXJwcmV0ZWQgYXMgYSBSaWdodCBwYWRkaW5nIG9mIHdpZHRoIDAuIFRoaXMgaXMgdXNlZFxuICAgICAgICAgICBieSBzY2FubmluZyBjb252ZXJzaW9ucyAlMHMgYW5kICUwYyAqKVxuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICAoTGl0X3BhZGRpbmcgKFJpZ2h0LCAwKSlcbiAgICAgIHwgUmlnaHQgLT5cbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgZW5kXG5cbiAgKCogSXMgcHJlY2lzaW9uIGRlZmluZWQ/ICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wYWRkaW5nIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJy4nIC0+XG4gICAgICBwYXJzZV9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICBwYWRcbiAgICB8IHN5bWIgLT5cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgTm9fcHJlY2lzaW9uIHBhZCBzeW1iXG5cbiAgKCogUmVhZCB0aGUgZGlnaXRhbCBvciAnKicgcHJlY2lzaW9uLiAqKVxuICBhbmQgcGFyc2VfcHJlY2lzaW9uIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9saXRlcmFsIG1pbnVzIHN0cl9pbmQgPVxuICAgICAgbGV0IG5ld19pbmQsIHByZWMgPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgbmV3X2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgcGFkIChMaXRfcHJlY2lzaW9uIHByZWMpIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX2xpdGVyYWwgbWludXMgc3RyX2luZFxuICAgIHwgKCcrJyB8ICctJykgYXMgc3ltYiB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPlxuICAgICAgKCogTGVnYWN5IG1vZGUgd291bGQgYWNjZXB0IGFuZCBpZ25vcmUgJysnIG9yICctJyBiZWZvcmUgdGhlXG4gICAgICAgICBpbnRlZ2VyIGRlc2NyaWJpbmcgdGhlIGRlc2lyZWQgcHJlY2lzaW9uOyBub3RlIHRoYXQgdGhpc1xuICAgICAgICAgY2Fubm90IGhhcHBlbiBmb3IgcGFkZGluZyB3aWR0aCwgYXMgJysnIGFuZCAnLScgYWxyZWFkeSBoYXZlXG4gICAgICAgICBhIHNlbWFudGljcyB0aGVyZS5cblxuICAgICAgICAgVGhhdCBzYWlkLCB0aGUgaWRlYSAoc3VwcG9ydGVkIGJ5IHRoaXMgdHdlYWspIHRoYXQgd2lkdGggYW5kXG4gICAgICAgICBwcmVjaXNpb24gbGl0ZXJhbHMgYXJlIFwiaW50ZWdlciBsaXRlcmFsc1wiIGluIHRoZSBPQ2FtbCBzZW5zZSBpc1xuICAgICAgICAgc3RpbGwgYmxhdGFudGx5IHdyb25nLCBhcyAxMjNfNDU2IG9yIDB4RkYgYXJlIHJlamVjdGVkLiAqKVxuICAgICAgcGFyc2VfbGl0ZXJhbCAobWludXMgfHwgc3ltYiA9ICctJykgKHN0cl9pbmQgKyAxKVxuICAgIHwgJyonIC0+XG4gICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlXG4gICAgICAgIGlnbiBwYWQgQXJnX3ByZWNpc2lvblxuICAgIHwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogbm90ZSB0aGF0IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBkaWQgbm90IGlnbm9yZSAnLicgd2l0aG91dFxuICAgICAgICAgICBhIG51bWJlciAoYXMgaXQgZG9lcyBmb3IgcGFkZGluZyBpbmRpY2F0aW9ucyksIGJ1dFxuICAgICAgICAgICBpbnRlcnByZXRzIGl0IGFzICcuMCcgKilcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBwYWQgKExpdF9wcmVjaXNpb24gMClcbiAgICAgIGVsc2VcbiAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICcuJyBcInByZWNpc2lvblwiXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIGNvbnZlcnNpb24uICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wcmVjaXNpb24gOiB0eXBlIHggeSB6IHQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgeSkgcGFkZGluZyAtPiAoeiwgdCkgcHJlY2lzaW9uIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIHByZWMgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9jb252ICh0eXBlIHUpICh0eXBlIHYpIChwYWRwcmVjIDogKHUsIHYpIHBhZGRpbmcpID1cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgcHJlYyBwYWRwcmVjIHN0ci5bc3RyX2luZF0gaW5cbiAgICAoKiBpbiBsZWdhY3kgbW9kZSwgc29tZSBmb3JtYXRzICglcyBhbmQgJVMpIGFjY2VwdCBhIHdlaXJkIG1peCBvZlxuICAgICAgIHBhZGRpbmcgYW5kIHByZWNpc2lvbiwgd2hpY2ggaXMgbWVyZ2VkIGFzIGEgc2luZ2xlIHBhZGRpbmdcbiAgICAgICBpbmZvcm1hdGlvbi4gRm9yIGV4YW1wbGUsIGluICUuMTBzIHRoZSBwcmVjaXNpb24gaXMgaW1wbGljaXRseVxuICAgICAgIHVuZGVyc3Rvb2QgYXMgcGFkZGluZyAlMTBzLCBidXQgdGhlIGxlZnQtcGFkZGluZyBjb21wb25lbnQgbWF5XG4gICAgICAgYmUgc3BlY2lmaWVkIGVpdGhlciBhcyBhIGxlZnQgcGFkZGluZyBvciBhIG5lZ2F0aXZlIHByZWNpc2lvbjpcbiAgICAgICAlLS4zcyBhbmQgJS4tM3MgYXJlIGVxdWl2YWxlbnQgdG8gJS0zcyAqKVxuICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nIC0+IChcbiAgICAgIG1hdGNoIG1pbnVzLCBwcmVjIHdpdGhcbiAgICAgICAgfCBfLCBOb19wcmVjaXNpb24gLT4gcGFyc2VfY29udiBOb19wYWRkaW5nXG4gICAgICAgIHwgZmFsc2UsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoUmlnaHQsIG4pKVxuICAgICAgICB8IHRydWUsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoTGVmdCwgbikpXG4gICAgICAgIHwgZmFsc2UsIEFyZ19wcmVjaXNpb24gLT4gcGFyc2VfY29udiAoQXJnX3BhZGRpbmcgUmlnaHQpXG4gICAgICAgIHwgdHJ1ZSwgQXJnX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IChBcmdfcGFkZGluZyBMZWZ0KVxuICAgIClcbiAgICB8IHBhZCAtPiBwYXJzZV9jb252IHBhZFxuXG4gICgqIENhc2UgYW5hbHlzaXMgb24gY29udmVyc2lvbi4gKilcbiAgYW5kIHBhcnNlX2NvbnZlcnNpb24gOiB0eXBlIHggeSB6IHQgdSB2IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+ICh4LCB5KSBwYWRkaW5nIC0+XG4gICAgICAgICh6LCB0KSBwcmVjaXNpb24gLT4gKHUsIHYpIHBhZGRpbmcgLT4gY2hhciAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCBwcmVjIHBhZHByZWMgc3ltYiAtPlxuICAgICgqIEZsYWdzIHVzZWQgdG8gY2hlY2sgb3B0aW9uIHVzYWdlcy9jb21wYXRpYmlsaXRpZXMuICopXG4gICAgbGV0IHBsdXNfdXNlZCAgPSByZWYgZmFsc2UgYW5kIGhhc2hfdXNlZCA9IHJlZiBmYWxzZVxuICAgIGFuZCBzcGFjZV91c2VkID0gcmVmIGZhbHNlIGFuZCBpZ25fdXNlZCAgID0gcmVmIGZhbHNlXG4gICAgYW5kIHBhZF91c2VkICAgPSByZWYgZmFsc2UgYW5kIHByZWNfdXNlZCAgPSByZWYgZmFsc2UgaW5cblxuICAgICgqIEFjY2VzcyB0byBvcHRpb25zLCB1cGRhdGUgZmxhZ3MuICopXG4gICAgbGV0IGdldF9wbHVzICAgICgpID0gcGx1c191c2VkICA6PSB0cnVlOyBwbHVzXG4gICAgYW5kIGdldF9oYXNoICAgKCkgPSBoYXNoX3VzZWQgOj0gdHJ1ZTsgaGFzaFxuICAgIGFuZCBnZXRfc3BhY2UgICAoKSA9IHNwYWNlX3VzZWQgOj0gdHJ1ZTsgc3BhY2VcbiAgICBhbmQgZ2V0X2lnbiAgICAgKCkgPSBpZ25fdXNlZCAgIDo9IHRydWU7IGlnblxuICAgIGFuZCBnZXRfcGFkICAgICAoKSA9IHBhZF91c2VkICAgOj0gdHJ1ZTsgcGFkXG4gICAgYW5kIGdldF9wcmVjICAgICgpID0gcHJlY191c2VkICA6PSB0cnVlOyBwcmVjXG4gICAgYW5kIGdldF9wYWRwcmVjICgpID0gcGFkX3VzZWQgICA6PSB0cnVlOyBwYWRwcmVjIGluXG5cbiAgICBsZXQgZ2V0X2ludF9wYWQgKCkgOiAoeCx5KSBwYWRkaW5nID1cbiAgICAgICgqICU1LjNkIGlzIGFjY2VwdGVkIGFuZCBtZWFuaW5nZnVsOiBwYWQgdG8gbGVuZ3RoIDUgd2l0aFxuICAgICAgICAgc3BhY2VzLCBidXQgZmlyc3QgcGFkIHdpdGggemVyb3MgdXB0byBsZW5ndGggMyAoMC1wYWRkaW5nXG4gICAgICAgICBpcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgXCJwcmVjaXNpb25cIiBmb3IgaW50ZWdlciBmb3JtYXRzKS5cblxuICAgICAgICAgJTA1LjNkIGlzIHJlZHVuZGFudDogcGFkIHRvIGxlbmd0aCA1ICp3aXRoIHplcm9zKiwgYnV0XG4gICAgICAgICBmaXJzdCBwYWQgd2l0aCB6ZXJvcy4uLiBUbyBhZGQgaW5zdWx0IHRvIHRoZSBpbmp1cnksIHRoZVxuICAgICAgICAgbGVnYWN5IGltcGxlbWVudGF0aW9uIGlnbm9yZXMgdGhlIDAtcGFkZGluZyBpbmRpY2F0aW9uIGFuZFxuICAgICAgICAgZG9lcyB0aGUgNSBwYWRkaW5nIHdpdGggc3BhY2VzIGluc3RlYWQuIFdlIHJldXNlIHRoaXNcbiAgICAgICAgIGludGVycHJldGF0aW9uIGZvciBjb21wYXRpYmlsaXR5LCBidXQgc3RhdGljYWxseSByZWplY3QgdGhpc1xuICAgICAgICAgZm9ybWF0IHdoZW4gdGhlIGxlZ2FjeSBtb2RlIGlzIGRpc2FibGVkLCB0byBwcm90ZWN0IHN0cmljdFxuICAgICAgICAgdXNlcnMgZnJvbSB0aGlzIGNvcm5lciBjYXNlLiAqKVxuICAgICAgIG1hdGNoIGdldF9wYWQgKCksIGdldF9wcmVjICgpIHdpdGhcbiAgICAgICAgIHwgcGFkLCBOb19wcmVjaXNpb24gLT4gcGFkXG4gICAgICAgICB8IE5vX3BhZGRpbmcsIF8gICAgIC0+IE5vX3BhZGRpbmdcbiAgICAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCBuKSwgXyAtPlxuICAgICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIG4pXG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IEFyZ19wYWRkaW5nIFplcm9zLCBfIC0+XG4gICAgICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IExpdF9wYWRkaW5nIF8gYXMgcGFkLCBfIC0+IHBhZFxuICAgICAgICAgfCBBcmdfcGFkZGluZyBfIGFzIHBhZCwgXyAtPiBwYWQgaW5cblxuICAgICgqIENoZWNrIHRoYXQgcGFkdHkgPD4gWmVyb3MuICopXG4gICAgbGV0IGNoZWNrX25vXzAgc3ltYiAodHlwZSBhIGIpIChwYWQgOiAoYSwgYikgcGFkZGluZykgOiAoYSxiKSBwYWRkaW5nID1cbiAgICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gcGFkXG4gICAgICB8IExpdF9wYWRkaW5nICgoTGVmdCB8IFJpZ2h0KSwgXykgLT4gcGFkXG4gICAgICB8IEFyZ19wYWRkaW5nIChMZWZ0IHwgUmlnaHQpIC0+IHBhZFxuICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKVxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiMFwiXG4gICAgICB8IEFyZ19wYWRkaW5nIFplcm9zIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCIwXCJcbiAgICBpblxuXG4gICAgKCogR2V0IHBhZGRpbmcgYXMgYSBwYWRfb3B0aW9uIChzZWUgXCIlX1wiLCBcIiV7XCIsIFwiJShcIiBhbmQgXCIlW1wiKS5cbiAgICAgICAobm8gbmVlZCBmb3IgbGVnYWN5IG1vZGUgdHdlYWtpbmcsIHRob3NlIHdlcmUgcmVqZWN0ZWQgYnkgdGhlXG4gICAgICAgbGVnYWN5IHBhcnNlciBhcyB3ZWxsKSAqKVxuICAgIGxldCBvcHRfb2ZfcGFkIGMgKHR5cGUgYSkgKHR5cGUgYikgKHBhZCA6IChhLCBiKSBwYWRkaW5nKSA9IG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gTm9uZVxuICAgICAgfCBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKSAtPiBTb21lIHdpZHRoXG4gICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIFNvbWUgd2lkdGhcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicwJ1wiXG4gICAgICB8IExpdF9wYWRkaW5nIChMZWZ0LCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gU29tZSB3aWR0aFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJy0nXCJcbiAgICAgIHwgQXJnX3BhZGRpbmcgXyAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicqJ1wiXG4gICAgaW5cbiAgICBsZXQgZ2V0X3BhZF9vcHQgYyA9IG9wdF9vZl9wYWQgYyAoZ2V0X3BhZCAoKSkgaW5cbiAgICBsZXQgZ2V0X3BhZHByZWNfb3B0IGMgPSBvcHRfb2ZfcGFkIGMgKGdldF9wYWRwcmVjICgpKSBpblxuXG4gICAgKCogR2V0IHByZWNpc2lvbiBhcyBhIHByZWNfb3B0aW9uIChzZWUgXCIlX2ZcIikuXG4gICAgICAgKG5vIG5lZWQgZm9yIGxlZ2FjeSBtb2RlIHR3ZWFraW5nLCB0aG9zZSB3ZXJlIHJlamVjdGVkIGJ5IHRoZVxuICAgICAgIGxlZ2FjeSBwYXJzZXIgYXMgd2VsbCkgKilcbiAgICBsZXQgZ2V0X3ByZWNfb3B0ICgpID0gbWF0Y2ggZ2V0X3ByZWMgKCkgd2l0aFxuICAgICAgfCBOb19wcmVjaXNpb24gICAgICAgLT4gTm9uZVxuICAgICAgfCBMaXRfcHJlY2lzaW9uIG5kZWMgLT4gU29tZSBuZGVjXG4gICAgICB8IEFyZ19wcmVjaXNpb24gICAgICAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJ18nIFwiJyonXCJcbiAgICBpblxuXG4gICAgbGV0IGZtdF9yZXN1bHQgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICcsJyAtPlxuICAgICAgcGFyc2Ugc3RyX2luZCBlbmRfaW5kXG4gICAgfCAnYycgLT5cbiAgICAgIGxldCBjaGFyX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICVjICopXG4gICAgICAgIGlmIGdldF9pZ24gKClcbiAgICAgICAgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NoYXIsIGZtdF9yZXN0KSlcbiAgICAgICAgZWxzZSBGbXRfRUJCIChDaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBzY2FuX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICUwYyAqKVxuICAgICAgICBpZiBnZXRfaWduICgpXG4gICAgICAgIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9zY2FuX25leHRfY2hhciwgZm10X3Jlc3QpKVxuICAgICAgICBlbHNlIEZtdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBiZWdpbiBtYXRjaCBnZXRfcGFkX29wdCAnYycgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gY2hhcl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIDAgLT4gc2Nhbl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIF9uIC0+XG4gICAgICAgICAgIGlmIG5vdCBsZWdhY3lfYmVoYXZpb3JcbiAgICAgICAgICAgdGhlbiBpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCBzdHJfaW5kXG4gICAgICAgICAgIGVsc2UgKCogbGVnYWN5IGlnbm9yZXMgJWMgd2lkdGhzICopIGNoYXJfZm9ybWF0IGZtdF9yZXN0XG4gICAgICBlbmRcbiAgICB8ICdDJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NhbWxfY2hhcixmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKENhbWxfY2hhciBmbXRfcmVzdClcbiAgICB8ICdzJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zdHJpbmcgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKFN0cmluZyAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdTJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9jYW1sX3N0cmluZyAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnZCcgfCAnaScgfCAneCcgfCAnWCcgfCAnbycgfCAndScgLT5cbiAgICAgIGxldCBpY29udiA9IGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAoZ2V0X3NwYWNlICgpKSBzeW1iIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChJbnQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdOJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gVG9rZW5fY291bnRlciBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCkpXG4gICAgfCAnbCcgfCAnbicgfCAnTCcgd2hlbiBzdHJfaW5kPWVuZF9pbmQgfHwgbm90IChpc19pbnRfYmFzZSBzdHIuW3N0cl9pbmRdKSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gY291bnRlcl9vZl9jaGFyIHN5bWIgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpKVxuICAgIHwgJ2wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQzMiAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDMyIChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnbicgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSlcbiAgICAgICAgICAoZ2V0X2hhc2ggKCkpIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX25hdGl2ZWludCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKE5hdGl2ZWludCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ0wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQ2NCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDY0IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnZicgfCAnZScgfCAnRScgfCAnZycgfCAnRycgfCAnRicgfCAnaCcgfCAnSCcgLT5cbiAgICAgIGxldCBmY29udiA9XG4gICAgICAgIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmRcbiAgICAgICAgICAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSkgKGdldF9zcGFjZSAoKSkgc3ltYiBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZmxvYXQgKGdldF9wYWRfb3B0ICdfJywgZ2V0X3ByZWNfb3B0ICgpKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2InIHwgJ0InIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Jvb2wgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEJvb2wgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnYScgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChBbHBoYSBmbXRfcmVzdClcbiAgICB8ICd0JyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKFRoZXRhIGZtdF9yZXN0KVxuICAgIHwgJ3InIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfcmVhZGVyLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKFJlYWRlciBmbXRfcmVzdClcbiAgICB8ICchJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZsdXNoIGZtdF9yZXN0KVxuICAgIHwgKCclJyB8ICdAJykgYXMgYyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoYywgZm10X3Jlc3QpKVxuICAgIHwgJ3snIC0+XG4gICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCAnfScgaW5cbiAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIHN1Yl9lbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2ZtdHR5ID0gZm10dHlfb2ZfZm10IHN1Yl9mbXQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ3snLCBzdWJfZm10dHksIGZtdF9yZXN0KSlcbiAgICB8ICcoJyAtPlxuICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCBzdHJfaW5kIGVuZF9pbmQgJyknIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdWJfZW5kICsgMikgZW5kX2luZCBpblxuICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgc3ViX2VuZCBpblxuICAgICAgbGV0IHN1Yl9mbXR0eSA9IGZtdHR5X29mX2ZtdCBzdWJfZm10IGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X3N1YnN0IChnZXRfcGFkX29wdCAnKCcsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpKVxuICAgIHwgJ1snIC0+XG4gICAgICBsZXQgbmV4dF9pbmQsIGNoYXJfc2V0ID0gcGFyc2VfY2hhcl9zZXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9jaGFyX3NldCAoZ2V0X3BhZF9vcHQgJ18nLCBjaGFyX3NldCkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2NoYXJfc2V0IChnZXRfcGFkX29wdCAnWycsIGNoYXJfc2V0LCBmbXRfcmVzdCkpXG4gICAgfCAnLScgfCAnKycgfCAnIycgfCAnICcgfCAnXycgLT5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgIGZsYWcgJUMgaXMgb25seSBhbGxvd2VkIGFmdGVyIHRoZSAnJSUnLCBiZWZvcmUgcGFkZGluZyBhbmQgcHJlY2lzaW9uXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgc3ltYlxuICAgIHwgXyAtPlxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgaW52YWxpZCBjb252ZXJzaW9uIFxcXCIlJSVjXFxcIlwiIHN0ciAoc3RyX2luZCAtIDEpIHN5bWJcbiAgICBpblxuICAgICgqIENoZWNrIGZvciB1bnVzZWQgb3B0aW9ucywgYW5kIHJlamVjdCB0aGVtIGFzIGluY29tcGF0aWJsZS5cblxuICAgICAgIFN1Y2ggY2hlY2tzIG5lZWQgdG8gYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsIGFzIHRoZSBsZWdhY3lcbiAgICAgICBwYXJzZXIgc2lsZW50bHkgaWdub3JlZCBpbmNvbXBhdGlibGUgZmxhZ3MuICopXG4gICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuIGJlZ2luXG4gICAgaWYgbm90ICFwbHVzX3VzZWQgJiYgcGx1cyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicrJ1wiO1xuICAgIGlmIG5vdCAhaGFzaF91c2VkICYmIGhhc2ggdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIjtcbiAgICBpZiBub3QgIXNwYWNlX3VzZWQgJiYgc3BhY2UgdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInICdcIjtcbiAgICBpZiBub3QgIXBhZF91c2VkICAmJiBQYWRkaW5nX0VCQiBwYWQgPD4gUGFkZGluZ19FQkIgTm9fcGFkZGluZyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcImBwYWRkaW5nJ1wiO1xuICAgIGlmIG5vdCAhcHJlY191c2VkICYmIFByZWNpc2lvbl9FQkIgcHJlYyA8PiBQcmVjaXNpb25fRUJCIE5vX3ByZWNpc2lvbiB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgKGlmIGlnbiB0aGVuICdfJyBlbHNlIHN5bWIpXG4gICAgICAgIFwiYHByZWNpc2lvbidcIjtcbiAgICBpZiBpZ24gJiYgcGx1cyB0aGVuIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnXycgXCInKydcIjtcbiAgICBlbmQ7XG4gICAgKCogdGhpcyBsYXN0IHRlc3QgbXVzdCBub3QgYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsXG4gICAgICAgYXMgaWdub3JpbmcgaXQgd291bGQgdHlwaWNhbGx5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0eXBpbmdcbiAgICAgICB0aGFuIHdoYXQgdGhlIGxlZ2FjeSBwYXJzZXIgdXNlZCAqKVxuICAgIGlmIG5vdCAhaWduX3VzZWQgJiYgaWduIHRoZW5cbiAgICAgIGJlZ2luIG1hdGNoIHN5bWIgd2l0aFxuICAgICAgICAoKiBhcmd1bWVudC1sZXNzIGZvcm1hdHMgY2FuIHNhZmVseSBiZSBpZ25vcmVkIGluIGxlZ2FjeSBtb2RlICopXG4gICAgICAgIHwgKCdAJyB8ICclJyB8ICchJyB8ICcsJykgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gKClcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInXydcIlxuICAgICAgZW5kO1xuICAgIGZtdF9yZXN1bHRcblxuICAoKiBQYXJzZSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uIChhZnRlciAnQCcpLiAqKVxuICBhbmQgcGFyc2VfYWZ0ZXJfYXQgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKCdAJywgRW5kX29mX2Zvcm1hdCkpXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdbJyAtPlxuICAgICAgICBwYXJzZV90YWcgZmFsc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICddJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQ2xvc2VfYm94LCBmbXRfcmVzdCkpXG4gICAgICB8ICd7JyAtPlxuICAgICAgICBwYXJzZV90YWcgdHJ1ZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ30nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChDbG9zZV90YWcsIGZtdF9yZXN0KSlcbiAgICAgIHwgJywnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChCcmVhayAoXCJALFwiLCAwLCAwKSwgZm10X3Jlc3QpKVxuICAgICAgfCAnICcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEJyZWFrIChcIkAgXCIsIDEsIDApLCBmbXRfcmVzdCkpXG4gICAgICB8ICc7JyAtPlxuICAgICAgICBwYXJzZV9nb29kX2JyZWFrIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnPycgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZGbHVzaCwgZm10X3Jlc3QpKVxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRm9yY2VfbmV3bGluZSwgZm10X3Jlc3QpKVxuICAgICAgfCAnLicgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZsdXNoX25ld2xpbmUsIGZtdF9yZXN0KSlcbiAgICAgIHwgJzwnIC0+XG4gICAgICAgIHBhcnNlX21hZ2ljX3NpemUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRXNjYXBlZF9hdCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgd2hlbiBzdHJfaW5kICsgMSA8IGVuZF9pbmQgJiYgc3RyLltzdHJfaW5kICsgMV0gPSAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEVzY2FwZWRfcGVyY2VudCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoQ2hhcl9saXRlcmFsICgnQCcsIGZtdF9yZXN0KSlcbiAgICAgIHwgYyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoU2Nhbl9pbmRpYyBjLCBmbXRfcmVzdCkpXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIG9wdGlvbmFsIDxuYW1lPiBhZnRlciBcIkB7XCIgb3IgXCJAW1wiLiAqKVxuICBhbmQgcGFyc2VfdGFnIDogdHlwZSBlIGYgLiBib29sIC0+IGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gaXNfb3Blbl90YWcgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgdHJ5XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnPCcgLT5cbiAgICAgICAgbGV0IGluZCA9IFN0cmluZy5pbmRleF9mcm9tIHN0ciAoc3RyX2luZCArIDEpICc+JyBpblxuICAgICAgICBpZiBpbmQgPj0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN1Yl9zdHIgPSBTdHJpbmcuc3ViIHN0ciBzdHJfaW5kIChpbmQgLSBzdHJfaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCAoaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IHN1Yl9mb3JtYXQgPSBGb3JtYXQgKHN1Yl9mbXQsIHN1Yl9zdHIpIGluXG4gICAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgICBpZiBpc19vcGVuX3RhZyB0aGVuIE9wZW5fdGFnIHN1Yl9mb3JtYXQgZWxzZSBPcGVuX2JveCBzdWJfZm9ybWF0IGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nLCBmbXRfcmVzdCkpXG4gICAgICB8IF8gLT5cbiAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2Zvcm1hdCA9IEZvcm1hdCAoRW5kX29mX2Zvcm1hdCwgXCJcIikgaW5cbiAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgaWYgaXNfb3Blbl90YWcgdGhlbiBPcGVuX3RhZyBzdWJfZm9ybWF0IGVsc2UgT3Blbl9ib3ggc3ViX2Zvcm1hdCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmcsIGZtdF9yZXN0KSlcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgb3B0aW9uYWwgPHdpZHRoIG9mZnNldD4gYWZ0ZXIgXCJAO1wiLiAqKVxuICBhbmQgcGFyc2VfZ29vZF9icmVhayA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBsZXQgbmV4dF9pbmQsIGZvcm1hdHRpbmdfbGl0ID1cbiAgICAgIHRyeVxuICAgICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB8fCBzdHIuW3N0cl9pbmRdIDw+ICc8JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN0cl9pbmRfMSA9IHBhcnNlX3NwYWNlcyAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzFdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IChcbiAgICAgICAgICBsZXQgc3RyX2luZF8yLCB3aWR0aCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8xIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIGxldCBzdHJfaW5kXzMgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF8yIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8zXSB3aXRoXG4gICAgICAgICAgICAgIHwgJz4nIC0+XG4gICAgICAgICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZC0yKSAoc3RyX2luZF8zLXN0cl9pbmQrMykgaW5cbiAgICAgICAgICAgICAgICBzdHJfaW5kXzMgKyAxLCBCcmVhayAocywgd2lkdGgsIDApXG4gICAgICAgICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgICAgICAgIGxldCBzdHJfaW5kXzQsIG9mZnNldCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8zIGVuZF9pbmQgaW5cbiAgICAgICAgICAgICAgICBsZXQgc3RyX2luZF81ID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfNCBlbmRfaW5kIGluXG4gICAgICAgICAgICAgICAgaWYgc3RyLltzdHJfaW5kXzVdIDw+ICc+JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kLTIpIChzdHJfaW5kXzUtc3RyX2luZCszKSBpblxuICAgICAgICAgICAgICAgIHN0cl9pbmRfNSArIDEsIEJyZWFrIChzLCB3aWR0aCwgb2Zmc2V0KVxuICAgICAgICAgICAgICB8IF8gLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgIClcbiAgICAgICAgfCBfIC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgd2l0aCBOb3RfZm91bmQgfCBGYWlsdXJlIF8gLT5cbiAgICAgICAgc3RyX2luZCwgQnJlYWsgKFwiQDtcIiwgMSwgMClcbiAgICBpblxuICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIHRoZSBzaXplIGluIGEgPG4+LiAqKVxuICBhbmQgcGFyc2VfbWFnaWNfc2l6ZSA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBtYXRjaFxuICAgICAgdHJ5XG4gICAgICAgIGxldCBzdHJfaW5kXzEgPSBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8xXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgIGxldCBzdHJfaW5kXzIsIHNpemUgPSBwYXJzZV9pbnRlZ2VyIHN0cl9pbmRfMSBlbmRfaW5kIGluXG4gICAgICAgICAgbGV0IHN0cl9pbmRfMyA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzIgZW5kX2luZCBpblxuICAgICAgICAgIGlmIHN0ci5bc3RyX2luZF8zXSA8PiAnPicgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZCAtIDIpIChzdHJfaW5kXzMgLSBzdHJfaW5kICsgMykgaW5cbiAgICAgICAgICBTb21lIChzdHJfaW5kXzMgKyAxLCBNYWdpY19zaXplIChzLCBzaXplKSlcbiAgICAgICAgfCBfIC0+IE5vbmVcbiAgICAgIHdpdGggTm90X2ZvdW5kIHwgRmFpbHVyZSBfIC0+XG4gICAgICAgIE5vbmVcbiAgICB3aXRoXG4gICAgfCBTb21lIChuZXh0X2luZCwgZm9ybWF0dGluZ19saXQpIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuICAgIHwgTm9uZSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChTY2FuX2luZGljICc8JywgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIGFuZCBjb25zdHJ1Y3QgYSBjaGFyIHNldC4gKilcbiAgYW5kIHBhcnNlX2NoYXJfc2V0IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcblxuICAgIGxldCBjaGFyX3NldCA9IGNyZWF0ZV9jaGFyX3NldCAoKSBpblxuICAgIGxldCBhZGRfY2hhciBjID1cbiAgICAgIGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCBjO1xuICAgIGluXG4gICAgbGV0IGFkZF9yYW5nZSBjIGMnID1cbiAgICAgIGZvciBpID0gaW50X29mX2NoYXIgYyB0byBpbnRfb2ZfY2hhciBjJyBkb1xuICAgICAgICBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKGNoYXJfb2ZfaW50IGkpO1xuICAgICAgZG9uZTtcbiAgICBpblxuXG4gICAgbGV0IGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZCA9XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6ICclJScgYWxvbmUgaXMgbm90IGFjY2VwdGVkIGluIGNoYXJhY3RlciBzZXRzLCBcXFxuICAgICAgICAgdXNlICUlJSUgaW5zdGVhZCBhdCBwb3NpdGlvbiAlZC5cIiBzdHIgc3RyX2luZFxuICAgIGluXG5cbiAgICAoKiBQYXJzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgY2hhciBzZXQuICopXG4gICAgbGV0IHJlYyBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGxldCBjID0gc3RyLltzdHJfaW5kXSBpblxuICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICAgKCogUGFyc2UgdGhlIGNvbnRlbnQgb2YgYSBjaGFyIHNldCB1bnRpbCB0aGUgZmlyc3QgJ10nLiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9jb250ZW50IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICddJyAtPlxuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnLScgLT5cbiAgICAgICAgYWRkX2NoYXIgJy0nO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCBjIC0+XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcblxuICAgICgqIFRlc3QgZm9yIHJhbmdlIGluIGNoYXIgc2V0LiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICctJyAtPlxuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9taW51cyAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyB3aGVuIGMgPSAnJScgLT5cbiAgICAgICAgYWRkX2NoYXIgYyc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGlmIGMgPSAnJScgdGhlbiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmQ7XG4gICAgICAgICgqIG5vdGUgdGhhdCAnQCcgYWxvbmUgaXMgYWNjZXB0ZWQsIGFzIGRvbmUgYnkgdGhlIGxlZ2FjeVxuICAgICAgICAgICBpbXBsZW1lbnRhdGlvbjsgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IHJlcXVpcmVzICVAXG4gICAgICAgICAgIHNvIHdlIGNvdWxkIHdhcm4gb24gdGhhdCAqKVxuICAgICAgICBhZGRfY2hhciBjO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjJ1xuXG4gICAgKCogTWFuYWdlIHJhbmdlIGluIGNoYXIgc2V0IChleGNlcHQgaWYgdGhlICctJyB0aGUgbGFzdCBjaGFyIGJlZm9yZSAnXScpICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2FmdGVyX21pbnVzIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIGFkZF9jaGFyICctJztcbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJyUnIC0+XG4gICAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyAtPlxuICAgICAgICAgICAgYWRkX3JhbmdlIGMgYyc7XG4gICAgICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMikgZW5kX2luZFxuICAgICAgICAgIHwgXyAtPiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmRcbiAgICAgICAgZW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGFkZF9yYW5nZSBjIGMnO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgIGluXG4gICAgbGV0IHN0cl9pbmQsIHJldmVyc2UgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgICB8ICdeJyAtPiBzdHJfaW5kICsgMSwgdHJ1ZVxuICAgICAgICB8IF8gLT4gc3RyX2luZCwgZmFsc2UgaW5cbiAgICBsZXQgbmV4dF9pbmQgPSBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICBsZXQgY2hhcl9zZXQgPSBmcmVlemVfY2hhcl9zZXQgY2hhcl9zZXQgaW5cbiAgICBuZXh0X2luZCwgKGlmIHJldmVyc2UgdGhlbiByZXZfY2hhcl9zZXQgY2hhcl9zZXQgZWxzZSBjaGFyX3NldClcblxuICAoKiBDb25zdW1lIGFsbCBuZXh0IHNwYWNlcywgcmFpc2UgYW4gRmFpbHVyZSBpZiBlbmRfaW5kIGlzIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGlmIHN0ci5bc3RyX2luZF0gPSAnICcgdGhlbiBwYXJzZV9zcGFjZXMgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGVsc2Ugc3RyX2luZFxuXG4gICgqIFJlYWQgYSBwb3NpdGl2ZSBpbnRlZ2VyIGZyb20gdGhlIHN0cmluZywgcmFpc2UgYSBGYWlsdXJlIGlmIGVuZF9pbmQgaXNcbiAgICAgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCBhY2MgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gYWNjICogMTAgKyAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJykgaW5cbiAgICAgIGlmIG5ld19hY2MgPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogaW50ZWdlciAlZCBpcyBncmVhdGVyIHRoYW4gdGhlIGxpbWl0ICVkXCJcbiAgICAgICAgICBzdHIgbmV3X2FjYyBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG5ld19hY2NcbiAgICB8IF8gLT4gc3RyX2luZCwgYWNjXG5cbiAgKCogUmVhZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIgZnJvbSB0aGUgc3RyaW5nLCByYWlzZSBhIEZhaWx1cmVcbiAgICAgaWYgZW5kX2luZCBpcyByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2VfaW50ZWdlciBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwXG4gICAgfCAnLScgLT4gKFxuICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgLT5cbiAgICAgICAgbGV0IG5leHRfaW5kLCBuID0gcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIDAgaW5cbiAgICAgICAgbmV4dF9pbmQsIC1uXG4gICAgICB8IGMgLT5cbiAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJkaWdpdFwiIGNcbiAgICApXG4gICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIEFkZCBhIGxpdGVyYWwgdG8gYSBmb3JtYXQgZnJvbSBhIGxpdGVyYWwgY2hhcmFjdGVyIHN1Yi1zZXF1ZW5jZS4gKilcbiAgYW5kIGFkZF9saXRlcmFsIDogdHlwZSBhIGQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gKGEsIF8sIF8sIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gbGl0X3N0YXJ0IHN0cl9pbmQgZm10IC0+IG1hdGNoIHN0cl9pbmQgLSBsaXRfc3RhcnQgd2l0aFxuICAgIHwgMCAgICAtPiBGbXRfRUJCIGZtdFxuICAgIHwgMSAgICAtPiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKHN0ci5bbGl0X3N0YXJ0XSwgZm10KSlcbiAgICB8IHNpemUgLT4gRm10X0VCQiAoU3RyaW5nX2xpdGVyYWwgKFN0cmluZy5zdWIgc3RyIGxpdF9zdGFydCBzaXplLCBmbXQpKVxuXG4gICgqIFNlYXJjaCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHN1Yi1mb3JtYXRcbiAgICAgKGkuZS4gdGhlIGNvcnJlc3BvbmRpbmcgXCIlfVwiIG9yIFwiJSlcIikgKilcbiAgYW5kIHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuXG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IHVuY2xvc2VkIHN1Yi1mb3JtYXQsIFxcXG4gICAgICAgICBleHBlY3RlZCBcXFwiJSUlY1xcXCIgYXQgY2hhcmFjdGVyIG51bWJlciAlZFwiIHN0ciBjIGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnJScgLT5cbiAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgaWYgc3RyLltzdHJfaW5kICsgMV0gPSBjIHRoZW4gKCogRW5kIG9mIGZvcm1hdCBmb3VuZCAqKSBzdHJfaW5kIGVsc2VcbiAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMV0gd2l0aFxuICAgICAgICB8ICdfJyAtPlxuICAgICAgICAgICgqIFNlYXJjaCBmb3IgXCIlXyhcIiBvciBcIiVfe1wiLiAqKVxuICAgICAgICAgIGlmIHN0cl9pbmQgKyAyID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDJdIHdpdGhcbiAgICAgICAgICB8ICd7JyAtPlxuICAgICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDMpIGVuZF9pbmQgJ30nIGluXG4gICAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCAnKScgaW5cbiAgICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgICAgfCBfIC0+IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCBjXG4gICAgICAgICAgZW5kXG4gICAgICAgIHwgJ3snIC0+XG4gICAgICAgICAgKCogJXsuLi4lfSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICd9JyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgKCogJSguLi4lKSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICcpJyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJ30nIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICUoLi4uJX0uICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJyknXCIgJ30nXG4gICAgICAgIHwgJyknIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICV7Li4uJSkuICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJ30nXCIgJyknXG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIGVuZFxuICAgIHwgXyAtPiBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICgqIENoZWNrIGlmIHN5bWIgaXMgYSB2YWxpZCBpbnQgY29udmVyc2lvbiBhZnRlciBcIiVsXCIsIFwiJW5cIiBvciBcIiVMXCIgKilcbiAgYW5kIGlzX2ludF9iYXNlIHN5bWIgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICdkJyB8ICdpJyB8ICd4JyB8ICdYJyB8ICdvJyB8ICd1JyAtPiB0cnVlXG4gICAgfCBfIC0+IGZhbHNlXG5cbiAgKCogQ29udmVydCBhIGNoYXIgKGwsIG4gb3IgTCkgdG8gaXRzIGFzc29jaWF0ZWQgY291bnRlci4gKilcbiAgYW5kIGNvdW50ZXJfb2ZfY2hhciBzeW1iID0gbWF0Y2ggc3ltYiB3aXRoXG4gICAgfCAnbCcgLT4gTGluZV9jb3VudGVyICB8ICduJyAtPiBDaGFyX2NvdW50ZXJcbiAgICB8ICdMJyAtPiBUb2tlbl9jb3VudGVyIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzeW1iKSB0byBpdHMgYXNzb2NpYXRlZCBpbnRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBzcGFjZSBzeW1iID1cbiAgICBtYXRjaCBwbHVzLCBoYXNoLCBzcGFjZSwgc3ltYiB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnZCcgLT4gSW50X2QgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ2knIC0+IEludF9pXG4gICAgfCBmYWxzZSwgZmFsc2UsICB0cnVlLCAnZCcgLT4gSW50X3NkIHwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgJ2knIC0+IEludF9zaVxuICAgIHwgIHRydWUsIGZhbHNlLCBmYWxzZSwgJ2QnIC0+IEludF9wZCB8ICB0cnVlLCBmYWxzZSwgZmFsc2UsICdpJyAtPiBJbnRfcGlcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd4JyAtPiBJbnRfeCAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnWCcgLT4gSW50X1hcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICd4JyAtPiBJbnRfQ3ggfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnWCcgLT4gSW50X0NYXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnbycgLT4gSW50X29cbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdvJyAtPiBJbnRfQ29cbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd1JyAtPiBJbnRfdVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2QnIC0+IEludF9DZFxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2knIC0+IEludF9DaVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ3UnIC0+IEludF9DdVxuICAgIHwgXywgdHJ1ZSwgXywgJ3gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DeFxuICAgIHwgXywgdHJ1ZSwgXywgJ1gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DWFxuICAgIHwgXywgdHJ1ZSwgXywgJ28nIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9Db1xuICAgIHwgXywgdHJ1ZSwgXywgKCdkJyB8ICdpJyB8ICd1JykgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGZhbHNlIHNwYWNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIlxuICAgIHwgdHJ1ZSwgXywgdHJ1ZSwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogcGx1cyBhbmQgc3BhY2U6IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBwcmVmZXJzIHBsdXMgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIGZhbHNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiXG4gICAgfCBmYWxzZSwgXywgdHJ1ZSwgXyAgICAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBmYWxzZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyAnXCJcbiAgICB8IHRydWUsIF8sIGZhbHNlLCBfICAgIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgZmFsc2UgaGFzaCBzcGFjZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJysnXCJcbiAgICB8IGZhbHNlLCBfLCBmYWxzZSwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzcGFjZSwgc3ltYikgdG8gaXRzIGFzc29jaWF0ZWQgZmxvYXRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIHNwYWNlIHN5bWIgPVxuICAgIGxldCBmbGFnID0gbWF0Y2ggcGx1cywgc3BhY2Ugd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlIC0+IEZsb2F0X2ZsYWdfXG4gICAgfCBmYWxzZSwgIHRydWUgLT4gRmxvYXRfZmxhZ19zXG4gICAgfCAgdHJ1ZSwgZmFsc2UgLT4gRmxvYXRfZmxhZ19wXG4gICAgfCAgdHJ1ZSwgIHRydWUgLT5cbiAgICAgICgqIHBsdXMgYW5kIHNwYWNlOiBsZWdhY3kgaW1wbGVtZW50YXRpb24gcHJlZmVycyBwbHVzICopXG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBGbG9hdF9mbGFnX3BcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiIGluXG4gICAgbGV0IGtpbmQgPSBtYXRjaCBoYXNoLCBzeW1iIHdpdGhcbiAgICB8IF8sICdmJyAtPiBGbG9hdF9mXG4gICAgfCBfLCAnZScgLT4gRmxvYXRfZVxuICAgIHwgXywgJ0UnIC0+IEZsb2F0X0VcbiAgICB8IF8sICdnJyAtPiBGbG9hdF9nXG4gICAgfCBfLCAnRycgLT4gRmxvYXRfR1xuICAgIHwgXywgJ2gnIC0+IEZsb2F0X2hcbiAgICB8IF8sICdIJyAtPiBGbG9hdF9IXG4gICAgfCBmYWxzZSwgJ0YnIC0+IEZsb2F0X0ZcbiAgICB8IHRydWUsICdGJyAtPiBGbG9hdF9DRlxuICAgIHwgXyAtPiBhc3NlcnQgZmFsc2UgaW5cbiAgICBmbGFnLCBraW5kXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGluY29tcGF0aWJsZSBvcHRpb25zLiopXG4gIGFuZCBpbmNvbXBhdGlibGVfZmxhZyA6IHR5cGUgYSAuIGludCAtPiBpbnQgLT4gY2hhciAtPiBzdHJpbmcgLT4gYSA9XG4gICAgZnVuIHBjdF9pbmQgc3RyX2luZCBzeW1iIG9wdGlvbiAtPlxuICAgICAgbGV0IHN1YmZtdCA9IFN0cmluZy5zdWIgc3RyIHBjdF9pbmQgKHN0cl9pbmQgLSBwY3RfaW5kKSBpblxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgJXMgaXMgaW5jb21wYXRpYmxlIHdpdGggJyVjJyBpbiBzdWItZm9ybWF0ICVTXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgb3B0aW9uIHN5bWIgc3ViZm10XG5cbiAgaW4gcGFyc2UgMCAoU3RyaW5nLmxlbmd0aCBzdHIpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAoKiBHdWFyZGVkIHN0cmluZyB0byBmb3JtYXQgY29udmVyc2lvbnMgKilcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhIGZvcm1hdCBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IHN0ciBmbXR0eSA9XG4gIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHN0ciBpblxuICB0cnkgRm9ybWF0ICh0eXBlX2Zvcm1hdCBmbXQgZm10dHksIHN0cilcbiAgd2l0aCBUeXBlX21pc21hdGNoIC0+XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJiYWQgaW5wdXQ6IGZvcm1hdCB0eXBlIG1pc21hdGNoIGJldHdlZW4gJVMgYW5kICVTXCJcbiAgICAgIHN0ciAoc3RyaW5nX29mX2ZtdHR5IGZtdHR5KVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZm9ybWF0IGNvbXBhdGlibGUgd2l0aCBhbiBvdGhlciBmb3JtYXQuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCBzdHIgKEZvcm1hdCAoZm10Jywgc3RyJykpID1cbiAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgc3RyIGluXG4gIHRyeSBGb3JtYXQgKHR5cGVfZm9ybWF0IGZtdCAoZm10dHlfb2ZfZm10IGZtdCcpLCBzdHIpXG4gIHdpdGggVHlwZV9taXNtYXRjaCAtPlxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiYmFkIGlucHV0OiBmb3JtYXQgdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICVTIGFuZCAlU1wiIHN0ciBzdHInXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gUHJpbnRmXG5cbnR5cGUgdCA9IGV4biA9IC4uXG5cbmxldCBwcmludGVycyA9IEF0b21pYy5tYWtlIFtdXG5cbmxldCBsb2NmbXQgPSBmb3JtYXRfb2Zfc3RyaW5nIFwiRmlsZSBcXFwiJXNcXFwiLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkOiAlc1wiXG5cbmxldCBmaWVsZCB4IGkgPVxuICBsZXQgZiA9IE9iai5maWVsZCB4IGkgaW5cbiAgaWYgbm90IChPYmouaXNfYmxvY2sgZikgdGhlblxuICAgIHNwcmludGYgXCIlZFwiIChPYmoubWFnaWMgZiA6IGludCkgICAgICAgICAgICgqIGNhbiBhbHNvIGJlIGEgY2hhciAqKVxuICBlbHNlIGlmIE9iai50YWcgZiA9IE9iai5zdHJpbmdfdGFnIHRoZW5cbiAgICBzcHJpbnRmIFwiJVNcIiAoT2JqLm1hZ2ljIGYgOiBzdHJpbmcpXG4gIGVsc2UgaWYgT2JqLnRhZyBmID0gT2JqLmRvdWJsZV90YWcgdGhlblxuICAgIHN0cmluZ19vZl9mbG9hdCAoT2JqLm1hZ2ljIGYgOiBmbG9hdClcbiAgZWxzZVxuICAgIFwiX1wiXG5cbmxldCByZWMgb3RoZXJfZmllbGRzIHggaSA9XG4gIGlmIGkgPj0gT2JqLnNpemUgeCB0aGVuIFwiXCJcbiAgZWxzZSBzcHJpbnRmIFwiLCAlcyVzXCIgKGZpZWxkIHggaSkgKG90aGVyX2ZpZWxkcyB4IChpKzEpKVxuXG5sZXQgZmllbGRzIHggPVxuICBtYXRjaCBPYmouc2l6ZSB4IHdpdGhcbiAgfCAwIC0+IFwiXCJcbiAgfCAxIC0+IFwiXCJcbiAgfCAyIC0+IHNwcmludGYgXCIoJXMpXCIgKGZpZWxkIHggMSlcbiAgfCBfIC0+IHNwcmludGYgXCIoJXMlcylcIiAoZmllbGQgeCAxKSAob3RoZXJfZmllbGRzIHggMilcblxubGV0IHVzZV9wcmludGVycyB4ID1cbiAgbGV0IHJlYyBjb252ID0gZnVuY3Rpb25cbiAgICB8IGhkIDo6IHRsIC0+XG4gICAgICAgIChtYXRjaCBoZCB4IHdpdGhcbiAgICAgICAgIHwgTm9uZSB8IGV4Y2VwdGlvbiBfIC0+IGNvbnYgdGxcbiAgICAgICAgIHwgU29tZSBzIC0+IFNvbWUgcylcbiAgICB8IFtdIC0+IE5vbmUgaW5cbiAgY29udiAoQXRvbWljLmdldCBwcmludGVycylcblxubGV0IHRvX3N0cmluZ19kZWZhdWx0ID0gZnVuY3Rpb25cbiAgfCBPdXRfb2ZfbWVtb3J5IC0+IFwiT3V0IG9mIG1lbW9yeVwiXG4gIHwgU3RhY2tfb3ZlcmZsb3cgLT4gXCJTdGFjayBvdmVyZmxvd1wiXG4gIHwgTWF0Y2hfZmFpbHVyZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNSkgXCJQYXR0ZXJuIG1hdGNoaW5nIGZhaWxlZFwiXG4gIHwgQXNzZXJ0X2ZhaWx1cmUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzYpIFwiQXNzZXJ0aW9uIGZhaWxlZFwiXG4gIHwgVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzYpIFwiVW5kZWZpbmVkIHJlY3Vyc2l2ZSBtb2R1bGVcIlxuICB8IHggLT5cbiAgICAgIGxldCB4ID0gT2JqLnJlcHIgeCBpblxuICAgICAgaWYgT2JqLnRhZyB4IDw+IDAgdGhlblxuICAgICAgICAoT2JqLm1hZ2ljIChPYmouZmllbGQgeCAwKSA6IHN0cmluZylcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IGNvbnN0cnVjdG9yID1cbiAgICAgICAgICAoT2JqLm1hZ2ljIChPYmouZmllbGQgKE9iai5maWVsZCB4IDApIDApIDogc3RyaW5nKSBpblxuICAgICAgICBjb25zdHJ1Y3RvciBeIChmaWVsZHMgeClcblxubGV0IHRvX3N0cmluZyBlID1cbiAgbWF0Y2ggdXNlX3ByaW50ZXJzIGUgd2l0aFxuICB8IFNvbWUgcyAtPiBzXG4gIHwgTm9uZSAtPiB0b19zdHJpbmdfZGVmYXVsdCBlXG5cbmxldCBwcmludCBmY3QgYXJnID1cbiAgdHJ5XG4gICAgZmN0IGFyZ1xuICB3aXRoIHggLT5cbiAgICBlcHJpbnRmIFwiVW5jYXVnaHQgZXhjZXB0aW9uOiAlc1xcblwiICh0b19zdHJpbmcgeCk7XG4gICAgZmx1c2ggc3RkZXJyO1xuICAgIHJhaXNlIHhcblxubGV0IGNhdGNoIGZjdCBhcmcgPVxuICB0cnlcbiAgICBmY3QgYXJnXG4gIHdpdGggeCAtPlxuICAgIGZsdXNoIHN0ZG91dDtcbiAgICBlcHJpbnRmIFwiVW5jYXVnaHQgZXhjZXB0aW9uOiAlc1xcblwiICh0b19zdHJpbmcgeCk7XG4gICAgZXhpdCAyXG5cbnR5cGUgcmF3X2JhY2t0cmFjZV9zbG90XG50eXBlIHJhd19iYWNrdHJhY2VfZW50cnkgPSBwcml2YXRlIGludFxudHlwZSByYXdfYmFja3RyYWNlID0gcmF3X2JhY2t0cmFjZV9lbnRyeSBhcnJheVxuXG5sZXQgcmF3X2JhY2t0cmFjZV9lbnRyaWVzIGJ0ID0gYnRcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2U6XG4gIHVuaXQgLT4gcmF3X2JhY2t0cmFjZSA9IFwiY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2VcIlxuXG5leHRlcm5hbCByYWlzZV93aXRoX2JhY2t0cmFjZTogZXhuIC0+IHJhd19iYWNrdHJhY2UgLT4gJ2FcbiAgPSBcIiVyYWlzZV93aXRoX2JhY2t0cmFjZVwiXG5cbnR5cGUgYmFja3RyYWNlX3Nsb3QgPVxuICB8IEtub3duX2xvY2F0aW9uIG9mIHtcbiAgICAgIGlzX3JhaXNlICAgIDogYm9vbDtcbiAgICAgIGZpbGVuYW1lICAgIDogc3RyaW5nO1xuICAgICAgbGluZV9udW1iZXIgOiBpbnQ7XG4gICAgICBzdGFydF9jaGFyICA6IGludDtcbiAgICAgIGVuZF9jaGFyICAgIDogaW50O1xuICAgICAgaXNfaW5saW5lICAgOiBib29sO1xuICAgICAgZGVmbmFtZSAgICAgOiBzdHJpbmc7XG4gICAgfVxuICB8IFVua25vd25fbG9jYXRpb24gb2Yge1xuICAgICAgaXNfcmFpc2UgOiBib29sXG4gICAgfVxuXG4oKiB0byBhdm9pZCB3YXJuaW5nICopXG5sZXQgXyA9IFtLbm93bl9sb2NhdGlvbiB7IGlzX3JhaXNlID0gZmFsc2U7IGZpbGVuYW1lID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXIgPSAwOyBzdGFydF9jaGFyID0gMDsgZW5kX2NoYXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19pbmxpbmUgPSBmYWxzZTsgZGVmbmFtZSA9IFwiXCIgfTtcbiAgICAgICAgIFVua25vd25fbG9jYXRpb24geyBpc19yYWlzZSA9IGZhbHNlIH1dXG5cbmV4dGVybmFsIGNvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90OlxuICByYXdfYmFja3RyYWNlX3Nsb3QgLT4gYmFja3RyYWNlX3Nsb3QgPSBcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3RcIlxuXG5leHRlcm5hbCBjb252ZXJ0X3Jhd19iYWNrdHJhY2U6XG4gIHJhd19iYWNrdHJhY2UgLT4gYmFja3RyYWNlX3Nsb3QgYXJyYXkgPSBcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlXCJcblxubGV0IGNvbnZlcnRfcmF3X2JhY2t0cmFjZSBidCA9XG4gIHRyeSBTb21lIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgYnQpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBwb3Mgc2xvdCA9XG4gIGxldCBpbmZvIGlzX3JhaXNlID1cbiAgICBpZiBpc19yYWlzZSB0aGVuXG4gICAgICBpZiBwb3MgPSAwIHRoZW4gXCJSYWlzZWQgYXRcIiBlbHNlIFwiUmUtcmFpc2VkIGF0XCJcbiAgICBlbHNlXG4gICAgICBpZiBwb3MgPSAwIHRoZW4gXCJSYWlzZWQgYnkgcHJpbWl0aXZlIG9wZXJhdGlvbiBhdFwiIGVsc2UgXCJDYWxsZWQgZnJvbVwiXG4gIGluXG4gIG1hdGNoIHNsb3Qgd2l0aFxuICB8IFVua25vd25fbG9jYXRpb24gbCAtPlxuICAgICAgaWYgbC5pc19yYWlzZSB0aGVuXG4gICAgICAgICgqIGNvbXBpbGVyLWluc2VydGVkIHJlLXJhaXNlLCBza2lwcGVkICopIE5vbmVcbiAgICAgIGVsc2VcbiAgICAgICAgU29tZSAoc3ByaW50ZiBcIiVzIHVua25vd24gbG9jYXRpb25cIiAoaW5mbyBmYWxzZSkpXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPlxuICAgICAgU29tZSAoc3ByaW50ZiBcIiVzICVzIGluIGZpbGUgXFxcIiVzXFxcIiVzLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkXCJcbiAgICAgICAgICAgICAgKGluZm8gbC5pc19yYWlzZSkgbC5kZWZuYW1lIGwuZmlsZW5hbWVcbiAgICAgICAgICAgICAgKGlmIGwuaXNfaW5saW5lIHRoZW4gXCIgKGlubGluZWQpXCIgZWxzZSBcIlwiKVxuICAgICAgICAgICAgICBsLmxpbmVfbnVtYmVyIGwuc3RhcnRfY2hhciBsLmVuZF9jaGFyKVxuXG5sZXQgcHJpbnRfZXhjZXB0aW9uX2JhY2t0cmFjZSBvdXRjaGFuIGJhY2t0cmFjZSA9XG4gIG1hdGNoIGJhY2t0cmFjZSB3aXRoXG4gIHwgTm9uZSAtPlxuICAgICAgZnByaW50ZiBvdXRjaGFuXG4gICAgICAgIFwiKFByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBjYW5ub3QgcHJpbnQgc3RhY2sgYmFja3RyYWNlKVxcblwiXG4gIHwgU29tZSBhIC0+XG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGEgLSAxIGRvXG4gICAgICAgIG1hdGNoIGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBpIGEuKGkpIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgc3RyIC0+IGZwcmludGYgb3V0Y2hhbiBcIiVzXFxuXCIgc3RyXG4gICAgICBkb25lXG5cbmxldCBwcmludF9yYXdfYmFja3RyYWNlIG91dGNoYW4gcmF3X2JhY2t0cmFjZSA9XG4gIHByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2Ugb3V0Y2hhbiAoY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2UpXG5cbigqIGNvbmZ1c2luZ2x5IG5hbWVkOiBwcmludHMgdGhlIGdsb2JhbCBjdXJyZW50IGJhY2t0cmFjZSAqKVxubGV0IHByaW50X2JhY2t0cmFjZSBvdXRjaGFuID1cbiAgcHJpbnRfcmF3X2JhY2t0cmFjZSBvdXRjaGFuIChnZXRfcmF3X2JhY2t0cmFjZSAoKSlcblxubGV0IGJhY2t0cmFjZV90b19zdHJpbmcgYmFja3RyYWNlID1cbiAgbWF0Y2ggYmFja3RyYWNlIHdpdGhcbiAgfCBOb25lIC0+XG4gICAgIFwiKFByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBjYW5ub3QgcHJpbnQgc3RhY2sgYmFja3RyYWNlKVxcblwiXG4gIHwgU29tZSBhIC0+XG4gICAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMTAyNCBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBhIC0gMSBkb1xuICAgICAgICBtYXRjaCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgaSBhLihpKSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIHN0ciAtPiBicHJpbnRmIGIgXCIlc1xcblwiIHN0clxuICAgICAgZG9uZTtcbiAgICAgIEJ1ZmZlci5jb250ZW50cyBiXG5cbmxldCByYXdfYmFja3RyYWNlX3RvX3N0cmluZyByYXdfYmFja3RyYWNlID1cbiAgYmFja3RyYWNlX3RvX3N0cmluZyAoY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2UpXG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSA9IGZ1bmN0aW9uXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBsLmlzX3JhaXNlXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfcmFpc2VcblxubGV0IGJhY2t0cmFjZV9zbG90X2lzX2lubGluZSA9IGZ1bmN0aW9uXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBsLmlzX2lubGluZVxuICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBmYWxzZVxuXG50eXBlIGxvY2F0aW9uID0ge1xuICBmaWxlbmFtZSA6IHN0cmluZztcbiAgbGluZV9udW1iZXIgOiBpbnQ7XG4gIHN0YXJ0X2NoYXIgOiBpbnQ7XG4gIGVuZF9jaGFyIDogaW50O1xufVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24gPSBmdW5jdGlvblxuICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBOb25lXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPlxuICAgIFNvbWUge1xuICAgICAgZmlsZW5hbWUgICAgPSBsLmZpbGVuYW1lO1xuICAgICAgbGluZV9udW1iZXIgPSBsLmxpbmVfbnVtYmVyO1xuICAgICAgc3RhcnRfY2hhciAgPSBsLnN0YXJ0X2NoYXI7XG4gICAgICBlbmRfY2hhciAgICA9IGwuZW5kX2NoYXI7XG4gICAgfVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSA9IGZ1bmN0aW9uXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfXG4gIHwgS25vd25fbG9jYXRpb24geyBkZWZuYW1lID0gXCJcIiB9IC0+IE5vbmVcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IFNvbWUgbC5kZWZuYW1lXG5cbmxldCBiYWNrdHJhY2Vfc2xvdHMgcmF3X2JhY2t0cmFjZSA9XG4gICgqIFRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IFNvbWUgaXNcbiAgICAgcmV0dXJuZWQgb25seSBpZiBhIHBhcnQgb2YgdGhlIHRyYWNlIGlzIHVzYWJsZS4gVGhpcyBnaXZlcyB1c1xuICAgICBhIGJpdCBtb3JlIHdvcmsgdGhhbiBqdXN0IGNvbnZlcnRfcmF3X2JhY2t0cmFjZSwgYnV0IGl0IG1ha2VzIHRoZVxuICAgICBBUEkgbW9yZSB1c2VyLWZyaWVuZGx5IC0tIG90aGVyd2lzZSBtb3N0IHVzZXJzIHdvdWxkIGhhdmUgdG9cbiAgICAgcmVpbXBsZW1lbnQgdGhlIFwiUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIHNvcnJ5XCIgbG9naWNcbiAgICAgdGhlbXNlbHZlcy4gKilcbiAgbWF0Y2ggY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2Ugd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGJhY2t0cmFjZSAtPlxuICAgICAgbGV0IHVzYWJsZV9zbG90ID0gZnVuY3Rpb25cbiAgICAgICAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gZmFsc2VcbiAgICAgICAgfCBLbm93bl9sb2NhdGlvbiBfIC0+IHRydWUgaW5cbiAgICAgIGxldCByZWMgZXhpc3RzX3VzYWJsZSA9IGZ1bmN0aW9uXG4gICAgICAgIHwgKC0xKSAtPiBmYWxzZVxuICAgICAgICB8IGkgLT4gdXNhYmxlX3Nsb3QgYmFja3RyYWNlLihpKSB8fCBleGlzdHNfdXNhYmxlIChpIC0gMSkgaW5cbiAgICAgIGlmIGV4aXN0c191c2FibGUgKEFycmF5Lmxlbmd0aCBiYWNrdHJhY2UgLSAxKVxuICAgICAgdGhlbiBTb21lIGJhY2t0cmFjZVxuICAgICAgZWxzZSBOb25lXG5cbmxldCBiYWNrdHJhY2Vfc2xvdHNfb2ZfcmF3X2VudHJ5IGVudHJ5ID1cbiAgYmFja3RyYWNlX3Nsb3RzIFt8IGVudHJ5IHxdXG5cbm1vZHVsZSBTbG90ID0gc3RydWN0XG4gIHR5cGUgdCA9IGJhY2t0cmFjZV9zbG90XG4gIGxldCBmb3JtYXQgPSBmb3JtYXRfYmFja3RyYWNlX3Nsb3RcbiAgbGV0IGlzX3JhaXNlID0gYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2VcbiAgbGV0IGlzX2lubGluZSA9IGJhY2t0cmFjZV9zbG90X2lzX2lubGluZVxuICBsZXQgbG9jYXRpb24gPSBiYWNrdHJhY2Vfc2xvdF9sb2NhdGlvblxuICBsZXQgbmFtZSA9IGJhY2t0cmFjZV9zbG90X2RlZm5hbWVcbmVuZFxuXG5sZXQgcmF3X2JhY2t0cmFjZV9sZW5ndGggYnQgPSBBcnJheS5sZW5ndGggYnRcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2Vfc2xvdCA6XG4gIHJhd19iYWNrdHJhY2UgLT4gaW50IC0+IHJhd19iYWNrdHJhY2Vfc2xvdCA9IFwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3RcIlxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QgOlxuICByYXdfYmFja3RyYWNlX3Nsb3QgLT4gcmF3X2JhY2t0cmFjZV9zbG90IG9wdGlvblxuICA9IFwiY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdFwiXG5cbigqIGNvbmZ1c2luZ2x5IG5hbWVkOlxuICAgcmV0dXJucyB0aGUgKnN0cmluZyogY29ycmVzcG9uZGluZyB0byB0aGUgZ2xvYmFsIGN1cnJlbnQgYmFja3RyYWNlICopXG5sZXQgZ2V0X2JhY2t0cmFjZSAoKSA9IHJhd19iYWNrdHJhY2VfdG9fc3RyaW5nIChnZXRfcmF3X2JhY2t0cmFjZSAoKSlcblxuZXh0ZXJuYWwgcmVjb3JkX2JhY2t0cmFjZTogYm9vbCAtPiB1bml0ID0gXCJjYW1sX3JlY29yZF9iYWNrdHJhY2VcIlxuZXh0ZXJuYWwgYmFja3RyYWNlX3N0YXR1czogdW5pdCAtPiBib29sID0gXCJjYW1sX2JhY2t0cmFjZV9zdGF0dXNcIlxuXG5sZXQgcmVjIHJlZ2lzdGVyX3ByaW50ZXIgZm4gPVxuICBsZXQgb2xkX3ByaW50ZXJzID0gQXRvbWljLmdldCBwcmludGVycyBpblxuICBsZXQgbmV3X3ByaW50ZXJzID0gZm4gOjogb2xkX3ByaW50ZXJzIGluXG4gIGxldCBzdWNjZXNzID0gQXRvbWljLmNvbXBhcmVfYW5kX3NldCBwcmludGVycyBvbGRfcHJpbnRlcnMgbmV3X3ByaW50ZXJzIGluXG4gIGlmIG5vdCBzdWNjZXNzIHRoZW4gcmVnaXN0ZXJfcHJpbnRlciBmblxuXG5leHRlcm5hbCBnZXRfY2FsbHN0YWNrOiBpbnQgLT4gcmF3X2JhY2t0cmFjZSA9IFwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2tcIlxuXG5sZXQgZXhuX3Nsb3QgeCA9XG4gIGxldCB4ID0gT2JqLnJlcHIgeCBpblxuICBpZiBPYmoudGFnIHggPSAwIHRoZW4gT2JqLmZpZWxkIHggMCBlbHNlIHhcblxubGV0IGV4bl9zbG90X2lkIHggPVxuICBsZXQgc2xvdCA9IGV4bl9zbG90IHggaW5cbiAgKE9iai5vYmogKE9iai5maWVsZCBzbG90IDEpIDogaW50KVxuXG5sZXQgZXhuX3Nsb3RfbmFtZSB4ID1cbiAgbGV0IHNsb3QgPSBleG5fc2xvdCB4IGluXG4gIChPYmoub2JqIChPYmouZmllbGQgc2xvdCAwKSA6IHN0cmluZylcblxuZXh0ZXJuYWwgZ2V0X2RlYnVnX2luZm9fc3RhdHVzIDogdW5pdCAtPiBpbnQgPSBcImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXNcIlxuXG4oKiBEZXNjcmlwdGlvbnMgZm9yIGVycm9ycyBpbiBzdGFydHVwLmguIFNlZSBhbHNvIGJhY2t0cmFjZS5jICopXG5sZXQgZXJyb3JzID0gW3wgXCJcIjtcbiAgKCogRklMRV9OT1RfRk9VTkQgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIG5vdCBmb3VuZClcIjtcbiAgKCogQkFEX0JZVEVDT0RFICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBhcHBlYXJzIHRvIGJlIGNvcnJ1cHQpXCI7XG4gICgqIFdST05HX01BR0lDICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBoYXMgd3JvbmcgbWFnaWMgbnVtYmVyKVwiO1xuICAoKiBOT19GRFMgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGNhbm5vdCBiZSBvcGVuZWQ7XFxuIFxcXG4gICAgICAtLSB0b28gbWFueSBvcGVuIGZpbGVzLiBUcnkgcnVubmluZyB3aXRoIE9DQU1MUlVOUEFSQU09Yj0yKVwiXG58XVxuXG5sZXQgZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBleG4gcmF3X2JhY2t0cmFjZSA9XG4gIGVwcmludGYgXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uICVzXFxuXCIgKHRvX3N0cmluZyBleG4pO1xuICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlO1xuICBsZXQgc3RhdHVzID0gZ2V0X2RlYnVnX2luZm9fc3RhdHVzICgpIGluXG4gIGlmIHN0YXR1cyA8IDAgdGhlblxuICAgIHByZXJyX2VuZGxpbmUgZXJyb3JzLihhYnMgc3RhdHVzKTtcbiAgZmx1c2ggc3RkZXJyXG5cbmxldCB1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciA9IHJlZiBkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyXG5cbmxldCBzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZm4gPSB1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciA6PSBmblxuXG5sZXQgZW1wdHlfYmFja3RyYWNlIDogcmF3X2JhY2t0cmFjZSA9IFt8IHxdXG5cbmxldCB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKCkgPVxuICB0cnlcbiAgICBnZXRfcmF3X2JhY2t0cmFjZSAoKVxuICB3aXRoIF8gKCogT3V0X29mX21lbW9yeT8gKikgLT5cbiAgICBlbXB0eV9iYWNrdHJhY2VcblxubGV0IGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24nIGV4biBkZWJ1Z2dlcl9pbl91c2UgPVxuICB0cnlcbiAgICAoKiBHZXQgdGhlIGJhY2t0cmFjZSBub3csIGluIGNhc2Ugb25lIG9mIHRoZSBbYXRfZXhpdF0gZnVuY3Rpb25cbiAgICAgICBkZXN0cm95cyBpdC4gKilcbiAgICBsZXQgcmF3X2JhY2t0cmFjZSA9XG4gICAgICBpZiBkZWJ1Z2dlcl9pbl91c2UgKCogU2FtZSB0ZXN0IGFzIGluIFtydW50aW1lL3ByaW50ZXhjLmNdICopIHRoZW5cbiAgICAgICAgZW1wdHlfYmFja3RyYWNlXG4gICAgICBlbHNlXG4gICAgICAgIHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKVxuICAgIGluXG4gICAgKHRyeSBTdGRsaWIuZG9fYXRfZXhpdCAoKSB3aXRoIF8gLT4gKCkpO1xuICAgIHRyeVxuICAgICAgIXVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGV4biByYXdfYmFja3RyYWNlXG4gICAgd2l0aCBleG4nIC0+XG4gICAgICBsZXQgcmF3X2JhY2t0cmFjZScgPSB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIGVwcmludGYgXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uICVzXFxuXCIgKHRvX3N0cmluZyBleG4pO1xuICAgICAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZTtcbiAgICAgIGVwcmludGYgXCJGYXRhbCBlcnJvciBpbiB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlcjogZXhjZXB0aW9uICVzXFxuXCJcbiAgICAgICAgKHRvX3N0cmluZyBleG4nKTtcbiAgICAgIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2UnO1xuICAgICAgZmx1c2ggc3RkZXJyXG4gIHdpdGhcbiAgICB8IE91dF9vZl9tZW1vcnkgLT5cbiAgICAgICAgcHJlcnJfZW5kbGluZVxuICAgICAgICAgIFwiRmF0YWwgZXJyb3I6IG91dCBvZiBtZW1vcnkgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXJcIlxuXG4oKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBbY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25dIGluXG4gICBbcnVudGltZS9wcmludGV4Yy5jXSB3aGljaCBleHBlY3RzIG5vIGV4Y2VwdGlvbiBpcyByYWlzZWQuICopXG5sZXQgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbiBleG4gZGVidWdnZXJfaW5fdXNlID1cbiAgdHJ5XG4gICAgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbicgZXhuIGRlYnVnZ2VyX2luX3VzZVxuICB3aXRoIF8gLT5cbiAgICAoKiBUaGVyZSBpcyBub3QgbXVjaCB3ZSBjYW4gZG8gYXQgdGhpcyBwb2ludCAqKVxuICAgICgpXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+ICdhIC0+IHVuaXRcbiAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgKCkgPVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlByaW50ZXhjLmhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cIlxuICAgIGhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBYYXZpZXIgTGVyb3kgYW5kIERhbWllbiBEb2xpZ2V6LCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubGV0IGdlbmVyaWNfcXVvdGUgcXVvdGVxdW90ZSBzID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIChsICsgMjApIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBiICdcXCcnO1xuICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICBpZiBzLltpXSA9ICdcXCcnXG4gICAgdGhlbiBCdWZmZXIuYWRkX3N0cmluZyBiIHF1b3RlcXVvdGVcbiAgICBlbHNlIEJ1ZmZlci5hZGRfY2hhciBiICBzLltpXVxuICBkb25lO1xuICBCdWZmZXIuYWRkX2NoYXIgYiAnXFwnJztcbiAgQnVmZmVyLmNvbnRlbnRzIGJcblxuKCogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBPcGVuIEdyb3VwIHNwZWNpZmljYXRpb24gZm91bmQgaGVyZTpcbiAgW1sxXV0gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Jhc2VuYW1lLmh0bWxcbiAgSW4gc3RlcCAxIG9mIFtbMV1dLCB3ZSBjaG9vc2UgdG8gcmV0dXJuIFwiLlwiIGZvciBlbXB0eSBpbnB1dC5cbiAgICAoZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyB2ZXJzaW9ucyBvZiBPQ2FtbClcbiAgSW4gc3RlcCAyLCB3ZSBjaG9vc2UgdG8gcHJvY2VzcyBcIi8vXCIgbm9ybWFsbHkuXG4gIFN0ZXAgNiBpcyBub3QgaW1wbGVtZW50ZWQ6IHdlIGNvbnNpZGVyIHRoYXQgdGhlIFtzdWZmaXhdIG9wZXJhbmQgaXNcbiAgICBhbHdheXMgYWJzZW50LiAgU3VmZml4ZXMgYXJlIGhhbmRsZWQgYnkgW2Nob3Bfc3VmZml4XSBhbmQgW2Nob3BfZXh0ZW5zaW9uXS5cbiopXG5sZXQgZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgbmFtZSA9XG4gIGxldCByZWMgZmluZF9lbmQgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGZpbmRfZW5kIChuIC0gMSlcbiAgICBlbHNlIGZpbmRfYmVnIG4gKG4gKyAxKVxuICBhbmQgZmluZF9iZWcgbiBwID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIHBcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gU3RyaW5nLnN1YiBuYW1lIChuICsgMSkgKHAgLSBuIC0gMSlcbiAgICBlbHNlIGZpbmRfYmVnIChuIC0gMSkgcFxuICBpblxuICBpZiBuYW1lID0gXCJcIlxuICB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgZWxzZSBmaW5kX2VuZCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxuKCogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBPcGVuIEdyb3VwIHNwZWNpZmljYXRpb24gZm91bmQgaGVyZTpcbiAgW1syXV0gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Rpcm5hbWUuaHRtbFxuICBJbiBzdGVwIDYgb2YgW1syXV0sIHdlIGNob29zZSB0byBwcm9jZXNzIFwiLy9cIiBub3JtYWxseS5cbiopXG5sZXQgZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBuYW1lID1cbiAgbGV0IHJlYyB0cmFpbGluZ19zZXAgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIHRyYWlsaW5nX3NlcCAobiAtIDEpXG4gICAgZWxzZSBiYXNlIG5cbiAgYW5kIGJhc2UgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGludGVybWVkaWF0ZV9zZXAgblxuICAgIGVsc2UgYmFzZSAobiAtIDEpXG4gIGFuZCBpbnRlcm1lZGlhdGVfc2VwIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBpbnRlcm1lZGlhdGVfc2VwIChuIC0gMSlcbiAgICBlbHNlIFN0cmluZy5zdWIgbmFtZSAwIChuICsgMSlcbiAgaW5cbiAgaWYgbmFtZSA9IFwiXCJcbiAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gIGVsc2UgdHJhaWxpbmdfc2VwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG5tb2R1bGUgdHlwZSBTWVNERVBTID0gc2lnXG4gIHZhbCBudWxsIDogc3RyaW5nXG4gIHZhbCBjdXJyZW50X2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBwYXJlbnRfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIGRpcl9zZXAgOiBzdHJpbmdcbiAgdmFsIGlzX2Rpcl9zZXAgOiBzdHJpbmcgLT4gaW50IC0+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+PSAwLjBcbiAgICB0aGVuIHsgcmUgPSB3OyAgaW0gPSAwLjUgKi4geC5pbSAvLiB3IH1cbiAgICBlbHNlIHsgcmUgPSAwLjUgKi4gaSAvLiB3OyAgaW0gPSBpZiB4LmltID49IDAuMCB0aGVuIHcgZWxzZSAtLiB3IH1cbiAgZW5kXG5cbmxldCBleHAgeCA9XG4gIGxldCBlID0gZXhwIHgucmUgaW4geyByZSA9IGUgKi4gY29zIHguaW07IGltID0gZSAqLiBzaW4geC5pbSB9XG5cbmxldCBsb2cgeCA9IHsgcmUgPSBsb2cgKG5vcm0geCk7IGltID0gYXRhbjIgeC5pbSB4LnJlIH1cblxubGV0IHBvdyB4IHkgPSBleHAgKG11bCB5IChsb2cgeCkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVub2l0IFZhdWdvbiwgRU5TVEEgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFBhZGRpbmcgcG9zaXRpb24uICopXG50eXBlIHBhZHR5ID1cbiAgfCBMZWZ0ICAgKCogVGV4dCBpcyBsZWZ0IGp1c3RpZmllZCAoJy0nIG9wdGlvbikuICAgICAgICAgICAgICAgKilcbiAgfCBSaWdodCAgKCogVGV4dCBpcyByaWdodCBqdXN0aWZpZWQgKG5vICctJyBvcHRpb24pLiAgICAgICAgICAgKilcbiAgfCBaZXJvcyAgKCogVGV4dCBpcyByaWdodCBqdXN0aWZpZWQgYnkgemVyb3MgKHNlZSAnMCcgb3B0aW9uKS4gKilcblxuKCoqKilcblxuKCogSW50ZWdlciBjb252ZXJzaW9uLiAqKVxudHlwZSBpbnRfY29udiA9XG4gIHwgSW50X2QgfCBJbnRfcGQgfCBJbnRfc2QgICAgICAgICgqICAlZCB8ICUrZCB8ICUgZCAgKilcbiAgfCBJbnRfaSB8IEludF9waSB8IEludF9zaSAgICAgICAgKCogICVpIHwgJStpIHwgJSBpICAqKVxuICB8IEludF94IHwgSW50X0N4ICAgICAgICAgICAgICAgICAoKiAgJXggfCAlI3ggICAgICAgICopXG4gIHwgSW50X1ggfCBJbnRfQ1ggICAgICAgICAgICAgICAgICgqICAlWCB8ICUjWCAgICAgICAgKilcbiAgfCBJbnRfbyB8IEludF9DbyAgICAgICAgICAgICAgICAgKCogICVvIHwgJSNvICAgICAgICAqKVxuICB8IEludF91ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJXUgICAgICAgICAgICAgICopXG4gIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1ICAgICAgICgqICAlI2QgfCAlI2kgfCAlI3UgKilcblxuKCogRmxvYXQgY29udmVyc2lvbi4gKilcbnR5cGUgZmxvYXRfZmxhZ19jb252ID1cbiAgfCBGbG9hdF9mbGFnXyAgICAgICAgICAgICAgICAgICAgKCogJVtmZUVnR0ZoSF0gKilcbiAgfCBGbG9hdF9mbGFnX3AgICAgICAgICAgICAgICAgICAgKCogJStbZmVFZ0dGaEhdICopXG4gIHwgRmxvYXRfZmxhZ19zICAgICAgICAgICAgICAgICAgICgqICUgW2ZlRWdHRmhIXSAqKVxudHlwZSBmbG9hdF9raW5kX2NvbnYgPVxuICB8IEZsb2F0X2YgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWYgfCAlK2YgfCAlIGYgICopXG4gIHwgRmxvYXRfZSAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZSB8ICUrZSB8ICUgZSAgKilcbiAgfCBGbG9hdF9FICAgICAgICAgICAgICAgICAgICAgICAgKCogICVFIHwgJStFIHwgJSBFICAqKVxuICB8IEZsb2F0X2cgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWcgfCAlK2cgfCAlIGcgICopXG4gIHwgRmxvYXRfRyAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRyB8ICUrRyB8ICUgRyAgKilcbiAgfCBGbG9hdF9GICAgICAgICAgICAgICAgICAgICAgICAgKCogICVGIHwgJStGIHwgJSBGICAqKVxuICB8IEZsb2F0X2ggICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWggfCAlK2ggfCAlIGggICopXG4gIHwgRmxvYXRfSCAgICAgICAgICAgICAgICAgICAgICAgICgqICAlSCB8ICUrSCB8ICUgSCAgKilcbiAgfCBGbG9hdF9DRiAgICAgICAgICAgICAgICAgICAgICAgKCogICUjRnwgJSsjRnwgJSAjRiAqKVxudHlwZSBmbG9hdF9jb252ID0gZmxvYXRfZmxhZ19jb252ICogZmxvYXRfa2luZF9jb252XG5cbigqKiopXG5cbigqIENoYXIgc2V0cyAoc2VlICVbLi4uXSkgYXJlIGJpdG1hcHMgaW1wbGVtZW50ZWQgYXMgMzItY2hhciBzdHJpbmdzLiAqKVxudHlwZSBjaGFyX3NldCA9IHN0cmluZ1xuXG4oKioqKVxuXG4oKiBDb3VudGVyIHVzZWQgaW4gU2NhbmYuICopXG50eXBlIGNvdW50ZXIgPVxuICB8IExpbmVfY291bnRlciAgICAgKCogICVsICAgICAgKilcbiAgfCBDaGFyX2NvdW50ZXIgICAgICgqICAlbiAgICAgICopXG4gIHwgVG9rZW5fY291bnRlciAgICAoKiAgJU4sICVMICAqKVxuXG4oKioqKVxuXG4oKiBQYWRkaW5nIG9mIHN0cmluZ3MgYW5kIG51bWJlcnMuICopXG50eXBlICgnYSwgJ2IpIHBhZGRpbmcgPVxuICAoKiBObyBwYWRkaW5nIChleDogXCIlZFwiKSAqKVxuICB8IE5vX3BhZGRpbmcgIDogKCdhLCAnYSkgcGFkZGluZ1xuICAoKiBMaXRlcmFsIHBhZGRpbmcgKGV4OiBcIiU4ZFwiKSAqKVxuICB8IExpdF9wYWRkaW5nIDogcGFkdHkgKiBpbnQgLT4gKCdhLCAnYSkgcGFkZGluZ1xuICAoKiBQYWRkaW5nIGFzIGV4dHJhIGFyZ3VtZW50IChleDogXCIlKmRcIikgKilcbiAgfCBBcmdfcGFkZGluZyA6IHBhZHR5IC0+IChpbnQgLT4gJ2EsICdhKSBwYWRkaW5nXG5cbigqIFNvbWUgZm9ybWF0cywgc3VjaCBhcyAlX2QsXG4gICBvbmx5IGFjY2VwdCBhbiBvcHRpb25hbCBudW1iZXIgYXMgcGFkZGluZyBvcHRpb24gKG5vIGV4dHJhIGFyZ3VtZW50KSAqKVxudHlwZSBwYWRfb3B0aW9uID0gaW50IG9wdGlvblxuXG4oKiBQcmVjaXNpb24gb2YgZmxvYXRzIGFuZCAnMCctcGFkZGluZyBvZiBpbnRlZ2Vycy4gKilcbnR5cGUgKCdhLCAnYikgcHJlY2lzaW9uID1cbiAgKCogTm8gcHJlY2lzaW9uIChleDogXCIlZlwiKSAqKVxuICB8IE5vX3ByZWNpc2lvbiA6ICgnYSwgJ2EpIHByZWNpc2lvblxuICAoKiBMaXRlcmFsIHByZWNpc2lvbiAoZXg6IFwiJS4zZlwiKSAqKVxuICB8IExpdF9wcmVjaXNpb24gOiBpbnQgLT4gKCdhLCAnYSkgcHJlY2lzaW9uXG4gICgqIFByZWNpc2lvbiBhcyBleHRyYSBhcmd1bWVudCAoZXg6IFwiJS4qZlwiKSAqKVxuICB8IEFyZ19wcmVjaXNpb24gOiAoaW50IC0+ICdhLCAnYSkgcHJlY2lzaW9uXG5cbigqIFNvbWUgZm9ybWF0cywgc3VjaCBhcyAlX2YsXG4gICBvbmx5IGFjY2VwdCBhbiBvcHRpb25hbCBudW1iZXIgYXMgcHJlY2lzaW9uIG9wdGlvbiAobm8gZXh0cmEgYXJndW1lbnQpICopXG50eXBlIHByZWNfb3B0aW9uID0gaW50IG9wdGlvblxuXG4oKiBzZWUgdGhlIEN1c3RvbSBmb3JtYXQgY29tYmluYXRvciAqKVxudHlwZSAoJ2EsICdiLCAnYykgY3VzdG9tX2FyaXR5ID1cbiAgfCBDdXN0b21femVybyA6ICgnYSwgc3RyaW5nLCAnYSkgY3VzdG9tX2FyaXR5XG4gIHwgQ3VzdG9tX3N1Y2MgOiAoJ2EsICdiLCAnYykgY3VzdG9tX2FyaXR5IC0+XG4gICAgKCdhLCAneCAtPiAnYiwgJ3ggLT4gJ2MpIGN1c3RvbV9hcml0eVxuXG4oKioqKVxuXG4oKiAgICAgICAgUmVsYXRpb25hbCBmb3JtYXQgdHlwZXNcblxuSW4gdGhlIGZpcnN0IGZvcm1hdCtnYWR0cyBpbXBsZW1lbnRhdGlvbiwgdGhlIHR5cGUgZm9yICUoLi4lKSBpbiB0aGVcbmZtdCBHQURUIHdhcyBhcyBmb2xsb3dzOlxuXG58IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICBwYWRfb3B0aW9uICogKCdkMSwgJ3ExLCAnZDIsICdxMikgcmVhZGVyX25iX3VuaWZpZXIgKlxuICAgICgneCwgJ2IsICdjLCAnZDEsICdxMSwgJ3UpIGZtdHR5ICpcbiAgICAoJ3UsICdiLCAnYywgJ3ExLCAnZTEsICdmKSBmbXQgLT5cbiAgICAgICgoJ3gsICdiLCAnYywgJ2QyLCAncTIsICd1KSBmb3JtYXQ2IC0+ICd4LCAnYiwgJ2MsICdkMSwgJ2UxLCAnZikgZm10XG5cbk5vdGljZSB0aGF0IHRoZSAndSBwYXJhbWV0ZXIgaW4gJ2YgcG9zaXRpb24gaW4gdGhlIGZvcm1hdCBhcmd1bWVudFxuKCgneCwgLi4sICd1KSBmb3JtYXQ2IC0+IC4uKSBpcyBlcXVhbCB0byB0aGUgJ3UgcGFyYW1ldGVyIGluICdhXG5wb3NpdGlvbiBpbiB0aGUgZm9ybWF0IHRhaWwgKCgndSwgLi4sICdmKSBmbXQpLiBUaGlzIG1lYW5zIHRoYXQgdGhlXG50eXBlIG9mIHRoZSBleHBlY3RlZCBmb3JtYXQgcGFyYW1ldGVyIGRlcGVuZHMgb2Ygd2hlcmUgdGhlICUoLi4uJSlcbmFyZSBpbiB0aGUgZm9ybWF0IHN0cmluZzpcblxuICAjIFByaW50Zi5wcmludGYgXCIlKCUpXCJcbiAgLSA6ICh1bml0LCBvdXRfY2hhbm5lbCwgdW5pdCwgJ19hLCAnX2EsIHVuaXQpXG4gICAgICBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NiAtPiB1bml0XG4gID0gPGZ1bj5cbiAgIyBQcmludGYucHJpbnRmIFwiJSglKSVkXCJcbiAgLSA6IChpbnQgLT4gdW5pdCwgb3V0X2NoYW5uZWwsIHVuaXQsICdfYSwgJ19hLCBpbnQgLT4gdW5pdClcbiAgICAgIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2IC0+IGludCAtPiB1bml0XG4gID0gPGZ1bj5cblxuT24gdGhlIGNvbnRyYXJ5LCB0aGUgbGVnYWN5IHR5cGVyIGdpdmVzIGEgY2xldmVyIHR5cGUgdGhhdCBkb2VzIG5vdFxuZGVwZW5kIG9uIHRoZSBwb3NpdGlvbiBvZiAlKC4uJSkgaW4gdGhlIGZvcm1hdCBzdHJpbmcuIEZvciBleGFtcGxlLFxuJSglKSB3aWxsIGhhdmUgdGhlIHBvbHltb3JwaGljIHR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpOiBpdCBjYW5cbmJlIGNvbmNhdGVuYXRlZCB0byBhbnkgZm9ybWF0IHR5cGUsIGFuZCBvbmx5IGVuZm9yY2VzIHRoZSBjb25zdHJhaW50XG50aGF0IGl0cyAnYSBhbmQgJ2YgcGFyYW1ldGVycyBhcmUgZXF1YWwgKG5vIGZvcm1hdCBhcmd1bWVudHMpIGFuZCAnZFxuYW5kICdlIGFyZSBlcXVhbCAobm8gcmVhZGVyIGFyZ3VtZW50KS5cblxuVGhlIHdlYWtlbmluZyBvZiB0aGlzIHBhcmFtZXRlciB0eXBlIGluIHRoZSBHQURUIHZlcnNpb24gYnJva2UgdXNlclxuY29kZSAoaW4gZmFjdCBpdCBlc3NlbnRpYWxseSBtYWRlICUoLi4uJSkgdW51c2FibGUgZXhjZXB0IGF0IHRoZSBsYXN0XG5wb3NpdGlvbiBvZiBhIGZvcm1hdCkuIEluIHBhcnRpY3VsYXIsIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IHdvcmtcbmFueW1vcmU6XG5cbiAgZnVuIHNlcCAtPlxuICAgIEZvcm1hdC5wcmludGYgXCJmb28lKCUpYmFyJSglKWJhelwiIHNlcCBzZXBcblxuQXMgdGhlIHR5cGUtY2hlY2tlciB3b3VsZCByZXF1aXJlIHR3byAqaW5jb21wYXRpYmxlKiB0eXBlcyBmb3IgdGhlICUoJSlcbmluIGRpZmZlcmVudCBwb3NpdGlvbnMuXG5cblRoZSBzb2x1dGlvbiB0byByZWdhaW4gYSBnZW5lcmFsIHR5cGUgZm9yICUoLi4lKSBpcyB0byBnZW5lcmFsaXplIHRoaXNcbnRlY2huaXF1ZSwgbm90IG9ubHkgb24gdGhlICdkLCAnZSBwYXJhbWV0ZXJzLCBidXQgb24gYWxsIHNpeFxucGFyYW1ldGVycyBvZiBhIGZvcm1hdDogd2UgaW50cm9kdWNlIGEgXCJyZWxhdGlvbmFsXCIgdHlwZVxuICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxud2hvc2UgdmFsdWVzIGFyZSBwcm9vZnMgdGhhdCAoJ2ExLCAuLiwgJ2YxKSBhbmQgKCdhMiwgLi4sICdmMikgbW9yYWxseVxuY29ycmVzcG9uZCB0byB0aGUgc2FtZSBmb3JtYXQgdHlwZTogJ2ExIGlzIG9idGFpbmVkIGZyb20gJ2YxLCdiMSwnYzFcbmluIHRoZSBleGFjdCBzYW1lIHdheSB0aGF0ICdhMiBpcyBvYnRhaW5lZCBmcm9tICdmMiwnYjIsJ2MyLCBldGMuXG5cbkZvciBleGFtcGxlLCB0aGUgcmVsYXRpb24gYmV0d2VlbiB0d28gZm9ybWF0IHR5cGVzIGJlZ2lubmluZyB3aXRoIGEgQ2hhclxucGFyYW1ldGVyIGlzIGFzIGZvbGxvd3M6XG5cbnwgQ2hhcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICAqKVxuICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAoY2hhciAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICBjaGFyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG5JbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGUgdGVybSBzdHJ1Y3R1cmUgb2YgZm10dHlfcmVsIGlzIChhbG1vc3RbMV0pXG5pc29tb3JwaGljIHRvIHRoZSBmbXR0eSBvZiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb246IGV2ZXJ5XG5jb25zdHJ1Y3RvciBpcyByZS1yZWFkIHdpdGggYSBiaW5hcnksIHJlbGF0aW9uYWwgdHlwZSwgaW5zdGVhZCBvZiB0aGVcbnByZXZpb3VzIHVuYXJ5IHR5cGluZy4gZm10dHkgY2FuIHRoZW4gYmUgcmUtZGVmaW5lZCBhcyB0aGUgZGlhZ29uYWwgb2ZcbmZtdHR5X3JlbDpcblxuICB0eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSA9XG4gICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YsXG4gICAgICAgICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X3JlbFxuXG5PbmNlIHdlIGhhdmUgdGhpcyBmbXR0eV9yZWwgdHlwZSBpbiBwbGFjZSwgd2UgY2FuIGdpdmUgdGhlIG1vcmVcbmdlbmVyYWwgdHlwZSB0byAlKC4uLiUpOlxuXG58IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICBwYWRfb3B0aW9uICpcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cyLCAnYiwgJ2MsICdqMiwgJ2QsICdhKSBmbXR0eV9yZWwgKlxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYiwgJ2MsICdqMiwgJ2UsICdmKSBmbXRcblxuV2UgYWNjZXB0IGFueSBmb3JtYXQgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2KSAodGhpcyBpc1xuY29tcGxldGVseSB1bnJlbGF0ZWQgdG8gdGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgZm9ybWF0KSwgYnV0IGFsc29cbnJlcXVpcmUgYSBwcm9vZiB0aGF0IHRoaXMgZm9ybWF0IGlzIGluIHJlbGF0aW9uIHRvIGFub3RoZXIgZm9ybWF0IHRoYXRcbmlzIGNvbmNhdGVuYWJsZSB0byB0aGUgZm9ybWF0IHRhaWwuIFdoZW4gZXhlY3V0aW5nIGEgJSguLi4lKSBmb3JtYXRcbihpbiBjYW1saW50ZXJuYWxGb3JtYXQubWw6bWFrZV9wcmludGYgb3Igc2NhbmYubWw6bWFrZV9zY2FuZiksIHdlXG50cmFuc3R5cGUgdGhlIGZvcm1hdCBhbG9uZyB0aGlzIHJlbGF0aW9uIHVzaW5nIHRoZSAncmVjYXN0JyBmdW5jdGlvblxudG8gdHJhbnNwb3NlIGJldHdlZW4gcmVsYXRlZCBmb3JtYXQgdHlwZXMuXG5cbiAgdmFsIHJlY2FzdCA6XG4gICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxKSBmbXRcbiAgLT4gKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgLT4gKCdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdFxuXG5OT1RFIFsxXTogdGhlIHR5cGluZyBvZiBGb3JtYXRfc3Vic3RfdHkgcmVxdWlyZXMgbm90IG9uZSBmb3JtYXQgdHlwZSwgYnV0XG50d28sIG9uZSB0byBlc3RhYmxpc2ggdGhlIGxpbmsgYmV0d2VlbiB0aGUgZm9ybWF0IGFyZ3VtZW50IGFuZCB0aGVcbmZpcnN0IHNpeCBwYXJhbWV0ZXJzLCBhbmQgdGhlIG90aGVyIGZvciB0aGUgbGluayBiZXR3ZWVuIHRoZSBmb3JtYXRcbmFyZ3VtZW50IGFuZCB0aGUgbGFzdCBzaXggcGFyYW1ldGVycy5cblxufCBGb3JtYXRfc3Vic3RfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzEsICdiMSwgJ2MxLCAnajEsICdkMSwgJ2ExKSBmbXR0eV9yZWwgKlxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzIsICdiMiwgJ2MyLCAnajIsICdkMiwgJ2EyKSBmbXR0eV9yZWwgKlxuICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZTEsICdmMSxcbiAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbldoZW4gd2UgZ2VuZXJhdGUgYSBmb3JtYXQgQVNULCB3ZSBnZW5lcmF0ZSBleGFjdGx5IHRoZSBzYW1lIHdpdG5lc3NcbmZvciBib3RoIHJlbGF0aW9ucywgYW5kIHRoZSB3aXRuZXNzLWNvbnZlcnNpb24gZnVuY3Rpb25zIGluXG5jYW1saW50ZXJuYWxGb3JtYXQgZG8gcmVseSBvbiB0aGlzIGludmFyaWFudC4gRm9yIGV4YW1wbGUsIHRoZVxuZnVuY3Rpb24gdGhhdCBwcm92ZXMgdGhhdCB0aGUgcmVsYXRpb24gaXMgdHJhbnNpdGl2ZVxuXG4gIHZhbCB0cmFucyA6XG4gICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIC0+ICgnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyLFxuICAgICAgJ2EzLCAnYjMsICdjMywgJ2QzLCAnZTMsICdmMykgZm10dHlfcmVsXG4gIC0+ICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EzLCAnYjMsICdjMywgJ2QzLCAnZTMsICdmMykgZm10dHlfcmVsXG5cbmRvZXMgYXNzdW1lIHRoYXQgdGhlIHR3byBpbnB1dHMgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHRlcm0gc3RydWN0dXJlXG4oYW5kIGlzIG9ubHkgZXZlcnkgdXNlZCBmb3IgYXJndW1lbnQgd2l0bmVzc2VzIG9mIHRoZVxuRm9ybWF0X3N1YnN0X3R5IGNvbnN0cnVjdG9yKS5cbiopXG5cbigqIFR5cGUgb2YgYSBibG9jayB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlIGJsb2NrX3R5cGUgPVxuICB8IFBwX2hib3ggICAoKiBIb3Jpem9udGFsIGJsb2NrIG5vIGxpbmUgYnJlYWtpbmcgKilcbiAgfCBQcF92Ym94ICAgKCogVmVydGljYWwgYmxvY2sgZWFjaCBicmVhayBsZWFkcyB0byBhIG5ldyBsaW5lICopXG4gIHwgUHBfaHZib3ggICgqIEhvcml6b250YWwtdmVydGljYWwgYmxvY2s6IHNhbWUgYXMgdmJveCwgZXhjZXB0IGlmIHRoaXMgYmxvY2tcbiAgICAgICAgICAgICAgICAgaXMgc21hbGwgZW5vdWdoIHRvIGZpdCBvbiBhIHNpbmdsZSBsaW5lICopXG4gIHwgUHBfaG92Ym94ICgqIEhvcml6b250YWwgb3IgVmVydGljYWwgYmxvY2s6IGJyZWFrcyBsZWFkIHRvIG5ldyBsaW5lXG4gICAgICAgICAgICAgICAgIG9ubHkgd2hlbiBuZWNlc3NhcnkgdG8gcHJpbnQgdGhlIGNvbnRlbnQgb2YgdGhlIGJsb2NrICopXG4gIHwgUHBfYm94ICAgICgqIEhvcml6b250YWwgb3IgSW5kZW50IGJsb2NrOiBicmVha3MgbGVhZCB0byBuZXcgbGluZVxuICAgICAgICAgICAgICAgICBvbmx5IHdoZW4gbmVjZXNzYXJ5IHRvIHByaW50IHRoZSBjb250ZW50IG9mIHRoZSBibG9jaywgb3JcbiAgICAgICAgICAgICAgICAgd2hlbiBpdCBsZWFkcyB0byBhIG5ldyBpbmRlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBsaW5lICopXG4gIHwgUHBfZml0cyAgICgqIEludGVybmFsIHVzYWdlOiB3aGVuIGEgYmxvY2sgZml0cyBvbiBhIHNpbmdsZSBsaW5lICopXG5cbigqIEZvcm1hdHRpbmcgZWxlbWVudCB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlIGZvcm1hdHRpbmdfbGl0ID1cbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF0gICAqKVxuICB8IENsb3NlX3RhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAfSAgICopXG4gIHwgQnJlYWsgb2Ygc3RyaW5nICogaW50ICogaW50ICAgICAgICAgICgqIEAsIHwgQCAgfCBAOyB8IEA7PD4gKilcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQD8gICAqKVxuICB8IEZvcmNlX25ld2xpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXFxuICAqKVxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBALiAgICopXG4gIHwgTWFnaWNfc2l6ZSBvZiBzdHJpbmcgKiBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEA8bj4gKilcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQEAgICAqKVxuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAJSUgICopXG4gIHwgU2Nhbl9pbmRpYyBvZiBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBYICAgKilcblxuKCogRm9ybWF0dGluZyBlbGVtZW50IHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuID1cbiAgfCBPcGVuX3RhZyA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICAgICAgKCogQHsgICAqKVxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlblxuICB8IE9wZW5fYm94IDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gICAgICAoKiBAWyAgICopXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuXG5cbigqKiopXG5cbigqIExpc3Qgb2YgZm9ybWF0IHR5cGUgZWxlbWVudHMuICopXG4oKiBJbiBwYXJ0aWN1bGFyIHVzZWQgdG8gcmVwcmVzZW50ICUoLi4uJSkgYW5kICV7Li4uJX0gY29udGVudHMuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5ID1cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YsXG4gICAgICAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9yZWxcbmFuZCAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsID1cbiAgfCBDaGFyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChjaGFyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgY2hhciAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBTdHJpbmdfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXMgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChzdHJpbmcgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBzdHJpbmcgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVkICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludDMyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbGQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludDMyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50MzIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgTmF0aXZlaW50X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVuZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAobmF0aXZlaW50IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgbmF0aXZlaW50IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludDY0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlTGQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludDY0IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50NjQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgRmxvYXRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVmICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoZmxvYXQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBmbG9hdCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBCb29sX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUIgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChib29sIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgYm9vbCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICB8IEZvcm1hdF9hcmdfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAley4uLiV9ICopXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgKlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKVxuICAgICAgICAgICBmbXR0eV9yZWxcbiAgfCBGb3JtYXRfc3Vic3RfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZDEsICdhMSkgZm10dHlfcmVsICpcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2QyLCAnYTIpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzEsICdiMSwgJ2MxLCAnajEsICdlMSwgJ2YxLFxuICAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2UyLCAnZjIpXG4gICAgICAgICAgIGZtdHR5X3JlbFxuXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9ycy4gKilcbiAgfCBBbHBoYV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWEgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2IxIC0+ICd4IC0+ICdjMSkgLT4gJ3ggLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2IyIC0+ICd4IC0+ICdjMikgLT4gJ3ggLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgVGhldGFfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV0ICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdiMSAtPiAnYzEpIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdiMiAtPiAnYzIpIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEFueV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVXNlZCBmb3IgY3VzdG9tIGZvcm1hdHMgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCd4IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ3ggLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3IuICopXG4gIHwgUmVhZGVyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVyICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ3ggLT4gJ2ExLCAnYjEsICdjMSwgKCdiMSAtPiAneCkgLT4gJ2QxLCAnZTEsICdmMSxcbiAgICAgICAneCAtPiAnYTIsICdiMiwgJ2MyLCAoJ2IyIC0+ICd4KSAtPiAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9yICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ2ExLCAnYjEsICdjMSwgKCdiMSAtPiAneCkgLT4gJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAoJ2IyIC0+ICd4KSAtPiAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICB8IEVuZF9vZl9mbXR0eSA6XG4gICAgICAoJ2YxLCAnYjEsICdjMSwgJ2QxLCAnZDEsICdmMSxcbiAgICAgICAnZjIsICdiMiwgJ2MyLCAnZDIsICdkMiwgJ2YyKSBmbXR0eV9yZWxcblxuKCoqKilcblxuKCogTGlzdCBvZiBmb3JtYXQgZWxlbWVudHMuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCA9XG4gIHwgQ2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2FtbF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXMgKilcbiAgICAgICgneCwgc3RyaW5nIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2FtbF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVMgKilcbiAgICAgICgneCwgc3RyaW5nIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludDMyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVsW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50MzIgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBOYXRpdmVpbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbltkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIG5hdGl2ZWludCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludDY0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVMW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50NjQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGbG9hdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2ZlRWdHRmhIXSAqKVxuICAgICAgZmxvYXRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGZsb2F0IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQm9vbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtiQl0gKilcbiAgICAgICgneCwgYm9vbCAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZsdXNoIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUhICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICB8IFN0cmluZ19saXRlcmFsIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGFiYyAqKVxuICAgICAgc3RyaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2hhcl9saXRlcmFsIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogeCAqKVxuICAgICAgY2hhciAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gIHwgRm9ybWF0X2FyZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXsuLi4lfSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgICBwYWRfb3B0aW9uICpcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMiwgJ2IsICdjLCAnajIsICdkLCAnYSkgZm10dHlfcmVsICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiLCAnYywgJ2oyLCAnZSwgJ2YpIGZtdFxuXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yLiAqKVxuICB8IEFscGhhIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVhICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2IgLT4gJ3ggLT4gJ2MpIC0+ICd4IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFRoZXRhIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV0ICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2IgLT4gJ2MpIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcjogKilcbiAgfCBGb3JtYXR0aW5nX2xpdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXyAqKVxuICAgICAgZm9ybWF0dGluZ19saXQgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGb3JtYXR0aW5nX2dlbiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF8gKilcbiAgICAgICgnYTEsICdiLCAnYywgJ2QxLCAnZTEsICdmMSkgZm9ybWF0dGluZ19nZW4gKlxuICAgICAgKCdmMSwgJ2IsICdjLCAnZTEsICdlMiwgJ2YyKSBmbXQgLT4gKCdhMSwgJ2IsICdjLCAnZDEsICdlMiwgJ2YyKSBmbXRcblxuICAoKiBTY2FuZiBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgUmVhZGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXIgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4IC0+ICdhLCAnYiwgJ2MsICgnYiAtPiAneCkgLT4gJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9jaGFyX3NldCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVsuLi5dICopXG4gICAgICBwYWRfb3B0aW9uICogY2hhcl9zZXQgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChzdHJpbmcgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9nZXRfY291bnRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtubE5MXSAqKVxuICAgICAgY291bnRlciAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGludCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX25leHRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlMGMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IElnbm9yZWRfcGFyYW0gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgaWdub3JlZCAqICgneCwgJ2IsICdjLCAneSwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIEN1c3RvbSBwcmludGluZyBmb3JtYXQgKFBSIzY0NTIsIEdQUiMxNDApXG5cbiAgICAgV2UgaW5jbHVkZSBhIHR5cGUgQ3VzdG9tIG9mIFwiY3VzdG9tIGNvbnZlcnRlcnNcIiwgd2hlcmUgYW5cbiAgICAgYXJiaXRyYXJ5IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgb25lIG9yIG1vcmVcbiAgICAgYXJndW1lbnRzLiBUaGVyZSBpcyBubyBzeW50YXggZm9yIGN1c3RvbSBjb252ZXJ0ZXJzLCBpdCBpcyBvbmx5XG4gICAgIGludGVuZGVkIGZvciBjdXN0b20gcHJvY2Vzc29ycyB0aGF0IHdpc2ggdG8gcmVseSBvbiB0aGVcbiAgICAgc3RkbGliLWRlZmluZWQgZm9ybWF0IEdBRFRzLlxuXG4gICAgIEZvciBpbnN0YW5jZSBhIHByZS1wcm9jZXNzb3IgY291bGQgY2hvb3NlIHRvIGludGVycHJldCBzdHJpbmdzXG4gICAgIHByZWZpeGVkIHdpdGggW1wiIVwiXSBhcyBmb3JtYXQgc3RyaW5ncyB3aGVyZSBbJXt7IC4uLiB9fV0gaXNcbiAgICAgYSBzcGVjaWFsIGZvcm0gdG8gcGFzcyBhIHRvX3N0cmluZyBmdW5jdGlvbiwgc28gdGhhdCBvbmUgY291bGRcbiAgICAgd3JpdGU6XG5cbiAgICAge1tcbiAgICAgICB0eXBlIHQgPSB7IHggOiBpbnQ7IHkgOiBpbnQgfVxuXG4gICAgICAgbGV0IHN0cmluZ19vZl90IHQgPSBQcmludGYuc3ByaW50ZiBcInsgeCA9ICVkOyB5ID0gJWQgfVwiIHQueCB0LnlcblxuICAgICAgIFByaW50Zi5wcmludGYgIVwidCA9ICV7e3N0cmluZ19vZl90fX1cIiB7IHggPSA0MjsgeSA9IDQyIH1cbiAgICAgXX1cbiAgKilcbiAgfCBDdXN0b20gOlxuICAgICAgKCdhLCAneCwgJ3kpIGN1c3RvbV9hcml0eSAqICh1bml0IC0+ICd4KSAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICgneSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBlbmQgb2YgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiAqKVxuICB8IEVuZF9vZl9mb3JtYXQgOlxuICAgICAgICAoJ2YsICdiLCAnYywgJ2UsICdlLCAnZikgZm10XG5cbigqKiopXG5cbigqIFR5cGUgZm9yIGlnbm9yZWQgcGFyYW1ldGVycyAoc2VlIFwiJV9cIikuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGlnbm9yZWQgPVxuICB8IElnbm9yZWRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0MgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9zICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9TICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9kICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludDMyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2xkICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX25kICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludDY0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0xkICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zsb2F0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2YgKilcbiAgICAgIHBhZF9vcHRpb24gKiBwcmVjX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfYm9vbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfQiAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfey4uLiV9ICopXG4gICAgICBwYWRfb3B0aW9uICogKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8oLi4uJSkgKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3JlYWRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3IgKilcbiAgICAgICgnYSwgJ2IsICdjLCAoJ2IgLT4gJ3gpIC0+ICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1suLi5dICopXG4gICAgICBwYWRfb3B0aW9uICogY2hhcl9zZXQgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1tubE5MXSAqKVxuICAgICAgY291bnRlciAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfMGMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG5cbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gIEZvcm1hdCBvZiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10ICogc3RyaW5nXG5cbmxldCByZWMgZXJhc2VfcmVsIDogdHlwZSBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCAuXG4gIChhLCBiLCBjLCBkLCBlLCBmLFxuICAgZywgaCwgaSwgaiwgaywgbCkgZm10dHlfcmVsIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eVxuPSBmdW5jdGlvblxuICB8IENoYXJfdHkgcmVzdCAtPlxuICAgIENoYXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgU3RyaW5nX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIEludF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIEludDMyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgSW50NjRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgTmF0aXZlaW50X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgRmxvYXRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIEJvb2xfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBlcmFzZV9yZWwgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgX3R5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkxLCBlcmFzZV9yZWwgcmVzdClcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgQWxwaGFfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBUaGV0YV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgQW55X3R5IHJlc3QgLT5cbiAgICBBbnlfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgUmVhZGVyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEVuZF9vZl9mbXR0eSAtPiBFbmRfb2ZfZm10dHlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgdHlwZSBjb25jYXRlbmF0aW9uICopXG5cbigqIENvbmNhdGVuYXRlIHR3byBmb3JtYXQgdHlwZXMuICopXG4oKiBVc2VkIGJ5OlxuICAgKiByZWFkZXJfbmJfdW5pZmllcl9vZl9mbXR0eSB0byBjb3VudCByZWFkZXJzIGluIGFuIGZtdHR5LFxuICAgKiBTY2FuZi50YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIHRvIGV4dHJhY3QgcmVhZGVycyBpbnNpZGUgJSguLi4lKSxcbiAgICogQ2FtbGludGVybmFsRm9ybWF0LmZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IHRvIGV4dHJhY3QgZm9ybWF0IHR5cGUuICopXG5cbigqXG5sZXQgcmVjIGNvbmNhdF9mbXR0eSA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIC5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoZiwgYiwgYywgZSwgZywgaCkgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZywgaCkgZm10dHkgPVxuKilcbmxldCByZWMgY29uY2F0X2ZtdHR5IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyXG4gICAgICAgZzEgajEgZzIgajJcbiAgLlxuICAgIChnMSwgYjEsIGMxLCBqMSwgZDEsIGExLFxuICAgICBnMiwgYjIsIGMyLCBqMiwgZDIsIGEyKSBmbXR0eV9yZWwgLT5cbiAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsIC0+XG4gICAgKGcxLCBiMSwgYzEsIGoxLCBlMSwgZjEsXG4gICAgIGcyLCBiMiwgYzIsIGoyLCBlMiwgZjIpIGZtdHR5X3JlbCA9XG5mdW4gZm10dHkxIGZtdHR5MiAtPiBtYXRjaCBmbXR0eTEgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAtPlxuICAgIENoYXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIFN0cmluZ190eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludF90eSByZXN0IC0+XG4gICAgSW50X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIEludDMyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT5cbiAgICBOYXRpdmVpbnRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgSW50NjRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgRmxvYXRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBCb29sX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIEFscGhhX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIFRoZXRhX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQW55X3R5IHJlc3QgLT5cbiAgICBBbnlfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIFJlYWRlcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCBjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IGZtdHR5MlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IGNvbmNhdGVuYXRpb24gKilcblxuKCogQ29uY2F0ZW5hdGUgdHdvIGZvcm1hdHMuICopXG5sZXQgcmVjIGNvbmNhdF9mbXQgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCAuXG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgIChmLCBiLCBjLCBlLCBnLCBoKSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZywgaCkgZm10ID1cbmZ1biBmbXQxIGZtdDIgLT4gbWF0Y2ggZm10MSB3aXRoXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgU3RyaW5nIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgQ2FtbF9zdHJpbmcgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50NjQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IENoYXIgKHJlc3QpIC0+XG4gICAgQ2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBDYW1sX2NoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBCb29sIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEFscGhhIHJlc3QgLT5cbiAgICBBbHBoYSAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgVGhldGEgcmVzdCAtPlxuICAgIFRoZXRhIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDdXN0b20gKGFyaXR5LCBmLCByZXN0KSAtPlxuICAgIEN1c3RvbSAoYXJpdHksIGYsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFJlYWRlciByZXN0IC0+XG4gICAgUmVhZGVyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgRmx1c2ggKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBTdHJpbmdfbGl0ZXJhbCAoc3RyLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBDaGFyX2xpdGVyYWwgICAoY2hyLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEZvcm1hdF9hcmcgKHBhZCwgZm10dHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZyAgIChwYWQsIGZtdHR5LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZCwgZm10dHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0IChwYWQsIGZtdHR5LCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBTY2FuX25leHRfY2hhciAocmVzdCkgLT5cbiAgICBTY2FuX25leHRfY2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIElnbm9yZWRfcGFyYW0gKGlnbiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIHJlc3QpIC0+XG4gICAgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIGZtdDJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIEdhYnJpZWwgU2NoZXJlciwgcHJvamV0IFBhcnRvdXQsIElOUklBIFBhcmlzLVNhY2xheSAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjAgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ2FtbGludGVybmFsQXRvbWljIGlzIGEgZGVwZW5kZW5jeSBvZiBTdGRsaWIsIHNvIGl0IGlzIGNvbXBpbGVkIHdpdGhcbiAgIC1ub3BlcnZhc2l2ZXMuICopXG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcblxuKCogV2UgYXJlIG5vdCByZXVzaW5nICgnYSByZWYpIGRpcmVjdGx5IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYXNvblxuICAgYWJvdXQgYXRvbWljaXR5IGlmIHdlIHdpc2ggdG86IGV2ZW4gaW4gYSBzZXF1ZW50aWFsIGltcGxlbWVudGF0aW9uLFxuICAgc2lnbmFscyBhbmQgb3RoZXIgYXN5bmNocm9ub3VzIGNhbGxiYWNrcyBtaWdodCBicmVhayBhdG9taWNpdHkuICopXG50eXBlICdhIHQgPSB7bXV0YWJsZSB2OiAnYX1cblxubGV0IG1ha2UgdiA9IHt2fVxubGV0IGdldCByID0gci52XG5sZXQgc2V0IHIgdiA9IHIudiA8LSB2XG5cbigqIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSBzZXQgdG8gbmV2ZXIgYmUgaW5saW5lZDogRmxhbWJkYSBpc1xuICAgYWxsb3dlZCB0byBtb3ZlIHN1cnJvdW5kaW5nIGNvZGUgaW5zaWRlIHRoZSBjcml0aWNhbCBzZWN0aW9uLFxuICAgaW5jbHVkaW5nIGFsbG9jYXRpb25zLiAqKVxuXG5sZXRbQGlubGluZSBuZXZlcl0gZXhjaGFuZ2UgciB2ID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgci52IDwtIHY7XG4gICgqIEVORCBBVE9NSUMgKilcbiAgY3VyXG5cbmxldFtAaW5saW5lIG5ldmVyXSBjb21wYXJlX2FuZF9zZXQgciBzZWVuIHYgPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICBpZiBjdXIgPT0gc2VlbiB0aGVuIChcbiAgICByLnYgPC0gdjtcbiAgICAoKiBFTkQgQVRPTUlDICopXG4gICAgdHJ1ZVxuICApIGVsc2VcbiAgICBmYWxzZVxuXG5sZXRbQGlubGluZSBuZXZlcl0gZmV0Y2hfYW5kX2FkZCByIG4gPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICByLnYgPC0gKGN1ciArIG4pO1xuICAoKiBFTkQgQVRPTUlDICopXG4gIGN1clxuXG5sZXQgaW5jciByID0gaWdub3JlIChmZXRjaF9hbmRfYWRkIHIgMSlcbmxldCBkZWNyIHIgPSBpZ25vcmUgKGZldGNoX2FuZF9hZGQgciAoLTEpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFeGNlcHRpb25zICopXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+ICdhIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0ICgpID1cbiAgKCogZm9yIHJ1bnRpbWUvZmFpbF9uYXQuYyAqKVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlBlcnZhc2l2ZXMuYXJyYXlfYm91bmRfZXJyb3JcIlxuICAgIChJbnZhbGlkX2FyZ3VtZW50IFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKVxuXG5leHRlcm5hbCByYWlzZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlXCJcbmV4dGVybmFsIHJhaXNlX25vdHJhY2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZV9ub3RyYWNlXCJcblxubGV0IGZhaWx3aXRoIHMgPSByYWlzZShGYWlsdXJlIHMpXG5sZXQgaW52YWxpZF9hcmcgcyA9IHJhaXNlKEludmFsaWRfYXJndW1lbnQgcylcblxuZXhjZXB0aW9uIEV4aXRcbmV4Y2VwdGlvbiBNYXRjaF9mYWlsdXJlID0gTWF0Y2hfZmFpbHVyZVxuZXhjZXB0aW9uIEFzc2VydF9mYWlsdXJlID0gQXNzZXJ0X2ZhaWx1cmVcbmV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50ID0gSW52YWxpZF9hcmd1bWVudFxuZXhjZXB0aW9uIEZhaWx1cmUgPSBGYWlsdXJlXG5leGNlcHRpb24gTm90X2ZvdW5kID0gTm90X2ZvdW5kXG5leGNlcHRpb24gT3V0X29mX21lbW9yeSA9IE91dF9vZl9tZW1vcnlcbmV4Y2VwdGlvbiBTdGFja19vdmVyZmxvdyA9IFN0YWNrX292ZXJmbG93XG5leGNlcHRpb24gU3lzX2Vycm9yID0gU3lzX2Vycm9yXG5leGNlcHRpb24gRW5kX29mX2ZpbGUgPSBFbmRfb2ZfZmlsZVxuZXhjZXB0aW9uIERpdmlzaW9uX2J5X3plcm8gPSBEaXZpc2lvbl9ieV96ZXJvXG5leGNlcHRpb24gU3lzX2Jsb2NrZWRfaW8gPSBTeXNfYmxvY2tlZF9pb1xuZXhjZXB0aW9uIFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlID0gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGVcblxuKCogQ29tcG9zaXRpb24gb3BlcmF0b3JzICopXG5cbmV4dGVybmFsICggfD4gKSA6ICdhIC0+ICgnYSAtPiAnYikgLT4gJ2IgPSBcIiVyZXZhcHBseVwiXG5leHRlcm5hbCAoIEBAICkgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiID0gXCIlYXBwbHlcIlxuXG4oKiBEZWJ1Z2dpbmcgKilcblxuZXh0ZXJuYWwgX19MT0NfXyA6IHN0cmluZyA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19GSUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfRklMRVwiXG5leHRlcm5hbCBfX0xJTkVfXyA6IGludCA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fTU9EVUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfTU9EVUxFXCJcbmV4dGVybmFsIF9fUE9TX18gOiBzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsIF9fRlVOQ1RJT05fXyA6IHN0cmluZyA9IFwiJWxvY19GVU5DVElPTlwiXG5cbmV4dGVybmFsIF9fTE9DX09GX18gOiAnYSAtPiBzdHJpbmcgKiAnYSA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19MSU5FX09GX18gOiAnYSAtPiBpbnQgKiAnYSA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fUE9TX09GX18gOiAnYSAtPiAoc3RyaW5nICogaW50ICogaW50ICogaW50KSAqICdhID0gXCIlbG9jX1BPU1wiXG5cbigqIENvbXBhcmlzb25zICopXG5cbmV4dGVybmFsICggPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcbmV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5leHRlcm5hbCAoIDwgKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5leHRlcm5hbCAoID4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5leHRlcm5hbCAoIDw9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcbmV4dGVybmFsICggPj0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuZXh0ZXJuYWwgY29tcGFyZSA6ICdhIC0+ICdhIC0+IGludCA9IFwiJWNvbXBhcmVcIlxuXG5sZXQgbWluIHggeSA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICE9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXFcIlxuXG4oKiBCb29sZWFuIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCBvciApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuXG4oKiBJbnRlZ2VyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgKCB+LSApIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCAoIH4rICkgOiBpbnQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsICggLSApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgKCAqICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCAoIC8gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsICggbW9kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5cbmxldCBhYnMgeCA9IGlmIHggPj0gMCB0aGVuIHggZWxzZSAteFxuXG5leHRlcm5hbCAoIGxhbmQgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsICggbG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsICggbHhvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxuXG5sZXQgbG5vdCB4ID0geCBseG9yICgtMSlcblxuZXh0ZXJuYWwgKCBsc2wgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsICggbHNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5leHRlcm5hbCAoIGFzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuXG5sZXQgbWF4X2ludCA9ICgtMSkgbHNyIDFcbmxldCBtaW5faW50ID0gbWF4X2ludCArIDFcblxuKCogRmxvYXRpbmctcG9pbnQgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCAoIH4tLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCAoIH4rLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCAoICsuICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsICggLS4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgKCAqLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCAoIC8uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsICggKiogKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NoX2Zsb2F0XCIgXCJjYW1sX2Fjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luaF9mbG9hdFwiIFwiY2FtbF9hc2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5oX2Zsb2F0XCIgXCJjYW1sX2F0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFic19mbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuZXh0ZXJuYWwgY29weXNpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZF9mbG9hdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbmV4dGVybmFsIGZsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBmbG9hdF9vZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRydW5jYXRlIDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBpbnRfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5sZXQgaW5maW5pdHkgPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgbmVnX2luZmluaXR5ID1cbiAgZmxvYXRfb2ZfYml0cyAweEZGX0YwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IG5hbiA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9GMF8wMF8wMF8wMF8wMF8wMF8wMUxcbmxldCBtYXhfZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRUZfRkZfRkZfRkZfRkZfRkZfRkZMXG5sZXQgbWluX2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDAwXzEwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IGVwc2lsb25fZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4M0NfQjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5cbnR5cGUgZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuXG4oKiBTdHJpbmcgYW5kIGJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZXMgU3RyaW5nIGFuZCBCeXRlcyAqKVxuXG5leHRlcm5hbCBzdHJpbmdfbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgYnl0ZXNfbGVuZ3RoIDogYnl0ZXMgLT4gaW50ID0gXCIlYnl0ZXNfbGVuZ3RoXCJcbmV4dGVybmFsIGJ5dGVzX2NyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgc3RyaW5nX2JsaXQgOiBzdHJpbmcgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYnl0ZXNfYmxpdCA6IGJ5dGVzIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5cbmxldCAoIF4gKSBzMSBzMiA9XG4gIGxldCBsMSA9IHN0cmluZ19sZW5ndGggczEgYW5kIGwyID0gc3RyaW5nX2xlbmd0aCBzMiBpblxuICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSAobDEgKyBsMikgaW5cbiAgc3RyaW5nX2JsaXQgczEgMCBzIDAgbDE7XG4gIHN0cmluZ19ibGl0IHMyIDAgcyBsMSBsMjtcbiAgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyBzXG5cbigqIENoYXJhY3RlciBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlIENoYXIgKilcblxuZXh0ZXJuYWwgaW50X29mX2NoYXIgOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHVuc2FmZV9jaGFyX29mX2ludCA6IGludCAtPiBjaGFyID0gXCIlaWRlbnRpdHlcIlxubGV0IGNoYXJfb2ZfaW50IG4gPVxuICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgXCJjaGFyX29mX2ludFwiIGVsc2UgdW5zYWZlX2NoYXJfb2ZfaW50IG5cblxuKCogVW5pdCBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxuXG4oKiBQYWlyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgZnN0IDogJ2EgKiAnYiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCBzbmQgOiAnYSAqICdiIC0+ICdiID0gXCIlZmllbGQxXCJcblxuKCogUmVmZXJlbmNlcyAqKVxuXG50eXBlICdhIHJlZiA9IHsgbXV0YWJsZSBjb250ZW50cyA6ICdhIH1cbmV4dGVybmFsIHJlZiA6ICdhIC0+ICdhIHJlZiA9IFwiJW1ha2VtdXRhYmxlXCJcbmV4dGVybmFsICggISApIDogJ2EgcmVmIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsICggOj0gKSA6ICdhIHJlZiAtPiAnYSAtPiB1bml0ID0gXCIlc2V0ZmllbGQwXCJcbmV4dGVybmFsIGluY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVpbmNyXCJcbmV4dGVybmFsIGRlY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVkZWNyXCJcblxuKCogUmVzdWx0IHR5cGUgKilcblxudHlwZSAoJ2EsJ2IpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2JcblxuKCogU3RyaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zICopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmV4dGVybmFsIGZvcm1hdF9mbG9hdCA6IHN0cmluZyAtPiBmbG9hdCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2Zsb2F0XCJcblxubGV0IHN0cmluZ19vZl9ib29sIGIgPVxuICBpZiBiIHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCJcbmxldCBib29sX29mX3N0cmluZyA9IGZ1bmN0aW9uXG4gIHwgXCJ0cnVlXCIgLT4gdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBmYWxzZVxuICB8IF8gLT4gaW52YWxpZF9hcmcgXCJib29sX29mX3N0cmluZ1wiXG5cbmxldCBib29sX29mX3N0cmluZ19vcHQgPSBmdW5jdGlvblxuICB8IFwidHJ1ZVwiIC0+IFNvbWUgdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBTb21lIGZhbHNlXG4gIHwgXyAtPiBOb25lXG5cbmxldCBzdHJpbmdfb2ZfaW50IG4gPVxuICBmb3JtYXRfaW50IFwiJWRcIiBuXG5cbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxuXG5sZXQgaW50X29mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IHByb3ZpZGUgdGhpcyBkaXJlY3RseSBhcyBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZS4gKilcbiAgdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5leHRlcm5hbCBzdHJpbmdfZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcblxubGV0IHZhbGlkX2Zsb2F0X2xleGVtIHMgPVxuICBsZXQgbCA9IHN0cmluZ19sZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA+PSBsIHRoZW4gcyBeIFwiLlwiIGVsc2VcbiAgICBtYXRjaCBzdHJpbmdfZ2V0IHMgaSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IGxvb3AgKGkgKyAxKVxuICAgIHwgXyAtPiBzXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgc3RyaW5nX29mX2Zsb2F0IGYgPSB2YWxpZF9mbG9hdF9sZXhlbSAoZm9ybWF0X2Zsb2F0IFwiJS4xMmdcIiBmKVxuXG5leHRlcm5hbCBmbG9hdF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcblxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IHByb3ZpZGUgdGhpcyBkaXJlY3RseSBhcyBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZS4gKilcbiAgdHJ5IFNvbWUgKGZsb2F0X29mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbigqIExpc3Qgb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZSBMaXN0ICopXG5cbmxldCByZWMgKCBAICkgbDEgbDIgPVxuICBtYXRjaCBsMSB3aXRoXG4gICAgW10gLT4gbDJcbiAgfCBoZCA6OiB0bCAtPiBoZCA6OiAodGwgQCBsMilcblxuKCogSS9PIG9wZXJhdGlvbnMgKilcblxudHlwZSBpbl9jaGFubmVsXG50eXBlIG91dF9jaGFubmVsXG5cbmV4dGVybmFsIG9wZW5fZGVzY3JpcHRvcl9vdXQgOiBpbnQgLT4gb3V0X2NoYW5uZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dFwiXG5leHRlcm5hbCBvcGVuX2Rlc2NyaXB0b3JfaW4gOiBpbnQgLT4gaW5fY2hhbm5lbCA9IFwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW5cIlxuXG5sZXQgc3RkaW4gPSBvcGVuX2Rlc2NyaXB0b3JfaW4gMFxubGV0IHN0ZG91dCA9IG9wZW5fZGVzY3JpcHRvcl9vdXQgMVxubGV0IHN0ZGVyciA9IG9wZW5fZGVzY3JpcHRvcl9vdXQgMlxuXG4oKiBHZW5lcmFsIG91dHB1dCBmdW5jdGlvbnMgKilcblxudHlwZSBvcGVuX2ZsYWcgPVxuICAgIE9wZW5fcmRvbmx5IHwgT3Blbl93cm9ubHkgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXQgfCBPcGVuX3RydW5jIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnkgfCBPcGVuX3RleHQgfCBPcGVuX25vbmJsb2NrXG5cbmV4dGVybmFsIG9wZW5fZGVzYyA6IHN0cmluZyAtPiBvcGVuX2ZsYWcgbGlzdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX3N5c19vcGVuXCJcblxuZXh0ZXJuYWwgc2V0X291dF9jaGFubmVsX25hbWU6IG91dF9jaGFubmVsIC0+IHN0cmluZyAtPiB1bml0ID1cbiAgXCJjYW1sX21sX3NldF9jaGFubmVsX25hbWVcIlxuXG5sZXQgb3Blbl9vdXRfZ2VuIG1vZGUgcGVybSBuYW1lID1cbiAgbGV0IGMgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0KG9wZW5fZGVzYyBuYW1lIG1vZGUgcGVybSkgaW5cbiAgc2V0X291dF9jaGFubmVsX25hbWUgYyBuYW1lO1xuICBjXG5cbmxldCBvcGVuX291dCBuYW1lID1cbiAgb3Blbl9vdXRfZ2VuIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl90cnVuYzsgT3Blbl90ZXh0XSAwbzY2NiBuYW1lXG5cbmxldCBvcGVuX291dF9iaW4gbmFtZSA9XG4gIG9wZW5fb3V0X2dlbiBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fdHJ1bmM7IE9wZW5fYmluYXJ5XSAwbzY2NiBuYW1lXG5cbmV4dGVybmFsIGZsdXNoIDogb3V0X2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9mbHVzaFwiXG5cbmV4dGVybmFsIG91dF9jaGFubmVsc19saXN0IDogdW5pdCAtPiBvdXRfY2hhbm5lbCBsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdFwiXG5cbmxldCBmbHVzaF9hbGwgKCkgPVxuICBsZXQgcmVjIGl0ZXIgPSBmdW5jdGlvblxuICAgICAgW10gLT4gKClcbiAgICB8IGE6OmwgLT5cbiAgICAgICAgYmVnaW4gdHJ5XG4gICAgICAgICAgICBmbHVzaCBhXG4gICAgICAgIHdpdGggU3lzX2Vycm9yIF8gLT5cbiAgICAgICAgICAoKSAoKiBpZ25vcmUgY2hhbm5lbHMgY2xvc2VkIGR1cmluZyBhIHByZWNlZGluZyBmbHVzaC4gKilcbiAgICAgICAgZW5kO1xuICAgICAgICBpdGVyIGxcbiAgaW4gaXRlciAob3V0X2NoYW5uZWxzX2xpc3QgKCkpXG5cbmV4dGVybmFsIHVuc2FmZV9vdXRwdXQgOiBvdXRfY2hhbm5lbCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0cHV0X2J5dGVzXCJcbmV4dGVybmFsIHVuc2FmZV9vdXRwdXRfc3RyaW5nIDogb3V0X2NoYW5uZWwgLT4gc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0cHV0XCJcblxuZXh0ZXJuYWwgb3V0cHV0X2NoYXIgOiBvdXRfY2hhbm5lbCAtPiBjaGFyIC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2NoYXJcIlxuXG5sZXQgb3V0cHV0X2J5dGVzIG9jIHMgPVxuICB1bnNhZmVfb3V0cHV0IG9jIHMgMCAoYnl0ZXNfbGVuZ3RoIHMpXG5cbmxldCBvdXRwdXRfc3RyaW5nIG9jIHMgPVxuICB1bnNhZmVfb3V0cHV0X3N0cmluZyBvYyBzIDAgKHN0cmluZ19sZW5ndGggcylcblxubGV0IG91dHB1dCBvYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIm91dHB1dFwiXG4gIGVsc2UgdW5zYWZlX291dHB1dCBvYyBzIG9mcyBsZW5cblxubGV0IG91dHB1dF9zdWJzdHJpbmcgb2MgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IHN0cmluZ19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwib3V0cHV0X3N1YnN0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX291dHB1dF9zdHJpbmcgb2MgcyBvZnMgbGVuXG5cbmV4dGVybmFsIG91dHB1dF9ieXRlIDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2NoYXJcIlxuZXh0ZXJuYWwgb3V0cHV0X2JpbmFyeV9pbnQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfaW50XCJcblxuZXh0ZXJuYWwgbWFyc2hhbF90b19jaGFubmVsIDogb3V0X2NoYW5uZWwgLT4gJ2EgLT4gdW5pdCBsaXN0IC0+IHVuaXRcbiAgICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlXCJcbmxldCBvdXRwdXRfdmFsdWUgY2hhbiB2ID0gbWFyc2hhbF90b19jaGFubmVsIGNoYW4gdiBbXVxuXG5leHRlcm5hbCBzZWVrX291dCA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfb3V0XCJcbmV4dGVybmFsIHBvc19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfcG9zX291dFwiXG5leHRlcm5hbCBvdXRfY2hhbm5lbF9sZW5ndGggOiBvdXRfY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXCJcbmV4dGVybmFsIGNsb3NlX291dF9jaGFubmVsIDogb3V0X2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9jbG9zZV9jaGFubmVsXCJcbmxldCBjbG9zZV9vdXQgb2MgPSBmbHVzaCBvYzsgY2xvc2Vfb3V0X2NoYW5uZWwgb2NcbmxldCBjbG9zZV9vdXRfbm9lcnIgb2MgPVxuICAodHJ5IGZsdXNoIG9jIHdpdGggXyAtPiAoKSk7XG4gICh0cnkgY2xvc2Vfb3V0X2NoYW5uZWwgb2Mgd2l0aCBfIC0+ICgpKVxuZXh0ZXJuYWwgc2V0X2JpbmFyeV9tb2RlX291dCA6IG91dF9jaGFubmVsIC0+IGJvb2wgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcIlxuXG4oKiBHZW5lcmFsIGlucHV0IGZ1bmN0aW9ucyAqKVxuXG5leHRlcm5hbCBzZXRfaW5fY2hhbm5lbF9uYW1lOiBpbl9jaGFubmVsIC0+IHN0cmluZyAtPiB1bml0ID1cbiAgXCJjYW1sX21sX3NldF9jaGFubmVsX25hbWVcIlxuXG5sZXQgb3Blbl9pbl9nZW4gbW9kZSBwZXJtIG5hbWUgPVxuICBsZXQgYyA9IG9wZW5fZGVzY3JpcHRvcl9pbihvcGVuX2Rlc2MgbmFtZSBtb2RlIHBlcm0pIGluXG4gIHNldF9pbl9jaGFubmVsX25hbWUgYyBuYW1lO1xuICBjXG5cbmxldCBvcGVuX2luIG5hbWUgPVxuICBvcGVuX2luX2dlbiBbT3Blbl9yZG9ubHk7IE9wZW5fdGV4dF0gMCBuYW1lXG5cbmxldCBvcGVuX2luX2JpbiBuYW1lID1cbiAgb3Blbl9pbl9nZW4gW09wZW5fcmRvbmx5OyBPcGVuX2JpbmFyeV0gMCBuYW1lXG5cbmV4dGVybmFsIGlucHV0X2NoYXIgOiBpbl9jaGFubmVsIC0+IGNoYXIgPSBcImNhbWxfbWxfaW5wdXRfY2hhclwiXG5cbmV4dGVybmFsIHVuc2FmZV9pbnB1dCA6IGluX2NoYW5uZWwgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9pbnB1dFwiXG5cbmxldCBpbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcImlucHV0XCJcbiAgZWxzZSB1bnNhZmVfaW5wdXQgaWMgcyBvZnMgbGVuXG5cbmxldCByZWMgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBsZW4gPD0gMCB0aGVuICgpIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IHVuc2FmZV9pbnB1dCBpYyBzIG9mcyBsZW4gaW5cbiAgICBpZiByID0gMFxuICAgIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGVcbiAgICBlbHNlIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyAob2ZzICsgcikgKGxlbiAtIHIpXG4gIGVuZFxuXG5sZXQgcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwicmVhbGx5X2lucHV0XCJcbiAgZWxzZSB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlblxuXG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gPVxuICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSBsZW4gaW5cbiAgcmVhbGx5X2lucHV0IGljIHMgMCBsZW47XG4gIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgc1xuXG5leHRlcm5hbCBpbnB1dF9zY2FuX2xpbmUgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmVcIlxuXG5sZXQgaW5wdXRfbGluZSBjaGFuID1cbiAgbGV0IHJlYyBidWlsZF9yZXN1bHQgYnVmIHBvcyA9IGZ1bmN0aW9uXG4gICAgW10gLT4gYnVmXG4gIHwgaGQgOjogdGwgLT5cbiAgICAgIGxldCBsZW4gPSBieXRlc19sZW5ndGggaGQgaW5cbiAgICAgIGJ5dGVzX2JsaXQgaGQgMCBidWYgKHBvcyAtIGxlbikgbGVuO1xuICAgICAgYnVpbGRfcmVzdWx0IGJ1ZiAocG9zIC0gbGVuKSB0bCBpblxuICBsZXQgcmVjIHNjYW4gYWNjdSBsZW4gPVxuICAgIGxldCBuID0gaW5wdXRfc2Nhbl9saW5lIGNoYW4gaW5cbiAgICBpZiBuID0gMCB0aGVuIGJlZ2luICAgICAgICAgICAgICAgICAgICgqIG4gPSAwOiB3ZSBhcmUgYXQgRU9GICopXG4gICAgICBtYXRjaCBhY2N1IHdpdGhcbiAgICAgICAgW10gLT4gcmFpc2UgRW5kX29mX2ZpbGVcbiAgICAgIHwgXyAgLT4gYnVpbGRfcmVzdWx0IChieXRlc19jcmVhdGUgbGVuKSBsZW4gYWNjdVxuICAgIGVuZCBlbHNlIGlmIG4gPiAwIHRoZW4gYmVnaW4gICAgICAgICAgKCogbiA+IDA6IG5ld2xpbmUgZm91bmQgaW4gYnVmZmVyICopXG4gICAgICBsZXQgcmVzID0gYnl0ZXNfY3JlYXRlIChuIC0gMSkgaW5cbiAgICAgIGlnbm9yZSAodW5zYWZlX2lucHV0IGNoYW4gcmVzIDAgKG4gLSAxKSk7XG4gICAgICBpZ25vcmUgKGlucHV0X2NoYXIgY2hhbik7ICAgICAgICAgICAoKiBza2lwIHRoZSBuZXdsaW5lICopXG4gICAgICBtYXRjaCBhY2N1IHdpdGhcbiAgICAgICAgW10gLT4gcmVzXG4gICAgICB8ICBfIC0+IGxldCBsZW4gPSBsZW4gKyBuIC0gMSBpblxuICAgICAgICAgICAgICBidWlsZF9yZXN1bHQgKGJ5dGVzX2NyZWF0ZSBsZW4pIGxlbiAocmVzIDo6IGFjY3UpXG4gICAgZW5kIGVsc2UgYmVnaW4gICAgICAgICAgICAgICAgICAgICAgICAoKiBuIDwgMDogbmV3bGluZSBub3QgZm91bmQgKilcbiAgICAgIGxldCBiZWcgPSBieXRlc19jcmVhdGUgKC1uKSBpblxuICAgICAgaWdub3JlKHVuc2FmZV9pbnB1dCBjaGFuIGJlZyAwICgtbikpO1xuICAgICAgc2NhbiAoYmVnIDo6IGFjY3UpIChsZW4gLSBuKVxuICAgIGVuZFxuICBpbiBieXRlc191bnNhZmVfdG9fc3RyaW5nIChzY2FuIFtdIDApXG5cbmV4dGVybmFsIGlucHV0X2J5dGUgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9jaGFyXCJcbmV4dGVybmFsIGlucHV0X2JpbmFyeV9pbnQgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9pbnRcIlxuZXh0ZXJuYWwgaW5wdXRfdmFsdWUgOiBpbl9jaGFubmVsIC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlXCJcbmV4dGVybmFsIHNlZWtfaW4gOiBpbl9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfaW5cIlxuZXh0ZXJuYWwgcG9zX2luIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfcG9zX2luXCJcbmV4dGVybmFsIGluX2NoYW5uZWxfbGVuZ3RoIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXCJcbmV4dGVybmFsIGNsb3NlX2luIDogaW5fY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2Nsb3NlX2NoYW5uZWxcIlxubGV0IGNsb3NlX2luX25vZXJyIGljID0gKHRyeSBjbG9zZV9pbiBpYyB3aXRoIF8gLT4gKCkpXG5leHRlcm5hbCBzZXRfYmluYXJ5X21vZGVfaW4gOiBpbl9jaGFubmVsIC0+IGJvb2wgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZVwiXG5cbigqIE91dHB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgb3V0cHV0ICopXG5cbmxldCBwcmludF9jaGFyIGMgPSBvdXRwdXRfY2hhciBzdGRvdXQgY1xubGV0IHByaW50X3N0cmluZyBzID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgc1xubGV0IHByaW50X2J5dGVzIHMgPSBvdXRwdXRfYnl0ZXMgc3Rkb3V0IHNcbmxldCBwcmludF9pbnQgaSA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IChzdHJpbmdfb2ZfaW50IGkpXG5sZXQgcHJpbnRfZmxvYXQgZiA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IChzdHJpbmdfb2ZfZmxvYXQgZilcbmxldCBwcmludF9lbmRsaW5lIHMgPVxuICBvdXRwdXRfc3RyaW5nIHN0ZG91dCBzOyBvdXRwdXRfY2hhciBzdGRvdXQgJ1xcbic7IGZsdXNoIHN0ZG91dFxubGV0IHByaW50X25ld2xpbmUgKCkgPSBvdXRwdXRfY2hhciBzdGRvdXQgJ1xcbic7IGZsdXNoIHN0ZG91dFxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIGVycm9yICopXG5cbmxldCBwcmVycl9jaGFyIGMgPSBvdXRwdXRfY2hhciBzdGRlcnIgY1xubGV0IHByZXJyX3N0cmluZyBzID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgc1xubGV0IHByZXJyX2J5dGVzIHMgPSBvdXRwdXRfYnl0ZXMgc3RkZXJyIHNcbmxldCBwcmVycl9pbnQgaSA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIChzdHJpbmdfb2ZfaW50IGkpXG5sZXQgcHJlcnJfZmxvYXQgZiA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIChzdHJpbmdfb2ZfZmxvYXQgZilcbmxldCBwcmVycl9lbmRsaW5lIHMgPVxuICBvdXRwdXRfc3RyaW5nIHN0ZGVyciBzOyBvdXRwdXRfY2hhciBzdGRlcnIgJ1xcbic7IGZsdXNoIHN0ZGVyclxubGV0IHByZXJyX25ld2xpbmUgKCkgPSBvdXRwdXRfY2hhciBzdGRlcnIgJ1xcbic7IGZsdXNoIHN0ZGVyclxuXG4oKiBJbnB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgaW5wdXQgKilcblxubGV0IHJlYWRfbGluZSAoKSA9IGZsdXNoIHN0ZG91dDsgaW5wdXRfbGluZSBzdGRpblxubGV0IHJlYWRfaW50ICgpID0gaW50X29mX3N0cmluZyhyZWFkX2xpbmUoKSlcbmxldCByZWFkX2ludF9vcHQgKCkgPSBpbnRfb2Zfc3RyaW5nX29wdChyZWFkX2xpbmUoKSlcbmxldCByZWFkX2Zsb2F0ICgpID0gZmxvYXRfb2Zfc3RyaW5nKHJlYWRfbGluZSgpKVxubGV0IHJlYWRfZmxvYXRfb3B0ICgpID0gZmxvYXRfb2Zfc3RyaW5nX29wdChyZWFkX2xpbmUoKSlcblxuKCogT3BlcmF0aW9ucyBvbiBsYXJnZSBmaWxlcyAqKVxuXG5tb2R1bGUgTGFyZ2VGaWxlID1cbiAgc3RydWN0XG4gICAgZXh0ZXJuYWwgc2Vla19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfb3V0XzY0XCJcbiAgICBleHRlcm5hbCBwb3Nfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfcG9zX291dF82NFwiXG4gICAgZXh0ZXJuYWwgb3V0X2NoYW5uZWxfbGVuZ3RoIDogb3V0X2NoYW5uZWwgLT4gaW50NjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XCJcbiAgICBleHRlcm5hbCBzZWVrX2luIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfaW5fNjRcIlxuICAgIGV4dGVybmFsIHBvc19pbiA6IGluX2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfcG9zX2luXzY0XCJcbiAgICBleHRlcm5hbCBpbl9jaGFubmVsX2xlbmd0aCA6IGluX2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XCJcbiAgZW5kXG5cbigqIEZvcm1hdHMgKilcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NlxuICAgPSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcbiAgID0gRm9ybWF0IG9mICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm10XG4gICAgICAgICAgICAgICAqIHN0cmluZ1xuXG50eXBlICgnYSwgJ2IsICdjLCAnZCkgZm9ybWF0NCA9ICgnYSwgJ2IsICdjLCAnYywgJ2MsICdkKSBmb3JtYXQ2XG5cbnR5cGUgKCdhLCAnYiwgJ2MpIGZvcm1hdCA9ICgnYSwgJ2IsICdjLCAnYykgZm9ybWF0NFxuXG5sZXQgc3RyaW5nX29mX2Zvcm1hdCAoRm9ybWF0IChfZm10LCBzdHIpKSA9IHN0clxuXG5leHRlcm5hbCBmb3JtYXRfb2Zfc3RyaW5nIDpcbiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgKCBeXiApIChGb3JtYXQgKGZtdDEsIHN0cjEpKSAoRm9ybWF0IChmbXQyLCBzdHIyKSkgPVxuICBGb3JtYXQgKENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5jb25jYXRfZm10IGZtdDEgZm10MixcbiAgICAgICAgICBzdHIxIF4gXCIlLFwiIF4gc3RyMilcblxuKCogTWlzY2VsbGFuZW91cyAqKVxuXG5leHRlcm5hbCBzeXNfZXhpdCA6IGludCAtPiAnYSA9IFwiY2FtbF9zeXNfZXhpdFwiXG5cbmxldCBleGl0X2Z1bmN0aW9uID0gQ2FtbGludGVybmFsQXRvbWljLm1ha2UgZmx1c2hfYWxsXG5cbmxldCByZWMgYXRfZXhpdCBmID1cbiAgbGV0IG1vZHVsZSBBdG9taWMgPSBDYW1saW50ZXJuYWxBdG9taWMgaW5cbiAgKCogTVBSIzcyNTMsIE1QUiM3Nzk2OiBtYWtlIHN1cmUgXCJmXCIgaXMgZXhlY3V0ZWQgb25seSBvbmNlICopXG4gIGxldCBmX3lldF90b19ydW4gPSBBdG9taWMubWFrZSB0cnVlIGluXG4gIGxldCBvbGRfZXhpdCA9IEF0b21pYy5nZXQgZXhpdF9mdW5jdGlvbiBpblxuICBsZXQgbmV3X2V4aXQgKCkgPVxuICAgIGlmIEF0b21pYy5jb21wYXJlX2FuZF9zZXQgZl95ZXRfdG9fcnVuIHRydWUgZmFsc2UgdGhlbiBmICgpIDtcbiAgICBvbGRfZXhpdCAoKVxuICBpblxuICBsZXQgc3VjY2VzcyA9IEF0b21pYy5jb21wYXJlX2FuZF9zZXQgZXhpdF9mdW5jdGlvbiBvbGRfZXhpdCBuZXdfZXhpdCBpblxuICBpZiBub3Qgc3VjY2VzcyB0aGVuIGF0X2V4aXQgZlxuXG5sZXQgZG9fYXRfZXhpdCAoKSA9IChDYW1saW50ZXJuYWxBdG9taWMuZ2V0IGV4aXRfZnVuY3Rpb24pICgpXG5cbmxldCBleGl0IHJldGNvZGUgPVxuICBkb19hdF9leGl0ICgpO1xuICBzeXNfZXhpdCByZXRjb2RlXG5cbmxldCBfID0gcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQZXJ2YXNpdmVzLmRvX2F0X2V4aXRcIiBkb19hdF9leGl0XG5cbmV4dGVybmFsIG1ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21ham9yXCJcbmV4dGVybmFsIG5ha2VkX3BvaW50ZXJzX2NoZWNrZWQgOiB1bml0IC0+IGJvb2xcbiAgPSBcImNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWRcIlxubGV0ICgpID0gaWYgbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCAoKSB0aGVuIGF0X2V4aXQgbWFqb3JcblxuKCpNT0RVTEVfQUxJQVNFUyopXG5tb2R1bGUgQXJnICAgICAgICAgID0gQXJnXG5tb2R1bGUgQXJyYXkgICAgICAgID0gQXJyYXlcbm1vZHVsZSBBcnJheUxhYmVscyAgPSBBcnJheUxhYmVsc1xubW9kdWxlIEF0b21pYyAgICAgICA9IEF0b21pY1xubW9kdWxlIEJpZ2FycmF5ICAgICA9IEJpZ2FycmF5XG5tb2R1bGUgQm9vbCAgICAgICAgID0gQm9vbFxubW9kdWxlIEJ1ZmZlciAgICAgICA9IEJ1ZmZlclxubW9kdWxlIEJ5dGVzICAgICAgICA9IEJ5dGVzXG5tb2R1bGUgQnl0ZXNMYWJlbHMgID0gQnl0ZXNMYWJlbHNcbm1vZHVsZSBDYWxsYmFjayAgICAgPSBDYWxsYmFja1xubW9kdWxlIENoYXIgICAgICAgICA9IENoYXJcbm1vZHVsZSBDb21wbGV4ICAgICAgPSBDb21wbGV4XG5tb2R1bGUgRGlnZXN0ICAgICAgID0gRGlnZXN0XG5tb2R1bGUgRWl0aGVyICAgICAgID0gRWl0aGVyXG5tb2R1bGUgRXBoZW1lcm9uICAgID0gRXBoZW1lcm9uXG5tb2R1bGUgRmlsZW5hbWUgICAgID0gRmlsZW5hbWVcbm1vZHVsZSBGbG9hdCAgICAgICAgPSBGbG9hdFxubW9kdWxlIEZvcm1hdCAgICAgICA9IEZvcm1hdFxubW9kdWxlIEZ1biAgICAgICAgICA9IEZ1blxubW9kdWxlIEdjICAgICAgICAgICA9IEdjXG5tb2R1bGUgR2VubGV4ICAgICAgID0gR2VubGV4XG5tb2R1bGUgSGFzaHRibCAgICAgID0gSGFzaHRibFxubW9kdWxlIEluX2NoYW5uZWwgICA9IEluX2NoYW5uZWxcbm1vZHVsZSBJbnQgICAgICAgICAgPSBJbnRcbm1vZHVsZSBJbnQzMiAgICAgICAgPSBJbnQzMlxubW9kdWxlIEludDY0ICAgICAgICA9IEludDY0XG5tb2R1bGUgTGF6eSAgICAgICAgID0gTGF6eVxubW9kdWxlIExleGluZyAgICAgICA9IExleGluZ1xubW9kdWxlIExpc3QgICAgICAgICA9IExpc3Rcbm1vZHVsZSBMaXN0TGFiZWxzICAgPSBMaXN0TGFiZWxzXG5tb2R1bGUgTWFwICAgICAgICAgID0gTWFwXG5tb2R1bGUgTWFyc2hhbCAgICAgID0gTWFyc2hhbFxubW9kdWxlIE1vcmVMYWJlbHMgICA9IE1vcmVMYWJlbHNcbm1vZHVsZSBOYXRpdmVpbnQgICAgPSBOYXRpdmVpbnRcbm1vZHVsZSBPYmogICAgICAgICAgPSBPYmpcbm1vZHVsZSBPbyAgICAgICAgICAgPSBPb1xubW9kdWxlIE9wdGlvbiAgICAgICA9IE9wdGlvblxubW9kdWxlIE91dF9jaGFubmVsICA9IE91dF9jaGFubmVsXG5tb2R1bGUgUGFyc2luZyAgICAgID0gUGFyc2luZ1xubW9kdWxlIFBlcnZhc2l2ZXMgICA9IFBlcnZhc2l2ZXNcbm1vZHVsZSBQcmludGV4YyAgICAgPSBQcmludGV4Y1xubW9kdWxlIFByaW50ZiAgICAgICA9IFByaW50ZlxubW9kdWxlIFF1ZXVlICAgICAgICA9IFF1ZXVlXG5tb2R1bGUgUmFuZG9tICAgICAgID0gUmFuZG9tXG5tb2R1bGUgUmVzdWx0ICAgICAgID0gUmVzdWx0XG5tb2R1bGUgU2NhbmYgICAgICAgID0gU2NhbmZcbm1vZHVsZSBTZXEgICAgICAgICAgPSBTZXFcbm1vZHVsZSBTZXQgICAgICAgICAgPSBTZXRcbm1vZHVsZSBTdGFjayAgICAgICAgPSBTdGFja1xubW9kdWxlIFN0ZExhYmVscyAgICA9IFN0ZExhYmVsc1xubW9kdWxlIFN0cmVhbSAgICAgICA9IFN0cmVhbVxubW9kdWxlIFN0cmluZyAgICAgICA9IFN0cmluZ1xubW9kdWxlIFN0cmluZ0xhYmVscyA9IFN0cmluZ0xhYmVsc1xubW9kdWxlIFN5cyAgICAgICAgICA9IFN5c1xubW9kdWxlIFVjaGFyICAgICAgICA9IFVjaGFyXG5tb2R1bGUgVW5pdCAgICAgICAgID0gVW5pdFxubW9kdWxlIFdlYWsgICAgICAgICA9IFdlYWtcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgIEplcmVtaWUgRGltaW5vLCBKYW5lIFN0cmVldCBFdXJvcGUgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTcgSmFuZSBTdHJlZXQgR3JvdXAgTExDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIEBkZXByZWNhdGVkIFVzZSB7IVN0ZGxpYn0gKilcblxuZXh0ZXJuYWwgcmFpc2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZVwiXG5leHRlcm5hbCByYWlzZV9ub3RyYWNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2Vfbm90cmFjZVwiXG5sZXQgaW52YWxpZF9hcmcgPSBpbnZhbGlkX2FyZ1xubGV0IGZhaWx3aXRoID0gZmFpbHdpdGhcbmV4Y2VwdGlvbiBFeGl0XG5leHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5leHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5leHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcbmV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcbmxldCBtaW4gPSBtaW5cbmxldCBtYXggPSBtYXhcbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICE9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXFcIlxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCAmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuICBbQEBvY2FtbC5kZXByZWNhdGVkIFwiVXNlICgmJikgaW5zdGVhZC5cIl1cbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmV4dGVybmFsICggb3IgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbiAgW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSAofHwpIGluc3RlYWQuXCJdXG5leHRlcm5hbCBfX0xPQ19fIDogc3RyaW5nID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0ZJTEVfXyA6IHN0cmluZyA9IFwiJWxvY19GSUxFXCJcbmV4dGVybmFsIF9fTElORV9fIDogaW50ID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19NT0RVTEVfXyA6IHN0cmluZyA9IFwiJWxvY19NT0RVTEVcIlxuZXh0ZXJuYWwgX19QT1NfXyA6IHN0cmluZyAqIGludCAqIGludCAqIGludCA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgX19MT0NfT0ZfXyA6ICdhIC0+IHN0cmluZyAqICdhID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0xJTkVfT0ZfXyA6ICdhIC0+IGludCAqICdhID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19QT1NfT0ZfXyA6ICdhIC0+IChzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQpICogJ2EgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsICggfD4gKSA6ICdhIC0+ICgnYSAtPiAnYikgLT4gJ2IgPSBcIiVyZXZhcHBseVwiXG5leHRlcm5hbCAoIEBAICkgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiID0gXCIlYXBwbHlcIlxuZXh0ZXJuYWwgKCB+LSApIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCAoIH4rICkgOiBpbnQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsICggLSApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgKCAqICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCAoIC8gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsICggbW9kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5sZXQgYWJzID0gYWJzXG5sZXQgbWF4X2ludCA9IG1heF9pbnRcbmxldCBtaW5faW50ID0gbWluX2ludFxuZXh0ZXJuYWwgKCBsYW5kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCAoIGxvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCAoIGx4b3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcbmxldCBsbm90ID0gbG5vdFxuZXh0ZXJuYWwgKCBsc2wgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsICggbHNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5leHRlcm5hbCAoIGFzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuZXh0ZXJuYWwgKCB+LS4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgKCB+Ky4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgKCArLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCAoIC0uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsICggKi4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgKCAvLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCAoICoqICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFic19mbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuZXh0ZXJuYWwgY29weXNpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZF9mbG9hdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbmV4dGVybmFsIGZsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBmbG9hdF9vZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRydW5jYXRlIDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBpbnRfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmxldCBpbmZpbml0eSA9IGluZmluaXR5XG5sZXQgbmVnX2luZmluaXR5ID0gbmVnX2luZmluaXR5XG5sZXQgbmFuID0gbmFuXG5sZXQgbWF4X2Zsb2F0ID0gbWF4X2Zsb2F0XG5sZXQgbWluX2Zsb2F0ID0gbWluX2Zsb2F0XG5sZXQgZXBzaWxvbl9mbG9hdCA9IGVwc2lsb25fZmxvYXRcbnR5cGUgbm9ucmVjIGZwY2xhc3MgPSBmcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5sZXQgKCBeICkgPSAoIF4gKVxuZXh0ZXJuYWwgaW50X29mX2NoYXIgOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmxldCBjaGFyX29mX2ludCA9IGNoYXJfb2ZfaW50XG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcbmxldCBzdHJpbmdfb2ZfYm9vbCA9IHN0cmluZ19vZl9ib29sXG5sZXQgYm9vbF9vZl9zdHJpbmcgPSBib29sX29mX3N0cmluZ1xubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCA9IGJvb2xfb2Zfc3RyaW5nX29wdFxubGV0IHN0cmluZ19vZl9pbnQgPSBzdHJpbmdfb2ZfaW50XG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcbmxldCBpbnRfb2Zfc3RyaW5nX29wdCA9IGludF9vZl9zdHJpbmdfb3B0XG5sZXQgc3RyaW5nX29mX2Zsb2F0ID0gc3RyaW5nX29mX2Zsb2F0XG5leHRlcm5hbCBmbG9hdF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0ID0gZmxvYXRfb2Zfc3RyaW5nX29wdFxuZXh0ZXJuYWwgZnN0IDogJ2EgKiAnYiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCBzbmQgOiAnYSAqICdiIC0+ICdiID0gXCIlZmllbGQxXCJcbmxldCAoIEAgKSAgPSAoIEAgKVxudHlwZSBub25yZWMgaW5fY2hhbm5lbCA9IGluX2NoYW5uZWxcbnR5cGUgbm9ucmVjIG91dF9jaGFubmVsID0gb3V0X2NoYW5uZWxcbmxldCBzdGRpbiA9IHN0ZGluXG5sZXQgc3Rkb3V0ID0gc3Rkb3V0XG5sZXQgc3RkZXJyID0gc3RkZXJyXG5sZXQgcHJpbnRfY2hhciA9IHByaW50X2NoYXJcbmxldCBwcmludF9zdHJpbmcgPSBwcmludF9zdHJpbmdcbmxldCBwcmludF9ieXRlcyA9IHByaW50X2J5dGVzXG5sZXQgcHJpbnRfaW50ID0gcHJpbnRfaW50XG5sZXQgcHJpbnRfZmxvYXQgPSBwcmludF9mbG9hdFxubGV0IHByaW50X2VuZGxpbmUgPSBwcmludF9lbmRsaW5lXG5sZXQgcHJpbnRfbmV3bGluZSA9IHByaW50X25ld2xpbmVcbmxldCBwcmVycl9jaGFyID0gcHJlcnJfY2hhclxubGV0IHByZXJyX3N0cmluZyA9IHByZXJyX3N0cmluZ1xubGV0IHByZXJyX2J5dGVzID0gcHJlcnJfYnl0ZXNcbmxldCBwcmVycl9pbnQgPSBwcmVycl9pbnRcbmxldCBwcmVycl9mbG9hdCA9IHByZXJyX2Zsb2F0XG5sZXQgcHJlcnJfZW5kbGluZSA9IHByZXJyX2VuZGxpbmVcbmxldCBwcmVycl9uZXdsaW5lID0gcHJlcnJfbmV3bGluZVxubGV0IHJlYWRfbGluZSA9IHJlYWRfbGluZVxubGV0IHJlYWRfaW50ID0gcmVhZF9pbnRcbmxldCByZWFkX2ludF9vcHQgPSByZWFkX2ludF9vcHRcbmxldCByZWFkX2Zsb2F0ID0gcmVhZF9mbG9hdFxubGV0IHJlYWRfZmxvYXRfb3B0ID0gcmVhZF9mbG9hdF9vcHRcbnR5cGUgbm9ucmVjIG9wZW5fZmxhZyA9IG9wZW5fZmxhZyA9XG4gICAgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcbmxldCBvcGVuX291dCA9IG9wZW5fb3V0XG5sZXQgb3Blbl9vdXRfYmluID0gb3Blbl9vdXRfYmluXG5sZXQgb3Blbl9vdXRfZ2VuID0gb3Blbl9vdXRfZ2VuXG5sZXQgZmx1c2ggPSBmbHVzaFxubGV0IGZsdXNoX2FsbCA9IGZsdXNoX2FsbFxubGV0IG91dHB1dF9jaGFyID0gb3V0cHV0X2NoYXJcbmxldCBvdXRwdXRfc3RyaW5nID0gb3V0cHV0X3N0cmluZ1xubGV0IG91dHB1dF9ieXRlcyA9IG91dHB1dF9ieXRlc1xubGV0IG91dHB1dCA9IG91dHB1dFxubGV0IG91dHB1dF9zdWJzdHJpbmcgPSBvdXRwdXRfc3Vic3RyaW5nXG5sZXQgb3V0cHV0X2J5dGUgPSBvdXRwdXRfYnl0ZVxubGV0IG91dHB1dF9iaW5hcnlfaW50ID0gb3V0cHV0X2JpbmFyeV9pbnRcbmxldCBvdXRwdXRfdmFsdWUgPSBvdXRwdXRfdmFsdWVcbmxldCBzZWVrX291dCA9IHNlZWtfb3V0XG5sZXQgcG9zX291dCA9IHBvc19vdXRcbmxldCBvdXRfY2hhbm5lbF9sZW5ndGggPSBvdXRfY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZV9vdXQgPSBjbG9zZV9vdXRcbmxldCBjbG9zZV9vdXRfbm9lcnIgPSBjbG9zZV9vdXRfbm9lcnJcbmxldCBzZXRfYmluYXJ5X21vZGVfb3V0ID0gc2V0X2JpbmFyeV9tb2RlX291dFxubGV0IG9wZW5faW4gPSBvcGVuX2luXG5sZXQgb3Blbl9pbl9iaW4gPSBvcGVuX2luX2JpblxubGV0IG9wZW5faW5fZ2VuID0gb3Blbl9pbl9nZW5cbmxldCBpbnB1dF9jaGFyID0gaW5wdXRfY2hhclxubGV0IGlucHV0X2xpbmUgPSBpbnB1dF9saW5lXG5sZXQgaW5wdXQgPSBpbnB1dFxubGV0IHJlYWxseV9pbnB1dCA9IHJlYWxseV9pbnB1dFxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgPSByZWFsbHlfaW5wdXRfc3RyaW5nXG5sZXQgaW5wdXRfYnl0ZSA9IGlucHV0X2J5dGVcbmxldCBpbnB1dF9iaW5hcnlfaW50ID0gaW5wdXRfYmluYXJ5X2ludFxubGV0IGlucHV0X3ZhbHVlID0gaW5wdXRfdmFsdWVcbmxldCBzZWVrX2luID0gc2Vla19pblxubGV0IHBvc19pbiA9IHBvc19pblxubGV0IGluX2NoYW5uZWxfbGVuZ3RoID0gaW5fY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZV9pbiA9IGNsb3NlX2luXG5sZXQgY2xvc2VfaW5fbm9lcnIgPSBjbG9zZV9pbl9ub2VyclxubGV0IHNldF9iaW5hcnlfbW9kZV9pbiA9IHNldF9iaW5hcnlfbW9kZV9pblxubW9kdWxlIExhcmdlRmlsZSA9IExhcmdlRmlsZVxudHlwZSBub25yZWMgJ2EgcmVmID0gJ2EgcmVmID0geyBtdXRhYmxlIGNvbnRlbnRzIDogJ2EgfVxuZXh0ZXJuYWwgcmVmIDogJ2EgLT4gJ2EgcmVmID0gXCIlbWFrZW11dGFibGVcIlxuZXh0ZXJuYWwgKCAhICkgOiAnYSByZWYgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgKCA6PSApIDogJ2EgcmVmIC0+ICdhIC0+IHVuaXQgPSBcIiVzZXRmaWVsZDBcIlxuZXh0ZXJuYWwgaW5jciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWluY3JcIlxuZXh0ZXJuYWwgZGVjciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWRlY3JcIlxudHlwZSBub25yZWMgKCdhLCdiKSByZXN1bHQgPSAoJ2EsJ2IpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2JcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBmb3JtYXQ0ID0gKCdhLCAnYiwgJ2MsICdjLCAnYywgJ2QpIGZvcm1hdDZcbnR5cGUgKCdhLCAnYiwgJ2MpIGZvcm1hdCA9ICgnYSwgJ2IsICdjLCAnYykgZm9ybWF0NFxubGV0IHN0cmluZ19vZl9mb3JtYXQgPSBzdHJpbmdfb2ZfZm9ybWF0XG5leHRlcm5hbCBmb3JtYXRfb2Zfc3RyaW5nIDpcbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPSBcIiVpZGVudGl0eVwiXG5sZXQgKCBeXiApID0gKCBeXiApXG5sZXQgZXhpdCA9IGV4aXRcbmxldCBhdF9leGl0ID0gYXRfZXhpdFxubGV0IHZhbGlkX2Zsb2F0X2xleGVtID0gdmFsaWRfZmxvYXRfbGV4ZW1cbmxldCBkb19hdF9leGl0ID0gZG9fYXRfZXhpdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBQc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3JcbiAgIFRoaXMgaXMgYSBsYWdnZWQtRmlib25hY2NpIEYoNTUsIDI0LCArKSB3aXRoIGEgbW9kaWZpZWQgYWRkaXRpb25cbiAgIGZ1bmN0aW9uIHRvIGVuaGFuY2UgdGhlIG1peGluZyBvZiBiaXRzLlxuICAgSWYgd2UgdXNlIG5vcm1hbCBhZGRpdGlvbiwgdGhlIGxvdy1vcmRlciBiaXQgZmFpbHMgdGVzdHMgMSBhbmQgN1xuICAgb2YgdGhlIERpZWhhcmQgdGVzdCBzdWl0ZSwgYW5kIGJpdHMgMSBhbmQgMiBhbHNvIGZhaWwgdGVzdCA3LlxuICAgSWYgd2UgdXNlIG11bHRpcGxpY2F0aW9uIGFzIHN1Z2dlc3RlZCBieSBNYXJzYWdsaWEsIGl0IGRvZXNuJ3QgZmFyZVxuICAgbXVjaCBiZXR0ZXIuXG4gICBCeSBtaXhpbmcgdGhlIGJpdHMgb2Ygb25lIG9mIHRoZSBudW1iZXJzIGJlZm9yZSBhZGRpdGlvbiAoWE9SIHRoZVxuICAgNSBoaWdoLW9yZGVyIGJpdHMgaW50byB0aGUgbG93LW9yZGVyIGJpdHMpLCB3ZSBnZXQgYSBnZW5lcmF0b3IgdGhhdFxuICAgcGFzc2VzIGFsbCB0aGUgRGllaGFyZCB0ZXN0cy5cbiopXG5cbmV4dGVybmFsIHJhbmRvbV9zZWVkOiB1bml0IC0+IGludCBhcnJheSA9IFwiY2FtbF9zeXNfcmFuZG9tX3NlZWRcIlxuXG5tb2R1bGUgU3RhdGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPSB7IHN0IDogaW50IGFycmF5OyBtdXRhYmxlIGlkeCA6IGludCB9XG5cbiAgbGV0IG5ld19zdGF0ZSAoKSA9IHsgc3QgPSBBcnJheS5tYWtlIDU1IDA7IGlkeCA9IDAgfVxuICBsZXQgYXNzaWduIHN0MSBzdDIgPVxuICAgIEFycmF5LmJsaXQgc3QyLnN0IDAgc3QxLnN0IDAgNTU7XG4gICAgc3QxLmlkeCA8LSBzdDIuaWR4XG5cblxuICBsZXQgZnVsbF9pbml0IHMgc2VlZCA9XG4gICAgbGV0IGNvbWJpbmUgYWNjdSB4ID0gRGlnZXN0LnN0cmluZyAoYWNjdSBeIEludC50b19zdHJpbmcgeCkgaW5cbiAgICBsZXQgZXh0cmFjdCBkID1cbiAgICAgIENoYXIuY29kZSBkLlswXSArIChDaGFyLmNvZGUgZC5bMV0gbHNsIDgpICsgKENoYXIuY29kZSBkLlsyXSBsc2wgMTYpXG4gICAgICArIChDaGFyLmNvZGUgZC5bM10gbHNsIDI0KVxuICAgIGluXG4gICAgbGV0IHNlZWQgPSBpZiBBcnJheS5sZW5ndGggc2VlZCA9IDAgdGhlbiBbfCAwIHxdIGVsc2Ugc2VlZCBpblxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIHNlZWQgaW5cbiAgICBmb3IgaSA9IDAgdG8gNTQgZG9cbiAgICAgIHMuc3QuKGkpIDwtIGk7XG4gICAgZG9uZTtcbiAgICBsZXQgYWNjdSA9IHJlZiBcInhcIiBpblxuICAgIGZvciBpID0gMCB0byA1NCArIEludC5tYXggNTUgbCBkb1xuICAgICAgbGV0IGogPSBpIG1vZCA1NSBpblxuICAgICAgbGV0IGsgPSBpIG1vZCBsIGluXG4gICAgICBhY2N1IDo9IGNvbWJpbmUgIWFjY3Ugc2VlZC4oayk7XG4gICAgICBzLnN0LihqKSA8LSAocy5zdC4oaikgbHhvciBleHRyYWN0ICFhY2N1KSBsYW5kIDB4M0ZGRkZGRkY7ICAoKiBQUiM1NTc1ICopXG4gICAgZG9uZTtcbiAgICBzLmlkeCA8LSAwXG5cblxuICBsZXQgbWFrZSBzZWVkID1cbiAgICBsZXQgcmVzdWx0ID0gbmV3X3N0YXRlICgpIGluXG4gICAgZnVsbF9pbml0IHJlc3VsdCBzZWVkO1xuICAgIHJlc3VsdFxuXG5cbiAgbGV0IG1ha2Vfc2VsZl9pbml0ICgpID0gbWFrZSAocmFuZG9tX3NlZWQgKCkpXG5cbiAgbGV0IGNvcHkgcyA9XG4gICAgbGV0IHJlc3VsdCA9IG5ld19zdGF0ZSAoKSBpblxuICAgIGFzc2lnbiByZXN1bHQgcztcbiAgICByZXN1bHRcblxuXG4gICgqIFJldHVybnMgMzAgcmFuZG9tIGJpdHMgYXMgYW4gaW50ZWdlciAwIDw9IHggPCAxMDczNzQxODI0ICopXG4gIGxldCBiaXRzIHMgPVxuICAgIHMuaWR4IDwtIChzLmlkeCArIDEpIG1vZCA1NTtcbiAgICBsZXQgY3VydmFsID0gcy5zdC4ocy5pZHgpIGluXG4gICAgbGV0IG5ld3ZhbCA9IHMuc3QuKChzLmlkeCArIDI0KSBtb2QgNTUpXG4gICAgICAgICAgICAgICAgICsgKGN1cnZhbCBseG9yICgoY3VydmFsIGxzciAyNSkgbGFuZCAweDFGKSkgaW5cbiAgICBsZXQgbmV3dmFsMzAgPSBuZXd2YWwgbGFuZCAweDNGRkZGRkZGIGluICAoKiBQUiM1NTc1ICopXG4gICAgcy5zdC4ocy5pZHgpIDwtIG5ld3ZhbDMwO1xuICAgIG5ld3ZhbDMwXG5cblxuICBsZXQgcmVjIGludGF1eCBzIG4gPVxuICAgIGxldCByID0gYml0cyBzIGluXG4gICAgbGV0IHYgPSByIG1vZCBuIGluXG4gICAgaWYgciAtIHYgPiAweDNGRkZGRkZGIC0gbiArIDEgdGhlbiBpbnRhdXggcyBuIGVsc2UgdlxuXG4gIGxldCBpbnQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPiAweDNGRkZGRkZGIHx8IGJvdW5kIDw9IDBcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludFwiXG4gICAgZWxzZSBpbnRhdXggcyBib3VuZFxuXG4gIGxldCByZWMgaW50NjNhdXggcyBuID1cbiAgICBsZXQgbWF4X2ludF8zMiA9ICgxIGxzbCAzMCkgKyAweDNGRkZGRkZGIGluICgqIDB4N0ZGRkZGRkYgKilcbiAgICBsZXQgYjEgPSBiaXRzIHMgaW5cbiAgICBsZXQgYjIgPSBiaXRzIHMgaW5cbiAgICBsZXQgKHIsIG1heF9pbnQpID1cbiAgICAgIGlmIG4gPD0gbWF4X2ludF8zMiB0aGVuXG4gICAgICAgICgqIDMxIHJhbmRvbSBiaXRzIG9uIGJvdGggNjQtYml0IE9DYW1sIGFuZCBKYXZhU2NyaXB0LlxuICAgICAgICAgICBVc2UgdXBwZXIgMTUgYml0cyBvZiBiMSBhbmQgMTYgYml0cyBvZiBiMi4gKilcbiAgICAgICAgbGV0IGJwb3MgPVxuICAgICAgICAgICgoKGIyIGxhbmQgMHgzRkZGQzAwMCkgbHNsIDEpIGxvciAoYjEgbHNyIDE1KSlcbiAgICAgICAgaW5cbiAgICAgICAgICAoYnBvcywgbWF4X2ludF8zMilcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IGIzID0gYml0cyBzIGluXG4gICAgICAgICgqIDYyIHJhbmRvbSBiaXRzIG9uIDY0LWJpdCBPQ2FtbDsgdW5yZWFjaGFibGUgb24gSmF2YVNjcmlwdC5cbiAgICAgICAgICAgVXNlIHVwcGVyIDIwIGJpdHMgb2YgYjEgYW5kIDIxIGJpdHMgb2YgYjIgYW5kIGIzLiAqKVxuICAgICAgICBsZXQgYnBvcyA9XG4gICAgICAgICAgKCgoKGIzIGxhbmQgMHgzRkZGRkUwMCkgbHNsIDEyKSBsb3IgKGIyIGxzciA5KSkgbHNsIDIwKVxuICAgICAgICAgICAgbG9yIChiMSBsc3IgMTApXG4gICAgICAgIGluXG4gICAgICAgICAgKGJwb3MsIG1heF9pbnQpXG4gICAgaW5cbiAgICBsZXQgdiA9IHIgbW9kIG4gaW5cbiAgICBpZiByIC0gdiA+IG1heF9pbnQgLSBuICsgMSB0aGVuIGludDYzYXV4IHMgbiBlbHNlIHZcblxuICBsZXQgZnVsbF9pbnQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMCB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIlJhbmRvbS5mdWxsX2ludFwiXG4gICAgZWxzZSBpZiBib3VuZCA+IDB4M0ZGRkZGRkYgdGhlblxuICAgICAgaW50NjNhdXggcyBib3VuZFxuICAgIGVsc2VcbiAgICAgIGludGF1eCBzIGJvdW5kXG5cblxuICBsZXQgcmVjIGludDMyYXV4IHMgbiA9XG4gICAgbGV0IGIxID0gSW50MzIub2ZfaW50IChiaXRzIHMpIGluXG4gICAgbGV0IGIyID0gSW50MzIuc2hpZnRfbGVmdCAoSW50MzIub2ZfaW50IChiaXRzIHMgbGFuZCAxKSkgMzAgaW5cbiAgICBsZXQgciA9IEludDMyLmxvZ29yIGIxIGIyIGluXG4gICAgbGV0IHYgPSBJbnQzMi5yZW0gciBuIGluXG4gICAgaWYgSW50MzIuc3ViIHIgdiA+IEludDMyLmFkZCAoSW50MzIuc3ViIEludDMyLm1heF9pbnQgbikgMWxcbiAgICB0aGVuIGludDMyYXV4IHMgblxuICAgIGVsc2UgdlxuXG4gIGxldCBpbnQzMiBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwbFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50MzJcIlxuICAgIGVsc2UgaW50MzJhdXggcyBib3VuZFxuXG5cbiAgbGV0IHJlYyBpbnQ2NGF1eCBzIG4gPVxuICAgIGxldCBiMSA9IEludDY0Lm9mX2ludCAoYml0cyBzKSBpblxuICAgIGxldCBiMiA9IEludDY0LnNoaWZ0X2xlZnQgKEludDY0Lm9mX2ludCAoYml0cyBzKSkgMzAgaW5cbiAgICBsZXQgYjMgPSBJbnQ2NC5zaGlmdF9sZWZ0IChJbnQ2NC5vZl9pbnQgKGJpdHMgcyBsYW5kIDcpKSA2MCBpblxuICAgIGxldCByID0gSW50NjQubG9nb3IgYjEgKEludDY0LmxvZ29yIGIyIGIzKSBpblxuICAgIGxldCB2ID0gSW50NjQucmVtIHIgbiBpblxuICAgIGlmIEludDY0LnN1YiByIHYgPiBJbnQ2NC5hZGQgKEludDY0LnN1YiBJbnQ2NC5tYXhfaW50IG4pIDFMXG4gICAgdGhlbiBpbnQ2NGF1eCBzIG5cbiAgICBlbHNlIHZcblxuICBsZXQgaW50NjQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMExcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludDY0XCJcbiAgICBlbHNlIGludDY0YXV4IHMgYm91bmRcblxuXG4gIGxldCBuYXRpdmVpbnQgPVxuICAgIGlmIE5hdGl2ZWludC5zaXplID0gMzJcbiAgICB0aGVuIGZ1biBzIGJvdW5kIC0+IE5hdGl2ZWludC5vZl9pbnQzMiAoaW50MzIgcyAoTmF0aXZlaW50LnRvX2ludDMyIGJvdW5kKSlcbiAgICBlbHNlIGZ1biBzIGJvdW5kIC0+IEludDY0LnRvX25hdGl2ZWludCAoaW50NjQgcyAoSW50NjQub2ZfbmF0aXZlaW50IGJvdW5kKSlcblxuXG4gICgqIFJldHVybnMgYSBmbG9hdCAwIDw9IHggPD0gMSB3aXRoIGF0IG1vc3QgNjAgYml0cyBvZiBwcmVjaXNpb24uICopXG4gIGxldCByYXdmbG9hdCBzID1cbiAgICBsZXQgc2NhbGUgPSAxMDczNzQxODI0LjAgICgqIDJeMzAgKilcbiAgICBhbmQgcjEgPSBTdGRsaWIuZmxvYXQgKGJpdHMgcylcbiAgICBhbmQgcjIgPSBTdGRsaWIuZmxvYXQgKGJpdHMgcylcbiAgICBpbiAocjEgLy4gc2NhbGUgKy4gcjIpIC8uIHNjYWxlXG5cblxuICBsZXQgZmxvYXQgcyBib3VuZCA9IHJhd2Zsb2F0IHMgKi4gYm91bmRcblxuICBsZXQgYm9vbCBzID0gKGJpdHMgcyBsYW5kIDEgPSAwKVxuXG4gIGxldCBiaXRzMzIgcyA9XG4gICAgbGV0IGIxID0gSW50MzIuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgMTQpIGluICAoKiAxNiBiaXRzICopXG4gICAgbGV0IGIyID0gSW50MzIuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgMTQpIGluICAoKiAxNiBiaXRzICopXG4gICAgSW50MzIuKGxvZ29yIGIxIChzaGlmdF9sZWZ0IGIyIDE2KSlcblxuICBsZXQgYml0czY0IHMgPVxuICAgIGxldCBiMSA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDkpIGluICAoKiAyMSBiaXRzICopXG4gICAgbGV0IGIyID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOSkgaW4gICgqIDIxIGJpdHMgKilcbiAgICBsZXQgYjMgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA4KSBpbiAgKCogMjIgYml0cyAqKVxuICAgIEludDY0Lihsb2dvciBiMSAobG9nb3IgKHNoaWZ0X2xlZnQgYjIgMjEpIChzaGlmdF9sZWZ0IGIzIDQyKSkpXG5cbiAgbGV0IG5hdGl2ZWJpdHMgPVxuICAgIGlmIE5hdGl2ZWludC5zaXplID0gMzJcbiAgICB0aGVuIGZ1biBzIC0+IE5hdGl2ZWludC5vZl9pbnQzMiAoYml0czMyIHMpXG4gICAgZWxzZSBmdW4gcyAtPiBJbnQ2NC50b19uYXRpdmVpbnQgKGJpdHM2NCBzKVxuXG5lbmRcblxuKCogVGhpcyBpcyB0aGUgc3RhdGUgeW91IGdldCB3aXRoIFtpbml0IDI3MTgyODE4XSBhbmQgdGhlbiBhcHBseWluZ1xuICAgdGhlIFwibGFuZCAweDNGRkZGRkZGXCIgZmlsdGVyIHRvIHRoZW0uICBTZWUgIzU1NzUsICM1NzkzLCAjNTk3Ny4gKilcbmxldCBkZWZhdWx0ID0ge1xuICBTdGF0ZS5zdCA9IFt8XG4gICAgICAweDNhZTI1MjJiOyAweDFkOGQ0NjM0OyAweDE1YjRmYWQwOyAweDE4YjE0YWNlOyAweDEyZjhhM2M0OyAweDNiMDg2YzQ3O1xuICAgICAgMHgxNmQ0NjdkNjsgMHgxMDFkOTFjNzsgMHgzMjFkZjE3NzsgMHgwMTc2YzE5MzsgMHgxZmY3MmJmMTsgMHgxZTg4OTEwOTtcbiAgICAgIDB4MGI0NjRiMTg7IDB4MmI4NmI5N2M7IDB4MDg5MWRhNDg7IDB4MDMxMzc0NjM7IDB4MDg1YWM1YTE7IDB4MTVkNjFmMmY7XG4gICAgICAweDNiY2VkMzU5OyAweDI5YzFjMTMyOyAweDNhODY3NjZlOyAweDM2NmQ4Yzg2OyAweDFmNWI2MjIyOyAweDNjZTFiNTlmO1xuICAgICAgMHgyZWJmNzhlMTsgMHgyN2NkMWI4NjsgMHgyNThmM2RjMzsgMHgzODlhODE5NDsgMHgwMmU0YzQ0YzsgMHgxOGM0M2Y3ZDtcbiAgICAgIDB4MGY2ZTUzNGY7IDB4MWU3ZGYzNTk7IDB4MDU1ZDBiN2U7IDB4MTBlODRlN2U7IDB4MTI2MTk4ZTQ7IDB4MGU3NzIyY2I7XG4gICAgICAweDFjYmVkZTI4OyAweDMzOTFiOTY0OyAweDNkNDBlOTJhOyAweDBjNTk5MzNkOyAweDBiOGNkMGI3OyAweDI0ZWZmZjFjO1xuICAgICAgMHgyODAzZmRhYTsgMHgwOGViYzcyZTsgMHgwZjUyMmUzMjsgMHgwNTM5OGVkYzsgMHgyMTQ0YTA0YzsgMHgwYWVmM2NiZDtcbiAgICAgIDB4MDFhZDQ3MTk7IDB4MzViOTNjZDY7IDB4MmE1NTlkNGY7IDB4MWU2ZmQ3Njg7IDB4MjZlMjdmMzY7IDB4MTg2ZjE4YzM7XG4gICAgICAweDJmYmY5NjdhO1xuICAgIHxdO1xuICBTdGF0ZS5pZHggPSAwO1xufVxuXG5sZXQgYml0cyAoKSA9IFN0YXRlLmJpdHMgZGVmYXVsdFxubGV0IGludCBib3VuZCA9IFN0YXRlLmludCBkZWZhdWx0IGJvdW5kXG5sZXQgZnVsbF9pbnQgYm91bmQgPSBTdGF0ZS5mdWxsX2ludCBkZWZhdWx0IGJvdW5kXG5sZXQgaW50MzIgYm91bmQgPSBTdGF0ZS5pbnQzMiBkZWZhdWx0IGJvdW5kXG5sZXQgbmF0aXZlaW50IGJvdW5kID0gU3RhdGUubmF0aXZlaW50IGRlZmF1bHQgYm91bmRcbmxldCBpbnQ2NCBib3VuZCA9IFN0YXRlLmludDY0IGRlZmF1bHQgYm91bmRcbmxldCBmbG9hdCBzY2FsZSA9IFN0YXRlLmZsb2F0IGRlZmF1bHQgc2NhbGVcbmxldCBib29sICgpID0gU3RhdGUuYm9vbCBkZWZhdWx0XG5sZXQgYml0czMyICgpID0gU3RhdGUuYml0czMyIGRlZmF1bHRcbmxldCBiaXRzNjQgKCkgPSBTdGF0ZS5iaXRzNjQgZGVmYXVsdFxubGV0IG5hdGl2ZWJpdHMgKCkgPSBTdGF0ZS5uYXRpdmViaXRzIGRlZmF1bHRcblxubGV0IGZ1bGxfaW5pdCBzZWVkID0gU3RhdGUuZnVsbF9pbml0IGRlZmF1bHQgc2VlZFxubGV0IGluaXQgc2VlZCA9IFN0YXRlLmZ1bGxfaW5pdCBkZWZhdWx0IFt8IHNlZWQgfF1cbmxldCBzZWxmX2luaXQgKCkgPSBmdWxsX2luaXQgKHJhbmRvbV9zZWVkKCkpXG5cbigqIE1hbmlwdWxhdGluZyB0aGUgY3VycmVudCBzdGF0ZS4gKilcblxubGV0IGdldF9zdGF0ZSAoKSA9IFN0YXRlLmNvcHkgZGVmYXVsdFxubGV0IHNldF9zdGF0ZSBzID0gU3RhdGUuYXNzaWduIGRlZmF1bHQgc1xuXG4oKioqKioqKioqKioqKioqKioqKipcblxuKCogVGVzdCBmdW5jdGlvbnMuICBOb3QgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkuXG4gICBUaGUgW2NoaXNxdWFyZV0gZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aXRoIG4gPiAxMHIuXG4gICBJdCByZXR1cm5zIGEgdHJpcGxlIChsb3csIGFjdHVhbCwgaGlnaCkuXG4gICBJZiBsb3cgPD0gYWN0dWFsIDw9IGhpZ2gsIHRoZSBbZ10gZnVuY3Rpb24gcGFzc2VkIHRoZSB0ZXN0LFxuICAgb3RoZXJ3aXNlIGl0IGZhaWxlZC5cblxuICBTb21lIHJlc3VsdHM6XG5cbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgNTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAwIDEwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMjk5NzkyNjQzOyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDE0MTQyMTM2OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYgMTAyNDsgY2hpc3F1YXJlIGRpZmYgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZiAxMDA7IGNoaXNxdWFyZSBkaWZmIDEwMDAwMCAxMDBcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZjIgMTAyNDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbmluaXQgMTQxNDIxMzY7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuaW5pdCAyOTk3OTI2NDM7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5MzYuNzU0NDQ2Nzk2NjMyNDY1LCA5OTcuNSwgMTA2My4yNDU1NTMyMDMzNjc1NClcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg5Ljc0MDAwMDAwMDAwNTIzODcsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoNDg1OC41Nzg2NDM3NjI2OSwgNTA0NS41LCA1MTQxLjQyMTM1NjIzNzMxKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID1cbig5MzYuNzU0NDQ2Nzk2NjMyNDY1LCA5NDQuODA1OTk5OTk5OTgyMzA1LCAxMDYzLjI0NTU1MzIwMzM2NzU0KVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwMTkuMTk3NDQwMDAwMDAzNTUsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNTkuMzE3NzYwMDAwMDA1MzYsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwMzkuOTg0NjM5OTk5OTk1MTIsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNTQuMzgyMDc5OTk5OTk1NzcsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgOTAuMDk2MDAwMDAwMDA1LCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNzYuNzg3MjAwMDAwMDA2MTIsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODUuMTc2MDAwMDAwMDA2NzUyMSwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg1LjIxNjAwMDAwMDAwMDM0OTIsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4MC42MjIwMDAwMDAwMDMwMjY4LCAxMjAuKVxuXG4qKVxuXG4oKiBSZXR1cm4gdGhlIHN1bSBvZiB0aGUgc3F1YXJlcyBvZiB2W2kwLGkxWyAqKVxubGV0IHJlYyBzdW1zcSB2IGkwIGkxID1cbiAgaWYgaTAgPj0gaTEgdGhlbiAwLjBcbiAgZWxzZSBpZiBpMSA9IGkwICsgMSB0aGVuIFN0ZGxpYi5mbG9hdCB2LihpMCkgKi4gU3RkbGliLmZsb2F0IHYuKGkwKVxuICBlbHNlIHN1bXNxIHYgaTAgKChpMCtpMSkvMikgKy4gc3Vtc3EgdiAoKGkwK2kxKS8yKSBpMVxuXG5cbmxldCBjaGlzcXVhcmUgZyBuIHIgPVxuICBpZiBuIDw9IDEwICogciB0aGVuIGludmFsaWRfYXJnIFwiY2hpc3F1YXJlXCI7XG4gIGxldCBmID0gQXJyYXkubWFrZSByIDAgaW5cbiAgZm9yIGkgPSAxIHRvIG4gZG9cbiAgICBsZXQgdCA9IGcgciBpblxuICAgIGYuKHQpIDwtIGYuKHQpICsgMVxuICBkb25lO1xuICBsZXQgdCA9IHN1bXNxIGYgMCByXG4gIGFuZCByID0gU3RkbGliLmZsb2F0IHJcbiAgYW5kIG4gPSBTdGRsaWIuZmxvYXQgbiBpblxuICBsZXQgc3IgPSAyLjAgKi4gc3FydCByIGluXG4gIChyIC0uIHNyLCAgIChyICouIHQgLy4gbikgLS4gbiwgICByICsuIHNyKVxuXG5cbigqIFRoaXMgaXMgdG8gdGVzdCBmb3IgbGluZWFyIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgcmFuZG9tIG51bWJlcnMuXG4qKVxubGV0IHN0ID0gcmVmIDBcbmxldCBpbml0X2RpZmYgciA9IHN0IDo9IGludCByXG5sZXQgZGlmZiByID1cbiAgbGV0IHgxID0gIXN0XG4gIGFuZCB4MiA9IGludCByXG4gIGluXG4gIHN0IDo9IHgyO1xuICBpZiB4MSA+PSB4MiB0aGVuXG4gICAgeDEgLSB4MlxuICBlbHNlXG4gICAgciArIHgxIC0geDJcblxuXG5sZXQgc3QxID0gcmVmIDBcbmFuZCBzdDIgPSByZWYgMFxuXG5cbigqIFRoaXMgaXMgdG8gdGVzdCBmb3IgcXVhZHJhdGljIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgcmFuZG9tXG4gICBudW1iZXJzLlxuKilcbmxldCBpbml0X2RpZmYyIHIgPSBzdDEgOj0gaW50IHI7IHN0MiA6PSBpbnQgclxubGV0IGRpZmYyIHIgPVxuICBsZXQgeDEgPSAhc3QxXG4gIGFuZCB4MiA9ICFzdDJcbiAgYW5kIHgzID0gaW50IHJcbiAgaW5cbiAgc3QxIDo9IHgyO1xuICBzdDIgOj0geDM7XG4gICh4MyAtIHgyIC0geDIgKyB4MSArIDIqcikgbW9kIHJcblxuXG4qKioqKioqKioqKioqKioqKioqKilcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgTmljb2xhcyBPamVkYSBCYXIsIExleGlGaSAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgbmVnIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCBhZGQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsIHN1YiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgbXVsIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCBkaXYgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsIHJlbSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZm1hIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1hX2Zsb2F0XCIgXCJjYW1sX2ZtYVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcblxubGV0IHplcm8gPSAwLlxubGV0IG9uZSA9IDEuXG5sZXQgbWludXNfb25lID0gLTEuXG5sZXQgaW5maW5pdHkgPSBTdGRsaWIuaW5maW5pdHlcbmxldCBuZWdfaW5maW5pdHkgPSBTdGRsaWIubmVnX2luZmluaXR5XG5sZXQgbmFuID0gU3RkbGliLm5hblxubGV0IGlzX2Zpbml0ZSAoeDogZmxvYXQpID0geCAtLiB4ID0gMC5cbmxldCBpc19pbmZpbml0ZSAoeDogZmxvYXQpID0gMS4gLy4geCA9IDAuXG5sZXQgaXNfbmFuICh4OiBmbG9hdCkgPSB4IDw+IHhcblxubGV0IHBpID0gMHgxLjkyMWZiNTQ0NDJkMThwKzFcbmxldCBtYXhfZmxvYXQgPSBTdGRsaWIubWF4X2Zsb2F0XG5sZXQgbWluX2Zsb2F0ID0gU3RkbGliLm1pbl9mbG9hdFxubGV0IGVwc2lsb24gPSBTdGRsaWIuZXBzaWxvbl9mbG9hdFxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0b19pbnQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxubGV0IG9mX3N0cmluZ19vcHQgPSBTdGRsaWIuZmxvYXRfb2Zfc3RyaW5nX29wdFxubGV0IHRvX3N0cmluZyA9IFN0ZGxpYi5zdHJpbmdfb2ZfZmxvYXRcbnR5cGUgZnBjbGFzcyA9IFN0ZGxpYi5mcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBwb3cgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNicnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jYnJ0X2Zsb2F0XCIgXCJjYW1sX2NicnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwMiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cDJfZmxvYXRcIiBcImNhbWxfZXhwMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cyIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMl9mbG9hdFwiIFwiY2FtbF9sb2cyXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NoX2Zsb2F0XCIgXCJjYW1sX2Fjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbmhfZmxvYXRcIiBcImNhbWxfYXNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuaF9mbG9hdFwiIFwiY2FtbF9hdGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBlcmYgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9lcmZfZmxvYXRcIiBcImNhbWxfZXJmXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGVyZmMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9lcmZjX2Zsb2F0XCIgXCJjYW1sX2VyZmNcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdHJ1bmMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90cnVuY19mbG9hdFwiIFwiY2FtbF90cnVuY1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCByb3VuZCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3JvdW5kX2Zsb2F0XCIgXCJjYW1sX3JvdW5kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbltAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCBpc19pbnRlZ2VyIHggPSB4ID0gdHJ1bmMgeCAmJiBpc19maW5pdGUgeFxuXG5leHRlcm5hbCBuZXh0X2FmdGVyIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgPSBcImNhbWxfbmV4dGFmdGVyX2Zsb2F0XCIgXCJjYW1sX25leHRhZnRlclwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCBzdWNjIHggPSBuZXh0X2FmdGVyIHggaW5maW5pdHlcbmxldCBwcmVkIHggPSBuZXh0X2FmdGVyIHggbmVnX2luZmluaXR5XG5cbmV4dGVybmFsIGNvcHlfc2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2lnbl9iaXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gYm9vbFxuICA9IFwiY2FtbF9zaWduYml0X2Zsb2F0XCIgXCJjYW1sX3NpZ25iaXRcIiBbQEBub2FsbG9jXVxuXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxudHlwZSB0ID0gZmxvYXRcbmV4dGVybmFsIGNvbXBhcmUgOiBmbG9hdCAtPiBmbG9hdCAtPiBpbnQgPSBcIiVjb21wYXJlXCJcbmxldCBlcXVhbCB4IHkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0W0BpbmxpbmVdIG1pbiAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geSB0aGVuIHkgZWxzZSB4XG4gIGVsc2UgaWYgaXNfbmFuIHggdGhlbiB4IGVsc2UgeVxuXG5sZXRbQGlubGluZV0gbWF4ICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB4IHRoZW4geCBlbHNlIHlcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuIHkgZWxzZSB4XG5cbmxldFtAaW5saW5lXSBtaW5fbWF4ICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIGlzX25hbiB4IHx8IGlzX25hbiB5IHRoZW4gKG5hbiwgbmFuKVxuICBlbHNlIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlbiAoeCwgeSkgZWxzZSAoeSwgeClcblxubGV0W0BpbmxpbmVdIG1pbl9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHggdGhlbiB5IGVsc2UgeFxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4geCBlbHNlIHlcblxubGV0W0BpbmxpbmVdIG1heF9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHkgdGhlbiB4IGVsc2UgeVxuICBlbHNlIGlmIGlzX25hbiB4IHRoZW4geSBlbHNlIHhcblxubGV0W0BpbmxpbmVdIG1pbl9tYXhfbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIGlzX25hbiB4IHRoZW4gKHkseSlcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuICh4LHgpXG4gIGVsc2UgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuICh4LHkpIGVsc2UgKHkseClcblxuZXh0ZXJuYWwgc2VlZGVkX2hhc2hfcGFyYW0gOiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2hhc2hcIiBbQEBub2FsbG9jXVxubGV0IGhhc2ggeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCAwIHhcblxubW9kdWxlIEFycmF5ID0gc3RydWN0XG5cbiAgdHlwZSB0ID0gZmxvYXRhcnJheVxuXG4gIGV4dGVybmFsIGxlbmd0aCA6IHQgLT4gaW50ID0gXCIlZmxvYXRhcnJheV9sZW5ndGhcIlxuICBleHRlcm5hbCBnZXQgOiB0IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9nZXRcIlxuICBleHRlcm5hbCBzZXQgOiB0IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV9zYWZlX3NldFwiXG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiB0ID0gXCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldCA6IHQgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldCA6IHQgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9zZXRcIlxuXG4gIGxldCB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdiA9XG4gICAgZm9yIGkgPSBvZnMgdG8gb2ZzICsgbGVuIC0gMSBkbyB1bnNhZmVfc2V0IGEgaSB2IGRvbmVcblxuICBleHRlcm5hbCB1bnNhZmVfYmxpdDogdCAtPiBpbnQgLT4gdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPVxuICAgIFwiY2FtbF9mbG9hdGFycmF5X2JsaXRcIiBbQEBub2FsbG9jXVxuXG4gIGxldCBjaGVjayBhIG9mcyBsZW4gbXNnID1cbiAgICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzICsgbGVuIDwgMCB8fCBvZnMgKyBsZW4gPiBsZW5ndGggYSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBtc2dcblxuICBsZXQgbWFrZSBuIHYgPVxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbiBpblxuICAgIHVuc2FmZV9maWxsIHJlc3VsdCAwIG4gdjtcbiAgICByZXN1bHRcblxuICBsZXQgaW5pdCBsIGYgPVxuICAgIGlmIGwgPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5pbml0XCJcbiAgICBlbHNlXG4gICAgICBsZXQgcmVzID0gY3JlYXRlIGwgaW5cbiAgICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHJlcyBpIChmIGkpXG4gICAgICBkb25lO1xuICAgICAgcmVzXG5cbiAgbGV0IGFwcGVuZCBhMSBhMiA9XG4gICAgbGV0IGwxID0gbGVuZ3RoIGExIGluXG4gICAgbGV0IGwyID0gbGVuZ3RoIGEyIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSAobDEgKyBsMikgaW5cbiAgICB1bnNhZmVfYmxpdCBhMSAwIHJlc3VsdCAwIGwxO1xuICAgIHVuc2FmZV9ibGl0IGEyIDAgcmVzdWx0IGwxIGwyO1xuICAgIHJlc3VsdFxuXG4gICgqIG5leHQgMyBmdW5jdGlvbnM6IG1vZGlmaWVkIGNvcHkgb2YgY29kZSBmcm9tIHN0cmluZy5tbCAqKVxuICBsZXQgZW5zdXJlX2dlICh4OmludCkgeSA9XG4gICAgaWYgeCA+PSB5IHRoZW4geCBlbHNlIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuY29uY2F0XCJcblxuICBsZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBhY2NcbiAgICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIGFjYykgYWNjKSB0bFxuXG4gIGxldCBjb25jYXQgbCA9XG4gICAgbGV0IGxlbiA9IHN1bV9sZW5ndGhzIDAgbCBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbGVuIGluXG4gICAgbGV0IHJlYyBsb29wIGwgaSA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gYXNzZXJ0IChpID0gbGVuKVxuICAgICAgfCBoZCA6OiB0bCAtPlxuICAgICAgICBsZXQgaGxlbiA9IGxlbmd0aCBoZCBpblxuICAgICAgICB1bnNhZmVfYmxpdCBoZCAwIHJlc3VsdCBpIGhsZW47XG4gICAgICAgIGxvb3AgdGwgKGkgKyBobGVuKVxuICAgIGluXG4gICAgbG9vcCBsIDA7XG4gICAgcmVzdWx0XG5cbiAgbGV0IHN1YiBhIG9mcyBsZW4gPVxuICAgIGNoZWNrIGEgb2ZzIGxlbiBcIkZsb2F0LkFycmF5LnN1YlwiO1xuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbGVuIGluXG4gICAgdW5zYWZlX2JsaXQgYSBvZnMgcmVzdWx0IDAgbGVuO1xuICAgIHJlc3VsdFxuXG4gIGxldCBjb3B5IGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGwgaW5cbiAgICB1bnNhZmVfYmxpdCBhIDAgcmVzdWx0IDAgbDtcbiAgICByZXN1bHRcblxuICBsZXQgZmlsbCBhIG9mcyBsZW4gdiA9XG4gICAgY2hlY2sgYSBvZnMgbGVuIFwiRmxvYXQuQXJyYXkuZmlsbFwiO1xuICAgIHVuc2FmZV9maWxsIGEgb2ZzIGxlbiB2XG5cbiAgbGV0IGJsaXQgc3JjIHNvZnMgZHN0IGRvZnMgbGVuID1cbiAgICBjaGVjayBzcmMgc29mcyBsZW4gXCJGbG9hdC5hcnJheS5ibGl0XCI7XG4gICAgY2hlY2sgZHN0IGRvZnMgbGVuIFwiRmxvYXQuYXJyYXkuYmxpdFwiO1xuICAgIHVuc2FmZV9ibGl0IHNyYyBzb2ZzIGRzdCBkb2ZzIGxlblxuXG4gIGxldCB0b19saXN0IGEgPVxuICAgIExpc3QuaW5pdCAobGVuZ3RoIGEpICh1bnNhZmVfZ2V0IGEpXG5cbiAgbGV0IG9mX2xpc3QgbCA9XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSAoTGlzdC5sZW5ndGggbCkgaW5cbiAgICBsZXQgcmVjIGZpbGwgaSBsID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiByZXN1bHRcbiAgICAgIHwgaCA6OiB0IC0+IHVuc2FmZV9zZXQgcmVzdWx0IGkgaDsgZmlsbCAoaSArIDEpIHRcbiAgICBpblxuICAgIGZpbGwgMCBsXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyIGYgYSA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlcjIgZiBhIGIgPVxuICAgIGlmIGxlbmd0aCBhIDw+IGxlbmd0aCBiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuaXRlcjI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgICBlbHNlXG4gICAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpIGRvbmVcblxuICBsZXQgbWFwIGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbiAgbGV0IG1hcDIgZiBhIGIgPVxuICAgIGxldCBsYSA9IGxlbmd0aCBhIGluXG4gICAgbGV0IGxiID0gbGVuZ3RoIGIgaW5cbiAgICBpZiBsYSA8PiBsYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5Lm1hcDI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IGNyZWF0ZSBsYSBpblxuICAgICAgZm9yIGkgPSAwIHRvIGxhIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlcmkgZiBhID1cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuICBsZXQgbWFwaSBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICAgIGxldCByID0gcmVmIHggaW5cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvXG4gICAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICAgIGRvbmU7XG4gICAgIXJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICAgIGxldCByID0gcmVmIHggaW5cbiAgICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgICBkb25lO1xuICAgICFyXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBleGlzdHMgcCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKSBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9yX2FsbCBwIGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gbG9vcCAoaSArIDEpXG4gICAgICBlbHNlIGZhbHNlIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBtZW0geCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiBjb21wYXJlICh1bnNhZmVfZ2V0IGEgaSkgeCA9IDAgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cbiAgKCogbW9zdGx5IGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCwgYnV0IHNsaWdodGx5IGRpZmZlcmVudCAqKVxuICBsZXQgbWVtX2llZWUgeCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiB4ID0gKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgZXhjZXB0aW9uIEJvdHRvbSBvZiBpbnRcbiAgbGV0IHNvcnQgY21wIGEgPVxuICAgIGxldCBtYXhzb24gbCBpID1cbiAgICAgIGxldCBpMzEgPSBpK2kraSsxIGluXG4gICAgICBsZXQgeCA9IHJlZiBpMzEgaW5cbiAgICAgIGlmIGkzMSsyIDwgbCB0aGVuIGJlZ2luXG4gICAgICAgIGlmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwIHRoZW4geCA6PSBpMzErMTtcbiAgICAgICAgaWYgY21wIChnZXQgYSAheCkgKGdldCBhIChpMzErMikpIDwgMCB0aGVuIHggOj0gaTMxKzI7XG4gICAgICAgICF4XG4gICAgICBlbmQgZWxzZVxuICAgICAgICBpZiBpMzErMSA8IGwgJiYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDBcbiAgICAgICAgdGhlbiBpMzErMVxuICAgICAgICBlbHNlIGlmIGkzMSA8IGwgdGhlbiBpMzEgZWxzZSByYWlzZSAoQm90dG9tIGkpXG4gICAgaW5cbiAgICBsZXQgcmVjIHRyaWNrbGVkb3duIGwgaSBlID1cbiAgICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgICAgaWYgY21wIChnZXQgYSBqKSBlID4gMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgICAgICB0cmlja2xlZG93biBsIGogZTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldCBhIGkgZTtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCB0cmlja2xlIGwgaSBlID0gdHJ5IHRyaWNrbGVkb3duIGwgaSBlIHdpdGggQm90dG9tIGkgLT4gc2V0IGEgaSBlIGluXG4gICAgbGV0IHJlYyBidWJibGVkb3duIGwgaSA9XG4gICAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgICAgYnViYmxlZG93biBsIGpcbiAgICBpblxuICAgIGxldCBidWJibGUgbCBpID0gdHJ5IGJ1YmJsZWRvd24gbCBpIHdpdGggQm90dG9tIGkgLT4gaSBpblxuICAgIGxldCByZWMgdHJpY2tsZXVwIGkgZSA9XG4gICAgICBsZXQgZmF0aGVyID0gKGkgLSAxKSAvIDMgaW5cbiAgICAgIGFzc2VydCAoaSA8PiBmYXRoZXIpO1xuICAgICAgaWYgY21wIChnZXQgYSBmYXRoZXIpIGUgPCAwIHRoZW4gYmVnaW5cbiAgICAgICAgc2V0IGEgaSAoZ2V0IGEgZmF0aGVyKTtcbiAgICAgICAgaWYgZmF0aGVyID4gMCB0aGVuIHRyaWNrbGV1cCBmYXRoZXIgZSBlbHNlIHNldCBhIDAgZTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldCBhIGkgZTtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBmb3IgaSA9IChsICsgMSkgLyAzIC0gMSBkb3dudG8gMCBkbyB0cmlja2xlIGwgaSAoZ2V0IGEgaSk7IGRvbmU7XG4gICAgZm9yIGkgPSBsIC0gMSBkb3dudG8gMiBkb1xuICAgICAgbGV0IGUgPSAoZ2V0IGEgaSkgaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIDApO1xuICAgICAgdHJpY2tsZXVwIChidWJibGUgaSAwKSBlO1xuICAgIGRvbmU7XG4gICAgaWYgbCA+IDEgdGhlbiAobGV0IGUgPSAoZ2V0IGEgMSkgaW4gc2V0IGEgMSAoZ2V0IGEgMCk7IHNldCBhIDAgZSlcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwsIGV4Y2VwdCBmb3IgdGhlIGNhbGwgdG8gW2NyZWF0ZV0gKilcbiAgbGV0IGN1dG9mZiA9IDVcbiAgbGV0IHN0YWJsZV9zb3J0IGNtcCBhID1cbiAgICBsZXQgbWVyZ2Ugc3JjMW9mcyBzcmMxbGVuIHNyYzIgc3JjMm9mcyBzcmMybGVuIGRzdCBkc3RvZnMgPVxuICAgICAgbGV0IHNyYzFyID0gc3JjMW9mcyArIHNyYzFsZW4gYW5kIHNyYzJyID0gc3JjMm9mcyArIHNyYzJsZW4gaW5cbiAgICAgIGxldCByZWMgbG9vcCBpMSBzMSBpMiBzMiBkID1cbiAgICAgICAgaWYgY21wIHMxIHMyIDw9IDAgdGhlbiBiZWdpblxuICAgICAgICAgIHNldCBkc3QgZCBzMTtcbiAgICAgICAgICBsZXQgaTEgPSBpMSArIDEgaW5cbiAgICAgICAgICBpZiBpMSA8IHNyYzFyIHRoZW5cbiAgICAgICAgICAgIGxvb3AgaTEgKGdldCBhIGkxKSBpMiBzMiAoZCArIDEpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYmxpdCBzcmMyIGkyIGRzdCAoZCArIDEpIChzcmMyciAtIGkyKVxuICAgICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgIHNldCBkc3QgZCBzMjtcbiAgICAgICAgICBsZXQgaTIgPSBpMiArIDEgaW5cbiAgICAgICAgICBpZiBpMiA8IHNyYzJyIHRoZW5cbiAgICAgICAgICAgIGxvb3AgaTEgczEgaTIgKGdldCBzcmMyIGkyKSAoZCArIDEpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYmxpdCBhIGkxIGRzdCAoZCArIDEpIChzcmMxciAtIGkxKVxuICAgICAgICBlbmRcbiAgICAgIGluIGxvb3Agc3JjMW9mcyAoZ2V0IGEgc3JjMW9mcykgc3JjMm9mcyAoZ2V0IHNyYzIgc3JjMm9mcykgZHN0b2ZzO1xuICAgIGluXG4gICAgbGV0IGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICAgIGxldCBlID0gKGdldCBhIChzcmNvZnMgKyBpKSkgaW5cbiAgICAgICAgbGV0IGogPSByZWYgKGRzdG9mcyArIGkgLSAxKSBpblxuICAgICAgICB3aGlsZSAoIWogPj0gZHN0b2ZzICYmIGNtcCAoZ2V0IGRzdCAhaikgZSA+IDApIGRvXG4gICAgICAgICAgc2V0IGRzdCAoIWogKyAxKSAoZ2V0IGRzdCAhaik7XG4gICAgICAgICAgZGVjciBqO1xuICAgICAgICBkb25lO1xuICAgICAgICBzZXQgZHN0ICghaiArIDEpIGU7XG4gICAgICBkb25lO1xuICAgIGluXG4gICAgbGV0IHJlYyBzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICAgIGlmIGxlbiA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBsMSA9IGxlbiAvIDIgaW5cbiAgICAgICAgbGV0IGwyID0gbGVuIC0gbDEgaW5cbiAgICAgICAgc29ydHRvIChzcmNvZnMgKyBsMSkgZHN0IChkc3RvZnMgKyBsMSkgbDI7XG4gICAgICAgIHNvcnR0byBzcmNvZnMgYSAoc3Jjb2ZzICsgbDIpIGwxO1xuICAgICAgICBtZXJnZSAoc3Jjb2ZzICsgbDIpIGwxIGRzdCAoZHN0b2ZzICsgbDEpIGwyIGRzdCBkc3RvZnM7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgaWYgbCA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIDAgYSAwIGwgZWxzZSBiZWdpblxuICAgICAgbGV0IGwxID0gbCAvIDIgaW5cbiAgICAgIGxldCBsMiA9IGwgLSBsMSBpblxuICAgICAgbGV0IHQgPSBjcmVhdGUgbDIgaW5cbiAgICAgIHNvcnR0byBsMSB0IDAgbDI7XG4gICAgICBzb3J0dG8gMCBhIGwyIGwxO1xuICAgICAgbWVyZ2UgbDIgbDEgdCAwIGwyIGEgMDtcbiAgICBlbmRcblxuICBsZXQgZmFzdF9zb3J0ID0gc3RhYmxlX3NvcnRcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IHRvX3NlcSBhID1cbiAgICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAgIGlmIGkgPCBsZW5ndGggYVxuICAgICAgdGhlblxuICAgICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gICAgICBlbHNlIFNlcS5OaWxcbiAgICBpblxuICAgIGF1eCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCB0b19zZXFpIGEgPVxuICAgIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgICB0aGVuXG4gICAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gICAgICBlbHNlIFNlcS5OaWxcbiAgICBpblxuICAgIGF1eCAwXG5cbiAgKCogbW9zdGx5IGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgb2ZfcmV2X2xpc3QgbCA9XG4gICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICBsZXQgYSA9IGNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgIFtdIC0+IGFcbiAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpLTEpIHRsXG4gICAgaW5cbiAgICBmaWxsIChsZW4tMSkgbFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgb2Zfc2VxIGkgPVxuICAgIGxldCBsID0gU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gaSBpblxuICAgIG9mX3Jldl9saXN0IGxcblxuXG4gIGxldCBtYXBfdG9fYXJyYXkgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgaWYgbCA9IDAgdGhlbiBbfCB8XSBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IEFycmF5Lm1ha2UgbCAoZiAodW5zYWZlX2dldCBhIDApKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICAgIEFycmF5LnVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuXG4gIGxldCBtYXBfZnJvbV9hcnJheSBmIGEgPVxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiAoQXJyYXkudW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG5lbmRcblxubW9kdWxlIEFycmF5TGFiZWxzID0gQXJyYXlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQW4gYWxpYXMgZm9yIHRoZSB0eXBlIG9mIGxpc3RzLiAqKVxudHlwZSAnYSB0ID0gJ2EgbGlzdCA9IFtdIHwgKDo6KSBvZiAnYSAqICdhIGxpc3RcblxuKCogTGlzdCBvcGVyYXRpb25zICopXG5cbmxldCByZWMgbGVuZ3RoX2F1eCBsZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+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+IHggOjogZGlyZWN0IChkZXB0aC0xKSBuZXh0XG4gIGluXG4gIGRpcmVjdCA1MDAgc2VxXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIxIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGluX2NoYW5uZWxcblxudHlwZSBvcGVuX2ZsYWcgPSBTdGRsaWIub3Blbl9mbGFnID1cbiAgfCBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xuXG5sZXQgc3RkaW4gPSBTdGRsaWIuc3RkaW5cbmxldCBvcGVuX2JpbiA9IFN0ZGxpYi5vcGVuX2luX2JpblxubGV0IG9wZW5fdGV4dCA9IFN0ZGxpYi5vcGVuX2luXG5sZXQgb3Blbl9nZW4gPSBTdGRsaWIub3Blbl9pbl9nZW5cblxubGV0IHdpdGhfb3BlbiBvcGVuZnVuIHMgZiA9XG4gIGxldCBpYyA9IG9wZW5mdW4gcyBpblxuICBGdW4ucHJvdGVjdCB+ZmluYWxseTooZnVuICgpIC0+IFN0ZGxpYi5jbG9zZV9pbl9ub2VyciBpYylcbiAgICAoZnVuICgpIC0+IGYgaWMpXG5cbmxldCB3aXRoX29wZW5fYmluIHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9pbl9iaW4gcyBmXG5cbmxldCB3aXRoX29wZW5fdGV4dCBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5faW4gcyBmXG5cbmxldCB3aXRoX29wZW5fZ2VuIGZsYWdzIHBlcm0gcyBmID1cbiAgd2l0aF9vcGVuIChTdGRsaWIub3Blbl9pbl9nZW4gZmxhZ3MgcGVybSkgcyBmXG5cbmxldCBzZWVrID0gU3RkbGliLkxhcmdlRmlsZS5zZWVrX2luXG5sZXQgcG9zID0gU3RkbGliLkxhcmdlRmlsZS5wb3NfaW5cbmxldCBsZW5ndGggPSBTdGRsaWIuTGFyZ2VGaWxlLmluX2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2UgPSBTdGRsaWIuY2xvc2VfaW5cbmxldCBjbG9zZV9ub2VyciA9IFN0ZGxpYi5jbG9zZV9pbl9ub2VyclxuXG5sZXQgaW5wdXRfY2hhciBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9jaGFyIGljIHdpdGhcbiAgfCBjIC0+IFNvbWUgY1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dF9ieXRlIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2J5dGUgaWMgd2l0aFxuICB8IG4gLT4gU29tZSBuXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0X2xpbmUgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfbGluZSBpYyB3aXRoXG4gIHwgcyAtPiBTb21lIHNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXQgPSBTdGRsaWIuaW5wdXRcblxubGV0IHJlYWxseV9pbnB1dCBpYyBidWYgcG9zIGxlbiA9XG4gIG1hdGNoIFN0ZGxpYi5yZWFsbHlfaW5wdXQgaWMgYnVmIHBvcyBsZW4gd2l0aFxuICB8ICgpIC0+IFNvbWUgKClcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gPVxuICBtYXRjaCBTdGRsaWIucmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gd2l0aFxuICB8IHMgLT4gU29tZSBzXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxuKCogUmVhZCB1cCB0byBbbGVuXSBieXRlcyBpbnRvIFtidWZdLCBzdGFydGluZyBhdCBbb2ZzXS4gUmV0dXJuIHRvdGFsIGJ5dGVzXG4gICByZWFkLiAqKVxubGV0IHJlYWRfdXB0byBpYyBidWYgb2ZzIGxlbiA9XG4gIGxldCByZWMgbG9vcCBvZnMgbGVuID1cbiAgICBpZiBsZW4gPSAwIHRoZW4gb2ZzXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBTdGRsaWIuaW5wdXQgaWMgYnVmIG9mcyBsZW4gaW5cbiAgICAgIGlmIHIgPSAwIHRoZW5cbiAgICAgICAgb2ZzXG4gICAgICBlbHNlXG4gICAgICAgIGxvb3AgKG9mcyArIHIpIChsZW4gLSByKVxuICAgIGVuZFxuICBpblxuICBsb29wIG9mcyBsZW4gLSBvZnNcblxuKCogQmVzdCBlZmZvcnQgYXR0ZW1wdCB0byByZXR1cm4gYSBidWZmZXIgd2l0aCA+PSAob2ZzICsgbikgYnl0ZXMgb2Ygc3RvcmFnZSxcbiAgIGFuZCBzdWNoIHRoYXQgaXQgY29pbmNpZGVzIHdpdGggW2J1Zl0gYXQgaW5kaWNlcyA8IFtvZnNdLlxuXG4gICBUaGUgcmV0dXJuZWQgYnVmZmVyIGlzIGVxdWFsIHRvIFtidWZdIGl0c2VsZiBpZiBpdCBhbHJlYWR5IGhhcyBzdWZmaWNpZW50XG4gICBmcmVlIHNwYWNlLlxuXG4gICBUaGUgcmV0dXJuZWQgYnVmZmVyIG1heSBoYXZlICpmZXdlciogdGhhbiBbb2ZzICsgbl0gYnl0ZXMgb2Ygc3RvcmFnZSBpZiB0aGlzXG4gICBudW1iZXIgaXMgPiBbU3lzLm1heF9zdHJpbmdfbGVuZ3RoXS4gSG93ZXZlciB0aGUgcmV0dXJuZWQgYnVmZmVyIHdpbGxcbiAgICphbHdheXMqIGhhdmUgPiBbb2ZzXSBieXRlcyBvZiBzdG9yYWdlLiBJbiB0aGUgbGltaXRpbmcgY2FzZSB3aGVuIFtvZnMgPSBsZW5cbiAgID0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoXSAoc28gdGhhdCBpdCBpcyBub3QgcG9zc2libGUgdG8gcmVzaXplIHRoZSBidWZmZXIgYXRcbiAgIGFsbCksIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQuICopXG5cbmxldCBlbnN1cmUgYnVmIG9mcyBuID1cbiAgbGV0IGxlbiA9IEJ5dGVzLmxlbmd0aCBidWYgaW5cbiAgaWYgbGVuID49IG9mcyArIG4gdGhlbiBidWZcbiAgZWxzZSBiZWdpblxuICAgIGxldCBuZXdfbGVuID0gcmVmIGxlbiBpblxuICAgIHdoaWxlICFuZXdfbGVuIDwgb2ZzICsgbiBkb1xuICAgICAgbmV3X2xlbiA6PSAyICogIW5ld19sZW4gKyAxXG4gICAgZG9uZTtcbiAgICBsZXQgbmV3X2xlbiA9ICFuZXdfbGVuIGluXG4gICAgbGV0IG5ld19sZW4gPVxuICAgICAgaWYgbmV3X2xlbiA8PSBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBuZXdfbGVuXG4gICAgICBlbHNlIGlmIG9mcyA8IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgICAgZWxzZVxuICAgICAgICBmYWlsd2l0aCBcIkluX2NoYW5uZWwuaW5wdXRfYWxsOiBjaGFubmVsIGNvbnRlbnQgXFxcbiAgICAgICAgICAgICAgICAgIGlzIGxhcmdlciB0aGFuIG1heGltdW0gc3RyaW5nIGxlbmd0aFwiXG4gICAgaW5cbiAgICBsZXQgbmV3X2J1ZiA9IEJ5dGVzLmNyZWF0ZSBuZXdfbGVuIGluXG4gICAgQnl0ZXMuYmxpdCBidWYgMCBuZXdfYnVmIDAgb2ZzO1xuICAgIG5ld19idWZcbiAgZW5kXG5cbmxldCBpbnB1dF9hbGwgaWMgPVxuICBsZXQgY2h1bmtfc2l6ZSA9IDY1NTM2IGluICgqIElPX0JVRkZFUl9TSVpFICopXG4gIGxldCBpbml0aWFsX3NpemUgPVxuICAgIHRyeVxuICAgICAgU3RkbGliLmluX2NoYW5uZWxfbGVuZ3RoIGljIC0gU3RkbGliLnBvc19pbiBpY1xuICAgIHdpdGggU3lzX2Vycm9yIF8gLT5cbiAgICAgIC0xXG4gIGluXG4gIGxldCBpbml0aWFsX3NpemUgPSBpZiBpbml0aWFsX3NpemUgPCAwIHRoZW4gY2h1bmtfc2l6ZSBlbHNlIGluaXRpYWxfc2l6ZSBpblxuICBsZXQgaW5pdGlhbF9zaXplID1cbiAgICBpZiBpbml0aWFsX3NpemUgPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgIGluaXRpYWxfc2l6ZVxuICAgIGVsc2VcbiAgICAgIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICBpblxuICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIGluaXRpYWxfc2l6ZSBpblxuICBsZXQgbnJlYWQgPSByZWFkX3VwdG8gaWMgYnVmIDAgaW5pdGlhbF9zaXplIGluXG4gIGlmIG5yZWFkIDwgaW5pdGlhbF9zaXplIHRoZW4gKCogRU9GIHJlYWNoZWQsIGJ1ZmZlciBwYXJ0aWFsbHkgZmlsbGVkICopXG4gICAgQnl0ZXMuc3ViX3N0cmluZyBidWYgMCBucmVhZFxuICBlbHNlIGJlZ2luICgqIG5yZWFkID0gaW5pdGlhbF9zaXplLCBtYXliZSBFT0YgcmVhY2hlZCAqKVxuICAgIG1hdGNoIFN0ZGxpYi5pbnB1dF9jaGFyIGljIHdpdGhcbiAgICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPlxuICAgICAgICAoKiBFT0YgcmVhY2hlZCwgYnVmZmVyIGlzIGNvbXBsZXRlbHkgZmlsbGVkICopXG4gICAgICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYnVmXG4gICAgfCBjIC0+XG4gICAgICAgICgqIEVPRiBub3QgcmVhY2hlZCAqKVxuICAgICAgICBsZXQgcmVjIGxvb3AgYnVmIG9mcyA9XG4gICAgICAgICAgbGV0IGJ1ZiA9IGVuc3VyZSBidWYgb2ZzIGNodW5rX3NpemUgaW5cbiAgICAgICAgICBsZXQgcmVtID0gQnl0ZXMubGVuZ3RoIGJ1ZiAtIG9mcyBpblxuICAgICAgICAgICgqIFtyZW1dIGNhbiBiZSA8IFtjaHVua19zaXplXSBpZiBidWZmZXIgc2l6ZSBjbG9zZSB0b1xuICAgICAgICAgICAgIFtTeXMubWF4X3N0cmluZ19sZW5ndGhdICopXG4gICAgICAgICAgbGV0IHIgPSByZWFkX3VwdG8gaWMgYnVmIG9mcyByZW0gaW5cbiAgICAgICAgICBpZiByIDwgcmVtIHRoZW4gKCogRU9GIHJlYWNoZWQgKilcbiAgICAgICAgICAgIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmIDAgKG9mcyArIHIpXG4gICAgICAgICAgZWxzZSAoKiByID0gcmVtICopXG4gICAgICAgICAgICBsb29wIGJ1ZiAob2ZzICsgcmVtKVxuICAgICAgICBpblxuICAgICAgICBsZXQgYnVmID0gZW5zdXJlIGJ1ZiBucmVhZCAoY2h1bmtfc2l6ZSArIDEpIGluXG4gICAgICAgIEJ5dGVzLnNldCBidWYgbnJlYWQgYztcbiAgICAgICAgbG9vcCBidWYgKG5yZWFkICsgMSlcbiAgZW5kXG5cbmxldCBzZXRfYmluYXJ5X21vZGUgPSBTdGRsaWIuc2V0X2JpbmFyeV9tb2RlX2luXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIxIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IG91dF9jaGFubmVsXG5cbnR5cGUgb3Blbl9mbGFnID0gU3RkbGliLm9wZW5fZmxhZyA9XG4gIHwgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcblxubGV0IHN0ZG91dCA9IFN0ZGxpYi5zdGRvdXRcbmxldCBzdGRlcnIgPSBTdGRsaWIuc3RkZXJyXG5sZXQgb3Blbl9iaW4gPSBTdGRsaWIub3Blbl9vdXRfYmluXG5sZXQgb3Blbl90ZXh0ID0gU3RkbGliLm9wZW5fb3V0XG5sZXQgb3Blbl9nZW4gPSBTdGRsaWIub3Blbl9vdXRfZ2VuXG5cbmxldCB3aXRoX29wZW4gb3BlbmZ1biBzIGYgPVxuICBsZXQgb2MgPSBvcGVuZnVuIHMgaW5cbiAgRnVuLnByb3RlY3QgfmZpbmFsbHk6KGZ1biAoKSAtPiBTdGRsaWIuY2xvc2Vfb3V0X25vZXJyIG9jKVxuICAgIChmdW4gKCkgLT4gZiBvYylcblxubGV0IHdpdGhfb3Blbl9iaW4gcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX291dF9iaW4gcyBmXG5cbmxldCB3aXRoX29wZW5fdGV4dCBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5fb3V0IHMgZlxuXG5sZXQgd2l0aF9vcGVuX2dlbiBmbGFncyBwZXJtIHMgZiA9XG4gIHdpdGhfb3BlbiAoU3RkbGliLm9wZW5fb3V0X2dlbiBmbGFncyBwZXJtKSBzIGZcblxubGV0IHNlZWsgPSBTdGRsaWIuTGFyZ2VGaWxlLnNlZWtfb3V0XG5sZXQgcG9zID0gU3RkbGliLkxhcmdlRmlsZS5wb3Nfb3V0XG5sZXQgbGVuZ3RoID0gU3RkbGliLkxhcmdlRmlsZS5vdXRfY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZSA9IFN0ZGxpYi5jbG9zZV9vdXRcbmxldCBjbG9zZV9ub2VyciA9IFN0ZGxpYi5jbG9zZV9vdXRfbm9lcnJcbmxldCBmbHVzaCA9IFN0ZGxpYi5mbHVzaFxubGV0IGZsdXNoX2FsbCA9IFN0ZGxpYi5mbHVzaF9hbGxcbmxldCBvdXRwdXRfY2hhciA9IFN0ZGxpYi5vdXRwdXRfY2hhclxubGV0IG91dHB1dF9ieXRlID0gU3RkbGliLm91dHB1dF9ieXRlXG5sZXQgb3V0cHV0X3N0cmluZyA9IFN0ZGxpYi5vdXRwdXRfc3RyaW5nXG5sZXQgb3V0cHV0X2J5dGVzID0gU3RkbGliLm91dHB1dF9ieXRlc1xubGV0IG91dHB1dCA9IFN0ZGxpYi5vdXRwdXRcbmxldCBvdXRwdXRfc3Vic3RyaW5nID0gU3RkbGliLm91dHB1dF9zdWJzdHJpbmdcbmxldCBzZXRfYmluYXJ5X21vZGUgPSBTdGRsaWIuc2V0X2JpbmFyeV9tb2RlX291dFxuXG5leHRlcm5hbCBzZXRfYnVmZmVyZWQgOiB0IC0+IGJvb2wgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZXRfYnVmZmVyZWRcIlxuXG5leHRlcm5hbCBpc19idWZmZXJlZCA6IHQgLT4gYm9vbCA9IFwiY2FtbF9tbF9pc19idWZmZXJlZFwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgIEdhYnJpZWwgU2NoZXJlciwgcHJvamV0IFBhcnNpZmFsLCBJTlJJQSBTYWNsYXkgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE5IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgKCdhLCAnYikgdCA9IExlZnQgb2YgJ2EgfCBSaWdodCBvZiAnYlxuXG5sZXQgbGVmdCB2ID0gTGVmdCB2XG5sZXQgcmlnaHQgdiA9IFJpZ2h0IHZcblxubGV0IGlzX2xlZnQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gdHJ1ZVxufCBSaWdodCBfIC0+IGZhbHNlXG5cbmxldCBpc19yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiBmYWxzZVxufCBSaWdodCBfIC0+IHRydWVcblxubGV0IGZpbmRfbGVmdCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBTb21lIHZcbnwgUmlnaHQgXyAtPiBOb25lXG5cbmxldCBmaW5kX3JpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IE5vbmVcbnwgUmlnaHQgdiAtPiBTb21lIHZcblxubGV0IG1hcF9sZWZ0IGYgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gTGVmdCAoZiB2KVxufCBSaWdodCBfIGFzIGUgLT4gZVxuXG5sZXQgbWFwX3JpZ2h0IGYgPSBmdW5jdGlvblxufCBMZWZ0IF8gYXMgZSAtPiBlXG58IFJpZ2h0IHYgLT4gUmlnaHQgKGYgdilcblxubGV0IG1hcCB+bGVmdCB+cmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gTGVmdCAobGVmdCB2KVxufCBSaWdodCB2IC0+IFJpZ2h0IChyaWdodCB2KVxuXG5sZXQgZm9sZCB+bGVmdCB+cmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gbGVmdCB2XG58IFJpZ2h0IHYgLT4gcmlnaHQgdlxuXG5sZXQgaXRlciA9IGZvbGRcblxubGV0IGZvcl9hbGwgPSBmb2xkXG5cbmxldCBlcXVhbCB+bGVmdCB+cmlnaHQgZTEgZTIgPSBtYXRjaCBlMSwgZTIgd2l0aFxufCBMZWZ0IHYxLCBMZWZ0IHYyIC0+IGxlZnQgdjEgdjJcbnwgUmlnaHQgdjEsIFJpZ2h0IHYyIC0+IHJpZ2h0IHYxIHYyXG58IExlZnQgXywgUmlnaHQgXyB8IFJpZ2h0IF8sIExlZnQgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSB+bGVmdCB+cmlnaHQgZTEgZTIgPSBtYXRjaCBlMSwgZTIgd2l0aFxufCBMZWZ0IHYxLCBMZWZ0IHYyIC0+IGxlZnQgdjEgdjJcbnwgUmlnaHQgdjEsIFJpZ2h0IHYyIC0+IHJpZ2h0IHYxIHYyXG58IExlZnQgXywgUmlnaHQgXyAtPiAoLTEpXG58IFJpZ2h0IF8sIExlZnQgXyAtPiAxXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbTmF0aXZlaW50XTogcHJvY2Vzc29yLW5hdGl2ZSBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWc6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbmVnXCJcbmV4dGVybmFsIGFkZDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYWRkXCJcbmV4dGVybmFsIHN1YjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfc3ViXCJcbmV4dGVybmFsIG11bDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbXVsXCJcbmV4dGVybmFsIGRpdjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfZGl2XCJcbmV4dGVybmFsIHJlbTogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYW5kXCJcbmV4dGVybmFsIGxvZ29yOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vclwiXG5leHRlcm5hbCBsb2d4b3I6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0OiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQ6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsOiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50OiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQ6IG5hdGl2ZWludCAtPiBpbnQgPSBcIiVuYXRpdmVpbnRfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gbmF0aXZlaW50XG4gID0gXCJjYW1sX25hdGl2ZWludF9vZl9mbG9hdFwiIFwiY2FtbF9uYXRpdmVpbnRfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IG5hdGl2ZWludCAtPiBmbG9hdFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfdG9fZmxvYXRcIiBcImNhbWxfbmF0aXZlaW50X3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgb2ZfaW50MzI6IGludDMyIC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vZl9pbnQzMlwiXG5leHRlcm5hbCB0b19pbnQzMjogbmF0aXZlaW50IC0+IGludDMyID0gXCIlbmF0aXZlaW50X3RvX2ludDMyXCJcblxubGV0IHplcm8gPSAwblxubGV0IG9uZSA9IDFuXG5sZXQgbWludXNfb25lID0gLTFuXG5sZXQgc3VjYyBuID0gYWRkIG4gMW5cbmxldCBwcmVkIG4gPSBzdWIgbiAxblxubGV0IGFicyBuID0gaWYgbiA+PSAwbiB0aGVuIG4gZWxzZSBuZWcgblxubGV0IHNpemUgPSBTeXMud29yZF9zaXplXG5sZXQgbWluX2ludCA9IHNoaWZ0X2xlZnQgMW4gKHNpemUgLSAxKVxubGV0IG1heF9pbnQgPSBzdWIgbWluX2ludCAxblxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xbilcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gIGZ1biBuIC0+XG4gICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IG5hdGl2ZWludCAtPiBzdHJpbmcgPSBcImNhbWxfbmF0aXZlaW50X2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nOiBzdHJpbmcgLT4gbmF0aXZlaW50ID0gXCJjYW1sX25hdGl2ZWludF9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxudHlwZSB0ID0gbmF0aXZlaW50XG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogT3BlcmF0aW9ucyBvbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgdmFsdWVzICopXG5cbnR5cGUgdFxuXG50eXBlIHJhd19kYXRhID0gbmF0aXZlaW50XG5cbmV4dGVybmFsIHJlcHIgOiAnYSAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgb2JqIDogdCAtPiAnYSA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIG1hZ2ljIDogJ2EgLT4gJ2IgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBpc19pbnQgOiB0IC0+IGJvb2wgPSBcIiVvYmpfaXNfaW50XCJcbmxldCBbQGlubGluZSBhbHdheXNdIGlzX2Jsb2NrIGEgPSBub3QgKGlzX2ludCBhKVxuZXh0ZXJuYWwgdGFnIDogdCAtPiBpbnQgPSBcImNhbWxfb2JqX3RhZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzZXRfdGFnIDogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfc2V0X3RhZ1wiXG5leHRlcm5hbCBzaXplIDogdCAtPiBpbnQgPSBcIiVvYmpfc2l6ZVwiXG5leHRlcm5hbCByZWFjaGFibGVfd29yZHMgOiB0IC0+IGludCA9IFwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzXCJcbmV4dGVybmFsIGZpZWxkIDogdCAtPiBpbnQgLT4gdCA9IFwiJW9ial9maWVsZFwiXG5leHRlcm5hbCBzZXRfZmllbGQgOiB0IC0+IGludCAtPiB0IC0+IHVuaXQgPSBcIiVvYmpfc2V0X2ZpZWxkXCJcbmV4dGVybmFsIGZsb2F0YXJyYXlfZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRhcnJheV9nZXRcIlxuZXh0ZXJuYWwgZmxvYXRhcnJheV9zZXQgOlxuICAgIGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcImNhbWxfZmxvYXRhcnJheV9zZXRcIlxubGV0IFtAaW5saW5lIGFsd2F5c10gZG91YmxlX2ZpZWxkIHggaSA9IGZsb2F0YXJyYXlfZ2V0IChvYmogeCA6IGZsb2F0YXJyYXkpIGlcbmxldCBbQGlubGluZSBhbHdheXNdIHNldF9kb3VibGVfZmllbGQgeCBpIHYgPVxuICBmbG9hdGFycmF5X3NldCAob2JqIHggOiBmbG9hdGFycmF5KSBpIHZcbmV4dGVybmFsIHJhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhID0gXCJjYW1sX29ial9yYXdfZmllbGRcIlxuZXh0ZXJuYWwgc2V0X3Jhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX29ial9zZXRfcmF3X2ZpZWxkXCJcblxuZXh0ZXJuYWwgbmV3X2Jsb2NrIDogaW50IC0+IGludCAtPiB0ID0gXCJjYW1sX29ial9ibG9ja1wiXG5leHRlcm5hbCBkdXAgOiB0IC0+IHQgPSBcImNhbWxfb2JqX2R1cFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcbmV4dGVybmFsIGFkZF9vZmZzZXQgOiB0IC0+IEludDMyLnQgLT4gdCA9IFwiY2FtbF9vYmpfYWRkX29mZnNldFwiXG5leHRlcm5hbCB3aXRoX3RhZyA6IGludCAtPiB0IC0+IHQgPSBcImNhbWxfb2JqX3dpdGhfdGFnXCJcblxubGV0IGZpcnN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl90YWcgPSAwXG5sZXQgbGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfdGFnID0gMjQ1XG5cbmxldCBsYXp5X3RhZyA9IDI0NlxubGV0IGNsb3N1cmVfdGFnID0gMjQ3XG5sZXQgb2JqZWN0X3RhZyA9IDI0OFxubGV0IGluZml4X3RhZyA9IDI0OVxubGV0IGZvcndhcmRfdGFnID0gMjUwXG5cbmxldCBub19zY2FuX3RhZyA9IDI1MVxuXG5sZXQgYWJzdHJhY3RfdGFnID0gMjUxXG5sZXQgc3RyaW5nX3RhZyA9IDI1MlxubGV0IGRvdWJsZV90YWcgPSAyNTNcbmxldCBkb3VibGVfYXJyYXlfdGFnID0gMjU0XG5sZXQgY3VzdG9tX3RhZyA9IDI1NVxubGV0IGZpbmFsX3RhZyA9IGN1c3RvbV90YWdcblxuXG5sZXQgaW50X3RhZyA9IDEwMDBcbmxldCBvdXRfb2ZfaGVhcF90YWcgPSAxMDAxXG5sZXQgdW5hbGlnbmVkX3RhZyA9IDEwMDJcblxubW9kdWxlIENsb3N1cmUgPSBzdHJ1Y3RcbiAgdHlwZSBpbmZvID0ge1xuICAgIGFyaXR5OiBpbnQ7XG4gICAgc3RhcnRfZW52OiBpbnQ7XG4gIH1cblxuICBsZXQgaW5mb19vZl9yYXcgKGluZm8gOiBuYXRpdmVpbnQpID1cbiAgICBsZXQgb3BlbiBOYXRpdmVpbnQgaW5cbiAgICBsZXQgYXJpdHkgPVxuICAgICAgKCogc2lnbmVkOiBuZWdhdGl2ZSBmb3IgdHVwbGVkIGZ1bmN0aW9ucyAqKVxuICAgICAgaWYgU3lzLndvcmRfc2l6ZSA9IDY0IHRoZW5cbiAgICAgICAgdG9faW50IChzaGlmdF9yaWdodCBpbmZvIDU2KVxuICAgICAgZWxzZVxuICAgICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0IGluZm8gMjQpXG4gICAgaW5cbiAgICBsZXQgc3RhcnRfZW52ID1cbiAgICAgICgqIHN0YXJ0X2VudiBpcyB1bnNpZ25lZCwgYnV0IHdlIGtub3cgaXQgY2FuIGFsd2F5cyBmaXQgYW4gT0NhbWxcbiAgICAgICAgIGludGVnZXIgc28gd2UgdXNlIFt0b19pbnRdIGluc3RlYWQgb2YgW3Vuc2lnbmVkX3RvX2ludF0uICopXG4gICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKHNoaWZ0X2xlZnQgaW5mbyA4KSA5KSBpblxuICAgIHsgYXJpdHk7IHN0YXJ0X2VudiB9XG5cbiAgKCogbm90ZTogd2UgZXhwZWN0IGEgY2xvc3VyZSwgbm90IGFuIGluZml4IHBvaW50ZXIgKilcbiAgbGV0IGluZm8gKG9iaiA6IHQpID1cbiAgICBhc3NlcnQgKHRhZyBvYmogPSBjbG9zdXJlX3RhZyk7XG4gICAgaW5mb19vZl9yYXcgKHJhd19maWVsZCBvYmogMSlcbmVuZFxuXG5tb2R1bGUgRXh0ZW5zaW9uX2NvbnN0cnVjdG9yID1cbnN0cnVjdFxuICB0eXBlIHQgPSBleHRlbnNpb25fY29uc3RydWN0b3JcbiAgbGV0IG9mX3ZhbCB4ID1cbiAgICBsZXQgeCA9IHJlcHIgeCBpblxuICAgIGxldCBzbG90ID1cbiAgICAgIGlmIChpc19ibG9jayB4KSAmJiAodGFnIHgpIDw+IG9iamVjdF90YWcgJiYgKHNpemUgeCkgPj0gMSB0aGVuIGZpZWxkIHggMFxuICAgICAgZWxzZSB4XG4gICAgaW5cbiAgICBsZXQgbmFtZSA9XG4gICAgICBpZiAoaXNfYmxvY2sgc2xvdCkgJiYgKHRhZyBzbG90KSA9IG9iamVjdF90YWcgdGhlbiBmaWVsZCBzbG90IDBcbiAgICAgIGVsc2UgaW52YWxpZF9hcmcgXCJPYmouZXh0ZW5zaW9uX2NvbnN0cnVjdG9yXCJcbiAgICBpblxuICAgICAgaWYgKHRhZyBuYW1lKSA9IHN0cmluZ190YWcgdGhlbiAob2JqIHNsb3QgOiB0KVxuICAgICAgZWxzZSBpbnZhbGlkX2FyZyBcIk9iai5leHRlbnNpb25fY29uc3RydWN0b3JcIlxuXG4gIGxldCBbQGlubGluZSBhbHdheXNdIG5hbWUgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMCkgOiBzdHJpbmcpXG5cbiAgbGV0IFtAaW5saW5lIGFsd2F5c10gaWQgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMSkgOiBpbnQpXG5lbmRcblxubGV0IGV4dGVuc2lvbl9jb25zdHJ1Y3RvciA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5vZl92YWxcbmxldCBleHRlbnNpb25fbmFtZSA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5uYW1lXG5sZXQgZXh0ZW5zaW9uX2lkID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLmlkXG5cbm1vZHVsZSBFcGhlbWVyb24gPSBzdHJ1Y3RcbiAgdHlwZSBvYmpfdCA9IHRcblxuICB0eXBlIHQgKCoqIGVwaGVtZXJvbiAqKVxuXG4gICAoKiogVG8gY2hhbmdlIGluIHN5bmMgd2l0aCB3ZWFrLmggKilcbiAgbGV0IGFkZGl0aW9uYWxfdmFsdWVzID0gMlxuICBsZXQgbWF4X2VwaGVfbGVuZ3RoID0gU3lzLm1heF9hcnJheV9sZW5ndGggLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiB0ID0gXCJjYW1sX2VwaGVfY3JlYXRlXCI7O1xuICBsZXQgY3JlYXRlIGwgPVxuICAgIGlmIG5vdCAoMCA8PSBsICYmIGwgPD0gbWF4X2VwaGVfbGVuZ3RoKSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIk9iai5FcGhlbWVyb24uY3JlYXRlXCI7XG4gICAgY3JlYXRlIGxcblxuICBsZXQgbGVuZ3RoIHggPSBzaXplKHJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGxldCByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gbXNnID1cbiAgICBpZiBub3QgKDAgPD0gbyAmJiBvIDwgbGVuZ3RoIGUpIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIG1zZ1xuXG4gIGV4dGVybmFsIGdldF9rZXk6IHQgLT4gaW50IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9rZXlcIlxuICBsZXQgZ2V0X2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uZ2V0X2tleVwiO1xuICAgIGdldF9rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgZ2V0X2tleV9jb3B5OiB0IC0+IGludCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfa2V5X2NvcHlcIlxuICBsZXQgZ2V0X2tleV9jb3B5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5nZXRfa2V5X2NvcHlcIjtcbiAgICBnZXRfa2V5X2NvcHkgZSBvXG5cbiAgZXh0ZXJuYWwgc2V0X2tleTogdCAtPiBpbnQgLT4gb2JqX3QgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9rZXlcIlxuICBsZXQgc2V0X2tleSBlIG8geCA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5zZXRfa2V5XCI7XG4gICAgc2V0X2tleSBlIG8geFxuXG4gIGV4dGVybmFsIHVuc2V0X2tleTogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG4gIGxldCB1bnNldF9rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLnVuc2V0X2tleVwiO1xuICAgIHVuc2V0X2tleSBlIG9cblxuICBleHRlcm5hbCBjaGVja19rZXk6IHQgLT4gaW50IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19rZXlcIlxuICBsZXQgY2hlY2tfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5jaGVja19rZXlcIjtcbiAgICBjaGVja19rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgYmxpdF9rZXkgOiB0IC0+IGludCAtPiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgID0gXCJjYW1sX2VwaGVfYmxpdF9rZXlcIlxuXG4gIGxldCBibGl0X2tleSBlMSBvMSBlMiBvMiBsID1cbiAgICBpZiBsIDwgMCB8fCBvMSA8IDAgfHwgbzEgPiBsZW5ndGggZTEgLSBsXG4gICAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJPYmouRXBoZW1lcm9uLmJsaXRfa2V5XCJcbiAgICBlbHNlIGlmIGwgPD4gMCB0aGVuIGJsaXRfa2V5IGUxIG8xIGUyIG8yIGxcblxuICBleHRlcm5hbCBnZXRfZGF0YTogdCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfZGF0YVwiXG4gIGV4dGVybmFsIGdldF9kYXRhX2NvcHk6IHQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weVwiXG4gIGV4dGVybmFsIHNldF9kYXRhOiB0IC0+IG9ial90IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfZGF0YVwiXG4gIGV4dGVybmFsIHVuc2V0X2RhdGE6IHQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2RhdGFcIlxuICBleHRlcm5hbCBjaGVja19kYXRhOiB0IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19kYXRhXCJcbiAgZXh0ZXJuYWwgYmxpdF9kYXRhIDogdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9ibGl0X2RhdGFcIlxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogSW50ZXJuYWxzIG9mIGZvcmNpbmcgbGF6eSB2YWx1ZXMuICopXG5cbnR5cGUgJ2EgdCA9ICdhIGxhenlfdFxuXG5leGNlcHRpb24gVW5kZWZpbmVkXG5cbmxldCByYWlzZV91bmRlZmluZWQgPSBPYmoucmVwciAoZnVuICgpIC0+IHJhaXNlIFVuZGVmaW5lZClcblxuZXh0ZXJuYWwgbWFrZV9mb3J3YXJkIDogT2JqLnQgLT4gT2JqLnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfbWFrZV9mb3J3YXJkXCJcblxuKCogQXNzdW1lIFtibGtdIGlzIGEgYmxvY2sgd2l0aCB0YWcgbGF6eSAqKVxubGV0IGZvcmNlX2xhenlfYmxvY2sgKGJsayA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCBjbG9zdXJlID0gKE9iai5vYmogKE9iai5maWVsZCAoT2JqLnJlcHIgYmxrKSAwKSA6IHVuaXQgLT4gJ2FyZykgaW5cbiAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIHJhaXNlX3VuZGVmaW5lZDtcbiAgdHJ5XG4gICAgbGV0IHJlc3VsdCA9IGNsb3N1cmUgKCkgaW5cbiAgICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gICAgcmVzdWx0XG4gIHdpdGggZSAtPlxuICAgIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCAoT2JqLnJlcHIgKGZ1biAoKSAtPiByYWlzZSBlKSk7XG4gICAgcmFpc2UgZVxuXG5cbigqIEFzc3VtZSBbYmxrXSBpcyBhIGJsb2NrIHdpdGggdGFnIGxhenkgKilcbmxldCBmb3JjZV92YWxfbGF6eV9ibG9jayAoYmxrIDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IGNsb3N1cmUgPSAoT2JqLm9iaiAoT2JqLmZpZWxkIChPYmoucmVwciBibGspIDApIDogdW5pdCAtPiAnYXJnKSBpblxuICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgcmFpc2VfdW5kZWZpbmVkO1xuICBsZXQgcmVzdWx0ID0gY2xvc3VyZSAoKSBpblxuICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gIHJlc3VsdFxuXG5cbigqIFtmb3JjZV0gaXMgbm90IHVzZWQsIHNpbmNlIFtMYXp5LmZvcmNlXSBpcyBkZWNsYXJlZCBhcyBhIHByaW1pdGl2ZVxuICAgd2hvc2UgY29kZSBpbmxpbmVzIHRoZSB0YWcgdGVzdHMgb2YgaXRzIGFyZ3VtZW50LCBleGNlcHQgd2hlbiBhZmxcbiAgIGluc3RydW1lbnRhdGlvbiBpcyB0dXJuZWQgb24uICopXG5cbmxldCBmb3JjZSAobHp2IDogJ2FyZyBsYXp5X3QpID1cbiAgKCogVXNpbmcgW1N5cy5vcGFxdWVfaWRlbnRpdHldIHByZXZlbnRzIHR3byBwb3RlbnRpYWwgcHJvYmxlbXM6XG4gICAgIC0gSWYgdGhlIHZhbHVlIGlzIGtub3duIHRvIGhhdmUgRm9yd2FyZF90YWcsIHRoZW4gaXRzIHRhZyBjb3VsZCBoYXZlXG4gICAgICAgY2hhbmdlZCBkdXJpbmcgR0MsIHNvIHRoYXQgaW5mb3JtYXRpb24gbXVzdCBiZSBmb3Jnb3R0ZW4gKHNlZSBHUFIjNzEzXG4gICAgICAgYW5kIGlzc3VlICM3MzAxKVxuICAgICAtIElmIHRoZSB2YWx1ZSBpcyBrbm93biB0byBiZSBpbW11dGFibGUsIHRoZW4gaWYgdGhlIGNvbXBpbGVyXG4gICAgICAgY2Fubm90IHByb3ZlIHRoYXQgdGhlIGxhc3QgYnJhbmNoIGlzIG5vdCB0YWtlbiBpdCB3aWxsIGlzc3VlIGFcbiAgICAgICB3YXJuaW5nIDU5IChtb2RpZmljYXRpb24gb2YgYW4gaW1tdXRhYmxlIHZhbHVlKSAqKVxuICBsZXQgbHp2ID0gU3lzLm9wYXF1ZV9pZGVudGl0eSBsenYgaW5cbiAgbGV0IHggPSBPYmoucmVwciBsenYgaW5cbiAgbGV0IHQgPSBPYmoudGFnIHggaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB0aGVuIChPYmoub2JqIChPYmouZmllbGQgeCAwKSA6ICdhcmcpIGVsc2VcbiAgaWYgdCA8PiBPYmoubGF6eV90YWcgdGhlbiAoT2JqLm9iaiB4IDogJ2FyZylcbiAgZWxzZSBmb3JjZV9sYXp5X2Jsb2NrIGx6dlxuXG5cbmxldCBmb3JjZV92YWwgKGx6diA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCB4ID0gT2JqLnJlcHIgbHp2IGluXG4gIGxldCB0ID0gT2JqLnRhZyB4IGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgdGhlbiAoT2JqLm9iaiAoT2JqLmZpZWxkIHggMCkgOiAnYXJnKSBlbHNlXG4gIGlmIHQgPD4gT2JqLmxhenlfdGFnIHRoZW4gKE9iai5vYmogeCA6ICdhcmcpXG4gIGVsc2UgZm9yY2VfdmFsX2xhenlfYmxvY2sgbHp2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbTGF6eV06IGRlZmVycmVkIGNvbXB1dGF0aW9ucyAqKVxuXG5cbigqXG4gICBXQVJOSU5HOiBzb21lIHB1cnBsZSBtYWdpYyBpcyBnb2luZyBvbiBoZXJlLiAgRG8gbm90IHRha2UgdGhpcyBmaWxlXG4gICBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwcm9ncmFtIGluIE9DYW1sLlxuKilcblxuXG4oKiBXZSBtYWtlIHVzZSBvZiB0d28gc3BlY2lhbCB0YWdzIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lOlxuICAgW2xhenlfdGFnXSBhbmQgW2ZvcndhcmRfdGFnXS5cblxuICAgQSB2YWx1ZSBvZiB0eXBlIFsnYSBMYXp5LnRdIGNhbiBiZSBvbmUgb2YgdGhyZWUgdGhpbmdzOlxuICAgMS4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2xhenlfdGFnXS4gIEl0cyBmaWVsZCBpcyBhIGNsb3N1cmUgb2ZcbiAgICAgIHR5cGUgW3VuaXQgLT4gJ2FdIHRoYXQgY29tcHV0ZXMgdGhlIHZhbHVlLlxuICAgMi4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2ZvcndhcmRfdGFnXS4gIEl0cyBmaWVsZCBpcyB0aGUgdmFsdWVcbiAgICAgIG9mIHR5cGUgWydhXSB0aGF0IHdhcyBjb21wdXRlZC5cbiAgIDMuIEFueXRoaW5nIGVsc2UgZXhjZXB0IGEgZmxvYXQuICBUaGlzIGhhcyB0eXBlIFsnYV0gYW5kIGlzIHRoZSB2YWx1ZVxuICAgICAgdGhhdCB3YXMgY29tcHV0ZWQuXG4gICBFeGNlcHRpb25zIGFyZSBzdG9yZWQgaW4gZm9ybWF0ICgxKS5cbiAgIFRoZSBHQyB3aWxsIG1hZ2ljYWxseSBjaGFuZ2UgdGhpbmdzIGZyb20gKDIpIHRvICgzKSBhY2NvcmRpbmcgdG8gaXRzXG4gICBmYW5jeS5cblxuICAgSWYgT0NhbWwgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLWZsYXQtZmxvYXQtYXJyYXkgb3B0aW9uICh3aGljaCBpc1xuICAgY3VycmVudGx5IHRoZSBkZWZhdWx0KSwgdGhlIGZvbGxvd2luZyBpcyBhbHNvIHRydWU6XG4gICBXZSBjYW5ub3QgdXNlIHJlcHJlc2VudGF0aW9uICgzKSBmb3IgYSBbZmxvYXQgTGF6eS50XSBiZWNhdXNlXG4gICBbY2FtbF9tYWtlX2FycmF5XSBhc3N1bWVzIHRoYXQgb25seSBhIFtmbG9hdF0gdmFsdWUgY2FuIGhhdmUgdGFnXG4gICBbRG91YmxlX3RhZ10uXG5cbiAgIFdlIGhhdmUgdG8gdXNlIHRoZSBidWlsdC1pbiB0eXBlIGNvbnN0cnVjdG9yIFtsYXp5X3RdIHRvXG4gICBsZXQgdGhlIGNvbXBpbGVyIGltcGxlbWVudCB0aGUgc3BlY2lhbCB0eXBpbmcgYW5kIGNvbXBpbGF0aW9uXG4gICBydWxlcyBmb3IgdGhlIFtsYXp5XSBrZXl3b3JkLlxuKilcblxudHlwZSAnYSB0ID0gJ2EgQ2FtbGludGVybmFsTGF6eS50XG5cbmV4Y2VwdGlvbiBVbmRlZmluZWQgPSBDYW1saW50ZXJuYWxMYXp5LlVuZGVmaW5lZFxuXG5leHRlcm5hbCBtYWtlX2ZvcndhcmQgOiAnYSAtPiAnYSBsYXp5X3QgPSBcImNhbWxfbGF6eV9tYWtlX2ZvcndhcmRcIlxuXG5leHRlcm5hbCBmb3JjZSA6ICdhIHQgLT4gJ2EgPSBcIiVsYXp5X2ZvcmNlXCJcblxuXG5sZXQgZm9yY2VfdmFsID0gQ2FtbGludGVybmFsTGF6eS5mb3JjZV92YWxcblxubGV0IGZyb21fZnVuIChmIDogdW5pdCAtPiAnYXJnKSA9XG4gIGxldCB4ID0gT2JqLm5ld19ibG9jayBPYmoubGF6eV90YWcgMSBpblxuICBPYmouc2V0X2ZpZWxkIHggMCAoT2JqLnJlcHIgZik7XG4gIChPYmoub2JqIHggOiAnYXJnIHQpXG5cbmxldCBmcm9tX3ZhbCAodiA6ICdhcmcpID1cbiAgbGV0IHQgPSBPYmoudGFnIChPYmoucmVwciB2KSBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHx8IHQgPSBPYmoubGF6eV90YWcgfHwgdCA9IE9iai5kb3VibGVfdGFnIHRoZW4gYmVnaW5cbiAgICBtYWtlX2ZvcndhcmQgdlxuICBlbmQgZWxzZSBiZWdpblxuICAgIChPYmoubWFnaWMgdiA6ICdhcmcgdClcbiAgZW5kXG5cblxubGV0IGlzX3ZhbCAobCA6ICdhcmcgdCkgPSBPYmoudGFnIChPYmoucmVwciBsKSA8PiBPYmoubGF6eV90YWdcblxubGV0IGxhenlfZnJvbV9mdW4gPSBmcm9tX2Z1blxuXG5sZXQgbGF6eV9mcm9tX3ZhbCA9IGZyb21fdmFsXG5cbmxldCBsYXp5X2lzX3ZhbCA9IGlzX3ZhbFxuXG5cbmxldCBtYXAgZiB4ID1cbiAgbGF6eSAoZiAoZm9yY2UgeCkpXG5cbmxldCBtYXBfdmFsIGYgeCA9XG4gIGlmIGlzX3ZhbCB4XG4gIHRoZW4gbGF6eV9mcm9tX3ZhbCAoZiAoZm9yY2UgeCkpXG4gIGVsc2UgbGF6eSAoZiAoZm9yY2UgeCkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgU2ltb24gQ3J1YW5lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbU2VxXTogZnVuY3Rpb25hbCBpdGVyYXRvcnMgKilcblxudHlwZSArJ2Egbm9kZSA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiAnYSAqICdhIHRcblxuYW5kICdhIHQgPSB1bml0IC0+ICdhIG5vZGVcblxubGV0IGVtcHR5ICgpID0gTmlsXG5cbmxldCByZXR1cm4geCAoKSA9IENvbnMgKHgsIGVtcHR5KVxuXG5sZXQgY29ucyB4IG5leHQgKCkgPSBDb25zICh4LCBuZXh0KVxuXG5sZXQgcmVjIGFwcGVuZCBzZXExIHNlcTIgKCkgPVxuICBtYXRjaCBzZXExKCkgd2l0aFxuICB8IE5pbCAtPiBzZXEyKClcbiAgfCBDb25zICh4LCBuZXh0KSAtPiBDb25zICh4LCBhcHBlbmQgbmV4dCBzZXEyKVxuXG5sZXQgcmVjIG1hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT4gQ29ucyAoZiB4LCBtYXAgZiBuZXh0KVxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gZmlsdGVyX21hcCBmIG5leHQgKClcbiAgICAgICAgfCBTb21lIHkgLT4gQ29ucyAoeSwgZmlsdGVyX21hcCBmIG5leHQpXG5cbmxldCByZWMgZmlsdGVyIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgaWYgZiB4XG4gICAgICB0aGVuIENvbnMgKHgsIGZpbHRlciBmIG5leHQpXG4gICAgICBlbHNlIGZpbHRlciBmIG5leHQgKClcblxubGV0IHJlYyBjb25jYXQgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgYXBwZW5kIHggKGNvbmNhdCBuZXh0KSAoKVxuXG5sZXQgcmVjIGZsYXRfbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICBhcHBlbmQgKGYgeCkgKGZsYXRfbWFwIGYgbmV4dCkgKClcblxubGV0IGNvbmNhdF9tYXAgPSBmbGF0X21hcFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjYyBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICAgIHwgTmlsIC0+IGFjY1xuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgbGV0IGFjYyA9IGYgYWNjIHggaW5cbiAgICAgICAgZm9sZF9sZWZ0IGYgYWNjIG5leHRcblxubGV0IHJlYyBpdGVyIGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgZiB4O1xuICAgICAgICBpdGVyIGYgbmV4dFxuXG5sZXQgcmVjIHVuZm9sZCBmIHUgKCkgPVxuICBtYXRjaCBmIHUgd2l0aFxuICB8IE5vbmUgLT4gTmlsXG4gIHwgU29tZSAoeCwgdScpIC0+IENvbnMgKHgsIHVuZm9sZCBmIHUnKVxuXG5sZXQgaXNfZW1wdHkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zIChfLCBfKSAtPlxuICAgICAgZmFsc2VcblxubGV0IHVuY29ucyB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgU29tZSAoeCwgeHMpXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG5cblxuXG5sZXQgcmVjIGxlbmd0aF9hdXggYWNjdSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGVuZ3RoX2F1eCAoYWNjdSArIDEpIHhzXG5cbmxldFtAaW5saW5lXSBsZW5ndGggeHMgPVxuICBsZW5ndGhfYXV4IDAgeHNcblxubGV0IHJlYyBpdGVyaV9hdXggZiBpIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgZiBpIHg7XG4gICAgICBpdGVyaV9hdXggZiAoaSsxKSB4c1xuXG5sZXRbQGlubGluZV0gaXRlcmkgZiB4cyA9XG4gIGl0ZXJpX2F1eCBmIDAgeHNcblxubGV0IHJlYyBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgaSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgaSB4IGluXG4gICAgICBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgKGkrMSkgeHNcblxubGV0W0BpbmxpbmVdIGZvbGRfbGVmdGkgZiBhY2N1IHhzID1cbiAgZm9sZF9sZWZ0aV9hdXggZiBhY2N1IDAgeHNcblxubGV0IHJlYyBmb3JfYWxsIHAgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCAmJiBmb3JfYWxsIHAgeHNcblxubGV0IHJlYyBleGlzdHMgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCB8fCBleGlzdHMgcCB4c1xuXG5sZXQgcmVjIGZpbmQgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gU29tZSB4IGVsc2UgZmluZCBwIHhzXG5cbmxldCByZWMgZmluZF9tYXAgZiB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGZpbmRfbWFwIGYgeHNcbiAgICAgIHwgU29tZSBfIGFzIHJlc3VsdCAtPlxuICAgICAgICAgIHJlc3VsdFxuXG4oKiBbaXRlcjJdLCBbZm9sZF9sZWZ0Ml0sIFtmb3JfYWxsMl0sIFtleGlzdHMyXSwgW21hcDJdLCBbemlwXSB3b3JrIGFsc28gaW5cbiAgIHRoZSBjYXNlIHdoZXJlIHRoZSB0d28gc2VxdWVuY2VzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHMuIFRoZXkgc3RvcCBhcyBzb29uXG4gICBhcyBvbmUgc2VxdWVuY2UgaXMgZXhoYXVzdGVkLiBUaGVpciBiZWhhdmlvciBpcyBzbGlnaHRseSBhc3ltbWV0cmljOiB3aGVuXG4gICBbeHNdIGlzIGVtcHR5LCB0aGV5IGRvIG5vdCBmb3JjZSBbeXNdOyBob3dldmVyLCB3aGVuIFt5c10gaXMgZW1wdHksIFt4c10gaXNcbiAgIGZvcmNlZCwgZXZlbiB0aG91Z2ggdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24gYXBwbGljYXRpb24gW3hzKCldIHR1cm5zIG91dFxuICAgdG8gYmUgdXNlbGVzcy4gKilcblxubGV0IHJlYyBpdGVyMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgICgpXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5O1xuICAgICAgICAgIGl0ZXIyIGYgeHMgeXNcblxubGV0IHJlYyBmb2xkX2xlZnQyIGYgYWNjdSB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGFjY3VcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgeCB5IGluXG4gICAgICAgICAgZm9sZF9sZWZ0MiBmIGFjY3UgeHMgeXNcblxubGV0IHJlYyBmb3JfYWxsMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBmIHggeSAmJiBmb3JfYWxsMiBmIHhzIHlzXG5cbmxldCByZWMgZXhpc3RzMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBmYWxzZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5IHx8IGV4aXN0czIgZiB4cyB5c1xuXG5sZXQgcmVjIGVxdWFsIGVxIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gIHwgTmlsLCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cyksIENvbnMgKHksIHlzKSAtPlxuICAgICAgZXEgeCB5ICYmIGVxdWFsIGVxIHhzIHlzXG4gIHwgTmlsLCBDb25zIChfLCBfKVxuICB8IENvbnMgKF8sIF8pLCBOaWwgLT5cbiAgICAgIGZhbHNlXG5cbmxldCByZWMgY29tcGFyZSBjbXAgeHMgeXMgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgfCBOaWwsIE5pbCAtPlxuICAgICAgMFxuICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBsZXQgYyA9IGNtcCB4IHkgaW5cbiAgICAgIGlmIGMgPD4gMCB0aGVuIGMgZWxzZSBjb21wYXJlIGNtcCB4cyB5c1xuICB8IE5pbCwgQ29ucyAoXywgXykgLT5cbiAgICAgIC0xXG4gIHwgQ29ucyAoXywgXyksIE5pbCAtPlxuICAgICAgKzFcblxuXG5cbigqIFtpbml0X2F1eCBmIGkgal0gaXMgdGhlIHNlcXVlbmNlIFtmIGksIC4uLiwgZiAoai0xKV0uICopXG5cbmxldCByZWMgaW5pdF9hdXggZiBpIGogKCkgPVxuICBpZiBpIDwgaiB0aGVuIGJlZ2luXG4gICAgQ29ucyAoZiBpLCBpbml0X2F1eCBmIChpICsgMSkgailcbiAgZW5kXG4gIGVsc2VcbiAgICBOaWxcblxubGV0IGluaXQgbiBmID1cbiAgaWYgbiA8IDAgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU2VxLmluaXRcIlxuICBlbHNlXG4gICAgaW5pdF9hdXggZiAwIG5cblxubGV0IHJlYyByZXBlYXQgeCAoKSA9XG4gIENvbnMgKHgsIHJlcGVhdCB4KVxuXG5sZXQgcmVjIGZvcmV2ZXIgZiAoKSA9XG4gIENvbnMgKGYoKSwgZm9yZXZlciBmKVxuXG4oKiBUaGlzIHByZWxpbWluYXJ5IGRlZmluaXRpb24gb2YgW2N5Y2xlXSByZXF1aXJlcyB0aGUgc2VxdWVuY2UgW3hzXVxuICAgdG8gYmUgbm9uZW1wdHkuIEFwcGx5aW5nIGl0IHRvIGFuIGVtcHR5IHNlcXVlbmNlIHdvdWxkIHByb2R1Y2UgYVxuICAgc2VxdWVuY2UgdGhhdCBkaXZlcmdlcyB3aGVuIGl0IGlzIGZvcmNlZC4gKilcblxubGV0IHJlYyBjeWNsZV9ub25lbXB0eSB4cyAoKSA9XG4gIGFwcGVuZCB4cyAoY3ljbGVfbm9uZW1wdHkgeHMpICgpXG5cbigqIFtjeWNsZSB4c10gY2hlY2tzIHdoZXRoZXIgW3hzXSBpcyBlbXB0eSBhbmQsIGlmIHNvLCByZXR1cm5zIGFuIGVtcHR5XG4gICBzZXF1ZW5jZS4gT3RoZXJ3aXNlLCBbY3ljbGUgeHNdIHByb2R1Y2VzIG9uZSBjb3B5IG9mIFt4c10gZm9sbG93ZWRcbiAgIHdpdGggdGhlIGluZmluaXRlIHNlcXVlbmNlIFtjeWNsZV9ub25lbXB0eSB4c10uIFRodXMsIHRoZSBub25lbXB0aW5lc3NcbiAgIGNoZWNrIGlzIHBlcmZvcm1lZCBqdXN0IG9uY2UuICopXG5cbmxldCBjeWNsZSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMnKSAtPlxuICAgICAgQ29ucyAoeCwgYXBwZW5kIHhzJyAoY3ljbGVfbm9uZW1wdHkgeHMpKVxuXG4oKiBbaXRlcmF0ZTEgZiB4XSBpcyB0aGUgc2VxdWVuY2UgW2YgeCwgZiAoZiB4KSwgLi4uXS5cbiAgIEl0IGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKGl0ZXJhdGUgZiB4KV0uXG4gICBbaXRlcmF0ZTFdIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0uICopXG5cbmxldCByZWMgaXRlcmF0ZTEgZiB4ICgpID1cbiAgbGV0IHkgPSBmIHggaW5cbiAgQ29ucyAoeSwgaXRlcmF0ZTEgZiB5KVxuXG4oKiBbaXRlcmF0ZSBmIHhdIGlzIHRoZSBzZXF1ZW5jZSBbeCwgZiB4LCAuLi5dLiAqKVxuXG4oKiBUaGUgcmVhc29uIHdoeSB3ZSBnaXZlIHRoaXMgc2xpZ2h0bHkgaW5kaXJlY3QgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0sXG4gICBhcyBvcHBvc2VkIHRvIHRoZSBtb3JlIG5haXZlIGRlZmluaXRpb24gdGhhdCBtYXkgY29tZSB0byBtaW5kLCBpcyB0aGF0XG4gICB3ZSBhcmUgY2FyZWZ1bCB0byBhdm9pZCBldmFsdWF0aW5nIFtmIHhdIHVudGlsIHRoaXMgZnVuY3Rpb24gY2FsbCBpc1xuICAgYWN0dWFsbHkgbmVjZXNzYXJ5LiBUaGUgbmFpdmUgZGVmaW5pdGlvbiAobm90IHNob3duIGhlcmUpIGNvbXB1dGVzIHRoZVxuICAgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBzZXF1ZW5jZSwgW2YgeF0sIHdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzXG4gICByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuICopXG5cbmxldCBpdGVyYXRlIGYgeCA9XG4gIGNvbnMgeCAoaXRlcmF0ZTEgZiB4KVxuXG5cblxubGV0IHJlYyBtYXBpX2F1eCBmIGkgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoZiBpIHgsIG1hcGlfYXV4IGYgKGkrMSkgeHMpXG5cbmxldFtAaW5saW5lXSBtYXBpIGYgeHMgPVxuICBtYXBpX2F1eCBmIDAgeHNcblxuKCogW3RhaWxfc2NhbiBmIHMgeHNdIGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKHNjYW4gZiBzIHhzKV0uXG4gICBbdGFpbF9zY2FuXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW3NjYW5dLiAqKVxuXG4oKiBUaGlzIHNsaWdodGx5IGluZGlyZWN0IGRlZmluaXRpb24gb2YgW3NjYW5dIGlzIG1lYW50IHRvIGF2b2lkIGNvbXB1dGluZ1xuICAgZWxlbWVudHMgdG9vIGVhcmx5OyBzZWUgdGhlIGFib3ZlIGNvbW1lbnQgYWJvdXQgW2l0ZXJhdGUxXSBhbmQgW2l0ZXJhdGVdLiAqKVxuXG5sZXQgcmVjIHRhaWxfc2NhbiBmIHMgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IHMgPSBmIHMgeCBpblxuICAgICAgQ29ucyAocywgdGFpbF9zY2FuIGYgcyB4cylcblxubGV0IHNjYW4gZiBzIHhzID1cbiAgY29ucyBzICh0YWlsX3NjYW4gZiBzIHhzKVxuXG4oKiBbdGFrZV0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW3Rha2UgMCB4c10gcmV0dXJucyBbZW1wdHldXG4gICBpbW1lZGlhdGVseSwgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCByZWMgdGFrZV9hdXggbiB4cyA9XG4gIGlmIG4gPSAwIHRoZW5cbiAgICBlbXB0eVxuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICAgIENvbnMgKHgsIHRha2VfYXV4IChuLTEpIHhzKVxuXG5sZXQgdGFrZSBuIHhzID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIlNlcS50YWtlXCI7XG4gIHRha2VfYXV4IG4geHNcblxuKCogW2ZvcmNlX2Ryb3AgbiB4c10gaXMgZXF1aXZhbGVudCB0byBbZHJvcCBuIHhzICgpXS5cbiAgIFtmb3JjZV9kcm9wIG4geHNdIHJlcXVpcmVzIFtuID4gMF0uXG4gICBbZm9yY2VfZHJvcF0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtkcm9wXS4gKilcblxubGV0IHJlYyBmb3JjZV9kcm9wIG4geHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGV0IG4gPSBuIC0gMSBpblxuICAgICAgaWYgbiA9IDAgdGhlblxuICAgICAgICB4cygpXG4gICAgICBlbHNlXG4gICAgICAgIGZvcmNlX2Ryb3AgbiB4c1xuXG4oKiBbZHJvcF0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW2Ryb3AgMCB4c10gcmV0dXJucyBbeHNdIGltbWVkaWF0ZWx5LFxuICAgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCBkcm9wIG4geHMgPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiU2VxLmRyb3BcIlxuICBlbHNlIGlmIG4gPSAwIHRoZW5cbiAgICB4c1xuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBmb3JjZV9kcm9wIG4geHNcblxubGV0IHJlYyB0YWtlX3doaWxlIHAgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gQ29ucyAoeCwgdGFrZV93aGlsZSBwIHhzKSBlbHNlIE5pbFxuXG5sZXQgcmVjIGRyb3Bfd2hpbGUgcCB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIGFzIG5vZGUgLT5cbiAgICAgIGlmIHAgeCB0aGVuIGRyb3Bfd2hpbGUgcCB4cyAoKSBlbHNlIG5vZGVcblxubGV0IHJlYyBncm91cCBlcSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zIChjb25zIHggKHRha2Vfd2hpbGUgKGVxIHgpIHhzKSwgZ3JvdXAgZXEgKGRyb3Bfd2hpbGUgKGVxIHgpIHhzKSlcblxuZXhjZXB0aW9uIEZvcmNlZF90d2ljZVxuXG5tb2R1bGUgU3VzcGVuc2lvbiA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egc3VzcGVuc2lvbiA9XG4gICAgdW5pdCAtPiAnYVxuXG4gICgqIENvbnZlcnNpb25zLiAqKVxuXG4gIGxldCB0b19sYXp5IDogJ2Egc3VzcGVuc2lvbiAtPiAnYSBMYXp5LnQgPVxuICAgIExhenkuZnJvbV9mdW5cbiAgICAoKiBmdW4gcyAtPiBsYXp5IChzKCkpICopXG5cbiAgbGV0IGZyb21fbGF6eSAocyA6ICdhIExhenkudCkgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBmdW4gKCkgLT4gTGF6eS5mb3JjZSBzXG5cbiAgKCogW21lbW9pemVdIHR1cm5zIGFuIGFyYml0cmFyeSBzdXNwZW5zaW9uIGludG8gYSBwZXJzaXN0ZW50IHN1c3BlbnNpb24uICopXG5cbiAgbGV0IG1lbW9pemUgKHMgOiAnYSBzdXNwZW5zaW9uKSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGZyb21fbGF6eSAodG9fbGF6eSBzKVxuXG4gICgqIFtmYWlsdXJlXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBmYWlscyB3aGVuIGZvcmNlZC4gKilcblxuICBsZXQgZmFpbHVyZSA6IF8gc3VzcGVuc2lvbiA9XG4gICAgZnVuICgpIC0+XG4gICAgICAoKiBBIHN1c3BlbnNpb24gY3JlYXRlZCBieSBbb25jZV0gaGFzIGJlZW4gZm9yY2VkIHR3aWNlLiAqKVxuICAgICAgcmFpc2UgRm9yY2VkX3R3aWNlXG5cbiAgKCogSWYgW2ZdIGlzIGEgc3VzcGVuc2lvbiwgdGhlbiBbb25jZSBmXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBjYW4gYmUgZm9yY2VkXG4gICAgIGF0IG1vc3Qgb25jZS4gSWYgaXQgaXMgZm9yY2VkIG1vcmUgdGhhbiBvbmNlLCB0aGVuIFtGb3JjZWRfdHdpY2VdIGlzXG4gICAgIHJhaXNlZC4gKilcblxuICBsZXQgb25jZSAoZiA6ICdhIHN1c3BlbnNpb24pIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgbGV0IGFjdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGYgaW5cbiAgICBmdW4gKCkgLT5cbiAgICAgICgqIEdldCB0aGUgZnVuY3Rpb24gY3VycmVudGx5IHN0b3JlZCBpbiBbYWN0aW9uXSwgYW5kIHdyaXRlIHRoZVxuICAgICAgICAgZnVuY3Rpb24gW2ZhaWx1cmVdIGluIGl0cyBwbGFjZSwgc28gdGhlIG5leHQgYWNjZXNzIHdpbGwgcmVzdWx0XG4gICAgICAgICBpbiBhIGNhbGwgdG8gW2ZhaWx1cmUoKV0uICopXG4gICAgICBsZXQgZiA9IENhbWxpbnRlcm5hbEF0b21pYy5leGNoYW5nZSBhY3Rpb24gZmFpbHVyZSBpblxuICAgICAgZigpXG5cbmVuZCAoKiBTdXNwZW5zaW9uICopXG5cbmxldCByZWMgbWVtb2l6ZSB4cyA9XG4gIFN1c3BlbnNpb24ubWVtb2l6ZSAoZnVuICgpIC0+XG4gICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgQ29ucyAoeCwgbWVtb2l6ZSB4cylcbiAgKVxuXG5sZXQgcmVjIG9uY2UgeHMgPVxuICBTdXNwZW5zaW9uLm9uY2UgKGZ1biAoKSAtPlxuICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgIENvbnMgKHgsIG9uY2UgeHMpXG4gIClcblxuXG5sZXQgcmVjIHppcCB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKCh4LCB5KSwgemlwIHhzIHlzKVxuXG5sZXQgcmVjIG1hcDIgZiB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKGYgeCB5LCBtYXAyIGYgeHMgeXMpXG5cbmxldCByZWMgaW50ZXJsZWF2ZSB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgeXMoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoeCwgaW50ZXJsZWF2ZSB5cyB4cylcblxuKCogW3NvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIChjb25zIHggeHMpIHlzXS5cblxuICAgW3NvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIHhzIChjb25zIHkgeXMpXS5cblxuICAgW3NvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c10gaXMgZXF1aXZhbGVudCB0b1xuICAgICBbc29ydGVkX21lcmdlIGNtcCAoY29ucyB4IHhzKSAoY29ucyB5IHlzKV0uXG5cbiAgIFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBhcmUgdXNlZCBhcyBidWlsZGluZyBibG9ja3MgaW4gdGhlIGRlZmluaXRpb25cbiAgIG9mIFtzb3J0ZWRfbWVyZ2VdLiAqKVxuXG5sZXQgcmVjIHNvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzICgpID1cbiAgbWF0Y2ggeXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBDb25zICh4LCB4cylcbiAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5hbmQgc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIENvbnMgKHksIHlzKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cbmFuZCBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXMgPVxuICBpZiBjbXAgeCB5IDw9IDAgdGhlblxuICAgIENvbnMgKHgsIHNvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzKVxuICBlbHNlXG4gICAgQ29ucyAoeSwgc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXMpXG5cbmxldCBzb3J0ZWRfbWVyZ2UgY21wIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gICAgfCBOaWwsIE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IE5pbCwgY1xuICAgIHwgYywgTmlsIC0+XG4gICAgICAgIGNcbiAgICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5cbmxldCByZWMgbWFwX2ZzdCB4eXMgKCkgPVxuICBtYXRjaCB4eXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICgoeCwgXyksIHh5cykgLT5cbiAgICAgIENvbnMgKHgsIG1hcF9mc3QgeHlzKVxuXG5sZXQgcmVjIG1hcF9zbmQgeHlzICgpID1cbiAgbWF0Y2ggeHlzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoKF8sIHkpLCB4eXMpIC0+XG4gICAgICBDb25zICh5LCBtYXBfc25kIHh5cylcblxubGV0IHVuemlwIHh5cyA9XG4gIG1hcF9mc3QgeHlzLCBtYXBfc25kIHh5c1xuXG5sZXQgc3BsaXQgPVxuICB1bnppcFxuXG4oKiBbZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgIFtmaWx0ZXJfbWFwIEVpdGhlci5maW5kX2xlZnQgKG1hcCBmIHhzKV0uICopXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgRWl0aGVyLkxlZnQgeSAtPlxuICAgICAgICAgIENvbnMgKHksIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzKVxuICAgICAgfCBFaXRoZXIuUmlnaHQgXyAtPlxuICAgICAgICAgIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzICgpXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICB8IEVpdGhlci5MZWZ0IF8gLT5cbiAgICAgICAgICBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMgKClcbiAgICAgIHwgRWl0aGVyLlJpZ2h0IHogLT5cbiAgICAgICAgICBDb25zICh6LCBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMpXG5cbmxldCBwYXJ0aXRpb25fbWFwIGYgeHMgPVxuICBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyxcbiAgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzXG5cbmxldCBwYXJ0aXRpb24gcCB4cyA9XG4gIGZpbHRlciBwIHhzLCBmaWx0ZXIgKGZ1biB4IC0+IG5vdCAocCB4KSkgeHNcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW3BlZWwgeHNzXSBpcyBhIHBhaXIgb2ZcbiAgIHRoZSBmaXJzdCBjb2x1bW4gKGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMpIGFuZCBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZVxuICAgbWF0cml4IChhIHNlcXVlbmNlIG9mIHNob3J0ZXIgcm93cykuIFRoZXNlIHR3byBzZXF1ZW5jZXMgaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBUaGUgcm93cyBvZiB0aGUgbWF0cml4IFt4c3NdIGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBBbiBlbXB0eSByb3cgaXMgaWdub3JlZC4gKilcblxuKCogQmVjYXVzZSBbcGVlbF0gdXNlcyBbdW56aXBdLCBpdHMgYXJndW1lbnQgbXVzdCBiZSBwZXJzaXN0ZW50LiBUaGUgc2FtZVxuICAgcmVtYXJrIGFwcGxpZXMgdG8gW3RyYW5zcG9zZV0sIFtkaWFnb25hbHNdLCBbcHJvZHVjdF0sIGV0Yy4gKilcblxubGV0IHBlZWwgeHNzID1cbiAgdW56aXAgKGZpbHRlcl9tYXAgdW5jb25zIHhzcylcblxubGV0IHJlYyB0cmFuc3Bvc2UgeHNzICgpID1cbiAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgeHNzIGluXG4gIGlmIGlzX2VtcHR5IGhlYWRzIHRoZW4gYmVnaW5cbiAgICBhc3NlcnQgKGlzX2VtcHR5IHRhaWxzKTtcbiAgICBOaWxcbiAgZW5kXG4gIGVsc2VcbiAgICBDb25zIChoZWFkcywgdHJhbnNwb3NlIHRhaWxzKVxuXG4oKiBUaGUgaW50ZXJuYWwgZnVuY3Rpb24gW2RpYWdvbmFsc10gdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQsIFtyZW1haW5kZXJzXSxcbiAgIHdoaWNoIGNvbnRhaW5zIHRoZSByZW1haW5kZXJzIG9mIHRoZSByb3dzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW5cbiAgIGRpc2NvdmVyZWQuICopXG5cbmxldCByZWMgZGlhZ29uYWxzIHJlbWFpbmRlcnMgeHNzICgpID1cbiAgbWF0Y2ggeHNzKCkgd2l0aFxuICB8IENvbnMgKHhzLCB4c3MpIC0+XG4gICAgICBiZWdpbiBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgbm9uZW1wdHkgcm93IFt4IDo6IHhzXS4gVGh1cywgdGhlIG5leHQgZGlhZ29uYWxcbiAgICAgICAgICAgICBpcyBbeCA6OiBoZWFkc106IHRoaXMgZGlhZ29uYWwgYmVnaW5zIHdpdGggW3hdIGFuZCBjb250aW51ZXMgd2l0aFxuICAgICAgICAgICAgIHRoZSBmaXJzdCBlbGVtZW50IG9mIGV2ZXJ5IHJvdyBpbiBbcmVtYWluZGVyc10uIEluIHRoZSByZWN1cnNpdmVcbiAgICAgICAgICAgICBjYWxsLCB0aGUgYXJndW1lbnQgW3JlbWFpbmRlcnNdIGlzIGluc3RhbnRpYXRlZCB3aXRoIFt4cyA6OlxuICAgICAgICAgICAgIHRhaWxzXSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3csIFt4c10sXG4gICAgICAgICAgICAgYW5kIHRoYXQgd2Uga2VlcCB0aGUgdGFpbHMgb2YgdGhlIHByZS1leGlzdGluZyByZW1haW5pbmcgcm93cy4gKilcbiAgICAgICAgICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCByZW1haW5kZXJzIGluXG4gICAgICAgICAgQ29ucyAoY29ucyB4IGhlYWRzLCBkaWFnb25hbHMgKGNvbnMgeHMgdGFpbHMpIHhzcylcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgZW1wdHkgcm93LiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgZGlhZ29uYWwgaXNcbiAgICAgICAgICAgICBqdXN0IFtoZWFkc10sIGFuZCBbcmVtYWluZGVyc10gaXMgaW5zdGFudGlhdGVkIHdpdGgganVzdCBbdGFpbHNdLFxuICAgICAgICAgICAgIGFzIHdlIGRvIG5vdCBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3cuICopXG4gICAgICAgICAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgcmVtYWluZGVycyBpblxuICAgICAgICAgIENvbnMgKGhlYWRzLCBkaWFnb25hbHMgdGFpbHMgeHNzKVxuICAgICAgZW5kXG4gIHwgTmlsIC0+XG4gICAgICAoKiBUaGVyZSBhcmUgbm8gbW9yZSByb3dzIHRvIGJlIGRpc2NvdmVyZWQuIFRoZXJlIHJlbWFpbnMgdG8gZXhoYXVzdFxuICAgICAgICAgdGhlIHJlbWFpbmluZyByb3dzLiAqKVxuICAgICAgdHJhbnNwb3NlIHJlbWFpbmRlcnMgKClcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW2RpYWdvbmFscyB4c3NdIGlzXG4gICB0aGUgc2VxdWVuY2Ugb2YgaXRzIGRpYWdvbmFscy5cblxuICAgVGhlIGZpcnN0IGRpYWdvbmFsIGNvbnRhaW5zIGp1c3QgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBmaXJzdCByb3cuIFRoZSBzZWNvbmQgZGlhZ29uYWwgY29udGFpbnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBzZWNvbmQgcm93IGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHJvdzsgYW5kIHNvIG9uLlxuICAgVGhpcyBraW5kIG9mIGRpYWdvbmFsIGlzIGluIGZhY3Qgc29tZXRpbWVzIGtub3duIGFzIGFuIGFudGlkaWFnb25hbC5cblxuICAgLSBFdmVyeSBkaWFnb25hbCBpcyBhIGZpbml0ZSBzZXF1ZW5jZS5cbiAgIC0gVGhlIHJvd3Mgb2YgdGhlIG1hdHJpeCBbeHNzXSBhcmUgbm90IHJlcXVpcmVkIHRvIGhhdmUgdGhlIHNhbWUgbGVuZ3RoLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIGlzIG5vdCByZXF1aXJlZCB0byBiZSBmaW5pdGUgKGluIGVpdGhlciBkaXJlY3Rpb24pLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIG11c3QgYmUgcGVyc2lzdGVudC4gKilcblxubGV0IGRpYWdvbmFscyB4c3MgPVxuICBkaWFnb25hbHMgZW1wdHkgeHNzXG5cbmxldCBtYXBfcHJvZHVjdCBmIHhzIHlzID1cbiAgY29uY2F0IChkaWFnb25hbHMgKFxuICAgIG1hcCAoZnVuIHggLT5cbiAgICAgIG1hcCAoZnVuIHkgLT5cbiAgICAgICAgZiB4IHlcbiAgICAgICkgeXNcbiAgICApIHhzXG4gICkpXG5cbmxldCBwcm9kdWN0IHhzIHlzID1cbiAgbWFwX3Byb2R1Y3QgKGZ1biB4IHkgLT4gKHgsIHkpKSB4cyB5c1xuXG5sZXQgb2ZfZGlzcGVuc2VyIGl0ID1cbiAgbGV0IHJlYyBjICgpID1cbiAgICBtYXRjaCBpdCgpIHdpdGhcbiAgICB8IE5vbmUgLT5cbiAgICAgICAgTmlsXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQ29ucyAoeCwgYylcbiAgaW5cbiAgY1xuXG5sZXQgdG9fZGlzcGVuc2VyIHhzID1cbiAgbGV0IHMgPSByZWYgeHMgaW5cbiAgZnVuICgpIC0+XG4gICAgbWF0Y2ggKCFzKSgpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOb25lXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgcyA6PSB4cztcbiAgICAgICAgU29tZSB4XG5cblxuXG5sZXQgcmVjIGludHMgaSAoKSA9XG4gIENvbnMgKGksIGludHMgKGkgKyAxKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2Egb3B0aW9uID0gTm9uZSB8IFNvbWUgb2YgJ2FcblxubGV0IG5vbmUgPSBOb25lXG5sZXQgc29tZSB2ID0gU29tZSB2XG5sZXQgdmFsdWUgbyB+ZGVmYXVsdCA9IG1hdGNoIG8gd2l0aCBTb21lIHYgLT4gdiB8IE5vbmUgLT4gZGVmYXVsdFxubGV0IGdldCA9IGZ1bmN0aW9uIFNvbWUgdiAtPiB2IHwgTm9uZSAtPiBpbnZhbGlkX2FyZyBcIm9wdGlvbiBpcyBOb25lXCJcbmxldCBiaW5kIG8gZiA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gZiB2XG5sZXQgam9pbiA9IGZ1bmN0aW9uIFNvbWUgbyAtPiBvIHwgTm9uZSAtPiBOb25lXG5sZXQgbWFwIGYgbyA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gU29tZSAoZiB2KVxubGV0IGZvbGQgfm5vbmUgfnNvbWUgPSBmdW5jdGlvbiBTb21lIHYgLT4gc29tZSB2IHwgTm9uZSAtPiBub25lXG5sZXQgaXRlciBmID0gZnVuY3Rpb24gU29tZSB2IC0+IGYgdiB8IE5vbmUgLT4gKClcbmxldCBpc19ub25lID0gZnVuY3Rpb24gTm9uZSAtPiB0cnVlIHwgU29tZSBfIC0+IGZhbHNlXG5sZXQgaXNfc29tZSA9IGZ1bmN0aW9uIE5vbmUgLT4gZmFsc2UgfCBTb21lIF8gLT4gdHJ1ZVxuXG5sZXQgZXF1YWwgZXEgbzAgbzEgPSBtYXRjaCBvMCwgbzEgd2l0aFxufCBTb21lIHYwLCBTb21lIHYxIC0+IGVxIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gdHJ1ZVxufCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIGNtcCBvMCBvMSA9IG1hdGNoIG8wLCBvMSB3aXRoXG58IFNvbWUgdjAsIFNvbWUgdjEgLT4gY21wIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gMFxufCBOb25lLCBTb21lIF8gLT4gLTFcbnwgU29tZSBfLCBOb25lIC0+IDFcblxubGV0IHRvX3Jlc3VsdCB+bm9uZSA9IGZ1bmN0aW9uIE5vbmUgLT4gRXJyb3Igbm9uZSB8IFNvbWUgdiAtPiBPayB2XG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uIE5vbmUgLT4gW10gfCBTb21lIHYgLT4gW3ZdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gTm9uZSAtPiBTZXEuZW1wdHkgfCBTb21lIHYgLT4gU2VxLnJldHVybiB2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgKCdhLCAnZSkgdCA9ICgnYSwgJ2UpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2VcblxubGV0IG9rIHYgPSBPayB2XG5sZXQgZXJyb3IgZSA9IEVycm9yIGVcbmxldCB2YWx1ZSByIH5kZWZhdWx0ID0gbWF0Y2ggciB3aXRoIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gZGVmYXVsdFxubGV0IGdldF9vayA9IGZ1bmN0aW9uIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gaW52YWxpZF9hcmcgXCJyZXN1bHQgaXMgRXJyb3IgX1wiXG5sZXQgZ2V0X2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBlIHwgT2sgXyAtPiBpbnZhbGlkX2FyZyBcInJlc3VsdCBpcyBPayBfXCJcbmxldCBiaW5kIHIgZiA9IG1hdGNoIHIgd2l0aCBPayB2IC0+IGYgdiB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgam9pbiA9IGZ1bmN0aW9uIE9rIHIgLT4gciB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgbWFwIGYgPSBmdW5jdGlvbiBPayB2IC0+IE9rIChmIHYpIHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBtYXBfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gRXJyb3IgKGYgZSkgfCBPayBfIGFzIHYgLT4gdlxubGV0IGZvbGQgfm9rIH5lcnJvciA9IGZ1bmN0aW9uIE9rIHYgLT4gb2sgdiB8IEVycm9yIGUgLT4gZXJyb3IgZVxubGV0IGl0ZXIgZiA9IGZ1bmN0aW9uIE9rIHYgLT4gZiB2IHwgRXJyb3IgXyAtPiAoKVxubGV0IGl0ZXJfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gZiBlIHwgT2sgXyAtPiAoKVxubGV0IGlzX29rID0gZnVuY3Rpb24gT2sgXyAtPiB0cnVlIHwgRXJyb3IgXyAtPiBmYWxzZVxubGV0IGlzX2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgXyAtPiB0cnVlIHwgT2sgXyAtPiBmYWxzZVxuXG5sZXQgZXF1YWwgfm9rIH5lcnJvciByMCByMSA9IG1hdGNoIHIwLCByMSB3aXRoXG58IE9rIHYwLCBPayB2MSAtPiBvayB2MCB2MVxufCBFcnJvciBlMCwgRXJyb3IgZTEgLT4gZXJyb3IgZTAgZTFcbnwgXywgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSB+b2sgfmVycm9yIHIwIHIxID0gbWF0Y2ggcjAsIHIxIHdpdGhcbnwgT2sgdjAsIE9rIHYxIC0+IG9rIHYwIHYxXG58IEVycm9yIGUwLCBFcnJvciBlMSAtPiBlcnJvciBlMCBlMVxufCBPayBfLCBFcnJvciBfIC0+IC0xXG58IEVycm9yIF8sIE9rIF8gLT4gMVxuXG5sZXQgdG9fb3B0aW9uID0gZnVuY3Rpb24gT2sgdiAtPiBTb21lIHYgfCBFcnJvciBfIC0+IE5vbmVcbmxldCB0b19saXN0ID0gZnVuY3Rpb24gT2sgdiAtPiBbdl0gfCBFcnJvciBfIC0+IFtdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gT2sgdiAtPiBTZXEucmV0dXJuIHYgfCBFcnJvciBfIC0+IFNlcS5lbXB0eVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBib29sID0gZmFsc2UgfCB0cnVlXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmxldCBlcXVhbCA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogYm9vbCAtPiBib29sIC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5leHRlcm5hbCB0b19pbnQgOiBib29sIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmxldCB0b19mbG9hdCA9IGZ1bmN0aW9uIGZhbHNlIC0+IDAuIHwgdHJ1ZSAtPiAxLlxuXG4oKlxubGV0IG9mX3N0cmluZyA9IGZ1bmN0aW9uXG58IFwiZmFsc2VcIiAtPiBTb21lIGZhbHNlXG58IFwidHJ1ZVwiIC0+IFNvbWUgdHJ1ZVxufCBfIC0+IE5vbmVcbiopXG5cbmxldCB0b19zdHJpbmcgPSBmdW5jdGlvbiBmYWxzZSAtPiBcImZhbHNlXCIgfCB0cnVlIC0+IFwidHJ1ZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENoYXJhY3RlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGNvZGU6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdW5zYWZlX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBjaHIgbiA9XG4gIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyBcIkNoYXIuY2hyXCIgZWxzZSB1bnNhZmVfY2hyIG5cblxuZXh0ZXJuYWwgYnl0ZXNfY3JlYXRlOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5cbmxldCBlc2NhcGVkID0gZnVuY3Rpb25cbiAgfCAnXFwnJyAtPiBcIlxcXFwnXCJcbiAgfCAnXFxcXCcgLT4gXCJcXFxcXFxcXFwiXG4gIHwgJ1xcbicgLT4gXCJcXFxcblwiXG4gIHwgJ1xcdCcgLT4gXCJcXFxcdFwiXG4gIHwgJ1xccicgLT4gXCJcXFxcclwiXG4gIHwgJ1xcYicgLT4gXCJcXFxcYlwiXG4gIHwgJyAnIC4uICd+JyBhcyBjIC0+XG4gICAgICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSAxIGluXG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMCBjO1xuICAgICAgdW5zYWZlX3RvX3N0cmluZyBzXG4gIHwgYyAtPlxuICAgICAgbGV0IG4gPSBjb2RlIGMgaW5cbiAgICAgIGxldCBzID0gYnl0ZXNfY3JlYXRlIDQgaW5cbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAwICdcXFxcJztcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAxICh1bnNhZmVfY2hyICg0OCArIG4gLyAxMDApKTtcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAyICh1bnNhZmVfY2hyICg0OCArIChuIC8gMTApIG1vZCAxMCkpO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDMgKHVuc2FmZV9jaHIgKDQ4ICsgbiBtb2QgMTApKTtcbiAgICAgIHVuc2FmZV90b19zdHJpbmcgc1xuXG5sZXQgbG93ZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onXG4gIHwgJ1xcMTkyJyAuLiAnXFwyMTQnXG4gIHwgJ1xcMjE2JyAuLiAnXFwyMjInIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyArIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgdXBwZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnYScgLi4gJ3onXG4gIHwgJ1xcMjI0JyAuLiAnXFwyNDYnXG4gIHwgJ1xcMjQ4JyAuLiAnXFwyNTQnIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyAtIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgbG93ZXJjYXNlX2FzY2lpID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onIGFzIGMgLT4gdW5zYWZlX2Nocihjb2RlIGMgKyAzMilcbiAgfCBjIC0+IGNcblxubGV0IHVwcGVyY2FzZV9hc2NpaSA9IGZ1bmN0aW9uXG4gIHwgJ2EnIC4uICd6JyBhcyBjIC0+IHVuc2FmZV9jaHIoY29kZSBjIC0gMzIpXG4gIHwgYyAtPiBjXG5cbnR5cGUgdCA9IGNoYXJcblxubGV0IGNvbXBhcmUgYzEgYzIgPSBjb2RlIGMxIC0gY29kZSBjMlxubGV0IGVxdWFsIChjMTogdCkgKGMyOiB0KSA9IGNvbXBhcmUgYzEgYzIgPSAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAqKVxuXG4oKiBXQVJOSU5HOiBTb21lIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sIGZvclxuICAgZWZmaWNpZW5jeSByZWFzb25zLiBXaGVuIHlvdSBtb2RpZnkgdGhlIG9uZSBpbiB0aGlzIGZpbGUgeW91IG5lZWQgdG9cbiAgIG1vZGlmeSBpdHMgZHVwbGljYXRlIGluIHN0cmluZy5tbC5cbiAgIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgXCJkdXBsaWNhdGVkXCIgY29tbWVudCBhYm92ZSB0aGVpciBkZWZpbml0aW9uLlxuKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogYnl0ZXMgLT4gaW50ID0gXCIlYnl0ZXNfbGVuZ3RoXCJcbmV4dGVybmFsIHN0cmluZ19sZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBnZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciA9IFwiJWJ5dGVzX3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGJ5dGVzIC0+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+IDB4REZGRiAtPiBmYWxzZVxuICAgICAgICB8IF9sbyAtPiBsb29wIG1heCBiIChpICsgNClcbiAgaW5cbiAgbG9vcCAobGVuZ3RoIGIgLSAxKSBiIDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gaW50XG5cbmxldCB6ZXJvID0gMFxubGV0IG9uZSA9IDFcbmxldCBtaW51c19vbmUgPSAtMVxuZXh0ZXJuYWwgbmVnIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCBhZGQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCBzdWIgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCBtdWwgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCBkaXYgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCByZW0gOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmxldCBhYnMgeCA9IGlmIHggPj0gMCB0aGVuIHggZWxzZSAteFxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCBsb2dvciA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxubGV0IGxvZ25vdCB4ID0gbG9neG9yIHggKC0xKVxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5cbigqXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmcgcyA9IHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcbiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmxldCB0b19zdHJpbmcgeCA9IGZvcm1hdF9pbnQgXCIlZFwiIHhcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IEdhbGxpdW0sIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogU3RyaW5nIG9wZXJhdGlvbnMsIGJhc2VkIG9uIGJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAqKVxuXG4oKiBXQVJOSU5HOiBTb21lIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgZm9yXG4gICBlZmZpY2llbmN5IHJlYXNvbnMuIFdoZW4geW91IG1vZGlmeSB0aGUgb25lIGluIHRoaXMgZmlsZSB5b3UgbmVlZCB0b1xuICAgbW9kaWZ5IGl0cyBkdXBsaWNhdGUgaW4gYnl0ZXMubWwuXG4gICBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIFwiZHVwbGljYXRlZFwiIGNvbW1lbnQgYWJvdmUgdGhlaXIgZGVmaW5pdGlvbi5cbiopXG5cbmV4dGVybmFsIGxlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGdldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlc3RyaW5nX3NhZmVfc2V0XCJcbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfc3RyaW5nXCJcbmV4dGVybmFsIHVuc2FmZV9nZXQgOiBzdHJpbmcgLT4gaW50IC0+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+IFt8fF1cbiAgfCBoZDo6dGwgYXMgbCAtPlxuICAgICAgbGV0IGxlbiA9IGxpc3RfbGVuZ3RoIDAgbCBpblxuICAgICAgbGV0IGEgPSBjcmVhdGUgbGVuIGhkIGluXG4gICAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgICAgW10gLT4gYVxuICAgICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaS0xKSB0bFxuICAgICAgaW5cbiAgICAgIGZpbGwgKGxlbi0yKSB0bFxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgbCA9IFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIGkgaW5cbiAgb2ZfcmV2X2xpc3QgbFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0ludDMyXTogMzItYml0IGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZyA6IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbmVnXCJcbmV4dGVybmFsIGFkZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYWRkXCJcbmV4dGVybmFsIHN1YiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfc3ViXCJcbmV4dGVybmFsIG11bCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbXVsXCJcbmV4dGVybmFsIGRpdiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfZGl2XCJcbmV4dGVybmFsIHJlbSA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYW5kXCJcbmV4dGVybmFsIGxvZ29yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9vclwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGludDMyID0gXCIlaW50MzJfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGludDMyIC0+IGludCA9IFwiJWludDMyX3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl90b19mbG9hdFwiIFwiY2FtbF9pbnQzMl90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGJpdHNfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgemVybyA9IDBsXG5sZXQgb25lID0gMWxcbmxldCBtaW51c19vbmUgPSAtMWxcbmxldCBzdWNjIG4gPSBhZGQgbiAxbFxubGV0IHByZWQgbiA9IHN1YiBuIDFsXG5sZXQgYWJzIG4gPSBpZiBuID49IDBsIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgbWluX2ludCA9IDB4ODAwMDAwMDBsXG5sZXQgbWF4X2ludCA9IDB4N0ZGRkZGRkZsXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFsKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbWF0Y2ggU3lzLndvcmRfc2l6ZSB3aXRoXG4gIHwgMzIgLT5cbiAgICAgIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gICAgICBmdW4gbiAtPlxuICAgICAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgTm9uZVxuICB8IDY0IC0+XG4gICAgICAoKiBTbyB0aGF0IGl0IGNvbXBpbGVzIGluIDMyLWJpdCAqKVxuICAgICAgbGV0IG1hc2sgPSAweEZGRkYgbHNsIDE2IGxvciAweEZGRkYgaW5cbiAgICAgIGZ1biBuIC0+IFNvbWUgKHRvX2ludCBuIGxhbmQgbWFzaylcbiAgfCBfIC0+XG4gICAgICBhc3NlcnQgZmFsc2VcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZyA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMiA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxudHlwZSB0ID0gaW50MzJcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBUaGUgcGFyc2luZyBlbmdpbmUgKilcblxub3BlbiBMZXhpbmdcblxuKCogSW50ZXJuYWwgaW50ZXJmYWNlIHRvIHRoZSBwYXJzaW5nIGVuZ2luZSAqKVxuXG50eXBlIHBhcnNlcl9lbnYgPVxuICB7IG11dGFibGUgc19zdGFjayA6IGludCBhcnJheTsgICAgICAgICgqIFN0YXRlcyAqKVxuICAgIG11dGFibGUgdl9zdGFjayA6IE9iai50IGFycmF5OyAgICAgICgqIFNlbWFudGljIGF0dHJpYnV0ZXMgKilcbiAgICBtdXRhYmxlIHN5bWJfc3RhcnRfc3RhY2sgOiBwb3NpdGlvbiBhcnJheTsgKCogU3RhcnQgcG9zaXRpb25zICopXG4gICAgbXV0YWJsZSBzeW1iX2VuZF9zdGFjayA6IHBvc2l0aW9uIGFycmF5OyAgICgqIEVuZCBwb3NpdGlvbnMgKilcbiAgICBtdXRhYmxlIHN0YWNrc2l6ZSA6IGludDsgICAgICAgICAgICAoKiBTaXplIG9mIHRoZSBzdGFja3MgKilcbiAgICBtdXRhYmxlIHN0YWNrYmFzZSA6IGludDsgICAgICAgICAgICAoKiBCYXNlIHNwIGZvciBjdXJyZW50IHBhcnNlICopXG4gICAgbXV0YWJsZSBjdXJyX2NoYXIgOiBpbnQ7ICAgICAgICAgICAgKCogTGFzdCB0b2tlbiByZWFkICopXG4gICAgbXV0YWJsZSBsdmFsIDogT2JqLnQ7ICAgICAgICAgICAgICAgKCogSXRzIHNlbWFudGljIGF0dHJpYnV0ZSAqKVxuICAgIG11dGFibGUgc3ltYl9zdGFydCA6IHBvc2l0aW9uOyAgICAgICgqIFN0YXJ0IHBvcy4gb2YgdGhlIGN1cnJlbnQgc3ltYm9sKilcbiAgICBtdXRhYmxlIHN5bWJfZW5kIDogcG9zaXRpb247ICAgICAgICAoKiBFbmQgcG9zLiBvZiB0aGUgY3VycmVudCBzeW1ib2wgKilcbiAgICBtdXRhYmxlIGFzcCA6IGludDsgICAgICAgICAgICAgICAgICAoKiBUaGUgc3RhY2sgcG9pbnRlciBmb3IgYXR0cmlidXRlcyAqKVxuICAgIG11dGFibGUgcnVsZV9sZW4gOiBpbnQ7ICAgICAgICAgICAgICgqIE51bWJlciBvZiByaHMgaXRlbXMgaW4gdGhlIHJ1bGUgKilcbiAgICBtdXRhYmxlIHJ1bGVfbnVtYmVyIDogaW50OyAgICAgICAgICAoKiBSdWxlIG51bWJlciB0byByZWR1Y2UgYnkgKilcbiAgICBtdXRhYmxlIHNwIDogaW50OyAgICAgICAgICAgICAgICAgICAoKiBTYXZlZCBzcCBmb3IgcGFyc2VfZW5naW5lICopXG4gICAgbXV0YWJsZSBzdGF0ZSA6IGludDsgICAgICAgICAgICAgICAgKCogU2F2ZWQgc3RhdGUgZm9yIHBhcnNlX2VuZ2luZSAqKVxuICAgIG11dGFibGUgZXJyZmxhZyA6IGludCB9ICAgICAgICAgICAgICgqIFNhdmVkIGVycm9yIGZsYWcgZm9yIHBhcnNlX2VuZ2luZSAqKVxuW0BAd2FybmluZyBcIi11bnVzZWQtZmllbGRcIl1cblxudHlwZSBwYXJzZV90YWJsZXMgPVxuICB7IGFjdGlvbnMgOiAocGFyc2VyX2VudiAtPiBPYmoudCkgYXJyYXk7XG4gICAgdHJhbnNsX2NvbnN0IDogaW50IGFycmF5O1xuICAgIHRyYW5zbF9ibG9jayA6IGludCBhcnJheTtcbiAgICBsaHMgOiBzdHJpbmc7XG4gICAgbGVuIDogc3RyaW5nO1xuICAgIGRlZnJlZCA6IHN0cmluZztcbiAgICBkZ290byA6IHN0cmluZztcbiAgICBzaW5kZXggOiBzdHJpbmc7XG4gICAgcmluZGV4IDogc3RyaW5nO1xuICAgIGdpbmRleCA6IHN0cmluZztcbiAgICB0YWJsZXNpemUgOiBpbnQ7XG4gICAgdGFibGUgOiBzdHJpbmc7XG4gICAgY2hlY2sgOiBzdHJpbmc7XG4gICAgZXJyb3JfZnVuY3Rpb24gOiBzdHJpbmcgLT4gdW5pdDtcbiAgICBuYW1lc19jb25zdCA6IHN0cmluZztcbiAgICBuYW1lc19ibG9jayA6IHN0cmluZyB9XG5cbmV4Y2VwdGlvbiBZWWV4aXQgb2YgT2JqLnRcbmV4Y2VwdGlvbiBQYXJzZV9lcnJvclxuXG50eXBlIHBhcnNlcl9pbnB1dCA9XG4gICAgU3RhcnRcbiAgfCBUb2tlbl9yZWFkXG4gIHwgU3RhY2tzX2dyb3duXzFcbiAgfCBTdGFja3NfZ3Jvd25fMlxuICB8IFNlbWFudGljX2FjdGlvbl9jb21wdXRlZFxuICB8IEVycm9yX2RldGVjdGVkXG5cbnR5cGUgcGFyc2VyX291dHB1dCA9XG4gICAgUmVhZF90b2tlblxuICB8IFJhaXNlX3BhcnNlX2Vycm9yXG4gIHwgR3Jvd19zdGFja3NfMVxuICB8IEdyb3dfc3RhY2tzXzJcbiAgfCBDb21wdXRlX3NlbWFudGljX2FjdGlvblxuICB8IENhbGxfZXJyb3JfZnVuY3Rpb25cblxuKCogdG8gYXZvaWQgd2FybmluZ3MgKilcbmxldCBfID0gW1JlYWRfdG9rZW47IFJhaXNlX3BhcnNlX2Vycm9yOyBHcm93X3N0YWNrc18xOyBHcm93X3N0YWNrc18yO1xuICAgICAgICAgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb247IENhbGxfZXJyb3JfZnVuY3Rpb25dXG5cbmV4dGVybmFsIHBhcnNlX2VuZ2luZSA6XG4gICAgcGFyc2VfdGFibGVzIC0+IHBhcnNlcl9lbnYgLT4gcGFyc2VyX2lucHV0IC0+IE9iai50IC0+IHBhcnNlcl9vdXRwdXRcbiAgICA9IFwiY2FtbF9wYXJzZV9lbmdpbmVcIlxuXG5leHRlcm5hbCBzZXRfdHJhY2U6IGJvb2wgLT4gYm9vbFxuICAgID0gXCJjYW1sX3NldF9wYXJzZXJfdHJhY2VcIlxuXG5sZXQgZW52ID1cbiAgeyBzX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgMDtcbiAgICB2X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgKE9iai5yZXByICgpKTtcbiAgICBzeW1iX3N0YXJ0X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN5bWJfZW5kX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN0YWNrc2l6ZSA9IDEwMDtcbiAgICBzdGFja2Jhc2UgPSAwO1xuICAgIGN1cnJfY2hhciA9IDA7XG4gICAgbHZhbCA9IE9iai5yZXByICgpO1xuICAgIHN5bWJfc3RhcnQgPSBkdW1teV9wb3M7XG4gICAgc3ltYl9lbmQgPSBkdW1teV9wb3M7XG4gICAgYXNwID0gMDtcbiAgICBydWxlX2xlbiA9IDA7XG4gICAgcnVsZV9udW1iZXIgPSAwO1xuICAgIHNwID0gMDtcbiAgICBzdGF0ZSA9IDA7XG4gICAgZXJyZmxhZyA9IDAgfVxuXG5sZXQgZ3Jvd19zdGFja3MoKSA9XG4gIGxldCBvbGRzaXplID0gZW52LnN0YWNrc2l6ZSBpblxuICBsZXQgbmV3c2l6ZSA9IG9sZHNpemUgKiAyIGluXG4gIGxldCBuZXdfcyA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAwXG4gIGFuZCBuZXdfdiA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAoT2JqLnJlcHIgKCkpXG4gIGFuZCBuZXdfc3RhcnQgPSBBcnJheS5tYWtlIG5ld3NpemUgZHVtbXlfcG9zXG4gIGFuZCBuZXdfZW5kID0gQXJyYXkubWFrZSBuZXdzaXplIGR1bW15X3BvcyBpblxuICAgIEFycmF5LmJsaXQgZW52LnNfc3RhY2sgMCBuZXdfcyAwIG9sZHNpemU7XG4gICAgZW52LnNfc3RhY2sgPC0gbmV3X3M7XG4gICAgQXJyYXkuYmxpdCBlbnYudl9zdGFjayAwIG5ld192IDAgb2xkc2l6ZTtcbiAgICBlbnYudl9zdGFjayA8LSBuZXdfdjtcbiAgICBBcnJheS5ibGl0IGVudi5zeW1iX3N0YXJ0X3N0YWNrIDAgbmV3X3N0YXJ0IDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9zdGFydF9zdGFjayA8LSBuZXdfc3RhcnQ7XG4gICAgQXJyYXkuYmxpdCBlbnYuc3ltYl9lbmRfc3RhY2sgMCBuZXdfZW5kIDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9lbmRfc3RhY2sgPC0gbmV3X2VuZDtcbiAgICBlbnYuc3RhY2tzaXplIDwtIG5ld3NpemVcblxubGV0IGNsZWFyX3BhcnNlcigpID1cbiAgQXJyYXkuZmlsbCBlbnYudl9zdGFjayAwIGVudi5zdGFja3NpemUgKE9iai5yZXByICgpKTtcbiAgZW52Lmx2YWwgPC0gT2JqLnJlcHIgKClcblxubGV0IGN1cnJlbnRfbG9va2FoZWFkX2Z1biA9IHJlZiAoZnVuIChfIDogT2JqLnQpIC0+IGZhbHNlKVxuXG5sZXQgeXlwYXJzZSB0YWJsZXMgc3RhcnQgbGV4ZXIgbGV4YnVmID1cbiAgbGV0IHJlYyBsb29wIGNtZCBhcmcgPVxuICAgIG1hdGNoIHBhcnNlX2VuZ2luZSB0YWJsZXMgZW52IGNtZCBhcmcgd2l0aFxuICAgICAgUmVhZF90b2tlbiAtPlxuICAgICAgICBsZXQgdCA9IE9iai5yZXByKGxleGVyIGxleGJ1ZikgaW5cbiAgICAgICAgZW52LnN5bWJfc3RhcnQgPC0gbGV4YnVmLmxleF9zdGFydF9wO1xuICAgICAgICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGxvb3AgVG9rZW5fcmVhZCB0XG4gICAgfCBSYWlzZV9wYXJzZV9lcnJvciAtPlxuICAgICAgICByYWlzZSBQYXJzZV9lcnJvclxuICAgIHwgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb24gLT5cbiAgICAgICAgbGV0IChhY3Rpb24sIHZhbHVlKSA9XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICAoU2VtYW50aWNfYWN0aW9uX2NvbXB1dGVkLCB0YWJsZXMuYWN0aW9ucy4oZW52LnJ1bGVfbnVtYmVyKSBlbnYpXG4gICAgICAgICAgd2l0aCBQYXJzZV9lcnJvciAtPlxuICAgICAgICAgICAgKEVycm9yX2RldGVjdGVkLCBPYmoucmVwciAoKSkgaW5cbiAgICAgICAgbG9vcCBhY3Rpb24gdmFsdWVcbiAgICB8IEdyb3dfc3RhY2tzXzEgLT5cbiAgICAgICAgZ3Jvd19zdGFja3MoKTsgbG9vcCBTdGFja3NfZ3Jvd25fMSAoT2JqLnJlcHIgKCkpXG4gICAgfCBHcm93X3N0YWNrc18yIC0+XG4gICAgICAgIGdyb3dfc3RhY2tzKCk7IGxvb3AgU3RhY2tzX2dyb3duXzIgKE9iai5yZXByICgpKVxuICAgIHwgQ2FsbF9lcnJvcl9mdW5jdGlvbiAtPlxuICAgICAgICB0YWJsZXMuZXJyb3JfZnVuY3Rpb24gXCJzeW50YXggZXJyb3JcIjtcbiAgICAgICAgbG9vcCBFcnJvcl9kZXRlY3RlZCAoT2JqLnJlcHIgKCkpIGluXG4gIGxldCBpbml0X2FzcCA9IGVudi5hc3BcbiAgYW5kIGluaXRfc3AgPSBlbnYuc3BcbiAgYW5kIGluaXRfc3RhY2tiYXNlID0gZW52LnN0YWNrYmFzZVxuICBhbmQgaW5pdF9zdGF0ZSA9IGVudi5zdGF0ZVxuICBhbmQgaW5pdF9jdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyXG4gIGFuZCBpbml0X2x2YWwgPSBlbnYubHZhbFxuICBhbmQgaW5pdF9lcnJmbGFnID0gZW52LmVycmZsYWcgaW5cbiAgZW52LnN0YWNrYmFzZSA8LSBlbnYuc3AgKyAxO1xuICBlbnYuY3Vycl9jaGFyIDwtIHN0YXJ0O1xuICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gIHRyeVxuICAgIGxvb3AgU3RhcnQgKE9iai5yZXByICgpKVxuICB3aXRoIGV4biAtPlxuICAgIGxldCBjdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyIGluXG4gICAgZW52LmFzcCA8LSBpbml0X2FzcDtcbiAgICBlbnYuc3AgPC0gaW5pdF9zcDtcbiAgICBlbnYuc3RhY2tiYXNlIDwtIGluaXRfc3RhY2tiYXNlO1xuICAgIGVudi5zdGF0ZSA8LSBpbml0X3N0YXRlO1xuICAgIGVudi5jdXJyX2NoYXIgPC0gaW5pdF9jdXJyX2NoYXI7XG4gICAgZW52Lmx2YWwgPC0gaW5pdF9sdmFsO1xuICAgIGVudi5lcnJmbGFnIDwtIGluaXRfZXJyZmxhZztcbiAgICBtYXRjaCBleG4gd2l0aFxuICAgICAgWVlleGl0IHYgLT5cbiAgICAgICAgT2JqLm1hZ2ljIHZcbiAgICB8IF8gLT5cbiAgICAgICAgY3VycmVudF9sb29rYWhlYWRfZnVuIDo9XG4gICAgICAgICAgKGZ1biB0b2sgLT5cbiAgICAgICAgICAgIGlmIE9iai5pc19ibG9jayB0b2tcbiAgICAgICAgICAgIHRoZW4gdGFibGVzLnRyYW5zbF9ibG9jay4oT2JqLnRhZyB0b2spID0gY3Vycl9jaGFyXG4gICAgICAgICAgICBlbHNlIHRhYmxlcy50cmFuc2xfY29uc3QuKE9iai5tYWdpYyB0b2spID0gY3Vycl9jaGFyKTtcbiAgICAgICAgcmFpc2UgZXhuXG5cbmxldCBwZWVrX3ZhbCBlbnYgbiA9XG4gIE9iai5tYWdpYyBlbnYudl9zdGFjay4oZW52LmFzcCAtIG4pXG5cbmxldCBzeW1ib2xfc3RhcnRfcG9zICgpID1cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPD0gMCB0aGVuIGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgc3QgPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIGkgKyAxKSBpblxuICAgICAgbGV0IGVuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gaSArIDEpIGluXG4gICAgICBpZiBzdCA8PiBlbiB0aGVuIHN0IGVsc2UgbG9vcCAoaSAtIDEpXG4gICAgZW5kXG4gIGluXG4gIGxvb3AgZW52LnJ1bGVfbGVuXG5cbmxldCBzeW1ib2xfZW5kX3BvcyAoKSA9IGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbmxldCByaHNfc3RhcnRfcG9zIG4gPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIChlbnYucnVsZV9sZW4gLSBuKSlcbmxldCByaHNfZW5kX3BvcyBuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gKGVudi5ydWxlX2xlbiAtIG4pKVxuXG5sZXQgc3ltYm9sX3N0YXJ0ICgpID0gKHN5bWJvbF9zdGFydF9wb3MgKCkpLnBvc19jbnVtXG5sZXQgc3ltYm9sX2VuZCAoKSA9IChzeW1ib2xfZW5kX3BvcyAoKSkucG9zX2NudW1cbmxldCByaHNfc3RhcnQgbiA9IChyaHNfc3RhcnRfcG9zIG4pLnBvc19jbnVtXG5sZXQgcmhzX2VuZCBuID0gKHJoc19lbmRfcG9zIG4pLnBvc19jbnVtXG5cbmxldCBpc19jdXJyZW50X2xvb2thaGVhZCB0b2sgPVxuICAoIWN1cnJlbnRfbG9va2FoZWFkX2Z1bikoT2JqLnJlcHIgdG9rKVxuXG5sZXQgcGFyc2VfZXJyb3IgKF8gOiBzdHJpbmcpID0gKClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogU2V0cyBvdmVyIG9yZGVyZWQgdHlwZXMgKilcblxubW9kdWxlIHR5cGUgT3JkZXJlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUgZWx0XG4gICAgdHlwZSB0XG4gICAgdmFsIGVtcHR5OiB0XG4gICAgdmFsIGlzX2VtcHR5OiB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiBlbHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGFkZDogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCBzaW5nbGV0b246IGVsdCAtPiB0XG4gICAgdmFsIHJlbW92ZTogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCB1bmlvbjogdCAtPiB0IC0+IHRcbiAgICB2YWwgaW50ZXI6IHQgLT4gdCAtPiB0XG4gICAgdmFsIGRpc2pvaW50OiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBkaWZmOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBzdWJzZXQ6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChlbHQgLT4gdW5pdCkgLT4gdCAtPiB1bml0XG4gICAgdmFsIG1hcDogKGVsdCAtPiBlbHQpIC0+IHQgLT4gdFxuICAgIHZhbCBmb2xkOiAoZWx0IC0+ICdhIC0+ICdhKSAtPiB0IC0+ICdhIC0+ICdhXG4gICAgdmFsIGZvcl9hbGw6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGVsdCAtPiBib29sKSAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoZWx0IC0+IGVsdCBvcHRpb24pIC0+IHQgLT4gdFxuICAgIHZhbCBwYXJ0aXRpb246IChlbHQgLT4gYm9vbCkgLT4gdCAtPiB0ICogdFxuICAgIHZhbCBjYXJkaW5hbDogdCAtPiBpbnRcbiAgICB2YWwgZWxlbWVudHM6IHQgLT4gZWx0IGxpc3RcbiAgICB2YWwgbWluX2VsdDogdCAtPiBlbHRcbiAgICB2YWwgbWluX2VsdF9vcHQ6IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBtYXhfZWx0OiB0IC0+IGVsdFxuICAgIHZhbCBtYXhfZWx0X29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGNob29zZTogdCAtPiBlbHRcbiAgICB2YWwgY2hvb3NlX29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIHNwbGl0OiBlbHQgLT4gdCAtPiB0ICogYm9vbCAqIHRcbiAgICB2YWwgZmluZDogZWx0IC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfb3B0OiBlbHQgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfZmlyc3Q6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfbGFzdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBvZl9saXN0OiBlbHQgbGlzdCAtPiB0XG4gICAgdmFsIHRvX3NlcV9mcm9tIDogZWx0IC0+IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3NlcSA6IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiB0IC0+IGVsdCBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogZWx0IFNlcS50IC0+IHQgLT4gdFxuICAgIHZhbCBvZl9zZXEgOiBlbHQgU2VxLnQgLT4gdFxuICBlbmRcblxubW9kdWxlIE1ha2UoT3JkOiBPcmRlcmVkVHlwZSkgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGVsdCA9IE9yZC50XG4gICAgdHlwZSB0ID0gRW1wdHkgfCBOb2RlIG9mIHtsOnQ7IHY6ZWx0OyByOnQ7IGg6aW50fVxuXG4gICAgKCogU2V0cyBhcmUgcmVwcmVzZW50ZWQgYnkgYmFsYW5jZWQgYmluYXJ5IHRyZWVzICh0aGUgaGVpZ2h0cyBvZiB0aGVcbiAgICAgICBjaGlsZHJlbiBkaWZmZXIgYnkgYXQgbW9zdCAyICopXG5cbiAgICBsZXQgaGVpZ2h0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtofSAtPiBoXG5cbiAgICAoKiBDcmVhdGVzIGEgbmV3IG5vZGUgd2l0aCBsZWZ0IHNvbiBsLCB2YWx1ZSB2IGFuZCByaWdodCBzb24gci5cbiAgICAgICBXZSBtdXN0IGhhdmUgYWxsIGVsZW1lbnRzIG9mIGwgPCB2IDwgYWxsIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgbCBhbmQgciBtdXN0IGJlIGJhbGFuY2VkIGFuZCB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAyLlxuICAgICAgIElubGluZSBleHBhbnNpb24gb2YgaGVpZ2h0IGZvciBiZXR0ZXIgc3BlZWQuICopXG5cbiAgICBsZXQgY3JlYXRlIGwgdiByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBOb2Rle2w7IHY7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgICgqIFNhbWUgYXMgY3JlYXRlLCBidXQgcGVyZm9ybXMgb25lIHN0ZXAgb2YgcmViYWxhbmNpbmcgaWYgbmVjZXNzYXJ5LlxuICAgICAgIEFzc3VtZXMgbCBhbmQgciBiYWxhbmNlZCBhbmQgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMy5cbiAgICAgICBJbmxpbmUgZXhwYW5zaW9uIG9mIGNyZWF0ZSBmb3IgYmV0dGVyIHNwZWVkIGluIHRoZSBtb3N0IGZyZXF1ZW50IGNhc2VcbiAgICAgICB3aGVyZSBubyByZWJhbGFuY2luZyBpcyByZXF1aXJlZC4gKilcblxuICAgIGxldCBiYWwgbCB2IHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGlmIGhsID4gaHIgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9bGw7IHY9bHY7IHI9bHJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgbGwgPj0gaGVpZ2h0IGxyIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIGxsIGx2IChjcmVhdGUgbHIgdiByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgcj1scnJ9LT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGxsIGx2IGxybCkgbHJ2IChjcmVhdGUgbHJyIHYgcilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2UgaWYgaHIgPiBobCArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCByIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1ybDsgdj1ydjsgcj1ycn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCByciA+PSBoZWlnaHQgcmwgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHYgcmwpIHJ2IHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyByPXJscn0gLT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgdiBybGwpIHJsdiAoY3JlYXRlIHJsciBydiBycilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgTm9kZXtsOyB2OyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICAoKiBJbnNlcnRpb24gb2Ygb25lIGVsZW1lbnQgKilcblxuICAgIGxldCByZWMgYWRkIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdCBlbHNlXG4gICAgICAgICAgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gYWRkIHggbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHQgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gYWRkIHggciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHQgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgc2luZ2xldG9uIHggPSBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgKCogQmV3YXJlOiB0aG9zZSB0d28gZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZSBhZGRlZCB2IGlzICpzdHJpY3RseSpcbiAgICAgICBzbWFsbGVyIChvciBiaWdnZXIpIHRoYW4gYWxsIHRoZSBwcmVzZW50IGVsZW1lbnRzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGVsZW1lbnQuXG4gICAgICAgSW5kZWVkLCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBcImpvaW5cIiBvcGVyYXRpb24gd2hpY2hcbiAgICAgICByZXNwZWN0cyB0aGlzIHByZWNvbmRpdGlvbi5cbiAgICAqKVxuXG4gICAgbGV0IHJlYyBhZGRfbWluX2VsZW1lbnQgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiB4XG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgIGJhbCAoYWRkX21pbl9lbGVtZW50IHggbCkgdiByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfZWxlbWVudCB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgYmFsIGwgdiAoYWRkX21heF9lbGVtZW50IHggcilcblxuICAgICgqIFNhbWUgYXMgY3JlYXRlIGFuZCBiYWwsIGJ1dCBubyBhc3N1bXB0aW9ucyBhcmUgbWFkZSBvbiB0aGVcbiAgICAgICByZWxhdGl2ZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgcmVjIGpvaW4gbCB2IHIgPVxuICAgICAgbWF0Y2ggKGwsIHIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBhZGRfbWluX2VsZW1lbnQgdiByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9lbGVtZW50IHYgbFxuICAgICAgfCAoTm9kZXtsPWxsOyB2PWx2OyByPWxyOyBoPWxofSwgTm9kZXtsPXJsOyB2PXJ2OyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiAoam9pbiBsciB2IHIpIGVsc2VcbiAgICAgICAgICBpZiByaCA+IGxoICsgMiB0aGVuIGJhbCAoam9pbiBsIHYgcmwpIHJ2IHJyIGVsc2VcbiAgICAgICAgICBjcmVhdGUgbCB2IHJcblxuICAgICgqIFNtYWxsZXN0IGFuZCBncmVhdGVzdCBlbGVtZW50IG9mIGEgc2V0ICopXG5cbiAgICBsZXQgcmVjIG1pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyB2fSAtPiB2XG4gICAgICB8IE5vZGV7bH0gLT4gbWluX2VsdCBsXG5cbiAgICBsZXQgcmVjIG1pbl9lbHRfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHZ9IC0+IFNvbWUgdlxuICAgICAgfCBOb2Rle2x9IC0+IG1pbl9lbHRfb3B0IGxcblxuICAgIGxldCByZWMgbWF4X2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle3Y7IHI9RW1wdHl9IC0+IHZcbiAgICAgIHwgTm9kZXtyfSAtPiBtYXhfZWx0IHJcblxuICAgIGxldCByZWMgbWF4X2VsdF9vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7djsgcj1FbXB0eX0gLT4gU29tZSB2XG4gICAgICB8IE5vZGV7cn0gLT4gbWF4X2VsdF9vcHQgclxuXG4gICAgKCogUmVtb3ZlIHRoZSBzbWFsbGVzdCBlbGVtZW50IG9mIHRoZSBnaXZlbiBzZXQgKilcblxuICAgIGxldCByZWMgcmVtb3ZlX21pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5yZW1vdmVfbWluX2VsdFwiXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGJhbCAocmVtb3ZlX21pbl9lbHQgbCkgdiByXG5cbiAgICAoKiBNZXJnZSB0d28gdHJlZXMgbCBhbmQgciBpbnRvIG9uZS5cbiAgICAgICBBbGwgZWxlbWVudHMgb2YgbCBtdXN0IHByZWNlZGUgdGhlIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgQXNzdW1lIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDIuICopXG5cbiAgICBsZXQgbWVyZ2UgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiBiYWwgdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gam9pbiB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgKCogU3BsaXR0aW5nLiAgc3BsaXQgeCBzIHJldHVybnMgYSB0cmlwbGUgKGwsIHByZXNlbnQsIHIpIHdoZXJlXG4gICAgICAgIC0gbCBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPCB4XG4gICAgICAgIC0gciBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPiB4XG4gICAgICAgIC0gcHJlc2VudCBpcyBmYWxzZSBpZiBzIGNvbnRhaW5zIG5vIGVsZW1lbnQgZXF1YWwgdG8geCxcbiAgICAgICAgICBvciB0cnVlIGlmIHMgY29udGFpbnMgYW4gZWxlbWVudCBlcXVhbCB0byB4LiAqKVxuXG4gICAgbGV0IHJlYyBzcGxpdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAoRW1wdHksIGZhbHNlLCBFbXB0eSlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiAobCwgdHJ1ZSwgcilcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCAobGwsIHByZXMsIHJsKSA9IHNwbGl0IHggbCBpbiAobGwsIHByZXMsIGpvaW4gcmwgdiByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgbHIsIHByZXMsIHJyKVxuXG4gICAgKCogSW1wbGVtZW50YXRpb24gb2YgdGhlIHNldCBvcGVyYXRpb25zICopXG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBjID0gMCB8fCBtZW0geCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgcmVtb3ZlIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSBhcyB0KSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBtZXJnZSBsIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICAgIGxldCBsbCA9IHJlbW92ZSB4IGwgaW5cbiAgICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCByciA9IHJlbW92ZSB4IHIgaW5cbiAgICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgcmVjIHVuaW9uIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0MikgLT4gdDJcbiAgICAgIHwgKHQxLCBFbXB0eSkgLT4gdDFcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMTsgaD1oMX0sIE5vZGV7bD1sMjsgdj12Mjsgcj1yMjsgaD1oMn0pIC0+XG4gICAgICAgICAgaWYgaDEgPj0gaDIgdGhlblxuICAgICAgICAgICAgaWYgaDIgPSAxIHRoZW4gYWRkIHYyIHMxIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbGV0IChsMiwgXywgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgICAgam9pbiAodW5pb24gbDEgbDIpIHYxICh1bmlvbiByMSByMilcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGlmIGgxID0gMSB0aGVuIGFkZCB2MSBzMiBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIGxldCAobDEsIF8sIHIxKSA9IHNwbGl0IHYyIHMxIGluXG4gICAgICAgICAgICAgIGpvaW4gKHVuaW9uIGwxIGwyKSB2MiAodW5pb24gcjEgcjIpXG4gICAgICAgICAgICBlbmRcblxuICAgIGxldCByZWMgaW50ZXIgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8IChfLCBFbXB0eSkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIG1hdGNoIHNwbGl0IHYxIHQyIHdpdGhcbiAgICAgICAgICAgIChsMiwgZmFsc2UsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGludGVyIGwxIGwyKSAoaW50ZXIgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBqb2luIChpbnRlciBsMSBsMikgdjEgKGludGVyIHIxIHIyKVxuXG4gICAgKCogU2FtZSBhcyBzcGxpdCwgYnV0IGNvbXB1dGUgdGhlIGxlZnQgYW5kIHJpZ2h0IHN1YnRyZWVzXG4gICAgICAgb25seSBpZiB0aGUgcGl2b3QgZWxlbWVudCBpcyBub3QgaW4gdGhlIHNldC4gIFRoZSByaWdodCBzdWJ0cmVlXG4gICAgICAgaXMgY29tcHV0ZWQgb24gZGVtYW5kLiAqKVxuXG4gICAgdHlwZSBzcGxpdF9iaXMgPVxuICAgICAgfCBGb3VuZFxuICAgICAgfCBOb3RGb3VuZCBvZiB0ICogKHVuaXQgLT4gdClcblxuICAgIGxldCByZWMgc3BsaXRfYmlzIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vdEZvdW5kIChFbXB0eSwgKGZ1biAoKSAtPiBFbXB0eSkpXG4gICAgICB8IE5vZGV7bDsgdjsgcjsgX30gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gRm91bmRcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIG1hdGNoIHNwbGl0X2JpcyB4IGwgd2l0aFxuICAgICAgICAgICAgfCBGb3VuZCAtPiBGb3VuZFxuICAgICAgICAgICAgfCBOb3RGb3VuZCAobGwsIHJsKSAtPiBOb3RGb3VuZCAobGwsIChmdW4gKCkgLT4gam9pbiAocmwgKCkpIHYgcikpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWF0Y2ggc3BsaXRfYmlzIHggciB3aXRoXG4gICAgICAgICAgICB8IEZvdW5kIC0+IEZvdW5kXG4gICAgICAgICAgICB8IE5vdEZvdW5kIChsciwgcnIpIC0+IE5vdEZvdW5kIChqb2luIGwgdiBsciwgcnIpXG5cbiAgICBsZXQgcmVjIGRpc2pvaW50IHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSB8IChfLCBFbXB0eSkgLT4gdHJ1ZVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgaWYgczEgPT0gczIgdGhlbiBmYWxzZVxuICAgICAgICAgIGVsc2UgbWF0Y2ggc3BsaXRfYmlzIHYxIHQyIHdpdGhcbiAgICAgICAgICAgICAgTm90Rm91bmQobDIsIHIyKSAtPiBkaXNqb2ludCBsMSBsMiAmJiBkaXNqb2ludCByMSAocjIgKCkpXG4gICAgICAgICAgICB8IEZvdW5kIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVjIGRpZmYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8ICh0MSwgRW1wdHkpIC0+IHQxXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBtYXRjaCBzcGxpdCB2MSB0MiB3aXRoXG4gICAgICAgICAgICAobDIsIGZhbHNlLCByMikgLT5cbiAgICAgICAgICAgICAgam9pbiAoZGlmZiBsMSBsMikgdjEgKGRpZmYgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGRpZmYgbDEgbDIpIChkaWZmIHIxIHIyKVxuXG4gICAgdHlwZSBlbnVtZXJhdGlvbiA9IEVuZCB8IE1vcmUgb2YgZWx0ICogdCAqIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBjb25zX2VudW0gbCAoTW9yZSh2LCByLCBlKSlcblxuICAgIGxldCByZWMgY29tcGFyZV9hdXggZTEgZTIgPVxuICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgfCAoRW5kLCBfKSAgLT4gLTFcbiAgICAgIHwgKF8sIEVuZCkgLT4gMVxuICAgICAgfCAoTW9yZSh2MSwgcjEsIGUxKSwgTW9yZSh2MiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgaWYgYyA8PiAwXG4gICAgICAgICAgdGhlbiBjXG4gICAgICAgICAgZWxzZSBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuXG4gICAgbGV0IGNvbXBhcmUgczEgczIgPVxuICAgICAgY29tcGFyZV9hdXggKGNvbnNfZW51bSBzMSBFbmQpIChjb25zX2VudW0gczIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIHMxIHMyID1cbiAgICAgIGNvbXBhcmUgczEgczIgPSAwXG5cbiAgICBsZXQgcmVjIHN1YnNldCBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIEVtcHR5LCBfIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBfLCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IE5vZGUge2w9bDE7IHY9djE7IHI9cjF9LCAoTm9kZSB7bD1sMjsgdj12Mjsgcj1yMn0gYXMgdDIpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCBsMSBsMiAmJiBzdWJzZXQgcjEgcjJcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCAoTm9kZSB7bD1sMTsgdj12MTsgcj1FbXB0eTsgaD0wfSkgbDIgJiYgc3Vic2V0IHIxIHQyXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3Vic2V0IChOb2RlIHtsPUVtcHR5OyB2PXYxOyByPXIxOyBoPTB9KSByMiAmJiBzdWJzZXQgbDEgdDJcblxuICAgIGxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBpdGVyIGYgbDsgZiB2OyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBmb2xkIGYgcyBhY2N1ID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gZm9sZCBmIHIgKGYgdiAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBwIHYgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHAgdiB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSkgYXMgdCAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyIHAgbCBpblxuICAgICAgICAgIGxldCBwdiA9IHAgdiBpblxuICAgICAgICAgIGxldCByJyA9IGZpbHRlciBwIHIgaW5cbiAgICAgICAgICBpZiBwdiB0aGVuXG4gICAgICAgICAgICBpZiBsPT1sJyAmJiByPT1yJyB0aGVuIHQgZWxzZSBqb2luIGwnIHYgcidcbiAgICAgICAgICBlbHNlIGNvbmNhdCBsJyByJ1xuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCAobHQsIGxmKSA9IHBhcnRpdGlvbiBwIGwgaW5cbiAgICAgICAgICBsZXQgcHYgPSBwIHYgaW5cbiAgICAgICAgICBsZXQgKHJ0LCByZikgPSBwYXJ0aXRpb24gcCByIGluXG4gICAgICAgICAgaWYgcHZcbiAgICAgICAgICB0aGVuIChqb2luIGx0IHYgcnQsIGNvbmNhdCBsZiByZilcbiAgICAgICAgICBlbHNlIChjb25jYXQgbHQgcnQsIGpvaW4gbGYgdiByZilcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGV7bDsgcn0gLT4gY2FyZGluYWwgbCArIDEgKyBjYXJkaW5hbCByXG5cbiAgICBsZXQgcmVjIGVsZW1lbnRzX2F1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGVsZW1lbnRzX2F1eCAodiA6OiBlbGVtZW50c19hdXggYWNjdSByKSBsXG5cbiAgICBsZXQgZWxlbWVudHMgcyA9XG4gICAgICBlbGVtZW50c19hdXggW10gc1xuXG4gICAgbGV0IGNob29zZSA9IG1pbl9lbHRcblxuICAgIGxldCBjaG9vc2Vfb3B0ID0gbWluX2VsdF9vcHRcblxuICAgIGxldCByZWMgZmluZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdlxuICAgICAgICAgIGVsc2UgZmluZCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdjAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3RfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdjAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX29wdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFNvbWUgdlxuICAgICAgICAgIGVsc2UgZmluZF9vcHQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCB0cnlfam9pbiBsIHYgciA9XG4gICAgICAoKiBbam9pbiBsIHYgcl0gY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gKGVsZW1lbnRzIG9mIGwgPCB2IDxcbiAgICAgICAgIGVsZW1lbnRzIG9mIHIpOyB1c2UgW3RyeV9qb2luIGwgdiByXSB3aGVuIHRoaXMgcHJvcGVydHkgbWF5XG4gICAgICAgICBub3QgaG9sZCwgYnV0IHlvdSBob3BlIGl0IGRvZXMgaG9sZCBpbiB0aGUgY29tbW9uIGNhc2UgKilcbiAgICAgIGlmIChsID0gRW1wdHkgfHwgT3JkLmNvbXBhcmUgKG1heF9lbHQgbCkgdiA8IDApXG4gICAgICAmJiAociA9IEVtcHR5IHx8IE9yZC5jb21wYXJlIHYgKG1pbl9lbHQgcikgPCAwKVxuICAgICAgdGhlbiBqb2luIGwgdiByXG4gICAgICBlbHNlIHVuaW9uIGwgKGFkZCB2IHIpXG5cbiAgICBsZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gbWFwIGYgbCBpblxuICAgICAgICAgbGV0IHYnID0gZiB2IGluXG4gICAgICAgICBsZXQgcicgPSBtYXAgZiByIGluXG4gICAgICAgICBpZiBsID09IGwnICYmIHYgPT0gdicgJiYgciA9PSByJyB0aGVuIHRcbiAgICAgICAgIGVsc2UgdHJ5X2pvaW4gbCcgdicgcidcblxuICAgIGxldCB0cnlfY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gdHJ5X2pvaW4gdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gZmlsdGVyX21hcCBmIGwgaW5cbiAgICAgICAgIGxldCB2JyA9IGYgdiBpblxuICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgIGJlZ2luIG1hdGNoIHYnIHdpdGhcbiAgICAgICAgICAgfCBTb21lIHYnIC0+XG4gICAgICAgICAgICAgIGlmIGwgPT0gbCcgJiYgdiA9PSB2JyAmJiByID09IHInIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIHRyeV9qb2luIGwnIHYnIHInXG4gICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICB0cnlfY29uY2F0IGwnIHInXG4gICAgICAgICBlbmRcblxuICAgIGxldCBvZl9zb3J0ZWRfbGlzdCBsID1cbiAgICAgIGxldCByZWMgc3ViIG4gbCA9XG4gICAgICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgICAgICB8IDAsIGwgLT4gRW1wdHksIGxcbiAgICAgICAgfCAxLCB4MCA6OiBsIC0+IE5vZGUge2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX0sIGxcbiAgICAgICAgfCAyLCB4MCA6OiB4MSA6OiBsIC0+XG4gICAgICAgICAgICBOb2Rle2w9Tm9kZXtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9OyB2PXgxOyByPUVtcHR5OyBoPTJ9LCBsXG4gICAgICAgIHwgMywgeDAgOjogeDEgOjogeDIgOjogbCAtPlxuICAgICAgICAgICAgTm9kZXtsPU5vZGV7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfTsgdj14MTtcbiAgICAgICAgICAgICAgICAgcj1Ob2Rle2w9RW1wdHk7IHY9eDI7IHI9RW1wdHk7IGg9MX07IGg9Mn0sIGxcbiAgICAgICAgfCBuLCBsIC0+XG4gICAgICAgICAgbGV0IG5sID0gbiAvIDIgaW5cbiAgICAgICAgICBsZXQgbGVmdCwgbCA9IHN1YiBubCBsIGluXG4gICAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgfCBbXSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgICAgICB8IG1pZCA6OiBsIC0+XG4gICAgICAgICAgICBsZXQgcmlnaHQsIGwgPSBzdWIgKG4gLSBubCAtIDEpIGwgaW5cbiAgICAgICAgICAgIGNyZWF0ZSBsZWZ0IG1pZCByaWdodCwgbFxuICAgICAgaW5cbiAgICAgIGZzdCAoc3ViIChMaXN0Lmxlbmd0aCBsKSBsKVxuXG4gICAgbGV0IG9mX2xpc3QgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gZW1wdHlcbiAgICAgIHwgW3gwXSAtPiBzaW5nbGV0b24geDBcbiAgICAgIHwgW3gwOyB4MV0gLT4gYWRkIHgxIChzaW5nbGV0b24geDApXG4gICAgICB8IFt4MDsgeDE7IHgyXSAtPiBhZGQgeDIgKGFkZCB4MSAoc2luZ2xldG9uIHgwKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzXSAtPiBhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzOyB4NF0gLT4gYWRkIHg0IChhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSkpXG4gICAgICB8IF8gLT4gb2Zfc29ydGVkX2xpc3QgKExpc3Quc29ydF91bmlxIE9yZC5jb21wYXJlIGwpXG5cbiAgICBsZXQgYWRkX3NlcSBpIG0gPVxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIHMgeCAtPiBhZGQgeCBzKSBtIGlcblxuICAgIGxldCBvZl9zZXEgaSA9IGFkZF9zZXEgaSBlbXB0eVxuXG4gICAgbGV0IHJlYyBzZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgYyA9IHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHJlYyBzbm9jX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gc25vY19lbnVtIHIgKE1vcmUodiwgbCwgZSkpXG5cbiAgICBsZXQgcmVjIHJldl9zZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fcmV2X3NlcSBjID0gcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHRvX3NlcV9mcm9tIGxvdyBzID1cbiAgICAgIGxldCByZWMgYXV4IGxvdyBzIGMgPSBtYXRjaCBzIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBjXG4gICAgICAgIHwgTm9kZSB7bDsgcjsgdjsgX30gLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIE9yZC5jb21wYXJlIHYgbG93IHdpdGhcbiAgICAgICAgICAgICAgfCAwIC0+IE1vcmUgKHYsIHIsIGMpXG4gICAgICAgICAgICAgIHwgbiB3aGVuIG48MCAtPiBhdXggbG93IHIgY1xuICAgICAgICAgICAgICB8IF8gLT4gYXV4IGxvdyBsIChNb3JlICh2LCByLCBjKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIHNlcV9vZl9lbnVtXyAoYXV4IGxvdyBzIEVuZClcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm1vZHVsZSB0eXBlIE9yZGVyZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISsnYSB0XG4gICAgdmFsIGVtcHR5OiAnYSB0XG4gICAgdmFsIGlzX2VtcHR5OiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiAga2V5IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBhZGQ6IGtleSAtPiAnYSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgdXBkYXRlOiBrZXkgLT4gKCdhIG9wdGlvbiAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBzaW5nbGV0b246IGtleSAtPiAnYSAtPiAnYSB0XG4gICAgdmFsIHJlbW92ZToga2V5IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBtZXJnZTpcbiAgICAgICAgICAoa2V5IC0+ICdhIG9wdGlvbiAtPiAnYiBvcHRpb24gLT4gJ2Mgb3B0aW9uKSAtPiAnYSB0IC0+ICdiIHQgLT4gJ2MgdFxuICAgIHZhbCB1bmlvbjogKGtleSAtPiAnYSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGNvbXBhcmU6ICgnYSAtPiAnYSAtPiBpbnQpIC0+ICdhIHQgLT4gJ2EgdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGZvcl9hbGw6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoa2V5IC0+ICdhIC0+ICdiIG9wdGlvbikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIHBhcnRpdGlvbjogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgKiAnYSB0XG4gICAgdmFsIGNhcmRpbmFsOiAnYSB0IC0+IGludFxuICAgIHZhbCBiaW5kaW5nczogJ2EgdCAtPiAoa2V5ICogJ2EpIGxpc3RcbiAgICB2YWwgbWluX2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtaW5fYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWF4X2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtYXhfYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgY2hvb3NlOiAnYSB0IC0+IChrZXkgKiAnYSlcbiAgICB2YWwgY2hvb3NlX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBzcGxpdDoga2V5IC0+ICdhIHQgLT4gJ2EgdCAqICdhIG9wdGlvbiAqICdhIHRcbiAgICB2YWwgZmluZDoga2V5IC0+ICdhIHQgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6IGtleSAtPiAnYSB0IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2ZpcnN0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4ga2V5ICogJ2FcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBmaW5kX2xhc3Q6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiBrZXkgKiAnYVxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWFwOiAoJ2EgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCBtYXBpOiAoa2V5IC0+ICdhIC0+ICdiKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2Zyb20gOiBrZXkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKE9yZDogT3JkZXJlZFR5cGUpID0gc3RydWN0XG5cbiAgICB0eXBlIGtleSA9IE9yZC50XG5cbiAgICB0eXBlICdhIHQgPVxuICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIG9mIHtsOidhIHQ7IHY6a2V5OyBkOidhOyByOidhIHQ7IGg6aW50fVxuXG4gICAgbGV0IGhlaWdodCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7aH0gLT4gaFxuXG4gICAgbGV0IGNyZWF0ZSBsIHggZCByID1cbiAgICAgIGxldCBobCA9IGhlaWdodCBsIGFuZCBociA9IGhlaWdodCByIGluXG4gICAgICBOb2Rle2w7IHY9eDsgZDsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgbGV0IHNpbmdsZXRvbiB4IGQgPSBOb2Rle2w9RW1wdHk7IHY9eDsgZDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgbGV0IGJhbCBsIHggZCByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBpZiBobCA+IGhyICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPWxsOyB2PWx2OyBkPWxkOyByPWxyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IGxsID49IGhlaWdodCBsciB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSBsbCBsdiBsZCAoY3JlYXRlIGxyIHggZCByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgZD1scmQ7IHI9bHJyfS0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsbCBsdiBsZCBscmwpIGxydiBscmQgKGNyZWF0ZSBscnIgeCBkIHIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlIGlmIGhyID4gaGwgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggciB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9cmw7IHY9cnY7IGQ9cmQ7IHI9cnJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgcnIgPj0gaGVpZ2h0IHJsIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB4IGQgcmwpIHJ2IHJkIHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyBkPXJsZDsgcj1ybHJ9IC0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHggZCBybGwpIHJsdiBybGQgKGNyZWF0ZSBybHIgcnYgcmQgcnIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIE5vZGV7bDsgdj14OyBkOyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgYWRkIHggZGF0YSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9kZXtsPUVtcHR5OyB2PXg7IGQ9ZGF0YTsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSBhcyBtIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBpZiBkID09IGRhdGEgdGhlbiBtIGVsc2UgTm9kZXtsOyB2PXg7IGQ9ZGF0YTsgcjsgaH1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IGFkZCB4IGRhdGEgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSBhZGQgeCBkYXRhIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGZpbmQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIGRcbiAgICAgICAgICBlbHNlIGZpbmQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYwIGQwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHRfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZDAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9sYXN0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYwIGQwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBTb21lIGRcbiAgICAgICAgICBlbHNlIGZpbmRfb3B0IHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1lbSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgYyA9IDAgfHwgbWVtIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w9RW1wdHk7IHY7IGR9IC0+ICh2LCBkKVxuICAgICAgfCBOb2RlIHtsfSAtPiBtaW5fYmluZGluZyBsXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nX29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgdjsgZH0gLT4gU29tZSAodiwgZClcbiAgICAgIHwgTm9kZSB7bH0tPiBtaW5fYmluZGluZ19vcHQgbFxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHt2OyBkOyByPUVtcHR5fSAtPiAodiwgZClcbiAgICAgIHwgTm9kZSB7cn0gLT4gbWF4X2JpbmRpbmcgclxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZ19vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGUge3Y7IGQ7IHI9RW1wdHl9IC0+IFNvbWUgKHYsIGQpXG4gICAgICB8IE5vZGUge3J9IC0+IG1heF9iaW5kaW5nX29wdCByXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9taW5fYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLnJlbW92ZV9taW5fZWx0XCJcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBiYWwgKHJlbW92ZV9taW5fYmluZGluZyBsKSB2IGQgclxuXG4gICAgbGV0IG1lcmdlIHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBiYWwgdDEgeCBkIChyZW1vdmVfbWluX2JpbmRpbmcgdDIpXG5cbiAgICBsZXQgcmVjIHJlbW92ZSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCAoTm9kZSB7bDsgdjsgZDsgcn0gYXMgbSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gbWVyZ2UgbCByXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSByZW1vdmUgeCBsIGluIGlmIGwgPT0gbGwgdGhlbiBtIGVsc2UgYmFsIGxsIHYgZCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gcmVtb3ZlIHggciBpbiBpZiByID09IHJyIHRoZW4gbSBlbHNlIGJhbCBsIHYgZCByclxuXG4gICAgbGV0IHJlYyB1cGRhdGUgeCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmIE5vbmUgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBFbXB0eVxuICAgICAgICAgIHwgU29tZSBkYXRhIC0+IE5vZGV7bD1FbXB0eTsgdj14OyBkPWRhdGE7IHI9RW1wdHk7IGg9MX1cbiAgICAgICAgICBlbmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gYXMgbSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBiZWdpblxuICAgICAgICAgICAgbWF0Y2ggZiAoU29tZSBkKSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gbWVyZ2UgbCByXG4gICAgICAgICAgICB8IFNvbWUgZGF0YSAtPlxuICAgICAgICAgICAgICAgIGlmIGQgPT0gZGF0YSB0aGVuIG0gZWxzZSBOb2Rle2w7IHY9eDsgZD1kYXRhOyByOyBofVxuICAgICAgICAgIGVuZCBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IHVwZGF0ZSB4IGYgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSB1cGRhdGUgeCBmIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaXRlciBmIGw7IGYgdiBkOyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBtYXAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gLT5cbiAgICAgICAgICBsZXQgbCcgPSBtYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiBkIGluXG4gICAgICAgICAgbGV0IHInID0gbWFwIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgbWFwaSBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSAtPlxuICAgICAgICAgIGxldCBsJyA9IG1hcGkgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBtYXBpIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgZm9sZCBmIG0gYWNjdSA9XG4gICAgICBtYXRjaCBtIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGZvbGQgZiByIChmIHYgZCAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gcCB2IGQgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBwIHYgZCB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgICgqIEJld2FyZTogdGhvc2UgdHdvIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCB0aGUgYWRkZWQgayBpcyAqc3RyaWN0bHkqXG4gICAgICAgc21hbGxlciAob3IgYmlnZ2VyKSB0aGFuIGFsbCB0aGUgcHJlc2VudCBrZXlzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGtleS5cblxuICAgICAgIEluZGVlZCwgdGhleSBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgXCJqb2luXCIgb3BlcmF0aW9uIHdoaWNoXG4gICAgICAgcmVzcGVjdHMgdGhpcyBwcmVjb25kaXRpb24uXG4gICAgKilcblxuICAgIGxldCByZWMgYWRkX21pbl9iaW5kaW5nIGsgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiBrIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgYmFsIChhZGRfbWluX2JpbmRpbmcgayB4IGwpIHYgZCByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfYmluZGluZyBrIHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24gayB4XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgIGJhbCBsIHYgZCAoYWRkX21heF9iaW5kaW5nIGsgeCByKVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUgYW5kIGJhbCwgYnV0IG5vIGFzc3VtcHRpb25zIGFyZSBtYWRlIG9uIHRoZVxuICAgICAgIHJlbGF0aXZlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCByZWMgam9pbiBsIHYgZCByID1cbiAgICAgIG1hdGNoIChsLCByKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gYWRkX21pbl9iaW5kaW5nIHYgZCByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9iaW5kaW5nIHYgZCBsXG4gICAgICB8IChOb2Rle2w9bGw7IHY9bHY7IGQ9bGQ7IHI9bHI7IGg9bGh9LFxuICAgICAgICAgTm9kZXtsPXJsOyB2PXJ2OyBkPXJkOyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiBsZCAoam9pbiBsciB2IGQgcikgZWxzZVxuICAgICAgICAgIGlmIHJoID4gbGggKyAyIHRoZW4gYmFsIChqb2luIGwgdiBkIHJsKSBydiByZCByciBlbHNlXG4gICAgICAgICAgY3JlYXRlIGwgdiBkIHJcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBqb2luIHQxIHggZCAocmVtb3ZlX21pbl9iaW5kaW5nIHQyKVxuXG4gICAgbGV0IGNvbmNhdF9vcl9qb2luIHQxIHYgZCB0MiA9XG4gICAgICBtYXRjaCBkIHdpdGhcbiAgICAgIHwgU29tZSBkIC0+IGpvaW4gdDEgdiBkIHQyXG4gICAgICB8IE5vbmUgLT4gY29uY2F0IHQxIHQyXG5cbiAgICBsZXQgcmVjIHNwbGl0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIChFbXB0eSwgTm9uZSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIChsLCBTb21lIGQsIHIpXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgKGxsLCBwcmVzLCBybCkgPSBzcGxpdCB4IGwgaW4gKGxsLCBwcmVzLCBqb2luIHJsIHYgZCByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgZCBsciwgcHJlcywgcnIpXG5cbiAgICBsZXQgcmVjIG1lcmdlIGYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIEVtcHR5KSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sIF8pIHdoZW4gaDEgPj0gaGVpZ2h0IHMyIC0+XG4gICAgICAgICAgbGV0IChsMiwgZDIsIHIyKSA9IHNwbGl0IHYxIHMyIGluXG4gICAgICAgICAgY29uY2F0X29yX2pvaW4gKG1lcmdlIGYgbDEgbDIpIHYxIChmIHYxIChTb21lIGQxKSBkMikgKG1lcmdlIGYgcjEgcjIpXG4gICAgICB8IChfLCBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyfSkgLT5cbiAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICBjb25jYXRfb3Jfam9pbiAobWVyZ2UgZiBsMSBsMikgdjIgKGYgdjIgZDEgKFNvbWUgZDIpKSAobWVyZ2UgZiByMSByMilcbiAgICAgIHwgXyAtPlxuICAgICAgICAgIGFzc2VydCBmYWxzZVxuXG4gICAgbGV0IHJlYyB1bmlvbiBmIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgIHwgKEVtcHR5LCBzKSB8IChzLCBFbXB0eSkgLT4gc1xuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sXG4gICAgICAgICBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyOyBoPWgyfSkgLT5cbiAgICAgICAgICBpZiBoMSA+PSBoMiB0aGVuXG4gICAgICAgICAgICBsZXQgKGwyLCBkMiwgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQyIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjEgZDEgclxuICAgICAgICAgICAgfCBTb21lIGQyIC0+IGNvbmNhdF9vcl9qb2luIGwgdjEgKGYgdjEgZDEgZDIpIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQxIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjIgZDIgclxuICAgICAgICAgICAgfCBTb21lIGQxIC0+IGNvbmNhdF9vcl9qb2luIGwgdjIgKGYgdjIgZDEgZDIpIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSBhcyBtIC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXIgcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyIHAgciBpblxuICAgICAgICAgIGlmIHB2ZCB0aGVuIGlmIGw9PWwnICYmIHI9PXInIHRoZW4gbSBlbHNlIGpvaW4gbCcgdiBkIHInXG4gICAgICAgICAgZWxzZSBjb25jYXQgbCcgcidcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtmXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlcl9tYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGZ2ZCA9IGYgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmdmQgd2l0aFxuICAgICAgICAgICAgfCBTb21lIGQnIC0+IGpvaW4gbCcgdiBkJyByJ1xuICAgICAgICAgICAgfCBOb25lIC0+IGNvbmNhdCBsJyByJ1xuICAgICAgICAgIGVuZFxuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgKGx0LCBsZikgPSBwYXJ0aXRpb24gcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IChydCwgcmYpID0gcGFydGl0aW9uIHAgciBpblxuICAgICAgICAgIGlmIHB2ZFxuICAgICAgICAgIHRoZW4gKGpvaW4gbHQgdiBkIHJ0LCBjb25jYXQgbGYgcmYpXG4gICAgICAgICAgZWxzZSAoY29uY2F0IGx0IHJ0LCBqb2luIGxmIHYgZCByZilcblxuICAgIHR5cGUgJ2EgZW51bWVyYXRpb24gPSBFbmQgfCBNb3JlIG9mIGtleSAqICdhICogJ2EgdCAqICdhIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBtIGUgPVxuICAgICAgbWF0Y2ggbSB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gY29uc19lbnVtIGwgKE1vcmUodiwgZCwgciwgZSkpXG5cbiAgICBsZXQgY29tcGFyZSBjbXAgbTEgbTIgPVxuICAgICAgbGV0IHJlYyBjb21wYXJlX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgICB8IChFbmQsIF8pICAtPiAtMVxuICAgICAgICB8IChfLCBFbmQpIC0+IDFcbiAgICAgICAgfCAoTW9yZSh2MSwgZDEsIHIxLCBlMSksIE1vcmUodjIsIGQyLCByMiwgZTIpKSAtPlxuICAgICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCBkMSBkMiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gY29tcGFyZV9hdXggKGNvbnNfZW51bSBtMSBFbmQpIChjb25zX2VudW0gbTIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIGNtcCBtMSBtMiA9XG4gICAgICBsZXQgcmVjIGVxdWFsX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gdHJ1ZVxuICAgICAgICB8IChFbmQsIF8pICAtPiBmYWxzZVxuICAgICAgICB8IChfLCBFbmQpIC0+IGZhbHNlXG4gICAgICAgIHwgKE1vcmUodjEsIGQxLCByMSwgZTEpLCBNb3JlKHYyLCBkMiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICAgIE9yZC5jb21wYXJlIHYxIHYyID0gMCAmJiBjbXAgZDEgZDIgJiZcbiAgICAgICAgICAgIGVxdWFsX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gZXF1YWxfYXV4IChjb25zX2VudW0gbTEgRW5kKSAoY29uc19lbnVtIG0yIEVuZClcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2w7IHJ9IC0+IGNhcmRpbmFsIGwgKyAxICsgY2FyZGluYWwgclxuXG4gICAgbGV0IHJlYyBiaW5kaW5nc19hdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gYmluZGluZ3NfYXV4ICgodiwgZCkgOjogYmluZGluZ3NfYXV4IGFjY3UgcikgbFxuXG4gICAgbGV0IGJpbmRpbmdzIHMgPVxuICAgICAgYmluZGluZ3NfYXV4IFtdIHNcblxuICAgIGxldCBjaG9vc2UgPSBtaW5fYmluZGluZ1xuXG4gICAgbGV0IGNob29zZV9vcHQgPSBtaW5fYmluZGluZ19vcHRcblxuICAgIGxldCBhZGRfc2VxIGkgbSA9XG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gbSAoayx2KSAtPiBhZGQgayB2IG0pIG0gaVxuXG4gICAgbGV0IG9mX3NlcSBpID0gYWRkX3NlcSBpIGVtcHR5XG5cbiAgICBsZXQgcmVjIHNlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKGssdix0LHJlc3QpIC0+IFNlcS5Db25zICgoayx2KSwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgbSA9XG4gICAgICBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSBtIEVuZClcblxuICAgIGxldCByZWMgc25vY19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IGQ7IHJ9IC0+IHNub2NfZW51bSByIChNb3JlKHYsIGQsIGwsIGUpKVxuXG4gICAgbGV0IHJlYyByZXZfc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoayx2LHQscmVzdCkgLT5cbiAgICAgICAgICBTZXEuQ29ucyAoKGssdiksIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3Jldl9zZXEgYyA9XG4gICAgICByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgdG9fc2VxX2Zyb20gbG93IG0gPVxuICAgICAgbGV0IHJlYyBhdXggbG93IG0gYyA9IG1hdGNoIG0gd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGNcbiAgICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBffSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggT3JkLmNvbXBhcmUgdiBsb3cgd2l0aFxuICAgICAgICAgICAgICB8IDAgLT4gTW9yZSAodiwgZCwgciwgYylcbiAgICAgICAgICAgICAgfCBuIHdoZW4gbjwwIC0+IGF1eCBsb3cgciBjXG4gICAgICAgICAgICAgIHwgXyAtPiBhdXggbG93IGwgKE1vcmUgKHYsIGQsIHIsIGMpKVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgc2VxX29mX2VudW1fIChhdXggbG93IG0gRW5kKVxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9IHsgbXV0YWJsZSBjIDogJ2EgbGlzdDsgbXV0YWJsZSBsZW4gOiBpbnQ7IH1cblxuZXhjZXB0aW9uIEVtcHR5XG5cbmxldCBjcmVhdGUgKCkgPSB7IGMgPSBbXTsgbGVuID0gMDsgfVxuXG5sZXQgY2xlYXIgcyA9IHMuYyA8LSBbXTsgcy5sZW4gPC0gMFxuXG5sZXQgY29weSBzID0geyBjID0gcy5jOyBsZW4gPSBzLmxlbjsgfVxuXG5sZXQgcHVzaCB4IHMgPSBzLmMgPC0geCA6OiBzLmM7IHMubGVuIDwtIHMubGVuICsgMVxuXG5sZXQgcG9wIHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjp0bCAtPiBzLmMgPC0gdGw7IHMubGVuIDwtIHMubGVuIC0gMTsgaGRcbiAgfCBbXSAgICAgLT4gcmFpc2UgRW1wdHlcblxubGV0IHBvcF9vcHQgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6OnRsIC0+IHMuYyA8LSB0bDsgcy5sZW4gPC0gcy5sZW4gLSAxOyBTb21lIGhkXG4gIHwgW10gICAgIC0+IE5vbmVcblxubGV0IHRvcCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6XyAtPiBoZFxuICB8IFtdICAgIC0+IHJhaXNlIEVtcHR5XG5cbmxldCB0b3Bfb3B0IHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjpfIC0+IFNvbWUgaGRcbiAgfCBbXSAgICAtPiBOb25lXG5cbmxldCBpc19lbXB0eSBzID0gKHMuYyA9IFtdKVxuXG5sZXQgbGVuZ3RoIHMgPSBzLmxlblxuXG5sZXQgaXRlciBmIHMgPSBMaXN0Lml0ZXIgZiBzLmNcblxubGV0IGZvbGQgZiBhY2MgcyA9IExpc3QuZm9sZF9sZWZ0IGYgYWNjIHMuY1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPSBMaXN0LnRvX3NlcSBzLmNcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBzID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBzIGc7XG4gIHNcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRnJhbmNvaXMgUG90dGllciwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgSmVyZW1pZSBEaW1pbm8sIEphbmUgU3RyZWV0IEV1cm9wZSAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXhjZXB0aW9uIEVtcHR5XG5cbnR5cGUgJ2EgY2VsbCA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiB7IGNvbnRlbnQ6ICdhOyBtdXRhYmxlIG5leHQ6ICdhIGNlbGwgfVxuXG50eXBlICdhIHQgPSB7XG4gIG11dGFibGUgbGVuZ3RoOiBpbnQ7XG4gIG11dGFibGUgZmlyc3Q6ICdhIGNlbGw7XG4gIG11dGFibGUgbGFzdDogJ2EgY2VsbFxufVxuXG5sZXQgY3JlYXRlICgpID0ge1xuICBsZW5ndGggPSAwO1xuICBmaXJzdCA9IE5pbDtcbiAgbGFzdCA9IE5pbFxufVxuXG5sZXQgY2xlYXIgcSA9XG4gIHEubGVuZ3RoIDwtIDA7XG4gIHEuZmlyc3QgPC0gTmlsO1xuICBxLmxhc3QgPC0gTmlsXG5cbmxldCBhZGQgeCBxID1cbiAgbGV0IGNlbGwgPSBDb25zIHtcbiAgICBjb250ZW50ID0geDtcbiAgICBuZXh0ID0gTmlsXG4gIH0gaW5cbiAgbWF0Y2ggcS5sYXN0IHdpdGhcbiAgfCBOaWwgLT5cbiAgICBxLmxlbmd0aCA8LSAxO1xuICAgIHEuZmlyc3QgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuICB8IENvbnMgbGFzdCAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoICsgMTtcbiAgICBsYXN0Lm5leHQgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuXG5sZXQgcHVzaCA9XG4gIGFkZFxuXG5sZXQgcGVlayBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQgfSAtPiBjb250ZW50XG5cbmxldCBwZWVrX29wdCBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IE5vbmVcbiAgfCBDb25zIHsgY29udGVudCB9IC0+IFNvbWUgY29udGVudFxuXG5sZXQgdG9wID1cbiAgcGVla1xuXG5sZXQgdGFrZSBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSAtPlxuICAgIGNsZWFyIHE7XG4gICAgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIGNvbnRlbnRcblxubGV0IHRha2Vfb3B0IHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gTm9uZVxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gLT5cbiAgICBjbGVhciBxO1xuICAgIFNvbWUgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIFNvbWUgY29udGVudFxuXG5sZXQgcG9wID1cbiAgdGFrZVxuXG5sZXQgY29weSA9XG4gIGxldCByZWMgY29weSBxX3JlcyBwcmV2IGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+IHFfcmVzLmxhc3QgPC0gcHJldjsgcV9yZXNcbiAgICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICAgIGxldCByZXMgPSBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IGluXG4gICAgICBiZWdpbiBtYXRjaCBwcmV2IHdpdGhcbiAgICAgIHwgTmlsIC0+IHFfcmVzLmZpcnN0IDwtIHJlc1xuICAgICAgfCBDb25zIHAgLT4gcC5uZXh0IDwtIHJlc1xuICAgICAgZW5kO1xuICAgICAgY29weSBxX3JlcyByZXMgbmV4dFxuICBpblxuICBmdW4gcSAtPiBjb3B5IHsgbGVuZ3RoID0gcS5sZW5ndGg7IGZpcnN0ID0gTmlsOyBsYXN0ID0gTmlsIH0gTmlsIHEuZmlyc3RcblxubGV0IGlzX2VtcHR5IHEgPVxuICBxLmxlbmd0aCA9IDBcblxubGV0IGxlbmd0aCBxID1cbiAgcS5sZW5ndGhcblxubGV0IGl0ZXIgPVxuICBsZXQgcmVjIGl0ZXIgZiBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgZiBjb250ZW50O1xuICAgICAgaXRlciBmIG5leHRcbiAgaW5cbiAgZnVuIGYgcSAtPiBpdGVyIGYgcS5maXJzdFxuXG5sZXQgZm9sZCA9XG4gIGxldCByZWMgZm9sZCBmIGFjY3UgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gYWNjdVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgY29udGVudCBpblxuICAgICAgZm9sZCBmIGFjY3UgbmV4dFxuICBpblxuICBmdW4gZiBhY2N1IHEgLT4gZm9sZCBmIGFjY3UgcS5maXJzdFxuXG5sZXQgdHJhbnNmZXIgcTEgcTIgPVxuICBpZiBxMS5sZW5ndGggPiAwIHRoZW5cbiAgICBtYXRjaCBxMi5sYXN0IHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHExLmxlbmd0aDtcbiAgICAgIHEyLmZpcnN0IDwtIHExLmZpcnN0O1xuICAgICAgcTIubGFzdCA8LSBxMS5sYXN0O1xuICAgICAgY2xlYXIgcTFcbiAgICB8IENvbnMgbGFzdCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHEyLmxlbmd0aCArIHExLmxlbmd0aDtcbiAgICAgIGxhc3QubmV4dCA8LSBxMS5maXJzdDtcbiAgICAgIHEyLmxhc3QgPC0gcTEubGFzdDtcbiAgICAgIGNsZWFyIHExXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcSA9XG4gIGxldCByZWMgYXV4IGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICB8IE5pbCAtPiBTZXEuTmlsXG4gICAgfCBDb25zIHsgY29udGVudD14OyBuZXh0OyB9IC0+IFNlcS5Db25zICh4LCBhdXggbmV4dClcbiAgaW5cbiAgYXV4IHEuZmlyc3RcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBxID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBxIGc7XG4gIHFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRGFuaWVsIGRlIFJhdWdsYXVkcmUsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2EgY2VsbCBvcHRpb25cbmFuZCAnYSBjZWxsID0geyBtdXRhYmxlIGNvdW50IDogaW50OyBtdXRhYmxlIGRhdGEgOiAnYSBkYXRhIH1cbmFuZCAnYSBkYXRhID1cbiAgICBTZW1wdHlcbiAgfCBTY29ucyBvZiAnYSAqICdhIGRhdGFcbiAgfCBTYXBwIG9mICdhIGRhdGEgKiAnYSBkYXRhXG4gIHwgU2xhenkgb2YgJ2EgZGF0YSBMYXp5LnRcbiAgfCBTZ2VuIG9mICdhIGdlblxuICB8IFNidWZmaW8gOiBidWZmaW8gLT4gY2hhciBkYXRhXG5hbmQgJ2EgZ2VuID0geyBtdXRhYmxlIGN1cnIgOiAnYSBvcHRpb24gb3B0aW9uOyBmdW5jIDogaW50IC0+ICdhIG9wdGlvbiB9XG5hbmQgYnVmZmlvID1cbiAgeyBpYyA6IGluX2NoYW5uZWw7IGJ1ZmYgOiBieXRlczsgbXV0YWJsZSBsZW4gOiBpbnQ7IG11dGFibGUgaW5kIDogaW50IH1cblxuZXhjZXB0aW9uIEZhaWx1cmVcbmV4Y2VwdGlvbiBFcnJvciBvZiBzdHJpbmdcblxubGV0IGNvdW50ID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IDBcbiAgfCBTb21lIHsgY291bnQgfSAtPiBjb3VudFxubGV0IGRhdGEgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gU2VtcHR5XG4gIHwgU29tZSB7IGRhdGEgfSAtPiBkYXRhXG5cbmxldCBmaWxsX2J1ZmYgYiA9XG4gIGIubGVuIDwtIGlucHV0IGIuaWMgYi5idWZmIDAgKEJ5dGVzLmxlbmd0aCBiLmJ1ZmYpOyBiLmluZCA8LSAwXG5cblxubGV0IHJlYyBnZXRfZGF0YSA6IHR5cGUgdi4gaW50IC0+IHYgZGF0YSAtPiB2IGRhdGEgPSBmdW4gY291bnQgZCAtPiBtYXRjaCBkIHdpdGhcbiAoKiBSZXR1cm5zIGVpdGhlciBTZW1wdHkgb3IgU2NvbnMoYSwgXykgZXZlbiB3aGVuIGQgaXMgYSBnZW5lcmF0b3JcbiAgICBvciBhIGJ1ZmZlci4gSW4gdGhvc2UgY2FzZXMsIHRoZSBpdGVtIGEgaXMgc2VlbiBhcyBleHRyYWN0ZWQgZnJvbVxuIHRoZSBnZW5lcmF0b3IvYnVmZmVyLlxuIFRoZSBjb3VudCBwYXJhbWV0ZXIgaXMgdXNlZCBmb3IgY2FsbGluZyBgU2dlbi1mdW5jdGlvbnMnLiAgKilcbiAgIFNlbXB0eSB8IFNjb25zIChfLCBfKSAtPiBkXG4gfCBTYXBwIChkMSwgZDIpIC0+XG4gICAgIGJlZ2luIG1hdGNoIGdldF9kYXRhIGNvdW50IGQxIHdpdGhcbiAgICAgICBTY29ucyAoYSwgZDExKSAtPiBTY29ucyAoYSwgU2FwcCAoZDExLCBkMikpXG4gICAgIHwgU2VtcHR5IC0+IGdldF9kYXRhIGNvdW50IGQyXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTZ2VuIHtjdXJyID0gU29tZSBOb25lfSAtPiBTZW1wdHlcbiB8IFNnZW4gKHtjdXJyID0gU29tZShTb21lIGEpfSBhcyBnKSAtPlxuICAgICBnLmN1cnIgPC0gTm9uZTsgU2NvbnMoYSwgZClcbiB8IFNnZW4gZyAtPlxuICAgICBiZWdpbiBtYXRjaCBnLmZ1bmMgY291bnQgd2l0aFxuICAgICAgIE5vbmUgLT4gZy5jdXJyIDwtIFNvbWUoTm9uZSk7IFNlbXB0eVxuICAgICB8IFNvbWUgYSAtPiBTY29ucyhhLCBkKVxuICAgICAgICAgKCogV2FybmluZzogYW55b25lIHVzaW5nIGcgdGhpbmtzIHRoYXQgYW4gaXRlbSBoYXMgYmVlbiByZWFkICopXG4gICAgIGVuZFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBTZW1wdHkgZWxzZVxuICAgICAgIGxldCByID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmYgYi5pbmQgaW5cbiAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgICBiLmluZCA8LSBzdWNjIGIuaW5kOyBTY29ucyhyLCBkKVxuIHwgU2xhenkgZiAtPiBnZXRfZGF0YSBjb3VudCAoTGF6eS5mb3JjZSBmKVxuXG5cbmxldCByZWMgcGVla19kYXRhIDogdHlwZSB2LiB2IGNlbGwgLT4gdiBvcHRpb24gPSBmdW4gcyAtPlxuICgqIGNvbnN1bHQgdGhlIGZpcnN0IGl0ZW0gb2YgcyAqKVxuIG1hdGNoIHMuZGF0YSB3aXRoXG4gICBTZW1wdHkgLT4gTm9uZVxuIHwgU2NvbnMgKGEsIF8pIC0+IFNvbWUgYVxuIHwgU2FwcCAoXywgXykgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgcy5jb3VudCBzLmRhdGEgd2l0aFxuICAgICAgIFNjb25zKGEsIF8pIGFzIGQgLT4gcy5kYXRhIDwtIGQ7IFNvbWUgYVxuICAgICB8IFNlbXB0eSAtPiBOb25lXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTbGF6eSBmIC0+IHMuZGF0YSA8LSAoTGF6eS5mb3JjZSBmKTsgcGVla19kYXRhIHNcbiB8IFNnZW4ge2N1cnIgPSBTb21lIGF9IC0+IGFcbiB8IFNnZW4gZyAtPiBsZXQgeCA9IGcuZnVuYyBzLmNvdW50IGluIGcuY3VyciA8LSBTb21lIHg7IHhcbiB8IFNidWZmaW8gYiAtPlxuICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gYmVnaW4gcy5kYXRhIDwtIFNlbXB0eTsgTm9uZSBlbmRcbiAgICAgZWxzZSBTb21lIChCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZClcblxuXG5sZXQgcGVlayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBOb25lXG4gIHwgU29tZSBzIC0+IHBlZWtfZGF0YSBzXG5cblxubGV0IHJlYyBqdW5rX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB1bml0ID0gZnVuIHMgLT5cbiAgbWF0Y2ggcy5kYXRhIHdpdGhcbiAgICBTY29ucyAoXywgZCkgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgcy5kYXRhIDwtIGRcbiAgfCBTZ2VuICh7Y3VyciA9IFNvbWUgX30gYXMgZykgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgZy5jdXJyIDwtIE5vbmVcbiAgfCBTYnVmZmlvIGIgLT5cbiAgICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gcy5kYXRhIDwtIFNlbXB0eVxuICAgICAgZWxzZSAocy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgYi5pbmQgPC0gc3VjYyBiLmluZClcbiAgfCBfIC0+XG4gICAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICAgIE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSBfIC0+IGp1bmtfZGF0YSBzXG5cblxubGV0IGp1bmsgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIGRhdGEgLT4ganVua19kYXRhIGRhdGFcblxubGV0IHJlYyBuZ2V0X2RhdGEgbiBzID1cbiAgaWYgbiA8PSAwIHRoZW4gW10sIHMuZGF0YSwgMFxuICBlbHNlXG4gICAgbWF0Y2ggcGVla19kYXRhIHMgd2l0aFxuICAgICAgU29tZSBhIC0+XG4gICAgICAgIGp1bmtfZGF0YSBzO1xuICAgICAgICBsZXQgKGFsLCBkLCBrKSA9IG5nZXRfZGF0YSAocHJlZCBuKSBzIGluIGEgOjogYWwsIFNjb25zIChhLCBkKSwgc3VjYyBrXG4gICAgfCBOb25lIC0+IFtdLCBzLmRhdGEsIDBcblxuXG5sZXQgbnBlZWtfZGF0YSBuIHMgPVxuICBsZXQgKGFsLCBkLCBsZW4pID0gbmdldF9kYXRhIG4gcyBpblxuICBzLmNvdW50IDwtIChzLmNvdW50IC0gbGVuKTtcbiAgcy5kYXRhIDwtIGQ7XG4gIGFsXG5cblxubGV0IG5wZWVrIG4gPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gW11cbiAgfCBTb21lIGQgLT4gbnBlZWtfZGF0YSBuIGRcblxubGV0IG5leHQgcyA9XG4gIG1hdGNoIHBlZWsgcyB3aXRoXG4gICAgU29tZSBhIC0+IGp1bmsgczsgYVxuICB8IE5vbmUgLT4gcmFpc2UgRmFpbHVyZVxuXG5cbmxldCBlbXB0eSBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIF8gLT4gcmFpc2UgRmFpbHVyZVxuICB8IE5vbmUgLT4gKClcblxuXG5sZXQgaXRlciBmIHN0cm0gPVxuICBsZXQgcmVjIGRvX3JlYyAoKSA9XG4gICAgbWF0Y2ggcGVlayBzdHJtIHdpdGhcbiAgICAgIFNvbWUgYSAtPiBqdW5rIHN0cm07IGlnbm9yZShmIGEpOyBkb19yZWMgKClcbiAgICB8IE5vbmUgLT4gKClcbiAgaW5cbiAgZG9fcmVjICgpXG5cblxuKCogU3RyZWFtIGJ1aWxkaW5nIGZ1bmN0aW9ucyAqKVxuXG5sZXQgZnJvbSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2dlbiB7Y3VyciA9IE5vbmU7IGZ1bmMgPSBmfX1cblxubGV0IG9mX2xpc3QgbCA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IExpc3QuZm9sZF9yaWdodCAoZnVuIHggbCAtPiBTY29ucyAoeCwgbCkpIGwgU2VtcHR5fVxuXG5cbmxldCBvZl9zdHJpbmcgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgKCogV2UgY2Fubm90IHVzZSB0aGUgaW5kZXggcGFzc2VkIGJ5IHRoZSBbZnJvbV0gZnVuY3Rpb24gZGlyZWN0bHlcbiAgICAgICBiZWNhdXNlIGl0IHJldHVybnMgdGhlIGN1cnJlbnQgc3RyZWFtIGNvdW50LCB3aXRoIGFic29sdXRlbHkgbm9cbiAgICAgICBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIHN0YXJ0IGZyb20gMC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlXG4gICAgICAgb2YgW1N0cmVhbS5pY29ucyAnYycgKFN0cmVhbS5mcm9tX3N0cmluZyBcImFiXCIpXSwgdGhlIGZpcnN0XG4gICAgICAgYWNjZXNzIHRvIHRoZSBzdHJpbmcgd2lsbCBiZSBtYWRlIHdpdGggY291bnQgWzFdIGFscmVhZHkuXG4gICAgKilcbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBTdHJpbmcubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIHMuW2NdKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfYnl0ZXMgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgbGV0IGMgPSAhY291bnQgaW5cbiAgICBpZiBjIDwgQnl0ZXMubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIChCeXRlcy5nZXQgcyBjKSlcbiAgICBlbHNlIE5vbmUpXG5cblxubGV0IG9mX2NoYW5uZWwgaWMgPVxuICBTb21lIHtjb3VudCA9IDA7XG4gICAgICAgIGRhdGEgPSBTYnVmZmlvIHtpYyA9IGljOyBidWZmID0gQnl0ZXMuY3JlYXRlIDQwOTY7IGxlbiA9IDA7IGluZCA9IDB9fVxuXG5cbigqIFN0cmVhbSBleHByZXNzaW9ucyBidWlsZGVycyAqKVxuXG5sZXQgaWFwcCBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTYXBwIChkYXRhIGksIGRhdGEgcyl9XG5sZXQgaWNvbnMgaSBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIGRhdGEgcyl9XG5sZXQgaXNpbmcgaSA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNjb25zIChpLCBTZW1wdHkpfVxuXG5sZXQgbGFwcCBmIHMgPVxuICBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTYXBwIChkYXRhIChmICgpKSwgZGF0YSBzKSkpfVxuXG5sZXQgbGNvbnMgZiBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIGRhdGEgcykpKX1cbmxldCBsc2luZyBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIFNlbXB0eSkpKX1cblxubGV0IHNlbXB0eSA9IE5vbmVcbmxldCBzbGF6eSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoZGF0YSAoZiAoKSkpKX1cblxuKCogRm9yIGRlYnVnZ2luZyB1c2UgKilcblxubGV0IHJlYyBkdW1wIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IHQgLT4gdW5pdCA9IGZ1biBmIHMgLT5cbiAgcHJpbnRfc3RyaW5nIFwie2NvdW50ID0gXCI7XG4gIHByaW50X2ludCAoY291bnQgcyk7XG4gIHByaW50X3N0cmluZyBcIjsgZGF0YSA9IFwiO1xuICBkdW1wX2RhdGEgZiAoZGF0YSBzKTtcbiAgcHJpbnRfc3RyaW5nIFwifVwiO1xuICBwcmludF9uZXdsaW5lICgpXG5hbmQgZHVtcF9kYXRhIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IGRhdGEgLT4gdW5pdCA9IGZ1biBmIC0+XG4gIGZ1bmN0aW9uXG4gICAgU2VtcHR5IC0+IHByaW50X3N0cmluZyBcIlNlbXB0eVwiXG4gIHwgU2NvbnMgKGEsIGQpIC0+XG4gICAgICBwcmludF9zdHJpbmcgXCJTY29ucyAoXCI7XG4gICAgICBmIGE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNhcHAgKFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDI7XG4gICAgICBwcmludF9zdHJpbmcgXCIpXCJcbiAgfCBTbGF6eSBfIC0+IHByaW50X3N0cmluZyBcIlNsYXp5XCJcbiAgfCBTZ2VuIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2dlblwiXG4gIHwgU2J1ZmZpbyBfIC0+IHByaW50X3N0cmluZyBcIlNidWZmaW9cIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgUGllcnJlIFdlaXMgYW5kIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5OSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFeHRlbnNpYmxlIGJ1ZmZlcnMgKilcblxudHlwZSB0ID1cbiB7bXV0YWJsZSBidWZmZXIgOiBieXRlcztcbiAgbXV0YWJsZSBwb3NpdGlvbiA6IGludDtcbiAgbXV0YWJsZSBsZW5ndGggOiBpbnQ7XG4gIGluaXRpYWxfYnVmZmVyIDogYnl0ZXN9XG4oKiBJbnZhcmlhbnRzOiBhbGwgcGFydHMgb2YgdGhlIGNvZGUgcHJlc2VydmUgdGhlIGludmFyaWFudHMgdGhhdDpcbiAgIC0gWzAgPD0gYi5wb3NpdGlvbiA8PSBiLmxlbmd0aF1cbiAgIC0gW2IubGVuZ3RoID0gQnl0ZXMubGVuZ3RoIGIuYnVmZmVyXVxuXG4gICBOb3RlIGluIHBhcnRpY3VsYXIgdGhhdCBbYi5wb3NpdGlvbiA9IGIubGVuZ3RoXSBpcyBsZWdhbCxcbiAgIGl0IG1lYW5zIHRoYXQgdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCB3aWxsIGhhdmUgdG8gYmUgZXh0ZW5kZWRcbiAgIGJlZm9yZSBhbnkgZnVydGhlciBhZGRpdGlvbi4gKilcblxubGV0IGNyZWF0ZSBuID1cbiBsZXQgbiA9IGlmIG4gPCAxIHRoZW4gMSBlbHNlIG4gaW5cbiBsZXQgbiA9IGlmIG4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBTeXMubWF4X3N0cmluZ19sZW5ndGggZWxzZSBuIGluXG4gbGV0IHMgPSBCeXRlcy5jcmVhdGUgbiBpblxuIHtidWZmZXIgPSBzOyBwb3NpdGlvbiA9IDA7IGxlbmd0aCA9IG47IGluaXRpYWxfYnVmZmVyID0gc31cblxubGV0IGNvbnRlbnRzIGIgPSBCeXRlcy5zdWJfc3RyaW5nIGIuYnVmZmVyIDAgYi5wb3NpdGlvblxubGV0IHRvX2J5dGVzIGIgPSBCeXRlcy5zdWIgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBzdWIgYiBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGIucG9zaXRpb24gLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5zdWJcIlxuICBlbHNlIEJ5dGVzLnN1Yl9zdHJpbmcgYi5idWZmZXIgb2ZzIGxlblxuXG5cbmxldCBibGl0IHNyYyBzcmNvZmYgZHN0IGRzdG9mZiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IHNyY29mZiA8IDAgfHwgc3Jjb2ZmID4gc3JjLnBvc2l0aW9uIC0gbGVuXG4gICAgICAgICAgICAgfHwgZHN0b2ZmIDwgMCB8fCBkc3RvZmYgPiAoQnl0ZXMubGVuZ3RoIGRzdCkgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5ibGl0XCJcbiAgZWxzZVxuICAgIEJ5dGVzLnVuc2FmZV9ibGl0IHNyYy5idWZmZXIgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuXG5cblxubGV0IG50aCBiIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID49IGIucG9zaXRpb24gdGhlblxuICAgaW52YWxpZF9hcmcgXCJCdWZmZXIubnRoXCJcbiAgZWxzZSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIG9mc1xuXG5cbmxldCBsZW5ndGggYiA9IGIucG9zaXRpb25cblxubGV0IGNsZWFyIGIgPSBiLnBvc2l0aW9uIDwtIDBcblxubGV0IHJlc2V0IGIgPVxuICBiLnBvc2l0aW9uIDwtIDA7XG4gIGIuYnVmZmVyIDwtIGIuaW5pdGlhbF9idWZmZXI7XG4gIGIubGVuZ3RoIDwtIEJ5dGVzLmxlbmd0aCBiLmJ1ZmZlclxuXG4oKiBbcmVzaXplIGIgbW9yZV0gZW5zdXJlcyB0aGF0IFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gaG9sZHNcbiAgIGJ5IGR5bmFtaWNhbGx5IGV4dGVuZGluZyBbYi5idWZmZXJdIGlmIG5lY2Vzc2FyeSAtLSBhbmQgdGh1c1xuICAgaW5jcmVhc2luZyBbYi5sZW5ndGhdLlxuXG4gICBJbiBwYXJ0aWN1bGFyLCBhZnRlciBbcmVzaXplIGIgbW9yZV0gaXMgY2FsbGVkLCBhIGRpcmVjdCBhY2Nlc3Mgb2ZcbiAgIHNpemUgW21vcmVdIGF0IFtiLnBvc2l0aW9uXSB3aWxsIGFsd2F5cyBiZSBpbi1ib3VuZHMsIHNvIHRoYXRcbiAgICh1bnNhZmVfe2dldCxzZXR9KSBtYXkgYmUgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG4qKVxubGV0IHJlc2l6ZSBiIG1vcmUgPVxuICBsZXQgb2xkX3BvcyA9IGIucG9zaXRpb24gaW5cbiAgbGV0IG9sZF9sZW4gPSBiLmxlbmd0aCBpblxuICBsZXQgbmV3X2xlbiA9IHJlZiBvbGRfbGVuIGluXG4gIHdoaWxlIG9sZF9wb3MgKyBtb3JlID4gIW5ld19sZW4gZG8gbmV3X2xlbiA6PSAyICogIW5ld19sZW4gZG9uZTtcbiAgaWYgIW5ld19sZW4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBiZWdpblxuICAgIGlmIG9sZF9wb3MgKyBtb3JlIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgIHRoZW4gbmV3X2xlbiA6PSBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICBlbHNlIGZhaWx3aXRoIFwiQnVmZmVyLmFkZDogY2Fubm90IGdyb3cgYnVmZmVyXCJcbiAgZW5kO1xuICBsZXQgbmV3X2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAhbmV3X2xlbiBpblxuICAoKiBQUiM2MTQ4OiBsZXQncyBrZWVwIHVzaW5nIFtibGl0XSByYXRoZXIgdGhhbiBbdW5zYWZlX2JsaXRdIGluXG4gICAgIHRoaXMgdHJpY2t5IGZ1bmN0aW9uIHRoYXQgaXMgc2xvdyBhbnl3YXkuICopXG4gIEJ5dGVzLmJsaXQgYi5idWZmZXIgMCBuZXdfYnVmZmVyIDAgYi5wb3NpdGlvbjtcbiAgYi5idWZmZXIgPC0gbmV3X2J1ZmZlcjtcbiAgYi5sZW5ndGggPC0gIW5ld19sZW47XG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGgpO1xuICBhc3NlcnQgKG9sZF9wb3MgKyBtb3JlIDw9IGIubGVuZ3RoKTtcbiAgKClcbiAgKCogTm90ZTogdGhlcmUgYXJlIHZhcmlvdXMgc2l0dWF0aW9ucyAocHJlZW1wdGl2ZSB0aHJlYWRzLCBzaWduYWxzIGFuZFxuICAgICBnYyBmaW5hbGl6ZXJzKSB3aGVyZSBPQ2FtbCBjb2RlIG1heSBiZSBydW4gYXN5bmNocm9ub3VzbHk7IGluXG4gICAgIHBhcnRpY3VsYXIsIHRoZXJlIG1heSBiZSBhIHJhY2Ugd2l0aCBhbm90aGVyIHVzZXIgb2YgW2JdLCBjaGFuZ2luZ1xuICAgICBpdHMgbXV0YWJsZSBmaWVsZHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgW3Jlc2l6ZV0gY2FsbC4gVGhlIEJ1ZmZlclxuICAgICBtb2R1bGUgZG9lcyBub3QgcHJvdmlkZSBhbnkgY29ycmVjdG5lc3MgZ3VhcmFudGVlIGlmIHRoYXQgaGFwcGVucyxcbiAgICAgYnV0IHdlIG11c3Qgc3RpbGwgZW5zdXJlIHRoYXQgdGhlIGRhdGFzdHJ1Y3R1cmUgaW52YXJpYW50cyBob2xkIGZvclxuICAgICBtZW1vcnktc2FmZXR5IC0tIGFzIHdlIHBsYW4gdG8gdXNlIFt1bnNhZmVfe2dldCxzZXR9XS5cblxuICAgICBUaGVyZSBhcmUgdHdvIHBvdGVudGlhbCBhbGxvY2F0aW9uIHBvaW50cyBpbiB0aGlzIGZ1bmN0aW9uLFxuICAgICBbcmVmXSBhbmQgW0J5dGVzLmNyZWF0ZV0sIGJ1dCBhbGwgcmVhZHMgYW5kIHdyaXRlcyB0byB0aGUgZmllbGRzXG4gICAgIG9mIFtiXSBoYXBwZW4gYmVmb3JlIGJvdGggb2YgdGhlbSBvciBhZnRlciBib3RoIG9mIHRoZW0uXG5cbiAgICAgV2UgdGhlcmVmb3JlIGFzc3VtZSB0aGF0IFtiLnBvc2l0aW9uXSBtYXkgY2hhbmdlIGF0IHRoZXNlIGFsbG9jYXRpb25zLFxuICAgICBhbmQgY2hlY2sgdGhhdCB0aGUgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBwb3N0Y29uZGl0aW9uXG4gICAgIGhvbGRzIGZvciBib3RoIHZhbHVlcyBvZiBbYi5wb3NpdGlvbl0sIGJlZm9yZSBvciBhZnRlciB0aGUgZnVuY3Rpb25cbiAgICAgaXMgY2FsbGVkLiBNb3JlIHByZWNpc2VseSwgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgaG9sZCBpZiB0aGVcbiAgICAgZnVuY3Rpb24gcmV0dXJucyBjb3JyZWN0bHksIGluIGFkZGl0aW9uIHRvIHRoZSB1c3VhbCBidWZmZXIgaW52YXJpYW50czpcbiAgICAgLSBbb2xkKGIucG9zaXRpb24pICsgbW9yZSA8PSBuZXcoYi5sZW5ndGgpXVxuICAgICAtIFtuZXcoYi5wb3NpdGlvbikgKyBtb3JlIDw9IG5ldyhiLmxlbmd0aCldXG4gICAgIC0gW29sZChiLmxlbmd0aCkgPD0gbmV3KGIubGVuZ3RoKV1cblxuICAgICBOb3RlOiBbYi5wb3NpdGlvbiArIG1vcmUgPD0gb2xkKGIubGVuZ3RoKV0gZG9lcyAqbm90KlxuICAgICBob2xkIGluIGdlbmVyYWwsIGFzIGl0IGlzIHByZWNpc2VseSB0aGUgY2FzZSB3aGVyZSB5b3UgbmVlZFxuICAgICB0byBjYWxsIFtyZXNpemVdIHRvIGluY3JlYXNlIFtiLmxlbmd0aF0uXG5cbiAgICAgTm90ZTogW2Fzc2VydF0gYWJvdmUgZG9lcyBub3QgbWVhbiB0aGF0IHdlIGtub3cgdGhlIGNvbmRpdGlvbnNcbiAgICAgYWx3YXlzIGhvbGQsIGJ1dCB0aGF0IHRoZSBmdW5jdGlvbiBtYXkgcmV0dXJuIGNvcnJlY3RseVxuICAgICBvbmx5IGlmIHRoZXkgaG9sZC5cblxuICAgICBOb3RlOiB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIGRvZXMgbm90IG5lZWRcbiAgICAgdG8gYmUgY2hlY2tlZCB3aXRoIHRoaXMgbGV2ZWwgb2Ygc2NydXRpbnksIGdpdmVuIHRoYXQgdGhleVxuICAgICByZWFkL3dyaXRlIHRoZSBidWZmZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2hlY2tpbmcgdGhhdFxuICAgICBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIGhvbGQgb3IgY2FsbGluZyBbcmVzaXplXS5cbiAgKilcblxubGV0IGFkZF9jaGFyIGIgYyA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDE7XG4gIEJ5dGVzLnVuc2FmZV9zZXQgYi5idWZmZXIgcG9zIGM7XG4gIGIucG9zaXRpb24gPC0gcG9zICsgMVxuXG5sZXQgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4ID0gNFxubGV0IHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXggPSA0XG5cbmxldCByZWMgYWRkX3V0Zl84X3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzhfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzhfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCByZWMgYWRkX3V0Zl8xNmJlX3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7XG4gIGxldCBuID0gQnl0ZXMuc2V0X3V0Zl8xNmJlX3VjaGFyIGIuYnVmZmVyIHBvcyB1IGluXG4gIGlmIG4gPSAwXG4gIHRoZW4gKHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfMTZiZV91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IHJlYyBhZGRfdXRmXzE2bGVfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzE2bGVfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl8xNmxlX3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgYWRkX3N1YnN0cmluZyBiIHMgb2Zmc2V0IGxlbiA9XG4gIGlmIG9mZnNldCA8IDAgfHwgbGVuIDwgMCB8fCBvZmZzZXQgPiBTdHJpbmcubGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5hZGRfc3Vic3RyaW5nL2FkZF9zdWJieXRlc1wiO1xuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgb2Zmc2V0IGIuYnVmZmVyIGIucG9zaXRpb24gbGVuO1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX3N1YmJ5dGVzIGIgcyBvZmZzZXQgbGVuID1cbiAgYWRkX3N1YnN0cmluZyBiIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHMpIG9mZnNldCBsZW5cblxubGV0IGFkZF9zdHJpbmcgYiBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgMCBiLmJ1ZmZlciBiLnBvc2l0aW9uIGxlbjtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9ieXRlcyBiIHMgPSBhZGRfc3RyaW5nIGIgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcylcblxubGV0IGFkZF9idWZmZXIgYiBicyA9XG4gIGFkZF9zdWJieXRlcyBiIGJzLmJ1ZmZlciAwIGJzLnBvc2l0aW9uXG5cbigqIHRoaXMgKHByaXZhdGUpIGZ1bmN0aW9uIGNvdWxkIG1vdmUgaW50byB0aGUgc3RhbmRhcmQgbGlicmFyeSAqKVxubGV0IHJlYWxseV9pbnB1dF91cF90byBpYyBidWYgb2ZzIGxlbiA9XG4gIGxldCByZWMgbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZCB+b2ZzIH50b19yZWFkID1cbiAgICBpZiB0b19yZWFkID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gaW5wdXQgaWMgYnVmIG9mcyB0b19yZWFkIGluXG4gICAgICBpZiByID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBsZXQgYWxyZWFkeV9yZWFkID0gYWxyZWFkeV9yZWFkICsgciBpblxuICAgICAgICBsZXQgb2ZzID0gb2ZzICsgciBpblxuICAgICAgICBsZXQgdG9fcmVhZCA9IHRvX3JlYWQgLSByIGluXG4gICAgICAgIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQgfm9mcyB+dG9fcmVhZFxuICAgICAgZW5kXG4gICAgZW5kXG4gIGluIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQ6MCB+b2ZzIH50b19yZWFkOmxlblxuXG5cbmxldCB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gPVxuICBpZiBiLnBvc2l0aW9uICsgbGVuID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiBsZW47XG4gIGxldCBuID0gcmVhbGx5X2lucHV0X3VwX3RvIGljIGIuYnVmZmVyIGIucG9zaXRpb24gbGVuIGluXG4gICgqIFRoZSBhc3NlcnRpb24gYmVsb3cgbWF5IGZhaWwgaW4gd2VpcmQgc2NlbmFyaW8gd2hlcmVcbiAgICAgdGhyZWFkZWQvZmluYWxpemVyIGNvZGUsIHJ1biBhc3luY2hyb25vdXNseSBkdXJpbmcgdGhlXG4gICAgIFtyZWFsbHlfaW5wdXRfdXBfdG9dIGNhbGwsIHJhY2VzIG9uIHRoZSBidWZmZXI7IHdlIGRvbid0IGVuc3VyZVxuICAgICBjb3JyZWN0bmVzcyBpbiB0aGlzIGNhc2UsIGJ1dCBuZWVkIHRvIHByZXNlcnZlIHRoZSBpbnZhcmlhbnRzIGZvclxuICAgICBtZW1vcnktc2FmZXR5IChzZWUgZGlzY3Vzc2lvbiBvZiBbcmVzaXplXSkuICopXG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG4gPD0gYi5sZW5ndGgpO1xuICBiLnBvc2l0aW9uIDwtIGIucG9zaXRpb24gKyBuO1xuICBuXG5cbmxldCBhZGRfY2hhbm5lbCBiIGljIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgbGVuID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW4gICAoKiBQUiM1MDA0ICopXG4gICAgaW52YWxpZF9hcmcgXCJCdWZmZXIuYWRkX2NoYW5uZWxcIjtcbiAgbGV0IG4gPSB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gaW5cbiAgKCogSXQgaXMgaW50ZW50aW9uYWwgdGhhdCBhIGNvbnN1bWVyIGNhdGNoaW5nIEVuZF9vZl9maWxlXG4gICAgIHdpbGwgc2VlIHRoZSBkYXRhIHdyaXR0ZW4gKHNlZSAjNjcxOSwgIzcxMzYpLiAqKVxuICBpZiBuIDwgbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGU7XG4gICgpXG5cbmxldCBvdXRwdXRfYnVmZmVyIG9jIGIgPVxuICBvdXRwdXQgb2MgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBjbG9zaW5nID0gZnVuY3Rpb25cbiAgfCAnKCcgLT4gJyknXG4gIHwgJ3snIC0+ICd9J1xuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbigqIG9wZW5pbmcgYW5kIGNsb3Npbmc6IG9wZW4gYW5kIGNsb3NlIGNoYXJhY3RlcnMsIHR5cGljYWxseSAoIGFuZCApXG4gICBrOiBiYWxhbmNlIG9mIG9wZW5pbmcgYW5kIGNsb3NpbmcgY2hhcnNcbiAgIHM6IHRoZSBzdHJpbmcgd2hlcmUgd2UgYXJlIHNlYXJjaGluZ1xuICAgc3RhcnQ6IHRoZSBpbmRleCB3aGVyZSB3ZSBzdGFydCB0aGUgc2VhcmNoLiAqKVxubGV0IGFkdmFuY2VfdG9fY2xvc2luZyBvcGVuaW5nIGNsb3NpbmcgayBzIHN0YXJ0ID1cbiAgbGV0IHJlYyBhZHZhbmNlIGsgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgICBpZiBzLltpXSA9IG9wZW5pbmcgdGhlbiBhZHZhbmNlIChrICsgMSkgKGkgKyAxKSBsaW0gZWxzZVxuICAgIGlmIHMuW2ldID0gY2xvc2luZyB0aGVuXG4gICAgICBpZiBrID0gMCB0aGVuIGkgZWxzZSBhZHZhbmNlIChrIC0gMSkgKGkgKyAxKSBsaW1cbiAgICBlbHNlIGFkdmFuY2UgayAoaSArIDEpIGxpbSBpblxuICBhZHZhbmNlIGsgc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxubGV0IGFkdmFuY2VfdG9fbm9uX2FscGhhIHMgc3RhcnQgPVxuICBsZXQgcmVjIGFkdmFuY2UgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gbGltIGVsc2VcbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgfCAnYScgLi4gJ3onIHwgJ0EnIC4uICdaJyB8ICcwJyAuLiAnOScgfCAnXycgLT4gYWR2YW5jZSAoaSArIDEpIGxpbVxuICAgIHwgXyAtPiBpIGluXG4gIGFkdmFuY2Ugc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxuKCogV2UgYXJlIGp1c3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhbiBpZGVudCBpbiBzLCBzdGFydGluZyBhdCBzdGFydC4gKilcbmxldCBmaW5kX2lkZW50IHMgc3RhcnQgbGltID1cbiAgaWYgc3RhcnQgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgbWF0Y2ggcy5bc3RhcnRdIHdpdGhcbiAgKCogUGFyZW50aGVzaXplZCBpZGVudCA/ICopXG4gIHwgJygnIHwgJ3snIGFzIGMgLT5cbiAgICAgbGV0IG5ld19zdGFydCA9IHN0YXJ0ICsgMSBpblxuICAgICBsZXQgc3RvcCA9IGFkdmFuY2VfdG9fY2xvc2luZyBjIChjbG9zaW5nIGMpIDAgcyBuZXdfc3RhcnQgaW5cbiAgICAgU3RyaW5nLnN1YiBzIG5ld19zdGFydCAoc3RvcCAtIHN0YXJ0IC0gMSksIHN0b3AgKyAxXG4gICgqIFJlZ3VsYXIgaWRlbnQgKilcbiAgfCBfIC0+XG4gICAgIGxldCBzdG9wID0gYWR2YW5jZV90b19ub25fYWxwaGEgcyAoc3RhcnQgKyAxKSBpblxuICAgICBTdHJpbmcuc3ViIHMgc3RhcnQgKHN0b3AgLSBzdGFydCksIHN0b3BcblxuKCogU3Vic3RpdHV0ZSAkaWRlbnQsICQoaWRlbnQpLCBvciAke2lkZW50fSBpbiBzLFxuICAgIGFjY29yZGluZyB0byB0aGUgZnVuY3Rpb24gbWFwcGluZyBmLiAqKVxubGV0IGFkZF9zdWJzdGl0dXRlIGIgZiBzID1cbiAgbGV0IGxpbSA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIHN1YnN0IHByZXZpb3VzIGkgPVxuICAgIGlmIGkgPCBsaW0gdGhlbiBiZWdpblxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnJCcgYXMgY3VycmVudCB3aGVuIHByZXZpb3VzID0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCAnICcgKGkgKyAxKVxuICAgICAgfCAnJCcgLT5cbiAgICAgICAgIGxldCBqID0gaSArIDEgaW5cbiAgICAgICAgIGxldCBpZGVudCwgbmV4dF9pID0gZmluZF9pZGVudCBzIGogbGltIGluXG4gICAgICAgICBhZGRfc3RyaW5nIGIgKGYgaWRlbnQpO1xuICAgICAgICAgc3Vic3QgJyAnIG5leHRfaVxuICAgICAgfCBjdXJyZW50IHdoZW4gcHJldmlvdXMgPT0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiICdcXFxcJztcbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0ICcgJyAoaSArIDEpXG4gICAgICB8ICdcXFxcJyBhcyBjdXJyZW50IC0+XG4gICAgICAgICBzdWJzdCBjdXJyZW50IChpICsgMSlcbiAgICAgIHwgY3VycmVudCAtPlxuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgY3VycmVudCAoaSArIDEpXG4gICAgZW5kIGVsc2VcbiAgICBpZiBwcmV2aW91cyA9ICdcXFxcJyB0aGVuIGFkZF9jaGFyIGIgcHJldmlvdXMgaW5cbiAgc3Vic3QgJyAnIDBcblxubGV0IHRydW5jYXRlIGIgbGVuID1cbiAgICBpZiBsZW4gPCAwIHx8IGxlbiA+IGxlbmd0aCBiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiQnVmZmVyLnRydW5jYXRlXCJcbiAgICBlbHNlXG4gICAgICBiLnBvc2l0aW9uIDwtIGxlblxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGIgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAoKiBOb3RlIHRoYXQgYi5wb3NpdGlvbiBpcyBub3QgYSBjb25zdGFudCBhbmQgY2Fubm90IGJlIGxpZnRlZCBvdXQgb2YgYXV4ICopXG4gICAgaWYgaSA+PSBiLnBvc2l0aW9uIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBiID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgKCogTm90ZSB0aGF0IGIucG9zaXRpb24gaXMgbm90IGEgY29uc3RhbnQgYW5kIGNhbm5vdCBiZSBsaWZ0ZWQgb3V0IG9mIGF1eCAqKVxuICAgIGlmIGkgPj0gYi5wb3NpdGlvbiB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBhZGRfc2VxIGIgc2VxID0gU2VxLml0ZXIgKGFkZF9jaGFyIGIpIHNlcVxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgYiA9IGNyZWF0ZSAzMiBpblxuICBhZGRfc2VxIGIgaTtcbiAgYlxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50MTYgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDMyIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMydVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDY0IDogYnl0ZXMgLT4gaW50IC0+IGludDY0IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDY0dVwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5cbmxldCBhZGRfaW50OCBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDEgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiAxO1xuICB1bnNhZmVfc2V0X2ludDggYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgMiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDI7XG4gIHVuc2FmZV9zZXRfaW50MTYgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDMyX25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgNCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDQ7XG4gIHVuc2FmZV9zZXRfaW50MzIgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDY0X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgOCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDg7XG4gIHVuc2FmZV9zZXRfaW50NjQgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X2xlIGIgeCA9XG4gIGFkZF9pbnQxNl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQxNl9iZSBiIHggPVxuICBhZGRfaW50MTZfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDE2IHgpXG5cbmxldCBhZGRfaW50MzJfbGUgYiB4ID1cbiAgYWRkX2ludDMyX25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDMyX2JlIGIgeCA9XG4gIGFkZF9pbnQzMl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwMzIgeClcblxubGV0IGFkZF9pbnQ2NF9sZSBiIHggPVxuICBhZGRfaW50NjRfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50NjRfYmUgYiB4ID1cbiAgYWRkX2ludDY0X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXA2NCB4KVxuXG5sZXQgYWRkX3VpbnQ4ID0gYWRkX2ludDhcbmxldCBhZGRfdWludDE2X25lID0gYWRkX2ludDE2X25lXG5sZXQgYWRkX3VpbnQxNl9sZSA9IGFkZF9pbnQxNl9sZVxubGV0IGFkZF91aW50MTZfYmUgPSBhZGRfaW50MTZfYmVcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgWGF2aWVyIExlcm95IGFuZCBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbmxldCBrZnByaW50ZiBrIG8gKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZiAoZnVuIGFjYyAtPiBvdXRwdXRfYWNjIG8gYWNjOyBrIG8pIEVuZF9vZl9hY2MgZm10XG5sZXQga2JwcmludGYgayBiIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGYgKGZ1biBhY2MgLT4gYnVmcHV0X2FjYyBiIGFjYzsgayBiKSBFbmRfb2ZfYWNjIGZtdFxubGV0IGlrZnByaW50ZiBrIG9jIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGsgb2MgZm10XG5sZXQgaWticHJpbnRmID0gaWtmcHJpbnRmXG5cbmxldCBmcHJpbnRmIG9jIGZtdCA9IGtmcHJpbnRmIGlnbm9yZSBvYyBmbXRcbmxldCBicHJpbnRmIGIgZm10ID0ga2JwcmludGYgaWdub3JlIGIgZm10XG5sZXQgaWZwcmludGYgb2MgZm10ID0gaWtmcHJpbnRmIGlnbm9yZSBvYyBmbXRcbmxldCBpYnByaW50ZiBiIGZtdCA9IGlrYnByaW50ZiBpZ25vcmUgYiBmbXRcbmxldCBwcmludGYgZm10ID0gZnByaW50ZiBzdGRvdXQgZm10XG5sZXQgZXByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZGVyciBmbXRcblxubGV0IGtzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgaycgYWNjID1cbiAgICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSA2NCBpblxuICAgIHN0cnB1dF9hY2MgYnVmIGFjYztcbiAgICBrIChCdWZmZXIuY29udGVudHMgYnVmKSBpblxuICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdFxuXG5sZXQgc3ByaW50ZiBmbXQgPSBrc3ByaW50ZiAoZnVuIHMgLT4gcykgZm10XG5cbmxldCBrcHJpbnRmID0ga3NwcmludGZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBrZXkgPSBzdHJpbmdcbnR5cGUgZG9jID0gc3RyaW5nXG50eXBlIHVzYWdlX21zZyA9IHN0cmluZ1xudHlwZSBhbm9uX2Z1biA9IChzdHJpbmcgLT4gdW5pdClcblxudHlwZSBzcGVjID1cbiAgfCBVbml0IG9mICh1bml0IC0+IHVuaXQpICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHVuaXQgYXJndW1lbnQgKilcbiAgfCBCb29sIG9mIChib29sIC0+IHVuaXQpICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgYm9vbCBhcmd1bWVudCAqKVxuICB8IFNldCBvZiBib29sIHJlZiAgICAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRydWUgKilcbiAgfCBDbGVhciBvZiBib29sIHJlZiAgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byBmYWxzZSAqKVxuICB8IFN0cmluZyBvZiAoc3RyaW5nIC0+IHVuaXQpICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBzdHJpbmcgYXJndW1lbnQgKilcbiAgfCBTZXRfc3RyaW5nIG9mIHN0cmluZyByZWYgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgc3RyaW5nIGFyZ3VtZW50ICopXG4gIHwgSW50IG9mIChpbnQgLT4gdW5pdCkgICAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhbiBpbnQgYXJndW1lbnQgKilcbiAgfCBTZXRfaW50IG9mIGludCByZWYgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgaW50IGFyZ3VtZW50ICopXG4gIHwgRmxvYXQgb2YgKGZsb2F0IC0+IHVuaXQpICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIGZsb2F0IGFyZ3VtZW50ICopXG4gIHwgU2V0X2Zsb2F0IG9mIGZsb2F0IHJlZiAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIGZsb2F0IGFyZ3VtZW50ICopXG4gIHwgVHVwbGUgb2Ygc3BlYyBsaXN0ICAgICAgICAgKCogVGFrZSBzZXZlcmFsIGFyZ3VtZW50cyBhY2NvcmRpbmcgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlYyBsaXN0ICopXG4gIHwgU3ltYm9sIG9mIHN0cmluZyBsaXN0ICogKHN0cmluZyAtPiB1bml0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFRha2Ugb25lIG9mIHRoZSBzeW1ib2xzIGFzIGFyZ3VtZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIHN5bWJvbC4gKilcbiAgfCBSZXN0IG9mIChzdHJpbmcgLT4gdW5pdCkgICAoKiBTdG9wIGludGVycHJldGluZyBrZXl3b3JkcyBhbmQgY2FsbCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB3aXRoIGVhY2ggcmVtYWluaW5nIGFyZ3VtZW50ICopXG4gIHwgUmVzdF9hbGwgb2YgKHN0cmluZyBsaXN0IC0+IHVuaXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogU3RvcCBpbnRlcnByZXRpbmcga2V5d29yZHMgYW5kIGNhbGwgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2l0aCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cy4gKilcbiAgfCBFeHBhbmQgb2YgKHN0cmluZyAtPiBzdHJpbmcgYXJyYXkpICgqIElmIHRoZSByZW1haW5pbmcgYXJndW1lbnRzIHRvIHByb2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBvZiB0aGUgZm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tcIi1mb29cIjsgXCJhcmdcIl0gQCByZXN0XSB3aGVyZSBcImZvb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZWdpc3RlcmVkIGFzIFtFeHBhbmQgZl0sIHRoZW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMgW2YgXCJhcmdcIiBAIHJlc3RdIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkLiBPbmx5IGFsbG93ZWQgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY10uICopXG5cbmV4Y2VwdGlvbiBCYWQgb2Ygc3RyaW5nXG5leGNlcHRpb24gSGVscCBvZiBzdHJpbmdcblxudHlwZSBlcnJvciA9XG4gIHwgVW5rbm93biBvZiBzdHJpbmdcbiAgfCBXcm9uZyBvZiBzdHJpbmcgKiBzdHJpbmcgKiBzdHJpbmcgICgqIG9wdGlvbiwgYWN0dWFsLCBleHBlY3RlZCAqKVxuICB8IE1pc3Npbmcgb2Ygc3RyaW5nXG4gIHwgTWVzc2FnZSBvZiBzdHJpbmdcblxuZXhjZXB0aW9uIFN0b3Agb2YgZXJyb3IgKCogdXNlZCBpbnRlcm5hbGx5ICopXG5cbm9wZW4gUHJpbnRmXG5cbmxldCByZWMgYXNzb2MzIHggbCA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8ICh5MSwgeTIsIF8pIDo6IF8gd2hlbiB5MSA9IHggLT4geTJcbiAgfCBfIDo6IHQgLT4gYXNzb2MzIHggdFxuXG5cbmxldCBzcGxpdCBzID1cbiAgbGV0IGkgPSBTdHJpbmcuaW5kZXggcyAnPScgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBTdHJpbmcuc3ViIHMgMCBpLCBTdHJpbmcuc3ViIHMgKGkrMSkgKGxlbi0oaSsxKSlcblxuXG5sZXQgbWFrZV9zeW1saXN0IHByZWZpeCBzZXAgc3VmZml4IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPiBcIjxub25lPlwiXG4gIHwgaDo6dCAtPiAoTGlzdC5mb2xkX2xlZnQgKGZ1biB4IHkgLT4geCBeIHNlcCBeIHkpIChwcmVmaXggXiBoKSB0KSBeIHN1ZmZpeFxuXG5cbmxldCBwcmludF9zcGVjIGJ1ZiAoa2V5LCBzcGVjLCBkb2MpID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBkb2MgPiAwIHRoZW5cbiAgICBtYXRjaCBzcGVjIHdpdGhcbiAgICB8IFN5bWJvbCAobCwgXykgLT5cbiAgICAgICAgYnByaW50ZiBidWYgXCIgICVzICVzJXNcXG5cIiBrZXkgKG1ha2Vfc3ltbGlzdCBcIntcIiBcInxcIiBcIn1cIiBsKSBkb2NcbiAgICB8IF8gLT5cbiAgICAgICAgYnByaW50ZiBidWYgXCIgICVzICVzXFxuXCIga2V5IGRvY1xuXG5cbmxldCBoZWxwX2FjdGlvbiAoKSA9IHJhaXNlIChTdG9wIChVbmtub3duIFwiLWhlbHBcIikpXG5cbmxldCBhZGRfaGVscCBzcGVjbGlzdCA9XG4gIGxldCBhZGQxID1cbiAgICB0cnkgaWdub3JlIChhc3NvYzMgXCItaGVscFwiIHNwZWNsaXN0KTsgW11cbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgICAgW1wiLWhlbHBcIiwgVW5pdCBoZWxwX2FjdGlvbiwgXCIgRGlzcGxheSB0aGlzIGxpc3Qgb2Ygb3B0aW9uc1wiXVxuICBhbmQgYWRkMiA9XG4gICAgdHJ5IGlnbm9yZSAoYXNzb2MzIFwiLS1oZWxwXCIgc3BlY2xpc3QpOyBbXVxuICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgICBbXCItLWhlbHBcIiwgVW5pdCBoZWxwX2FjdGlvbiwgXCIgRGlzcGxheSB0aGlzIGxpc3Qgb2Ygb3B0aW9uc1wiXVxuICBpblxuICBzcGVjbGlzdCBAIChhZGQxIEAgYWRkMilcblxuXG5sZXQgdXNhZ2VfYiBidWYgc3BlY2xpc3QgZXJybXNnID1cbiAgYnByaW50ZiBidWYgXCIlc1xcblwiIGVycm1zZztcbiAgTGlzdC5pdGVyIChwcmludF9zcGVjIGJ1ZikgKGFkZF9oZWxwIHNwZWNsaXN0KVxuXG5cbmxldCB1c2FnZV9zdHJpbmcgc3BlY2xpc3QgZXJybXNnID1cbiAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICB1c2FnZV9iIGIgc3BlY2xpc3QgZXJybXNnO1xuICBCdWZmZXIuY29udGVudHMgYlxuXG5cbmxldCB1c2FnZSBzcGVjbGlzdCBlcnJtc2cgPVxuICBlcHJpbnRmIFwiJXNcIiAodXNhZ2Vfc3RyaW5nIHNwZWNsaXN0IGVycm1zZylcblxuXG5sZXQgY3VycmVudCA9IHJlZiAwXG5cbmxldCBib29sX29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChib29sX29mX3N0cmluZyB4KVxuICB3aXRoIEludmFsaWRfYXJndW1lbnQgXyAtPiBOb25lXG5cbmxldCBpbnRfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgeClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGZsb2F0X29mX3N0cmluZyB4KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggYWxsb3dfZXhwYW5kIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9XG4gIGxldCBpbml0cG9zID0gIWN1cnJlbnQgaW5cbiAgbGV0IGNvbnZlcnRfZXJyb3IgZXJyb3IgPVxuICAgICgqIGNvbnZlcnQgYW4gaW50ZXJuYWwgZXJyb3IgdG8gYSBCYWQvSGVscCBleGNlcHRpb25cbiAgICAgICAqb3IqIGFkZCB0aGUgcHJvZ3JhbSBuYW1lIGFzIGEgcHJlZml4IGFuZCB0aGUgdXNhZ2UgbWVzc2FnZSBhcyBhIHN1ZmZpeFxuICAgICAgIHRvIGFuIHVzZXItcmFpc2VkIEJhZCBleGNlcHRpb24uXG4gICAgKilcbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gICAgbGV0IHByb2duYW1lID1cbiAgICAgIGlmIGluaXRwb3MgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSB0aGVuICFhcmd2Lihpbml0cG9zKSBlbHNlIFwiKD8pXCIgaW5cbiAgICBiZWdpbiBtYXRjaCBlcnJvciB3aXRoXG4gICAgICB8IFVua25vd24gXCItaGVscFwiIC0+ICgpXG4gICAgICB8IFVua25vd24gXCItLWhlbHBcIiAtPiAoKVxuICAgICAgfCBVbmtub3duIHMgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogdW5rbm93biBvcHRpb24gJyVzJy5cXG5cIiBwcm9nbmFtZSBzXG4gICAgICB8IE1pc3NpbmcgcyAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiBvcHRpb24gJyVzJyBuZWVkcyBhbiBhcmd1bWVudC5cXG5cIiBwcm9nbmFtZSBzXG4gICAgICB8IFdyb25nIChvcHQsIGFyZywgZXhwZWN0ZWQpIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IHdyb25nIGFyZ3VtZW50ICclcyc7IG9wdGlvbiAnJXMnIGV4cGVjdHMgJXMuXFxuXCJcbiAgICAgICAgICAgICAgICAgIHByb2duYW1lIGFyZyBvcHQgZXhwZWN0ZWRcbiAgICAgIHwgTWVzc2FnZSBzIC0+ICgqIHVzZXIgZXJyb3IgbWVzc2FnZSAqKVxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiAlcy5cXG5cIiBwcm9nbmFtZSBzXG4gICAgZW5kO1xuICAgIHVzYWdlX2IgYiAhc3BlY2xpc3QgZXJybXNnO1xuICAgIGlmIGVycm9yID0gVW5rbm93biBcIi1oZWxwXCIgfHwgZXJyb3IgPSBVbmtub3duIFwiLS1oZWxwXCJcbiAgICB0aGVuIEhlbHAgKEJ1ZmZlci5jb250ZW50cyBiKVxuICAgIGVsc2UgQmFkIChCdWZmZXIuY29udGVudHMgYilcbiAgaW5cbiAgaW5jciBjdXJyZW50O1xuICB3aGlsZSAhY3VycmVudCA8IChBcnJheS5sZW5ndGggIWFyZ3YpIGRvXG4gICAgYmVnaW4gdHJ5XG4gICAgICBsZXQgcyA9ICFhcmd2LighY3VycmVudCkgaW5cbiAgICAgIGlmIFN0cmluZy5sZW5ndGggcyA+PSAxICYmIHMuWzBdID0gJy0nIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IGFjdGlvbiwgZm9sbG93ID1cbiAgICAgICAgICB0cnkgYXNzb2MzIHMgIXNwZWNsaXN0LCBOb25lXG4gICAgICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICB0cnlcbiAgICAgICAgICAgIGxldCBrZXl3b3JkLCBhcmcgPSBzcGxpdCBzIGluXG4gICAgICAgICAgICBhc3NvYzMga2V5d29yZCAhc3BlY2xpc3QsIFNvbWUgYXJnXG4gICAgICAgICAgd2l0aCBOb3RfZm91bmQgLT4gcmFpc2UgKFN0b3AgKFVua25vd24gcykpXG4gICAgICAgIGluXG4gICAgICAgIGxldCBub19hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIGFyZyAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJubyBhcmd1bWVudFwiKSkpIGluXG4gICAgICAgIGxldCBnZXRfYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICBpZiAhY3VycmVudCArIDEgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSB0aGVuICFhcmd2LighY3VycmVudCArIDEpXG4gICAgICAgICAgICAgIGVsc2UgcmFpc2UgKFN0b3AgKE1pc3NpbmcgcykpXG4gICAgICAgICAgfCBTb21lIGFyZyAtPiBhcmdcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGNvbnN1bWVfYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBpbmNyIGN1cnJlbnRcbiAgICAgICAgICB8IFNvbWUgXyAtPiAoKVxuICAgICAgICBpblxuICAgICAgICBsZXQgcmVjIHRyZWF0X2FjdGlvbiA9IGZ1bmN0aW9uXG4gICAgICAgIHwgVW5pdCBmIC0+IG5vX2FyZyAoKTsgZiAoKTtcbiAgICAgICAgfCBCb29sIGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBib29sX29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGJvb2xlYW5cIikpKVxuICAgICAgICAgICAgfCBTb21lIHMgLT4gZiBzXG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXQgciAtPiBub19hcmcgKCk7IHIgOj0gdHJ1ZTtcbiAgICAgICAgfCBDbGVhciByIC0+IG5vX2FyZyAoKTsgciA6PSBmYWxzZTtcbiAgICAgICAgfCBTdHJpbmcgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGYgYXJnO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU3ltYm9sIChzeW1iLCBmKSAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGlmIExpc3QubWVtIGFyZyBzeW1iIHRoZW4gYmVnaW5cbiAgICAgICAgICAgICAgZiBhcmc7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwib25lIG9mOiBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAobWFrZV9zeW1saXN0IFwiXCIgXCIgXCIgXCJcIiBzeW1iKSkpKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgU2V0X3N0cmluZyByIC0+XG4gICAgICAgICAgICByIDo9IGdldF9hcmcgKCk7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBJbnQgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGludF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYW4gaW50ZWdlclwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiBmIHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldF9pbnQgciAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGludF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYW4gaW50ZWdlclwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiByIDo9IHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IEZsb2F0IGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBmbG9hdF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBmbG9hdFwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiBmIHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldF9mbG9hdCByIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggZmxvYXRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgZmxvYXRcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gciA6PSB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBUdXBsZSBzcGVjcyAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgTGlzdC5pdGVyIHRyZWF0X2FjdGlvbiBzcGVjcztcbiAgICAgICAgfCBSZXN0IGYgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIHdoaWxlICFjdXJyZW50IDwgKEFycmF5Lmxlbmd0aCAhYXJndikgLSAxIGRvXG4gICAgICAgICAgICAgIGYgIWFyZ3YuKCFjdXJyZW50ICsgMSk7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgfCBSZXN0X2FsbCBmIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICB3aGlsZSAhY3VycmVudCA8IEFycmF5Lmxlbmd0aCAhYXJndiAtIDEgZG9cbiAgICAgICAgICAgICAgYWNjIDo9ICFhcmd2LighY3VycmVudCArIDEpIDo6ICFhY2M7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgIGYgKExpc3QucmV2ICFhY2MpXG4gICAgICAgIHwgRXhwYW5kIGYgLT5cbiAgICAgICAgICAgIGlmIG5vdCBhbGxvd19leHBhbmQgdGhlblxuICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkFyZy5FeHBhbmQgaXMgaXMgb25seSBhbGxvd2VkIHdpdGggXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZy5wYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY1wiKTtcbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBsZXQgbmV3YXJnID0gZiBhcmcgaW5cbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgbGV0IGJlZm9yZSA9IEFycmF5LnN1YiAhYXJndiAwICghY3VycmVudCArIDEpXG4gICAgICAgICAgICBhbmQgYWZ0ZXIgPVxuICAgICAgICAgICAgICBBcnJheS5zdWIgIWFyZ3YgKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICgoQXJyYXkubGVuZ3RoICFhcmd2KSAtICFjdXJyZW50IC0gMSkgaW5cbiAgICAgICAgICAgIGFyZ3Y6PSBBcnJheS5jb25jYXQgW2JlZm9yZTtuZXdhcmc7YWZ0ZXJdO1xuICAgICAgICBpblxuICAgICAgICB0cmVhdF9hY3Rpb24gYWN0aW9uIGVuZFxuICAgICAgZWxzZSBhbm9uZnVuIHNcbiAgICB3aXRoIHwgQmFkIG0gLT4gcmFpc2UgKGNvbnZlcnRfZXJyb3IgKE1lc3NhZ2UgbSkpO1xuICAgICAgICAgfCBTdG9wIGUgLT4gcmFpc2UgKGNvbnZlcnRfZXJyb3IgZSk7XG4gICAgZW5kO1xuICAgIGluY3IgY3VycmVudFxuICBkb25lXG5cbmxldCBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggdHJ1ZSBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2dcblxubGV0IHBhcnNlX2FyZ3ZfZHluYW1pYyA/KGN1cnJlbnQ9Y3VycmVudCkgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCBmYWxzZSBjdXJyZW50IChyZWYgYXJndikgc3BlY2xpc3QgYW5vbmZ1blxuICAgIGVycm1zZ1xuXG5cbmxldCBwYXJzZV9hcmd2ID8oY3VycmVudD1jdXJyZW50KSBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYXJndl9keW5hbWljIH5jdXJyZW50OmN1cnJlbnQgYXJndiAocmVmIHNwZWNsaXN0KSBhbm9uZnVuIGVycm1zZ1xuXG5cbmxldCBwYXJzZSBsIGYgbXNnID1cbiAgdHJ5XG4gICAgcGFyc2VfYXJndiBTeXMuYXJndiBsIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5cbmxldCBwYXJzZV9keW5hbWljIGwgZiBtc2cgPVxuICB0cnlcbiAgICBwYXJzZV9hcmd2X2R5bmFtaWMgU3lzLmFyZ3YgbCBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxubGV0IHBhcnNlX2V4cGFuZCBsIGYgbXNnID1cbiAgdHJ5XG4gICAgbGV0IGFyZ3YgPSByZWYgU3lzLmFyZ3YgaW5cbiAgICBsZXQgc3BlYyA9IHJlZiBsIGluXG4gICAgbGV0IGN1cnJlbnQgPSByZWYgKCFjdXJyZW50KSBpblxuICAgIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIGN1cnJlbnQgYXJndiBzcGVjIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5cbmxldCBzZWNvbmRfd29yZCBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgbiA9XG4gICAgaWYgbiA+PSBsZW4gdGhlbiBsZW5cbiAgICBlbHNlIGlmIHMuW25dID0gJyAnIHRoZW4gbG9vcCAobisxKVxuICAgIGVsc2UgblxuICBpblxuICBtYXRjaCBTdHJpbmcuaW5kZXggcyAnXFx0JyB3aXRoXG4gIHwgbiAtPiBsb29wIChuKzEpXG4gIHwgZXhjZXB0aW9uIE5vdF9mb3VuZCAtPlxuICAgICAgYmVnaW4gbWF0Y2ggU3RyaW5nLmluZGV4IHMgJyAnIHdpdGhcbiAgICAgIHwgbiAtPiBsb29wIChuKzEpXG4gICAgICB8IGV4Y2VwdGlvbiBOb3RfZm91bmQgLT4gbGVuXG4gICAgICBlbmRcblxuXG5sZXQgbWF4X2FyZ19sZW4gY3VyIChrd2QsIHNwZWMsIGRvYykgPVxuICBtYXRjaCBzcGVjIHdpdGhcbiAgfCBTeW1ib2wgXyAtPiBJbnQubWF4IGN1ciAoU3RyaW5nLmxlbmd0aCBrd2QpXG4gIHwgXyAtPiBJbnQubWF4IGN1ciAoU3RyaW5nLmxlbmd0aCBrd2QgKyBzZWNvbmRfd29yZCBkb2MpXG5cblxubGV0IHJlcGxhY2VfbGVhZGluZ190YWIgcyA9XG4gIGxldCBzZWVuID0gcmVmIGZhbHNlIGluXG4gIFN0cmluZy5tYXAgKGZ1bmN0aW9uICdcXHQnIHdoZW4gbm90ICFzZWVuIC0+IHNlZW4gOj0gdHJ1ZTsgJyAnIHwgYyAtPiBjKSBzXG5cbmxldCBhZGRfcGFkZGluZyBsZW4ga3NkID1cbiAgbWF0Y2gga3NkIHdpdGhcbiAgfCAoXywgXywgXCJcIikgLT5cbiAgICAgICgqIERvIG5vdCBwYWQgdW5kb2N1bWVudGVkIG9wdGlvbnMsIHNvIHRoYXQgdGhleSBzdGlsbCBkb24ndCBzaG93IHVwIHdoZW5cbiAgICAgICAqIHJ1biB0aHJvdWdoIFt1c2FnZV0gb3IgW3BhcnNlXS4gKilcbiAgICAgIGtzZFxuICB8IChrd2QsIChTeW1ib2wgXyBhcyBzcGVjKSwgbXNnKSAtPlxuICAgICAgbGV0IGN1dGNvbCA9IHNlY29uZF93b3JkIG1zZyBpblxuICAgICAgbGV0IHNwYWNlcyA9IFN0cmluZy5tYWtlICgoSW50Lm1heCAwIChsZW4gLSBjdXRjb2wpKSArIDMpICcgJyBpblxuICAgICAgKGt3ZCwgc3BlYywgXCJcXG5cIiBeIHNwYWNlcyBeIHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKVxuICB8IChrd2QsIHNwZWMsIG1zZykgLT5cbiAgICAgIGxldCBjdXRjb2wgPSBzZWNvbmRfd29yZCBtc2cgaW5cbiAgICAgIGxldCBrd2RfbGVuID0gU3RyaW5nLmxlbmd0aCBrd2QgaW5cbiAgICAgIGxldCBkaWZmID0gbGVuIC0ga3dkX2xlbiAtIGN1dGNvbCBpblxuICAgICAgaWYgZGlmZiA8PSAwIHRoZW5cbiAgICAgICAgKGt3ZCwgc3BlYywgcmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBzcGFjZXMgPSBTdHJpbmcubWFrZSBkaWZmICcgJyBpblxuICAgICAgICBsZXQgcHJlZml4ID0gU3RyaW5nLnN1YiAocmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpIDAgY3V0Y29sIGluXG4gICAgICAgIGxldCBzdWZmaXggPSBTdHJpbmcuc3ViIG1zZyBjdXRjb2wgKFN0cmluZy5sZW5ndGggbXNnIC0gY3V0Y29sKSBpblxuICAgICAgICAoa3dkLCBzcGVjLCBwcmVmaXggXiBzcGFjZXMgXiBzdWZmaXgpXG5cblxubGV0IGFsaWduID8obGltaXQ9bWF4X2ludCkgc3BlY2xpc3QgPVxuICBsZXQgY29tcGxldGVkID0gYWRkX2hlbHAgc3BlY2xpc3QgaW5cbiAgbGV0IGxlbiA9IExpc3QuZm9sZF9sZWZ0IG1heF9hcmdfbGVuIDAgY29tcGxldGVkIGluXG4gIGxldCBsZW4gPSBJbnQubWluIGxlbiBsaW1pdCBpblxuICBMaXN0Lm1hcCAoYWRkX3BhZGRpbmcgbGVuKSBjb21wbGV0ZWRcblxubGV0IHRyaW1fY3IgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgaWYgbGVuID4gMCAmJiBTdHJpbmcuZ2V0IHMgKGxlbiAtIDEpID0gJ1xccicgdGhlblxuICAgIFN0cmluZy5zdWIgcyAwIChsZW4gLSAxKVxuICBlbHNlXG4gICAgc1xuXG5sZXQgcmVhZF9hdXggdHJpbSBzZXAgZmlsZSA9XG4gIGxldCBpYyA9IG9wZW5faW5fYmluIGZpbGUgaW5cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gIGxldCB3b3JkcyA9IHJlZiBbXSBpblxuICBsZXQgc3Rhc2ggKCkgPVxuICAgIGxldCB3b3JkID0gQnVmZmVyLmNvbnRlbnRzIGJ1ZiBpblxuICAgIGxldCB3b3JkID0gaWYgdHJpbSB0aGVuIHRyaW1fY3Igd29yZCBlbHNlIHdvcmQgaW5cbiAgICB3b3JkcyA6PSB3b3JkIDo6ICF3b3JkcztcbiAgICBCdWZmZXIuY2xlYXIgYnVmXG4gIGluXG4gIGJlZ2luXG4gICAgdHJ5IHdoaWxlIHRydWUgZG9cbiAgICAgICAgbGV0IGMgPSBpbnB1dF9jaGFyIGljIGluXG4gICAgICAgIGlmIGMgPSBzZXAgdGhlbiBzdGFzaCAoKSBlbHNlIEJ1ZmZlci5hZGRfY2hhciBidWYgY1xuICAgICAgZG9uZVxuICAgIHdpdGggRW5kX29mX2ZpbGUgLT4gKClcbiAgZW5kO1xuICBpZiBCdWZmZXIubGVuZ3RoIGJ1ZiA+IDAgdGhlbiBzdGFzaCAoKTtcbiAgY2xvc2VfaW4gaWM7XG4gIEFycmF5Lm9mX2xpc3QgKExpc3QucmV2ICF3b3JkcylcblxubGV0IHJlYWRfYXJnID0gcmVhZF9hdXggdHJ1ZSAnXFxuJ1xuXG5sZXQgcmVhZF9hcmcwID0gcmVhZF9hdXggZmFsc2UgJ1xceDAwJ1xuXG5sZXQgd3JpdGVfYXV4IHNlcCBmaWxlIGFyZ3MgPVxuICBsZXQgb2MgPSBvcGVuX291dF9iaW4gZmlsZSBpblxuICBBcnJheS5pdGVyIChmdW4gcyAtPiBmcHJpbnRmIG9jIFwiJXMlY1wiIHMgc2VwKSBhcmdzO1xuICBjbG9zZV9vdXQgb2NcblxubGV0IHdyaXRlX2FyZyA9IHdyaXRlX2F1eCAnXFxuJ1xuXG5sZXQgd3JpdGVfYXJnMCA9IHdyaXRlX2F1eCAnXFx4MDAnXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGlkIDogJ2EgLT4gJ2EgPSBcIiVpZGVudGl0eVwiXG5sZXQgY29uc3QgYyBfID0gY1xubGV0IGZsaXAgZiB4IHkgPSBmIHkgeFxubGV0IG5lZ2F0ZSBwIHYgPSBub3QgKHAgdilcblxuZXhjZXB0aW9uIEZpbmFsbHlfcmFpc2VkIG9mIGV4blxuXG5sZXQgKCkgPSBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIEBAIGZ1bmN0aW9uXG58IEZpbmFsbHlfcmFpc2VkIGV4biAtPiBTb21lIChcIkZ1bi5GaW5hbGx5X3JhaXNlZDogXCIgXiBQcmludGV4Yy50b19zdHJpbmcgZXhuKVxufCBfIC0+IE5vbmVcblxubGV0IHByb3RlY3QgfihmaW5hbGx5IDogdW5pdCAtPiB1bml0KSB3b3JrID1cbiAgbGV0IGZpbmFsbHlfbm9fZXhuICgpID1cbiAgICB0cnkgZmluYWxseSAoKSB3aXRoIGUgLT5cbiAgICAgIGxldCBidCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSAoRmluYWxseV9yYWlzZWQgZSkgYnRcbiAgaW5cbiAgbWF0Y2ggd29yayAoKSB3aXRoXG4gIHwgcmVzdWx0IC0+IGZpbmFsbHlfbm9fZXhuICgpIDsgcmVzdWx0XG4gIHwgZXhjZXB0aW9uIHdvcmtfZXhuIC0+XG4gICAgICBsZXQgd29ya19idCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBmaW5hbGx5X25vX2V4biAoKSA7XG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSB3b3JrX2V4biB3b3JrX2J0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIEphY3F1ZXMtSGVucmkgSm91cmRhbiwgcHJvamV0IEdhbGxpdW0sIElOUklBIFBhcmlzICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2LTIwMTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSAgICopXG4oKiAgICAgZXQgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc3RhdCA9IHtcbiAgbWlub3Jfd29yZHMgOiBmbG9hdDtcbiAgcHJvbW90ZWRfd29yZHMgOiBmbG9hdDtcbiAgbWFqb3Jfd29yZHMgOiBmbG9hdDtcbiAgbWlub3JfY29sbGVjdGlvbnMgOiBpbnQ7XG4gIG1ham9yX2NvbGxlY3Rpb25zIDogaW50O1xuICBoZWFwX3dvcmRzIDogaW50O1xuICBoZWFwX2NodW5rcyA6IGludDtcbiAgbGl2ZV93b3JkcyA6IGludDtcbiAgbGl2ZV9ibG9ja3MgOiBpbnQ7XG4gIGZyZWVfd29yZHMgOiBpbnQ7XG4gIGZyZWVfYmxvY2tzIDogaW50O1xuICBsYXJnZXN0X2ZyZWUgOiBpbnQ7XG4gIGZyYWdtZW50cyA6IGludDtcbiAgY29tcGFjdGlvbnMgOiBpbnQ7XG4gIHRvcF9oZWFwX3dvcmRzIDogaW50O1xuICBzdGFja19zaXplIDogaW50O1xuICBmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6IGludDtcbn1cblxudHlwZSBjb250cm9sID0ge1xuICBtdXRhYmxlIG1pbm9yX2hlYXBfc2l6ZSA6IGludDtcbiAgbXV0YWJsZSBtYWpvcl9oZWFwX2luY3JlbWVudCA6IGludDtcbiAgbXV0YWJsZSBzcGFjZV9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSB2ZXJib3NlIDogaW50O1xuICBtdXRhYmxlIG1heF9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSBzdGFja19saW1pdCA6IGludDtcbiAgbXV0YWJsZSBhbGxvY2F0aW9uX3BvbGljeSA6IGludDtcbiAgd2luZG93X3NpemUgOiBpbnQ7XG4gIGN1c3RvbV9tYWpvcl9yYXRpbyA6IGludDtcbiAgY3VzdG9tX21pbm9yX3JhdGlvIDogaW50O1xuICBjdXN0b21fbWlub3JfbWF4X3NpemUgOiBpbnQ7XG59XG5cbmV4dGVybmFsIHN0YXQgOiB1bml0IC0+IHN0YXQgPSBcImNhbWxfZ2Nfc3RhdFwiXG5leHRlcm5hbCBxdWlja19zdGF0IDogdW5pdCAtPiBzdGF0ID0gXCJjYW1sX2djX3F1aWNrX3N0YXRcIlxuZXh0ZXJuYWwgY291bnRlcnMgOiB1bml0IC0+IChmbG9hdCAqIGZsb2F0ICogZmxvYXQpID0gXCJjYW1sX2djX2NvdW50ZXJzXCJcbmV4dGVybmFsIG1pbm9yX3dvcmRzIDogdW5pdCAtPiAoZmxvYXQgW0B1bmJveGVkXSlcbiAgPSBcImNhbWxfZ2NfbWlub3Jfd29yZHNcIiBcImNhbWxfZ2NfbWlub3Jfd29yZHNfdW5ib3hlZFwiXG5leHRlcm5hbCBnZXQgOiB1bml0IC0+IGNvbnRyb2wgPSBcImNhbWxfZ2NfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGNvbnRyb2wgLT4gdW5pdCA9IFwiY2FtbF9nY19zZXRcIlxuZXh0ZXJuYWwgbWlub3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWlub3JcIlxuZXh0ZXJuYWwgbWFqb3Jfc2xpY2UgOiBpbnQgLT4gaW50ID0gXCJjYW1sX2djX21ham9yX3NsaWNlXCJcbmV4dGVybmFsIG1ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21ham9yXCJcbmV4dGVybmFsIGZ1bGxfbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfZnVsbF9tYWpvclwiXG5leHRlcm5hbCBjb21wYWN0IDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX2NvbXBhY3Rpb25cIlxuZXh0ZXJuYWwgZ2V0X21pbm9yX2ZyZWUgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWlub3JfZnJlZVwiXG5leHRlcm5hbCBnZXRfYnVja2V0IDogaW50IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfYnVja2V0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGdldF9jcmVkaXQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGh1Z2VfZmFsbGJhY2tfY291bnQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50XCJcbmV4dGVybmFsIGV2ZW50bG9nX3BhdXNlIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2V2ZW50bG9nX3BhdXNlXCJcbmV4dGVybmFsIGV2ZW50bG9nX3Jlc3VtZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9ldmVudGxvZ19yZXN1bWVcIlxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcHJpbnRfc3RhdCBjID1cbiAgbGV0IHN0ID0gc3RhdCAoKSBpblxuICBmcHJpbnRmIGMgXCJtaW5vcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1pbm9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJtYWpvcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJjb21wYWN0aW9uczogICAgICAgICAgICAlZFxcblwiIHN0LmNvbXBhY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6ICVkXFxuXCIgc3QuZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgbGV0IGwxID0gU3RyaW5nLmxlbmd0aCAoc3ByaW50ZiBcIiUuMGZcIiBzdC5taW5vcl93b3JkcykgaW5cbiAgZnByaW50ZiBjIFwibWlub3Jfd29yZHM6ICAgICUqLjBmXFxuXCIgbDEgc3QubWlub3Jfd29yZHM7XG4gIGZwcmludGYgYyBcInByb21vdGVkX3dvcmRzOiAlKi4wZlxcblwiIGwxIHN0LnByb21vdGVkX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJtYWpvcl93b3JkczogICAgJSouMGZcXG5cIiBsMSBzdC5tYWpvcl93b3JkcztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGxldCBsMiA9IFN0cmluZy5sZW5ndGggKHNwcmludGYgXCIlZFwiIHN0LnRvcF9oZWFwX3dvcmRzKSBpblxuICBmcHJpbnRmIGMgXCJ0b3BfaGVhcF93b3JkczogJSpkXFxuXCIgbDIgc3QudG9wX2hlYXBfd29yZHM7XG4gIGZwcmludGYgYyBcImhlYXBfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5oZWFwX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJsaXZlX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QubGl2ZV93b3JkcztcbiAgZnByaW50ZiBjIFwiZnJlZV93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmZyZWVfd29yZHM7XG4gIGZwcmludGYgYyBcImxhcmdlc3RfZnJlZTogICAlKmRcXG5cIiBsMiBzdC5sYXJnZXN0X2ZyZWU7XG4gIGZwcmludGYgYyBcImZyYWdtZW50czogICAgICAlKmRcXG5cIiBsMiBzdC5mcmFnbWVudHM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBmcHJpbnRmIGMgXCJsaXZlX2Jsb2NrczogJWRcXG5cIiBzdC5saXZlX2Jsb2NrcztcbiAgZnByaW50ZiBjIFwiZnJlZV9ibG9ja3M6ICVkXFxuXCIgc3QuZnJlZV9ibG9ja3M7XG4gIGZwcmludGYgYyBcImhlYXBfY2h1bmtzOiAlZFxcblwiIHN0LmhlYXBfY2h1bmtzXG5cblxubGV0IGFsbG9jYXRlZF9ieXRlcyAoKSA9XG4gIGxldCAobWksIHBybywgbWEpID0gY291bnRlcnMgKCkgaW5cbiAgKG1pICsuIG1hIC0uIHBybykgKi4gZmxvYXRfb2ZfaW50IChTeXMud29yZF9zaXplIC8gOClcblxuXG5leHRlcm5hbCBmaW5hbGlzZSA6ICgnYSAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyXCJcbmV4dGVybmFsIGZpbmFsaXNlX2xhc3QgOiAodW5pdCAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID1cbiAgXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlXCJcbmV4dGVybmFsIGZpbmFsaXNlX3JlbGVhc2UgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZmluYWxfcmVsZWFzZVwiXG5cblxudHlwZSBhbGFybSA9IGJvb2wgcmVmXG50eXBlIGFsYXJtX3JlYyA9IHthY3RpdmUgOiBhbGFybTsgZiA6IHVuaXQgLT4gdW5pdH1cblxubGV0IHJlYyBjYWxsX2FsYXJtIGFyZWMgPVxuICBpZiAhKGFyZWMuYWN0aXZlKSB0aGVuIGJlZ2luXG4gICAgZmluYWxpc2UgY2FsbF9hbGFybSBhcmVjO1xuICAgIGFyZWMuZiAoKTtcbiAgZW5kXG5cblxubGV0IGNyZWF0ZV9hbGFybSBmID1cbiAgbGV0IGFyZWMgPSB7IGFjdGl2ZSA9IHJlZiB0cnVlOyBmID0gZiB9IGluXG4gIGZpbmFsaXNlIGNhbGxfYWxhcm0gYXJlYztcbiAgYXJlYy5hY3RpdmVcblxuXG5sZXQgZGVsZXRlX2FsYXJtIGEgPSBhIDo9IGZhbHNlXG5cbm1vZHVsZSBNZW1wcm9mID1cbiAgc3RydWN0XG4gICAgdHlwZSBhbGxvY2F0aW9uX3NvdXJjZSA9IE5vcm1hbCB8IE1hcnNoYWwgfCBDdXN0b21cbiAgICB0eXBlIGFsbG9jYXRpb24gPVxuICAgICAgeyBuX3NhbXBsZXMgOiBpbnQ7XG4gICAgICAgIHNpemUgOiBpbnQ7XG4gICAgICAgIHNvdXJjZSA6IGFsbG9jYXRpb25fc291cmNlO1xuICAgICAgICBjYWxsc3RhY2sgOiBQcmludGV4Yy5yYXdfYmFja3RyYWNlIH1cblxuICAgIHR5cGUgKCdtaW5vciwgJ21ham9yKSB0cmFja2VyID0ge1xuICAgICAgYWxsb2NfbWlub3I6IGFsbG9jYXRpb24gLT4gJ21pbm9yIG9wdGlvbjtcbiAgICAgIGFsbG9jX21ham9yOiBhbGxvY2F0aW9uIC0+ICdtYWpvciBvcHRpb247XG4gICAgICBwcm9tb3RlOiAnbWlub3IgLT4gJ21ham9yIG9wdGlvbjtcbiAgICAgIGRlYWxsb2NfbWlub3I6ICdtaW5vciAtPiB1bml0O1xuICAgICAgZGVhbGxvY19tYWpvcjogJ21ham9yIC0+IHVuaXQ7XG4gICAgfVxuXG4gICAgbGV0IG51bGxfdHJhY2tlciA9IHtcbiAgICAgIGFsbG9jX21pbm9yID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgYWxsb2NfbWFqb3IgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBwcm9tb3RlID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgZGVhbGxvY19taW5vciA9IChmdW4gXyAtPiAoKSk7XG4gICAgICBkZWFsbG9jX21ham9yID0gKGZ1biBfIC0+ICgpKTtcbiAgICB9XG5cbiAgICBleHRlcm5hbCBjX3N0YXJ0IDpcbiAgICAgIGZsb2F0IC0+IGludCAtPiAoJ21pbm9yLCAnbWFqb3IpIHRyYWNrZXIgLT4gdW5pdFxuICAgICAgPSBcImNhbWxfbWVtcHJvZl9zdGFydFwiXG5cbiAgICBsZXQgc3RhcnRcbiAgICAgIH5zYW1wbGluZ19yYXRlXG4gICAgICA/KGNhbGxzdGFja19zaXplID0gbWF4X2ludClcbiAgICAgIHRyYWNrZXIgPVxuICAgICAgY19zdGFydCBzYW1wbGluZ19yYXRlIGNhbGxzdGFja19zaXplIHRyYWNrZXJcblxuICAgIGV4dGVybmFsIHN0b3AgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfbWVtcHJvZl9zdG9wXCJcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1lc3NhZ2UgZGlnZXN0IChNRDUpICopXG5cbnR5cGUgdCA9IHN0cmluZ1xuXG5sZXQgY29tcGFyZSA9IFN0cmluZy5jb21wYXJlXG5sZXQgZXF1YWwgPSBTdHJpbmcuZXF1YWxcblxuZXh0ZXJuYWwgdW5zYWZlX3N0cmluZzogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9tZDVfc3RyaW5nXCJcbmV4dGVybmFsIGNoYW5uZWw6IGluX2NoYW5uZWwgLT4gaW50IC0+IHQgPSBcImNhbWxfbWQ1X2NoYW5cIlxuXG5sZXQgc3RyaW5nIHN0ciA9XG4gIHVuc2FmZV9zdHJpbmcgc3RyIDAgKFN0cmluZy5sZW5ndGggc3RyKVxuXG5sZXQgYnl0ZXMgYiA9IHN0cmluZyAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBiKVxuXG5sZXQgc3Vic3RyaW5nIHN0ciBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IFN0cmluZy5sZW5ndGggc3RyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3Quc3Vic3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfc3RyaW5nIHN0ciBvZnMgbGVuXG5cbmxldCBzdWJieXRlcyBiIG9mcyBsZW4gPSBzdWJzdHJpbmcgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYikgb2ZzIGxlblxuXG5sZXQgZmlsZSBmaWxlbmFtZSA9XG4gIGxldCBpYyA9IG9wZW5faW5fYmluIGZpbGVuYW1lIGluXG4gIG1hdGNoIGNoYW5uZWwgaWMgKC0xKSB3aXRoXG4gICAgfCBkIC0+IGNsb3NlX2luIGljOyBkXG4gICAgfCBleGNlcHRpb24gZSAtPiBjbG9zZV9pbiBpYzsgcmFpc2UgZVxuXG5sZXQgb3V0cHV0IGNoYW4gZGlnZXN0ID1cbiAgb3V0cHV0X3N0cmluZyBjaGFuIGRpZ2VzdFxuXG5sZXQgaW5wdXQgY2hhbiA9IHJlYWxseV9pbnB1dF9zdHJpbmcgY2hhbiAxNlxuXG5sZXQgY2hhcl9oZXggbiA9XG4gIENoYXIudW5zYWZlX2NociAobiArIGlmIG4gPCAxMCB0aGVuIENoYXIuY29kZSAnMCcgZWxzZSAoQ2hhci5jb2RlICdhJyAtIDEwKSlcblxubGV0IHRvX2hleCBkID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBkIDw+IDE2IHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3QudG9faGV4XCI7XG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMzIgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgbGV0IHggPSBDaGFyLmNvZGUgZC5baV0gaW5cbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKSAoY2hhcl9oZXggKHggbHNyIDQpKTtcbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKzEpIChjaGFyX2hleCAoeCBsYW5kIDB4MGYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXN1bHRcblxubGV0IGZyb21faGV4IHMgPVxuICBpZiBTdHJpbmcubGVuZ3RoIHMgPD4gMzIgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC5mcm9tX2hleFwiO1xuICBsZXQgZGlnaXQgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnMCcuLic5JyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnMCdcbiAgICB8ICdBJy4uJ0YnIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICdBJyArIDEwXG4gICAgfCAnYScuLidmJyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnYScgKyAxMFxuICAgIHwgXyAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkRpZ2VzdC5mcm9tX2hleFwiKVxuICBpblxuICBsZXQgYnl0ZSBpID0gZGlnaXQgcy5baV0gbHNsIDQgKyBkaWdpdCBzLltpKzFdIGluXG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMTYgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgQnl0ZXMuc2V0IHJlc3VsdCBpIChDaGFyLmNociAoYnl0ZSAoMiAqIGkpKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzdWx0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEhhc2ggdGFibGVzICopXG5cbigqIFdlIGRvIGR5bmFtaWMgaGFzaGluZywgYW5kIHJlc2l6ZSB0aGUgdGFibGUgYW5kIHJlaGFzaCB0aGUgZWxlbWVudHNcbiAgIHdoZW4gYnVja2V0cyBiZWNvbWUgdG9vIGxvbmcuICopXG5cbnR5cGUgKCdhLCAnYikgdCA9XG4gIHsgbXV0YWJsZSBzaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgKCogbnVtYmVyIG9mIGVudHJpZXMgKilcbiAgICBtdXRhYmxlIGRhdGE6ICgnYSwgJ2IpIGJ1Y2tldGxpc3QgYXJyYXk7ICAoKiB0aGUgYnVja2V0cyAqKVxuICAgIHNlZWQ6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAoKiBmb3IgcmFuZG9taXphdGlvbiAqKVxuICAgIG11dGFibGUgaW5pdGlhbF9zaXplOiBpbnQ7ICAgICAgICAgICAgICAgICgqIGluaXRpYWwgYXJyYXkgc2l6ZSAqKVxuICB9XG5cbmFuZCAoJ2EsICdiKSBidWNrZXRsaXN0ID1cbiAgICBFbXB0eVxuICB8IENvbnMgb2YgeyBtdXRhYmxlIGtleTogJ2E7XG4gICAgICAgICAgICAgIG11dGFibGUgZGF0YTogJ2I7XG4gICAgICAgICAgICAgIG11dGFibGUgbmV4dDogKCdhLCAnYikgYnVja2V0bGlzdCB9XG5cbigqIFRoZSBzaWduIG9mIGluaXRpYWxfc2l6ZSBlbmNvZGVzIHRoZSBmYWN0IHRoYXQgYSB0cmF2ZXJzYWwgaXNcbiAgIG9uZ29pbmcgb3Igbm90LlxuXG4gICBUaGlzIGRpc2FibGVzIHRoZSBlZmZpY2llbnQgaW4gcGxhY2UgaW1wbGVtZW50YXRpb24gb2YgcmVzaXppbmcuXG4qKVxuXG5sZXQgb25nb2luZ190cmF2ZXJzYWwgaCA9XG4gIE9iai5zaXplIChPYmoucmVwciBoKSA8IDQgKCogY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBoYXNoIHRhYmxlcyAqKVxuICB8fCBoLmluaXRpYWxfc2l6ZSA8IDBcblxubGV0IGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaCA9XG4gIGguaW5pdGlhbF9zaXplIDwtIC0gaC5pbml0aWFsX3NpemVcblxuKCogVG8gcGljayByYW5kb20gc2VlZHMgaWYgcmVxdWVzdGVkICopXG5cbmxldCByYW5kb21pemVkX2RlZmF1bHQgPVxuICBsZXQgcGFyYW1zID1cbiAgICB0cnkgU3lzLmdldGVudiBcIk9DQU1MUlVOUEFSQU1cIiB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiQ0FNTFJVTlBBUkFNXCIgd2l0aCBOb3RfZm91bmQgLT4gXCJcIiBpblxuICBTdHJpbmcuY29udGFpbnMgcGFyYW1zICdSJ1xuXG5sZXQgcmFuZG9taXplZCA9IHJlZiByYW5kb21pemVkX2RlZmF1bHRcblxubGV0IHJhbmRvbWl6ZSAoKSA9IHJhbmRvbWl6ZWQgOj0gdHJ1ZVxubGV0IGlzX3JhbmRvbWl6ZWQgKCkgPSAhcmFuZG9taXplZFxuXG5sZXQgcHJuZyA9IGxhenkgKFJhbmRvbS5TdGF0ZS5tYWtlX3NlbGZfaW5pdCgpKVxuXG4oKiBGdW5jdGlvbnMgd2hpY2ggYXBwZWFyIGJlZm9yZSB0aGUgZnVuY3RvcmlhbCBpbnRlcmZhY2UgbXVzdCBlaXRoZXIgYmVcbiAgIGluZGVwZW5kZW50IG9mIHRoZSBoYXNoIGZ1bmN0aW9uIG9yIHRha2UgaXQgYXMgYSBwYXJhbWV0ZXIgKHNlZSAjMjIwMiBhbmRcbiAgIGNvZGUgYmVsb3cgdGhlIGZ1bmN0b3IgZGVmaW5pdGlvbnMuICopXG5cbigqIENyZWF0aW5nIGEgZnJlc2gsIGVtcHR5IHRhYmxlICopXG5cbmxldCByZWMgcG93ZXJfMl9hYm92ZSB4IG4gPVxuICBpZiB4ID49IG4gdGhlbiB4XG4gIGVsc2UgaWYgeCAqIDIgPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIHhcbiAgZWxzZSBwb3dlcl8yX2Fib3ZlICh4ICogMikgblxuXG5sZXQgY3JlYXRlID8ocmFuZG9tID0gIXJhbmRvbWl6ZWQpIGluaXRpYWxfc2l6ZSA9XG4gIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiBpbml0aWFsX3NpemUgaW5cbiAgbGV0IHNlZWQgPSBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSBlbHNlIDAgaW5cbiAgeyBpbml0aWFsX3NpemUgPSBzOyBzaXplID0gMDsgc2VlZCA9IHNlZWQ7IGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHkgfVxuXG5sZXQgY2xlYXIgaCA9XG4gIGlmIGguc2l6ZSA+IDAgdGhlbiBiZWdpblxuICAgIGguc2l6ZSA8LSAwO1xuICAgIEFycmF5LmZpbGwgaC5kYXRhIDAgKEFycmF5Lmxlbmd0aCBoLmRhdGEpIEVtcHR5XG4gIGVuZFxuXG5sZXQgcmVzZXQgaCA9XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA8IDQgKCogY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBoYXNoIHRhYmxlcyAqKVxuICAgIHx8IGxlbiA9IGFicyBoLmluaXRpYWxfc2l6ZSB0aGVuXG4gICAgY2xlYXIgaFxuICBlbHNlIGJlZ2luXG4gICAgaC5zaXplIDwtIDA7XG4gICAgaC5kYXRhIDwtIEFycmF5Lm1ha2UgKGFicyBoLmluaXRpYWxfc2l6ZSkgRW1wdHlcbiAgZW5kXG5cbmxldCBjb3B5X2J1Y2tldGxpc3QgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IEVtcHR5XG4gIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgbGV0IHJlYyBsb29wIHByZWMgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+ICgpXG4gICAgICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgICAgbGV0IHIgPSBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICAgIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICB8IENvbnMgcHJlYyAtPiAgcHJlYy5uZXh0IDwtIHJcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGxvb3AgciBuZXh0XG4gICAgICBpblxuICAgICAgbGV0IHIgPSBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGluXG4gICAgICBsb29wIHIgbmV4dDtcbiAgICAgIHJcblxubGV0IGNvcHkgaCA9IHsgaCB3aXRoIGRhdGEgPSBBcnJheS5tYXAgY29weV9idWNrZXRsaXN0IGguZGF0YSB9XG5cbmxldCBsZW5ndGggaCA9IGguc2l6ZVxuXG5sZXQgaW5zZXJ0X2FsbF9idWNrZXRzIGluZGV4ZnVuIGlucGxhY2Ugb2RhdGEgbmRhdGEgPVxuICBsZXQgbnNpemUgPSBBcnJheS5sZW5ndGggbmRhdGEgaW5cbiAgbGV0IG5kYXRhX3RhaWwgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gIGxldCByZWMgaW5zZXJ0X2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPiAoKVxuICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBhcyBjZWxsIC0+XG4gICAgICAgIGxldCBjZWxsID1cbiAgICAgICAgICBpZiBpbnBsYWNlIHRoZW4gY2VsbFxuICAgICAgICAgIGVsc2UgQ29ucyB7a2V5OyBkYXRhOyBuZXh0ID0gRW1wdHl9XG4gICAgICAgIGluXG4gICAgICAgIGxldCBuaWR4ID0gaW5kZXhmdW4ga2V5IGluXG4gICAgICAgIGJlZ2luIG1hdGNoIG5kYXRhX3RhaWwuKG5pZHgpIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBuZGF0YS4obmlkeCkgPC0gY2VsbDtcbiAgICAgICAgfCBDb25zIHRhaWwgLT4gdGFpbC5uZXh0IDwtIGNlbGw7XG4gICAgICAgIGVuZDtcbiAgICAgICAgbmRhdGFfdGFpbC4obmlkeCkgPC0gY2VsbDtcbiAgICAgICAgaW5zZXJ0X2J1Y2tldCBuZXh0XG4gIGluXG4gIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggb2RhdGEgLSAxIGRvXG4gICAgaW5zZXJ0X2J1Y2tldCBvZGF0YS4oaSlcbiAgZG9uZTtcbiAgaWYgaW5wbGFjZSB0aGVuXG4gICAgZm9yIGkgPSAwIHRvIG5zaXplIC0gMSBkb1xuICAgICAgbWF0Y2ggbmRhdGFfdGFpbC4oaSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiAoKVxuICAgICAgfCBDb25zIHRhaWwgLT4gdGFpbC5uZXh0IDwtIEVtcHR5XG4gICAgZG9uZVxuXG5sZXQgcmVzaXplIGluZGV4ZnVuIGggPVxuICBsZXQgb2RhdGEgPSBoLmRhdGEgaW5cbiAgbGV0IG9zaXplID0gQXJyYXkubGVuZ3RoIG9kYXRhIGluXG4gIGxldCBuc2l6ZSA9IG9zaXplICogMiBpblxuICBpZiBuc2l6ZSA8IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4gYmVnaW5cbiAgICBsZXQgbmRhdGEgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gICAgbGV0IGlucGxhY2UgPSBub3QgKG9uZ29pbmdfdHJhdmVyc2FsIGgpIGluXG4gICAgaC5kYXRhIDwtIG5kYXRhOyAgICAgICAgICAoKiBzbyB0aGF0IGluZGV4ZnVuIHNlZXMgdGhlIG5ldyBidWNrZXQgY291bnQgKilcbiAgICBpbnNlcnRfYWxsX2J1Y2tldHMgKGluZGV4ZnVuIGgpIGlucGxhY2Ugb2RhdGEgbmRhdGFcbiAgZW5kXG5cbmxldCBpdGVyIGYgaCA9XG4gIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICB8IEVtcHR5IC0+XG4gICAgICAgICgpXG4gICAgfCBDb25ze2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgZiBrZXkgZGF0YTsgZG9fYnVja2V0IG5leHQgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgZG9fYnVja2V0IGQuKGkpXG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG5sZXQgcmVjIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgcHJlYyA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIEVtcHR5XG4gICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gRW1wdHlcbiAgICAgIGVuZFxuICB8IChDb25zICh7a2V5OyBkYXRhOyBuZXh0fSBhcyBjKSkgYXMgc2xvdCAtPlxuICAgICAgYmVnaW4gbWF0Y2ggZiBrZXkgZGF0YSB3aXRoXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHByZWMgbmV4dFxuICAgICAgfCBTb21lIGRhdGEgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gc2xvdFxuICAgICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBzbG90XG4gICAgICAgICAgZW5kO1xuICAgICAgICAgIGMuZGF0YSA8LSBkYXRhO1xuICAgICAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgc2xvdCBuZXh0XG4gICAgICBlbmRcblxubGV0IGZpbHRlcl9tYXBfaW5wbGFjZSBmIGggPVxuICBsZXQgZCA9IGguZGF0YSBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBFbXB0eSBoLmRhdGEuKGkpXG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGhcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbmxldCBmb2xkIGYgaCBpbml0ID1cbiAgbGV0IHJlYyBkb19idWNrZXQgYiBhY2N1ID1cbiAgICBtYXRjaCBiIHdpdGhcbiAgICAgIEVtcHR5IC0+XG4gICAgICAgIGFjY3VcbiAgICB8IENvbnN7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBkb19idWNrZXQgbmV4dCAoZiBrZXkgZGF0YSBhY2N1KSBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICBsZXQgYWNjdSA9IHJlZiBpbml0IGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgYWNjdSA6PSBkb19idWNrZXQgZC4oaSkgIWFjY3VcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICAhYWNjdVxuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxudHlwZSBzdGF0aXN0aWNzID0ge1xuICBudW1fYmluZGluZ3M6IGludDtcbiAgbnVtX2J1Y2tldHM6IGludDtcbiAgbWF4X2J1Y2tldF9sZW5ndGg6IGludDtcbiAgYnVja2V0X2hpc3RvZ3JhbTogaW50IGFycmF5XG59XG5cbmxldCByZWMgYnVja2V0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhY2N1XG4gIHwgQ29uc3tuZXh0fSAtPiBidWNrZXRfbGVuZ3RoIChhY2N1ICsgMSkgbmV4dFxuXG5sZXQgc3RhdHMgaCA9XG4gIGxldCBtYmwgPVxuICAgIEFycmF5LmZvbGRfbGVmdCAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGggMCBiKSkgMCBoLmRhdGEgaW5cbiAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICBBcnJheS5pdGVyXG4gICAgKGZ1biBiIC0+XG4gICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGggMCBiIGluXG4gICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICBoLmRhdGE7XG4gIHsgbnVtX2JpbmRpbmdzID0gaC5zaXplO1xuICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHRibCA9XG4gICgqIGNhcHR1cmUgY3VycmVudCBhcnJheSwgc28gdGhhdCBldmVuIGlmIHRoZSB0YWJsZSBpcyByZXNpemVkIHdlXG4gICAgIGtlZXAgaXRlcmF0aW5nIG9uIHRoZSBzYW1lIGFycmF5ICopXG4gIGxldCB0YmxfZGF0YSA9IHRibC5kYXRhIGluXG4gICgqIHN0YXRlOiBpbmRleCAqIG5leHQgYnVja2V0IHRvIHRyYXZlcnNlICopXG4gIGxldCByZWMgYXV4IGkgYnVjayAoKSA9IG1hdGNoIGJ1Y2sgd2l0aFxuICAgIHwgRW1wdHkgLT5cbiAgICAgICAgaWYgaSA9IEFycmF5Lmxlbmd0aCB0YmxfZGF0YVxuICAgICAgICB0aGVuIFNlcS5OaWxcbiAgICAgICAgZWxzZSBhdXgoaSsxKSB0YmxfZGF0YS4oaSkgKClcbiAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgU2VxLkNvbnMgKChrZXksIGRhdGEpLCBhdXggaSBuZXh0KVxuICBpblxuICBhdXggMCBFbXB0eVxuXG5sZXQgdG9fc2VxX2tleXMgbSA9IFNlcS5tYXAgZnN0ICh0b19zZXEgbSlcblxubGV0IHRvX3NlcV92YWx1ZXMgbSA9IFNlcS5tYXAgc25kICh0b19zZXEgbSlcblxuKCogRnVuY3RvcmlhbCBpbnRlcmZhY2UgKilcblxubW9kdWxlIHR5cGUgSGFzaGVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaGFzaDogdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFNlZWRlZEhhc2hlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGhhc2g6IGludCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhJ2EgdFxuICAgIHZhbCBjcmVhdGU6IGludCAtPiAnYSB0XG4gICAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIGNvcHk6ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBhZGQ6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgcmVtb3ZlOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gICAgdmFsIGZpbmQ6ICdhIHQgLT4ga2V5IC0+ICdhXG4gICAgdmFsIGZpbmRfb3B0OiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgICB2YWwgZmluZF9hbGw6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2U6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZm9sZDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIHZhbCBsZW5ndGg6ICdhIHQgLT4gaW50XG4gICAgdmFsIHN0YXRzOiAnYSB0IC0+IHN0YXRpc3RpY3NcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFNlZWRlZFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISdhIHRcbiAgICB2YWwgY3JlYXRlIDogP3JhbmRvbTpib29sIC0+IGludCAtPiAnYSB0XG4gICAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gICAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICAgIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gICAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2U6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgICB2YWwgc3RhdHM6ICdhIHQgLT4gc3RhdGlzdGljc1xuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIE1ha2VTZWVkZWQoSDogU2VlZGVkSGFzaGVkVHlwZSk6IChTZWVkZWRTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgdHlwZSBrZXkgPSBILnRcbiAgICB0eXBlICdhIGhhc2h0YmwgPSAoa2V5LCAnYSkgdFxuICAgIHR5cGUgJ2EgdCA9ICdhIGhhc2h0YmxcbiAgICBsZXQgY3JlYXRlID0gY3JlYXRlXG4gICAgbGV0IGNsZWFyID0gY2xlYXJcbiAgICBsZXQgcmVzZXQgPSByZXNldFxuICAgIGxldCBjb3B5ID0gY29weVxuXG4gICAgbGV0IGtleV9pbmRleCBoIGtleSA9XG4gICAgICAoSC5oYXNoIGguc2VlZCBrZXkpIGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuXG4gICAgbGV0IGFkZCBoIGtleSBkYXRhID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICBsZXQgYnVja2V0ID0gQ29uc3trZXk7IGRhdGE7IG5leHQ9aC5kYXRhLihpKX0gaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9idWNrZXQgaCBpIGtleSBwcmVjID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAoKVxuICAgICAgfCAoQ29ucyB7a2V5PWs7IG5leHR9KSBhcyBjIC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gbmV4dFxuICAgICAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIG5leHRcbiAgICAgICAgICBlbmRcbiAgICAgICAgICBlbHNlIHJlbW92ZV9idWNrZXQgaCBpIGtleSBjIG5leHRcblxuICAgIGxldCByZW1vdmUgaCBrZXkgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIHJlbW92ZV9idWNrZXQgaCBpIGtleSBFbXB0eSBoLmRhdGEuKGkpXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjIGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgayB0aGVuIGRhdGEgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dFxuXG4gICAgbGV0IGZpbmQgaCBrZXkgPVxuICAgICAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsxIHRoZW4gZDEgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsyIHRoZW4gZDIgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMyB0aGVuIGQzIGVsc2UgZmluZF9yZWMga2V5IG5leHQzXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrIHRoZW4gU29tZSBkYXRhIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0XG5cbiAgICBsZXQgZmluZF9vcHQgaCBrZXkgPVxuICAgICAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMSB0aGVuIFNvbWUgZDEgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMiB0aGVuIFNvbWUgZDIgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazMgdGhlbiBTb21lIGQzIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0M1xuXG4gICAgbGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgICAgIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIFtdXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE9ZDsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiBkIDo6IGZpbmRfaW5fYnVja2V0IG5leHRcbiAgICAgICAgICBlbHNlIGZpbmRfaW5fYnVja2V0IG5leHQgaW5cbiAgICAgIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG4gICAgbGV0IHJlYyByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBDb25zICh7a2V5PWs7IG5leHR9IGFzIHNsb3QpIC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gKHNsb3Qua2V5IDwtIGtleTsgc2xvdC5kYXRhIDwtIGRhdGE7IGZhbHNlKVxuICAgICAgICAgIGVsc2UgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbmV4dFxuXG4gICAgbGV0IHJlcGxhY2UgaCBrZXkgZGF0YSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gICAgICBpZiByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBsIHRoZW4gYmVnaW5cbiAgICAgICAgaC5kYXRhLihpKSA8LSBDb25ze2tleTsgZGF0YTsgbmV4dD1sfTtcbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcbiAgICAgIGVuZFxuXG4gICAgbGV0IG1lbSBoIGtleSA9XG4gICAgICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnN7a2V5PWs7IG5leHR9IC0+XG4gICAgICAgICAgSC5lcXVhbCBrIGtleSB8fCBtZW1faW5fYnVja2V0IG5leHQgaW5cbiAgICAgIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbiAgICBsZXQgYWRkX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbiAgICBsZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuXG4gICAgbGV0IGl0ZXIgPSBpdGVyXG4gICAgbGV0IGZpbHRlcl9tYXBfaW5wbGFjZSA9IGZpbHRlcl9tYXBfaW5wbGFjZVxuICAgIGxldCBmb2xkID0gZm9sZFxuICAgIGxldCBsZW5ndGggPSBsZW5ndGhcbiAgICBsZXQgc3RhdHMgPSBzdGF0c1xuICAgIGxldCB0b19zZXEgPSB0b19zZXFcbiAgICBsZXQgdG9fc2VxX2tleXMgPSB0b19zZXFfa2V5c1xuICAgIGxldCB0b19zZXFfdmFsdWVzID0gdG9fc2VxX3ZhbHVlc1xuICBlbmRcblxubW9kdWxlIE1ha2UoSDogSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4oKiBQb2x5bW9ycGhpYyBoYXNoIGZ1bmN0aW9uLWJhc2VkIHRhYmxlcyAqKVxuKCogQ29kZSBpbmNsdWRlZCBiZWxvdyB0aGUgZnVuY3RvcmlhbCBpbnRlcmZhY2UgdG8gZ3VhcmQgYWdhaW5zdCBhY2NpZGVudGFsXG4gICB1c2UgLSBzZWUgIzIyMDIgKilcblxuZXh0ZXJuYWwgc2VlZGVkX2hhc2hfcGFyYW0gOlxuICBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiBpbnQgPSBcImNhbWxfaGFzaFwiIFtAQG5vYWxsb2NdXG5cbmxldCBoYXNoIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgMCB4XG5sZXQgaGFzaF9wYXJhbSBuMSBuMiB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gbjEgbjIgMCB4XG5sZXQgc2VlZGVkX2hhc2ggc2VlZCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIHNlZWQgeFxuXG5sZXQga2V5X2luZGV4IGgga2V5ID1cbiAgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDRcbiAgdGhlbiAoc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIGguc2VlZCBrZXkpIGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuICBlbHNlIGludmFsaWRfYXJnIFwiSGFzaHRibDogdW5zdXBwb3J0ZWQgaGFzaCB0YWJsZSBmb3JtYXRcIlxuXG5sZXQgYWRkIGgga2V5IGRhdGEgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICBsZXQgYnVja2V0ID0gQ29uc3trZXk7IGRhdGE7IG5leHQ9aC5kYXRhLihpKX0gaW5cbiAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG5cbmxldCByZWMgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IHByZWMgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICAoKVxuICB8IChDb25zIHtrZXk9azsgbmV4dH0pIGFzIGMgLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIGJlZ2luXG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIG5leHRcbiAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIG5leHRcbiAgICAgIGVuZFxuICAgICAgZWxzZSByZW1vdmVfYnVja2V0IGggaSBrZXkgYyBuZXh0XG5cbmxldCByZW1vdmUgaCBrZXkgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICByZW1vdmVfYnVja2V0IGggaSBrZXkgRW1wdHkgaC5kYXRhLihpKVxuXG5sZXQgcmVjIGZpbmRfcmVjIGtleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrID0gMCB0aGVuIGRhdGEgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dFxuXG5sZXQgZmluZCBoIGtleSA9XG4gIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrMSA9IDAgdGhlbiBkMSBlbHNlXG4gICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMiA9IDAgdGhlbiBkMiBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgaWYgY29tcGFyZSBrZXkgazMgPSAwIHRoZW4gZDMgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dDNcblxubGV0IHJlYyBmaW5kX3JlY19vcHQga2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgTm9uZVxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrID0gMCB0aGVuIFNvbWUgZGF0YSBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dFxuXG5sZXQgZmluZF9vcHQgaCBrZXkgPVxuICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICB8IEVtcHR5IC0+IE5vbmVcbiAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsxID0gMCB0aGVuIFNvbWUgZDEgZWxzZVxuICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGsyID0gMCB0aGVuIFNvbWUgZDIgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMyA9IDAgdGhlbiBTb21lIGQzIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0M1xuXG5sZXQgZmluZF9hbGwgaCBrZXkgPVxuICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgW11cbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gZGF0YSA6OiBmaW5kX2luX2J1Y2tldCBuZXh0XG4gICAgICBlbHNlIGZpbmRfaW5fYnVja2V0IG5leHQgaW5cbiAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbmxldCByZWMgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoe2tleT1rOyBuZXh0fSBhcyBzbG90KSAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gKHNsb3Qua2V5IDwtIGtleTsgc2xvdC5kYXRhIDwtIGRhdGE7IGZhbHNlKVxuICAgICAgZWxzZSByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBuZXh0XG5cbmxldCByZXBsYWNlIGgga2V5IGRhdGEgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgaWYgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbCB0aGVuIGJlZ2luXG4gICAgaC5kYXRhLihpKSA8LSBDb25ze2tleTsgZGF0YTsgbmV4dD1sfTtcbiAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG4gIGVuZFxuXG5sZXQgbWVtIGgga2V5ID1cbiAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25ze2tleT1rOyBuZXh0fSAtPlxuICAgICAgY29tcGFyZSBrIGtleSA9IDAgfHwgbWVtX2luX2J1Y2tldCBuZXh0IGluXG4gIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbmxldCBhZGRfc2VxIHRibCBpID1cbiAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG5sZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gIHJlcGxhY2Vfc2VxIHRibCBpO1xuICB0YmxcblxubGV0IHJlYnVpbGQgPyhyYW5kb20gPSAhcmFuZG9taXplZCkgaCA9XG4gIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiAoQXJyYXkubGVuZ3RoIGguZGF0YSkgaW5cbiAgbGV0IHNlZWQgPVxuICAgIGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpXG4gICAgZWxzZSBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNCB0aGVuIGguc2VlZFxuICAgIGVsc2UgMCBpblxuICBsZXQgaCcgPSB7XG4gICAgc2l6ZSA9IGguc2l6ZTtcbiAgICBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5O1xuICAgIHNlZWQgPSBzZWVkO1xuICAgIGluaXRpYWxfc2l6ZSA9IGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0IHRoZW4gaC5pbml0aWFsX3NpemUgZWxzZSBzXG4gIH0gaW5cbiAgaW5zZXJ0X2FsbF9idWNrZXRzIChrZXlfaW5kZXggaCcpIGZhbHNlIGguZGF0YSBoJy5kYXRhO1xuICBoJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiogV2VhayBhcnJheSBvcGVyYXRpb25zICopXG5cbnR5cGUgISdhIHRcblxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+ICdhIHQgPSBcImNhbWxfd2Vha19jcmVhdGVcIlxuXG5sZXQgY3JlYXRlIGwgPVxuICBpZiBub3QgKDAgPD0gbCAmJiBsIDw9IE9iai5FcGhlbWVyb24ubWF4X2VwaGVfbGVuZ3RoKSB0aGVuXG4gICAgaW52YWxpZF9hcmcoXCJXZWFrLmNyZWF0ZVwiKTtcbiAgY3JlYXRlIGxcblxuKCoqIG51bWJlciBvZiBhZGRpdGlvbmFsIHZhbHVlcyBpbiBhIHdlYWsgcG9pbnRlciAqKVxubGV0IGFkZGl0aW9uYWxfdmFsdWVzID0gMlxuXG5sZXQgbGVuZ3RoIHggPSBPYmouc2l6ZShPYmoucmVwciB4KSAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbmxldCByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gbXNnID1cbiAgaWYgbm90ICgwIDw9IG8gJiYgbyA8IGxlbmd0aCBlKSB0aGVuXG4gICAgaW52YWxpZF9hcmcobXNnKVxuXG5leHRlcm5hbCBzZXQnIDogJ2EgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9rZXlcIlxuZXh0ZXJuYWwgdW5zZXQgOiAnYSB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfa2V5XCJcbmxldCBzZXQgZSBvIHggPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLnNldFwiO1xuICBtYXRjaCB4IHdpdGhcbiAgfCBOb25lIC0+IHVuc2V0IGUgb1xuICB8IFNvbWUgeCAtPiBzZXQnIGUgbyB4XG5cbmV4dGVybmFsIGdldCA6ICdhIHQgLT4gaW50IC0+ICdhIG9wdGlvbiA9IFwiY2FtbF93ZWFrX2dldFwiXG5sZXQgZ2V0IGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuZ2V0XCI7XG4gIGdldCBlIG9cblxuZXh0ZXJuYWwgZ2V0X2NvcHkgOiAnYSB0IC0+IGludCAtPiAnYSBvcHRpb24gPSBcImNhbWxfd2Vha19nZXRfY29weVwiXG5sZXQgZ2V0X2NvcHkgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5nZXRfY29weVwiO1xuICBnZXRfY29weSBlIG9cblxuZXh0ZXJuYWwgY2hlY2sgOiAnYSB0IC0+IGludCAtPiBib29sID0gXCJjYW1sX3dlYWtfY2hlY2tcIlxubGV0IGNoZWNrIGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuY2hlY2tcIjtcbiAgY2hlY2sgZSBvXG5cbmV4dGVybmFsIGJsaXQgOiAnYSB0IC0+IGludCAtPiAnYSB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF93ZWFrX2JsaXRcIlxuXG4oKiBibGl0OiBzcmMgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuICopXG5sZXQgYmxpdCBlMSBvMSBlMiBvMiBsID1cbiAgaWYgbCA8IDAgfHwgbzEgPCAwIHx8IG8xID4gbGVuZ3RoIGUxIC0gbFxuICAgICB8fCBvMiA8IDAgfHwgbzIgPiBsZW5ndGggZTIgLSBsXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXZWFrLmJsaXRcIlxuICBlbHNlIGlmIGwgPD4gMCB0aGVuIGJsaXQgZTEgbzEgZTIgbzIgbFxuXG5sZXQgZmlsbCBhciBvZnMgbGVuIHggPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIGFyIC0gbGVuXG4gIHRoZW4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJXZWFrLmZpbGxcIilcbiAgZWxzZSBiZWdpblxuICAgIGZvciBpID0gb2ZzIHRvIChvZnMgKyBsZW4gLSAxKSBkb1xuICAgICAgc2V0IGFyIGkgeFxuICAgIGRvbmVcbiAgZW5kXG5cblxuKCoqIFdlYWsgaGFzaCB0YWJsZXMgKilcblxubW9kdWxlIHR5cGUgUyA9IHNpZ1xuICB0eXBlIGRhdGFcbiAgdHlwZSB0XG4gIHZhbCBjcmVhdGUgOiBpbnQgLT4gdFxuICB2YWwgY2xlYXIgOiB0IC0+IHVuaXRcbiAgdmFsIG1lcmdlIDogdCAtPiBkYXRhIC0+IGRhdGFcbiAgdmFsIGFkZCA6IHQgLT4gZGF0YSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiB0IC0+IGRhdGEgLT4gdW5pdFxuICB2YWwgZmluZCA6IHQgLT4gZGF0YSAtPiBkYXRhXG4gIHZhbCBmaW5kX29wdCA6IHQgLT4gZGF0YSAtPiBkYXRhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiB0IC0+IGRhdGEgLT4gZGF0YSBsaXN0XG4gIHZhbCBtZW0gOiB0IC0+IGRhdGEgLT4gYm9vbFxuICB2YWwgaXRlciA6IChkYXRhIC0+IHVuaXQpIC0+IHQgLT4gdW5pdFxuICB2YWwgZm9sZCA6IChkYXRhIC0+ICdhIC0+ICdhKSAtPiB0IC0+ICdhIC0+ICdhXG4gIHZhbCBjb3VudCA6IHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6IHQgLT4gaW50ICogaW50ICogaW50ICogaW50ICogaW50ICogaW50XG5lbmRcblxubW9kdWxlIE1ha2UgKEggOiBIYXNodGJsLkhhc2hlZFR5cGUpIDogKFMgd2l0aCB0eXBlIGRhdGEgPSBILnQpID0gc3RydWN0XG5cbiAgdHlwZSAnYSB3ZWFrX3QgPSAnYSB0XG4gIGxldCB3ZWFrX2NyZWF0ZSA9IGNyZWF0ZVxuICBsZXQgZW1wdHlidWNrZXQgPSB3ZWFrX2NyZWF0ZSAwXG5cbiAgdHlwZSBkYXRhID0gSC50XG5cbiAgdHlwZSB0ID0ge1xuICAgIG11dGFibGUgdGFibGUgOiBkYXRhIHdlYWtfdCBhcnJheTtcbiAgICBtdXRhYmxlIGhhc2hlcyA6IGludCBhcnJheSBhcnJheTtcbiAgICBtdXRhYmxlIGxpbWl0IDogaW50OyAgICAgICAgICAgICAgICgqIGJ1Y2tldCBzaXplIGxpbWl0ICopXG4gICAgbXV0YWJsZSBvdmVyc2l6ZSA6IGludDsgICAgICAgICAgICAoKiBudW1iZXIgb2Ygb3ZlcnNpemUgYnVja2V0cyAqKVxuICAgIG11dGFibGUgcm92ZXIgOiBpbnQ7ICAgICAgICAgICAgICAgKCogZm9yIGludGVybmFsIGJvb2trZWVwaW5nICopXG4gIH1cblxuICBsZXQgZ2V0X2luZGV4IHQgaCA9IChoIGxhbmQgbWF4X2ludCkgbW9kIChBcnJheS5sZW5ndGggdC50YWJsZSlcblxuICBsZXQgbGltaXQgPSA3XG4gIGxldCBvdmVyX2xpbWl0ID0gMlxuXG4gIGxldCBjcmVhdGUgc3ogPVxuICAgIGxldCBzeiA9IGlmIHN6IDwgNyB0aGVuIDcgZWxzZSBzeiBpblxuICAgIGxldCBzeiA9IGlmIHN6ID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiBTeXMubWF4X2FycmF5X2xlbmd0aCBlbHNlIHN6IGluXG4gICAge1xuICAgICAgdGFibGUgPSBBcnJheS5tYWtlIHN6IGVtcHR5YnVja2V0O1xuICAgICAgaGFzaGVzID0gQXJyYXkubWFrZSBzeiBbfCB8XTtcbiAgICAgIGxpbWl0ID0gbGltaXQ7XG4gICAgICBvdmVyc2l6ZSA9IDA7XG4gICAgICByb3ZlciA9IDA7XG4gICAgfVxuXG4gIGxldCBjbGVhciB0ID1cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIHQudGFibGUgLSAxIGRvXG4gICAgICB0LnRhYmxlLihpKSA8LSBlbXB0eWJ1Y2tldDtcbiAgICAgIHQuaGFzaGVzLihpKSA8LSBbfCB8XTtcbiAgICBkb25lO1xuICAgIHQubGltaXQgPC0gbGltaXQ7XG4gICAgdC5vdmVyc2l6ZSA8LSAwXG5cblxuICBsZXQgZm9sZCBmIHQgaW5pdCA9XG4gICAgbGV0IHJlYyBmb2xkX2J1Y2tldCBpIGIgYWNjdSA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gYWNjdSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICAgIHwgU29tZSB2IC0+IGZvbGRfYnVja2V0IChpKzEpIGIgKGYgdiBhY2N1KVxuICAgICAgfCBOb25lIC0+IGZvbGRfYnVja2V0IChpKzEpIGIgYWNjdVxuICAgIGluXG4gICAgQXJyYXkuZm9sZF9yaWdodCAoZm9sZF9idWNrZXQgMCkgdC50YWJsZSBpbml0XG5cblxuICBsZXQgaXRlciBmIHQgPVxuICAgIGxldCByZWMgaXRlcl9idWNrZXQgaSBiID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiAoKSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICAgIHwgU29tZSB2IC0+IGYgdjsgaXRlcl9idWNrZXQgKGkrMSkgYlxuICAgICAgfCBOb25lIC0+IGl0ZXJfYnVja2V0IChpKzEpIGJcbiAgICBpblxuICAgIEFycmF5Lml0ZXIgKGl0ZXJfYnVja2V0IDApIHQudGFibGVcblxuXG4gIGxldCBpdGVyX3dlYWsgZiB0ID1cbiAgICBsZXQgcmVjIGl0ZXJfYnVja2V0IGkgaiBiID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiAoKSBlbHNlXG4gICAgICBtYXRjaCBjaGVjayBiIGkgd2l0aFxuICAgICAgfCB0cnVlIC0+IGYgYiB0Lmhhc2hlcy4oaikgaTsgaXRlcl9idWNrZXQgKGkrMSkgaiBiXG4gICAgICB8IGZhbHNlIC0+IGl0ZXJfYnVja2V0IChpKzEpIGogYlxuICAgIGluXG4gICAgQXJyYXkuaXRlcmkgKGl0ZXJfYnVja2V0IDApIHQudGFibGVcblxuXG4gIGxldCByZWMgY291bnRfYnVja2V0IGkgYiBhY2N1ID1cbiAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gYWNjdSBlbHNlXG4gICAgY291bnRfYnVja2V0IChpKzEpIGIgKGFjY3UgKyAoaWYgY2hlY2sgYiBpIHRoZW4gMSBlbHNlIDApKVxuXG5cbiAgbGV0IGNvdW50IHQgPVxuICAgIEFycmF5LmZvbGRfcmlnaHQgKGNvdW50X2J1Y2tldCAwKSB0LnRhYmxlIDBcblxuXG4gIGxldCBuZXh0X3N6IG4gPSBJbnQubWluICgzICogbiAvIDIgKyAzKSBTeXMubWF4X2FycmF5X2xlbmd0aFxuICBsZXQgcHJldl9zeiBuID0gKChuIC0gMykgKiAyICsgMikgLyAzXG5cbiAgbGV0IHRlc3Rfc2hyaW5rX2J1Y2tldCB0ID1cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4odC5yb3ZlcikgaW5cbiAgICBsZXQgaGJ1Y2tldCA9IHQuaGFzaGVzLih0LnJvdmVyKSBpblxuICAgIGxldCBsZW4gPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHByZXZfbGVuID0gcHJldl9zeiBsZW4gaW5cbiAgICBsZXQgbGl2ZSA9IGNvdW50X2J1Y2tldCAwIGJ1Y2tldCAwIGluXG4gICAgaWYgbGl2ZSA8PSBwcmV2X2xlbiB0aGVuIGJlZ2luXG4gICAgICBsZXQgcmVjIGxvb3AgaSBqID1cbiAgICAgICAgaWYgaiA+PSBwcmV2X2xlbiB0aGVuIGJlZ2luXG4gICAgICAgICAgaWYgY2hlY2sgYnVja2V0IGkgdGhlbiBsb29wIChpICsgMSkgalxuICAgICAgICAgIGVsc2UgaWYgY2hlY2sgYnVja2V0IGogdGhlbiBiZWdpblxuICAgICAgICAgICAgYmxpdCBidWNrZXQgaiBidWNrZXQgaSAxO1xuICAgICAgICAgICAgaGJ1Y2tldC4oaSkgPC0gaGJ1Y2tldC4oaik7XG4gICAgICAgICAgICBsb29wIChpICsgMSkgKGogLSAxKTtcbiAgICAgICAgICBlbmQgZWxzZSBsb29wIGkgKGogLSAxKTtcbiAgICAgICAgZW5kO1xuICAgICAgaW5cbiAgICAgIGxvb3AgMCAobGVuZ3RoIGJ1Y2tldCAtIDEpO1xuICAgICAgaWYgcHJldl9sZW4gPSAwIHRoZW4gYmVnaW5cbiAgICAgICAgdC50YWJsZS4odC5yb3ZlcikgPC0gZW1wdHlidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLih0LnJvdmVyKSA8LSBbfCB8XTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBuZXdidWNrZXQgPSB3ZWFrX2NyZWF0ZSBwcmV2X2xlbiBpblxuICAgICAgICBibGl0IGJ1Y2tldCAwIG5ld2J1Y2tldCAwIHByZXZfbGVuO1xuICAgICAgICB0LnRhYmxlLih0LnJvdmVyKSA8LSBuZXdidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLih0LnJvdmVyKSA8LSBBcnJheS5zdWIgaGJ1Y2tldCAwIHByZXZfbGVuXG4gICAgICBlbmQ7XG4gICAgICBpZiBsZW4gPiB0LmxpbWl0ICYmIHByZXZfbGVuIDw9IHQubGltaXQgdGhlbiB0Lm92ZXJzaXplIDwtIHQub3ZlcnNpemUgLSAxO1xuICAgIGVuZDtcbiAgICB0LnJvdmVyIDwtICh0LnJvdmVyICsgMSkgbW9kIChBcnJheS5sZW5ndGggdC50YWJsZSlcblxuXG4gIGxldCByZWMgcmVzaXplIHQgPVxuICAgIGxldCBvbGRsZW4gPSBBcnJheS5sZW5ndGggdC50YWJsZSBpblxuICAgIGxldCBuZXdsZW4gPSBuZXh0X3N6IG9sZGxlbiBpblxuICAgIGlmIG5ld2xlbiA+IG9sZGxlbiB0aGVuIGJlZ2luXG4gICAgICBsZXQgbmV3dCA9IGNyZWF0ZSBuZXdsZW4gaW5cbiAgICAgIGxldCBhZGRfd2VhayBvYiBvaCBvaSA9XG4gICAgICAgIGxldCBzZXR0ZXIgbmIgbmkgXyA9IGJsaXQgb2Igb2kgbmIgbmkgMSBpblxuICAgICAgICBsZXQgaCA9IG9oLihvaSkgaW5cbiAgICAgICAgYWRkX2F1eCBuZXd0IHNldHRlciBOb25lIGggKGdldF9pbmRleCBuZXd0IGgpO1xuICAgICAgaW5cbiAgICAgIGl0ZXJfd2VhayBhZGRfd2VhayB0O1xuICAgICAgdC50YWJsZSA8LSBuZXd0LnRhYmxlO1xuICAgICAgdC5oYXNoZXMgPC0gbmV3dC5oYXNoZXM7XG4gICAgICB0LmxpbWl0IDwtIG5ld3QubGltaXQ7XG4gICAgICB0Lm92ZXJzaXplIDwtIG5ld3Qub3ZlcnNpemU7XG4gICAgICB0LnJvdmVyIDwtIHQucm92ZXIgbW9kIEFycmF5Lmxlbmd0aCBuZXd0LnRhYmxlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICB0LmxpbWl0IDwtIG1heF9pbnQ7ICAgICAgICAgICAgICgqIG1heGltdW0gc2l6ZSBhbHJlYWR5IHJlYWNoZWQgKilcbiAgICAgIHQub3ZlcnNpemUgPC0gMDtcbiAgICBlbmRcblxuICBhbmQgYWRkX2F1eCB0IHNldHRlciBkIGggaW5kZXggPVxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IG5ld3N6ID1cbiAgICAgICAgICBJbnQubWluICgzICogc3ogLyAyICsgMykgKFN5cy5tYXhfYXJyYXlfbGVuZ3RoIC0gYWRkaXRpb25hbF92YWx1ZXMpXG4gICAgICAgIGluXG4gICAgICAgIGlmIG5ld3N6IDw9IHN6IHRoZW4gZmFpbHdpdGggXCJXZWFrLk1ha2U6IGhhc2ggYnVja2V0IGNhbm5vdCBncm93IG1vcmVcIjtcbiAgICAgICAgbGV0IG5ld2J1Y2tldCA9IHdlYWtfY3JlYXRlIG5ld3N6IGluXG4gICAgICAgIGxldCBuZXdoYXNoZXMgPSBBcnJheS5tYWtlIG5ld3N6IDAgaW5cbiAgICAgICAgYmxpdCBidWNrZXQgMCBuZXdidWNrZXQgMCBzejtcbiAgICAgICAgQXJyYXkuYmxpdCBoYXNoZXMgMCBuZXdoYXNoZXMgMCBzejtcbiAgICAgICAgc2V0dGVyIG5ld2J1Y2tldCBzeiBkO1xuICAgICAgICBuZXdoYXNoZXMuKHN6KSA8LSBoO1xuICAgICAgICB0LnRhYmxlLihpbmRleCkgPC0gbmV3YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4oaW5kZXgpIDwtIG5ld2hhc2hlcztcbiAgICAgICAgaWYgc3ogPD0gdC5saW1pdCAmJiBuZXdzeiA+IHQubGltaXQgdGhlbiBiZWdpblxuICAgICAgICAgIHQub3ZlcnNpemUgPC0gdC5vdmVyc2l6ZSArIDE7XG4gICAgICAgICAgZm9yIF9pID0gMCB0byBvdmVyX2xpbWl0IGRvIHRlc3Rfc2hyaW5rX2J1Y2tldCB0IGRvbmU7XG4gICAgICAgIGVuZDtcbiAgICAgICAgaWYgdC5vdmVyc2l6ZSA+IEFycmF5Lmxlbmd0aCB0LnRhYmxlIC8gb3Zlcl9saW1pdCB0aGVuIHJlc2l6ZSB0O1xuICAgICAgZW5kIGVsc2UgaWYgY2hlY2sgYnVja2V0IGkgdGhlbiBiZWdpblxuICAgICAgICBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldHRlciBidWNrZXQgaSBkO1xuICAgICAgICBoYXNoZXMuKGkpIDwtIGg7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBhZGQgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgYWRkX2F1eCB0IHNldCAoU29tZSBkKSBoIChnZXRfaW5kZXggdCBoKVxuXG5cbiAgbGV0IGZpbmRfb3IgdCBkIGlmbm90Zm91bmQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBpZm5vdGZvdW5kIGggaW5kZXhcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHYgLT4gdlxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IG1lcmdlIHQgZCA9XG4gICAgZmluZF9vciB0IGQgKGZ1biBoIGluZGV4IC0+IGFkZF9hdXggdCBzZXQgKFNvbWUgZCkgaCBpbmRleDsgZClcblxuXG4gIGxldCBmaW5kIHQgZCA9IGZpbmRfb3IgdCBkIChmdW4gX2ggX2luZGV4IC0+IHJhaXNlIE5vdF9mb3VuZClcblxuICBsZXQgZmluZF9vcHQgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gTm9uZVxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgXyBhcyB2IC0+IHZcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBmaW5kX3NoYWRvdyB0IGQgaWZmb3VuZCBpZm5vdGZvdW5kID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gaWZub3Rmb3VuZFxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZCAtPiBpZmZvdW5kIGJ1Y2tldCBpXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgcmVtb3ZlIHQgZCA9IGZpbmRfc2hhZG93IHQgZCAoZnVuIHcgaSAtPiBzZXQgdyBpIE5vbmUpICgpXG5cblxuICBsZXQgbWVtIHQgZCA9IGZpbmRfc2hhZG93IHQgZCAoZnVuIF93IF9pIC0+IHRydWUpIGZhbHNlXG5cblxuICBsZXQgZmluZF9hbGwgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSBhY2N1ID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBhY2N1XG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSB2IC0+IGxvb3AgKGkgKyAxKSAodiA6OiBhY2N1KVxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpIGFjY3VcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSkgYWNjdVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpIGFjY3VcbiAgICBpblxuICAgIGxvb3AgMCBbXVxuXG5cbiAgbGV0IHN0YXRzIHQgPVxuICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggdC50YWJsZSBpblxuICAgIGxldCBsZW5zID0gQXJyYXkubWFwIGxlbmd0aCB0LnRhYmxlIGluXG4gICAgQXJyYXkuc29ydCBjb21wYXJlIGxlbnM7XG4gICAgbGV0IHRvdGxlbiA9IEFycmF5LmZvbGRfbGVmdCAoICsgKSAwIGxlbnMgaW5cbiAgICAobGVuLCBjb3VudCB0LCB0b3RsZW4sIGxlbnMuKDApLCBsZW5zLihsZW4vMiksIGxlbnMuKGxlbi0xKSlcblxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQSBwcmV0dHktcHJpbnRpbmcgZmFjaWxpdHkgYW5kIGRlZmluaXRpb24gb2YgZm9ybWF0dGVycyBmb3IgJ3BhcmFsbGVsJ1xuICAgKGkuZS4gdW5yZWxhdGVkIG9yIGluZGVwZW5kZW50KSBwcmV0dHktcHJpbnRpbmcgb24gbXVsdGlwbGUgb3V0IGNoYW5uZWxzLiAqKVxuXG4oKlxuICAgVGhlIHByZXR0eS1wcmludGluZyBlbmdpbmUgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzLlxuKilcblxubGV0IGlkIHggPSB4XG5cbigqIEEgZGV2b3RlZCB0eXBlIGZvciBzaXplcyB0byBhdm9pZCBjb25mdXNpb25cbiAgIGJldHdlZW4gc2l6ZXMgYW5kIG1lcmUgaW50ZWdlcnMuICopXG5tb2R1bGUgU2l6ZSA6IHNpZ1xuICB0eXBlIHRcblxuICB2YWwgdG9faW50IDogdCAtPiBpbnRcbiAgdmFsIG9mX2ludCA6IGludCAtPiB0XG4gIHZhbCB6ZXJvIDogdFxuICB2YWwgdW5rbm93biA6IHRcbiAgdmFsIGlzX2tub3duIDogdCAtPiBib29sXG5lbmQgID0gc3RydWN0XG4gIHR5cGUgdCA9IGludFxuXG4gIGxldCB0b19pbnQgPSBpZFxuICBsZXQgb2ZfaW50ID0gaWRcbiAgbGV0IHplcm8gPSAwXG4gIGxldCB1bmtub3duID0gLTFcbiAgbGV0IGlzX2tub3duIG4gPSBuID49IDBcbmVuZFxuXG5cblxuKCogVGhlIHByZXR0eS1wcmludGluZyBib3hlcyBkZWZpbml0aW9uOlxuICAgYSBwcmV0dHktcHJpbnRpbmcgYm94IGlzIGVpdGhlclxuICAgLSBoYm94OiBob3Jpem9udGFsIGJveCAobm8gbGluZSBzcGxpdHRpbmcpXG4gICAtIHZib3g6IHZlcnRpY2FsIGJveCAoZXZlcnkgYnJlYWsgaGludCBzcGxpdHMgdGhlIGxpbmUpXG4gICAtIGh2Ym94OiBob3Jpem9udGFsL3ZlcnRpY2FsIGJveFxuICAgICAodGhlIGJveCBiZWhhdmVzIGFzIGFuIGhvcml6b250YWwgYm94IGlmIGl0IGZpdHMgb25cbiAgICAgIHRoZSBjdXJyZW50IGxpbmUsIG90aGVyd2lzZSB0aGUgYm94IGJlaGF2ZXMgYXMgYSB2ZXJ0aWNhbCBib3gpXG4gICAtIGhvdmJveDogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBjb21wYWN0aW5nIGJveFxuICAgICAodGhlIGJveCBpcyBjb21wYWN0aW5nIG1hdGVyaWFsLCBwcmludGluZyBhcyBtdWNoIG1hdGVyaWFsIGFzIHBvc3NpYmxlXG4gICAgICBvbiBldmVyeSBsaW5lcylcbiAgIC0gYm94OiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGNvbXBhY3RpbmcgYm94IHdpdGggZW5oYW5jZWQgYm94IHN0cnVjdHVyZVxuICAgICAodGhlIGJveCBiZWhhdmVzIGFzIGFuIGhvcml6b250YWwgb3IgdmVydGljYWwgYm94IGJ1dCBicmVhayBoaW50cyBzcGxpdFxuICAgICAgdGhlIGxpbmUgaWYgc3BsaXR0aW5nIHdvdWxkIG1vdmUgdG8gdGhlIGxlZnQpXG4qKVxudHlwZSBib3hfdHlwZSA9IENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5ibG9ja190eXBlID1cbiAgfCBQcF9oYm94IHwgUHBfdmJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IHwgUHBfZml0c1xuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRpbmcgdG9rZW5zIGRlZmluaXRpb246XG4gICBhcmUgZWl0aGVyIHRleHQgdG8gcHJpbnQgb3IgcHJldHR5IHByaW50aW5nXG4gICBlbGVtZW50cyB0aGF0IGRyaXZlIGluZGVudGF0aW9uIGFuZCBsaW5lIHNwbGl0dGluZy4gKilcbnR5cGUgcHBfdG9rZW4gPVxuICB8IFBwX3RleHQgb2Ygc3RyaW5nICAgICAgICAgICgqIG5vcm1hbCB0ZXh0ICopXG4gIHwgUHBfYnJlYWsgb2YgeyAgICAgICAgICAgICAgKCogY29tcGxldGUgYnJlYWsgKilcbiAgICAgIGZpdHM6IHN0cmluZyAqIGludCAqIHN0cmluZzsgICAoKiBsaW5lIGlzIG5vdCBzcGxpdCAqKVxuICAgICAgYnJlYWtzOiBzdHJpbmcgKiBpbnQgKiBzdHJpbmc7ICgqIGxpbmUgaXMgc3BsaXQgKilcbiAgICB9XG4gIHwgUHBfdGJyZWFrIG9mIGludCAqIGludCAgICAgKCogZ28gdG8gbmV4dCB0YWJ1bGF0aW9uICopXG4gIHwgUHBfc3RhYiAgICAgICAgICAgICAgICAgICAgKCogc2V0IGEgdGFidWxhdGlvbiAqKVxuICB8IFBwX2JlZ2luIG9mIGludCAqIGJveF90eXBlICgqIGJlZ2lubmluZyBvZiBhIGJveCAqKVxuICB8IFBwX2VuZCAgICAgICAgICAgICAgICAgICAgICgqIGVuZCBvZiBhIGJveCAqKVxuICB8IFBwX3RiZWdpbiBvZiB0Ym94ICAgICAgICAgICgqIGJlZ2lubmluZyBvZiBhIHRhYnVsYXRpb24gYm94ICopXG4gIHwgUHBfdGVuZCAgICAgICAgICAgICAgICAgICAgKCogZW5kIG9mIGEgdGFidWxhdGlvbiBib3ggKilcbiAgfCBQcF9uZXdsaW5lICAgICAgICAgICAgICAgICAoKiB0byBmb3JjZSBhIG5ld2xpbmUgaW5zaWRlIGEgYm94ICopXG4gIHwgUHBfaWZfbmV3bGluZSAgICAgICAgICAgICAgKCogdG8gZG8gc29tZXRoaW5nIG9ubHkgaWYgdGhpcyB2ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSBoYXMgYmVlbiBicm9rZW4gKilcbiAgfCBQcF9vcGVuX3RhZyBvZiBzdGFnICAgICAgICAgKCogb3BlbmluZyBhIHRhZyBuYW1lICopXG4gIHwgUHBfY2xvc2VfdGFnICAgICAgICAgICAgICAgKCogY2xvc2luZyB0aGUgbW9zdCByZWNlbnRseSBvcGVuIHRhZyAqKVxuXG5hbmQgc3RhZyA9IC4uXG5cbmFuZCB0Ym94ID0gUHBfdGJveCBvZiBpbnQgbGlzdCByZWYgICgqIFRhYnVsYXRpb24gYm94ICopXG5cbnR5cGUgdGFnID0gc3RyaW5nXG50eXBlIHN0YWcgKz0gU3RyaW5nX3RhZyBvZiB0YWdcblxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWU6XG4gICBwcmV0dHktcHJpbnRpbmcgbWF0ZXJpYWwgaXMgbm90IHdyaXR0ZW4gaW4gdGhlIG91dHB1dCBhcyBzb29uIGFzIGVtaXR0ZWQ7XG4gICBpbnN0ZWFkLCB0aGUgbWF0ZXJpYWwgaXMgc2ltcGx5IHJlY29yZGVkIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSxcbiAgIHVudGlsIHRoZSBlbmNsb3NpbmcgYm94IGhhcyBhIGtub3duIGNvbXB1dGVkIHNpemUgYW5kIHByb3BlciBzcGxpdHRpbmdcbiAgIGRlY2lzaW9ucyBjYW4gYmUgbWFkZS5cblxuICAgVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGNvbnRhaW5zIGZvcm1hdHRpbmcgZWxlbWVudHMgdG8gYmUgcHJpbnRlZC5cbiAgIEVhY2ggZm9ybWF0dGluZyBlbGVtZW50IGlzIGEgdHVwbGUgKHNpemUsIHRva2VuLCBsZW5ndGgpLCB3aGVyZVxuICAgLSBsZW5ndGggaXMgdGhlIGRlY2xhcmVkIGxlbmd0aCBvZiB0aGUgdG9rZW4sXG4gICAtIHNpemUgaXMgZWZmZWN0aXZlIHNpemUgb2YgdGhlIHRva2VuIHdoZW4gaXQgaXMgcHJpbnRlZFxuICAgICAoc2l6ZSBpcyBzZXQgd2hlbiB0aGUgc2l6ZSBvZiB0aGUgYm94IGlzIGtub3duLCBzbyB0aGF0IHNpemUgb2YgYnJlYWtcbiAgICAgIGhpbnRzIGFyZSBkZWZpbml0aXZlKS4gKilcbnR5cGUgcHBfcXVldWVfZWxlbSA9IHtcbiAgbXV0YWJsZSBzaXplIDogU2l6ZS50O1xuICB0b2tlbiA6IHBwX3Rva2VuO1xuICBsZW5ndGggOiBpbnQ7XG59XG5cblxuKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGRlZmluaXRpb24uICopXG50eXBlIHBwX3F1ZXVlID0gcHBfcXVldWVfZWxlbSBRdWV1ZS50XG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay4gKilcblxuKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrOiBzY2FubmluZyBlbGVtZW50IGRlZmluaXRpb24uICopXG50eXBlIHBwX3NjYW5fZWxlbSA9IHtcbiAgbGVmdF90b3RhbCA6IGludDsgKCogVmFsdWUgb2YgcHBfbGVmdF90b3RhbCB3aGVuIHRoZSBlbGVtZW50IHdhcyBlbnF1ZXVlZC4gKilcbiAgcXVldWVfZWxlbSA6IHBwX3F1ZXVlX2VsZW1cbn1cblxuKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2s6XG4gICB0aGUgZm9ybWF0dGluZyBzdGFjayBjb250YWlucyB0aGUgZGVzY3JpcHRpb24gb2YgYWxsIHRoZSBjdXJyZW50bHkgYWN0aXZlXG4gICBib3hlczsgdGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2sgaXMgdXNlZCB0byBzcGxpdCB0aGUgbGluZXNcbiAgIHdoaWxlIHByaW50aW5nIHRva2Vucy4gKilcblxuKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2s6IGZvcm1hdHRpbmcgc3RhY2sgZWxlbWVudCBkZWZpbml0aW9uLlxuICAgRWFjaCBzdGFjayBlbGVtZW50IGRlc2NyaWJlcyBhIHByZXR0eS1wcmludGluZyBib3guICopXG50eXBlIHBwX2Zvcm1hdF9lbGVtID0geyBib3hfdHlwZSA6IGJveF90eXBlOyB3aWR0aCA6IGludCB9XG5cbigqIFRoZSBmb3JtYXR0ZXIgZGVmaW5pdGlvbi5cbiAgIEVhY2ggZm9ybWF0dGVyIHZhbHVlIGlzIGEgcHJldHR5LXByaW50ZXIgaW5zdGFuY2Ugd2l0aCBhbGwgaXRzXG4gICBtYWNoaW5lcnkuICopXG50eXBlIGZvcm1hdHRlciA9IHtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLiAqKVxuICBwcF9zY2FuX3N0YWNrIDogcHBfc2Nhbl9lbGVtIFN0YWNrLnQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrLiAqKVxuICBwcF9mb3JtYXRfc3RhY2sgOiBwcF9mb3JtYXRfZWxlbSBTdGFjay50O1xuICBwcF90Ym94X3N0YWNrIDogdGJveCBTdGFjay50O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgc2VtYW50aWNzIHRhZyBzdGFjay4gKilcbiAgcHBfdGFnX3N0YWNrIDogc3RhZyBTdGFjay50O1xuICBwcF9tYXJrX3N0YWNrIDogc3RhZyBTdGFjay50O1xuICAoKiBWYWx1ZSBvZiByaWdodCBtYXJnaW4uICopXG4gIG11dGFibGUgcHBfbWFyZ2luIDogaW50O1xuICAoKiBNaW5pbWFsIHNwYWNlIGxlZnQgYmVmb3JlIG1hcmdpbiwgd2hlbiBvcGVuaW5nIGEgYm94LiAqKVxuICBtdXRhYmxlIHBwX21pbl9zcGFjZV9sZWZ0IDogaW50O1xuICAoKiBNYXhpbXVtIHZhbHVlIG9mIGluZGVudGF0aW9uOlxuICAgICBubyBib3ggY2FuIGJlIG9wZW5lZCBmdXJ0aGVyLiAqKVxuICBtdXRhYmxlIHBwX21heF9pbmRlbnQgOiBpbnQ7XG4gICgqIFNwYWNlIHJlbWFpbmluZyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxuICBtdXRhYmxlIHBwX3NwYWNlX2xlZnQgOiBpbnQ7XG4gICgqIEN1cnJlbnQgdmFsdWUgb2YgaW5kZW50YXRpb24uICopXG4gIG11dGFibGUgcHBfY3VycmVudF9pbmRlbnQgOiBpbnQ7XG4gICgqIFRydWUgd2hlbiB0aGUgbGluZSBoYXMgYmVlbiBicm9rZW4gYnkgdGhlIHByZXR0eS1wcmludGVyLiAqKVxuICBtdXRhYmxlIHBwX2lzX25ld19saW5lIDogYm9vbDtcbiAgKCogVG90YWwgd2lkdGggb2YgdG9rZW5zIGFscmVhZHkgcHJpbnRlZC4gKilcbiAgbXV0YWJsZSBwcF9sZWZ0X3RvdGFsIDogaW50O1xuICAoKiBUb3RhbCB3aWR0aCBvZiB0b2tlbnMgZXZlciBwdXQgaW4gcXVldWUuICopXG4gIG11dGFibGUgcHBfcmlnaHRfdG90YWwgOiBpbnQ7XG4gICgqIEN1cnJlbnQgbnVtYmVyIG9mIG9wZW4gYm94ZXMuICopXG4gIG11dGFibGUgcHBfY3Vycl9kZXB0aCA6IGludDtcbiAgKCogTWF4aW11bSBudW1iZXIgb2YgYm94ZXMgd2hpY2ggY2FuIGJlIHNpbXVsdGFuZW91c2x5IG9wZW4uICopXG4gIG11dGFibGUgcHBfbWF4X2JveGVzIDogaW50O1xuICAoKiBFbGxpcHNpcyBzdHJpbmcuICopXG4gIG11dGFibGUgcHBfZWxsaXBzaXMgOiBzdHJpbmc7XG4gICgqIE91dHB1dCBmdW5jdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9vdXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdDtcbiAgKCogRmx1c2hpbmcgZnVuY3Rpb24uICopXG4gIG11dGFibGUgcHBfb3V0X2ZsdXNoIDogdW5pdCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgbmV3IGxpbmVzLiAqKVxuICBtdXRhYmxlIHBwX291dF9uZXdsaW5lIDogdW5pdCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgYnJlYWsgaGludHMgc3BhY2VzLiAqKVxuICBtdXRhYmxlIHBwX291dF9zcGFjZXMgOiBpbnQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIGluZGVudGF0aW9uIG9mIG5ldyBsaW5lcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfaW5kZW50IDogaW50IC0+IHVuaXQ7XG4gICgqIEFyZSB0YWdzIHByaW50ZWQgPyAqKVxuICBtdXRhYmxlIHBwX3ByaW50X3RhZ3MgOiBib29sO1xuICAoKiBBcmUgdGFncyBtYXJrZWQgPyAqKVxuICBtdXRhYmxlIHBwX21hcmtfdGFncyA6IGJvb2w7XG4gICgqIEZpbmQgb3BlbmluZyBhbmQgY2xvc2luZyBtYXJrZXJzIG9mIHRhZ3MuICopXG4gIG11dGFibGUgcHBfbWFya19vcGVuX3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtdXRhYmxlIHBwX21hcmtfY2xvc2VfdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG11dGFibGUgcHBfcHJpbnRfb3Blbl90YWcgOiBzdGFnIC0+IHVuaXQ7XG4gIG11dGFibGUgcHBfcHJpbnRfY2xvc2VfdGFnIDogc3RhZyAtPiB1bml0O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG4gIHBwX3F1ZXVlIDogcHBfcXVldWU7XG59XG5cblxuKCogVGhlIGZvcm1hdHRlciBzcGVjaWZpYyB0YWcgaGFuZGxpbmcgZnVuY3Rpb25zLiAqKVxudHlwZSBmb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPSB7XG4gIG1hcmtfb3Blbl9zdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG1hcmtfY2xvc2Vfc3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBwcmludF9vcGVuX3N0YWcgOiBzdGFnIC0+IHVuaXQ7XG4gIHByaW50X2Nsb3NlX3N0YWcgOiBzdGFnIC0+IHVuaXQ7XG59XG5cblxuKCogVGhlIGZvcm1hdHRlciBmdW5jdGlvbnMgdG8gb3V0cHV0IG1hdGVyaWFsLiAqKVxudHlwZSBmb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9IHtcbiAgb3V0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXQ7XG4gIG91dF9mbHVzaCA6IHVuaXQgLT4gdW5pdDtcbiAgb3V0X25ld2xpbmUgOiB1bml0IC0+IHVuaXQ7XG4gIG91dF9zcGFjZXMgOiBpbnQgLT4gdW5pdDtcbiAgb3V0X2luZGVudCA6IGludCAtPiB1bml0O1xufVxuXG5cbigqXG5cbiAgQXV4aWxpYXJpZXMgYW5kIGJhc2ljIGZ1bmN0aW9ucy5cblxuKilcblxuKCogRW50ZXIgYSB0b2tlbiBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG5sZXQgcHBfZW5xdWV1ZSBzdGF0ZSB0b2tlbiA9XG4gIHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgdG9rZW4ubGVuZ3RoO1xuICBRdWV1ZS5hZGQgdG9rZW4gc3RhdGUucHBfcXVldWVcblxuXG5sZXQgcHBfY2xlYXJfcXVldWUgc3RhdGUgPVxuICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIDE7IHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIDE7XG4gIFF1ZXVlLmNsZWFyIHN0YXRlLnBwX3F1ZXVlXG5cblxuKCogUHBfaW5maW5pdHk6IGxhcmdlIHZhbHVlIGZvciBkZWZhdWx0IHRva2VucyBzaXplLlxuXG4gICBQcF9pbmZpbml0eSBpcyBkb2N1bWVudGVkIGFzIGJlaW5nIGdyZWF0ZXIgdGhhbiAxZTEwOyB0byBhdm9pZFxuICAgY29uZnVzaW9uIGFib3V0IHRoZSB3b3JkICdncmVhdGVyJywgd2UgY2hvb3NlIHBwX2luZmluaXR5IGdyZWF0ZXJcbiAgIHRoYW4gMWUxMCArIDE7IGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIHRlc3RzIGluIHRoZSBhbGdvcml0aG0sXG4gICBwcF9pbmZpbml0eSBtdXN0IGJlIGV2ZW4gb25lIG1vcmUgdGhhbiAxZTEwICsgMTsgbGV0J3Mgc3RhbmQgb24gdGhlXG4gICBzYWZlIHNpZGUgYnkgY2hvb3NpbmcgMS5lMTArMTAuXG5cbiAgIFBwX2luZmluaXR5IGNvdWxkIHByb2JhYmx5IGJlIDEwNzM3NDE4MjMgdGhhdCBpcyAyXjMwIC0gMSwgdGhhdCBpc1xuICAgdGhlIG1pbmltYWwgdXBwZXIgYm91bmQgZm9yIGludGVnZXJzOyBub3cgdGhhdCBtYXhfaW50IGlzIGRlZmluZWQsXG4gICB0aGlzIGxpbWl0IGNvdWxkIGFsc28gYmUgZGVmaW5lZCBhcyBtYXhfaW50IC0gMS5cblxuICAgSG93ZXZlciwgYmVmb3JlIHNldHRpbmcgcHBfaW5maW5pdHkgdG8gc29tZXRoaW5nIGFyb3VuZCBtYXhfaW50LCB3ZVxuICAgbXVzdCBjYXJlZnVsbHkgZG91YmxlLWNoZWNrIGFsbCB0aGUgaW50ZWdlciBhcml0aG1ldGljIG9wZXJhdGlvbnNcbiAgIHRoYXQgaW52b2x2ZSBwcF9pbmZpbml0eSwgc2luY2UgYW55IG92ZXJmbG93IHdvdWxkIHdyZWNrIGhhdm9jIHRoZVxuICAgcHJldHR5LXByaW50aW5nIGFsZ29yaXRobSdzIGludmFyaWFudHMuIEdpdmVuIHRoYXQgdGhpcyBhcml0aG1ldGljXG4gICBjb3JyZWN0bmVzcyBjaGVjayBpcyBkaWZmaWN1bHQgYW5kIGVycm9yIHByb25lIGFuZCBnaXZlbiB0aGF0IDFlMTBcbiAgICsgMSBpcyBpbiBwcmFjdGljZSBsYXJnZSBlbm91Z2gsIHRoZXJlIGlzIG5vIG5lZWQgdG8gYXR0ZW1wdCB0byBzZXRcbiAgIHBwX2luZmluaXR5IHRvIHRoZSB0aGVvcmV0aWNhbGx5IG1heGltdW0gbGltaXQuIEl0IGlzIG5vdCB3b3J0aCB0aGVcbiAgIGJ1cmRlbiAhICopXG5sZXQgcHBfaW5maW5pdHkgPSAxMDAwMDAwMDEwXG5cbigqIE91dHB1dCBmdW5jdGlvbnMgZm9yIHRoZSBmb3JtYXR0ZXIuICopXG5sZXQgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBzID0gc3RhdGUucHBfb3V0X3N0cmluZyBzIDAgKFN0cmluZy5sZW5ndGggcylcbmFuZCBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZSA9IHN0YXRlLnBwX291dF9uZXdsaW5lICgpXG5hbmQgcHBfb3V0cHV0X3NwYWNlcyBzdGF0ZSBuID0gc3RhdGUucHBfb3V0X3NwYWNlcyBuXG5hbmQgcHBfb3V0cHV0X2luZGVudCBzdGF0ZSBuID0gc3RhdGUucHBfb3V0X2luZGVudCBuXG5cbigqIEZvcm1hdCBhIHRleHR1YWwgdG9rZW4gKilcbmxldCBmb3JtYXRfcHBfdGV4dCBzdGF0ZSBzaXplIHRleHQgPVxuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgLSBzaXplO1xuICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIHRleHQ7XG4gIHN0YXRlLnBwX2lzX25ld19saW5lIDwtIGZhbHNlXG5cbigqIEZvcm1hdCBhIHN0cmluZyBieSBpdHMgbGVuZ3RoLCBpZiBub3QgZW1wdHkgKilcbmxldCBmb3JtYXRfc3RyaW5nIHN0YXRlIHMgPVxuICBpZiBzIDw+IFwiXCIgdGhlbiBmb3JtYXRfcHBfdGV4dCBzdGF0ZSAoU3RyaW5nLmxlbmd0aCBzKSBzXG5cbigqIFRvIGZvcm1hdCBhIGJyZWFrLCBpbmRlbnRpbmcgYSBuZXcgbGluZS4gKilcbmxldCBicmVha19uZXdfbGluZSBzdGF0ZSAoYmVmb3JlLCBvZmZzZXQsIGFmdGVyKSB3aWR0aCA9XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYmVmb3JlO1xuICBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZTtcbiAgc3RhdGUucHBfaXNfbmV3X2xpbmUgPC0gdHJ1ZTtcbiAgbGV0IGluZGVudCA9IHN0YXRlLnBwX21hcmdpbiAtIHdpZHRoICsgb2Zmc2V0IGluXG4gICgqIERvbid0IGluZGVudCBtb3JlIHRoYW4gcHBfbWF4X2luZGVudC4gKilcbiAgbGV0IHJlYWxfaW5kZW50ID0gSW50Lm1pbiBzdGF0ZS5wcF9tYXhfaW5kZW50IGluZGVudCBpblxuICBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA8LSByZWFsX2luZGVudDtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9jdXJyZW50X2luZGVudDtcbiAgcHBfb3V0cHV0X2luZGVudCBzdGF0ZSBzdGF0ZS5wcF9jdXJyZW50X2luZGVudDtcbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBhZnRlclxuXG5cbigqIFRvIGZvcmNlIGEgbGluZSBicmVhayBpbnNpZGUgYSBib3g6IG5vIG9mZnNldCBpcyBhZGRlZC4gKilcbmxldCBicmVha19saW5lIHN0YXRlIHdpZHRoID0gYnJlYWtfbmV3X2xpbmUgc3RhdGUgKFwiXCIsIDAsIFwiXCIpIHdpZHRoXG5cbigqIFRvIGZvcm1hdCBhIGJyZWFrIHRoYXQgZml0cyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxubGV0IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSAoYmVmb3JlLCB3aWR0aCwgYWZ0ZXIpID1cbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBiZWZvcmU7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIHdpZHRoO1xuICBwcF9vdXRwdXRfc3BhY2VzIHN0YXRlIHdpZHRoO1xuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGFmdGVyXG5cblxuKCogVG8gaW5kZW50IG5vIG1vcmUgdGhhbiBwcF9tYXhfaW5kZW50LCBpZiBvbmUgdHJpZXMgdG8gb3BlbiBhIGJveFxuICAgYmV5b25kIHBwX21heF9pbmRlbnQsIHRoZW4gdGhlIGJveCBpcyByZWplY3RlZCBvbiB0aGUgbGVmdFxuICAgYnkgc2ltdWxhdGluZyBhIGJyZWFrLiAqKVxubGV0IHBwX2ZvcmNlX2JyZWFrX2xpbmUgc3RhdGUgPVxuICBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gIHwgTm9uZSAtPiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZVxuICB8IFNvbWUgeyBib3hfdHlwZTsgd2lkdGggfSAtPlxuICAgIGlmIHdpZHRoID4gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuXG4gICAgICBtYXRjaCBib3hfdHlwZSB3aXRoXG4gICAgICB8IFBwX2ZpdHMgfCBQcF9oYm94IC0+ICgpXG4gICAgICB8IFBwX3Zib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCAtPiBicmVha19saW5lIHN0YXRlIHdpZHRoXG5cblxuKCogVG8gc2tpcCBhIHRva2VuLCBpZiB0aGUgcHJldmlvdXMgbGluZSBoYXMgYmVlbiBicm9rZW4uICopXG5sZXQgcHBfc2tpcF90b2tlbiBzdGF0ZSA9XG4gIG1hdGNoIFF1ZXVlLnRha2Vfb3B0IHN0YXRlLnBwX3F1ZXVlIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIHByaW50X2lmX25ld2xpbmUgbXVzdCBoYXZlIGJlZW4gdGhlIGxhc3QgcHJpbnRpbmcgY29tbWFuZCAqKVxuICB8IFNvbWUgeyBzaXplOyBsZW5ndGg7IF8gfSAtPlxuICAgIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gc3RhdGUucHBfbGVmdF90b3RhbCAtIGxlbmd0aDtcbiAgICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgKyBTaXplLnRvX2ludCBzaXplXG5cblxuKCpcblxuICBUaGUgbWFpbiBwcmV0dHkgcHJpbnRpbmcgZnVuY3Rpb25zLlxuXG4qKVxuXG4oKiBGb3JtYXR0aW5nIGEgdG9rZW4gd2l0aCBhIGdpdmVuIHNpemUuICopXG5sZXQgZm9ybWF0X3BwX3Rva2VuIHN0YXRlIHNpemUgPSBmdW5jdGlvblxuXG4gIHwgUHBfdGV4dCBzIC0+XG4gICAgZm9ybWF0X3BwX3RleHQgc3RhdGUgc2l6ZSBzXG5cbiAgfCBQcF9iZWdpbiAob2ZmLCB0eSkgLT5cbiAgICBsZXQgaW5zZXJ0aW9uX3BvaW50ID0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCBpblxuICAgIGlmIGluc2VydGlvbl9wb2ludCA+IHN0YXRlLnBwX21heF9pbmRlbnQgdGhlblxuICAgICAgKCogY2FuIG5vdCBvcGVuIGEgYm94IHJpZ2h0IHRoZXJlLiAqKVxuICAgICAgYmVnaW4gcHBfZm9yY2VfYnJlYWtfbGluZSBzdGF0ZSBlbmQ7XG4gICAgbGV0IHdpZHRoID0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIG9mZiBpblxuICAgIGxldCBib3hfdHlwZSA9XG4gICAgICBtYXRjaCB0eSB3aXRoXG4gICAgICB8IFBwX3Zib3ggLT4gUHBfdmJveFxuICAgICAgfCBQcF9oYm94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggfCBQcF9maXRzIC0+XG4gICAgICAgIGlmIHNpemUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW4gdHkgZWxzZSBQcF9maXRzIGluXG4gICAgU3RhY2sucHVzaCB7IGJveF90eXBlOyB3aWR0aCB9IHN0YXRlLnBwX2Zvcm1hdF9zdGFja1xuXG4gIHwgUHBfZW5kIC0+XG4gICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgfD4gaWdub3JlXG5cbiAgfCBQcF90YmVnaW4gKFBwX3Rib3ggXyBhcyB0Ym94KSAtPlxuICAgIFN0YWNrLnB1c2ggdGJveCBzdGF0ZS5wcF90Ym94X3N0YWNrXG5cbiAgfCBQcF90ZW5kIC0+XG4gICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHw+IGlnbm9yZVxuXG4gIHwgUHBfc3RhYiAtPlxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gdGFidWxhdGlvbiBib3guICopXG4gICAgfCBTb21lIChQcF90Ym94IHRhYnMpIC0+XG4gICAgICBsZXQgcmVjIGFkZF90YWIgbiA9IGZ1bmN0aW9uXG4gICAgICAgIHwgW10gLT4gW25dXG4gICAgICAgIHwgeCA6OiBsIGFzIGxzIC0+IGlmIG4gPCB4IHRoZW4gbiA6OiBscyBlbHNlIHggOjogYWRkX3RhYiBuIGwgaW5cbiAgICAgIHRhYnMgOj0gYWRkX3RhYiAoc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCkgIXRhYnNcbiAgICBlbmRcblxuICB8IFBwX3RicmVhayAobiwgb2ZmKSAtPlxuICAgIGxldCBpbnNlcnRpb25fcG9pbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IGluXG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiB0YWJ1bGF0aW9uIGJveC4gKilcbiAgICB8IFNvbWUgKFBwX3Rib3ggdGFicykgLT5cbiAgICAgIGxldCB0YWIgPVxuICAgICAgICBtYXRjaCAhdGFicyB3aXRoXG4gICAgICAgIHwgW10gLT4gaW5zZXJ0aW9uX3BvaW50XG4gICAgICAgIHwgZmlyc3QgOjogXyAtPlxuICAgICAgICAgIGxldCByZWMgZmluZCA9IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IGhlYWQgOjogdGFpbCAtPlxuICAgICAgICAgICAgICBpZiBoZWFkID49IGluc2VydGlvbl9wb2ludCB0aGVuIGhlYWQgZWxzZSBmaW5kIHRhaWxcbiAgICAgICAgICAgIHwgW10gLT4gZmlyc3QgaW5cbiAgICAgICAgICBmaW5kICF0YWJzIGluXG4gICAgICBsZXQgb2Zmc2V0ID0gdGFiIC0gaW5zZXJ0aW9uX3BvaW50IGluXG4gICAgICBpZiBvZmZzZXQgPj0gMFxuICAgICAgdGhlbiBicmVha19zYW1lX2xpbmUgc3RhdGUgKFwiXCIsIG9mZnNldCArIG4sIFwiXCIpXG4gICAgICBlbHNlIGJyZWFrX25ld19saW5lIHN0YXRlIChcIlwiLCB0YWIgKyBvZmYsIFwiXCIpIHN0YXRlLnBwX21hcmdpblxuICAgIGVuZFxuXG4gIHwgUHBfbmV3bGluZSAtPlxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGUgKCogTm8gb3BlbiBib3guICopXG4gICAgfCBTb21lIHsgd2lkdGg7IF99IC0+IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGhcbiAgICBlbmRcblxuICB8IFBwX2lmX25ld2xpbmUgLT5cbiAgICBpZiBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCAhPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgdGhlbiBwcF9za2lwX3Rva2VuIHN0YXRlXG5cbiAgfCBQcF9icmVhayB7IGZpdHM7IGJyZWFrcyB9IC0+XG4gICAgbGV0IGJlZm9yZSwgb2ZmLCBfID0gYnJlYWtzIGluXG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIGJveC4gKilcbiAgICB8IFNvbWUgeyBib3hfdHlwZTsgd2lkdGggfSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggYm94X3R5cGUgd2l0aFxuICAgICAgfCBQcF9ob3Zib3ggLT5cbiAgICAgICAgaWYgc2l6ZSArIFN0cmluZy5sZW5ndGggYmVmb3JlID4gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgICBlbHNlIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX2JveCAtPlxuICAgICAgICAoKiBIYXZlIHRoZSBsaW5lIGp1c3QgYmVlbiBicm9rZW4gaGVyZSA/ICopXG4gICAgICAgIGlmIHN0YXRlLnBwX2lzX25ld19saW5lIHRoZW4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHMgZWxzZVxuICAgICAgICBpZiBzaXplICsgU3RyaW5nLmxlbmd0aCBiZWZvcmUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGggZWxzZVxuICAgICAgICAoKiBicmVhayB0aGUgbGluZSBoZXJlIGxlYWRzIHRvIG5ldyBpbmRlbnRhdGlvbiA/ICopXG4gICAgICAgIGlmIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50ID4gc3RhdGUucHBfbWFyZ2luIC0gd2lkdGggKyBvZmZcbiAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgICAgZWxzZSBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF9odmJveCAtPiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgIHwgUHBfZml0cyAtPiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF92Ym94IC0+IGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgfCBQcF9oYm94IC0+IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICBlbmRcbiAgICBlbmRcblxuICAgfCBQcF9vcGVuX3RhZyB0YWdfbmFtZSAtPlxuICAgICBsZXQgbWFya2VyID0gc3RhdGUucHBfbWFya19vcGVuX3RhZyB0YWdfbmFtZSBpblxuICAgICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIG1hcmtlcjtcbiAgICAgU3RhY2sucHVzaCB0YWdfbmFtZSBzdGF0ZS5wcF9tYXJrX3N0YWNrXG5cbiAgIHwgUHBfY2xvc2VfdGFnIC0+XG4gICAgIGJlZ2luIG1hdGNoIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfbWFya19zdGFjayB3aXRoXG4gICAgIHwgTm9uZSAtPiAoKSAoKiBObyBtb3JlIHRhZyB0byBjbG9zZS4gKilcbiAgICAgfCBTb21lIHRhZ19uYW1lIC0+XG4gICAgICAgbGV0IG1hcmtlciA9IHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIHRhZ19uYW1lIGluXG4gICAgICAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBtYXJrZXJcbiAgICAgZW5kXG5cblxuKCogUHJpbnQgaWYgdG9rZW4gc2l6ZSBpcyBrbm93biBlbHNlIHByaW50aW5nIGlzIGRlbGF5ZWQuXG4gICBQcmludGluZyBpcyBkZWxheWVkIHdoZW4gdGhlIHRleHQgd2FpdGluZyBpbiB0aGUgcXVldWUgcmVxdWlyZXNcbiAgIG1vcmUgcm9vbSB0byBmb3JtYXQgdGhhbiBleGlzdHMgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbmxldCByZWMgYWR2YW5jZV9sZWZ0IHN0YXRlID1cbiAgbWF0Y2ggUXVldWUucGVla19vcHQgc3RhdGUucHBfcXVldWUgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogTm8gdG9rZW5zIHRvIHByaW50ICopXG4gIHwgU29tZSB7IHNpemU7IHRva2VuOyBsZW5ndGggfSAtPlxuICAgIGxldCBwZW5kaW5nX2NvdW50ID0gc3RhdGUucHBfcmlnaHRfdG90YWwgLSBzdGF0ZS5wcF9sZWZ0X3RvdGFsIGluXG4gICAgaWYgU2l6ZS5pc19rbm93biBzaXplIHx8IHBlbmRpbmdfY291bnQgPj0gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuIGJlZ2luXG4gICAgICBRdWV1ZS50YWtlIHN0YXRlLnBwX3F1ZXVlIHw+IGlnbm9yZTsgKCogTm90IGVtcHR5OiB3ZSBwZWVrIGludG8gaXQgKilcbiAgICAgIGxldCBzaXplID0gaWYgU2l6ZS5pc19rbm93biBzaXplIHRoZW4gU2l6ZS50b19pbnQgc2l6ZSBlbHNlIHBwX2luZmluaXR5IGluXG4gICAgICBmb3JtYXRfcHBfdG9rZW4gc3RhdGUgc2l6ZSB0b2tlbjtcbiAgICAgIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gbGVuZ3RoICsgc3RhdGUucHBfbGVmdF90b3RhbDtcbiAgICAgIChhZHZhbmNlX2xlZnQgW0B0YWlsY2FsbF0pIHN0YXRlXG4gICAgZW5kXG5cblxuKCogVG8gZW5xdWV1ZSBhIHRva2VuIDogdHJ5IHRvIGFkdmFuY2UuICopXG5sZXQgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHRvayA9IHBwX2VucXVldWUgc3RhdGUgdG9rOyBhZHZhbmNlX2xlZnQgc3RhdGVcblxuXG4oKiBUbyBlbnF1ZXVlIHN0cmluZ3MuICopXG5sZXQgZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgc2l6ZSBzID1cbiAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHsgc2l6ZTsgdG9rZW4gPSBQcF90ZXh0IHM7IGxlbmd0aCA9IFNpemUudG9faW50IHNpemUgfVxuXG5cbmxldCBlbnF1ZXVlX3N0cmluZyBzdGF0ZSBzID1cbiAgZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgKFNpemUub2ZfaW50IChTdHJpbmcubGVuZ3RoIHMpKSBzXG5cblxuKCogUm91dGluZXMgZm9yIHNjYW4gc3RhY2tcbiAgIGRldGVybWluZSBzaXplIG9mIGJveGVzLiAqKVxuXG4oKiBUaGUgc2Nhbl9zdGFjayBpcyBuZXZlciBlbXB0eS4gKilcbmxldCBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhY2sgPVxuICBTdGFjay5jbGVhciBzdGFjaztcbiAgbGV0IHF1ZXVlX2VsZW0gPSB7IHNpemUgPSBTaXplLnVua25vd247IHRva2VuID0gUHBfdGV4dCBcIlwiOyBsZW5ndGggPSAwIH0gaW5cbiAgU3RhY2sucHVzaCB7IGxlZnRfdG90YWwgPSAtMTsgcXVldWVfZWxlbSB9IHN0YWNrXG5cbigqIFNldHRpbmcgdGhlIHNpemUgb2YgYm94ZXMgb24gc2NhbiBzdGFjazpcbiAgIGlmIHR5ID0gdHJ1ZSB0aGVuIHNpemUgb2YgYnJlYWsgaXMgc2V0IGVsc2Ugc2l6ZSBvZiBib3ggaXMgc2V0O1xuICAgaW4gZWFjaCBjYXNlIHBwX3NjYW5fc3RhY2sgaXMgcG9wcGVkLlxuXG4gICBOb3RlOlxuICAgUGF0dGVybiBtYXRjaGluZyBvbiBzY2FuIHN0YWNrIGlzIGV4aGF1c3RpdmUsIHNpbmNlIHNjYW5fc3RhY2sgaXMgbmV2ZXJcbiAgIGVtcHR5LlxuICAgUGF0dGVybiBtYXRjaGluZyBvbiB0b2tlbiBpbiBzY2FuIHN0YWNrIGlzIGFsc28gZXhoYXVzdGl2ZSxcbiAgIHNpbmNlIHNjYW5fcHVzaCBpcyB1c2VkIG9uIGJyZWFrcyBhbmQgb3BlbmluZyBvZiBib3hlcy4gKilcbmxldCBzZXRfc2l6ZSBzdGF0ZSB0eSA9XG4gIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBzY2FuX3N0YWNrIGlzIG5ldmVyIGVtcHR5LiAqKVxuICB8IFNvbWUgeyBsZWZ0X3RvdGFsOyBxdWV1ZV9lbGVtIH0gLT5cbiAgICBsZXQgc2l6ZSA9IFNpemUudG9faW50IHF1ZXVlX2VsZW0uc2l6ZSBpblxuICAgICgqIHRlc3QgaWYgc2NhbiBzdGFjayBjb250YWlucyBhbnkgZGF0YSB0aGF0IGlzIG5vdCBvYnNvbGV0ZS4gKilcbiAgICBpZiBsZWZ0X3RvdGFsIDwgc3RhdGUucHBfbGVmdF90b3RhbCB0aGVuXG4gICAgICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhdGUucHBfc2Nhbl9zdGFja1xuICAgIGVsc2VcbiAgICAgIG1hdGNoIHF1ZXVlX2VsZW0udG9rZW4gd2l0aFxuICAgICAgfCBQcF9icmVhayBfIHwgUHBfdGJyZWFrIChfLCBfKSAtPlxuICAgICAgICBpZiB0eSB0aGVuIGJlZ2luXG4gICAgICAgICAgcXVldWVfZWxlbS5zaXplIDwtIFNpemUub2ZfaW50IChzdGF0ZS5wcF9yaWdodF90b3RhbCArIHNpemUpO1xuICAgICAgICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB8PiBpZ25vcmVcbiAgICAgICAgZW5kXG4gICAgICB8IFBwX2JlZ2luIChfLCBfKSAtPlxuICAgICAgICBpZiBub3QgdHkgdGhlbiBiZWdpblxuICAgICAgICAgIHF1ZXVlX2VsZW0uc2l6ZSA8LSBTaXplLm9mX2ludCAoc3RhdGUucHBfcmlnaHRfdG90YWwgKyBzaXplKTtcbiAgICAgICAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgfD4gaWdub3JlXG4gICAgICAgIGVuZFxuICAgICAgfCBQcF90ZXh0IF8gfCBQcF9zdGFiIHwgUHBfdGJlZ2luIF8gfCBQcF90ZW5kIHwgUHBfZW5kXG4gICAgICB8IFBwX25ld2xpbmUgfCBQcF9pZl9uZXdsaW5lIHwgUHBfb3Blbl90YWcgXyB8IFBwX2Nsb3NlX3RhZyAtPlxuICAgICAgICAoKSAoKiBzY2FuX3B1c2ggaXMgb25seSB1c2VkIGZvciBicmVha3MgYW5kIGJveGVzLiAqKVxuXG5cbigqIFB1c2ggYSB0b2tlbiBvbiBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay5cbiAgIElmIGIgaXMgdHJ1ZSBzZXRfc2l6ZSBpcyBjYWxsZWQuICopXG5sZXQgc2Nhbl9wdXNoIHN0YXRlIGIgdG9rZW4gPVxuICBwcF9lbnF1ZXVlIHN0YXRlIHRva2VuO1xuICBpZiBiIHRoZW4gc2V0X3NpemUgc3RhdGUgdHJ1ZTtcbiAgbGV0IGVsZW0gPSB7IGxlZnRfdG90YWwgPSBzdGF0ZS5wcF9yaWdodF90b3RhbDsgcXVldWVfZWxlbSA9IHRva2VuIH0gaW5cbiAgU3RhY2sucHVzaCBlbGVtIHN0YXRlLnBwX3NjYW5fc3RhY2tcblxuXG4oKiBUbyBvcGVuIGEgbmV3IGJveCA6XG4gICB0aGUgdXNlciBtYXkgc2V0IHRoZSBkZXB0aCBib3VuZCBwcF9tYXhfYm94ZXNcbiAgIGFueSB0ZXh0IG5lc3RlZCBkZWVwZXIgaXMgcHJpbnRlZCBhcyB0aGUgZWxsaXBzaXMgc3RyaW5nLiAqKVxubGV0IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgYnJfdHkgPVxuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggKyAxO1xuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX2JlZ2luIChpbmRlbnQsIGJyX3R5KTsgbGVuZ3RoID0gMCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIGZhbHNlIGVsZW0gZWxzZVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID0gc3RhdGUucHBfbWF4X2JveGVzXG4gIHRoZW4gZW5xdWV1ZV9zdHJpbmcgc3RhdGUgc3RhdGUucHBfZWxsaXBzaXNcblxuXG4oKiBUaGUgYm94IHdoaWNoIGlzIGFsd2F5cyBvcGVuLiAqKVxubGV0IHBwX29wZW5fc3lzX2JveCBzdGF0ZSA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSAwIFBwX2hvdmJveFxuXG4oKiBDbG9zZSBhIGJveCwgc2V0dGluZyBzaXplcyBvZiBpdHMgc3ViIGJveGVzLiAqKVxubGV0IHBwX2Nsb3NlX2JveCBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIHRoZW5cbiAgYmVnaW5cbiAgICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBiZWdpblxuICAgICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfZW5kOyBsZW5ndGggPSAwIH07XG4gICAgICBzZXRfc2l6ZSBzdGF0ZSB0cnVlOyBzZXRfc2l6ZSBzdGF0ZSBmYWxzZVxuICAgIGVuZDtcbiAgICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggLSAxO1xuICBlbmRcblxuXG4oKiBPcGVuIGEgdGFnLCBwdXNoaW5nIGl0IG9uIHRoZSB0YWcgc3RhY2suICopXG5sZXQgcHBfb3Blbl9zdGFnIHN0YXRlIHRhZ19uYW1lID1cbiAgaWYgc3RhdGUucHBfcHJpbnRfdGFncyB0aGVuXG4gIGJlZ2luXG4gICAgU3RhY2sucHVzaCB0YWdfbmFtZSBzdGF0ZS5wcF90YWdfc3RhY2s7XG4gICAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgdGFnX25hbWVcbiAgZW5kO1xuICBpZiBzdGF0ZS5wcF9tYXJrX3RhZ3MgdGhlblxuICAgIGxldCB0b2tlbiA9IFBwX29wZW5fdGFnIHRhZ19uYW1lIGluXG4gICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuOyBsZW5ndGggPSAwIH1cblxuXG4oKiBDbG9zZSBhIHRhZywgcG9wcGluZyBpdCBmcm9tIHRoZSB0YWcgc3RhY2suICopXG5sZXQgcHBfY2xvc2Vfc3RhZyBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX21hcmtfdGFncyB0aGVuXG4gICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfY2xvc2VfdGFnOyBsZW5ndGggPSAwIH07XG4gIGlmIHN0YXRlLnBwX3ByaW50X3RhZ3MgdGhlblxuICAgIG1hdGNoIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfdGFnX3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gbW9yZSB0YWcgdG8gY2xvc2UuICopXG4gICAgfCBTb21lIHRhZ19uYW1lIC0+XG4gICAgICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgdGFnX25hbWVcblxubGV0IHBwX29wZW5fdGFnIHN0YXRlIHMgPSBwcF9vcGVuX3N0YWcgc3RhdGUgKFN0cmluZ190YWcgcylcbmxldCBwcF9jbG9zZV90YWcgc3RhdGUgKCkgPSBwcF9jbG9zZV9zdGFnIHN0YXRlICgpXG5cbmxldCBwcF9zZXRfcHJpbnRfdGFncyBzdGF0ZSBiID0gc3RhdGUucHBfcHJpbnRfdGFncyA8LSBiXG5sZXQgcHBfc2V0X21hcmtfdGFncyBzdGF0ZSBiID0gc3RhdGUucHBfbWFya190YWdzIDwtIGJcbmxldCBwcF9nZXRfcHJpbnRfdGFncyBzdGF0ZSAoKSA9IHN0YXRlLnBwX3ByaW50X3RhZ3NcbmxldCBwcF9nZXRfbWFya190YWdzIHN0YXRlICgpID0gc3RhdGUucHBfbWFya190YWdzXG5sZXQgcHBfc2V0X3RhZ3Mgc3RhdGUgYiA9XG4gIHBwX3NldF9wcmludF90YWdzIHN0YXRlIGI7IHBwX3NldF9tYXJrX3RhZ3Mgc3RhdGUgYlxuXG5cbigqIEhhbmRsaW5nIHRhZyBoYW5kbGluZyBmdW5jdGlvbnM6IGdldC9zZXQgZnVuY3Rpb25zLiAqKVxubGV0IHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RhdGUgKCkgPSB7XG4gIG1hcmtfb3Blbl9zdGFnID0gc3RhdGUucHBfbWFya19vcGVuX3RhZztcbiAgbWFya19jbG9zZV9zdGFnID0gc3RhdGUucHBfbWFya19jbG9zZV90YWc7XG4gIHByaW50X29wZW5fc3RhZyA9IHN0YXRlLnBwX3ByaW50X29wZW5fdGFnO1xuICBwcmludF9jbG9zZV9zdGFnID0gc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnO1xufVxuXG5cbmxldCBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgbWFya19vcGVuX3N0YWcgPSBtb3Q7XG4gICAgIG1hcmtfY2xvc2Vfc3RhZyA9IG1jdDtcbiAgICAgcHJpbnRfb3Blbl9zdGFnID0gcG90O1xuICAgICBwcmludF9jbG9zZV9zdGFnID0gcGN0O1xuICB9ID1cbiAgc3RhdGUucHBfbWFya19vcGVuX3RhZyA8LSBtb3Q7XG4gIHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIDwtIG1jdDtcbiAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgPC0gcG90O1xuICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgPC0gcGN0XG5cblxuKCogSW5pdGlhbGl6ZSBwcmV0dHktcHJpbnRlci4gKilcbmxldCBwcF9yaW5pdCBzdGF0ZSA9XG4gIHBwX2NsZWFyX3F1ZXVlIHN0YXRlO1xuICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhdGUucHBfc2Nhbl9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfZm9ybWF0X3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF90Ym94X3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF90YWdfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX21hcmtfc3RhY2s7XG4gIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50IDwtIDA7XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gMDtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9tYXJnaW47XG4gIHBwX29wZW5fc3lzX2JveCBzdGF0ZVxuXG5sZXQgY2xlYXJfdGFnX3N0YWNrIHN0YXRlID1cbiAgU3RhY2suaXRlciAoZnVuIF8gLT4gcHBfY2xvc2VfdGFnIHN0YXRlICgpKSBzdGF0ZS5wcF90YWdfc3RhY2tcblxuXG4oKiBGbHVzaGluZyBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbmxldCBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSBiID1cbiAgY2xlYXJfdGFnX3N0YWNrIHN0YXRlO1xuICB3aGlsZSBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSBkb1xuICAgIHBwX2Nsb3NlX2JveCBzdGF0ZSAoKVxuICBkb25lO1xuICBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSBwcF9pbmZpbml0eTtcbiAgYWR2YW5jZV9sZWZ0IHN0YXRlO1xuICBpZiBiIHRoZW4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGU7XG4gIHBwX3Jpbml0IHN0YXRlXG5cbigqXG5cbiAgUHJvY2VkdXJlcyB0byBmb3JtYXQgdmFsdWVzIGFuZCB1c2UgYm94ZXMuXG5cbiopXG5cbigqIFRvIGZvcm1hdCBhIHN0cmluZy4gKilcbmxldCBwcF9wcmludF9hc19zaXplIHN0YXRlIHNpemUgcyA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXNcbiAgdGhlbiBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSBzaXplIHNcblxuXG5sZXQgcHBfcHJpbnRfYXMgc3RhdGUgaXNpemUgcyA9XG4gIHBwX3ByaW50X2FzX3NpemUgc3RhdGUgKFNpemUub2ZfaW50IGlzaXplKSBzXG5cblxubGV0IHBwX3ByaW50X3N0cmluZyBzdGF0ZSBzID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgKFN0cmluZy5sZW5ndGggcykgc1xuXG5sZXQgcHBfcHJpbnRfYnl0ZXMgc3RhdGUgcyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIChCeXRlcy5sZW5ndGggcykgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG4oKiBUbyBmb3JtYXQgYW4gaW50ZWdlci4gKilcbmxldCBwcF9wcmludF9pbnQgc3RhdGUgaSA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoSW50LnRvX3N0cmluZyBpKVxuXG4oKiBUbyBmb3JtYXQgYSBmbG9hdC4gKilcbmxldCBwcF9wcmludF9mbG9hdCBzdGF0ZSBmID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChzdHJpbmdfb2ZfZmxvYXQgZilcblxuKCogVG8gZm9ybWF0IGEgYm9vbGVhbi4gKilcbmxldCBwcF9wcmludF9ib29sIHN0YXRlIGIgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKHN0cmluZ19vZl9ib29sIGIpXG5cbigqIFRvIGZvcm1hdCBhIGNoYXIuICopXG5sZXQgcHBfcHJpbnRfY2hhciBzdGF0ZSBjID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgMSAoU3RyaW5nLm1ha2UgMSBjKVxuXG5cbigqIE9wZW5pbmcgYm94ZXMuICopXG5sZXQgcHBfb3Blbl9oYm94IHN0YXRlICgpID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIDAgUHBfaGJveFxuYW5kIHBwX29wZW5fdmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX3Zib3hcblxuYW5kIHBwX29wZW5faHZib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9odmJveFxuYW5kIHBwX29wZW5faG92Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfaG92Ym94XG5hbmQgcHBfb3Blbl9ib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9ib3hcblxuXG4oKiBQcmludGluZyBxdWV1ZWQgdGV4dC5cblxuICAgW3BwX3ByaW50X2ZsdXNoXSBwcmludHMgYWxsIHBlbmRpbmcgaXRlbXMgaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGFuZFxuICAgdGhlbiBmbHVzaGVzIHRoZSBsb3cgbGV2ZWwgb3V0cHV0IGRldmljZSBvZiB0aGUgZm9ybWF0dGVyIHRvIGFjdHVhbGx5XG4gICBkaXNwbGF5IHByaW50aW5nIG1hdGVyaWFsLlxuXG4gICBbcHBfcHJpbnRfbmV3bGluZV0gYmVoYXZlcyBhcyBbcHBfcHJpbnRfZmx1c2hdIGFmdGVyIHByaW50aW5nIGFuIGFkZGl0aW9uYWxcbiAgIG5ldyBsaW5lLiAqKVxubGV0IHBwX3ByaW50X25ld2xpbmUgc3RhdGUgKCkgPVxuICBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSB0cnVlOyBzdGF0ZS5wcF9vdXRfZmx1c2ggKClcbmFuZCBwcF9wcmludF9mbHVzaCBzdGF0ZSAoKSA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIGZhbHNlOyBzdGF0ZS5wcF9vdXRfZmx1c2ggKClcblxuXG4oKiBUbyBnZXQgYSBuZXdsaW5lIHdoZW4gb25lIGRvZXMgbm90IHdhbnQgdG8gY2xvc2UgdGhlIGN1cnJlbnQgYm94LiAqKVxubGV0IHBwX2ZvcmNlX25ld2xpbmUgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX25ld2xpbmU7IGxlbmd0aCA9IDAgfVxuXG5cbigqIFRvIGZvcm1hdCBzb21ldGhpbmcsIG9ubHkgaW4gY2FzZSB0aGUgbGluZSBoYXMganVzdCBiZWVuIGJyb2tlbi4gKilcbmxldCBwcF9wcmludF9pZl9uZXdsaW5lIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlXG4gICAgICB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfaWZfbmV3bGluZTsgbGVuZ3RoID0gMCB9XG5cblxuKCogR2VuZXJhbGl6ZWQgYnJlYWsgaGludCB0aGF0IGFsbG93cyBwcmludGluZyBzdHJpbmdzIGJlZm9yZS9hZnRlclxuICAgc2FtZS1saW5lIG9mZnNldCAod2lkdGgpIG9yIG5ldy1saW5lIG9mZnNldCAqKVxubGV0IHBwX3ByaW50X2N1c3RvbV9icmVhayBzdGF0ZSB+Zml0cyB+YnJlYWtzID1cbiAgbGV0IGJlZm9yZSwgd2lkdGgsIGFmdGVyID0gZml0cyBpblxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCB0b2tlbiA9IFBwX2JyZWFrIHsgZml0czsgYnJlYWtzIH0gaW5cbiAgICBsZXQgbGVuZ3RoID0gU3RyaW5nLmxlbmd0aCBiZWZvcmUgKyB3aWR0aCArIFN0cmluZy5sZW5ndGggYWZ0ZXIgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW47IGxlbmd0aCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIHRydWUgZWxlbVxuXG4oKiBQcmludGluZyBicmVhayBoaW50czpcbiAgIEEgYnJlYWsgaGludCBpbmRpY2F0ZXMgd2hlcmUgYSBib3ggbWF5IGJlIGJyb2tlbi5cbiAgIElmIGxpbmUgaXMgYnJva2VuIHRoZW4gb2Zmc2V0IGlzIGFkZGVkIHRvIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgY3VycmVudFxuICAgYm94IGVsc2UgKHRoZSB2YWx1ZSBvZikgd2lkdGggYmxhbmtzIGFyZSBwcmludGVkLiAqKVxubGV0IHBwX3ByaW50X2JyZWFrIHN0YXRlIHdpZHRoIG9mZnNldCA9XG4gIHBwX3ByaW50X2N1c3RvbV9icmVhayBzdGF0ZVxuICAgIH5maXRzOihcIlwiLCB3aWR0aCwgXCJcIikgfmJyZWFrczooXCJcIiwgb2Zmc2V0LCBcIlwiKVxuXG5cbigqIFByaW50IGEgc3BhY2UgOlxuICAgYSBzcGFjZSBpcyBhIGJyZWFrIGhpbnQgdGhhdCBwcmludHMgYSBzaW5nbGUgc3BhY2UgaWYgdGhlIGJyZWFrIGRvZXMgbm90XG4gICBzcGxpdCB0aGUgbGluZTtcbiAgIGEgY3V0IGlzIGEgYnJlYWsgaGludCB0aGF0IHByaW50cyBub3RoaW5nIGlmIHRoZSBicmVhayBkb2VzIG5vdCBzcGxpdCB0aGVcbiAgIGxpbmUuICopXG5sZXQgcHBfcHJpbnRfc3BhY2Ugc3RhdGUgKCkgPSBwcF9wcmludF9icmVhayBzdGF0ZSAxIDBcbmFuZCBwcF9wcmludF9jdXQgc3RhdGUgKCkgPSBwcF9wcmludF9icmVhayBzdGF0ZSAwIDBcblxuXG4oKiBUYWJ1bGF0aW9uIGJveGVzLiAqKVxubGV0IHBwX29wZW5fdGJveCBzdGF0ZSAoKSA9XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCArIDE7XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS56ZXJvIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfdGJlZ2luIChQcF90Ym94IChyZWYgW10pKTsgbGVuZ3RoID0gMCB9IGluXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW1cblxuXG4oKiBDbG9zZSBhIHRhYnVsYXRpb24gYm94LiAqKVxubGV0IHBwX2Nsb3NlX3Rib3ggc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSB0aGVuXG4gIGJlZ2luXG4gICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICAgbGV0IGVsZW0gPSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfdGVuZDsgbGVuZ3RoID0gMCB9IGluXG4gICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtO1xuICAgICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggLSAxXG4gIGVuZFxuXG5cbigqIFByaW50IGEgdGFidWxhdGlvbiBicmVhay4gKilcbmxldCBwcF9wcmludF90YnJlYWsgc3RhdGUgd2lkdGggb2Zmc2V0ID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF90YnJlYWsgKHdpZHRoLCBvZmZzZXQpOyBsZW5ndGggPSB3aWR0aCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIHRydWUgZWxlbVxuXG5cbmxldCBwcF9wcmludF90YWIgc3RhdGUgKCkgPSBwcF9wcmludF90YnJlYWsgc3RhdGUgMCAwXG5cbmxldCBwcF9zZXRfdGFiIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IGVsZW0gPSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfc3RhYjsgbGVuZ3RoID0gMCB9IGluXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW1cblxuXG4oKlxuXG4gIFByb2NlZHVyZXMgdG8gY29udHJvbCB0aGUgcHJldHR5LXByaW50ZXJzXG5cbiopXG5cbigqIFNldF9tYXhfYm94ZXMuICopXG5sZXQgcHBfc2V0X21heF9ib3hlcyBzdGF0ZSBuID0gaWYgbiA+IDEgdGhlbiBzdGF0ZS5wcF9tYXhfYm94ZXMgPC0gblxuXG4oKiBUbyBrbm93IHRoZSBjdXJyZW50IG1heGltdW0gbnVtYmVyIG9mIGJveGVzIGFsbG93ZWQuICopXG5sZXQgcHBfZ2V0X21heF9ib3hlcyBzdGF0ZSAoKSA9IHN0YXRlLnBwX21heF9ib3hlc1xuXG5sZXQgcHBfb3Zlcl9tYXhfYm94ZXMgc3RhdGUgKCkgPSBzdGF0ZS5wcF9jdXJyX2RlcHRoID0gc3RhdGUucHBfbWF4X2JveGVzXG5cbigqIEVsbGlwc2lzLiAqKVxubGV0IHBwX3NldF9lbGxpcHNpc190ZXh0IHN0YXRlIHMgPSBzdGF0ZS5wcF9lbGxpcHNpcyA8LSBzXG5hbmQgcHBfZ2V0X2VsbGlwc2lzX3RleHQgc3RhdGUgKCkgPSBzdGF0ZS5wcF9lbGxpcHNpc1xuXG5cbigqIFRvIHNldCB0aGUgbWFyZ2luIG9mIHByZXR0eS1wcmludGVyLiAqKVxubGV0IHBwX2xpbWl0IG4gPVxuICBpZiBuIDwgcHBfaW5maW5pdHkgdGhlbiBuIGVsc2UgcHJlZCBwcF9pbmZpbml0eVxuXG5cbigqIEludGVybmFsIHByZXR0eS1wcmludGVyIGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfbWluX3NwYWNlX2xlZnQgc3RhdGUgbiA9XG4gIGlmIG4gPj0gMSB0aGVuXG4gICAgbGV0IG4gPSBwcF9saW1pdCBuIGluXG4gICAgc3RhdGUucHBfbWluX3NwYWNlX2xlZnQgPC0gbjtcbiAgICBzdGF0ZS5wcF9tYXhfaW5kZW50IDwtIHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX3Jpbml0IHN0YXRlXG5cblxuKCogSW5pdGlhbGx5LCB3ZSBoYXZlIDpcbiAgIHBwX21heF9pbmRlbnQgPSBwcF9tYXJnaW4gLSBwcF9taW5fc3BhY2VfbGVmdCwgYW5kXG4gICBwcF9zcGFjZV9sZWZ0ID0gcHBfbWFyZ2luLiAqKVxubGV0IHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG4gPVxuICBpZiBuID4gMSB0aGVuXG4gICAgcHBfc2V0X21pbl9zcGFjZV9sZWZ0IHN0YXRlIChzdGF0ZS5wcF9tYXJnaW4gLSBuKVxuXG5cbmxldCBwcF9nZXRfbWF4X2luZGVudCBzdGF0ZSAoKSA9IHN0YXRlLnBwX21heF9pbmRlbnRcblxubGV0IHBwX3NldF9tYXJnaW4gc3RhdGUgbiA9XG4gIGlmIG4gPj0gMSB0aGVuXG4gICAgbGV0IG4gPSBwcF9saW1pdCBuIGluXG4gICAgc3RhdGUucHBfbWFyZ2luIDwtIG47XG4gICAgbGV0IG5ld19tYXhfaW5kZW50ID1cbiAgICAgICgqIFRyeSB0byBtYWludGFpbiBtYXhfaW5kZW50IHRvIGl0cyBhY3R1YWwgdmFsdWUuICopXG4gICAgICBpZiBzdGF0ZS5wcF9tYXhfaW5kZW50IDw9IHN0YXRlLnBwX21hcmdpblxuICAgICAgdGhlbiBzdGF0ZS5wcF9tYXhfaW5kZW50IGVsc2VcbiAgICAgICgqIElmIHBvc3NpYmxlIG1haW50YWluIHBwX21pbl9zcGFjZV9sZWZ0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgICAgICBpZiB0aGlzIGxlYWRzIHRvIGEgdG9vIHNtYWxsIG1heF9pbmRlbnQsIHRha2UgaGFsZiBvZiB0aGVcbiAgICAgICAgIG5ldyBtYXJnaW4sIGlmIGl0IGlzIGdyZWF0ZXIgdGhhbiAxLiAqKVxuICAgICAgIEludC5tYXggKEludC5tYXggKHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0KVxuICAgICAgICAgICAgICAgIChzdGF0ZS5wcF9tYXJnaW4gLyAyKSkgMSBpblxuICAgICgqIFJlYnVpbGQgaW52YXJpYW50cy4gKilcbiAgICBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBuZXdfbWF4X2luZGVudFxuXG5cbigqKiBHZW9tZXRyeSBmdW5jdGlvbnMgYW5kIHR5cGVzICopXG50eXBlIGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OmludDsgbWFyZ2luOiBpbnR9XG5cbmxldCB2YWxpZGF0ZV9nZW9tZXRyeSB7bWFyZ2luOyBtYXhfaW5kZW50fSA9XG4gIGlmIG1heF9pbmRlbnQgPCAyIHRoZW5cbiAgICBFcnJvciBcIm1heF9pbmRlbnQgPCAyXCJcbiAgZWxzZSBpZiBtYXJnaW4gPD0gbWF4X2luZGVudCB0aGVuXG4gICAgRXJyb3IgXCJtYXJnaW4gPD0gbWF4X2luZGVudFwiXG4gIGVsc2UgT2sgKClcblxubGV0IGNoZWNrX2dlb21ldHJ5IGdlb21ldHJ5ID1cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IE9rICgpIC0+IHRydWVcbiAgfCBFcnJvciBfIC0+IGZhbHNlXG5cbmxldCBwcF9nZXRfbWFyZ2luIHN0YXRlICgpID0gc3RhdGUucHBfbWFyZ2luXG5cbmxldCBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSB7bWFyZ2luOyBtYXhfaW5kZW50fSA9XG4gIHBwX3NldF9tYXJnaW4gc3RhdGUgbWFyZ2luO1xuICBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBtYXhfaW5kZW50O1xuICAoKVxuXG5sZXQgcHBfc2V0X2dlb21ldHJ5IHN0YXRlIH5tYXhfaW5kZW50IH5tYXJnaW4gPVxuICBsZXQgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ7IG1hcmdpbiB9IGluXG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBFcnJvciBtc2cgLT5cbiAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJGb3JtYXQucHBfc2V0X2dlb21ldHJ5OiBcIiBeIG1zZykpXG4gIHwgT2sgKCkgLT5cbiAgICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSBnZW9tZXRyeVxuXG5sZXQgcHBfc2FmZV9zZXRfZ2VvbWV0cnkgc3RhdGUgfm1heF9pbmRlbnQgfm1hcmdpbiA9XG4gIGxldCBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDsgbWFyZ2luIH0gaW5cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IEVycm9yIF9tc2cgLT5cbiAgICAgKClcbiAgfCBPayAoKSAtPlxuICAgIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIGdlb21ldHJ5XG5cbmxldCBwcF9nZXRfZ2VvbWV0cnkgc3RhdGUgKCkgPVxuICB7IG1hcmdpbiA9IHBwX2dldF9tYXJnaW4gc3RhdGUgKCk7IG1heF9pbmRlbnQgPSBwcF9nZXRfbWF4X2luZGVudCBzdGF0ZSAoKSB9XG5cbmxldCBwcF91cGRhdGVfZ2VvbWV0cnkgc3RhdGUgdXBkYXRlID1cbiAgbGV0IGdlb21ldHJ5ID0gcHBfZ2V0X2dlb21ldHJ5IHN0YXRlICgpIGluXG4gIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlICh1cGRhdGUgZ2VvbWV0cnkpXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RhdGUge1xuICAgICAgb3V0X3N0cmluZyA9IGY7XG4gICAgICBvdXRfZmx1c2ggPSBnO1xuICAgICAgb3V0X25ld2xpbmUgPSBoO1xuICAgICAgb3V0X3NwYWNlcyA9IGk7XG4gICAgICBvdXRfaW5kZW50ID0gajtcbiAgICB9ID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBmO1xuICBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gZztcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gaDtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBpO1xuICBzdGF0ZS5wcF9vdXRfaW5kZW50IDwtIGpcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9IHtcbiAgb3V0X3N0cmluZyA9IHN0YXRlLnBwX291dF9zdHJpbmc7XG4gIG91dF9mbHVzaCA9IHN0YXRlLnBwX291dF9mbHVzaDtcbiAgb3V0X25ld2xpbmUgPSBzdGF0ZS5wcF9vdXRfbmV3bGluZTtcbiAgb3V0X3NwYWNlcyA9IHN0YXRlLnBwX291dF9zcGFjZXM7XG4gIG91dF9pbmRlbnQgPSBzdGF0ZS5wcF9vdXRfaW5kZW50O1xufVxuXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgc3RyaW5nIG91dHB1dCBhbmQgZmx1c2ggZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSBmIGcgPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIGY7IHN0YXRlLnBwX291dF9mbHVzaCA8LSBnXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgKCkgPVxuICAoc3RhdGUucHBfb3V0X3N0cmluZywgc3RhdGUucHBfb3V0X2ZsdXNoKVxuXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBuZXcgbGluZXMuICopXG5sZXQgZGlzcGxheV9uZXdsaW5lIHN0YXRlICgpID0gc3RhdGUucHBfb3V0X3N0cmluZyBcIlxcblwiIDAgIDFcblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IHNwYWNlcy4gKilcbmxldCBibGFua19saW5lID0gU3RyaW5nLm1ha2UgODAgJyAnXG5sZXQgcmVjIGRpc3BsYXlfYmxhbmtzIHN0YXRlIG4gPVxuICBpZiBuID4gMCB0aGVuXG4gIGlmIG4gPD0gODAgdGhlbiBzdGF0ZS5wcF9vdXRfc3RyaW5nIGJsYW5rX2xpbmUgMCBuIGVsc2VcbiAgYmVnaW5cbiAgICBzdGF0ZS5wcF9vdXRfc3RyaW5nIGJsYW5rX2xpbmUgMCA4MDtcbiAgICBkaXNwbGF5X2JsYW5rcyBzdGF0ZSAobiAtIDgwKVxuICBlbmRcblxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgaW5kZW50YXRpb24gb2YgbmV3IGxpbmVzLiAqKVxubGV0IGRpc3BsYXlfaW5kZW50ID0gZGlzcGxheV9ibGFua3NcblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zIGFzIHByaW50aW5nIHRvIGEgZ2l2ZW5cbiAgIFtQZXJ2YXNpdmUub3V0X2NoYW5uZWxdIHZhbHVlLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgc3RhdGUgb2MgPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIG91dHB1dF9zdWJzdHJpbmcgb2M7XG4gIHN0YXRlLnBwX291dF9mbHVzaCA8LSAoZnVuICgpIC0+IGZsdXNoIG9jKTtcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gZGlzcGxheV9uZXdsaW5lIHN0YXRlO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGRpc3BsYXlfYmxhbmtzIHN0YXRlO1xuICBzdGF0ZS5wcF9vdXRfaW5kZW50IDwtIGRpc3BsYXlfaW5kZW50IHN0YXRlXG5cbigqXG5cbiAgRGVmaW5pbmcgc3BlY2lmaWMgZm9ybWF0dGVyc1xuXG4qKVxuXG5sZXQgZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnID0gZnVuY3Rpb25cbiAgfCBTdHJpbmdfdGFnIHMgLT4gXCI8XCIgXiBzIF4gXCI+XCJcbiAgfCBfIC0+IFwiXCJcbmxldCBkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnID0gZnVuY3Rpb25cbiAgfCBTdHJpbmdfdGFnIHMgLT4gXCI8L1wiIF4gcyBeIFwiPlwiXG4gIHwgXyAtPiBcIlwiXG5cbmxldCBkZWZhdWx0X3BwX3ByaW50X29wZW5fdGFnID0gaWdub3JlXG5sZXQgZGVmYXVsdF9wcF9wcmludF9jbG9zZV90YWcgPSBpZ25vcmVcblxuKCogQnVpbGRpbmcgYSBmb3JtYXR0ZXIgZ2l2ZW4gaXRzIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMuXG4gICBPdGhlciBmaWVsZHMgZ2V0IHJlYXNvbmFibGUgZGVmYXVsdCB2YWx1ZXMuICopXG5sZXQgcHBfbWFrZV9mb3JtYXR0ZXIgZiBnIGggaSBqID1cbiAgKCogVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGZvcm1hdHRlciBjb250YWlucyBhIGR1bW15IGJveC4gKilcbiAgbGV0IHBwX3F1ZXVlID0gUXVldWUuY3JlYXRlICgpIGluXG4gIGxldCBzeXNfdG9rID1cbiAgICB7IHNpemUgPSBTaXplLnVua25vd247IHRva2VuID0gUHBfYmVnaW4gKDAsIFBwX2hvdmJveCk7IGxlbmd0aCA9IDAgfSBpblxuICBRdWV1ZS5hZGQgc3lzX3RvayBwcF9xdWV1ZTtcbiAgbGV0IHNjYW5fc3RhY2sgPSBTdGFjay5jcmVhdGUgKCkgaW5cbiAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHNjYW5fc3RhY2s7XG4gIFN0YWNrLnB1c2ggeyBsZWZ0X3RvdGFsID0gMTsgcXVldWVfZWxlbSA9IHN5c190b2sgfSBzY2FuX3N0YWNrO1xuICBsZXQgcHBfbWFyZ2luID0gNzhcbiAgYW5kIHBwX21pbl9zcGFjZV9sZWZ0ID0gMTAgaW5cbiAge1xuICAgIHBwX3NjYW5fc3RhY2sgPSBzY2FuX3N0YWNrO1xuICAgIHBwX2Zvcm1hdF9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF90Ym94X3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX3RhZ19zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF9tYXJrX3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX21hcmdpbiA9IHBwX21hcmdpbjtcbiAgICBwcF9taW5fc3BhY2VfbGVmdCA9IHBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX21heF9pbmRlbnQgPSBwcF9tYXJnaW4gLSBwcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9zcGFjZV9sZWZ0ID0gcHBfbWFyZ2luO1xuICAgIHBwX2N1cnJlbnRfaW5kZW50ID0gMDtcbiAgICBwcF9pc19uZXdfbGluZSA9IHRydWU7XG4gICAgcHBfbGVmdF90b3RhbCA9IDE7XG4gICAgcHBfcmlnaHRfdG90YWwgPSAxO1xuICAgIHBwX2N1cnJfZGVwdGggPSAxO1xuICAgIHBwX21heF9ib3hlcyA9IG1heF9pbnQ7XG4gICAgcHBfZWxsaXBzaXMgPSBcIi5cIjtcbiAgICBwcF9vdXRfc3RyaW5nID0gZjtcbiAgICBwcF9vdXRfZmx1c2ggPSBnO1xuICAgIHBwX291dF9uZXdsaW5lID0gaDtcbiAgICBwcF9vdXRfc3BhY2VzID0gaTtcbiAgICBwcF9vdXRfaW5kZW50ID0gajtcbiAgICBwcF9wcmludF90YWdzID0gZmFsc2U7XG4gICAgcHBfbWFya190YWdzID0gZmFsc2U7XG4gICAgcHBfbWFya19vcGVuX3RhZyA9IGRlZmF1bHRfcHBfbWFya19vcGVuX3RhZztcbiAgICBwcF9tYXJrX2Nsb3NlX3RhZyA9IGRlZmF1bHRfcHBfbWFya19jbG9zZV90YWc7XG4gICAgcHBfcHJpbnRfb3Blbl90YWcgPSBkZWZhdWx0X3BwX3ByaW50X29wZW5fdGFnO1xuICAgIHBwX3ByaW50X2Nsb3NlX3RhZyA9IGRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnO1xuICAgIHBwX3F1ZXVlID0gcHBfcXVldWU7XG4gIH1cblxuXG4oKiBCdWlsZCBhIGZvcm1hdHRlciBvdXQgb2YgaXRzIG91dCBmdW5jdGlvbnMuICopXG5sZXQgZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMgb3V0X2Z1bnMgPVxuICBwcF9tYWtlX2Zvcm1hdHRlclxuICAgIG91dF9mdW5zLm91dF9zdHJpbmdcbiAgICBvdXRfZnVucy5vdXRfZmx1c2hcbiAgICBvdXRfZnVucy5vdXRfbmV3bGluZVxuICAgIG91dF9mdW5zLm91dF9zcGFjZXNcbiAgICBvdXRfZnVucy5vdXRfaW5kZW50XG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3aXRoIGRlZmF1bHQgZnVuY3Rpb25zIHRvIG91dHB1dCBzcGFjZXMsXG4gIGluZGVudGF0aW9uLCBhbmQgbmV3IGxpbmVzLiAqKVxubGV0IG1ha2VfZm9ybWF0dGVyIG91dHB1dCBmbHVzaCA9XG4gIGxldCBwcGYgPSBwcF9tYWtlX2Zvcm1hdHRlciBvdXRwdXQgZmx1c2ggaWdub3JlIGlnbm9yZSBpZ25vcmUgaW5cbiAgcHBmLnBwX291dF9uZXdsaW5lIDwtIGRpc3BsYXlfbmV3bGluZSBwcGY7XG4gIHBwZi5wcF9vdXRfc3BhY2VzIDwtIGRpc3BsYXlfYmxhbmtzIHBwZjtcbiAgcHBmLnBwX291dF9pbmRlbnQgPC0gZGlzcGxheV9pbmRlbnQgcHBmO1xuICBwcGZcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdyaXRpbmcgdG8gYSBnaXZlbiBbUGVydmFzaXZlLm91dF9jaGFubmVsXSB2YWx1ZS4gKilcbmxldCBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgPVxuICBtYWtlX2Zvcm1hdHRlciAob3V0cHV0X3N1YnN0cmluZyBvYykgKGZ1biAoKSAtPiBmbHVzaCBvYylcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdyaXRpbmcgdG8gYSBnaXZlbiBbQnVmZmVyLnRdIHZhbHVlLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9idWZmZXIgYiA9XG4gIG1ha2VfZm9ybWF0dGVyIChCdWZmZXIuYWRkX3N1YnN0cmluZyBiKSBpZ25vcmVcblxuXG4oKiBBbGxvY2F0aW5nIGJ1ZmZlciBmb3IgcHJldHR5LXByaW50aW5nIHB1cnBvc2VzLlxuICAgRGVmYXVsdCBidWZmZXIgc2l6ZSBpcyBwcF9idWZmZXJfc2l6ZSBvciA1MTIuXG4qKVxubGV0IHBwX2J1ZmZlcl9zaXplID0gNTEyXG5sZXQgcHBfbWFrZV9idWZmZXIgKCkgPSBCdWZmZXIuY3JlYXRlIHBwX2J1ZmZlcl9zaXplXG5cbigqIFRoZSBzdGFuZGFyZCAoc2hhcmVkKSBidWZmZXIuICopXG5sZXQgc3RkYnVmID0gcHBfbWFrZV9idWZmZXIgKClcblxuKCogUHJlZGVmaW5lZCBmb3JtYXR0ZXJzIHN0YW5kYXJkIGZvcm1hdHRlciB0byBwcmludFxuICAgdG8gW1N0ZGxpYi5zdGRvdXRdLCBbU3RkbGliLnN0ZGVycl0sIGFuZCB7IXN0ZGJ1Zn0uICopXG5sZXQgc3RkX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBTdGRsaWIuc3Rkb3V0XG5hbmQgZXJyX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBTdGRsaWIuc3RkZXJyXG5hbmQgc3RyX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9idWZmZXIgc3RkYnVmXG5cblxuKCogW2ZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYnVmIHBwZl0gZmx1c2hlcyBmb3JtYXR0ZXIgW3BwZl0sXG4gICB0aGVuIHJldHVybnMgdGhlIGNvbnRlbnRzIG9mIGJ1ZmZlciBbYnVmXSB0aGF0IGlzIHJlc2V0LlxuICAgRm9ybWF0dGVyIFtwcGZdIGlzIHN1cHBvc2VkIHRvIHByaW50IHRvIGJ1ZmZlciBbYnVmXSwgb3RoZXJ3aXNlIHRoaXNcbiAgIGZ1bmN0aW9uIGlzIG5vdCByZWFsbHkgdXNlZnVsLiAqKVxubGV0IGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYnVmIHBwZiA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHBwZiBmYWxzZTtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgYnVmIGluXG4gIEJ1ZmZlci5yZXNldCBidWY7XG4gIHNcblxuXG4oKiBGbHVzaCBbc3RyX2Zvcm1hdHRlcl0gYW5kIGdldCB0aGUgY29udGVudHMgb2YgW3N0ZGJ1Zl0uICopXG5sZXQgZmx1c2hfc3RyX2Zvcm1hdHRlciAoKSA9IGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgc3RkYnVmIHN0cl9mb3JtYXR0ZXJcblxuKCpcbiAgU3ltYm9saWMgcHJldHR5LXByaW50aW5nXG4qKVxuXG4oKlxuICBTeW1ib2xpYyBwcmV0dHktcHJpbnRpbmcgaXMgcHJldHR5LXByaW50aW5nIHdpdGggbm8gbG93IGxldmVsIG91dHB1dC5cblxuICBXaGVuIHVzaW5nIGEgc3ltYm9saWMgZm9ybWF0dGVyLCBhbGwgcmVndWxhciBwcmV0dHktcHJpbnRpbmcgYWN0aXZpdGllc1xuICBvY2N1ciBidXQgb3V0cHV0IG1hdGVyaWFsIGlzIHN5bWJvbGljIGFuZCBzdG9yZWQgaW4gYSBidWZmZXIgb2Ygb3V0cHV0XG4gIGl0ZW1zLiBBdCB0aGUgZW5kIG9mIHByZXR0eS1wcmludGluZywgZmx1c2hpbmcgdGhlIG91dHB1dCBidWZmZXIgYWxsb3dzXG4gIHBvc3QtcHJvY2Vzc2luZyBvZiBzeW1ib2xpYyBvdXRwdXQgYmVmb3JlIGxvdyBsZXZlbCBvdXRwdXQgb3BlcmF0aW9ucy5cbiopXG5cbnR5cGUgc3ltYm9saWNfb3V0cHV0X2l0ZW0gPVxuICB8IE91dHB1dF9mbHVzaFxuICB8IE91dHB1dF9uZXdsaW5lXG4gIHwgT3V0cHV0X3N0cmluZyBvZiBzdHJpbmdcbiAgfCBPdXRwdXRfc3BhY2VzIG9mIGludFxuICB8IE91dHB1dF9pbmRlbnQgb2YgaW50XG5cbnR5cGUgc3ltYm9saWNfb3V0cHV0X2J1ZmZlciA9IHtcbiAgbXV0YWJsZSBzeW1ib2xpY19vdXRwdXRfY29udGVudHMgOiBzeW1ib2xpY19vdXRwdXRfaXRlbSBsaXN0O1xufVxuXG5sZXQgbWFrZV9zeW1ib2xpY19vdXRwdXRfYnVmZmVyICgpID1cbiAgeyBzeW1ib2xpY19vdXRwdXRfY29udGVudHMgPSBbXSB9XG5cbmxldCBjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHMgPC0gW11cblxubGV0IGdldF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIExpc3QucmV2IHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHNcblxubGV0IGZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgbGV0IGl0ZW1zID0gZ2V0X3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iIGluXG4gIGNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iO1xuICBpdGVtc1xuXG5sZXQgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBpdGVtID1cbiAgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50cyA8LSBpdGVtIDo6IHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHNcblxubGV0IGZvcm1hdHRlcl9vZl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIGxldCBzeW1ib2xpY19mbHVzaCBzb2IgKCkgPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgT3V0cHV0X2ZsdXNoXG4gIGFuZCBzeW1ib2xpY19uZXdsaW5lIHNvYiAoKSA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBPdXRwdXRfbmV3bGluZVxuICBhbmQgc3ltYm9saWNfc3RyaW5nIHNvYiBzIGkgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X3N0cmluZyAoU3RyaW5nLnN1YiBzIGkgbikpXG4gIGFuZCBzeW1ib2xpY19zcGFjZXMgc29iIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9zcGFjZXMgbilcbiAgYW5kIHN5bWJvbGljX2luZGVudCBzb2IgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X2luZGVudCBuKSBpblxuXG4gIGxldCBmID0gc3ltYm9saWNfc3RyaW5nIHNvYlxuICBhbmQgZyA9IHN5bWJvbGljX2ZsdXNoIHNvYlxuICBhbmQgaCA9IHN5bWJvbGljX25ld2xpbmUgc29iXG4gIGFuZCBpID0gc3ltYm9saWNfc3BhY2VzIHNvYlxuICBhbmQgaiA9IHN5bWJvbGljX2luZGVudCBzb2IgaW5cbiAgcHBfbWFrZV9mb3JtYXR0ZXIgZiBnIGggaSBqXG5cbigqXG5cbiAgQmFzaWMgZnVuY3Rpb25zIG9uIHRoZSAnc3RhbmRhcmQnIGZvcm1hdHRlclxuICAodGhlIGZvcm1hdHRlciB0aGF0IHByaW50cyB0byBbU3RkbGliLnN0ZG91dF0pLlxuXG4qKVxuXG5sZXQgb3Blbl9oYm94ID0gcHBfb3Blbl9oYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3Zib3ggPSBwcF9vcGVuX3Zib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5faHZib3ggPSBwcF9vcGVuX2h2Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2hvdmJveCA9IHBwX29wZW5faG92Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2JveCA9IHBwX29wZW5fYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV9ib3ggPSBwcF9jbG9zZV9ib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fdGFnID0gcHBfb3Blbl90YWcgc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3RhZyA9IHBwX2Nsb3NlX3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9zdGFnID0gcHBfb3Blbl9zdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV9zdGFnID0gcHBfY2xvc2Vfc3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYXMgPSBwcF9wcmludF9hcyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfc3RyaW5nID0gcHBfcHJpbnRfc3RyaW5nIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9ieXRlcyA9IHBwX3ByaW50X2J5dGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9pbnQgPSBwcF9wcmludF9pbnQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2Zsb2F0ID0gcHBfcHJpbnRfZmxvYXQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2NoYXIgPSBwcF9wcmludF9jaGFyIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9ib29sID0gcHBfcHJpbnRfYm9vbCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYnJlYWsgPSBwcF9wcmludF9icmVhayBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfY3V0ID0gcHBfcHJpbnRfY3V0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9zcGFjZSA9IHBwX3ByaW50X3NwYWNlIHN0ZF9mb3JtYXR0ZXJcbmFuZCBmb3JjZV9uZXdsaW5lID0gcHBfZm9yY2VfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfZmx1c2ggPSBwcF9wcmludF9mbHVzaCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfbmV3bGluZSA9IHBwX3ByaW50X25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2lmX25ld2xpbmUgPSBwcF9wcmludF9pZl9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIG9wZW5fdGJveCA9IHBwX29wZW5fdGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfdGJveCA9IHBwX2Nsb3NlX3Rib3ggc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3RicmVhayA9IHBwX3ByaW50X3RicmVhayBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfdGFiID0gcHBfc2V0X3RhYiBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfdGFiID0gcHBfcHJpbnRfdGFiIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXJnaW4gPSBwcF9zZXRfbWFyZ2luIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWFyZ2luID0gcHBfZ2V0X21hcmdpbiBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWF4X2luZGVudCA9IHBwX3NldF9tYXhfaW5kZW50IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWF4X2luZGVudCA9IHBwX2dldF9tYXhfaW5kZW50IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9nZW9tZXRyeSA9IHBwX3NldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgc2FmZV9zZXRfZ2VvbWV0cnkgPSBwcF9zYWZlX3NldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2dlb21ldHJ5ID0gcHBfZ2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCB1cGRhdGVfZ2VvbWV0cnkgPSBwcF91cGRhdGVfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21heF9ib3hlcyA9IHBwX3NldF9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXhfYm94ZXMgPSBwcF9nZXRfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBvdmVyX21heF9ib3hlcyA9IHBwX292ZXJfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9lbGxpcHNpc190ZXh0ID0gcHBfc2V0X2VsbGlwc2lzX3RleHQgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9lbGxpcHNpc190ZXh0ID0gcHBfZ2V0X2VsbGlwc2lzX3RleHQgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfcHJpbnRfdGFncyA9XG4gIHBwX3NldF9wcmludF90YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfcHJpbnRfdGFncyA9XG4gIHBwX2dldF9wcmludF90YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfbWFya190YWdzID1cbiAgcHBfc2V0X21hcmtfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21hcmtfdGFncyA9XG4gIHBwX2dldF9tYXJrX3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF90YWdzID1cbiAgcHBfc2V0X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuXG5cbigqIENvbnZlbmllbmNlIGZ1bmN0aW9ucyAqKVxuXG4oKiBUbyBmb3JtYXQgYSBsaXN0ICopXG5sZXQgcmVjIHBwX3ByaW50X2xpc3QgPyhwcF9zZXAgPSBwcF9wcmludF9jdXQpIHBwX3YgcHBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiAoKVxuICB8IFt2XSAtPiBwcF92IHBwZiB2XG4gIHwgdiA6OiB2cyAtPlxuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfc2VwIHBwZiAoKTtcbiAgICBwcF9wcmludF9saXN0IH5wcF9zZXAgcHBfdiBwcGYgdnNcblxuKCogVG8gZm9ybWF0IGEgc2VxdWVuY2UgKilcbmxldCByZWMgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBTZXEuTmlsIC0+ICgpXG4gIHwgU2VxLkNvbnMgKHYsIHNlcSkgLT5cbiAgICBwcF9zZXAgcHBmICgpO1xuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxXG5cbmxldCBwcF9wcmludF9zZXEgPyhwcF9zZXAgPSBwcF9wcmludF9jdXQpIHBwX3YgcHBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgU2VxLk5pbCAtPiAoKVxuICB8IFNlcS5Db25zICh2LCBzZXEpIC0+XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXFcblxuKCogVG8gZm9ybWF0IGZyZWUtZmxvd2luZyB0ZXh0ICopXG5sZXQgcHBfcHJpbnRfdGV4dCBwcGYgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IGxlZnQgPSByZWYgMCBpblxuICBsZXQgcmlnaHQgPSByZWYgMCBpblxuICBsZXQgZmx1c2ggKCkgPVxuICAgIHBwX3ByaW50X3N0cmluZyBwcGYgKFN0cmluZy5zdWIgcyAhbGVmdCAoIXJpZ2h0IC0gIWxlZnQpKTtcbiAgICBpbmNyIHJpZ2h0OyBsZWZ0IDo9ICFyaWdodDtcbiAgaW5cbiAgd2hpbGUgKCFyaWdodCA8PiBsZW4pIGRvXG4gICAgbWF0Y2ggcy5bIXJpZ2h0XSB3aXRoXG4gICAgICB8ICdcXG4nIC0+XG4gICAgICAgIGZsdXNoICgpO1xuICAgICAgICBwcF9mb3JjZV9uZXdsaW5lIHBwZiAoKVxuICAgICAgfCAnICcgLT5cbiAgICAgICAgZmx1c2ggKCk7IHBwX3ByaW50X3NwYWNlIHBwZiAoKVxuICAgICAgKCogdGhlcmUgaXMgbm8gc3BlY2lmaWMgc3VwcG9ydCBmb3IgJ1xcdCdcbiAgICAgICAgIGFzIGl0IGlzIHVuY2xlYXIgd2hhdCBhIHJpZ2h0IHNlbWFudGljcyB3b3VsZCBiZSAqKVxuICAgICAgfCBfIC0+IGluY3IgcmlnaHRcbiAgZG9uZTtcbiAgaWYgIWxlZnQgPD4gbGVuIHRoZW4gZmx1c2ggKClcblxubGV0IHBwX3ByaW50X29wdGlvbiA/KG5vbmUgPSBmdW4gXyAoKSAtPiAoKSkgcHBfdiBwcGYgPSBmdW5jdGlvblxufCBOb25lIC0+IG5vbmUgcHBmICgpXG58IFNvbWUgdiAtPiBwcF92IHBwZiB2XG5cbmxldCBwcF9wcmludF9yZXN1bHQgfm9rIH5lcnJvciBwcGYgPSBmdW5jdGlvblxufCBPayB2IC0+IG9rIHBwZiB2XG58IEVycm9yIGUgLT4gZXJyb3IgcHBmIGVcblxubGV0IHBwX3ByaW50X2VpdGhlciB+bGVmdCB+cmlnaHQgcHBmID0gZnVuY3Rpb25cbnwgRWl0aGVyLkxlZnQgbCAtPiBsZWZ0IHBwZiBsXG58IEVpdGhlci5SaWdodCByIC0+IHJpZ2h0IHBwZiByXG5cbiAoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmxldCBjb21wdXRlX3RhZyBvdXRwdXQgdGFnX2FjYyA9XG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDE2IGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGJ1ZiBpblxuICBvdXRwdXQgcHBmIHRhZ19hY2M7XG4gIHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgbGV0IGxlbiA9IEJ1ZmZlci5sZW5ndGggYnVmIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBCdWZmZXIuY29udGVudHMgYnVmXG4gIGVsc2UgQnVmZmVyLnN1YiBidWYgMSAobGVuIC0gMilcblxuICgqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gIERlZmluaW5nIGNvbnRpbnVhdGlvbnMgdG8gYmUgcGFzc2VkIGFzIGFyZ3VtZW50cyBvZlxuICBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuXG5cbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG4oKiBJbnRlcnByZXQgYSBmb3JtYXR0aW5nIGVudGl0eSBvbiBhIGZvcm1hdHRlci4gKilcbmxldCBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGZtdGluZ19saXQgPSBtYXRjaCBmbXRpbmdfbGl0IHdpdGhcbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAgICAgIC0+IHBwX2Nsb3NlX2JveCBwcGYgKClcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAgICAgIC0+IHBwX2Nsb3NlX3RhZyBwcGYgKClcbiAgfCBCcmVhayAoXywgd2lkdGgsIG9mZnNldCkgIC0+IHBwX3ByaW50X2JyZWFrIHBwZiB3aWR0aCBvZmZzZXRcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2ZsdXNoIHBwZiAoKVxuICB8IEZvcmNlX25ld2xpbmUgICAgICAgICAgICAgLT4gcHBfZm9yY2VfbmV3bGluZSBwcGYgKClcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAgICAgIC0+IHBwX3ByaW50X25ld2xpbmUgcHBmICgpXG4gIHwgTWFnaWNfc2l6ZSAoXywgXykgICAgICAgICAtPiAoKVxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJ0AnXG4gIHwgRXNjYXBlZF9wZXJjZW50ICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnJSdcbiAgfCBTY2FuX2luZGljIGMgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICdAJzsgcHBfcHJpbnRfY2hhciBwcGYgY1xuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGFuIG91dHB1dF9zdHJlYW0uICopXG4oKiBEaWZmZXIgZnJvbSBQcmludGYub3V0cHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgZm9ybWF0dGluZy4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBvdXRwdXRfYWNjIHBwZiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChTdHJpbmcubWFrZSAxIGMpO1xuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZikgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZjtcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfb3Blbl9zdGFnIHBwZiAoU3RyaW5nX3RhZyAoY29tcHV0ZV90YWcgb3V0cHV0X2FjYyBhY2MnKSlcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgbGV0IChpbmRlbnQsIGJ0eSkgPSBvcGVuX2JveF9vZl9zdHJpbmcgKGNvbXB1dGVfdGFnIG91dHB1dF9hY2MgYWNjJykgaW5cbiAgICBwcF9vcGVuX2JveF9nZW4gcHBmIGluZGVudCBidHlcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9jaGFyIHBwZiBjO1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBmIHBwZjtcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBvdXRwdXRfYWNjIHBwZiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBEaWZmZXIgZnJvbSBQcmludGYuYnVmcHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgZm9ybWF0dGluZy4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBzdHJwdXRfYWNjIHBwZiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChTdHJpbmcubWFrZSAxIGMpO1xuICB8IEFjY19kZWxheSAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGYpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKGYgKCkpO1xuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZikgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZjtcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfb3Blbl9zdGFnIHBwZiAoU3RyaW5nX3RhZyAoY29tcHV0ZV90YWcgc3RycHV0X2FjYyBhY2MnKSlcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgbGV0IChpbmRlbnQsIGJ0eSkgPSBvcGVuX2JveF9vZl9zdHJpbmcgKGNvbXB1dGVfdGFnIHN0cnB1dF9hY2MgYWNjJykgaW5cbiAgICBwcF9vcGVuX2JveF9nZW4gcHBmIGluZGVudCBidHlcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9jaGFyIHBwZiBjO1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIChmICgpKTtcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBzdHJwdXRfYWNjIHBwZiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqXG5cbiAgRGVmaW5pbmcgW2ZwcmludGZdIGFuZCB2YXJpb3VzIGZsYXZvcnMgb2YgW2ZwcmludGZdLlxuXG4qKVxuXG5sZXQga2ZwcmludGYgayBwcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZlxuICAgIChmdW4gYWNjIC0+IG91dHB1dF9hY2MgcHBmIGFjYzsgayBwcGYpXG4gICAgRW5kX29mX2FjYyBmbXRcblxuYW5kIGlrZnByaW50ZiBrIHBwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBrIHBwZiBmbXRcblxubGV0IGlmcHJpbnRmIF9wcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgaWdub3JlICgpIGZtdFxuXG5sZXQgZnByaW50ZiBwcGYgPSBrZnByaW50ZiBpZ25vcmUgcHBmXG5sZXQgcHJpbnRmIGZtdCA9IGZwcmludGYgc3RkX2Zvcm1hdHRlciBmbXRcbmxldCBlcHJpbnRmIGZtdCA9IGZwcmludGYgZXJyX2Zvcm1hdHRlciBmbXRcblxubGV0IGtkcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZlxuICAgIChmdW4gYWNjIC0+IGsgKGZ1biBwcGYgLT4gb3V0cHV0X2FjYyBwcGYgYWNjKSlcbiAgICBFbmRfb2ZfYWNjIGZtdFxuXG5sZXQgZHByaW50ZiBmbXQgPSBrZHByaW50ZiAoZnVuIGkgLT4gaSkgZm10XG5cbmxldCBrc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGIgPSBwcF9tYWtlX2J1ZmZlciAoKSBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9XG4gICAgc3RycHV0X2FjYyBwcGYgYWNjO1xuICAgIGsgKGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYiBwcGYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG5sZXQgc3ByaW50ZiBmbXQgPSBrc3ByaW50ZiBpZCBmbXRcblxubGV0IGthc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGIgPSBwcF9tYWtlX2J1ZmZlciAoKSBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9XG4gICAgb3V0cHV0X2FjYyBwcGYgYWNjO1xuICAgIGsgKGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYiBwcGYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG5sZXQgYXNwcmludGYgZm10ID0ga2FzcHJpbnRmIGlkIGZtdFxuXG4oKiBGbHVzaGluZyBzdGFuZGFyZCBmb3JtYXR0ZXJzIGF0IGVuZCBvZiBleGVjdXRpb24uICopXG5cbmxldCBmbHVzaF9zdGFuZGFyZF9mb3JtYXR0ZXJzICgpID1cbiAgcHBfcHJpbnRfZmx1c2ggc3RkX2Zvcm1hdHRlciAoKTtcbiAgcHBfcHJpbnRfZmx1c2ggZXJyX2Zvcm1hdHRlciAoKVxuXG5sZXQgKCkgPSBhdF9leGl0IGZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnNcblxuKCpcblxuICBEZXByZWNhdGVkIHN0dWZmLlxuXG4qKVxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgcHBfc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZVxuICAgIH5vdXQ6ZiB+Zmx1c2g6ZyB+bmV3bGluZTpoIH5zcGFjZXM6aSA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSBmIGc7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGg7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gaVxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgcHBfZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9XG4gIChzdGF0ZS5wcF9vdXRfc3RyaW5nLCBzdGF0ZS5wcF9vdXRfZmx1c2gsXG4gICBzdGF0ZS5wcF9vdXRfbmV3bGluZSwgc3RhdGUucHBfb3V0X3NwYWNlcylcblxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBnZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cblxuKCogRGVwcmVjYXRlZCA6IGVycm9yIHByb25lIGZ1bmN0aW9uLCBkbyBub3QgdXNlIGl0LlxuICAgVGhpcyBmdW5jdGlvbiBpcyBuZWl0aGVyIGNvbXBvc2l0aW9uYWwgbm9yIGluY3JlbWVudGFsLCBzaW5jZSBpdCBmbHVzaGVzXG4gICB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUgYXQgZWFjaCBjYWxsLlxuICAgVG8gZ2V0IHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHksIGRlZmluZSBhIGZvcm1hdHRlciBvZiB5b3VyIG93biB3cml0aW5nIHRvXG4gICB0aGUgYnVmZmVyIGFyZ3VtZW50LCBhcyBpblxuICAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYlxuICAgdGhlbiB1c2UgeyFmcHJpbnRmIHBwZn0gYXMgdXN1YWwuICopXG5sZXQgYnByaW50ZiBiIChGb3JtYXQgKGZtdCwgXykgOiAoJ2EsIGZvcm1hdHRlciwgdW5pdCkgZm9ybWF0KSA9XG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID0gb3V0cHV0X2FjYyBwcGYgYWNjOyBwcF9mbHVzaF9xdWV1ZSBwcGYgZmFsc2UgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbigqIERlcHJlY2F0ZWQgOiBhbGlhcyBmb3Iga3NwcmludGYuICopXG5sZXQga3ByaW50ZiA9IGtzcHJpbnRmXG5cblxuXG4oKiBEZXByZWNhdGVkIHRhZyBmdW5jdGlvbnMgKilcblxudHlwZSBmb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9IHtcbiAgbWFya19vcGVuX3RhZyA6IHRhZyAtPiBzdHJpbmc7XG4gIG1hcmtfY2xvc2VfdGFnIDogdGFnIC0+IHN0cmluZztcbiAgcHJpbnRfb3Blbl90YWcgOiB0YWcgLT4gdW5pdDtcbiAgcHJpbnRfY2xvc2VfdGFnIDogdGFnIC0+IHVuaXQ7XG59XG5cblxubGV0IHBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgIG1hcmtfb3Blbl90YWcgPSBtb3Q7XG4gICAgIG1hcmtfY2xvc2VfdGFnID0gbWN0O1xuICAgICBwcmludF9vcGVuX3RhZyA9IHBvdDtcbiAgICAgcHJpbnRfY2xvc2VfdGFnID0gcGN0O1xuICAgfSA9XG4gIGxldCBzdHJpbmdpZnkgZiBlID0gZnVuY3Rpb24gU3RyaW5nX3RhZyBzIC0+IGYgcyB8IF8gLT4gZSBpblxuICBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIDwtIHN0cmluZ2lmeSBtb3QgXCJcIjtcbiAgc3RhdGUucHBfbWFya19jbG9zZV90YWcgPC0gc3RyaW5naWZ5IG1jdCBcIlwiO1xuICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyA8LSBzdHJpbmdpZnkgcG90ICgpO1xuICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgPC0gc3RyaW5naWZ5IHBjdCAoKVxuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIGZtdCAoKSA9XG4gIGxldCBmdW5zID0gcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBmbXQgKCkgaW5cbiAgbGV0IG1hcmtfb3Blbl90YWcgcyA9IGZ1bnMubWFya19vcGVuX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IG1hcmtfY2xvc2VfdGFnIHMgPSBmdW5zLm1hcmtfY2xvc2Vfc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgcHJpbnRfb3Blbl90YWcgcyA9IGZ1bnMucHJpbnRfb3Blbl9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBwcmludF9jbG9zZV90YWcgcyA9IGZ1bnMucHJpbnRfY2xvc2Vfc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICB7bWFya19vcGVuX3RhZzsgbWFya19jbG9zZV90YWc7IHByaW50X29wZW5fdGFnOyBwcmludF9jbG9zZV90YWd9XG5cbmxldCBzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG4oKiBhbGlhcyB0byBhdm9pZCB3YXJuaW5nIGZvciBhbWJpZ3VpdHkgYmV0d2VlblxuICAgU3RkbGliLmZvcm1hdDZcbiAgIGFuZCBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxuXG4gICAodGhlIGZvcm1lciBpcyBpbiBmYWN0IGFuIGFsaWFzIGZvciB0aGUgbGF0dGVyLFxuICAgIGJ1dCB0aGUgYW1iaWd1aXR5IHdhcm5pbmcgZG9lc24ndCBjYXJlKVxuKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgU3RkbGliLmZvcm1hdDZcblxuXG4oKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3Igc2Nhbm5lcnMuICopXG5cbigqIFNjYW5uaW5nIGJ1ZmZlcnMuICopXG5tb2R1bGUgdHlwZSBTQ0FOTklORyA9IHNpZ1xuXG4gIHR5cGUgaW5fY2hhbm5lbFxuXG4gIHR5cGUgc2NhbmJ1ZiA9IGluX2NoYW5uZWxcblxuICB0eXBlIGZpbGVfbmFtZSA9IHN0cmluZ1xuXG4gIHZhbCBzdGRpbiA6IGluX2NoYW5uZWxcbiAgKCogVGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0uXG4gICAgIFtzdGRpYl0gaXMgZXF1aXZhbGVudCB0byBbU2Nhbm5pbmcuZnJvbV9jaGFubmVsIFN0ZGxpYi5zdGRpbl0uICopXG5cbiAgdmFsIHN0ZGliIDogaW5fY2hhbm5lbFxuICAoKiBBbiBhbGlhcyBmb3IgW1NjYW5mLnN0ZGluXSwgdGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb21cbiAgICAgW1N0ZGxpYi5zdGRpbl0uICopXG5cbiAgdmFsIG5leHRfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBbU2Nhbm5pbmcubmV4dF9jaGFyIGliXSBhZHZhbmNlIHRoZSBzY2FubmluZyBidWZmZXIgZm9yXG4gICAgIG9uZSBjaGFyYWN0ZXIuXG4gICAgIElmIG5vIG1vcmUgY2hhcmFjdGVyIGNhbiBiZSByZWFkLCBzZXRzIGEgZW5kIG9mIGZpbGUgY29uZGl0aW9uIGFuZFxuICAgICByZXR1cm5zICdcXDAwMCcuICopXG5cbiAgdmFsIGludmFsaWRhdGVfY3VycmVudF9jaGFyIDogc2NhbmJ1ZiAtPiB1bml0XG4gICgqIFtTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYl0gbWFyayB0aGUgY3VycmVudF9jaGFyIGFzIGFscmVhZHlcbiAgICAgc2Nhbm5lZC4gKilcblxuICB2YWwgcGVla19jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFtTY2FubmluZy5wZWVrX2NoYXIgaWJdIHJldHVybnMgdGhlIGN1cnJlbnQgY2hhciBhdmFpbGFibGUgaW5cbiAgICAgdGhlIGJ1ZmZlciBvciByZWFkcyBvbmUgaWYgbmVjZXNzYXJ5ICh3aGVuIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpc1xuICAgICBhbHJlYWR5IHNjYW5uZWQpLlxuICAgICBJZiBubyBjaGFyYWN0ZXIgY2FuIGJlIHJlYWQsIHNldHMgYW4gZW5kIG9mIGZpbGUgY29uZGl0aW9uIGFuZFxuICAgICByZXR1cm5zICdcXDAwMCcuICopXG5cbiAgdmFsIGNoZWNrZWRfcGVla19jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFNhbWUgYXMgW1NjYW5uaW5nLnBlZWtfY2hhcl0gYWJvdmUgYnV0IGFsd2F5cyByZXR1cm5zIGEgdmFsaWQgY2hhciBvclxuICAgICBmYWlsczogaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBudWxsIGNoYXIgd2hlbiB0aGUgcmVhZGluZyBtZXRob2Qgb2YgdGhlXG4gICAgIGlucHV0IGJ1ZmZlciBoYXMgcmVhY2hlZCBhbiBlbmQgb2YgZmlsZSwgdGhlIGZ1bmN0aW9uIHJhaXNlcyBleGNlcHRpb25cbiAgICAgW0VuZF9vZl9maWxlXS4gKilcblxuICB2YWwgc3RvcmVfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGNoYXIgLT4gaW50XG4gICgqIFtTY2FubmluZy5zdG9yZV9jaGFyIGxpbSBpYiBjXSBhZGRzIFtjXSB0byB0aGUgdG9rZW4gYnVmZmVyXG4gICAgIG9mIHRoZSBzY2FubmluZyBidWZmZXIgW2liXS4gSXQgYWxzbyBhZHZhbmNlcyB0aGUgc2Nhbm5pbmcgYnVmZmVyIGZvclxuICAgICBvbmUgY2hhcmFjdGVyIGFuZCByZXR1cm5zIFtsaW0gLSAxXSwgaW5kaWNhdGluZyB0aGUgbmV3IGxpbWl0IGZvciB0aGVcbiAgICAgbGVuZ3RoIG9mIHRoZSBjdXJyZW50IHRva2VuLiAqKVxuXG4gIHZhbCBza2lwX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnNraXBfY2hhciBsaW0gaWJdIGlnbm9yZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLiAqKVxuXG4gIHZhbCBpZ25vcmVfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuaWdub3JlX2NoYXIgaWIgbGltXSBpZ25vcmVzIHRoZSBjdXJyZW50IGNoYXJhY3RlciBhbmRcbiAgICAgZGVjcmVtZW50cyB0aGUgbGltaXQuICopXG5cbiAgdmFsIHRva2VuIDogc2NhbmJ1ZiAtPiBzdHJpbmdcbiAgKCogW1NjYW5uaW5nLnRva2VuIGliXSByZXR1cm5zIHRoZSBzdHJpbmcgc3RvcmVkIGludG8gdGhlIHRva2VuXG4gICAgIGJ1ZmZlciBvZiB0aGUgc2Nhbm5pbmcgYnVmZmVyOiBpdCByZXR1cm5zIHRoZSB0b2tlbiBtYXRjaGVkIGJ5IHRoZVxuICAgICBmb3JtYXQuICopXG5cbiAgdmFsIHJlc2V0X3Rva2VuIDogc2NhbmJ1ZiAtPiB1bml0XG4gICgqIFtTY2FubmluZy5yZXNldF90b2tlbiBpYl0gcmVzZXRzIHRoZSB0b2tlbiBidWZmZXIgb2ZcbiAgICAgdGhlIGdpdmVuIHNjYW5uaW5nIGJ1ZmZlci4gKilcblxuICB2YWwgY2hhcl9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5jaGFyX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICByZWFkIHNvIGZhciBmcm9tIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIGxpbmVfY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcubGluZV9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIG5ldyBsaW5lXG4gICAgIGNoYXJhY3RlcnMgcmVhZCBzbyBmYXIgZnJvbSB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCB0b2tlbl9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy50b2tlbl9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRva2VucyByZWFkXG4gICAgIHNvIGZhciBmcm9tIFtpYl0uICopXG5cbiAgdmFsIGVvZiA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuZW9mIGliXSByZXR1cm5zIHRoZSBlbmQgb2YgaW5wdXQgY29uZGl0aW9uXG4gICAgIG9mIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIGVuZF9vZl9pbnB1dCA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliXSB0ZXN0cyB0aGUgZW5kIG9mIGlucHV0IGNvbmRpdGlvblxuICAgICBvZiB0aGUgZ2l2ZW4gYnVmZmVyIChpZiBubyBjaGFyIGhhcyBldmVyIGJlZW4gcmVhZCwgYW4gYXR0ZW1wdCB0b1xuICAgICByZWFkIG9uZSBpcyBwZXJmb3JtZWQpLiAqKVxuXG4gIHZhbCBiZWdpbm5pbmdfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmJlZ2lubmluZ19vZl9pbnB1dCBpYl0gdGVzdHMgdGhlIGJlZ2lubmluZyBvZiBpbnB1dFxuICAgICBjb25kaXRpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgbmFtZV9vZl9pbnB1dCA6IHNjYW5idWYgLT4gc3RyaW5nXG4gICgqIFtTY2FubmluZy5uYW1lX29mX2lucHV0IGliXSByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXJcbiAgICAgc291cmNlIGZvciBpbnB1dCBidWZmZXIgW2liXS4gKilcblxuICB2YWwgb3Blbl9pbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBvcGVuX2luX2JpbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2ZpbGUgOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9maWxlX2JpbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX3N0cmluZyA6IHN0cmluZyAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2Z1bmN0aW9uIDogKHVuaXQgLT4gY2hhcikgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9jaGFubmVsIDogU3RkbGliLmluX2NoYW5uZWwgLT4gaW5fY2hhbm5lbFxuXG4gIHZhbCBjbG9zZV9pbiA6IGluX2NoYW5uZWwgLT4gdW5pdFxuXG4gIHZhbCBtZW1vX2Zyb21fY2hhbm5lbCA6IFN0ZGxpYi5pbl9jaGFubmVsIC0+IGluX2NoYW5uZWxcbiAgKCogT2Jzb2xldGUuICopXG5cbmVuZFxuXG5cbm1vZHVsZSBTY2FubmluZyA6IFNDQU5OSU5HID0gc3RydWN0XG5cbiAgKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIHNjYW5mLiAqKVxuXG4gIHR5cGUgZmlsZV9uYW1lID0gc3RyaW5nXG5cbiAgdHlwZSBpbl9jaGFubmVsX25hbWUgPVxuICAgIHwgRnJvbV9jaGFubmVsIG9mIFN0ZGxpYi5pbl9jaGFubmVsXG4gICAgfCBGcm9tX2ZpbGUgb2YgZmlsZV9uYW1lICogU3RkbGliLmluX2NoYW5uZWxcbiAgICB8IEZyb21fZnVuY3Rpb25cbiAgICB8IEZyb21fc3RyaW5nXG5cblxuICB0eXBlIGluX2NoYW5uZWwgPSB7XG4gICAgbXV0YWJsZSBpY19lb2YgOiBib29sO1xuICAgIG11dGFibGUgaWNfY3VycmVudF9jaGFyIDogY2hhcjtcbiAgICBtdXRhYmxlIGljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA6IGJvb2w7XG4gICAgbXV0YWJsZSBpY19jaGFyX2NvdW50IDogaW50O1xuICAgIG11dGFibGUgaWNfbGluZV9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGljX3Rva2VuX2NvdW50IDogaW50O1xuICAgIGljX2dldF9uZXh0X2NoYXIgOiB1bml0IC0+IGNoYXI7XG4gICAgaWNfdG9rZW5fYnVmZmVyIDogQnVmZmVyLnQ7XG4gICAgaWNfaW5wdXRfbmFtZSA6IGluX2NoYW5uZWxfbmFtZTtcbiAgfVxuXG5cbiAgdHlwZSBzY2FuYnVmID0gaW5fY2hhbm5lbFxuXG4gIGxldCBudWxsX2NoYXIgPSAnXFwwMDAnXG5cbiAgKCogUmVhZHMgYSBuZXcgY2hhcmFjdGVyIGZyb20gaW5wdXQgYnVmZmVyLlxuICAgICBOZXh0X2NoYXIgbmV2ZXIgZmFpbHMsIGV2ZW4gaW4gY2FzZSBvZiBlbmQgb2YgaW5wdXQ6XG4gICAgIGl0IHRoZW4gc2ltcGx5IHNldHMgdGhlIGVuZCBvZiBmaWxlIGNvbmRpdGlvbi4gKilcbiAgbGV0IG5leHRfY2hhciBpYiA9XG4gICAgdHJ5XG4gICAgICBsZXQgYyA9IGliLmljX2dldF9uZXh0X2NoYXIgKCkgaW5cbiAgICAgIGliLmljX2N1cnJlbnRfY2hhciA8LSBjO1xuICAgICAgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIHRydWU7XG4gICAgICBpYi5pY19jaGFyX2NvdW50IDwtIHN1Y2MgaWIuaWNfY2hhcl9jb3VudDtcbiAgICAgIGlmIGMgPSAnXFxuJyB0aGVuIGliLmljX2xpbmVfY291bnQgPC0gc3VjYyBpYi5pY19saW5lX2NvdW50O1xuICAgICAgYyB3aXRoXG4gICAgfCBFbmRfb2ZfZmlsZSAtPlxuICAgICAgbGV0IGMgPSBudWxsX2NoYXIgaW5cbiAgICAgIGliLmljX2N1cnJlbnRfY2hhciA8LSBjO1xuICAgICAgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIGZhbHNlO1xuICAgICAgaWIuaWNfZW9mIDwtIHRydWU7XG4gICAgICBjXG5cblxuICBsZXQgcGVla19jaGFyIGliID1cbiAgICBpZiBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWRcbiAgICB0aGVuIGliLmljX2N1cnJlbnRfY2hhclxuICAgIGVsc2UgbmV4dF9jaGFyIGliXG5cblxuICAoKiBSZXR1cm5zIGEgdmFsaWQgY3VycmVudCBjaGFyIGZvciB0aGUgaW5wdXQgYnVmZmVyLiBJbiBwYXJ0aWN1bGFyXG4gICAgIG5vIGlycmVsZXZhbnQgbnVsbCBjaGFyYWN0ZXIgKGFzIHNldCBieSBbbmV4dF9jaGFyXSBpbiBjYXNlIG9mIGVuZFxuICAgICBvZiBpbnB1dCkgaXMgcmV0dXJuZWQsIHNpbmNlIFtFbmRfb2ZfZmlsZV0gaXMgcmFpc2VkIHdoZW5cbiAgICAgW25leHRfY2hhcl0gc2V0cyB0aGUgZW5kIG9mIGZpbGUgY29uZGl0aW9uIHdoaWxlIHRyeWluZyB0byByZWFkIGFcbiAgICAgbmV3IGNoYXJhY3Rlci4gKilcbiAgbGV0IGNoZWNrZWRfcGVla19jaGFyIGliID1cbiAgICBsZXQgYyA9IHBlZWtfY2hhciBpYiBpblxuICAgIGlmIGliLmljX2VvZiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlO1xuICAgIGNcblxuXG4gIGxldCBlbmRfb2ZfaW5wdXQgaWIgPVxuICAgIGlnbm9yZSAocGVla19jaGFyIGliKTtcbiAgICBpYi5pY19lb2ZcblxuXG4gIGxldCBlb2YgaWIgPSBpYi5pY19lb2ZcblxuICBsZXQgYmVnaW5uaW5nX29mX2lucHV0IGliID0gaWIuaWNfY2hhcl9jb3VudCA9IDBcblxuICBsZXQgbmFtZV9vZl9pbnB1dCBpYiA9XG4gICAgbWF0Y2ggaWIuaWNfaW5wdXRfbmFtZSB3aXRoXG4gICAgfCBGcm9tX2NoYW5uZWwgX2ljIC0+IFwidW5uYW1lZCBTdGRsaWIgaW5wdXQgY2hhbm5lbFwiXG4gICAgfCBGcm9tX2ZpbGUgKGZuYW1lLCBfaWMpIC0+IGZuYW1lXG4gICAgfCBGcm9tX2Z1bmN0aW9uIC0+IFwidW5uYW1lZCBmdW5jdGlvblwiXG4gICAgfCBGcm9tX3N0cmluZyAtPiBcInVubmFtZWQgY2hhcmFjdGVyIHN0cmluZ1wiXG5cblxuICBsZXQgY2hhcl9jb3VudCBpYiA9XG4gICAgaWYgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkXG4gICAgdGhlbiBpYi5pY19jaGFyX2NvdW50IC0gMVxuICAgIGVsc2UgaWIuaWNfY2hhcl9jb3VudFxuXG5cbiAgbGV0IGxpbmVfY291bnQgaWIgPSBpYi5pY19saW5lX2NvdW50XG5cbiAgbGV0IHJlc2V0X3Rva2VuIGliID0gQnVmZmVyLnJlc2V0IGliLmljX3Rva2VuX2J1ZmZlclxuXG4gIGxldCBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYiA9IGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSBmYWxzZVxuXG4gIGxldCB0b2tlbiBpYiA9XG4gICAgbGV0IHRva2VuX2J1ZmZlciA9IGliLmljX3Rva2VuX2J1ZmZlciBpblxuICAgIGxldCB0b2sgPSBCdWZmZXIuY29udGVudHMgdG9rZW5fYnVmZmVyIGluXG4gICAgQnVmZmVyLmNsZWFyIHRva2VuX2J1ZmZlcjtcbiAgICBpYi5pY190b2tlbl9jb3VudCA8LSBzdWNjIGliLmljX3Rva2VuX2NvdW50O1xuICAgIHRva1xuXG5cbiAgbGV0IHRva2VuX2NvdW50IGliID0gaWIuaWNfdG9rZW5fY291bnRcblxuICBsZXQgc2tpcF9jaGFyIHdpZHRoIGliID1cbiAgICBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjtcbiAgICB3aWR0aFxuXG5cbiAgbGV0IGlnbm9yZV9jaGFyIHdpZHRoIGliID0gc2tpcF9jaGFyICh3aWR0aCAtIDEpIGliXG5cbiAgbGV0IHN0b3JlX2NoYXIgd2lkdGggaWIgYyA9XG4gICAgQnVmZmVyLmFkZF9jaGFyIGliLmljX3Rva2VuX2J1ZmZlciBjO1xuICAgIGlnbm9yZV9jaGFyIHdpZHRoIGliXG5cblxuICBsZXQgZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSA9IDEwMjRcblxuICBsZXQgY3JlYXRlIGluYW1lIG5leHQgPSB7XG4gICAgaWNfZW9mID0gZmFsc2U7XG4gICAgaWNfY3VycmVudF9jaGFyID0gbnVsbF9jaGFyO1xuICAgIGljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA9IGZhbHNlO1xuICAgIGljX2NoYXJfY291bnQgPSAwO1xuICAgIGljX2xpbmVfY291bnQgPSAwO1xuICAgIGljX3Rva2VuX2NvdW50ID0gMDtcbiAgICBpY19nZXRfbmV4dF9jaGFyID0gbmV4dDtcbiAgICBpY190b2tlbl9idWZmZXIgPSBCdWZmZXIuY3JlYXRlIGRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemU7XG4gICAgaWNfaW5wdXRfbmFtZSA9IGluYW1lO1xuICB9XG5cblxuICBsZXQgZnJvbV9zdHJpbmcgcyA9XG4gICAgbGV0IGkgPSByZWYgMCBpblxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgICBsZXQgbmV4dCAoKSA9XG4gICAgICBpZiAhaSA+PSBsZW4gdGhlbiByYWlzZSBFbmRfb2ZfZmlsZSBlbHNlXG4gICAgICBsZXQgYyA9IHMuWyFpXSBpblxuICAgICAgaW5jciBpO1xuICAgICAgYyBpblxuICAgIGNyZWF0ZSBGcm9tX3N0cmluZyBuZXh0XG5cblxuICBsZXQgZnJvbV9mdW5jdGlvbiA9IGNyZWF0ZSBGcm9tX2Z1bmN0aW9uXG5cbiAgKCogU2Nhbm5pbmcgZnJvbSBhbiBpbnB1dCBjaGFubmVsLiAqKVxuXG4gICgqIFBvc2l0aW9uIG9mIHRoZSBwcm9ibGVtOlxuXG4gICAgIFdlIGNhbm5vdCBwcmV2ZW50IHRoZSBzY2FubmluZyBtZWNoYW5pc20gdG8gdXNlIG9uZSBsb29rYWhlYWQgY2hhcmFjdGVyLFxuICAgICBpZiBuZWVkZWQgYnkgdGhlIHNlbWFudGljcyBvZiB0aGUgZm9ybWF0IHN0cmluZyBzcGVjaWZpY2F0aW9ucyAoZS5nLiBhXG4gICAgIHRyYWlsaW5nICdza2lwIHNwYWNlJyBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtYXQgc3RyaW5nKTsgaW4gdGhpcyBjYXNlLFxuICAgICB0aGUgbWFuZGF0b3J5IGxvb2thaGVhZCBjaGFyYWN0ZXIgaXMgaW5kZWVkIHJlYWQgZnJvbSB0aGUgaW5wdXQgYW5kIG5vdFxuICAgICB1c2VkIHRvIHJldHVybiB0aGUgdG9rZW4gcmVhZC4gSXQgaXMgdGh1cyBtYW5kYXRvcnkgdG8gYmUgYWJsZSB0byBzdG9yZVxuICAgICBhbiB1bnVzZWQgbG9va2FoZWFkIGNoYXJhY3RlciBzb21ld2hlcmUgdG8gZ2V0IGl0IGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAgICAgb2YgdGhlIG5leHQgc2Nhbi5cblxuICAgICBUbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSwgYWxsIHRoZSBzY2FubmluZyBmdW5jdGlvbnMgZ2V0IGEgbG93IGxldmVsXG4gICAgIGlucHV0IGJ1ZmZlciBhcmd1bWVudCB3aGVyZSB0aGV5IHN0b3JlIHRoZSBsb29rYWhlYWQgY2hhcmFjdGVyIHdoZW5cbiAgICAgbmVlZGVkOyBhZGRpdGlvbmFsbHksIHRoZSBpbnB1dCBidWZmZXIgaXMgdGhlIG9ubHkgc291cmNlIG9mIGNoYXJhY3RlciBvZlxuICAgICBhIHNjYW5uZXIuIFRoZSBbc2NhbmJ1Zl0gaW5wdXQgYnVmZmVycyBhcmUgZGVmaW5lZCBpbiBtb2R1bGUgeyFTY2FubmluZ30uXG5cbiAgICAgTm93IHdlIHVuZGVyc3RhbmQgdGhhdCBpdCBpcyBleHRyZW1lbHkgaW1wb3J0YW50IHRoYXQgcmVsYXRlZCBhbmRcbiAgICAgc3VjY2Vzc2l2ZSBjYWxscyB0byBzY2FubmVycyBpbmRlZWQgcmVhZCBmcm9tIHRoZSBzYW1lIGlucHV0IGJ1ZmZlci5cbiAgICAgSW4gZWZmZWN0LCBpZiBhIHNjYW5uZXIgW3NjYW4xXSBpcyByZWFkaW5nIGZyb20gW2liMV0gYW5kIHN0b3JlcyBhblxuICAgICB1bnVzZWQgbG9va2FoZWFkIGNoYXJhY3RlciBbYzFdIGludG8gaXRzIGlucHV0IGJ1ZmZlciBbaWIxXSwgdGhlblxuICAgICBhbm90aGVyIHNjYW5uZXIgW3NjYW4yXSBub3QgcmVhZGluZyBmcm9tIHRoZSBzYW1lIGJ1ZmZlciBbaWIxXSB3aWxsIG1pc3NcbiAgICAgdGhlIGNoYXJhY3RlciBbYzFdLCBzZWVtaW5nbHkgdmFuaXNoZWQgaW4gdGhlIGFpciBmcm9tIHRoZSBwb2ludCBvZiB2aWV3XG4gICAgIG9mIFtzY2FuMl0uXG5cbiAgICAgVGhpcyBtZWNoYW5pc20gd29ya3MgcGVyZmVjdGx5IHRvIHJlYWQgZnJvbSBzdHJpbmdzLCBmcm9tIGZpbGVzLCBhbmQgZnJvbVxuICAgICBmdW5jdGlvbnMsIHNpbmNlIGluIHRob3NlIGNhc2VzLCBhbGxvY2F0aW5nIHR3byBidWZmZXJzIHJlYWRpbmcgZnJvbSB0aGVcbiAgICAgc2FtZSBzb3VyY2UgaXMgdW5uYXR1cmFsLlxuXG4gICAgIFN0aWxsLCB0aGVyZSBpcyBhIGRpZmZpY3VsdHkgaW4gdGhlIGNhc2Ugb2Ygc2Nhbm5pbmcgZnJvbSBhbiBpbnB1dFxuICAgICBjaGFubmVsLiBJbiBlZmZlY3QsIHdoZW4gc2Nhbm5pbmcgZnJvbSBhbiBpbnB1dCBjaGFubmVsIFtpY10sIHRoaXMgY2hhbm5lbFxuICAgICBtYXkgbm90IGhhdmUgYmVlbiBhbGxvY2F0ZWQgZnJvbSB3aXRoaW4gdGhpcyBsaWJyYXJ5LiBIZW5jZSwgaXQgbWF5IGJlXG4gICAgIHNoYXJlZCAodHdvIGZ1bmN0aW9ucyBvZiB0aGUgdXNlcidzIHByb2dyYW0gbWF5IHN1Y2Nlc3NpdmVseSByZWFkIGZyb21cbiAgICAgW2ljXSkuIFRoaXMgaXMgaGlnaGx5IGVycm9yIHByb25lIHNpbmNlLCBvbmUgb2YgdGhlIGZ1bmN0aW9uIG1heSBzZWVrIHRoZVxuICAgICBpbnB1dCBjaGFubmVsLCB3aGlsZSB0aGUgb3RoZXIgZnVuY3Rpb24gaGFzIHN0aWxsIGFuIHVudXNlZCBsb29rYWhlYWRcbiAgICAgY2hhcmFjdGVyIGluIGl0cyBpbnB1dCBidWZmZXIuIEluIGNvbmNsdXNpb24sIHlvdSBzaG91bGQgbmV2ZXIgbWl4IGRpcmVjdFxuICAgICBsb3cgbGV2ZWwgcmVhZGluZyBhbmQgaGlnaCBsZXZlbCBzY2FubmluZyBmcm9tIHRoZSBzYW1lIGlucHV0IGNoYW5uZWwuXG5cbiAgKilcblxuICAoKiBQZXJmb3JtIGJ1ZmZlcml6ZWQgaW5wdXQgdG8gaW1wcm92ZSBlZmZpY2llbmN5LiAqKVxuICBsZXQgZmlsZV9idWZmZXJfc2l6ZSA9IHJlZiAxMDI0XG5cbiAgKCogVGhlIHNjYW5uZXIgY2xvc2VzIHRoZSBpbnB1dCBjaGFubmVsIGF0IGVuZCBvZiBpbnB1dC4gKilcbiAgbGV0IHNjYW5fY2xvc2VfYXRfZW5kIGljID0gU3RkbGliLmNsb3NlX2luIGljOyByYWlzZSBFbmRfb2ZfZmlsZVxuXG4gICgqIFRoZSBzY2FubmVyIGRvZXMgbm90IGNsb3NlIHRoZSBpbnB1dCBjaGFubmVsIGF0IGVuZCBvZiBpbnB1dDpcbiAgICAgaXQganVzdCByYWlzZXMgW0VuZF9vZl9maWxlXS4gKilcbiAgbGV0IHNjYW5fcmFpc2VfYXRfZW5kIF9pYyA9IHJhaXNlIEVuZF9vZl9maWxlXG5cbiAgbGV0IGZyb21faWMgc2Nhbl9jbG9zZV9pYyBpbmFtZSBpYyA9XG4gICAgbGV0IGxlbiA9ICFmaWxlX2J1ZmZlcl9zaXplIGluXG4gICAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgaSA9IHJlZiAwIGluXG4gICAgbGV0IGxpbSA9IHJlZiAwIGluXG4gICAgbGV0IGVvZiA9IHJlZiBmYWxzZSBpblxuICAgIGxldCBuZXh0ICgpID1cbiAgICAgIGlmICFpIDwgIWxpbSB0aGVuIGJlZ2luIGxldCBjID0gQnl0ZXMuZ2V0IGJ1ZiAhaSBpbiBpbmNyIGk7IGMgZW5kIGVsc2VcbiAgICAgIGlmICFlb2YgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZSBlbHNlIGJlZ2luXG4gICAgICAgIGxpbSA6PSBpbnB1dCBpYyBidWYgMCBsZW47XG4gICAgICAgIGlmICFsaW0gPSAwIHRoZW4gYmVnaW4gZW9mIDo9IHRydWU7IHNjYW5fY2xvc2VfaWMgaWMgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICBpIDo9IDE7XG4gICAgICAgICAgQnl0ZXMuZ2V0IGJ1ZiAwXG4gICAgICAgIGVuZFxuICAgICAgZW5kIGluXG4gICAgY3JlYXRlIGluYW1lIG5leHRcblxuXG4gIGxldCBmcm9tX2ljX2Nsb3NlX2F0X2VuZCA9IGZyb21faWMgc2Nhbl9jbG9zZV9hdF9lbmRcbiAgbGV0IGZyb21faWNfcmFpc2VfYXRfZW5kID0gZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuXG4gICgqIFRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLlxuICAgICBPbmUgY291bGQgdHJ5IHRvIGRlZmluZSBbc3RkaWJdIGFzIGEgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgYSBjaGFyYWN0ZXJcbiAgICAgYXQgYSB0aW1lIChubyBidWZmZXJpemF0aW9uIGF0IGFsbCksIGJ1dCB1bmZvcnR1bmF0ZWx5IHRoZSB0b3AtbGV2ZWxcbiAgICAgaW50ZXJhY3Rpb24gd291bGQgYmUgd3JvbmcuIFRoaXMgaXMgZHVlIHRvIHNvbWUga2luZCBvZlxuICAgICAncmFjZSBjb25kaXRpb24nIHdoZW4gcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLFxuICAgICBzaW5jZSB0aGUgaW50ZXJhY3RpdmUgY29tcGlsZXIgYW5kIFtTY2FuZi5zY2FuZl0gd2lsbCBzaW11bHRhbmVvdXNseVxuICAgICByZWFkIHRoZSBtYXRlcmlhbCB0aGV5IG5lZWQgZnJvbSBbU3RkbGliLnN0ZGluXTsgdGhlbiwgY29uZnVzaW9uXG4gICAgIHdpbGwgcmVzdWx0IGZyb20gd2hhdCBzaG91bGQgYmUgcmVhZCBieSB0aGUgdG9wLWxldmVsIGFuZCB3aGF0IHNob3VsZCBiZVxuICAgICByZWFkIGJ5IFtTY2FuZi5zY2FuZl0uXG4gICAgIFRoaXMgaXMgZXZlbiBtb3JlIGNvbXBsaWNhdGVkIGJ5IHRoZSBvbmUgY2hhcmFjdGVyIGxvb2thaGVhZCB0aGF0XG4gICAgIFtTY2FuZi5zY2FuZl0gaXMgc29tZXRpbWVzIG9ibGlnZWQgdG8gbWFpbnRhaW46IHRoZSBsb29rYWhlYWQgY2hhcmFjdGVyXG4gICAgIHdpbGwgYmUgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBbU2NhbmYuc2NhbmZdIGVudHJ5LCBzZWVtaW5nbHkgY29taW5nIGZyb21cbiAgICAgbm93aGVyZS5cbiAgICAgQWxzbyBubyBbRW5kX29mX2ZpbGVdIGlzIHJhaXNlZCB3aGVuIHJlYWRpbmcgZnJvbSBzdGRpbjogaWYgbm90IGVub3VnaFxuICAgICBjaGFyYWN0ZXJzIGhhdmUgYmVlbiByZWFkLCB3ZSBzaW1wbHkgYXNrIHRvIHJlYWQgbW9yZS4gKilcbiAgbGV0IHN0ZGluID1cbiAgICBmcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG4gICAgICAoRnJvbV9maWxlIChcIi1cIiwgU3RkbGliLnN0ZGluKSkgU3RkbGliLnN0ZGluXG5cblxuICBsZXQgc3RkaWIgPSBzdGRpblxuXG4gIGxldCBvcGVuX2luX2ZpbGUgb3Blbl9pbiBmbmFtZSA9XG4gICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgIHwgXCItXCIgLT4gc3RkaW5cbiAgICB8IGZuYW1lIC0+XG4gICAgICBsZXQgaWMgPSBvcGVuX2luIGZuYW1lIGluXG4gICAgICBmcm9tX2ljX2Nsb3NlX2F0X2VuZCAoRnJvbV9maWxlIChmbmFtZSwgaWMpKSBpY1xuXG5cbiAgbGV0IG9wZW5faW4gPSBvcGVuX2luX2ZpbGUgU3RkbGliLm9wZW5faW5cbiAgbGV0IG9wZW5faW5fYmluID0gb3Blbl9pbl9maWxlIFN0ZGxpYi5vcGVuX2luX2JpblxuXG4gIGxldCBmcm9tX2ZpbGUgPSBvcGVuX2luXG4gIGxldCBmcm9tX2ZpbGVfYmluID0gb3Blbl9pbl9iaW5cblxuICBsZXQgZnJvbV9jaGFubmVsIGljID1cbiAgICBmcm9tX2ljX3JhaXNlX2F0X2VuZCAoRnJvbV9jaGFubmVsIGljKSBpY1xuXG5cbiAgbGV0IGNsb3NlX2luIGliID1cbiAgICBtYXRjaCBpYi5pY19pbnB1dF9uYW1lIHdpdGhcbiAgICB8IEZyb21fY2hhbm5lbCBpYyAtPlxuICAgICAgU3RkbGliLmNsb3NlX2luIGljXG4gICAgfCBGcm9tX2ZpbGUgKF9mbmFtZSwgaWMpIC0+IFN0ZGxpYi5jbG9zZV9pbiBpY1xuICAgIHwgRnJvbV9mdW5jdGlvbiB8IEZyb21fc3RyaW5nIC0+ICgpXG5cblxuICAoKlxuICAgICBPYnNvbGV0ZTogYSBtZW1vIFtmcm9tX2NoYW5uZWxdIHZlcnNpb24gdG8gYnVpbGQgYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF1cbiAgICAgc2Nhbm5pbmcgYnVmZmVyIG91dCBvZiBhIFtTdGRsaWIuaW5fY2hhbm5lbF0uXG4gICAgIFRoaXMgZnVuY3Rpb24gd2FzIHVzZWQgdG8gdHJ5IHRvIHByZXNlcnZlIHRoZSBzY2FubmluZ1xuICAgICBzZW1hbnRpY3MgZm9yIHRoZSAobm93IG9ic29sZXRlKSBmdW5jdGlvbiBbZnNjYW5mXS5cbiAgICAgR2l2ZW4gdGhhdCBhbGwgc2Nhbm5lciBtdXN0IHJlYWQgZnJvbSBhIFtTY2FubmluZy5pbl9jaGFubmVsXSBzY2FubmluZ1xuICAgICBidWZmZXIsIFtmc2NhbmZdIG11c3QgcmVhZCBmcm9tIG9uZSFcbiAgICAgTW9yZSBwcmVjaXNlbHksIGdpdmVuIFtpY10sIGFsbCBzdWNjZXNzaXZlIGNhbGxzIFtmc2NhbmYgaWNdIG11c3QgcmVhZFxuICAgICBmcm9tIHRoZSBzYW1lIHNjYW5uaW5nIGJ1ZmZlci5cbiAgICAgVGhpcyBvYmxpZ2VkIHRoaXMgbGlicmFyeSB0byBhbGxvY2F0ZWQgc2Nhbm5pbmcgYnVmZmVycyB0aGF0IHdlcmVcbiAgICAgbm90IHByb3Blcmx5IGdhcmJhZ2UgY29sbGVjdGFibGUsIGhlbmNlIGxlYWRpbmcgdG8gbWVtb3J5IGxlYWtzLlxuICAgICBJZiB5b3UgbmVlZCB0byByZWFkIGZyb20gYSBbU3RkbGliLmluX2NoYW5uZWxdIGlucHV0IGNoYW5uZWxcbiAgICAgW2ljXSwgc2ltcGx5IGRlZmluZSBhIFtTY2FubmluZy5pbl9jaGFubmVsXSBmb3JtYXR0ZWQgaW5wdXQgY2hhbm5lbCBhcyBpblxuICAgICBbbGV0IGliID0gU2Nhbm5pbmcuZnJvbV9jaGFubmVsIGljXSwgdGhlbiB1c2UgW1NjYW5mLmJzY2FuZiBpYl0gYXMgdXN1YWwuXG4gICopXG4gIGxldCBtZW1vX2Zyb21faWMgPVxuICAgIGxldCBtZW1vID0gcmVmIFtdIGluXG4gICAgKGZ1biBzY2FuX2Nsb3NlX2ljIGljIC0+XG4gICAgIHRyeSBMaXN0LmFzc3EgaWMgIW1lbW8gd2l0aFxuICAgICB8IE5vdF9mb3VuZCAtPlxuICAgICAgIGxldCBpYiA9XG4gICAgICAgICBmcm9tX2ljIHNjYW5fY2xvc2VfaWMgKEZyb21fY2hhbm5lbCBpYykgaWMgaW5cbiAgICAgICBtZW1vIDo9IChpYywgaWIpIDo6ICFtZW1vO1xuICAgICAgIGliKVxuXG5cbiAgKCogT2Jzb2xldGU6IHNlZSB7IW1lbW9fZnJvbV9pY30gYWJvdmUuICopXG4gIGxldCBtZW1vX2Zyb21fY2hhbm5lbCA9IG1lbW9fZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuXG5lbmRcblxuXG4oKiBGb3JtYXR0ZWQgaW5wdXQgZnVuY3Rpb25zLiAqKVxuXG50eXBlICgnYSwgJ2IsICdjLCAnZCkgc2Nhbm5lciA9XG4gICAgICgnYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgJ2IsICdjLCAnYSAtPiAnZCwgJ2QpIGZvcm1hdDYgLT4gJ2NcblxuXG4oKiBSZXBvcnRpbmcgZXJyb3JzLiAqKVxuZXhjZXB0aW9uIFNjYW5fZmFpbHVyZSBvZiBzdHJpbmdcblxubGV0IGJhZF9pbnB1dCBzID0gcmFpc2UgKFNjYW5fZmFpbHVyZSBzKVxuXG5sZXQgYmFkX2lucHV0X2VzY2FwZSBjID1cbiAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImlsbGVnYWwgZXNjYXBlIGNoYXJhY3RlciAlQ1wiIGMpXG5cblxubGV0IGJhZF90b2tlbl9sZW5ndGggbWVzc2FnZSA9XG4gIGJhZF9pbnB1dFxuICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgIFwic2Nhbm5pbmcgb2YgJXMgZmFpbGVkOiBcXFxuICAgICAgICB0aGUgc3BlY2lmaWVkIGxlbmd0aCB3YXMgdG9vIHNob3J0IGZvciB0b2tlblwiXG4gICAgICAgbWVzc2FnZSlcblxuXG5sZXQgYmFkX2VuZF9vZl9pbnB1dCBtZXNzYWdlID1cbiAgYmFkX2lucHV0XG4gICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgXCJzY2FubmluZyBvZiAlcyBmYWlsZWQ6IFxcXG4gICAgICAgIHByZW1hdHVyZSBlbmQgb2YgZmlsZSBvY2N1cnJlZCBiZWZvcmUgZW5kIG9mIHRva2VuXCJcbiAgICAgICBtZXNzYWdlKVxuXG5cbmxldCBiYWRfZmxvYXQgKCkgPVxuICBiYWRfaW5wdXQgXCJubyBkb3Qgb3IgZXhwb25lbnQgcGFydCBmb3VuZCBpbiBmbG9hdCB0b2tlblwiXG5cblxubGV0IGJhZF9oZXhfZmxvYXQgKCkgPVxuICBiYWRfaW5wdXQgXCJub3QgYSB2YWxpZCBmbG9hdCBpbiBoZXhhZGVjaW1hbCBub3RhdGlvblwiXG5cblxubGV0IGNoYXJhY3Rlcl9taXNtYXRjaF9lcnIgYyBjaSA9XG4gIFByaW50Zi5zcHJpbnRmIFwibG9va2luZyBmb3IgJUMsIGZvdW5kICVDXCIgYyBjaVxuXG5cbmxldCBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaSA9XG4gIGJhZF9pbnB1dCAoY2hhcmFjdGVyX21pc21hdGNoX2VyciBjIGNpKVxuXG5cbmxldCByZWMgc2tpcF93aGl0ZXMgaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBub3QgKFNjYW5uaW5nLmVvZiBpYikgdGhlbiBiZWdpblxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJyAnIHwgJ1xcdCcgfCAnXFxuJyB8ICdcXHInIC0+XG4gICAgICBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjsgc2tpcF93aGl0ZXMgaWJcbiAgICB8IF8gLT4gKClcbiAgZW5kXG5cblxuKCogQ2hlY2tpbmcgdGhhdCBbY10gaXMgaW5kZWVkIGluIHRoZSBpbnB1dCwgdGhlbiBza2lwcyBpdC5cbiAgIEluIHRoaXMgY2FzZSwgdGhlIGNoYXJhY3RlciBbY10gaGFzIGJlZW4gZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gdGhlXG4gICBmb3JtYXQgYXMgYmVpbmcgbWFuZGF0b3J5IGluIHRoZSBpbnB1dDsgaGVuY2Ugd2Ugc2hvdWxkIGZhaWwgd2l0aFxuICAgW0VuZF9vZl9maWxlXSBpbiBjYXNlIG9mIGVuZF9vZl9pbnB1dC5cbiAgIChSZW1lbWJlciB0aGF0IFtTY2FuX2ZhaWx1cmVdIGlzIHJhaXNlZCBvbmx5IHdoZW4gKHdlIGNhbiBwcm92ZSBieVxuICAgZXZpZGVuY2UpIHRoYXQgdGhlIGlucHV0IGRvZXMgbm90IG1hdGNoIHRoZSBmb3JtYXQgc3RyaW5nIGdpdmVuLiBXZSBtdXN0XG4gICB0aHVzIGRpZmZlcmVudGlhdGUgW0VuZF9vZl9maWxlXSBhcyBhbiBlcnJvciBkdWUgdG8gbGFjayBvZiBpbnB1dCwgYW5kXG4gICBbU2Nhbl9mYWlsdXJlXSB3aGljaCBpcyBkdWUgdG8gcHJvdmFibHkgd3JvbmcgaW5wdXQuIEkgYW0gbm90IHN1cmUgdGhpcyBpc1xuICAgd29ydGggdGhlIGJ1cmRlbjogaXQgaXMgY29tcGxleCBhbmQgc29tZWhvdyBzdWJsaW1pbmFsOyBzaG91bGQgYmUgY2xlYXJlclxuICAgdG8gZmFpbCB3aXRoIFNjYW5fZmFpbHVyZSBcIk5vdCBlbm91Z2ggaW5wdXQgdG8gY29tcGxldGUgc2Nhbm5pbmdcIiEpXG5cbiAgIFRoYXQncyB3aHksIHdhaXRpbmcgZm9yIGEgYmV0dGVyIHNvbHV0aW9uLCB3ZSB1c2UgY2hlY2tlZF9wZWVrX2NoYXIgaGVyZS5cbiAgIFdlIGFyZSBhbHNvIGNhcmVmdWwgdG8gdHJlYXQgXCJcXHJcXG5cIiBpbiB0aGUgaW5wdXQgYXMgYW4gZW5kIG9mIGxpbmUgbWFya2VyOlxuICAgaXQgYWx3YXlzIG1hdGNoZXMgYSAnXFxuJyBzcGVjaWZpY2F0aW9uIGluIHRoZSBpbnB1dCBmb3JtYXQgc3RyaW5nLiAqKVxubGV0IHJlYyBjaGVja19jaGFyIGliIGMgPVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnICcgLT4gc2tpcF93aGl0ZXMgaWJcbiAgfCAnXFxuJyAtPiBjaGVja19uZXdsaW5lIGliXG4gIHwgYyAtPiBjaGVja190aGlzX2NoYXIgaWIgY1xuXG5hbmQgY2hlY2tfdGhpc19jaGFyIGliIGMgPVxuICBsZXQgY2kgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBpZiBjaSA9IGMgdGhlbiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYiBlbHNlXG4gIGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpXG5cbmFuZCBjaGVja19uZXdsaW5lIGliID1cbiAgbGV0IGNpID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggY2kgd2l0aFxuICB8ICdcXG4nIC0+IFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXG4gIHwgJ1xccicgLT4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7IGNoZWNrX3RoaXNfY2hhciBpYiAnXFxuJ1xuICB8IF8gLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXG4nIGNpXG5cblxuKCogRXh0cmFjdGluZyB0b2tlbnMgZnJvbSB0aGUgb3V0cHV0IHRva2VuIGJ1ZmZlci4gKilcblxubGV0IHRva2VuX2NoYXIgaWIgPSAoU2Nhbm5pbmcudG9rZW4gaWIpLlswXVxuXG5sZXQgdG9rZW5fc3RyaW5nID0gU2Nhbm5pbmcudG9rZW5cblxubGV0IHRva2VuX2Jvb2wgaWIgPVxuICBtYXRjaCBTY2FubmluZy50b2tlbiBpYiB3aXRoXG4gIHwgXCJ0cnVlXCIgLT4gdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBmYWxzZVxuICB8IHMgLT4gYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImludmFsaWQgYm9vbGVhbiAnJXMnXCIgcylcblxuXG4oKiBUaGUgdHlwZSBvZiBpbnRlZ2VyIGNvbnZlcnNpb25zLiAqKVxudHlwZSBpbnRlZ2VyX2NvbnZlcnNpb24gPVxuICB8IEJfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBiaW5hcnkgY29udmVyc2lvbiAqKVxuICB8IERfY29udmVyc2lvbiAoKiBTaWduZWQgZGVjaW1hbCBjb252ZXJzaW9uICopXG4gIHwgSV9jb252ZXJzaW9uICgqIFNpZ25lZCBpbnRlZ2VyIGNvbnZlcnNpb24gKilcbiAgfCBPX2NvbnZlcnNpb24gKCogVW5zaWduZWQgb2N0YWwgY29udmVyc2lvbiAqKVxuICB8IFVfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBkZWNpbWFsIGNvbnZlcnNpb24gKilcbiAgfCBYX2NvbnZlcnNpb24gKCogVW5zaWduZWQgaGV4YWRlY2ltYWwgY29udmVyc2lvbiAqKVxuXG5cbmxldCBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciA9IGZ1bmN0aW9uXG4gIHwgJ2InIC0+IEJfY29udmVyc2lvblxuICB8ICdkJyAtPiBEX2NvbnZlcnNpb25cbiAgfCAnaScgLT4gSV9jb252ZXJzaW9uXG4gIHwgJ28nIC0+IE9fY29udmVyc2lvblxuICB8ICd1JyAtPiBVX2NvbnZlcnNpb25cbiAgfCAneCcgfCAnWCcgLT4gWF9jb252ZXJzaW9uXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuXG4oKiBFeHRyYWN0IGFuIGludGVnZXIgbGl0ZXJhbCB0b2tlbi5cbiAgIFNpbmNlIHRoZSBmdW5jdGlvbnMgU3RkbGliLippbnQqX29mX3N0cmluZyBkbyBub3QgYWNjZXB0IGEgbGVhZGluZyArLFxuICAgd2Ugc2tpcCBpdCBpZiBuZWNlc3NhcnkuICopXG5sZXQgdG9rZW5faW50X2xpdGVyYWwgY29udiBpYiA9XG4gIGxldCB0b2sgPVxuICAgIG1hdGNoIGNvbnYgd2l0aFxuICAgIHwgRF9jb252ZXJzaW9uIHwgSV9jb252ZXJzaW9uIC0+IFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBVX2NvbnZlcnNpb24gLT4gXCIwdVwiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IE9fY29udmVyc2lvbiAtPiBcIjBvXCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgWF9jb252ZXJzaW9uIC0+IFwiMHhcIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBCX2NvbnZlcnNpb24gLT4gXCIwYlwiIF4gU2Nhbm5pbmcudG9rZW4gaWIgaW5cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHRvayBpblxuICBpZiBsID0gMCB8fCB0b2suWzBdIDw+ICcrJyB0aGVuIHRvayBlbHNlIFN0cmluZy5zdWIgdG9rIDEgKGwgLSAxKVxuXG5cbigqIEFsbCB0aGUgZnVuY3Rpb25zIHRoYXQgY29udmVydCBhIHN0cmluZyB0byBhIG51bWJlciByYWlzZSB0aGUgZXhjZXB0aW9uXG4gICBGYWlsdXJlIHdoZW4gdGhlIGNvbnZlcnNpb24gaXMgbm90IHBvc3NpYmxlLlxuICAgVGhpcyBleGNlcHRpb24gaXMgdGhlbiB0cmFwcGVkIGluIFtrc2NhbmZdLiAqKVxubGV0IHRva2VuX2ludCBjb252IGliID0gaW50X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcblxubGV0IHRva2VuX2Zsb2F0IGliID0gZmxvYXRfb2Zfc3RyaW5nIChTY2FubmluZy50b2tlbiBpYilcblxuKCogVG8gc2NhbiBuYXRpdmUgaW50cywgaW50MzIgYW5kIGludDY0IGludGVnZXJzLlxuICAgV2UgY2Fubm90IGFjY2VzcyB0byBjb252ZXJzaW9ucyB0by9mcm9tIHN0cmluZ3MgZm9yIHRob3NlIHR5cGVzLFxuICAgTmF0aXZlaW50Lm9mX3N0cmluZywgSW50MzIub2Zfc3RyaW5nLCBhbmQgSW50NjQub2Zfc3RyaW5nLFxuICAgc2luY2UgdGhvc2UgbW9kdWxlcyBhcmUgbm90IGF2YWlsYWJsZSB0byBbU2NhbmZdLlxuICAgSG93ZXZlciwgd2UgY2FuIGJpbmQgYW5kIHVzZSB0aGUgY29ycmVzcG9uZGluZyBwcmltaXRpdmVzIHRoYXQgYXJlXG4gICBhdmFpbGFibGUgaW4gdGhlIHJ1bnRpbWUuICopXG5leHRlcm5hbCBuYXRpdmVpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IG5hdGl2ZWludFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgaW50MzJfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIGludDY0X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9vZl9zdHJpbmdcIlxuXG5cbmxldCB0b2tlbl9uYXRpdmVpbnQgY29udiBpYiA9IG5hdGl2ZWludF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5sZXQgdG9rZW5faW50MzIgY29udiBpYiA9IGludDMyX29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcbmxldCB0b2tlbl9pbnQ2NCBjb252IGliID0gaW50NjRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxuXG4oKiBTY2FubmluZyBudW1iZXJzLiAqKVxuXG4oKiBEaWdpdHMgc2Nhbm5pbmcgZnVuY3Rpb25zIHN1cHBvc2UgdGhhdCBvbmUgY2hhcmFjdGVyIGhhcyBiZWVuIGNoZWNrZWQgYW5kXG4gICBpcyBhdmFpbGFibGUsIHNpbmNlIHRoZXkgcmV0dXJuIGF0IGVuZCBvZiBmaWxlIHdpdGggdGhlIGN1cnJlbnRseSBmb3VuZFxuICAgdG9rZW4gc2VsZWN0ZWQuXG5cbiAgIFB1dCBpdCBpbiBhbm90aGVyIHdheSwgdGhlIGRpZ2l0cyBzY2FubmluZyBmdW5jdGlvbnMgc2NhbiBmb3IgYSBwb3NzaWJseVxuICAgZW1wdHkgc2VxdWVuY2Ugb2YgZGlnaXRzLCAoaGVuY2UsIGEgc3VjY2Vzc2Z1bCBzY2FubmluZyBmcm9tIG9uZSBvZiB0aG9zZVxuICAgZnVuY3Rpb25zIGRvZXMgbm90IGltcGx5IHRoYXQgdGhlIHRva2VuIGlzIGEgd2VsbC1mb3JtZWQgbnVtYmVyOiB0byBnZXQgYVxuICAgdHJ1ZSBudW1iZXIsIGl0IGlzIG1hbmRhdG9yeSB0byBjaGVjayB0aGF0IGF0IGxlYXN0IG9uZSB2YWxpZCBkaWdpdCBpc1xuICAgYXZhaWxhYmxlIGJlZm9yZSBjYWxsaW5nIG9uZSBvZiB0aGUgZGlnaXQgc2Nhbm5pbmcgZnVuY3Rpb25zKS4gKilcblxuKCogVGhlIGRlY2ltYWwgY2FzZSBpcyB0cmVhdGVkIGVzcGVjaWFsbHkgZm9yIG9wdGltaXphdGlvbiBwdXJwb3Nlcy4gKilcbmxldCByZWMgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCAnXycgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYiBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbmxldCBzY2FuX2RlY2ltYWxfZGlnaXRfcGx1cyB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJkZWNpbWFsIGRpZ2l0c1wiIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCBjIC0+XG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImNoYXJhY3RlciAlQyBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0XCIgYylcblxuXG4oKiBUbyBzY2FuIG51bWJlcnMgZnJvbSBvdGhlciBiYXNlcywgd2UgdXNlIGEgcHJlZGljYXRlIGFyZ3VtZW50IHRvXG4gICBzY2FuIGRpZ2l0cy4gKilcbmxldCBzY2FuX2RpZ2l0X3N0YXIgZGlnaXRwIHdpZHRoIGliID1cbiAgbGV0IHJlYyBzY2FuX2RpZ2l0cyB3aWR0aCBpYiA9XG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgYyB3aGVuIGRpZ2l0cCBjIC0+XG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgIHNjYW5fZGlnaXRzIHdpZHRoIGliXG4gICAgfCAnXycgLT5cbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliIGluXG4gICAgICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuICAgIHwgXyAtPiB3aWR0aCBpblxuICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX2RpZ2l0X3BsdXMgYmFzaXMgZGlnaXRwIHdpZHRoIGliID1cbiAgKCogRW5zdXJlIHdlIGhhdmUgZ290IGVub3VnaCB3aWR0aCBsZWZ0LFxuICAgICBhbmQgcmVhZCBhdCBsZWFzdCBvbmUgZGlnaXQuICopXG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJkaWdpdHNcIiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgaWYgZGlnaXRwIGMgdGhlblxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGlnaXRfc3RhciBkaWdpdHAgd2lkdGggaWJcbiAgZWxzZVxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJjaGFyYWN0ZXIgJUMgaXMgbm90IGEgdmFsaWQgJXMgZGlnaXRcIiBjIGJhc2lzKVxuXG5cbmxldCBpc19iaW5hcnlfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnMScgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9iaW5hcnlfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwiYmluYXJ5XCIgaXNfYmluYXJ5X2RpZ2l0XG5cbmxldCBpc19vY3RhbF9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICc3JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX29jdGFsX2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcIm9jdGFsXCIgaXNfb2N0YWxfZGlnaXRcblxubGV0IGlzX2hleGFfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnOScgfCAnYScgLi4gJ2YnIHwgJ0EnIC4uICdGJyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX2hleGFkZWNpbWFsX2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcImhleGFkZWNpbWFsXCIgaXNfaGV4YV9kaWdpdFxuXG4oKiBTY2FuIGEgZGVjaW1hbCBpbnRlZ2VyLiAqKVxubGV0IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgPSBzY2FuX2RlY2ltYWxfZGlnaXRfcGx1c1xuXG5sZXQgc2Nhbl9zaWduIHdpZHRoIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnKycgLT4gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjXG4gIHwgJy0nIC0+IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgY1xuICB8IF8gLT4gd2lkdGhcblxuXG5sZXQgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG5cblxuKCogU2NhbiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRoYXQgY291bGQgYmUgZ2l2ZW4gaW4gYW55IChjb21tb24pIGJhc2lzLlxuICAgSWYgZGlnaXRzIGFyZSBwcmVmaXhlZCBieSBvbmUgb2YgMHgsIDBYLCAwbywgb3IgMGIsIHRoZSBudW1iZXIgaXNcbiAgIGFzc3VtZWQgdG8gYmUgd3JpdHRlbiByZXNwZWN0aXZlbHkgaW4gaGV4YWRlY2ltYWwsIGhleGFkZWNpbWFsLFxuICAgb2N0YWwsIG9yIGJpbmFyeS4gKilcbmxldCBzY2FuX3Vuc2lnbmVkX2ludCB3aWR0aCBpYiA9XG4gIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICBiZWdpbiBtYXRjaCBjIHdpdGhcbiAgICB8ICd4JyB8ICdYJyAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgJ28nIC0+IHNjYW5fb2N0YWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCAnYicgLT4gc2Nhbl9iaW5hcnlfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCBfIC0+IHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliIGVuZFxuICB8IF8gLT4gc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2ludCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX3Vuc2lnbmVkX2ludCB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX2ludF9jb252ZXJzaW9uIGNvbnYgd2lkdGggaWIgPVxuICBtYXRjaCBjb252IHdpdGhcbiAgfCBCX2NvbnZlcnNpb24gLT4gc2Nhbl9iaW5hcnlfaW50IHdpZHRoIGliXG4gIHwgRF9jb252ZXJzaW9uIC0+IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgfCBJX2NvbnZlcnNpb24gLT4gc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQgd2lkdGggaWJcbiAgfCBPX2NvbnZlcnNpb24gLT4gc2Nhbl9vY3RhbF9pbnQgd2lkdGggaWJcbiAgfCBVX2NvbnZlcnNpb24gLT4gc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICB8IFhfY29udmVyc2lvbiAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbigqIFNjYW5uaW5nIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuICopXG5cbigqIEZyYWN0aW9uYWwgcGFydCBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlZHVjZWQgdG8gMCBkaWdpdHMuICopXG5sZXQgc2Nhbl9mcmFjdGlvbmFsX3BhcnQgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxuKCogRXhwIHBhcnQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZWR1Y2VkIHRvIDAgZGlnaXRzLiAqKVxubGV0IHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnZScgfCAnRScgYXMgYyAtPlxuICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxuKCogU2NhbiB0aGUgaW50ZWdlciBwYXJ0IG9mIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCAobm90IHVzaW5nIHRoZVxuICAgT0NhbWwgbGV4aWNhbCBjb252ZW50aW9uIHNpbmNlIHRoZSBpbnRlZ2VyIHBhcnQgY2FuIGJlIGVtcHR5KTpcbiAgIGFuIG9wdGlvbmFsIHNpZ24sIGZvbGxvd2VkIGJ5IGEgcG9zc2libHkgZW1wdHkgc2VxdWVuY2Ugb2YgZGVjaW1hbFxuICAgZGlnaXRzIChlLmcuIC0uMSkuICopXG5sZXQgc2Nhbl9pbnRlZ2VyX3BhcnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcblxuXG4oKlxuICAgRm9yIHRoZSB0aW1lIGJlaW5nIHdlIGhhdmUgKGFzIGZvdW5kIGluIHNjYW5mLm1saSk6XG4gICB0aGUgZmllbGQgd2lkdGggaXMgY29tcG9zZWQgb2YgYW4gb3B0aW9uYWwgaW50ZWdlciBsaXRlcmFsXG4gICBpbmRpY2F0aW5nIHRoZSBtYXhpbWFsIHdpZHRoIG9mIHRoZSB0b2tlbiB0byByZWFkLlxuICAgVW5mb3J0dW5hdGVseSwgdGhlIHR5cGUtY2hlY2tlciBsZXQgdGhlIHVzZXIgd3JpdGUgYW4gb3B0aW9uYWwgcHJlY2lzaW9uLFxuICAgc2luY2UgdGhpcyBpcyB2YWxpZCBmb3IgcHJpbnRmIGZvcm1hdCBzdHJpbmdzLlxuXG4gICBUaHVzLCB0aGUgbmV4dCBzdGVwIGZvciBTY2FuZiBpcyB0byBzdXBwb3J0IGEgZnVsbCB3aWR0aCBhbmQgcHJlY2lzaW9uXG4gICBpbmRpY2F0aW9uLCBtb3JlIG9yIGxlc3Mgc2ltaWxhciB0byB0aGUgb25lIGZvciBwcmludGYsIHBvc3NpYmx5IGV4dGVuZGVkXG4gICB0byB0aGUgc3BlY2lmaWNhdGlvbiBvZiBhIFttYXgsIG1pbl0gcmFuZ2UgZm9yIHRoZSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZFxuICAgZm9yIHN0cmluZ3MuIFNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcgc3BlYyBmb3Igc2NhbmYubWxpOlxuXG4gICBUaGUgb3B0aW9uYWwgW3dpZHRoXSBpcyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG1heGltYWxcbiAgIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLiBGb3IgaW5zdGFuY2UsIFslNmRdIHJlYWRzIGFuIGludGVnZXIsXG4gICBoYXZpbmcgYXQgbW9zdCA2IGNoYXJhY3RlcnMuXG5cbiAgIFRoZSBvcHRpb25hbCBbcHJlY2lzaW9uXSBpcyBhIGRvdCBbLl0gZm9sbG93ZWQgYnkgYW4gaW50ZWdlcjpcblxuICAgLSBpbiB0aGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGNvbnZlcnNpb25zIChbJWZdLCBbJWVdLCBbJWddLCBbJUZdLCBbJUVdLFxuICAgYW5kIFslRl0gY29udmVyc2lvbnMsIHRoZSBbcHJlY2lzaW9uXSBpbmRpY2F0ZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mXG4gICBkaWdpdHMgdGhhdCBtYXkgZm9sbG93IHRoZSBkZWNpbWFsIHBvaW50LiBGb3IgaW5zdGFuY2UsIFslLjRmXSByZWFkcyBhXG4gICBbZmxvYXRdIHdpdGggYXQgbW9zdCA0IGZyYWN0aW9uYWwgZGlnaXRzLFxuXG4gICAtIGluIHRoZSBzdHJpbmcgY29udmVyc2lvbnMgKFslc10sIFslU10sIFslXFxbIHJhbmdlIFxcXV0pLCBhbmQgaW4gdGhlXG4gICBpbnRlZ2VyIG51bWJlciBjb252ZXJzaW9ucyAoWyVpXSwgWyVkXSwgWyV1XSwgWyV4XSwgWyVvXSwgYW5kIHRoZWlyXG4gICBbaW50MzJdLCBbaW50NjRdLCBhbmQgW25hdGl2ZV9pbnRdIGNvcnJlc3BvbmRlbnQpLCB0aGUgW3ByZWNpc2lvbl1cbiAgIGluZGljYXRlcyB0aGUgcmVxdWlyZWQgbWluaW11bSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZCxcblxuICAgLSBvbiBhbGwgb3RoZXIgY29udmVyc2lvbnMsIHRoZSB3aWR0aCBhbmQgcHJlY2lzaW9uIHNwZWNpZnkgdGhlIFttYXgsIG1pbl1cbiAgIHJhbmdlIGZvciB0aGUgd2lkdGggb2YgdGhlIHRva2VuIHJlYWQuXG4qKVxubGV0IHNjYW5fZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9pbnRlZ2VyX3BhcnQgd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGgsIHByZWNpc2lvbiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoLCBwcmVjaXNpb24gZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnLicgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICBsZXQgd2lkdGggPSB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2ZyYWN0aW9uYWxfcGFydCBwcmVjaXNpb24gaWIpIGluXG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliLCBwcmVjaXNpb25cbiAgfCBfIC0+XG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliLCBwcmVjaXNpb25cblxuXG5sZXQgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgZXJyb3Igc3RyID1cbiAgbGV0IGxvd2VyY2FzZSBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICdBJyAuLiAnWicgLT5cbiAgICAgIGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICsgaW50X29mX2NoYXIgJ2EnKVxuICAgIHwgXyAtPiBjIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgd2lkdGggPSByZWYgd2lkdGggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIGxvd2VyY2FzZSBjIDw+IGxvd2VyY2FzZSBzdHIuW2ldIHRoZW4gZXJyb3IgKCk7XG4gICAgaWYgIXdpZHRoID0gMCB0aGVuIGVycm9yICgpO1xuICAgIHdpZHRoIDo9IFNjYW5uaW5nLnN0b3JlX2NoYXIgIXdpZHRoIGliIGM7XG4gIGRvbmU7XG4gICF3aWR0aFxuXG5cbmxldCBzY2FuX2hleF9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+IChcbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBsZXQgd2lkdGggPSBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwieFwiIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJy4nIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYiBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICB8ICcuJyBhcyBjIC0+IChcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgICAgICAgICAgICAgd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgcHJlY2lzaW9uIGliKVxuICAgICAgICAgIClcbiAgICAgICAgICB8IF8gLT4gd2lkdGggaW5cbiAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgIHwgJ3AnIHwgJ1AnIGFzIGMgLT5cbiAgICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgICAgICAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gICAgICAgICAgfCBfIC0+IHdpZHRoXG4gIClcbiAgfCAnbicgfCAnTicgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJhblwiXG4gIHwgJ2knIHwgJ0knIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwibmZpbml0eVwiXG4gIHwgXyAtPiBiYWRfaGV4X2Zsb2F0ICgpXG5cblxubGV0IHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcuJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICgqIFRoZSBlZmZlY3RpdmUgd2lkdGggYXZhaWxhYmxlIGZvciBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IGlzXG4gICAgICAgdGhlIG1pbmltdW0gb2YgZGVjbGFyZWQgcHJlY2lzaW9uIGFuZCB3aWR0aCBsZWZ0LiAqKVxuICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICgqIEFmdGVyIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgd2l0aCBbcHJlY2lzaW9uXSBwcm92aXNpb25hbCB3aWR0aCxcbiAgICAgICBbd2lkdGhfcHJlY2lzaW9uXSBpcyBsZWZ0LiAqKVxuICAgIGxldCB3aWR0aF9wcmVjaXNpb24gPSBzY2FuX2ZyYWN0aW9uYWxfcGFydCBwcmVjaXNpb24gaWIgaW5cbiAgICAoKiBIZW5jZSwgc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCB0b29rIGV4YWN0bHlcbiAgICAgICBbcHJlY2lzaW9uIC0gd2lkdGhfcHJlY2lzaW9uXSBjaGFycy4gKilcbiAgICBsZXQgZnJhY193aWR0aCA9IHByZWNpc2lvbiAtIHdpZHRoX3ByZWNpc2lvbiBpblxuICAgICgqIEFuZCBuZXcgcHJvdmlzaW9uYWwgd2lkdGggaXMgW3dpZHRoIC0gd2lkdGhfcHJlY2lzaW9uLiAqKVxuICAgIGxldCB3aWR0aCA9IHdpZHRoIC0gZnJhY193aWR0aCBpblxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYlxuICB8ICdlJyB8ICdFJyAtPlxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYlxuICB8IF8gLT4gYmFkX2Zsb2F0ICgpXG5cblxubGV0IHNjYW5fY2FtbF9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPiAoXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ3gnIHwgJ1gnIGFzIGMgLT4gKFxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgICAgbGV0IHdpZHRoID0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWIgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICcuJyBhcyBjIC0+IChcbiAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgICAgICAgICAgIHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5faGV4YWRlY2ltYWxfaW50IHByZWNpc2lvbiBpYilcbiAgICAgICAgKVxuICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gYmFkX2Zsb2F0ICgpIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICdwJyB8ICdQJyBhcyBjIC0+XG4gICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgICAgICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICAgICAgICB8IF8gLT4gd2lkdGhcbiAgICApXG4gICAgfCBfIC0+XG4gICAgICBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWJcbiAgKVxuICB8ICcxJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliXG4oKiBTcGVjaWFsIGNhc2Ugb2YgbmFuIGFuZCBpbmZpbml0eTpcbiAgfCAnaScgLT5cbiAgfCAnbicgLT5cbiopXG4gIHwgXyAtPiBiYWRfZmxvYXQgKClcblxuXG4oKiBTY2FuIGEgcmVndWxhciBzdHJpbmc6XG4gICBzdG9wcyB3aGVuIGVuY291bnRlcmluZyBhIHNwYWNlLCBpZiBubyBzY2FubmluZyBpbmRpY2F0aW9uIGhhcyBiZWVuIGdpdmVuO1xuICAgb3RoZXJ3aXNlLCBzdG9wcyB3aGVuIGVuY291bnRlcmluZyB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc2Nhbm5pbmdcbiAgIGluZGljYXRpb24gW3N0cF0uXG4gICBJdCBhbHNvIHN0b3BzIGF0IGVuZCBvZiBmaWxlIG9yIHdoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgaGFzXG4gICBiZWVuIHJlYWQuICopXG5sZXQgc2Nhbl9zdHJpbmcgc3RwIHdpZHRoIGliID1cbiAgbGV0IHJlYyBsb29wIHdpZHRoID1cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICBtYXRjaCBzdHAgd2l0aFxuICAgICAgfCBTb21lIGMnIHdoZW4gYyA9IGMnIC0+IFNjYW5uaW5nLnNraXBfY2hhciB3aWR0aCBpYlxuICAgICAgfCBTb21lIF8gLT4gbG9vcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuICAgICAgfCBOb25lIC0+XG4gICAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICB8ICcgJyB8ICdcXHQnIHwgJ1xcbicgfCAnXFxyJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gbG9vcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpblxuICBsb29wIHdpZHRoXG5cblxuKCogU2NhbiBhIGNoYXI6IHBlZWsgc3RyaWN0bHkgb25lIGNoYXJhY3RlciBpbiB0aGUgaW5wdXQsIHdoYXRzb2V2ZXIuICopXG5sZXQgc2Nhbl9jaGFyIHdpZHRoIGliID1cbiAgKCogVGhlIGNhc2Ugd2lkdGggPSAwIGNvdWxkIG5vdCBoYXBwZW4gaGVyZSwgc2luY2UgaXQgaXMgdGVzdGVkIGJlZm9yZVxuICAgICBjYWxsaW5nIHNjYW5fY2hhciwgaW4gdGhlIG1haW4gc2Nhbm5pbmcgZnVuY3Rpb24uXG4gICAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImEgY2hhcmFjdGVyXCIgZWxzZSAqKVxuICBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIChTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYilcblxuXG5sZXQgY2hhcl9mb3JfYmFja3NsYXNoID0gZnVuY3Rpb25cbiAgfCAnbicgLT4gJ1xcMDEwJ1xuICB8ICdyJyAtPiAnXFwwMTMnXG4gIHwgJ2InIC0+ICdcXDAwOCdcbiAgfCAndCcgLT4gJ1xcMDA5J1xuICB8IGMgLT4gY1xuXG5cbigqIFRoZSBpbnRlZ2VyIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZhY2lhbCB2YWx1ZSBvZiBhIHZhbGlkXG4gICBkZWNpbWFsIGRpZ2l0IGNoYXJhY3Rlci4gKilcbmxldCBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYyA9IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCdcblxubGV0IGNoYXJfZm9yX2RlY2ltYWxfY29kZSBjMCBjMSBjMiA9XG4gIGxldCBjID1cbiAgICAxMDAgKiBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzAgK1xuICAgICAxMCAqIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMSArXG4gICAgICAgICAgZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMyIGluXG4gIGlmIGMgPCAwIHx8IGMgPiAyNTUgdGhlblxuICAgIGJhZF9pbnB1dFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgICBcImJhZCBjaGFyYWN0ZXIgZGVjaW1hbCBlbmNvZGluZyBcXFxcJWMlYyVjXCIgYzAgYzEgYzIpIGVsc2VcbiAgY2hhcl9vZl9pbnQgY1xuXG5cbigqIFRoZSBpbnRlZ2VyIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZhY2lhbCB2YWx1ZSBvZiBhIHZhbGlkXG4gICBoZXhhZGVjaW1hbCBkaWdpdCBjaGFyYWN0ZXIuICopXG5sZXQgaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjID1cbiAgbGV0IGQgPSBpbnRfb2ZfY2hhciBjIGluXG4gICgqIENvdWxkIGFsc28gYmU6XG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnOScgdGhlbiBkIC0gaW50X29mX2NoYXIgJzAnIGVsc2VcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICdGJyB0aGVuIDEwICsgZCAtIGludF9vZl9jaGFyICdBJyBlbHNlXG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnZicgdGhlbiAxMCArIGQgLSBpbnRfb2ZfY2hhciAnYScgZWxzZSBhc3NlcnQgZmFsc2VcbiAgKilcbiAgaWYgZCA+PSBpbnRfb2ZfY2hhciAnYScgdGhlblxuICAgIGQgLSA4NyAoKiAxMCArIGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnYScgKikgZWxzZVxuICBpZiBkID49IGludF9vZl9jaGFyICdBJyB0aGVuXG4gICAgZCAtIDU1ICAoKiAxMCArIGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKikgZWxzZVxuICAgIGQgLSBpbnRfb2ZfY2hhciAnMCdcblxuXG5sZXQgY2hhcl9mb3JfaGV4YWRlY2ltYWxfY29kZSBjMSBjMiA9XG4gIGxldCBjID1cbiAgICAxNiAqIGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzEgK1xuICAgICAgICAgaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMiBpblxuICBpZiBjIDwgMCB8fCBjID4gMjU1IHRoZW5cbiAgICBiYWRfaW5wdXRcbiAgICAgIChQcmludGYuc3ByaW50ZiBcImJhZCBjaGFyYWN0ZXIgaGV4YWRlY2ltYWwgZW5jb2RpbmcgXFxcXCVjJWNcIiBjMSBjMikgZWxzZVxuICBjaGFyX29mX2ludCBjXG5cblxuKCogQ2FsbGVkIGluIHBhcnRpY3VsYXIgd2hlbiBlbmNvdW50ZXJpbmcgJ1xcXFwnIGFzIHN0YXJ0ZXIgb2YgYSBjaGFyLlxuICAgU3RvcHMgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nICdcXCcnLiAqKVxubGV0IGNoZWNrX25leHRfY2hhciBtZXNzYWdlIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBtZXNzYWdlIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gYmFkX2VuZF9vZl9pbnB1dCBtZXNzYWdlIGVsc2VcbiAgY1xuXG5cbmxldCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgPSBjaGVja19uZXh0X2NoYXIgXCJhIENoYXJcIlxubGV0IGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nID0gY2hlY2tfbmV4dF9jaGFyIFwiYSBTdHJpbmdcIlxuXG5sZXQgc2Nhbl9iYWNrc2xhc2hfY2hhciB3aWR0aCBpYiA9XG4gIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gIHwgJ1xcXFwnIHwgJ1xcJycgfCAnXFxcIicgfCAnbicgfCAndCcgfCAnYicgfCAncicgYXMgYyAtPlxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgKGNoYXJfZm9yX2JhY2tzbGFzaCBjKVxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCBnZXRfZGlnaXQgKCkgPVxuICAgICAgbGV0IGMgPSBTY2FubmluZy5uZXh0X2NoYXIgaWIgaW5cbiAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIGFzIGMgLT4gY1xuICAgICAgfCBjIC0+IGJhZF9pbnB1dF9lc2NhcGUgYyBpblxuICAgIGxldCBjMCA9IGMgaW5cbiAgICBsZXQgYzEgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBsZXQgYzIgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyICh3aWR0aCAtIDIpIGliIChjaGFyX2Zvcl9kZWNpbWFsX2NvZGUgYzAgYzEgYzIpXG4gIHwgJ3gnIC0+XG4gICAgbGV0IGdldF9kaWdpdCAoKSA9XG4gICAgICBsZXQgYyA9IFNjYW5uaW5nLm5leHRfY2hhciBpYiBpblxuICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgfCAnQScgLi4gJ0YnIHwgJ2EnIC4uICdmJyBhcyBjIC0+IGNcbiAgICAgIHwgYyAtPiBiYWRfaW5wdXRfZXNjYXBlIGMgaW5cbiAgICBsZXQgYzEgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBsZXQgYzIgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyICh3aWR0aCAtIDIpIGliIChjaGFyX2Zvcl9oZXhhZGVjaW1hbF9jb2RlIGMxIGMyKVxuICB8IGMgLT5cbiAgICBiYWRfaW5wdXRfZXNjYXBlIGNcblxuXG4oKiBTY2FuIGEgY2hhcmFjdGVyIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9jYW1sX2NoYXIgd2lkdGggaWIgPVxuXG4gIGxldCByZWMgZmluZF9zdGFydCB3aWR0aCA9XG4gICAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ1xcJycgLT4gZmluZF9jaGFyIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXCcnIGNcblxuICBhbmQgZmluZF9jaGFyIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcXFwnIC0+XG4gICAgICBmaW5kX3N0b3AgKHNjYW5fYmFja3NsYXNoX2NoYXIgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKSBpYilcbiAgICB8IGMgLT5cbiAgICAgIGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuXG4gIGFuZCBmaW5kX3N0b3Agd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFwnJyAtPiBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYlxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcJycgYyBpblxuXG4gIGZpbmRfc3RhcnQgd2lkdGhcblxuXG4oKiBTY2FuIGEgZGVsaW1pdGVkIHN0cmluZyAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fY2FtbF9zdHJpbmcgd2lkdGggaWIgPVxuXG4gIGxldCByZWMgZmluZF9zdGFydCB3aWR0aCA9XG4gICAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ1xcXCInIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFxcIicgY1xuXG4gIGFuZCBmaW5kX3N0b3Agd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXFwiJyAtPiBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYlxuICAgIHwgJ1xcXFwnIC0+IHNjYW5fYmFja3NsYXNoIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG5cbiAgYW5kIHNjYW5fYmFja3NsYXNoIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxyJyAtPiBza2lwX25ld2xpbmUgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgJ1xcbicgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3AgKHNjYW5fYmFja3NsYXNoX2NoYXIgd2lkdGggaWIpXG5cbiAgYW5kIHNraXBfbmV3bGluZSB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcbicgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgJ1xccicpXG5cbiAgYW5kIHNraXBfc3BhY2VzIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnICcgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3Agd2lkdGggaW5cblxuICBmaW5kX3N0YXJ0IHdpZHRoXG5cblxuKCogU2NhbiBhIGJvb2xlYW4gKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2Jvb2wgaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGxldCBtID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICd0JyAtPiA0XG4gICAgfCAnZicgLT4gNVxuICAgIHwgYyAtPlxuICAgICAgYmFkX2lucHV0XG4gICAgICAgIChQcmludGYuc3ByaW50ZiBcInRoZSBjaGFyYWN0ZXIgJUMgY2Fubm90IHN0YXJ0IGEgYm9vbGVhblwiIGMpIGluXG4gIHNjYW5fc3RyaW5nIE5vbmUgbSBpYlxuXG5cbigqIFNjYW4gYSBzdHJpbmcgY29udGFpbmluZyBlbGVtZW50cyBpbiBjaGFyX3NldCBhbmQgdGVybWluYXRlZCBieSBzY2FuX2luZGljXG4gICBpZiBwcm92aWRlZC4gKilcbmxldCBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IHNjYW5faW5kaWMgd2lkdGggaWIgPVxuICBsZXQgcmVjIHNjYW5fY2hhcnMgaSBzdHAgPVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgaSA+IDAgJiYgbm90IChTY2FubmluZy5lb2YgaWIpICYmXG4gICAgICAgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyAmJlxuICAgICAgIGludF9vZl9jaGFyIGMgPD4gc3RwIHRoZW5cbiAgICAgIGxldCBfID0gU2Nhbm5pbmcuc3RvcmVfY2hhciBtYXhfaW50IGliIGMgaW5cbiAgICAgIHNjYW5fY2hhcnMgKGkgLSAxKSBzdHAgaW5cbiAgbWF0Y2ggc2Nhbl9pbmRpYyB3aXRoXG4gIHwgTm9uZSAtPiBzY2FuX2NoYXJzIHdpZHRoICgtMSk7XG4gIHwgU29tZSBjIC0+XG4gICAgc2Nhbl9jaGFycyB3aWR0aCAoaW50X29mX2NoYXIgYyk7XG4gICAgaWYgbm90IChTY2FubmluZy5lb2YgaWIpIHRoZW5cbiAgICAgIGxldCBjaSA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgICAgaWYgYyA9IGNpXG4gICAgICB0aGVuIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXG4gICAgICBlbHNlIGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpXG5cblxuKCogVGhlIGdsb2JhbCBlcnJvciByZXBvcnQgZnVuY3Rpb24gZm9yIFtTY2FuZl0uICopXG5sZXQgc2NhbmZfYmFkX2lucHV0IGliID0gZnVuY3Rpb25cbiAgfCBTY2FuX2ZhaWx1cmUgcyB8IEZhaWx1cmUgcyAtPlxuICAgIGxldCBpID0gU2Nhbm5pbmcuY2hhcl9jb3VudCBpYiBpblxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJzY2FuZjogYmFkIGlucHV0IGF0IGNoYXIgbnVtYmVyICVpOiAlc1wiIGkgcylcbiAgfCB4IC0+IHJhaXNlIHhcblxuXG4oKiBHZXQgdGhlIGNvbnRlbnQgb2YgYSBjb3VudGVyIGZyb20gYW4gaW5wdXQgYnVmZmVyLiAqKVxubGV0IGdldF9jb3VudGVyIGliIGNvdW50ZXIgPVxuICBtYXRjaCBjb3VudGVyIHdpdGhcbiAgfCBMaW5lX2NvdW50ZXIgLT4gU2Nhbm5pbmcubGluZV9jb3VudCBpYlxuICB8IENoYXJfY291bnRlciAtPiBTY2FubmluZy5jaGFyX2NvdW50IGliXG4gIHwgVG9rZW5fY291bnRlciAtPiBTY2FubmluZy50b2tlbl9jb3VudCBpYlxuXG5cbigqIENvbXB1dGUgdGhlIHdpZHRoIG9mIGEgcGFkZGluZyBvcHRpb24gKHNlZSBcIiU0MntcIiBhbmQgXCIlMTIzKFwiKS4gKilcbmxldCB3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQgPSBtYXRjaCBwYWRfb3B0IHdpdGhcbiAgfCBOb25lIC0+IG1heF9pbnRcbiAgfCBTb21lIHdpZHRoIC0+IHdpZHRoXG5cblxubGV0IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nID1cbiAgaWYgZm10aW5nID0gRXNjYXBlZF9wZXJjZW50IHRoZW4gJyUnLCBcIlwiIGVsc2VcbiAgICBsZXQgc3RyID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZyBpblxuICAgIGxldCBzdHAgPSBzdHIuWzFdIGluXG4gICAgbGV0IHN1Yl9zdHIgPSBTdHJpbmcuc3ViIHN0ciAyIChTdHJpbmcubGVuZ3RoIHN0ciAtIDIpIGluXG4gICAgc3RwLCBzdWJfc3RyXG5cblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFJlYWRlciBtYW5hZ2VtZW50ICopXG5cbigqIEEgY2FsbCB0byB0YWtlX2Zvcm1hdF9yZWFkZXJzIG9uIGEgZm9ybWF0IGlzIGV2YWx1YXRlZCBpbnRvIGZ1bmN0aW9uc1xuICAgdGFraW5nIHJlYWRlcnMgYXMgYXJndW1lbnRzIGFuZCBhZ2dyZWdhdGUgdGhlbSBpbnRvIGFuIGhldGVyb2dlbmVvdXMgbGlzdCAqKVxuKCogV2hlbiBhbGwgcmVhZGVycyBhcmUgdGFrZW4sIGZpbmFsbHkgcGFzcyB0aGUgbGlzdCBvZiB0aGUgcmVhZGVycyB0byB0aGVcbiAgIGNvbnRpbnVhdGlvbiBrLiAqKVxubGV0IHJlYyB0YWtlX2Zvcm1hdF9yZWFkZXJzIDogdHlwZSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgZCA9XG5mdW4gayBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBSZWFkZXIgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdFxuICB8IENoYXIgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2FtbF9jaGFyIHJlc3QgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTdHJpbmcgKF8sIHJlc3QpICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENhbWxfc3RyaW5nIChfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQzMiAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IE5hdGl2ZWludCAoXywgXywgXywgcmVzdCkgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50NjQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGbG9hdCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEJvb2wgKF8sIHJlc3QpICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQWxwaGEgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBUaGV0YSByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZsdXNoIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU3RyaW5nX2xpdGVyYWwgKF8sIHJlc3QpICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEN1c3RvbSAoXywgXywgcmVzdCkgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcblxuICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCwgXykpLCByZXN0KSAtPlxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10IGZtdCByZXN0KVxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQsIF8pKSwgcmVzdCkgLT5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdCBmbXQgcmVzdClcblxuICB8IEZvcm1hdF9hcmcgKF8sIF8sIHJlc3QpICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRm9ybWF0X3N1YnN0IChfLCBmbXR0eSwgcmVzdCkgICAgLT5cbiAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIChlcmFzZV9yZWwgKHN5bW0gZm10dHkpKSByZXN0XG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAgICAgICAgLT4gdGFrZV9pZ25vcmVkX2Zvcm1hdF9yZWFkZXJzIGsgaWduIHJlc3RcblxuICB8IEVuZF9vZl9mb3JtYXQgICAgICAgICAgICAgICAgICAgIC0+IGsgTmlsXG5cbigqIFRha2UgcmVhZGVycyBhc3NvY2lhdGVkIHRvIGFuIGZtdHR5IGNvbWluZyBmcm9tIGEgRm9ybWF0X3N1YnN0IFwiJSguLi4lKVwiLiAqKVxuYW5kIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIHggeSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgeCwgeSkgZm10dHkgLT5cbiAgICAgICh5LCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCB4LCBlLCBmKSBmbXQgLT4gZCA9XG5mdW4gayBmbXR0eSBmbXQgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IFJlYWRlcl90eSBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0IGZtdFxuICB8IElnbm9yZWRfcmVhZGVyX3R5IGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3QgZm10XG4gIHwgQ2hhcl90eSByZXN0ICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IFN0cmluZ190eSByZXN0ICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnRfdHkgcmVzdCAgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50MzJfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IE5hdGl2ZWludF90eSByZXN0ICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnQ2NF90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRmxvYXRfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEJvb2xfdHkgcmVzdCAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBBbHBoYV90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEFueV90eSByZXN0ICAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBGb3JtYXRfYXJnX3R5IChfLCByZXN0KSAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRW5kX29mX2ZtdHR5ICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10dHkgdHkgcmVzdCkgZm10XG5cbigqIFRha2UgcmVhZGVycyBhc3NvY2lhdGVkIHRvIGFuIGlnbm9yZWQgcGFyYW1ldGVyLiAqKVxuYW5kIHRha2VfaWdub3JlZF9mb3JtYXRfcmVhZGVycyA6IHR5cGUgeCB5IGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCB4LCB5KSBpZ25vcmVkIC0+XG4gICAgICAoeSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgeCwgZSwgZikgZm10IC0+IGQgPVxuZnVuIGsgaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfcmVhZGVyIC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10XG4gIHwgSWdub3JlZF9jaGFyICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBfICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQzMiAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKF8sIF8pICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mbG9hdCAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9ib29sIF8gICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKF8sIGZtdHR5KSAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgZm10dHkgZm10XG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEdlbmVyaWMgc2Nhbm5pbmcgKilcblxuKCogTWFrZSBhIGdlbmVyaWMgc2Nhbm5pbmcgZnVuY3Rpb24uICopXG4oKiBTY2FuIGEgc3RyZWFtIGFjY29yZGluZyB0byBhIGZvcm1hdCBhbmQgcmVhZGVycyBvYnRhaW5lZCBieVxuICAgdGFrZV9mb3JtYXRfcmVhZGVycywgYW5kIGFnZ3JlZ2F0ZSBzY2FubmVkIHZhbHVlcyBpbnRvIGFuXG4gICBoZXRlcm9nZW5lb3VzIGxpc3QuICopXG4oKiBSZXR1cm4gdGhlIGhldGVyb2dlbmVvdXMgbGlzdCBvZiBzY2FubmVkIHZhbHVlcy4gKilcbmxldCByZWMgbWFrZV9zY2FuZiA6IHR5cGUgYSBjIGQgZSBmLlxuICAgIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKGQsIGUpIGhldGVyX2xpc3QgLT4gKGEsIGYpIGhldGVyX2xpc3QgPVxuZnVuIGliIGZtdCByZWFkZXJzIC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgQ2hhciByZXN0IC0+XG4gICAgbGV0IF8gPSBzY2FuX2NoYXIgMCBpYiBpblxuICAgIGxldCBjID0gdG9rZW5fY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfY2hhciAwIGliIGluXG4gICAgbGV0IGMgPSB0b2tlbl9jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG5cbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpKSAtPlxuICAgIGxldCBzdHAsIHN0ciA9IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSBzdHApIHdpZHRoIGliIGluXG4gICAgbGV0IHN0cl9yZXN0ID0gU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiBzdHJfcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lICd7Jykgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuXG4gICAgICAgICAgICAgICAgICAgdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpKSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSAnWycpIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhblxuICAgICAgICAgICAgICAgICAgIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyBOb25lIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcblxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fY2FtbF9zdHJpbmcgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50IGMpXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludDMyIGMpXG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9uYXRpdmVpbnQgYylcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50NjQgYylcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9GIHwgRmxvYXRfQ0YpKSwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2NhbWxfZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRykpLFxuICAgICAgICAgICBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5fZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9oIHwgRmxvYXRfSCkpLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5faGV4X2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIF8gXyBpYiA9IHNjYW5fYm9vbCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fYm9vbFxuICB8IEFscGhhIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJWFcXFwiXCJcbiAgfCBUaGV0YSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiV0XFxcIlwiXG4gIHwgQ3VzdG9tIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJT9cXFwiIChjdXN0b20gY29udmVydGVyKVwiXG4gIHwgUmVhZGVyIGZtdF9yZXN0IC0+XG4gICAgYmVnaW4gbWF0Y2ggcmVhZGVycyB3aXRoXG4gICAgfCBDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkgLT5cbiAgICAgICAgbGV0IHggPSByZWFkZXIgaWIgaW5cbiAgICAgICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXRfcmVzdCByZWFkZXJzX3Jlc3QpXG4gICAgfCBOaWwgLT5cbiAgICAgICAgaW52YWxpZF9hcmcgXCJzY2FuZjogbWlzc2luZyByZWFkZXJcIlxuICAgIGVuZFxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBpZiBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICAgIGVsc2UgYmFkX2lucHV0IFwiZW5kIG9mIGlucHV0IG5vdCBmb3VuZFwiXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIFN0cmluZy5pdGVyIChjaGVja19jaGFyIGliKSBzdHI7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliIGNocjtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuXG4gIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nICh3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQpIGliIGluXG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10ID1cbiAgICAgIHRyeSBmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IHMgZm10dHlcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZ1xuICAgIGluXG4gICAgQ29ucyAoZm10LCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyAod2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0KSBpYiBpblxuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCwgZm10JyA9XG4gICAgICB0cnlcbiAgICAgICAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgcyBpblxuICAgICAgICBsZXQgRm10X0VCQiBmbXQnID0gZm10X2ViYl9vZl9zdHJpbmcgcyBpblxuICAgICAgICAoKiBUT0RPOiBmaW5kIGEgd2F5IHRvIGF2b2lkIHJlcGFyc2luZyB0d2ljZSAqKVxuXG4gICAgICAgICgqIFRPRE86IHRoZXNlIHR5cGUtY2hlY2tzIGJlbG93ICpjYW4qIGZhaWwgYmVjYXVzZSBvZiB0eXBlXG4gICAgICAgICAgIGFtYmlndWl0eSBpbiBwcmVzZW5jZSBvZiBpZ25vcmVkLXJlYWRlcnM6IFwiJV9yJWRcIiBhbmQgXCIlZCVfclwiXG4gICAgICAgICAgIGFyZSB0eXBlZCBpbiB0aGUgc2FtZSB3YXkuXG5cbiAgICAgICAgICAgIyBTY2FuZi5zc2NhbmYgXCJcXFwiJV9yJWRcXFwiM1wiIFwiJSglZCVfciUpXCIgaWdub3JlXG4gICAgICAgICAgICAgKGZ1biBmbXQgbiAtPiBzdHJpbmdfb2ZfZm9ybWF0IGZtdCwgbilcbiAgICAgICAgICAgRXhjZXB0aW9uOiBDYW1saW50ZXJuYWxGb3JtYXQuVHlwZV9taXNtYXRjaC5cblxuICAgICAgICAgICBXZSBzaG91bGQgcHJvcGVybHkgY2F0Y2ggdGhpcyBleGNlcHRpb24uXG4gICAgICAgICopXG4gICAgICAgIHR5cGVfZm9ybWF0IGZtdCAoZXJhc2VfcmVsIGZtdHR5KSxcbiAgICAgICAgdHlwZV9mb3JtYXQgZm10JyAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSlcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZ1xuICAgIGluXG4gICAgQ29ucyAoRm9ybWF0IChmbXQsIHMpLFxuICAgICAgICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzKVxuXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpKSAtPlxuICAgIGxldCBzdHAsIHN0ciA9IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGxldCB3aWR0aCA9IHdpZHRoX29mX3BhZF9vcHQgd2lkdGhfb3B0IGluXG4gICAgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCAoU29tZSBzdHApIHdpZHRoIGliO1xuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IHN0cl9yZXN0ID0gU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgaW5cbiAgICBDb25zIChzLCBtYWtlX3NjYW5mIGliIHN0cl9yZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgcmVzdCkgLT5cbiAgICBsZXQgd2lkdGggPSB3aWR0aF9vZl9wYWRfb3B0IHdpZHRoX29wdCBpblxuICAgIHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgTm9uZSB3aWR0aCBpYjtcbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIENvbnMgKHMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgbGV0IGNvdW50ID0gZ2V0X2NvdW50ZXIgaWIgY291bnRlciBpblxuICAgIENvbnMgKGNvdW50LCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCByZXN0KSAtPlxuICAgIFN0cmluZy5pdGVyIChjaGVja19jaGFyIGliKSAoc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZvcm1hdHRpbmdfbGl0KTtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiAnQCc7IGNoZWNrX2NoYXIgaWIgJ3snO1xuICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliICdAJzsgY2hlY2tfY2hhciBpYiAnWyc7XG4gICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnNcblxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBsZXQgUGFyYW1fZm9ybWF0X0VCQiBmbXQnID0gcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0IGluXG4gICAgYmVnaW4gbWF0Y2ggbWFrZV9zY2FuZiBpYiBmbXQnIHJlYWRlcnMgd2l0aFxuICAgIHwgQ29ucyAoXywgYXJnX3Jlc3QpIC0+IGFyZ19yZXN0XG4gICAgfCBOaWwgLT4gYXNzZXJ0IGZhbHNlXG4gICAgZW5kXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgTmlsXG5cbigqIENhc2UgYW5hbHlzaXMgb24gcGFkZGluZyBhbmQgcHJlY2lzaW9uLiAqKVxuKCogUmVqZWN0IGZvcm1hdHMgY29udGFpbmluZyBcIiUqXCIgb3IgXCIlLipcIi4gKilcbigqIFBhc3MgcGFkZGluZyBhbmQgcHJlY2lzaW9uIHRvIHRoZSBnZW5lcmljIHNjYW5uZXIgYHNjYW4nLiAqKVxuYW5kIHBhZF9wcmVjX3NjYW5mIDogdHlwZSBhIGMgZCBlIGYgeCB5IHogdCAuXG4gICAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoZCwgZSkgaGV0ZXJfbGlzdCAtPiAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeiAtPiBhKSBwcmVjaXNpb24gLT5cbiAgICAgIChpbnQgLT4gaW50IC0+IFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gdCkgLT5cbiAgICAgIChTY2FubmluZy5pbl9jaGFubmVsIC0+IHopIC0+XG4gICAgICAoeCwgZikgaGV0ZXJfbGlzdCA9XG5mdW4gaWIgZm10IHJlYWRlcnMgcGFkIHByZWMgc2NhbiB0b2tlbiAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICB8IE5vX3BhZGRpbmcsIE5vX3ByZWNpc2lvbiAtPlxuICAgIGxldCBfID0gc2NhbiBtYXhfaW50IG1heF9pbnQgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBsZXQgXyA9IHNjYW4gbWF4X2ludCBwIGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGxldCBfID0gc2NhbiB3IG1heF9pbnQgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCB3KSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgbGV0IF8gPSBzY2FuIHcgcCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nIChMZWZ0LCBfKSwgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlLVxcXCJcIlxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIF8pLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG4gIHwgQXJnX3BhZGRpbmcgXywgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuICB8IE5vX3BhZGRpbmcsIEFyZ19wcmVjaXNpb24gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICgqIERlZmluaW5nIFtzY2FuZl0gYW5kIHZhcmlvdXMgZmxhdm9ycyBvZiBbc2NhbmZdICopXG5cbnR5cGUgJ2Ega3NjYW5mX3Jlc3VsdCA9IEFyZ3Mgb2YgJ2EgfCBFeGMgb2YgZXhuXG5cbmxldCBrc2NhbmYgaWIgZWYgKEZvcm1hdCAoZm10LCBzdHIpKSA9XG4gIGxldCByZWMgYXBwbHkgOiB0eXBlIGEgYiAuIGEgLT4gKGEsIGIpIGhldGVyX2xpc3QgLT4gYiA9XG4gICAgZnVuIGYgYXJncyAtPiBtYXRjaCBhcmdzIHdpdGhcbiAgICB8IENvbnMgKHgsIHIpIC0+IGFwcGx5IChmIHgpIHJcbiAgICB8IE5pbCAtPiBmXG4gIGluXG4gIGxldCBrIHJlYWRlcnMgZiA9XG4gICAgU2Nhbm5pbmcucmVzZXRfdG9rZW4gaWI7XG4gICAgbWF0Y2ggdHJ5IEFyZ3MgKG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpIHdpdGhcbiAgICAgIHwgKFNjYW5fZmFpbHVyZSBfIHwgRmFpbHVyZSBfIHwgRW5kX29mX2ZpbGUpIGFzIGV4YyAtPiBFeGMgZXhjXG4gICAgICB8IEludmFsaWRfYXJndW1lbnQgbXNnIC0+XG4gICAgICAgIGludmFsaWRfYXJnIChtc2cgXiBcIiBpbiBmb3JtYXQgXFxcIlwiIF4gU3RyaW5nLmVzY2FwZWQgc3RyIF4gXCJcXFwiXCIpXG4gICAgd2l0aFxuICAgICAgfCBBcmdzIGFyZ3MgLT4gYXBwbHkgZiBhcmdzXG4gICAgICB8IEV4YyBleGMgLT4gZWYgaWIgZXhjXG4gIGluXG4gIHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcblxuKCoqKilcblxubGV0IGtic2NhbmYgPSBrc2NhbmZcbmxldCBic2NhbmYgaWIgZm10ID0ga2JzY2FuZiBpYiBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbmxldCBrc3NjYW5mIHMgZWYgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgZWYgZm10XG5sZXQgc3NjYW5mIHMgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG5sZXQgc2NhbmYgZm10ID0ga3NjYW5mIFNjYW5uaW5nLnN0ZGliIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxuKCoqKilcblxuKCogU2Nhbm5pbmcgZm9ybWF0IHN0cmluZ3MuICopXG5sZXQgYnNjYW5mX2Zvcm1hdCA6XG4gIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICdnKSAtPiAnZyA9XG4gIGZ1biBpYiBmb3JtYXQgZiAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyBtYXhfaW50IGliIGluXG4gICAgbGV0IHN0ciA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQnID1cbiAgICAgIHRyeSBmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCBzdHIgZm9ybWF0XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2cgaW5cbiAgICBmIGZtdCdcblxuXG5sZXQgc3NjYW5mX2Zvcm1hdCA6XG4gIHN0cmluZyAtPiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gJ2cpIC0+ICdnID1cbiAgZnVuIHMgZm9ybWF0IGYgLT4gYnNjYW5mX2Zvcm1hdCAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgZm9ybWF0IGZcblxuXG5sZXQgZm9ybWF0X2Zyb21fc3RyaW5nIHMgZm10ID1cbiAgc3NjYW5mX2Zvcm1hdCAoXCJcXFwiXCIgXiBTdHJpbmcuZXNjYXBlZCBzIF4gXCJcXFwiXCIpIGZtdCAoZnVuIHggLT4geClcblxuXG5sZXQgdW5lc2NhcGVkIHMgPVxuICBzc2NhbmYgKFwiXFxcIlwiIF4gcyBeIFwiXFxcIlwiKSBcIiVTJSFcIiAoZnVuIHggLT4geClcblxuXG4oKiBEZXByZWNhdGVkICopXG5sZXQga2ZzY2FuZiBpYyBlZiBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5tZW1vX2Zyb21fY2hhbm5lbCBpYykgZWYgZm10XG5sZXQgZnNjYW5mIGljIGZtdCA9IGtzY2FuZiAoU2Nhbm5pbmcubWVtb19mcm9tX2NoYW5uZWwgaWMpIHNjYW5mX2JhZF9pbnB1dCBmbXRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUmVnaXN0ZXJpbmcgT0NhbWwgdmFsdWVzIHdpdGggdGhlIEMgcnVudGltZSBmb3IgbGF0ZXIgY2FsbGJhY2tzICopXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+IE9iai50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0IHJlZ2lzdGVyIG5hbWUgdiA9XG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIG5hbWUgKE9iai5yZXByIHYpXG5cbmxldCByZWdpc3Rlcl9leGNlcHRpb24gbmFtZSAoZXhuIDogZXhuKSA9XG4gIGxldCBleG4gPSBPYmoucmVwciBleG4gaW5cbiAgbGV0IHNsb3QgPSBpZiBPYmoudGFnIGV4biA9IE9iai5vYmplY3RfdGFnIHRoZW4gZXhuIGVsc2UgT2JqLmZpZWxkIGV4biAwIGluXG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIG5hbWUgc2xvdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgSmVyb21lIFZvdWlsbG9uLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIE9ialxuXG4oKioqKiBPYmplY3QgcmVwcmVzZW50YXRpb24gKioqKilcblxuZXh0ZXJuYWwgc2V0X2lkOiAnYSAtPiAnYSA9IFwiY2FtbF9zZXRfb29faWRcIiBbQEBub2FsbG9jXVxuXG4oKioqKiBPYmplY3QgY29weSAqKioqKVxuXG5sZXQgY29weSBvID1cbiAgbGV0IG8gPSAoT2JqLm9iaiAoT2JqLmR1cCAoT2JqLnJlcHIgbykpKSBpblxuICBzZXRfaWQgb1xuXG4oKioqKiBDb21wcmVzc2lvbiBvcHRpb25zICoqKiopXG4oKiBQYXJhbWV0ZXJzICopXG50eXBlIHBhcmFtcyA9IHtcbiAgICBtdXRhYmxlIGNvbXBhY3RfdGFibGUgOiBib29sO1xuICAgIG11dGFibGUgY29weV9wYXJlbnQgOiBib29sO1xuICAgIG11dGFibGUgY2xlYW5fd2hlbl9jb3B5aW5nIDogYm9vbDtcbiAgICBtdXRhYmxlIHJldHJ5X2NvdW50IDogaW50O1xuICAgIG11dGFibGUgYnVja2V0X3NtYWxsX3NpemUgOiBpbnRcbiAgfVxuXG5sZXQgcGFyYW1zID0ge1xuICBjb21wYWN0X3RhYmxlID0gdHJ1ZTtcbiAgY29weV9wYXJlbnQgPSB0cnVlO1xuICBjbGVhbl93aGVuX2NvcHlpbmcgPSB0cnVlO1xuICByZXRyeV9jb3VudCA9IDM7XG4gIGJ1Y2tldF9zbWFsbF9zaXplID0gMTZcbn1cblxuKCoqKiogUGFyYW1ldGVycyAqKioqKVxuXG5sZXQgaW5pdGlhbF9vYmplY3Rfc2l6ZSA9IDJcblxuKCoqKiogSXRlbXMgKioqKilcblxudHlwZSBpdGVtID0gRHVtbXlBIHwgRHVtbXlCIHwgRHVtbXlDIG9mIGludFxubGV0IF8gPSBbRHVtbXlBOyBEdW1teUI7IER1bW15QyAwXSAoKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxuXG5sZXQgZHVtbXlfaXRlbSA9IChtYWdpYyAoKSA6IGl0ZW0pXG5cbigqKioqIFR5cGVzICoqKiopXG5cbnR5cGUgdGFnXG50eXBlIGxhYmVsID0gaW50XG50eXBlIGNsb3N1cmUgPSBpdGVtXG50eXBlIHQgPSBEdW1teUEgfCBEdW1teUIgfCBEdW1teUMgb2YgaW50XG5sZXQgXyA9IFtEdW1teUE7IER1bW15QjsgRHVtbXlDIDBdICgqIHRvIGF2b2lkIHdhcm5pbmdzICopXG5cbnR5cGUgb2JqID0gdCBhcnJheVxuZXh0ZXJuYWwgcmV0IDogKG9iaiAtPiAnYSkgLT4gY2xvc3VyZSA9IFwiJWlkZW50aXR5XCJcblxuKCoqKiogTGFiZWxzICoqKiopXG5cbmxldCBwdWJsaWNfbWV0aG9kX2xhYmVsIHMgOiB0YWcgPVxuICBsZXQgYWNjdSA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgYWNjdSA6PSAyMjMgKiAhYWNjdSArIENoYXIuY29kZSBzLltpXVxuICBkb25lO1xuICAoKiByZWR1Y2UgdG8gMzEgYml0cyAqKVxuICBhY2N1IDo9ICFhY2N1IGxhbmQgKDEgbHNsIDMxIC0gMSk7XG4gICgqIG1ha2UgaXQgc2lnbmVkIGZvciA2NCBiaXRzIGFyY2hpdGVjdHVyZXMgKilcbiAgbGV0IHRhZyA9IGlmICFhY2N1ID4gMHgzRkZGRkZGRiB0aGVuICFhY2N1IC0gKDEgbHNsIDMxKSBlbHNlICFhY2N1IGluXG4gICgqIFByaW50Zi5lcHJpbnRmIFwiJXMgPSAlZFxcblwiIHMgdGFnOyBmbHVzaCBzdGRlcnI7ICopXG4gIG1hZ2ljIHRhZ1xuXG4oKioqKiBTcGFyc2UgYXJyYXkgKioqKilcblxubW9kdWxlIFZhcnMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gc3RyaW5nIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIHZhcnMgPSBpbnQgVmFycy50XG5cbm1vZHVsZSBNZXRocyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBzdHJpbmcgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgbWV0aHMgPSBsYWJlbCBNZXRocy50XG5tb2R1bGUgTGFicyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBsYWJlbCBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSBsYWJzID0gYm9vbCBMYWJzLnRcblxuKCogVGhlIGNvbXBpbGVyIGFzc3VtZXMgdGhhdCB0aGUgZmlyc3QgZmllbGQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgW3NpemVdLiAqKVxudHlwZSB0YWJsZSA9XG4geyBtdXRhYmxlIHNpemU6IGludDtcbiAgIG11dGFibGUgbWV0aG9kczogY2xvc3VyZSBhcnJheTtcbiAgIG11dGFibGUgbWV0aG9kc19ieV9uYW1lOiBtZXRocztcbiAgIG11dGFibGUgbWV0aG9kc19ieV9sYWJlbDogbGFicztcbiAgIG11dGFibGUgcHJldmlvdXNfc3RhdGVzOlxuICAgICAobWV0aHMgKiBsYWJzICogKGxhYmVsICogaXRlbSkgbGlzdCAqIHZhcnMgKlxuICAgICAgbGFiZWwgbGlzdCAqIHN0cmluZyBsaXN0KSBsaXN0O1xuICAgbXV0YWJsZSBoaWRkZW5fbWV0aHM6IChsYWJlbCAqIGl0ZW0pIGxpc3Q7XG4gICBtdXRhYmxlIHZhcnM6IHZhcnM7XG4gICBtdXRhYmxlIGluaXRpYWxpemVyczogKG9iaiAtPiB1bml0KSBsaXN0IH1cblxubGV0IGR1bW15X3RhYmxlID1cbiAgeyBtZXRob2RzID0gW3wgZHVtbXlfaXRlbSB8XTtcbiAgICBtZXRob2RzX2J5X25hbWUgPSBNZXRocy5lbXB0eTtcbiAgICBtZXRob2RzX2J5X2xhYmVsID0gTGFicy5lbXB0eTtcbiAgICBwcmV2aW91c19zdGF0ZXMgPSBbXTtcbiAgICBoaWRkZW5fbWV0aHMgPSBbXTtcbiAgICB2YXJzID0gVmFycy5lbXB0eTtcbiAgICBpbml0aWFsaXplcnMgPSBbXTtcbiAgICBzaXplID0gMCB9XG5cbmxldCB0YWJsZV9jb3VudCA9IHJlZiAwXG5cbigqIGR1bW15X21ldCBzaG91bGQgYmUgYSBwb2ludGVyLCBzbyB1c2UgYW4gYXRvbSAqKVxubGV0IGR1bW15X21ldCA6IGl0ZW0gPSBvYmogKE9iai5uZXdfYmxvY2sgMCAwKVxuKCogaWYgZGVidWdnaW5nIGlzIG5lZWRlZCwgdGhpcyBjb3VsZCBiZSBhIGdvb2QgaWRlYTogKilcbigqIGxldCBkdW1teV9tZXQgKCkgPSBmYWlsd2l0aCBcIlVuZGVmaW5lZCBtZXRob2RcIiAqKVxuXG5sZXQgcmVjIGZpdF9zaXplIG4gPVxuICBpZiBuIDw9IDIgdGhlbiBuIGVsc2VcbiAgZml0X3NpemUgKChuKzEpLzIpICogMlxuXG5sZXQgbmV3X3RhYmxlIHB1Yl9sYWJlbHMgPVxuICBpbmNyIHRhYmxlX2NvdW50O1xuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIHB1Yl9sYWJlbHMgaW5cbiAgbGV0IG1ldGhvZHMgPSBBcnJheS5tYWtlIChsZW4qMisyKSBkdW1teV9tZXQgaW5cbiAgbWV0aG9kcy4oMCkgPC0gbWFnaWMgbGVuO1xuICBtZXRob2RzLigxKSA8LSBtYWdpYyAoZml0X3NpemUgbGVuICogU3lzLndvcmRfc2l6ZSAvIDggLSAxKTtcbiAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG8gbWV0aG9kcy4oaSoyKzMpIDwtIG1hZ2ljIHB1Yl9sYWJlbHMuKGkpIGRvbmU7XG4gIHsgbWV0aG9kcyA9IG1ldGhvZHM7XG4gICAgbWV0aG9kc19ieV9uYW1lID0gTWV0aHMuZW1wdHk7XG4gICAgbWV0aG9kc19ieV9sYWJlbCA9IExhYnMuZW1wdHk7XG4gICAgcHJldmlvdXNfc3RhdGVzID0gW107XG4gICAgaGlkZGVuX21ldGhzID0gW107XG4gICAgdmFycyA9IFZhcnMuZW1wdHk7XG4gICAgaW5pdGlhbGl6ZXJzID0gW107XG4gICAgc2l6ZSA9IGluaXRpYWxfb2JqZWN0X3NpemUgfVxuXG5sZXQgcmVzaXplIGFycmF5IG5ld19zaXplID1cbiAgbGV0IG9sZF9zaXplID0gQXJyYXkubGVuZ3RoIGFycmF5Lm1ldGhvZHMgaW5cbiAgaWYgbmV3X3NpemUgPiBvbGRfc2l6ZSB0aGVuIGJlZ2luXG4gICAgbGV0IG5ld19idWNrID0gQXJyYXkubWFrZSBuZXdfc2l6ZSBkdW1teV9tZXQgaW5cbiAgICBBcnJheS5ibGl0IGFycmF5Lm1ldGhvZHMgMCBuZXdfYnVjayAwIG9sZF9zaXplO1xuICAgIGFycmF5Lm1ldGhvZHMgPC0gbmV3X2J1Y2tcbiBlbmRcblxubGV0IHB1dCBhcnJheSBsYWJlbCBlbGVtZW50ID1cbiAgcmVzaXplIGFycmF5IChsYWJlbCArIDEpO1xuICBhcnJheS5tZXRob2RzLihsYWJlbCkgPC0gZWxlbWVudFxuXG4oKioqKiBDbGFzc2VzICoqKiopXG5cbmxldCBtZXRob2RfY291bnQgPSByZWYgMFxubGV0IGluc3RfdmFyX2NvdW50ID0gcmVmIDBcblxuKCogdHlwZSB0ICopXG50eXBlIG1ldGggPSBpdGVtXG5cbmxldCBuZXdfbWV0aG9kIHRhYmxlID1cbiAgbGV0IGluZGV4ID0gQXJyYXkubGVuZ3RoIHRhYmxlLm1ldGhvZHMgaW5cbiAgcmVzaXplIHRhYmxlIChpbmRleCArIDEpO1xuICBpbmRleFxuXG5sZXQgZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSBuYW1lID1cbiAgdHJ5XG4gICAgTWV0aHMuZmluZCBuYW1lIHRhYmxlLm1ldGhvZHNfYnlfbmFtZVxuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGxldCBsYWJlbCA9IG5ld19tZXRob2QgdGFibGUgaW5cbiAgICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gTWV0aHMuYWRkIG5hbWUgbGFiZWwgdGFibGUubWV0aG9kc19ieV9uYW1lO1xuICAgIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gTGFicy5hZGQgbGFiZWwgdHJ1ZSB0YWJsZS5tZXRob2RzX2J5X2xhYmVsO1xuICAgIGxhYmVsXG5cbmxldCBnZXRfbWV0aG9kX2xhYmVscyB0YWJsZSBuYW1lcyA9XG4gIEFycmF5Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgbmFtZXNcblxubGV0IHNldF9tZXRob2QgdGFibGUgbGFiZWwgZWxlbWVudCA9XG4gIGluY3IgbWV0aG9kX2NvdW50O1xuICBpZiBMYWJzLmZpbmQgbGFiZWwgdGFibGUubWV0aG9kc19ieV9sYWJlbCB0aGVuXG4gICAgcHV0IHRhYmxlIGxhYmVsIGVsZW1lbnRcbiAgZWxzZVxuICAgIHRhYmxlLmhpZGRlbl9tZXRocyA8LSAobGFiZWwsIGVsZW1lbnQpIDo6IHRhYmxlLmhpZGRlbl9tZXRoc1xuXG5sZXQgZ2V0X21ldGhvZCB0YWJsZSBsYWJlbCA9XG4gIHRyeSBMaXN0LmFzc29jIGxhYmVsIHRhYmxlLmhpZGRlbl9tZXRoc1xuICB3aXRoIE5vdF9mb3VuZCAtPiB0YWJsZS5tZXRob2RzLihsYWJlbClcblxubGV0IHRvX2xpc3QgYXJyID1cbiAgaWYgYXJyID09IG1hZ2ljIDAgdGhlbiBbXSBlbHNlIEFycmF5LnRvX2xpc3QgYXJyXG5cbmxldCBuYXJyb3cgdGFibGUgdmFycyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzID1cbiAgbGV0IHZhcnMgPSB0b19saXN0IHZhcnNcbiAgYW5kIHZpcnRfbWV0aHMgPSB0b19saXN0IHZpcnRfbWV0aHNcbiAgYW5kIGNvbmNyX21ldGhzID0gdG9fbGlzdCBjb25jcl9tZXRocyBpblxuICBsZXQgdmlydF9tZXRoX2xhYnMgPSBMaXN0Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgdmlydF9tZXRocyBpblxuICBsZXQgY29uY3JfbWV0aF9sYWJzID0gTGlzdC5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIGNvbmNyX21ldGhzIGluXG4gIHRhYmxlLnByZXZpb3VzX3N0YXRlcyA8LVxuICAgICAodGFibGUubWV0aG9kc19ieV9uYW1lLCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsLCB0YWJsZS5oaWRkZW5fbWV0aHMsXG4gICAgICB0YWJsZS52YXJzLCB2aXJ0X21ldGhfbGFicywgdmFycylcbiAgICAgOjogdGFibGUucHJldmlvdXNfc3RhdGVzO1xuICB0YWJsZS52YXJzIDwtXG4gICAgVmFycy5mb2xkXG4gICAgICAoZnVuIGxhYiBpbmZvIHR2YXJzIC0+XG4gICAgICAgIGlmIExpc3QubWVtIGxhYiB2YXJzIHRoZW4gVmFycy5hZGQgbGFiIGluZm8gdHZhcnMgZWxzZSB0dmFycylcbiAgICAgIHRhYmxlLnZhcnMgVmFycy5lbXB0eTtcbiAgbGV0IGJ5X25hbWUgPSByZWYgTWV0aHMuZW1wdHkgaW5cbiAgbGV0IGJ5X2xhYmVsID0gcmVmIExhYnMuZW1wdHkgaW5cbiAgTGlzdC5pdGVyMlxuICAgIChmdW4gbWV0IGxhYmVsIC0+XG4gICAgICAgYnlfbmFtZSA6PSBNZXRocy5hZGQgbWV0IGxhYmVsICFieV9uYW1lO1xuICAgICAgIGJ5X2xhYmVsIDo9XG4gICAgICAgICAgTGFicy5hZGQgbGFiZWxcbiAgICAgICAgICAgICh0cnkgTGFicy5maW5kIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgd2l0aCBOb3RfZm91bmQgLT4gdHJ1ZSlcbiAgICAgICAgICAgICFieV9sYWJlbClcbiAgICBjb25jcl9tZXRocyBjb25jcl9tZXRoX2xhYnM7XG4gIExpc3QuaXRlcjJcbiAgICAoZnVuIG1ldCBsYWJlbCAtPlxuICAgICAgIGJ5X25hbWUgOj0gTWV0aHMuYWRkIG1ldCBsYWJlbCAhYnlfbmFtZTtcbiAgICAgICBieV9sYWJlbCA6PSBMYWJzLmFkZCBsYWJlbCBmYWxzZSAhYnlfbGFiZWwpXG4gICAgdmlydF9tZXRocyB2aXJ0X21ldGhfbGFicztcbiAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtICFieV9uYW1lO1xuICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtICFieV9sYWJlbDtcbiAgdGFibGUuaGlkZGVuX21ldGhzIDwtXG4gICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgIChmdW4gKChsYWIsIF8pIGFzIG1ldCkgaG0gLT5cbiAgICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmlydF9tZXRoX2xhYnMgdGhlbiBobSBlbHNlIG1ldDo6aG0pXG4gICAgICAgdGFibGUuaGlkZGVuX21ldGhzXG4gICAgICAgW11cblxubGV0IHdpZGVuIHRhYmxlID1cbiAgbGV0IChieV9uYW1lLCBieV9sYWJlbCwgc2F2ZWRfaGlkZGVuX21ldGhzLCBzYXZlZF92YXJzLCB2aXJ0X21ldGhzLCB2YXJzKSA9XG4gICAgTGlzdC5oZCB0YWJsZS5wcmV2aW91c19zdGF0ZXNcbiAgaW5cbiAgdGFibGUucHJldmlvdXNfc3RhdGVzIDwtIExpc3QudGwgdGFibGUucHJldmlvdXNfc3RhdGVzO1xuICB0YWJsZS52YXJzIDwtXG4gICAgIExpc3QuZm9sZF9sZWZ0XG4gICAgICAgKGZ1biBzIHYgLT4gVmFycy5hZGQgdiAoVmFycy5maW5kIHYgdGFibGUudmFycykgcylcbiAgICAgICBzYXZlZF92YXJzIHZhcnM7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSBieV9uYW1lO1xuICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIGJ5X2xhYmVsO1xuICB0YWJsZS5oaWRkZW5fbWV0aHMgPC1cbiAgICAgTGlzdC5mb2xkX3JpZ2h0XG4gICAgICAgKGZ1biAoKGxhYiwgXykgYXMgbWV0KSBobSAtPlxuICAgICAgICAgIGlmIExpc3QubWVtIGxhYiB2aXJ0X21ldGhzIHRoZW4gaG0gZWxzZSBtZXQ6OmhtKVxuICAgICAgIHRhYmxlLmhpZGRlbl9tZXRoc1xuICAgICAgIHNhdmVkX2hpZGRlbl9tZXRoc1xuXG5sZXQgbmV3X3Nsb3QgdGFibGUgPVxuICBsZXQgaW5kZXggPSB0YWJsZS5zaXplIGluXG4gIHRhYmxlLnNpemUgPC0gaW5kZXggKyAxO1xuICBpbmRleFxuXG5sZXQgbmV3X3ZhcmlhYmxlIHRhYmxlIG5hbWUgPVxuICB0cnkgVmFycy5maW5kIG5hbWUgdGFibGUudmFyc1xuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGxldCBpbmRleCA9IG5ld19zbG90IHRhYmxlIGluXG4gICAgaWYgbmFtZSA8PiBcIlwiIHRoZW4gdGFibGUudmFycyA8LSBWYXJzLmFkZCBuYW1lIGluZGV4IHRhYmxlLnZhcnM7XG4gICAgaW5kZXhcblxubGV0IHRvX2FycmF5IGFyciA9XG4gIGlmIGFyciA9IE9iai5tYWdpYyAwIHRoZW4gW3x8XSBlbHNlIGFyclxuXG5sZXQgbmV3X21ldGhvZHNfdmFyaWFibGVzIHRhYmxlIG1ldGhzIHZhbHMgPVxuICBsZXQgbWV0aHMgPSB0b19hcnJheSBtZXRocyBpblxuICBsZXQgbm1ldGhzID0gQXJyYXkubGVuZ3RoIG1ldGhzIGFuZCBudmFscyA9IEFycmF5Lmxlbmd0aCB2YWxzIGluXG4gIGxldCByZXMgPSBBcnJheS5tYWtlIChubWV0aHMgKyBudmFscykgMCBpblxuICBmb3IgaSA9IDAgdG8gbm1ldGhzIC0gMSBkb1xuICAgIHJlcy4oaSkgPC0gZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSBtZXRocy4oaSlcbiAgZG9uZTtcbiAgZm9yIGkgPSAwIHRvIG52YWxzIC0gMSBkb1xuICAgIHJlcy4oaStubWV0aHMpIDwtIG5ld192YXJpYWJsZSB0YWJsZSB2YWxzLihpKVxuICBkb25lO1xuICByZXNcblxubGV0IGdldF92YXJpYWJsZSB0YWJsZSBuYW1lID1cbiAgdHJ5IFZhcnMuZmluZCBuYW1lIHRhYmxlLnZhcnMgd2l0aCBOb3RfZm91bmQgLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBnZXRfdmFyaWFibGVzIHRhYmxlIG5hbWVzID1cbiAgQXJyYXkubWFwIChnZXRfdmFyaWFibGUgdGFibGUpIG5hbWVzXG5cbmxldCBhZGRfaW5pdGlhbGl6ZXIgdGFibGUgZiA9XG4gIHRhYmxlLmluaXRpYWxpemVycyA8LSBmOjp0YWJsZS5pbml0aWFsaXplcnNcblxuKCpcbm1vZHVsZSBLZXlzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHRhZyBhcnJheSBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxubGV0IGtleV9tYXAgPSByZWYgS2V5cy5lbXB0eVxubGV0IGdldF9rZXkgdGFncyA6IGl0ZW0gPVxuICB0cnkgbWFnaWMgKEtleXMuZmluZCB0YWdzICFrZXlfbWFwIDogdGFnIGFycmF5KVxuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGtleV9tYXAgOj0gS2V5cy5hZGQgdGFncyB0YWdzICFrZXlfbWFwO1xuICAgIG1hZ2ljIHRhZ3NcbiopXG5cbmxldCBjcmVhdGVfdGFibGUgcHVibGljX21ldGhvZHMgPVxuICBpZiBwdWJsaWNfbWV0aG9kcyA9PSBtYWdpYyAwIHRoZW4gbmV3X3RhYmxlIFt8fF0gZWxzZVxuICAoKiBbcHVibGljX21ldGhvZHNdIG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyIGZvciBieXRlY29kZSAqKVxuICBsZXQgdGFncyA9IEFycmF5Lm1hcCBwdWJsaWNfbWV0aG9kX2xhYmVsIHB1YmxpY19tZXRob2RzIGluXG4gIGxldCB0YWJsZSA9IG5ld190YWJsZSB0YWdzIGluXG4gIEFycmF5Lml0ZXJpXG4gICAgKGZ1biBpIG1ldCAtPlxuICAgICAgbGV0IGxhYiA9IGkqMisyIGluXG4gICAgICB0YWJsZS5tZXRob2RzX2J5X25hbWUgIDwtIE1ldGhzLmFkZCBtZXQgbGFiIHRhYmxlLm1ldGhvZHNfYnlfbmFtZTtcbiAgICAgIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gTGFicy5hZGQgbGFiIHRydWUgdGFibGUubWV0aG9kc19ieV9sYWJlbClcbiAgICBwdWJsaWNfbWV0aG9kcztcbiAgdGFibGVcblxubGV0IGluaXRfY2xhc3MgdGFibGUgPVxuICBpbnN0X3Zhcl9jb3VudCA6PSAhaW5zdF92YXJfY291bnQgKyB0YWJsZS5zaXplIC0gMTtcbiAgdGFibGUuaW5pdGlhbGl6ZXJzIDwtIExpc3QucmV2IHRhYmxlLmluaXRpYWxpemVycztcbiAgcmVzaXplIHRhYmxlICgzICsgbWFnaWMgdGFibGUubWV0aG9kcy4oMSkgKiAxNiAvIFN5cy53b3JkX3NpemUpXG5cbmxldCBpbmhlcml0cyBjbGEgdmFscyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzIChfLCBzdXBlciwgXywgZW52KSB0b3AgPVxuICBuYXJyb3cgY2xhIHZhbHMgdmlydF9tZXRocyBjb25jcl9tZXRocztcbiAgbGV0IGluaXQgPVxuICAgIGlmIHRvcCB0aGVuIHN1cGVyIGNsYSBlbnYgZWxzZSBPYmoucmVwciAoc3VwZXIgY2xhKSBpblxuICB3aWRlbiBjbGE7XG4gIEFycmF5LmNvbmNhdFxuICAgIFtbfCByZXByIGluaXQgfF07XG4gICAgIG1hZ2ljIChBcnJheS5tYXAgKGdldF92YXJpYWJsZSBjbGEpICh0b19hcnJheSB2YWxzKSA6IGludCBhcnJheSk7XG4gICAgIEFycmF5Lm1hcFxuICAgICAgIChmdW4gbm0gLT4gcmVwciAoZ2V0X21ldGhvZCBjbGEgKGdldF9tZXRob2RfbGFiZWwgY2xhIG5tKSA6IGNsb3N1cmUpKVxuICAgICAgICh0b19hcnJheSBjb25jcl9tZXRocykgXVxuXG5sZXQgbWFrZV9jbGFzcyBwdWJfbWV0aHMgY2xhc3NfaW5pdCA9XG4gIGxldCB0YWJsZSA9IGNyZWF0ZV90YWJsZSBwdWJfbWV0aHMgaW5cbiAgbGV0IGVudl9pbml0ID0gY2xhc3NfaW5pdCB0YWJsZSBpblxuICBpbml0X2NsYXNzIHRhYmxlO1xuICAoZW52X2luaXQgKE9iai5yZXByIDApLCBjbGFzc19pbml0LCBlbnZfaW5pdCwgT2JqLnJlcHIgMClcblxudHlwZSBpbml0X3RhYmxlID0geyBtdXRhYmxlIGVudl9pbml0OiB0OyBtdXRhYmxlIGNsYXNzX2luaXQ6IHRhYmxlIC0+IHQgfVxuW0BAd2FybmluZyBcIi11bnVzZWQtZmllbGRcIl1cblxubGV0IG1ha2VfY2xhc3Nfc3RvcmUgcHViX21ldGhzIGNsYXNzX2luaXQgaW5pdF90YWJsZSA9XG4gIGxldCB0YWJsZSA9IGNyZWF0ZV90YWJsZSBwdWJfbWV0aHMgaW5cbiAgbGV0IGVudl9pbml0ID0gY2xhc3NfaW5pdCB0YWJsZSBpblxuICBpbml0X2NsYXNzIHRhYmxlO1xuICBpbml0X3RhYmxlLmNsYXNzX2luaXQgPC0gY2xhc3NfaW5pdDtcbiAgaW5pdF90YWJsZS5lbnZfaW5pdCA8LSBlbnZfaW5pdFxuXG5sZXQgZHVtbXlfY2xhc3MgbG9jID1cbiAgbGV0IHVuZGVmID0gZnVuIF8gLT4gcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYykgaW5cbiAgKE9iai5tYWdpYyB1bmRlZiwgdW5kZWYsIHVuZGVmLCBPYmoucmVwciAwKVxuXG4oKioqKiBPYmplY3RzICoqKiopXG5cbmxldCBjcmVhdGVfb2JqZWN0IHRhYmxlID1cbiAgKCogWFhYIEFwcGVsIGRlIFtvYmpfYmxvY2tdIHwgQ2FsbCB0byBbb2JqX2Jsb2NrXSAgKilcbiAgbGV0IG9iaiA9IE9iai5uZXdfYmxvY2sgT2JqLm9iamVjdF90YWcgdGFibGUuc2l6ZSBpblxuICAoKiBYWFggQXBwZWwgZGUgW2NhbWxfbW9kaWZ5XSB8IENhbGwgdG8gW2NhbWxfbW9kaWZ5XSAqKVxuICBPYmouc2V0X2ZpZWxkIG9iaiAwIChPYmoucmVwciB0YWJsZS5tZXRob2RzKTtcbiAgT2JqLm9iaiAoc2V0X2lkIG9iailcblxubGV0IGNyZWF0ZV9vYmplY3Rfb3B0IG9ial8wIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqXzAgZWxzZSBiZWdpblxuICAgICgqIFhYWCBBcHBlbCBkZSBbb2JqX2Jsb2NrXSB8IENhbGwgdG8gW29ial9ibG9ja10gICopXG4gICAgbGV0IG9iaiA9IE9iai5uZXdfYmxvY2sgT2JqLm9iamVjdF90YWcgdGFibGUuc2l6ZSBpblxuICAgICgqIFhYWCBBcHBlbCBkZSBbY2FtbF9tb2RpZnldIHwgQ2FsbCB0byBbY2FtbF9tb2RpZnldICopXG4gICAgT2JqLnNldF9maWVsZCBvYmogMCAoT2JqLnJlcHIgdGFibGUubWV0aG9kcyk7XG4gICAgT2JqLm9iaiAoc2V0X2lkIG9iailcbiAgZW5kXG5cbmxldCByZWMgaXRlcl9mIG9iaiA9XG4gIGZ1bmN0aW9uXG4gICAgW10gICAtPiAoKVxuICB8IGY6OmwgLT4gZiBvYmo7IGl0ZXJfZiBvYmogbFxuXG5sZXQgcnVuX2luaXRpYWxpemVycyBvYmogdGFibGUgPVxuICBsZXQgaW5pdHMgPSB0YWJsZS5pbml0aWFsaXplcnMgaW5cbiAgaWYgaW5pdHMgPD4gW10gdGhlblxuICAgIGl0ZXJfZiBvYmogaW5pdHNcblxubGV0IHJ1bl9pbml0aWFsaXplcnNfb3B0IG9ial8wIG9iaiB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9iaiBlbHNlIGJlZ2luXG4gICAgbGV0IGluaXRzID0gdGFibGUuaW5pdGlhbGl6ZXJzIGluXG4gICAgaWYgaW5pdHMgPD4gW10gdGhlbiBpdGVyX2Ygb2JqIGluaXRzO1xuICAgIG9ialxuICBlbmRcblxubGV0IGNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaXplcnMgb2JqXzAgdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmpfMCBlbHNlIGJlZ2luXG4gICAgbGV0IG9iaiA9IGNyZWF0ZV9vYmplY3QgdGFibGUgaW5cbiAgICBydW5faW5pdGlhbGl6ZXJzIG9iaiB0YWJsZTtcbiAgICBvYmpcbiAgZW5kXG5cbigqIEVxdWl2YWxlbnQgcHJpbWl0aXZlIGJlbG93XG5sZXQgc2VuZHNlbGYgb2JqIGxhYiA9XG4gIChtYWdpYyBvYmogOiAob2JqIC0+IHQpIGFycmF5IGFycmF5KS4oMCkuKGxhYikgb2JqXG4qKVxuZXh0ZXJuYWwgc2VuZCA6IG9iaiAtPiB0YWcgLT4gJ2EgPSBcIiVzZW5kXCJcbmV4dGVybmFsIHNlbmRjYWNoZSA6IG9iaiAtPiB0YWcgLT4gdCAtPiBpbnQgLT4gJ2EgPSBcIiVzZW5kY2FjaGVcIlxuZXh0ZXJuYWwgc2VuZHNlbGYgOiBvYmogLT4gbGFiZWwgLT4gJ2EgPSBcIiVzZW5kc2VsZlwiXG5leHRlcm5hbCBnZXRfcHVibGljX21ldGhvZCA6IG9iaiAtPiB0YWcgLT4gY2xvc3VyZVxuICAgID0gXCJjYW1sX2dldF9wdWJsaWNfbWV0aG9kXCIgW0BAbm9hbGxvY11cblxuKCoqKiogdGFibGUgY29sbGVjdGlvbiBhY2Nlc3MgKioqKilcblxudHlwZSB0YWJsZXMgPVxuICB8IEVtcHR5XG4gIHwgQ29ucyBvZiB7a2V5IDogY2xvc3VyZTsgbXV0YWJsZSBkYXRhOiB0YWJsZXM7IG11dGFibGUgbmV4dDogdGFibGVzfVxuXG5sZXQgc2V0X2RhdGEgdGFibGVzIHYgPSBtYXRjaCB0YWJsZXMgd2l0aFxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5kYXRhIDwtIHZcbmxldCBzZXRfbmV4dCB0YWJsZXMgdiA9IG1hdGNoIHRhYmxlcyB3aXRoXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLm5leHQgPC0gdlxubGV0IGdldF9rZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5rZXlcbmxldCBnZXRfZGF0YSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmRhdGFcbmxldCBnZXRfbmV4dCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLm5leHRcblxubGV0IGJ1aWxkX3BhdGggbiBrZXlzIHRhYmxlcyA9XG4gIGxldCByZXMgPSBDb25zIHtrZXkgPSBPYmoubWFnaWMgMDsgZGF0YSA9IEVtcHR5OyBuZXh0ID0gRW1wdHl9IGluXG4gIGxldCByID0gcmVmIHJlcyBpblxuICBmb3IgaSA9IDAgdG8gbiBkb1xuICAgIHIgOj0gQ29ucyB7a2V5ID0ga2V5cy4oaSk7IGRhdGEgPSAhcjsgbmV4dCA9IEVtcHR5fVxuICBkb25lO1xuICBzZXRfZGF0YSB0YWJsZXMgIXI7XG4gIHJlc1xuXG5sZXQgcmVjIGxvb2t1cF9rZXlzIGkga2V5cyB0YWJsZXMgPVxuICBpZiBpIDwgMCB0aGVuIHRhYmxlcyBlbHNlXG4gIGxldCBrZXkgPSBrZXlzLihpKSBpblxuICBsZXQgcmVjIGxvb2t1cF9rZXkgKHRhYmxlczp0YWJsZXMpID1cbiAgICBpZiBnZXRfa2V5IHRhYmxlcyA9PSBrZXkgdGhlblxuICAgICAgbWF0Y2ggZ2V0X2RhdGEgdGFibGVzIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gICAgICB8IENvbnMgXyBhcyB0YWJsZXNfZGF0YSAtPlxuICAgICAgICAgIGxvb2t1cF9rZXlzIChpLTEpIGtleXMgdGFibGVzX2RhdGFcbiAgICBlbHNlXG4gICAgICBtYXRjaCBnZXRfbmV4dCB0YWJsZXMgd2l0aFxuICAgICAgfCBDb25zIF8gYXMgbmV4dCAtPiBsb29rdXBfa2V5IG5leHRcbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBsZXQgbmV4dCA6IHRhYmxlcyA9IENvbnMge2tleTsgZGF0YSA9IEVtcHR5OyBuZXh0ID0gRW1wdHl9IGluXG4gICAgICAgICAgc2V0X25leHQgdGFibGVzIG5leHQ7XG4gICAgICAgICAgYnVpbGRfcGF0aCAoaS0xKSBrZXlzIG5leHRcbiAgaW5cbiAgbG9va3VwX2tleSB0YWJsZXNcblxubGV0IGxvb2t1cF90YWJsZXMgcm9vdCBrZXlzID1cbiAgbWF0Y2ggZ2V0X2RhdGEgcm9vdCB3aXRoXG4gIHwgQ29ucyBfIGFzIHJvb3RfZGF0YSAtPlxuICAgIGxvb2t1cF9rZXlzIChBcnJheS5sZW5ndGgga2V5cyAtIDEpIGtleXMgcm9vdF9kYXRhXG4gIHwgRW1wdHkgLT5cbiAgICBidWlsZF9wYXRoIChBcnJheS5sZW5ndGgga2V5cyAtIDEpIGtleXMgcm9vdFxuXG4oKioqKiBidWlsdGluIG1ldGhvZHMgKioqKilcblxubGV0IGdldF9jb25zdCB4ID0gcmV0IChmdW4gX29iaiAtPiB4KVxubGV0IGdldF92YXIgbiAgID0gcmV0IChmdW4gb2JqIC0+IEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pXG5sZXQgZ2V0X2VudiBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKVxubGV0IGdldF9tZXRoIG4gID0gcmV0IChmdW4gb2JqIC0+IHNlbmRzZWxmIG9iaiBuKVxubGV0IHNldF92YXIgbiAgID0gcmV0IChmdW4gb2JqIHggLT4gQXJyYXkudW5zYWZlX3NldCBvYmogbiB4KVxubGV0IGFwcF9jb25zdCBmIHggPSByZXQgKGZ1biBfb2JqIC0+IGYgeClcbmxldCBhcHBfdmFyIGYgbiAgID0gcmV0IChmdW4gb2JqIC0+IGYgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pKVxubGV0IGFwcF9lbnYgZiBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSlcbmxldCBhcHBfbWV0aCBmIG4gID0gcmV0IChmdW4gb2JqIC0+IGYgKHNlbmRzZWxmIG9iaiBuKSlcbmxldCBhcHBfY29uc3RfY29uc3QgZiB4IHkgPSByZXQgKGZ1biBfb2JqIC0+IGYgeCB5KVxubGV0IGFwcF9jb25zdF92YXIgZiB4IG4gICA9IHJldCAoZnVuIG9iaiAtPiBmIHggKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pKVxubGV0IGFwcF9jb25zdF9tZXRoIGYgeCBuID0gcmV0IChmdW4gb2JqIC0+IGYgeCAoc2VuZHNlbGYgb2JqIG4pKVxubGV0IGFwcF92YXJfY29uc3QgZiBuIHggPSByZXQgKGZ1biBvYmogLT4gZiAoQXJyYXkudW5zYWZlX2dldCBvYmogbikgeClcbmxldCBhcHBfbWV0aF9jb25zdCBmIG4geCA9IHJldCAoZnVuIG9iaiAtPiBmIChzZW5kc2VsZiBvYmogbikgeClcbmxldCBhcHBfY29uc3RfZW52IGYgeCBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIHggKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pKVxubGV0IGFwcF9lbnZfY29uc3QgZiBlIG4geCA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pIHgpXG5sZXQgbWV0aF9hcHBfY29uc3QgbiB4ID0gcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgeClcbmxldCBtZXRoX2FwcF92YXIgbiBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG0pKVxubGV0IG1ldGhfYXBwX2VudiBuIGUgbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pXG4gICAgICAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbSkpXG5sZXQgbWV0aF9hcHBfbWV0aCBuIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSAoc2VuZHNlbGYgb2JqIG0pKVxubGV0IHNlbmRfY29uc3QgbSB4IGMgPVxuICByZXQgKGZ1biBvYmogLT4gc2VuZGNhY2hlIHggbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX3ZhciBtIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZSAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSA6IG9iaikgbVxuICAgICAgKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF9lbnYgbSBlIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZVxuICAgICAgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldFxuICAgICAgICAgICAgICAgICAgICAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikgOiBvYmopXG4gICAgICBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfbWV0aCBtIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZSAoc2VuZHNlbGYgb2JqIG4pIG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgbmV3X2NhY2hlIHRhYmxlID1cbiAgbGV0IG4gPSBuZXdfbWV0aG9kIHRhYmxlIGluXG4gIGxldCBuID1cbiAgICBpZiBuIG1vZCAyID0gMCB8fCBuID4gMiArIG1hZ2ljIHRhYmxlLm1ldGhvZHMuKDEpICogMTYgLyBTeXMud29yZF9zaXplXG4gICAgdGhlbiBuIGVsc2UgbmV3X21ldGhvZCB0YWJsZVxuICBpblxuICB0YWJsZS5tZXRob2RzLihuKSA8LSBPYmoubWFnaWMgMDtcbiAgblxuXG50eXBlIGltcGwgPVxuICAgIEdldENvbnN0XG4gIHwgR2V0VmFyXG4gIHwgR2V0RW52XG4gIHwgR2V0TWV0aFxuICB8IFNldFZhclxuICB8IEFwcENvbnN0XG4gIHwgQXBwVmFyXG4gIHwgQXBwRW52XG4gIHwgQXBwTWV0aFxuICB8IEFwcENvbnN0Q29uc3RcbiAgfCBBcHBDb25zdFZhclxuICB8IEFwcENvbnN0RW52XG4gIHwgQXBwQ29uc3RNZXRoXG4gIHwgQXBwVmFyQ29uc3RcbiAgfCBBcHBFbnZDb25zdFxuICB8IEFwcE1ldGhDb25zdFxuICB8IE1ldGhBcHBDb25zdFxuICB8IE1ldGhBcHBWYXJcbiAgfCBNZXRoQXBwRW52XG4gIHwgTWV0aEFwcE1ldGhcbiAgfCBTZW5kQ29uc3RcbiAgfCBTZW5kVmFyXG4gIHwgU2VuZEVudlxuICB8IFNlbmRNZXRoXG4gIHwgQ2xvc3VyZSBvZiBjbG9zdXJlXG5cbmxldCBtZXRob2RfaW1wbCB0YWJsZSBpIGFyciA9XG4gIGxldCBuZXh0ICgpID0gaW5jciBpOyBtYWdpYyBhcnIuKCFpKSBpblxuICBtYXRjaCBuZXh0KCkgd2l0aFxuICAgIEdldENvbnN0IC0+IGxldCB4IDogdCA9IG5leHQoKSBpbiBnZXRfY29uc3QgeFxuICB8IEdldFZhciAgIC0+IGxldCBuID0gbmV4dCgpIGluIGdldF92YXIgblxuICB8IEdldEVudiAgIC0+IGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGdldF9lbnYgZSBuXG4gIHwgR2V0TWV0aCAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X21ldGggblxuICB8IFNldFZhciAgIC0+IGxldCBuID0gbmV4dCgpIGluIHNldF92YXIgblxuICB8IEFwcENvbnN0IC0+IGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGFwcF9jb25zdCBmIHhcbiAgfCBBcHBWYXIgICAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gYXBwX3ZhciBmIG5cbiAgfCBBcHBFbnYgICAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gIGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfZW52IGYgZSBuXG4gIHwgQXBwTWV0aCAgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIGFwcF9tZXRoIGYgblxuICB8IEFwcENvbnN0Q29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCB5ID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfY29uc3QgZiB4IHlcbiAgfCBBcHBDb25zdFZhciAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF92YXIgZiB4IG5cbiAgfCBBcHBDb25zdEVudiAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0ICgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfZW52IGYgeCBlIG5cbiAgfCBBcHBDb25zdE1ldGggLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfbWV0aCBmIHggblxuICB8IEFwcFZhckNvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX3Zhcl9jb25zdCBmIG4geFxuICB8IEFwcEVudkNvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQgKCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9lbnZfY29uc3QgZiBlIG4geFxuICB8IEFwcE1ldGhDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9tZXRoX2NvbnN0IGYgbiB4XG4gIHwgTWV0aEFwcENvbnN0IC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBtZXRoX2FwcF9jb25zdCBuIHhcbiAgfCBNZXRoQXBwVmFyIC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpbiBtZXRoX2FwcF92YXIgbiBtXG4gIHwgTWV0aEFwcEVudiAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW5cbiAgICAgIG1ldGhfYXBwX2VudiBuIGUgbVxuICB8IE1ldGhBcHBNZXRoIC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpbiBtZXRoX2FwcF9tZXRoIG4gbVxuICB8IFNlbmRDb25zdCAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gc2VuZF9jb25zdCBtIHggKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kVmFyIC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gc2VuZF92YXIgbSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZEVudiAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIHNlbmRfZW52IG0gZSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZE1ldGggLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBzZW5kX21ldGggbSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgQ2xvc3VyZSBfIGFzIGNsbyAtPiBtYWdpYyBjbG9cblxubGV0IHNldF9tZXRob2RzIHRhYmxlIG1ldGhvZHMgPVxuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIG1ldGhvZHMgaW4gbGV0IGkgPSByZWYgMCBpblxuICB3aGlsZSAhaSA8IGxlbiBkb1xuICAgIGxldCBsYWJlbCA9IG1ldGhvZHMuKCFpKSBpbiBsZXQgY2xvID0gbWV0aG9kX2ltcGwgdGFibGUgaSBtZXRob2RzIGluXG4gICAgc2V0X21ldGhvZCB0YWJsZSBsYWJlbCBjbG87XG4gICAgaW5jciBpXG4gIGRvbmVcblxuKCoqKiogU3RhdGlzdGljcyAqKioqKVxuXG50eXBlIHN0YXRzID1cbiAgeyBjbGFzc2VzOiBpbnQ7IG1ldGhvZHM6IGludDsgaW5zdF92YXJzOiBpbnQ7IH1cblxubGV0IHN0YXRzICgpID1cbiAgeyBjbGFzc2VzID0gIXRhYmxlX2NvdW50O1xuICAgIG1ldGhvZHMgPSAhbWV0aG9kX2NvdW50OyBpbnN0X3ZhcnMgPSAhaW5zdF92YXJfY291bnQ7IH1cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBzaGFwZSA9XG4gIHwgRnVuY3Rpb25cbiAgfCBMYXp5XG4gIHwgQ2xhc3NcbiAgfCBNb2R1bGUgb2Ygc2hhcGUgYXJyYXlcbiAgfCBWYWx1ZSBvZiBPYmoudFxuXG5sZXQgcmVjIGluaXRfbW9kX2ZpZWxkIG1vZHUgaSBsb2Mgc2hhcGUgPVxuICBsZXQgaW5pdCA9XG4gICAgbWF0Y2ggc2hhcGUgd2l0aFxuICAgIHwgRnVuY3Rpb24gLT5cbiAgICAgICBsZXQgcmVjIGZuICh4IDogJ2EpID1cbiAgICAgICAgIGxldCBmbicgOiAnYSAtPiAnYiA9IE9iai5vYmogKE9iai5maWVsZCBtb2R1IGkpIGluXG4gICAgICAgICBpZiBmbiA9PSBmbicgdGhlblxuICAgICAgICAgICByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKVxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBmbicgeCBpblxuICAgICAgIE9iai5yZXByIGZuXG4gICAgfCBMYXp5IC0+XG4gICAgICAgbGV0IHJlYyBsID1cbiAgICAgICAgIGxhenkgKFxuICAgICAgICAgICBsZXQgbCcgPSBPYmoub2JqIChPYmouZmllbGQgbW9kdSBpKSBpblxuICAgICAgICAgICBpZiBsID09IGwnIHRoZW5cbiAgICAgICAgICAgICByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKVxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgTGF6eS5mb3JjZSBsJykgaW5cbiAgICAgICBPYmoucmVwciBsXG4gICAgfCBDbGFzcyAtPlxuICAgICAgIE9iai5yZXByIChDYW1saW50ZXJuYWxPTy5kdW1teV9jbGFzcyBsb2MpXG4gICAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgICBPYmoucmVwciAoaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzKVxuICAgIHwgVmFsdWUgdiAtPiB2XG4gIGluXG4gIE9iai5zZXRfZmllbGQgbW9kdSBpIGluaXRcblxuYW5kIGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcyA9XG4gIGxldCBsZW5ndGggPSBBcnJheS5sZW5ndGggY29tcHMgaW5cbiAgbGV0IG1vZHUgPSBPYmoubmV3X2Jsb2NrIDAgbGVuZ3RoIGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggLSAxIGRvXG4gICAgaW5pdF9tb2RfZmllbGQgbW9kdSBpIGxvYyBjb21wcy4oaSlcbiAgZG9uZTtcbiAgbW9kdVxuXG5sZXQgaW5pdF9tb2QgbG9jIHNoYXBlID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICBPYmoucmVwciAoaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzKVxuICB8IF8gLT4gZmFpbHdpdGggXCJDYW1saW50ZXJuYWxNb2QuaW5pdF9tb2Q6IG5vdCBhIG1vZHVsZVwiXG5cbmxldCByZWMgdXBkYXRlX21vZF9maWVsZCBtb2R1IGkgc2hhcGUgbiA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBGdW5jdGlvbiB8IExhenkgLT5cbiAgICAgT2JqLnNldF9maWVsZCBtb2R1IGkgblxuICB8IFZhbHVlIF8gLT5cbiAgICAgKCkgKCogdGhlIHZhbHVlIGlzIGFscmVhZHkgdGhlcmUgKilcbiAgfCBDbGFzcyAtPlxuICAgICBhc3NlcnQgKE9iai50YWcgbiA9IDAgJiYgT2JqLnNpemUgbiA9IDQpO1xuICAgICBsZXQgY2wgPSBPYmouZmllbGQgbW9kdSBpIGluXG4gICAgIGZvciBqID0gMCB0byAzIGRvXG4gICAgICAgT2JqLnNldF9maWVsZCBjbCBqIChPYmouZmllbGQgbiBqKVxuICAgICBkb25lXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgKE9iai5maWVsZCBtb2R1IGkpIG5cblxuYW5kIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgbyBuID1cbiAgYXNzZXJ0IChPYmoudGFnIG4gPSAwICYmIE9iai5zaXplIG4gPj0gQXJyYXkubGVuZ3RoIGNvbXBzKTtcbiAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBjb21wcyAtIDEgZG9cbiAgICB1cGRhdGVfbW9kX2ZpZWxkIG8gaSBjb21wcy4oaSkgKE9iai5maWVsZCBuIGkpXG4gIGRvbmVcblxubGV0IHVwZGF0ZV9tb2Qgc2hhcGUgbyBuID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIG8gblxuICB8IF8gLT4gZmFpbHdpdGggXCJDYW1saW50ZXJuYWxNb2QudXBkYXRlX21vZDogbm90IGEgbW9kdWxlXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXSAoKiBpZ25vcmUgZGVwcmVjYXRpb24gd2FybmluZyBhYm91dCBtb2R1bGUgU3RyZWFtICopXG5cbnR5cGUgdG9rZW4gPVxuICAgIEt3ZCBvZiBzdHJpbmdcbiAgfCBJZGVudCBvZiBzdHJpbmdcbiAgfCBJbnQgb2YgaW50XG4gIHwgRmxvYXQgb2YgZmxvYXRcbiAgfCBTdHJpbmcgb2Ygc3RyaW5nXG4gIHwgQ2hhciBvZiBjaGFyXG5cbigqIFRoZSBzdHJpbmcgYnVmZmVyaW5nIG1hY2hpbmVyeSAqKVxuXG5sZXQgaW5pdGlhbF9idWZmZXIgPSBCeXRlcy5jcmVhdGUgMzJcblxubGV0IGJ1ZmZlciA9IHJlZiBpbml0aWFsX2J1ZmZlclxubGV0IGJ1ZnBvcyA9IHJlZiAwXG5cbmxldCByZXNldF9idWZmZXIgKCkgPSBidWZmZXIgOj0gaW5pdGlhbF9idWZmZXI7IGJ1ZnBvcyA6PSAwXG5cbmxldCBzdG9yZSBjID1cbiAgaWYgIWJ1ZnBvcyA+PSBCeXRlcy5sZW5ndGggIWJ1ZmZlciB0aGVuIGJlZ2luXG4gICAgbGV0IG5ld2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAoMiAqICFidWZwb3MpIGluXG4gICAgQnl0ZXMuYmxpdCAhYnVmZmVyIDAgbmV3YnVmZmVyIDAgIWJ1ZnBvcztcbiAgICBidWZmZXIgOj0gbmV3YnVmZmVyXG4gIGVuZDtcbiAgQnl0ZXMuc2V0ICFidWZmZXIgIWJ1ZnBvcyBjO1xuICBpbmNyIGJ1ZnBvc1xuXG5sZXQgZ2V0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuc3ViX3N0cmluZyAhYnVmZmVyIDAgIWJ1ZnBvcyBpbiBidWZmZXIgOj0gaW5pdGlhbF9idWZmZXI7IHNcblxuKCogVGhlIGxleGVyICopXG5cbmxldCBtYWtlX2xleGVyIGtleXdvcmRzID1cbiAgbGV0IGt3ZF90YWJsZSA9IEhhc2h0YmwuY3JlYXRlIDE3IGluXG4gIExpc3QuaXRlciAoZnVuIHMgLT4gSGFzaHRibC5hZGQga3dkX3RhYmxlIHMgKEt3ZCBzKSkga2V5d29yZHM7XG4gIGxldCBpZGVudF9vcl9rZXl3b3JkIGlkID1cbiAgICB0cnkgSGFzaHRibC5maW5kIGt3ZF90YWJsZSBpZCB3aXRoXG4gICAgICBOb3RfZm91bmQgLT4gSWRlbnQgaWRcbiAgYW5kIGtleXdvcmRfb3JfZXJyb3IgYyA9XG4gICAgbGV0IHMgPSBTdHJpbmcubWFrZSAxIGMgaW5cbiAgICB0cnkgSGFzaHRibC5maW5kIGt3ZF90YWJsZSBzIHdpdGhcbiAgICAgIE5vdF9mb3VuZCAtPiByYWlzZSAoU3RyZWFtLkVycm9yIChcIklsbGVnYWwgY2hhcmFjdGVyIFwiIF4gcykpXG4gIGluXG4gIGxldCByZWMgbmV4dF90b2tlbiAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnICcgfCAnXFwwMTAnIHwgJ1xcMDEzJyB8ICdcXDAwOScgfCAnXFwwMjYnIHwgJ1xcMDEyJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBuZXh0X3Rva2VuIHN0cm1fX1xuICAgIHwgU29tZSAoJ0EnLi4nWicgfCAnYScuLid6JyB8ICdfJyB8ICdcXDE5MicuLidcXDI1NScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IGlkZW50IHNcbiAgICB8IFNvbWVcbiAgICAgICAgKCchJyB8ICclJyB8ICcmJyB8ICckJyB8ICcjJyB8ICcrJyB8ICcvJyB8ICc6JyB8ICc8JyB8ICc9JyB8ICc+JyB8XG4gICAgICAgICAnPycgfCAnQCcgfCAnXFxcXCcgfCAnficgfCAnXicgfCAnfCcgfCAnKicgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IGlkZW50MiBzXG4gICAgfCBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IFNvbWUgJ1xcJycgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgYyA9XG4gICAgICAgICAgdHJ5IGNoYXIgc3RybV9fIHdpdGhcbiAgICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgaW5cbiAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICBTb21lICdcXCcnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgU29tZSAoQ2hhciBjKVxuICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgJ1xcXCInIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBTb21lIChTdHJpbmcgKHN0cmluZyBzKSlcbiAgICB8IFNvbWUgJy0nIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbmVnX251bWJlciBzdHJtX19cbiAgICB8IFNvbWUgJygnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IFNvbWUgKGtleXdvcmRfb3JfZXJyb3IgYylcbiAgICB8IF8gLT4gTm9uZVxuICBhbmQgaWRlbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZVxuICAgICAgICAoJ0EnLi4nWicgfCAnYScuLid6JyB8ICdcXDE5MicuLidcXDI1NScgfCAnMCcuLic5JyB8ICdfJyB8ICdcXCcnIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgaWRlbnQgc1xuICAgIHwgXyAtPiBTb21lIChpZGVudF9vcl9rZXl3b3JkIChnZXRfc3RyaW5nICgpKSlcbiAgYW5kIGlkZW50MiAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lXG4gICAgICAgICgnIScgfCAnJScgfCAnJicgfCAnJCcgfCAnIycgfCAnKycgfCAnLScgfCAnLycgfCAnOicgfCAnPCcgfCAnPScgfFxuICAgICAgICAgJz4nIHwgJz8nIHwgJ0AnIHwgJ1xcXFwnIHwgJ34nIHwgJ14nIHwgJ3wnIHwgJyonIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgaWRlbnQyIHNcbiAgICB8IF8gLT4gU29tZSAoaWRlbnRfb3Jfa2V5d29yZCAoZ2V0X3N0cmluZyAoKSkpXG4gIGFuZCBuZWdfbnVtYmVyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSAnLSc7IHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBfIC0+IGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgJy0nOyBpZGVudDIgc1xuICBhbmQgbnVtYmVyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IFNvbWUgJy4nIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJy4nOyBkZWNpbWFsX3BhcnQgc1xuICAgIHwgU29tZSAoJ2UnIHwgJ0UnKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICdFJzsgZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEludCAoaW50X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgZGVjaW1hbF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZGVjaW1hbF9wYXJ0IHNcbiAgICB8IFNvbWUgKCdlJyB8ICdFJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnRSc7IGV4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBleHBvbmVudF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcrJyB8ICctJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGVuZF9leHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gZW5kX2V4cG9uZW50X3BhcnQgc3RybV9fXG4gIGFuZCBlbmRfZXhwb25lbnRfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGVuZF9leHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoRmxvYXQgKGZsb2F0X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgc3RyaW5nIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ1xcXCInIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgZ2V0X3N0cmluZyAoKVxuICAgIHwgU29tZSAnXFxcXCcgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgYyA9XG4gICAgICAgICAgdHJ5IGVzY2FwZSBzdHJtX18gd2l0aFxuICAgICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBpblxuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBzdHJpbmcgc1xuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgc3RyaW5nIHNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIGNoYXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnXFxcXCcgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBiZWdpbiB0cnkgZXNjYXBlIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIGVzY2FwZSAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICduJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXG4nXG4gICAgfCBTb21lICdyJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXHInXG4gICAgfCBTb21lICd0JyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXHQnXG4gICAgfCBTb21lICgnMCcuLic5JyBhcyBjMSkgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMyKSAtPlxuICAgICAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICAgICAgU29tZSAoJzAnLi4nOScgYXMgYzMpIC0+XG4gICAgICAgICAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICAgICAgICAgIENoYXIuY2hyXG4gICAgICAgICAgICAgICAgICAoKENoYXIuY29kZSBjMSAtIDQ4KSAqIDEwMCArIChDaGFyLmNvZGUgYzIgLSA0OCkgKiAxMCArXG4gICAgICAgICAgICAgICAgICAgICAoQ2hhci5jb2RlIGMzIC0gNDgpKVxuICAgICAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBjb21tZW50IHM7IG5leHRfdG9rZW4gc1xuICAgIHwgXyAtPiBTb21lIChrZXl3b3JkX29yX2Vycm9yICcoJylcbiAgYW5kIGNvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9uZXN0ZWRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfZW5kX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfbmVzdGVkX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBjb21tZW50IHM7IGNvbW1lbnQgc1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX2VuZF9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyknIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgKClcbiAgICB8IFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfZW5kX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBpblxuICBmdW4gaW5wdXQgLT4gU3RyZWFtLmZyb20gKGZ1biBfY291bnQgLT4gbmV4dF90b2tlbiBpbnB1dClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItMzJcIl1cblxubW9kdWxlIHR5cGUgU2VlZGVkUyA9IHNpZ1xuXG4gIHR5cGUga2V5XG4gIHR5cGUgISdhIHRcbiAgdmFsIGNyZWF0ZSA6ID9yYW5kb20gKCp0aHdhcnQgdG9vbHMvc3luY19zdGRsaWJfZG9jcyopIDogYm9vbCAtPiBpbnQgLT4gJ2EgdFxuICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgdmFsIGZpbmRfb3B0IDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlIDogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICB2YWwgc3RhdHMgOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICB2YWwgY2xlYW46ICdhIHQgLT4gdW5pdFxuICB2YWwgc3RhdHNfYWxpdmU6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gICAgKCoqIHNhbWUgYXMgeyFzdGF0c30gYnV0IG9ubHkgY291bnQgdGhlIGFsaXZlIGJpbmRpbmdzICopXG5lbmRcblxubW9kdWxlIHR5cGUgUyA9IHNpZ1xuXG4gIHR5cGUga2V5XG4gIHR5cGUgISdhIHRcbiAgdmFsIGNyZWF0ZSA6IGludCAtPiAnYSB0XG4gIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICB2YWwgZmluZF9vcHQgOiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2UgOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIHZhbCBjbGVhbjogJ2EgdCAtPiB1bml0XG4gIHZhbCBzdGF0c19hbGl2ZTogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgICAoKiogc2FtZSBhcyB7IXN0YXRzfSBidXQgb25seSBjb3VudCB0aGUgYWxpdmUgYmluZGluZ3MgKilcbmVuZFxuXG5tb2R1bGUgR2VuSGFzaFRhYmxlID0gc3RydWN0XG5cbiAgdHlwZSBlcXVhbCA9XG4gIHwgRVRydWUgfCBFRmFsc2VcbiAgfCBFRGVhZCAoKiogdGhlIGdhcmJhZ2UgY29sbGVjdG9yIHJlY2xhaW1lZCB0aGUgZGF0YSAqKVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkKEg6IHNpZ1xuICAgIHR5cGUgdFxuICAgIHR5cGUgJ2EgY29udGFpbmVyXG4gICAgdmFsIGNyZWF0ZTogdCAtPiAnYSAtPiAnYSBjb250YWluZXJcbiAgICB2YWwgaGFzaDogaW50IC0+IHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiAnYSBjb250YWluZXIgLT4gdCAtPiBlcXVhbFxuICAgIHZhbCBnZXRfZGF0YTogJ2EgY29udGFpbmVyIC0+ICdhIG9wdGlvblxuICAgIHZhbCBnZXRfa2V5OiAnYSBjb250YWluZXIgLT4gdCBvcHRpb25cbiAgICB2YWwgc2V0X2tleV9kYXRhOiAnYSBjb250YWluZXIgLT4gdCAtPiAnYSAtPiB1bml0XG4gICAgdmFsIGNoZWNrX2tleTogJ2EgY29udGFpbmVyIC0+IGJvb2xcbiAgZW5kKSA6IFNlZWRlZFMgd2l0aCB0eXBlIGtleSA9IEgudFxuICA9IHN0cnVjdFxuXG4gICAgdHlwZSAnYSB0ID1cbiAgICAgIHsgbXV0YWJsZSBzaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogbnVtYmVyIG9mIGVudHJpZXMgKilcbiAgICAgICAgbXV0YWJsZSBkYXRhOiAnYSBidWNrZXRsaXN0IGFycmF5OyAgKCogdGhlIGJ1Y2tldHMgKilcbiAgICAgICAgc2VlZDogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgKCogZm9yIHJhbmRvbWl6YXRpb24gKilcbiAgICAgICAgaW5pdGlhbF9zaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogaW5pdGlhbCBhcnJheSBzaXplICopXG4gICAgICB9XG5cbiAgICBhbmQgJ2EgYnVja2V0bGlzdCA9XG4gICAgfCBFbXB0eVxuICAgIHwgQ29ucyBvZiBpbnQgKCogaGFzaCBvZiB0aGUga2V5ICopICogJ2EgSC5jb250YWluZXIgKiAnYSBidWNrZXRsaXN0XG5cbiAgICAoKiogdGhlIGhhc2ggb2YgdGhlIGtleSBpcyBrZXB0IGluIG9yZGVyIHRvIHRlc3QgdGhlIGVxdWFsaXR5IG9mIHRoZSBoYXNoXG4gICAgICBiZWZvcmUgdGhlIGtleS4gU2FtZSByZWFzb24gYXMgZm9yIFdlYWsuTWFrZSAqKVxuXG4gICAgdHlwZSBrZXkgPSBILnRcblxuICAgIGxldCByZWMgcG93ZXJfMl9hYm92ZSB4IG4gPVxuICAgICAgaWYgeCA+PSBuIHRoZW4geFxuICAgICAgZWxzZSBpZiB4ICogMiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4geFxuICAgICAgZWxzZSBwb3dlcl8yX2Fib3ZlICh4ICogMikgblxuXG4gICAgbGV0IHBybmcgPSBsYXp5IChSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQoKSlcblxuICAgIGxldCBjcmVhdGUgPyhyYW5kb20gPSAoSGFzaHRibC5pc19yYW5kb21pemVkICgpKSkgaW5pdGlhbF9zaXplID1cbiAgICAgIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiBpbml0aWFsX3NpemUgaW5cbiAgICAgIGxldCBzZWVkID0gaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykgZWxzZSAwIGluXG4gICAgICB7IGluaXRpYWxfc2l6ZSA9IHM7IHNpemUgPSAwOyBzZWVkID0gc2VlZDsgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eSB9XG5cbiAgICBsZXQgY2xlYXIgaCA9XG4gICAgICBoLnNpemUgPC0gMDtcbiAgICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgICBoLmRhdGEuKGkpIDwtIEVtcHR5XG4gICAgICBkb25lXG5cbiAgICBsZXQgcmVzZXQgaCA9XG4gICAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICAgICAgaWYgbGVuID0gaC5pbml0aWFsX3NpemUgdGhlblxuICAgICAgICBjbGVhciBoXG4gICAgICBlbHNlIGJlZ2luXG4gICAgICAgIGguc2l6ZSA8LSAwO1xuICAgICAgICBoLmRhdGEgPC0gQXJyYXkubWFrZSBoLmluaXRpYWxfc2l6ZSBFbXB0eVxuICAgICAgZW5kXG5cbiAgICBsZXQgY29weSBoID0geyBoIHdpdGggZGF0YSA9IEFycmF5LmNvcHkgaC5kYXRhIH1cblxuICAgIGxldCBrZXlfaW5kZXggaCBoa2V5ID1cbiAgICAgIGhrZXkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG5cbiAgICBsZXQgY2xlYW4gaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIEVtcHR5XG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSB3aGVuIG5vdCAoSC5jaGVja19rZXkgYykgLT5cbiAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgfCBDb25zKGhrZXksIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBDb25zKGhrZXksIGMsIGRvX2J1Y2tldCByZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGQuKGkpIDwtIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgKCoqIHJlc2l6ZSBpcyB0aGUgb25seSBmdW5jdGlvbiB0byBkbyB0aGUgYWN0dWFsIGNsZWFuaW5nIG9mIGRlYWQga2V5c1xuICAgICAgICAocmVtb3ZlIGRvZXMgaXQganVzdCBiZWNhdXNlIGl0IGNvdWxkKS5cblxuICAgICAgICBUaGUgZ29hbCBpcyB0bzpcblxuICAgICAgICAtIG5vdCByZXNpemUgaW5maW5pdGVseSB3aGVuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGFsaXZlIGtleXMgaXNcbiAgICAgICAgYm91bmRlZCBidXQga2V5cyBhcmUgY29udGludW91c2x5IGFkZGVkLiBUaGF0IHdvdWxkIGhhcHBlbiBpZlxuICAgICAgICB0aGlzIGZ1bmN0aW9uIGFsd2F5cyByZXNpemUuXG4gICAgICAgIC0gbm90IGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBlYWNoIGFkZGl0aW9uLCB0aGF0IHdvdWxkIGhhcHBlbiBpZiB0aGlzXG4gICAgICAgIGZ1bmN0aW9uIGRvbid0IHJlc2l6ZSBldmVuIHdoZW4gb25seSBvbmUga2V5IGlzIGRlYWQuXG5cbiAgICAgICAgU28gdGhlIGFsZ29yaXRobTpcbiAgICAgICAgLSBjbGVhbiB0aGUga2V5cyBiZWZvcmUgcmVzaXppbmdcbiAgICAgICAgLSBpZiB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBrZXlzIGlzIGxlc3MgdGhhbiBoYWxmIHRoZSBzaXplIG9mIHRoZVxuICAgICAgICBhcnJheSwgZG9uJ3QgcmVzaXplLlxuICAgICAgICAtIGlmIGl0IGlzIG1vcmUsIHJlc2l6ZS5cblxuICAgICAgICBUaGUgc2Vjb25kIHByb2JsZW0gcmVtYWlucyBpZiB0aGUgdGFibGUgcmVhY2hlcyB7IVN5cy5tYXhfYXJyYXlfbGVuZ3RofS5cblxuICAgICopXG4gICAgbGV0IHJlc2l6ZSBoID1cbiAgICAgIGxldCBvZGF0YSA9IGguZGF0YSBpblxuICAgICAgbGV0IG9zaXplID0gQXJyYXkubGVuZ3RoIG9kYXRhIGluXG4gICAgICBsZXQgbnNpemUgPSBvc2l6ZSAqIDIgaW5cbiAgICAgIGNsZWFuIGg7XG4gICAgICBpZiBuc2l6ZSA8IFN5cy5tYXhfYXJyYXlfbGVuZ3RoICYmIGguc2l6ZSA+PSBvc2l6ZSBsc3IgMSB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBuZGF0YSA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgICAgICAgaC5kYXRhIDwtIG5kYXRhOyAgICAgICAoKiBzbyB0aGF0IGtleV9pbmRleCBzZWVzIHRoZSBuZXcgYnVja2V0IGNvdW50ICopXG4gICAgICAgIGxldCByZWMgaW5zZXJ0X2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgICAgICBFbXB0eSAtPiAoKVxuICAgICAgICAgIHwgQ29ucyhoa2V5LCBkYXRhLCByZXN0KSAtPlxuICAgICAgICAgICAgICBpbnNlcnRfYnVja2V0IHJlc3Q7ICgqIHByZXNlcnZlIG9yaWdpbmFsIG9yZGVyIG9mIGVsZW1lbnRzICopXG4gICAgICAgICAgICAgIGxldCBuaWR4ID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgICAgICAgICBuZGF0YS4obmlkeCkgPC0gQ29ucyhoa2V5LCBkYXRhLCBuZGF0YS4obmlkeCkpIGluXG4gICAgICAgIGZvciBpID0gMCB0byBvc2l6ZSAtIDEgZG9cbiAgICAgICAgICBpbnNlcnRfYnVja2V0IG9kYXRhLihpKVxuICAgICAgICBkb25lXG4gICAgICBlbmRcblxuICAgIGxldCBhZGQgaCBrZXkgaW5mbyA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGxldCBjb250YWluZXIgPSBILmNyZWF0ZSBrZXkgaW5mbyBpblxuICAgICAgbGV0IGJ1Y2tldCA9IENvbnMoaGtleSwgY29udGFpbmVyLCBoLmRhdGEuKGkpKSBpblxuICAgICAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUgaFxuXG4gICAgbGV0IHJlbW92ZSBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIHJlbW92ZV9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+IEVtcHR5XG4gICAgICAgIHwgQ29ucyhoaywgYywgbmV4dCkgd2hlbiBoa2V5ID0gaGsgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgICAgfCBFVHJ1ZSAtPiBoLnNpemUgPC0gaC5zaXplIC0gMTsgbmV4dFxuICAgICAgICAgICAgfCBFRmFsc2UgLT4gQ29ucyhoaywgYywgcmVtb3ZlX2J1Y2tldCBuZXh0KVxuICAgICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICAgICgqIFRoZSBkZWFkIGtleSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuIEl0IGlzIGFjY2VwdGFibGVcbiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZnVuY3Rpb24gc2luY2UgaXQgYWxyZWFkeSByZW1vdmVzIGEgYmluZGluZyAqKVxuICAgICAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgICAgIHJlbW92ZV9idWNrZXQgbmV4dFxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgQ29ucyhoayxjLG5leHQpIC0+IENvbnMoaGssIGMsIHJlbW92ZV9idWNrZXQgbmV4dCkgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgaC5kYXRhLihpKSA8LSByZW1vdmVfYnVja2V0IGguZGF0YS4oaSlcblxuICAgICgqKiB7IWZpbmR9IGRvbid0IHJlbW92ZSBkZWFkIGtleXMgYmVjYXVzZSBpdCB3b3VsZCBiZSBzdXJwcmlzaW5nIGZvclxuICAgICAgICB0aGUgdXNlciB0aGF0IGEgcmVhZC1vbmx5IGZ1bmN0aW9uIG11dGF0ZXMgdGhlIHN0YXRlIChlZy4gY29uY3VycmVudFxuICAgICAgICBhY2Nlc3MpLiBTYW1lIGZvciB7IWl0ZXJ9LCB7IWZvbGR9LCB7IW1lbX0uXG4gICAgKilcbiAgICBsZXQgcmVjIGZpbmRfcmVjIGtleSBoa2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPlxuICAgICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICgqIFRoaXMgY2FzZSBpcyBub3QgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZSBnYyBjYW4gcnVuIGJldHdlZW5cbiAgICAgICAgICAgICAgICAgICAgICBILmVxdWFsIGFuZCBILmdldF9kYXRhICopXG4gICAgICAgICAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBkIC0+IGRcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuXG4gICAgbGV0IGZpbmQgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgKCogVE9ETyBpbmxpbmUgMyBpdGVyYXRpb25zICopXG4gICAgICBmaW5kX3JlYyBrZXkgaGtleSAoaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KSlcblxuICAgIGxldCByZWMgZmluZF9yZWNfb3B0IGtleSBoa2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT5cbiAgICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAoKiBUaGlzIGNhc2UgaXMgbm90IGltcG9zc2libGUgYmVjYXVzZSB0aGUgZ2MgY2FuIHJ1biBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgICAgICAgSC5lcXVhbCBhbmQgSC5nZXRfZGF0YSAqKVxuICAgICAgICAgICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIF8gYXMgZCAtPiBkXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcblxuICAgIGxldCBmaW5kX29wdCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICAoKiBUT0RPIGlubGluZSAzIGl0ZXJhdGlvbnMgKilcbiAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSAoaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KSlcblxuICAgIGxldCBmaW5kX2FsbCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gW11cbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPiBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIGQgLT4gZDo6ZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdCBpblxuICAgICAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KVxuXG5cbiAgICBsZXQgcmVwbGFjZSBoIGtleSBpbmZvID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgcmVwbGFjZV9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICB8IENvbnMoaGssIGMsIG5leHQpIHdoZW4gaGtleSA9IGhrIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICAgIHwgRVRydWUgLT4gSC5zZXRfa2V5X2RhdGEgYyBrZXkgaW5mb1xuICAgICAgICAgICAgfCBFRmFsc2UgfCBFRGVhZCAtPiByZXBsYWNlX2J1Y2tldCBuZXh0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBDb25zKF8sXyxuZXh0KSAtPiByZXBsYWNlX2J1Y2tldCBuZXh0XG4gICAgICBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgICAgIHRyeVxuICAgICAgICByZXBsYWNlX2J1Y2tldCBsXG4gICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICBsZXQgY29udGFpbmVyID0gSC5jcmVhdGUga2V5IGluZm8gaW5cbiAgICAgICAgaC5kYXRhLihpKSA8LSBDb25zKGhrZXksIGNvbnRhaW5lciwgbCk7XG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGhcblxuICAgIGxldCBtZW0gaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrID0gaGtleSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT4gdHJ1ZVxuICAgICAgICAgIHwgRUZhbHNlIHwgRURlYWQgLT4gbWVtX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoX2hrLCBfYywgcmVzdCkgLT4gbWVtX2luX2J1Y2tldCByZXN0IGluXG4gICAgICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGggaGtleSlcblxuICAgIGxldCBpdGVyIGYgaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgICgpXG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+ICgpXG4gICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+IGYgayBkXG4gICAgICAgICAgICBlbmQ7IGRvX2J1Y2tldCByZXN0IGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgIGxldCBmb2xkIGYgaCBpbml0ID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0IGIgYWNjdSA9XG4gICAgICAgIG1hdGNoIGIgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgICBhY2N1XG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgbGV0IGFjY3UgPSBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiBhY2N1XG4gICAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT4gZiBrIGQgYWNjdVxuICAgICAgICAgICAgZW5kIGluXG4gICAgICAgICAgICBkb19idWNrZXQgcmVzdCBhY2N1ICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGxldCBhY2N1ID0gcmVmIGluaXQgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgYWNjdSA6PSBkb19idWNrZXQgZC4oaSkgIWFjY3VcbiAgICAgIGRvbmU7XG4gICAgICAhYWNjdVxuXG4gICAgbGV0IGZpbHRlcl9tYXBfaW5wbGFjZSBmIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBFbXB0eVxuICAgICAgICB8IENvbnMoaGssIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT5cbiAgICAgICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPlxuICAgICAgICAgICAgICAgIG1hdGNoIGYgayBkIHdpdGhcbiAgICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgICAgICAgICB8IFNvbWUgbmV3X2QgLT5cbiAgICAgICAgICAgICAgICAgICAgSC5zZXRfa2V5X2RhdGEgYyBrIG5ld19kO1xuICAgICAgICAgICAgICAgICAgICBDb25zKGhrLCBjLCBkb19idWNrZXQgcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkLihpKSA8LSBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgIGxldCBsZW5ndGggaCA9IGguc2l6ZVxuXG4gICAgbGV0IHJlYyBidWNrZXRfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBhY2N1XG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT4gYnVja2V0X2xlbmd0aCAoYWNjdSArIDEpIHJlc3RcblxuICAgIGxldCBzdGF0cyBoID1cbiAgICAgIGxldCBtYmwgPVxuICAgICAgICBBcnJheS5mb2xkX2xlZnQgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoIDAgYikpIDAgaC5kYXRhIGluXG4gICAgICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gICAgICBBcnJheS5pdGVyXG4gICAgICAgIChmdW4gYiAtPlxuICAgICAgICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGggMCBiIGluXG4gICAgICAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgICAgICBoLmRhdGE7XG4gICAgICB7IEhhc2h0YmwubnVtX2JpbmRpbmdzID0gaC5zaXplO1xuICAgICAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgICAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4gICAgbGV0IHJlYyBidWNrZXRfbGVuZ3RoX2FsaXZlIGFjY3UgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBhY2N1XG4gICAgICB8IENvbnMoXywgYywgcmVzdCkgd2hlbiBILmNoZWNrX2tleSBjIC0+XG4gICAgICAgICAgYnVja2V0X2xlbmd0aF9hbGl2ZSAoYWNjdSArIDEpIHJlc3RcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPiBidWNrZXRfbGVuZ3RoX2FsaXZlIGFjY3UgcmVzdFxuXG4gICAgbGV0IHN0YXRzX2FsaXZlIGggPVxuICAgICAgbGV0IHNpemUgPSByZWYgMCBpblxuICAgICAgbGV0IG1ibCA9XG4gICAgICAgIEFycmF5LmZvbGRfbGVmdFxuICAgICAgICAgIChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aF9hbGl2ZSAwIGIpKSAwIGguZGF0YVxuICAgICAgaW5cbiAgICAgIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgICAgIEFycmF5Lml0ZXJcbiAgICAgICAgKGZ1biBiIC0+XG4gICAgICAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aF9hbGl2ZSAwIGIgaW5cbiAgICAgICAgICAgc2l6ZSA6PSAhc2l6ZSArIGw7XG4gICAgICAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgICAgICBoLmRhdGE7XG4gICAgICB7IEhhc2h0YmwubnVtX2JpbmRpbmdzID0gIXNpemU7XG4gICAgICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICAgICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbiAgICBsZXQgdG9fc2VxIHRibCA9XG4gICAgICAoKiBjYXB0dXJlIGN1cnJlbnQgYXJyYXksIHNvIHRoYXQgZXZlbiBpZiB0aGUgdGFibGUgaXMgcmVzaXplZCB3ZVxuICAgICAgICAga2VlcCBpdGVyYXRpbmcgb24gdGhlIHNhbWUgYXJyYXkgKilcbiAgICAgIGxldCB0YmxfZGF0YSA9IHRibC5kYXRhIGluXG4gICAgICAoKiBzdGF0ZTogaW5kZXggKiBuZXh0IGJ1Y2tldCB0byB0cmF2ZXJzZSAqKVxuICAgICAgbGV0IHJlYyBhdXggaSBidWNrICgpID0gbWF0Y2ggYnVjayB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIGlmIGkgPSBBcnJheS5sZW5ndGggdGJsX2RhdGFcbiAgICAgICAgICAgIHRoZW4gU2VxLk5pbFxuICAgICAgICAgICAgZWxzZSBhdXgoaSsxKSB0YmxfZGF0YS4oaSkgKClcbiAgICAgICAgfCBDb25zIChfLCBjLCBuZXh0KSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gYXV4IGkgbmV4dCAoKVxuICAgICAgICAgICAgICB8IFNvbWUga2V5LCBTb21lIGRhdGEgLT5cbiAgICAgICAgICAgICAgICAgIFNlcS5Db25zICgoa2V5LCBkYXRhKSwgYXV4IGkgbmV4dClcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIGF1eCAwIEVtcHR5XG5cbiAgICBsZXQgdG9fc2VxX2tleXMgbSA9IFNlcS5tYXAgZnN0ICh0b19zZXEgbSlcblxuICAgIGxldCB0b19zZXFfdmFsdWVzIG0gPSBTZXEubWFwIHNuZCAodG9fc2VxIG0pXG5cbiAgICBsZXQgYWRkX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbiAgICBsZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuXG4gIGVuZFxuZW5kXG5cbm1vZHVsZSBPYmpFcGggPSBPYmouRXBoZW1lcm9uXG5cbmxldCBfb2JqX29wdCA6IE9iai50IG9wdGlvbiAtPiAnYSBvcHRpb24gPSBmdW4geCAtPlxuICBtYXRjaCB4IHdpdGhcbiAgfCBOb25lIC0+IHhcbiAgfCBTb21lIHYgLT4gU29tZSAoT2JqLm9iaiB2KVxuXG4oKiogVGhlIHByZXZpb3VzIGZ1bmN0aW9uIGlzIHR5cGVkIHNvIHRoaXMgb25lIGlzIGFsc28gY29ycmVjdCAqKVxubGV0IG9ial9vcHQgOiBPYmoudCBvcHRpb24gLT4gJ2Egb3B0aW9uID0gZnVuIHggLT4gT2JqLm1hZ2ljIHhcblxuXG5tb2R1bGUgSzEgPSBzdHJ1Y3RcbiAgdHlwZSAoJ2ssJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgKCkgOiAoJ2ssJ2QpIHQgPSBPYmpFcGguY3JlYXRlIDFcblxuICBsZXQgZ2V0X2tleSAodDooJ2ssJ2QpIHQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAwKVxuICBsZXQgZ2V0X2tleV9jb3B5ICh0OignaywnZCkgdCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMClcbiAgbGV0IHNldF9rZXkgKHQ6KCdrLCdkKSB0KSAoazonaykgOiB1bml0ID0gT2JqRXBoLnNldF9rZXkgdCAwIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5ICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDBcbiAgbGV0IGNoZWNrX2tleSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAwXG5cbiAgbGV0IGJsaXRfa2V5ICh0MTooJ2ssJ2QpIHQpICh0MjooJ2ssJ2QpIHQpOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDFcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignaywnZCkgdCkgKGQ6J2QpIDogdW5pdCA9IE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLCdkKSB0KSAodDI6KF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXkgZGF0YSA9XG4gICAgbGV0IGVwaCA9IGNyZWF0ZSAoKSBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIHNldF9rZXkgZXBoIGtleTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleSA9XG4gICAgbWF0Y2ggZ2V0X2tleSBlcGggd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGsgd2hlbiBrID09IGtleSAtPiBnZXRfZGF0YSBlcGhcbiAgICB8IFNvbWUgXyAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQgKEg6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChILnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgbGV0IGNyZWF0ZSBrIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIHNldF9rZXkgYyBrO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCA9IEguaGFzaFxuICAgICAgbGV0IGVxdWFsIGMgayA9XG4gICAgICAgICgqIHshZ2V0X2tleV9jb3B5fSBpcyBub3QgdXNlZCBiZWNhdXNlIHRoZSBlcXVhbGl0eSBvZiB0aGUgdXNlciBjYW4gYmVcbiAgICAgICAgICAgIHRoZSBwaHlzaWNhbCBlcXVhbGl0eSAqKVxuICAgICAgICBtYXRjaCBnZXRfa2V5IGMgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgIHwgU29tZSBrJyAtPlxuICAgICAgICAgICAgaWYgSC5lcXVhbCBrIGsnIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5ID0gZ2V0X2tleVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIGsgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgc2V0X2tleSBjIGs7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSA9IGNoZWNrX2tleVxuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIOiBIYXNodGJsLkhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2ssICdkKSB0ID0gKCdrLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrMV9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsgZCA9IGIgOj0gazFfbWFrZSBrIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleSBrIGUgPVxuICAgICAgbWF0Y2ggZ2V0X2tleSBlIHdpdGhcbiAgICAgIHwgU29tZSB4IHdoZW4geCA9PSBrIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleSBrIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXkgaykgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuXG5tb2R1bGUgSzIgPSBzdHJ1Y3RcbiAgdHlwZSAoJ2sxLCAnazIsICdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlICgpIDogKCdrMSwnazIsJ2QpIHQgPSBPYmpFcGguY3JlYXRlIDJcblxuICBsZXQgZ2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2sxIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMClcbiAgbGV0IGdldF9rZXkxX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2sxIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDApXG4gIGxldCBzZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgKGs6J2sxKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgMCAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAwXG4gIGxldCBjaGVja19rZXkxICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMFxuXG4gIGxldCBnZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazIgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAxKVxuICBsZXQgZ2V0X2tleTJfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazIgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMSlcbiAgbGV0IHNldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSAoazonazIpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCAxIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDFcbiAgbGV0IGNoZWNrX2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAxXG5cblxuICBsZXQgYmxpdF9rZXkxICh0MTooJ2sxLF8sXykgdCkgKHQyOignazEsXyxfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMVxuICBsZXQgYmxpdF9rZXkyICh0MTooXywnazIsXykgdCkgKHQyOihfLCdrMixfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAxIHQyIDEgMVxuICBsZXQgYmxpdF9rZXkxMiAodDE6KCdrMSwnazIsXykgdCkgKHQyOignazEsJ2syLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAyXG5cbiAgbGV0IGdldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnZCBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgKGQ6J2QpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLF8sJ2QpIHQpICh0MjooXyxfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5MSBrZXkyIGRhdGEgPVxuICAgIGxldCBlcGggPSBjcmVhdGUgKCkgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBzZXRfa2V5MSBlcGgga2V5MTtcbiAgICBzZXRfa2V5MiBlcGgga2V5MjtcbiAgICBpZ25vcmUgKFN5cy5vcGFxdWVfaWRlbnRpdHkga2V5MSk7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXkxIGtleTIgPVxuICAgIG1hdGNoIGdldF9rZXkxIGVwaCB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5MSAtPlxuICAgICAgICBiZWdpbiBtYXRjaCBnZXRfa2V5MiBlcGggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5MiAtPiBnZXRfZGF0YSBlcGhcbiAgICAgICAgfCBTb21lIF8gLT4gTm9uZVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgXyAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWRcbiAgICAgIChIMTpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpXG4gICAgICAoSDI6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChIMS50LEgyLnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgxLnQgKiBIMi50XG4gICAgICBsZXQgY3JlYXRlIChrMSxrMikgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlICgpIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgc2V0X2tleTEgYyBrMTsgc2V0X2tleTIgYyBrMjtcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggc2VlZCAoazEsazIpID1cbiAgICAgICAgSDEuaGFzaCBzZWVkIGsxICsgSDIuaGFzaCBzZWVkIGsyICogNjU1OTlcbiAgICAgIGxldCBlcXVhbCBjIChrMSxrMikgPVxuICAgICAgICBtYXRjaCBnZXRfa2V5MSBjLCBnZXRfa2V5MiBjIHdpdGhcbiAgICAgICAgfCBOb25lLCBfIHwgXyAsIE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgIHwgU29tZSBrMScsIFNvbWUgazInIC0+XG4gICAgICAgICAgICBpZiBIMS5lcXVhbCBrMSBrMScgJiYgSDIuZXF1YWwgazIgazInXG4gICAgICAgICAgICB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZSBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSBjID1cbiAgICAgICAgbWF0Y2ggZ2V0X2tleTEgYywgZ2V0X2tleTIgYyB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyB8IF8gLCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIGsxJywgU29tZSBrMicgLT4gU29tZSAoazEnLCBrMicpXG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgKGsxLGsyKSBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBzZXRfa2V5MSBjIGsxOyBzZXRfa2V5MiBjIGsyO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgYyA9IGNoZWNrX2tleTEgYyAmJiBjaGVja19rZXkyIGNcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDE6IEhhc2h0YmwuSGFzaGVkVHlwZSkoSDI6IEhhc2h0YmwuSGFzaGVkVHlwZSk6XG4gICAgKFMgd2l0aCB0eXBlIGtleSA9IEgxLnQgKiBIMi50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZFxuICAgICAgICAoc3RydWN0XG4gICAgICAgICAgdHlwZSB0ID0gSDEudFxuICAgICAgICAgIGxldCBlcXVhbCA9IEgxLmVxdWFsXG4gICAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBIMS5oYXNoIHhcbiAgICAgICAgZW5kKVxuICAgICAgICAoc3RydWN0XG4gICAgICAgICAgdHlwZSB0ID0gSDIudFxuICAgICAgICAgIGxldCBlcXVhbCA9IEgyLmVxdWFsXG4gICAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBIMi5oYXNoIHhcbiAgICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2sxLCAnazIsICdkKSB0ID0gKCdrMSwgJ2syLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrMl9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsxIGsyIGQgPSBiIDo9IGsyX21ha2UgazEgazIgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5cyBrMSBrMiBlID1cbiAgICAgIG1hdGNoIGdldF9rZXkxIGUsIGdldF9rZXkyIGUgd2l0aFxuICAgICAgfCBTb21lIHgxLCBTb21lIHgyIHdoZW4geDEgPT0gazEgJiYgeDIgPT0gazIgLT4gdHJ1ZVxuICAgICAgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgazEgazIgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleXMgazEgazIgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgazEgazIgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXlzIGsxIGsyKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG5cbm1vZHVsZSBLbiA9IHN0cnVjdFxuICB0eXBlICgnaywnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSBuIDogKCdrLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSBuXG4gIGxldCBsZW5ndGggKGs6KCdrLCdkKSB0KSA6IGludCA9IE9iakVwaC5sZW5ndGgga1xuXG4gIGxldCBnZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgbilcbiAgbGV0IGdldF9rZXlfY29weSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiAnayBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCBuKVxuICBsZXQgc2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgKGs6J2spIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCBuIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgblxuICBsZXQgY2hlY2tfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgblxuXG4gIGxldCBibGl0X2tleSAodDE6KCdrLCdkKSB0KSAobzE6aW50KSAodDI6KCdrLCdkKSB0KSAobzI6aW50KSAobDppbnQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIG8xIHQyIG8yIGxcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignaywnZCkgdCkgKGQ6J2QpIDogdW5pdCA9IE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLCdkKSB0KSAodDI6KF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXlzIGRhdGEgPVxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIGtleXMgaW5cbiAgICBsZXQgZXBoID0gY3JlYXRlIGwgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gc2V0X2tleSBlcGggaSBrZXlzLihpKSBkb25lO1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5cyA9XG4gICAgbGV0IGwgPSBsZW5ndGggZXBoIGluXG4gICAgdHJ5XG4gICAgICBpZiBsIDw+IEFycmF5Lmxlbmd0aCBrZXlzIHRoZW4gcmFpc2UgRXhpdDtcbiAgICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgICBtYXRjaCBnZXRfa2V5IGVwaCBpIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IHJhaXNlIEV4aXRcbiAgICAgICAgfCBTb21lIGsgd2hlbiBrID09IGtleXMuKGkpIC0+ICgpXG4gICAgICAgIHwgU29tZSBfIC0+IHJhaXNlIEV4aXRcbiAgICAgIGRvbmU7XG4gICAgICBnZXRfZGF0YSBlcGhcbiAgICB3aXRoIEV4aXQgLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkIChIOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSC50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBILnQgYXJyYXlcbiAgICAgIGxldCBjcmVhdGUgayBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKEFycmF5Lmxlbmd0aCBrKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBzZXRfa2V5IGMgaSBrLihpKTtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggc2VlZCBrID1cbiAgICAgICAgbGV0IGggPSByZWYgMCBpblxuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgaCA6PSBILmhhc2ggc2VlZCBrLihpKSAqIDY1NTk5ICsgIWg7XG4gICAgICAgIGRvbmU7XG4gICAgICAgICFoXG4gICAgICBsZXQgZXF1YWwgYyBrID1cbiAgICAgICAgbGV0IGxlbiAgPSBBcnJheS5sZW5ndGggayBpblxuICAgICAgICBsZXQgbGVuJyA9IGxlbmd0aCBjIGluXG4gICAgICAgIGlmIGxlbiAhPSBsZW4nIHRoZW4gR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IHJlYyBlcXVhbF9hcnJheSBrIGMgaSA9XG4gICAgICAgICAgICBpZiBpIDwgMCB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgaSB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgICAgICAgfCBTb21lIGtpIC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGsuKGkpIGtpXG4gICAgICAgICAgICAgICAgICB0aGVuIGVxdWFsX2FycmF5IGsgYyAoaS0xKVxuICAgICAgICAgICAgICAgICAgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICAgICAgaW5cbiAgICAgICAgICBlcXVhbF9hcnJheSBrIGMgKGxlbi0xKVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5IGMgPVxuICAgICAgICBsZXQgbGVuID0gbGVuZ3RoIGMgaW5cbiAgICAgICAgaWYgbGVuID0gMCB0aGVuIFNvbWUgW3x8XVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIDAgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIGswIC0+XG4gICAgICAgICAgICAgIGxldCByZWMgZmlsbCBhIGkgPVxuICAgICAgICAgICAgICAgIGlmIGkgPCAxIHRoZW4gU29tZSBhXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIGkgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBraSAtPlxuICAgICAgICAgICAgICAgICAgICAgIGEuKGkpIDwtIGtpO1xuICAgICAgICAgICAgICAgICAgICAgIGZpbGwgYSAoaS0xKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgYSA9IEFycmF5Lm1ha2UgbGVuIGswIGluXG4gICAgICAgICAgICAgIGZpbGwgYSAobGVuLTEpXG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgayBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgc2V0X2tleSBjIGkgay4oaSk7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSBjID1cbiAgICAgICAgbGV0IHJlYyBjaGVjayBjIGkgPVxuICAgICAgICAgIGkgPCAwIHx8IChjaGVja19rZXkgYyBpICYmIGNoZWNrIGMgKGktMSkpIGluXG4gICAgICAgIGNoZWNrIGMgKGxlbmd0aCBjIC0gMSlcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDogSGFzaHRibC5IYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCBhcnJheSkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrLCAnZCkgdCA9ICgnaywgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQga25fbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrIGQgPSBiIDo9IGtuX21ha2UgayBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXlzIGsgZSA9XG4gICAgICB0cnlcbiAgICAgICAgaWYgbGVuZ3RoIGUgPD4gQXJyYXkubGVuZ3RoIGsgdGhlbiByYWlzZSBFeGl0O1xuICAgICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGsgLSAxIGRvXG4gICAgICAgICAgbWF0Y2ggZ2V0X2tleSBlIGkgd2l0aFxuICAgICAgICAgIHwgU29tZSB4IHdoZW4geCA9PSBrLihpKSAtPiAoKVxuICAgICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHRydWVcbiAgICAgIHdpdGggRXhpdCAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleXMgayBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5cyBrKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgTWFudWVsIFNlcnJhbm8gZXQgWGF2aWVyIExlcm95LCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAwIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbQmlnYXJyYXldOiBsYXJnZSwgbXVsdGktZGltZW5zaW9uYWwsIG51bWVyaWNhbCBhcnJheXMgKilcblxuKCogVGhlc2UgdHlwZXMgaW4gbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgdGFibGVzIGluXG4gICAuLi90eXBpbmcvdHlwZW9wdC5tbCAqKVxuXG50eXBlIGZsb2F0MzJfZWx0ID0gRmxvYXQzMl9lbHRcbnR5cGUgZmxvYXQ2NF9lbHQgPSBGbG9hdDY0X2VsdFxudHlwZSBpbnQ4X3NpZ25lZF9lbHQgPSBJbnQ4X3NpZ25lZF9lbHRcbnR5cGUgaW50OF91bnNpZ25lZF9lbHQgPSBJbnQ4X3Vuc2lnbmVkX2VsdFxudHlwZSBpbnQxNl9zaWduZWRfZWx0ID0gSW50MTZfc2lnbmVkX2VsdFxudHlwZSBpbnQxNl91bnNpZ25lZF9lbHQgPSBJbnQxNl91bnNpZ25lZF9lbHRcbnR5cGUgaW50MzJfZWx0ID0gSW50MzJfZWx0XG50eXBlIGludDY0X2VsdCA9IEludDY0X2VsdFxudHlwZSBpbnRfZWx0ID0gSW50X2VsdFxudHlwZSBuYXRpdmVpbnRfZWx0ID0gTmF0aXZlaW50X2VsdFxudHlwZSBjb21wbGV4MzJfZWx0ID0gQ29tcGxleDMyX2VsdFxudHlwZSBjb21wbGV4NjRfZWx0ID0gQ29tcGxleDY0X2VsdFxuXG50eXBlICgnYSwgJ2IpIGtpbmQgPVxuICAgIEZsb2F0MzIgOiAoZmxvYXQsIGZsb2F0MzJfZWx0KSBraW5kXG4gIHwgRmxvYXQ2NCA6IChmbG9hdCwgZmxvYXQ2NF9lbHQpIGtpbmRcbiAgfCBJbnQ4X3NpZ25lZCA6IChpbnQsIGludDhfc2lnbmVkX2VsdCkga2luZFxuICB8IEludDhfdW5zaWduZWQgOiAoaW50LCBpbnQ4X3Vuc2lnbmVkX2VsdCkga2luZFxuICB8IEludDE2X3NpZ25lZCA6IChpbnQsIGludDE2X3NpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQxNl91bnNpZ25lZCA6IChpbnQsIGludDE2X3Vuc2lnbmVkX2VsdCkga2luZFxuICB8IEludDMyIDogKGludDMyLCBpbnQzMl9lbHQpIGtpbmRcbiAgfCBJbnQ2NCA6IChpbnQ2NCwgaW50NjRfZWx0KSBraW5kXG4gIHwgSW50IDogKGludCwgaW50X2VsdCkga2luZFxuICB8IE5hdGl2ZWludCA6IChuYXRpdmVpbnQsIG5hdGl2ZWludF9lbHQpIGtpbmRcbiAgfCBDb21wbGV4MzIgOiAoQ29tcGxleC50LCBjb21wbGV4MzJfZWx0KSBraW5kXG4gIHwgQ29tcGxleDY0IDogKENvbXBsZXgudCwgY29tcGxleDY0X2VsdCkga2luZFxuICB8IENoYXIgOiAoY2hhciwgaW50OF91bnNpZ25lZF9lbHQpIGtpbmRcblxudHlwZSBjX2xheW91dCA9IENfbGF5b3V0X3R5cFxudHlwZSBmb3J0cmFuX2xheW91dCA9IEZvcnRyYW5fbGF5b3V0X3R5cCAoKiopXG5cbnR5cGUgJ2EgbGF5b3V0ID1cbiAgICBDX2xheW91dDogY19sYXlvdXQgbGF5b3V0XG4gIHwgRm9ydHJhbl9sYXlvdXQ6IGZvcnRyYW5fbGF5b3V0IGxheW91dFxuXG4oKiBLZWVwIHRob3NlIGNvbnN0YW50cyBpbiBzeW5jIHdpdGggdGhlIGNhbWxfYmFfa2luZCBlbnVtZXJhdGlvblxuICAgaW4gYmlnYXJyYXkuaCAqKVxuXG5sZXQgZmxvYXQzMiA9IEZsb2F0MzJcbmxldCBmbG9hdDY0ID0gRmxvYXQ2NFxubGV0IGludDhfc2lnbmVkID0gSW50OF9zaWduZWRcbmxldCBpbnQ4X3Vuc2lnbmVkID0gSW50OF91bnNpZ25lZFxubGV0IGludDE2X3NpZ25lZCA9IEludDE2X3NpZ25lZFxubGV0IGludDE2X3Vuc2lnbmVkID0gSW50MTZfdW5zaWduZWRcbmxldCBpbnQzMiA9IEludDMyXG5sZXQgaW50NjQgPSBJbnQ2NFxubGV0IGludCA9IEludFxubGV0IG5hdGl2ZWludCA9IE5hdGl2ZWludFxubGV0IGNvbXBsZXgzMiA9IENvbXBsZXgzMlxubGV0IGNvbXBsZXg2NCA9IENvbXBsZXg2NFxubGV0IGNoYXIgPSBDaGFyXG5cbmxldCBraW5kX3NpemVfaW5fYnl0ZXMgOiB0eXBlIGEgYi4gKGEsIGIpIGtpbmQgLT4gaW50ID0gZnVuY3Rpb25cbiAgfCBGbG9hdDMyIC0+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+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzJcIlxuZXh0ZXJuYWwgc2V0MzogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8zXCJcbiIsbnVsbCxudWxsLG51bGwsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIDMyLWJpdCBpbnRlZ2Vycy5cblxuICAgVGhpcyBtb2R1bGUgcHJvdmlkZXMgb3BlcmF0aW9ucyBvbiB0aGUgdHlwZSBbaW50MzJdXG4gICBvZiBzaWduZWQgMzItYml0IGludGVnZXJzLiAgVW5saWtlIHRoZSBidWlsdC1pbiBbaW50XSB0eXBlLFxuICAgdGhlIHR5cGUgW2ludDMyXSBpcyBndWFyYW50ZWVkIHRvIGJlIGV4YWN0bHkgMzItYml0IHdpZGUgb24gYWxsXG4gICBwbGF0Zm9ybXMuICBBbGwgYXJpdGhtZXRpYyBvcGVyYXRpb25zIG92ZXIgW2ludDMyXSBhcmUgdGFrZW5cbiAgIG1vZHVsbyAye14zMn0uXG5cbiAgIFBlcmZvcm1hbmNlIG5vdGljZTogdmFsdWVzIG9mIHR5cGUgW2ludDMyXSBvY2N1cHkgbW9yZSBtZW1vcnlcbiAgIHNwYWNlIHRoYW4gdmFsdWVzIG9mIHR5cGUgW2ludF0sIGFuZCBhcml0aG1ldGljIG9wZXJhdGlvbnMgb25cbiAgIFtpbnQzMl0gYXJlIGdlbmVyYWxseSBzbG93ZXIgdGhhbiB0aG9zZSBvbiBbaW50XS4gIFVzZSBbaW50MzJdXG4gICBvbmx5IHdoZW4gdGhlIGFwcGxpY2F0aW9uIHJlcXVpcmVzIGV4YWN0IDMyLWJpdCBhcml0aG1ldGljLlxuXG4gICAgTGl0ZXJhbHMgZm9yIDMyLWJpdCBpbnRlZ2VycyBhcmUgc3VmZml4ZWQgYnkgbDpcbiAgICB7W1xuICAgICAgbGV0IHplcm86IGludDMyID0gMGxcbiAgICAgIGxldCBvbmU6IGludDMyID0gMWxcbiAgICAgIGxldCBtX29uZTogaW50MzIgPSAtMWxcbiAgICBdfVxuKilcblxudmFsIHplcm8gOiBpbnQzMlxuKCoqIFRoZSAzMi1iaXQgaW50ZWdlciAwLiAqKVxuXG52YWwgb25lIDogaW50MzJcbigqKiBUaGUgMzItYml0IGludGVnZXIgMS4gKilcblxudmFsIG1pbnVzX29uZSA6IGludDMyXG4oKiogVGhlIDMyLWJpdCBpbnRlZ2VyIC0xLiAqKVxuXG5leHRlcm5hbCBuZWcgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX25lZ1wiXG4oKiogVW5hcnkgbmVnYXRpb24uICopXG5cbmV4dGVybmFsIGFkZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYWRkXCJcbigqKiBBZGRpdGlvbi4gKilcblxuZXh0ZXJuYWwgc3ViIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9zdWJcIlxuKCoqIFN1YnRyYWN0aW9uLiAqKVxuXG5leHRlcm5hbCBtdWwgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX211bFwiXG4oKiogTXVsdGlwbGljYXRpb24uICopXG5cbmV4dGVybmFsIGRpdiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfZGl2XCJcbigqKiBJbnRlZ2VyIGRpdmlzaW9uLiBUaGlzIGRpdmlzaW9uIHJvdW5kcyB0aGUgcmVhbCBxdW90aWVudCBvZlxuICAgaXRzIGFyZ3VtZW50cyB0b3dhcmRzIHplcm8sIGFzIHNwZWNpZmllZCBmb3IgeyFTdGRsaWIuKC8pfS5cbiAgIEByYWlzZSBEaXZpc2lvbl9ieV96ZXJvIGlmIHRoZSBzZWNvbmRcbiAgIGFyZ3VtZW50IGlzIHplcm8uICAqKVxuXG52YWwgdW5zaWduZWRfZGl2IDogaW50MzIgLT4gaW50MzIgLT4gaW50MzJcbigqKiBTYW1lIGFzIHshZGl2fSwgZXhjZXB0IHRoYXQgYXJndW1lbnRzIGFuZCByZXN1bHQgYXJlIGludGVycHJldGVkIGFzIHtlXG4gICAgdW5zaWduZWR9IDMyLWJpdCBpbnRlZ2Vycy5cblxuICAgIEBzaW5jZSA0LjA4LjAgKilcblxuZXh0ZXJuYWwgcmVtIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tb2RcIlxuKCoqIEludGVnZXIgcmVtYWluZGVyLiAgSWYgW3ldIGlzIG5vdCB6ZXJvLCB0aGUgcmVzdWx0XG4gICBvZiBbSW50MzIucmVtIHggeV0gc2F0aXNmaWVzIHRoZSBmb2xsb3dpbmcgcHJvcGVydHk6XG4gICBbeCA9IEludDMyLmFkZCAoSW50MzIubXVsIChJbnQzMi5kaXYgeCB5KSB5KSAoSW50MzIucmVtIHggeSldLlxuICAgSWYgW3kgPSAwXSwgW0ludDMyLnJlbSB4IHldIHJhaXNlcyBbRGl2aXNpb25fYnlfemVyb10uICopXG5cbnZhbCB1bnNpZ25lZF9yZW0gOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMlxuKCoqIFNhbWUgYXMgeyFyZW19LCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYW5kIHJlc3VsdCBhcmUgaW50ZXJwcmV0ZWQgYXMge2VcbiAgICB1bnNpZ25lZH0gMzItYml0IGludGVnZXJzLlxuXG4gICAgQHNpbmNlIDQuMDguMCAqKVxuXG52YWwgc3VjYyA6IGludDMyIC0+IGludDMyXG4oKiogU3VjY2Vzc29yLiAgW0ludDMyLnN1Y2MgeF0gaXMgW0ludDMyLmFkZCB4IEludDMyLm9uZV0uICopXG5cbnZhbCBwcmVkIDogaW50MzIgLT4gaW50MzJcbigqKiBQcmVkZWNlc3Nvci4gIFtJbnQzMi5wcmVkIHhdIGlzIFtJbnQzMi5zdWIgeCBJbnQzMi5vbmVdLiAqKVxuXG52YWwgYWJzIDogaW50MzIgLT4gaW50MzJcbigqKiBSZXR1cm4gdGhlIGFic29sdXRlIHZhbHVlIG9mIGl0cyBhcmd1bWVudC4gKilcblxudmFsIG1heF9pbnQgOiBpbnQzMlxuKCoqIFRoZSBncmVhdGVzdCByZXByZXNlbnRhYmxlIDMyLWJpdCBpbnRlZ2VyLCAye14zMX0gLSAxLiAqKVxuXG52YWwgbWluX2ludCA6IGludDMyXG4oKiogVGhlIHNtYWxsZXN0IHJlcHJlc2VudGFibGUgMzItYml0IGludGVnZXIsIC0ye14zMX0uICopXG5cblxuZXh0ZXJuYWwgbG9nYW5kIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hbmRcIlxuKCoqIEJpdHdpc2UgbG9naWNhbCBhbmQuICopXG5cbmV4dGVybmFsIGxvZ29yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9vclwiXG4oKiogQml0d2lzZSBsb2dpY2FsIG9yLiAqKVxuXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3hvclwiXG4oKiogQml0d2lzZSBsb2dpY2FsIGV4Y2x1c2l2ZSBvci4gKilcblxudmFsIGxvZ25vdCA6IGludDMyIC0+IGludDMyXG4oKiogQml0d2lzZSBsb2dpY2FsIG5lZ2F0aW9uLiAqKVxuXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNsXCJcbigqKiBbSW50MzIuc2hpZnRfbGVmdCB4IHldIHNoaWZ0cyBbeF0gdG8gdGhlIGxlZnQgYnkgW3ldIGJpdHMuXG4gICBUaGUgcmVzdWx0IGlzIHVuc3BlY2lmaWVkIGlmIFt5IDwgMF0gb3IgW3kgPj0gMzJdLiAqKVxuXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2FzclwiXG4oKiogW0ludDMyLnNoaWZ0X3JpZ2h0IHggeV0gc2hpZnRzIFt4XSB0byB0aGUgcmlnaHQgYnkgW3ldIGJpdHMuXG4gICBUaGlzIGlzIGFuIGFyaXRobWV0aWMgc2hpZnQ6IHRoZSBzaWduIGJpdCBvZiBbeF0gaXMgcmVwbGljYXRlZFxuICAgYW5kIGluc2VydGVkIGluIHRoZSB2YWNhdGVkIGJpdHMuXG4gICBUaGUgcmVzdWx0IGlzIHVuc3BlY2lmaWVkIGlmIFt5IDwgMF0gb3IgW3kgPj0gMzJdLiAqKVxuXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNyXCJcbigqKiBbSW50MzIuc2hpZnRfcmlnaHRfbG9naWNhbCB4IHldIHNoaWZ0cyBbeF0gdG8gdGhlIHJpZ2h0IGJ5IFt5XSBiaXRzLlxuICAgVGhpcyBpcyBhIGxvZ2ljYWwgc2hpZnQ6IHplcm9lcyBhcmUgaW5zZXJ0ZWQgaW4gdGhlIHZhY2F0ZWQgYml0c1xuICAgcmVnYXJkbGVzcyBvZiB0aGUgc2lnbiBvZiBbeF0uXG4gICBUaGUgcmVzdWx0IGlzIHVuc3BlY2lmaWVkIGlmIFt5IDwgMF0gb3IgW3kgPj0gMzJdLiAqKVxuXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9vZl9pbnRcIlxuKCoqIENvbnZlcnQgdGhlIGdpdmVuIGludGVnZXIgKHR5cGUgW2ludF0pIHRvIGEgMzItYml0IGludGVnZXJcbiAgICAodHlwZSBbaW50MzJdKS4gT24gNjQtYml0IHBsYXRmb3JtcywgdGhlIGFyZ3VtZW50IGlzIHRha2VuXG4gICAgbW9kdWxvIDJ7XjMyfS4gKilcblxuZXh0ZXJuYWwgdG9faW50IDogaW50MzIgLT4gaW50ID0gXCIlaW50MzJfdG9faW50XCJcbigqKiBDb252ZXJ0IHRoZSBnaXZlbiAzMi1iaXQgaW50ZWdlciAodHlwZSBbaW50MzJdKSB0byBhblxuICAgaW50ZWdlciAodHlwZSBbaW50XSkuICBPbiAzMi1iaXQgcGxhdGZvcm1zLCB0aGUgMzItYml0IGludGVnZXJcbiAgIGlzIHRha2VuIG1vZHVsbyAye14zMX0sIGkuZS4gdGhlIGhpZ2gtb3JkZXIgYml0IGlzIGxvc3RcbiAgIGR1cmluZyB0aGUgY29udmVyc2lvbi4gIE9uIDY0LWJpdCBwbGF0Zm9ybXMsIHRoZSBjb252ZXJzaW9uXG4gICBpcyBleGFjdC4gKilcblxudmFsIHVuc2lnbmVkX3RvX2ludCA6IGludDMyIC0+IGludCBvcHRpb25cbigqKiBTYW1lIGFzIHshdG9faW50fSwgYnV0IGludGVycHJldHMgdGhlIGFyZ3VtZW50IGFzIGFuIHtlIHVuc2lnbmVkfSBpbnRlZ2VyLlxuICAgIFJldHVybnMgW05vbmVdIGlmIHRoZSB1bnNpZ25lZCB2YWx1ZSBvZiB0aGUgYXJndW1lbnQgY2Fubm90IGZpdCBpbnRvIGFuXG4gICAgW2ludF0uXG5cbiAgICBAc2luY2UgNC4wOC4wICopXG5cbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG4oKiogQ29udmVydCB0aGUgZ2l2ZW4gZmxvYXRpbmctcG9pbnQgbnVtYmVyIHRvIGEgMzItYml0IGludGVnZXIsXG4gICBkaXNjYXJkaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgKHRydW5jYXRlIHRvd2FyZHMgMCkuXG4gICBJZiB0aGUgdHJ1bmNhdGVkIGZsb2F0aW5nLXBvaW50IG51bWJlciBpcyBvdXRzaWRlIHRoZSByYW5nZVxuICAgXFxbeyFJbnQzMi5taW5faW50fSwgeyFJbnQzMi5tYXhfaW50fVxcXSwgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwgYW5kXG4gICBhbiB1bnNwZWNpZmllZCwgcGxhdGZvcm0tZGVwZW5kZW50IGludGVnZXIgaXMgcmV0dXJuZWQuICopXG5cbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfdG9fZmxvYXRcIiBcImNhbWxfaW50MzJfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG4oKiogQ29udmVydCB0aGUgZ2l2ZW4gMzItYml0IGludGVnZXIgdG8gYSBmbG9hdGluZy1wb2ludCBudW1iZXIuICopXG5cbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMiA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuKCoqIENvbnZlcnQgdGhlIGdpdmVuIHN0cmluZyB0byBhIDMyLWJpdCBpbnRlZ2VyLlxuICAgVGhlIHN0cmluZyBpcyByZWFkIGluIGRlY2ltYWwgKGJ5IGRlZmF1bHQsIG9yIGlmIHRoZSBzdHJpbmdcbiAgIGJlZ2lucyB3aXRoIFswdV0pIG9yIGluIGhleGFkZWNpbWFsLCBvY3RhbCBvciBiaW5hcnkgaWYgdGhlXG4gICBzdHJpbmcgYmVnaW5zIHdpdGggWzB4XSwgWzBvXSBvciBbMGJdIHJlc3BlY3RpdmVseS5cblxuICAgVGhlIFswdV0gcHJlZml4IHJlYWRzIHRoZSBpbnB1dCBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyIGluIHRoZSByYW5nZVxuICAgW1swLCAyKkludDMyLm1heF9pbnQrMV1dLiAgSWYgdGhlIGlucHV0IGV4Y2VlZHMgeyFJbnQzMi5tYXhfaW50fVxuICAgaXQgaXMgY29udmVydGVkIHRvIHRoZSBzaWduZWQgaW50ZWdlclxuICAgW0ludDMyLm1pbl9pbnQgKyBpbnB1dCAtIEludDMyLm1heF9pbnQgLSAxXS5cblxuICAgVGhlIFtfXSAodW5kZXJzY29yZSkgY2hhcmFjdGVyIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIHN0cmluZ1xuICAgYW5kIGlzIGlnbm9yZWQuXG4gICBAcmFpc2UgRmFpbHVyZSBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIG5vdFxuICAgYSB2YWxpZCByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnRlZ2VyLCBvciBpZiB0aGUgaW50ZWdlciByZXByZXNlbnRlZFxuICAgZXhjZWVkcyB0aGUgcmFuZ2Ugb2YgaW50ZWdlcnMgcmVwcmVzZW50YWJsZSBpbiB0eXBlIFtpbnQzMl0uICopXG5cbnZhbCBvZl9zdHJpbmdfb3B0OiBzdHJpbmcgLT4gaW50MzIgb3B0aW9uXG4oKiogU2FtZSBhcyBbb2Zfc3RyaW5nXSwgYnV0IHJldHVybiBbTm9uZV0gaW5zdGVhZCBvZiByYWlzaW5nLlxuICAgIEBzaW5jZSA0LjA1ICopXG5cblxudmFsIHRvX3N0cmluZyA6IGludDMyIC0+IHN0cmluZ1xuKCoqIFJldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGl0cyBhcmd1bWVudCwgaW4gc2lnbmVkIGRlY2ltYWwuICopXG5cbmV4dGVybmFsIGJpdHNfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG4oKiogUmV0dXJuIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gZmxvYXQgYWNjb3JkaW5nXG4gICB0byB0aGUgSUVFRSA3NTQgZmxvYXRpbmctcG9pbnQgJ3NpbmdsZSBmb3JtYXQnIGJpdCBsYXlvdXQuXG4gICBCaXQgMzEgb2YgdGhlIHJlc3VsdCByZXByZXNlbnRzIHRoZSBzaWduIG9mIHRoZSBmbG9hdDtcbiAgIGJpdHMgMzAgdG8gMjMgcmVwcmVzZW50IHRoZSAoYmlhc2VkKSBleHBvbmVudDsgYml0cyAyMiB0byAwXG4gICByZXByZXNlbnQgdGhlIG1hbnRpc3NhLiAqKVxuXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuKCoqIFJldHVybiB0aGUgZmxvYXRpbmctcG9pbnQgbnVtYmVyIHdob3NlIGludGVybmFsIHJlcHJlc2VudGF0aW9uLFxuICAgYWNjb3JkaW5nIHRvIHRoZSBJRUVFIDc1NCBmbG9hdGluZy1wb2ludCAnc2luZ2xlIGZvcm1hdCcgYml0IGxheW91dCxcbiAgIGlzIHRoZSBnaXZlbiBbaW50MzJdLiAqKVxuXG50eXBlIHQgPSBpbnQzMlxuKCoqIEFuIGFsaWFzIGZvciB0aGUgdHlwZSBvZiAzMi1iaXQgaW50ZWdlcnMuICopXG5cbnZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4oKiogVGhlIGNvbXBhcmlzb24gZnVuY3Rpb24gZm9yIDMyLWJpdCBpbnRlZ2Vycywgd2l0aCB0aGUgc2FtZSBzcGVjaWZpY2F0aW9uIGFzXG4gICAgeyFTdGRsaWIuY29tcGFyZX0uICBBbG9uZyB3aXRoIHRoZSB0eXBlIFt0XSwgdGhpcyBmdW5jdGlvbiBbY29tcGFyZV1cbiAgICBhbGxvd3MgdGhlIG1vZHVsZSBbSW50MzJdIHRvIGJlIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgZnVuY3RvcnNcbiAgICB7IVNldC5NYWtlfSBhbmQgeyFNYXAuTWFrZX0uICopXG5cbnZhbCB1bnNpZ25lZF9jb21wYXJlOiB0IC0+IHQgLT4gaW50XG4oKiogU2FtZSBhcyB7IWNvbXBhcmV9LCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYXJlIGludGVycHJldGVkIGFzIHtlIHVuc2lnbmVkfVxuICAgIDMyLWJpdCBpbnRlZ2Vycy5cblxuICAgIEBzaW5jZSA0LjA4LjAgKilcblxudmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuKCoqIFRoZSBlcXVhbCBmdW5jdGlvbiBmb3IgaW50MzJzLlxuICAgIEBzaW5jZSA0LjAzLjAgKilcblxudmFsIG1pbjogdCAtPiB0IC0+IHRcbigqKiBSZXR1cm4gdGhlIHNtYWxsZXIgb2YgdGhlIHR3byBhcmd1bWVudHMuXG4gICAgQHNpbmNlIDQuMTMuMFxuKilcblxudmFsIG1heDogdCAtPiB0IC0+IHRcbigqKiBSZXR1cm4gdGhlIGdyZWF0ZXIgb2YgdGhlIHR3byBhcmd1bWVudHMuXG4gICAgQHNpbmNlIDQuMTMuMFxuICopXG5cblxuKCoqLyoqKVxuXG4oKiogezEgRGVwcmVjYXRlZCBmdW5jdGlvbnN9ICopXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQzMiAtPiBzdHJpbmcgPSBcImNhbWxfaW50MzJfZm9ybWF0XCJcbltAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgUHJpbnRmLnNwcmludGYgd2l0aCBhIFslbC4uLl0gZm9ybWF0IGluc3RlYWQuXCJdXG4oKiogRG8gbm90IHVzZSB0aGlzIGRlcHJlY2F0ZWQgZnVuY3Rpb24uICBJbnN0ZWFkLFxuICAgdXNlZCB7IVByaW50Zi5zcHJpbnRmfSB3aXRoIGEgWyVsLi4uXSBmb3JtYXQuICopXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgIERhbmllbCBkZSBSYXVnbGF1ZHJlLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9ICdhIGNlbGwgb3B0aW9uXG5hbmQgJ2EgY2VsbCA9IHsgbXV0YWJsZSBjb3VudCA6IGludDsgbXV0YWJsZSBkYXRhIDogJ2EgZGF0YSB9XG5hbmQgJ2EgZGF0YSA9XG4gICAgU2VtcHR5XG4gIHwgU2NvbnMgb2YgJ2EgKiAnYSBkYXRhXG4gIHwgU2FwcCBvZiAnYSBkYXRhICogJ2EgZGF0YVxuICB8IFNsYXp5IG9mICdhIGRhdGEgTGF6eS50XG4gIHwgU2dlbiBvZiAnYSBnZW5cbiAgfCBTYnVmZmlvIDogYnVmZmlvIC0+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+IHByaW50X3N0cmluZyBcIlNnZW5cIlxuICB8IFNidWZmaW8gXyAtPiBwcmludF9zdHJpbmcgXCJTYnVmZmlvXCJcbiIsIigqIHdoeSAqKVxuXG4oKlxuXG5uYW1lcz86XG4gICAtIHVuaXZlcnNhbCB0b29sLCB1bml0b29sIFt3YXMgdGhpbmtpbmcgYWJvdXQgaG93IHRoaXMgaXMgdHJ5aW5nIHRvIHVuaWZ5IGEgbG90IG9mIG15IFwidG9vbHMgZm9yIHRob3VnaHRcIl1cbiAgICAgKiBiZWNhdXNlIGl0IGhhcyBhbHdheXMgYm90aGVyZWQgbWUgdGhhdCBpdCdzIGVhc2llciB0byB1c2UgZ29vZ2xlIHNlYXJjaCBhcyBhIGNhbGN1bGF0b3IgdGhhbiB0aGUgcHVycG9zZSBidWlsdCBhcHAhISEhISEhIVxuICAgLSB1bml2ZXJzYWwgY29uc29sZSwgdW5pY29uIChVTklDT3JOKSBbdW5pY29uIGlzIG5pY2UgOzNdXG4gICAtIG5vbi1tYWdpY2FsIHN5c3RlbXMgKE5NUykgdW4tbWFnaWNhbFxuICAgLSBjb25zb2xlIGlzIGFuIGludGVyZmFjZSB0byBhbGxvdyB5b3UgdG8gcHJvZ3JhbSB5b3VyIGNvbXB1dGVyIG1vcmUgZWFzaWx5LlxuICBcbmRlc2NyaWJlIGV4YWN0bHkgZXZlcnkgY2FzZSB5b3UgY2FuIHRoaW5rIG9mIHRoYXQgeW91IHdhbnQgdGhpcyBkcmF3aW5nIGFuZCBsYXlvdXQgc3lzdGVtIHRvIGhhbmRsZTpcbiAgIFxuKiBkcmF3IHRleHQgb24gdmFyaW91c2x5IGNvbG91cmVkIGJhY2tncm91bmRzIHRoYXQgY2FuIGJlIGRlZmluZWQgbG9jYWxseSBvciBnbG9iYWxseVxuKiBUT0RPXG5cbiopXG5cbigqXG5cbkFMV0FZUyBCUkVBSyBVUCBUSEUgUFJPQkxFTSBJTlRPIFNNQUxMRVIgQ0hVTktTIEJJVENIISFcblxuVGltZXMgSSB3b3VsZCBoYXZlIHNvbHZlZCBpdCBmYXN0ZXIgaWYgaSBicm9rZSBpdCB1cCBpbnN0ZWFkIG9mIHRyeWluZyB0byB1bmRlcnN0YW5kIGl0IGFsbCBhdCBvbmNlOiAyXG5cbmEgY29tcHV0YXRpb24gY29uc29sZVxuXG4tIGlybWluIHN0b3JlIHByb3ZpZGVzIGEgdHJlZSBvZiBkYXRhIG9iamVjdHNcbi0gdGhlIHRyZWUgY2FuIGJlIG5hdmlnYXRlZCBpbiB0aGUgZGVmYXVsdCB2aWV3XG4tIHRoZSBzZWxlY3RlZCBvYmplY3QgY2FuIGJlIGVkaXRlZCA8ZW50ZXI+IG9yIGV4ZWN1dGVkIGFzIGFuIG9jYW1sIHRvcCBsZXZlbCBwaHJhc2UgPEMtZW50ZXI+XG4tIGVhY2ggZXhlY3V0aW9uIHN0b3JlcyBhbnkgZWRpdGVkIG1vZGlmaWNhdGlvbnMgYW5kIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUgdGhhdCBwaHJhc2UgaW4gdGhlIGN1cnJlbnQgaXJtaW4gc3RvcmUgY29udGV4dCBhcyBhIGNvbW1pdCBtZXNzYWdlXG4tIHdoaWxlIGVkaXRpbmcgYSBkYXRhIG9iamVjdCA8Y3RybC1lbnRlcj4gd2lsbGUgc2VhcmNoIGZvciB0aGUgcHJldmlvdXMgYW5kIG5leHQgYDs7YCBvciBCT0YvRU9GIGFuZCBleGVjdXRlIHRoZSBlbmNsb3NlZCB0ZXh0IGFuZCB0aGUgY29tbWl0IG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGNoYXJhY3RlciBvZmZzZXRzIG9mIHRoZSBleGVjdXRlZCB0ZXh0LlxuLSBleGVjdXRpb25zIGNhbiBtb2RpZnkgdGhlIHdpbmRvdyBzeXN0ZW0gY3JlYXRpbmcgbmV3IHdpbmRvd3MgYW5kIHJlZGlyZWN0aW5nIGlucHV0IGZvY3VzLiBUaGV5IGRlZmluZSB0aGVpciBvd24gaW5wdXQgaGFuZGxpbmcgaG93ZXZlciBDLWcsQy1nLEMtZyB3aWxsIHJlc3RvcmUgdGhlIHdpbmRvdyBzeXN0ZW0gdG8gdGhlIGRlZmF1bHQ/P1xuXG5idXQgaG93IGRvIHdlIGludGVncmF0ZSB0aGlzIHdpdGggdGhlIG9jYW1sIGVudmlyb25tZW50IGFuZCBuYW1lIHNwYWNlcz8/XG5zb21lIG9wdGlvbnM6XG4tIGFsd2F5cyB3cmFwIGV4ZWN1dGlvbiB1bml0cyBmcm9tIGRhdGEgb2JqZWN0cyBpbiBzb21lIHNvcnQgb2YgbG9jYWwgbmFtZXNwYWNlIHNvIG9wZW5zIGFyZSBub3QgZ2xvYmFsP1xuLSBkaWcgaW50byB0aGUgdG9wbGV2ZWwgZW52aXJvbm1lbnQgYW5kIG1hbmlwdWxhdGUgaXQsIHRoaXMgd2lsbCBhbHNvIGhlbHAgd2l0aCB0aGluZ3MgbGlrZSBjb21wbGV0aW9uIGFuZCBjb250ZXh0IGhlbHBcblxuKilcbm9wZW4gSnNfb2Zfb2NhbWxcbm1vZHVsZSBGID0gRm10XG5cbm1vZHVsZSBMb2dzX3JlcG9ydGVyID0gc3RydWN0XG4gICgqIENvbnNvbGUgcmVwb3J0ZXIgKilcblxuICBvcGVuIEpzb29fcnVudGltZVxuXG4gIGxldCBjb25zb2xlIDogTG9ncy5sZXZlbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gICBmdW4gbGV2ZWwgcyAtPlxuICAgIGxldCBtZXRoID1cbiAgICAgIG1hdGNoIGxldmVsIHdpdGhcbiAgICAgIHwgTG9ncy5FcnJvciAtPiBcImVycm9yXCJcbiAgICAgIHwgTG9ncy5XYXJuaW5nIC0+IFwid2FyblwiXG4gICAgICB8IExvZ3MuSW5mbyAtPiBcImluZm9cIlxuICAgICAgfCBMb2dzLkRlYnVnIC0+IFwiZGVidWdcIlxuICAgICAgfCBMb2dzLkFwcCAtPiBcImxvZ1wiXG4gICAgaW5cbiAgICBpZ25vcmVcbiAgICAgIChKcy5tZXRoX2NhbGxcbiAgICAgICAgIChKcy5wdXJlX2pzX2V4cHIgXCJjb25zb2xlXCIpXG4gICAgICAgICBtZXRoXG4gICAgICAgICBbfCBKcy5zdHJpbmcgcyB8XSlcblxuICBsZXQgcHBmLCBmbHVzaCA9XG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDI1NSBpblxuICAgIGxldCBmbHVzaCAoKSA9XG4gICAgICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBiIGluXG4gICAgICBCdWZmZXIuY2xlYXIgYjtcbiAgICAgIHNcbiAgICBpblxuICAgIChGb3JtYXQuZm9ybWF0dGVyX29mX2J1ZmZlciBiLCBmbHVzaClcblxuICBsZXQgaG9vayA9XG4gICAgcmVmIChmdW4gbGV2ZWwgcyAtPlxuICAgICAgICBpZ25vcmUgKExvZ3MubGV2ZWxfdG9fc3RyaW5nIChTb21lIGxldmVsKSBeIFwiOiBcIiBeIHMpKVxuXG4gIGxldCBjb25zb2xlX3JlcG9ydCBfc3JjIGxldmVsIH5vdmVyIGsgbXNnZiA9XG4gICAgbGV0IGsgXyA9XG4gICAgICBsZXQgcyA9IGZsdXNoICgpIGluXG4gICAgICBjb25zb2xlIGxldmVsIHM7XG4gICAgICAhaG9vayBsZXZlbCBzO1xuICAgICAgb3ZlciAoKTtcbiAgICAgIGsgKClcbiAgICBpblxuICAgIG1zZ2YgQEAgZnVuID9oZWFkZXIgP3RhZ3MgZm10IC0+XG4gICAgbGV0IF90YWdzID0gdGFncyBpblxuICAgIG1hdGNoIGhlYWRlciB3aXRoXG4gICAgfCBOb25lIC0+IEZvcm1hdC5rZnByaW50ZiBrIHBwZiAoXCJAW1wiIF5eIGZtdCBeXiBcIkBdQC5cIilcbiAgICB8IFNvbWUgaCAtPiBGb3JtYXQua2ZwcmludGYgayBwcGYgKFwiWyVzXSBAW1wiIF5eIGZtdCBeXiBcIkBdQC5cIikgaFxuXG4gIGxldCBjb25zb2xlX3JlcG9ydGVyICgpID0geyBMb2dzLnJlcG9ydCA9IGNvbnNvbGVfcmVwb3J0IH1cbmVuZFxuXG5sZXQgXyA9XG4gIExvZ3Muc2V0X3JlcG9ydGVyIChMb2dzX3JlcG9ydGVyLmNvbnNvbGVfcmVwb3J0ZXIgKCkpO1xuICBMb2dzLnNldF9sZXZlbCAoU29tZSBEZWJ1ZylcblxubW9kdWxlIExvZyA9IExvZ3Ncbm1vZHVsZSBDb2h0dHBfYmFja2VuZCA9IENvaHR0cF9sd3RfanNvb1xuXG5tb2R1bGUgR2l0X2FmID0gc3RydWN0XG4gIG9wZW4gTHd0LkluZml4XG5cbiAgdHlwZSBlcnJvciA9IHxcblxuICBsZXQgZ2l0X2FmX3NjaGVtZSA6IFsgYEhUVFAgfCBgSFRUUFMgXSBNaW1pYy52YWx1ZSA9XG4gICAgTWltaWMubWFrZSB+bmFtZTpcImdpdC1hZi1zY2hlbWVcIlxuXG4gIGxldCBnaXRfYWZfcG9ydCA6IGludCBNaW1pYy52YWx1ZSA9IE1pbWljLm1ha2Ugfm5hbWU6XCJnaXQtYWYtcG9ydFwiXG5cbiAgbGV0IGdpdF9hZl9ob3N0bmFtZSA6IHN0cmluZyBNaW1pYy52YWx1ZSA9XG4gICAgTWltaWMubWFrZSB+bmFtZTpcImdpdC1hZi1ob3N0bmFtZVwiXG5cbiAgbGV0IHBwX2Vycm9yIDogZXJyb3IgRm10LnQgPSBmdW4gX3BwZiAtPiBmdW5jdGlvbiBfIC0+IC5cblxuICBsZXQgd2l0aF9yZWRpcmVjdHMgPyhtYXggPSAxMCkgfmYgdXJpID1cbiAgICBpZiBtYXggPCAxMCB0aGVuIGludmFsaWRfYXJnIFwid2l0aF9yZWRpcmVjdHNcIjtcbiAgICBsZXQgdGJsID0gSGFzaHRibC5jcmVhdGUgMHgxMCBpblxuICAgIGxldCByZWMgZ28gbWF4IHVyaSA9XG4gICAgICBmIHVyaSA+Pj0gZnVuIChyZXNwLCBib2R5KSAtPlxuICAgICAgbGV0IHN0YXR1c19jb2RlID1cbiAgICAgICAgQ29odHRwLihSZXNwb25zZS5zdGF0dXMgcmVzcCB8PiBDb2RlLmNvZGVfb2Zfc3RhdHVzKVxuICAgICAgaW5cbiAgICAgIGlmIENvaHR0cC5Db2RlLmlzX3JlZGlyZWN0aW9uIHN0YXR1c19jb2RlIHRoZW5cbiAgICAgICAgbWF0Y2hcbiAgICAgICAgICBDb2h0dHAuKFJlc3BvbnNlLmhlYWRlcnMgcmVzcCB8PiBIZWFkZXIuZ2V0X2xvY2F0aW9uKVxuICAgICAgICB3aXRoXG4gICAgICAgIHwgU29tZSB1cmknIHdoZW4gSGFzaHRibC5tZW0gdGJsIHVyaScgfHwgbWF4ID0gMCAtPlxuICAgICAgICAgICAgTHd0LnJldHVybiAocmVzcCwgYm9keSlcbiAgICAgICAgfCBTb21lIHVyaScgLT5cbiAgICAgICAgICAgIEhhc2h0YmwuYWRkIHRibCB1cmknICgpO1xuICAgICAgICAgICAgQ29odHRwX2x3dC5Cb2R5LmRyYWluX2JvZHkgYm9keSA+Pj0gZnVuICgpIC0+XG4gICAgICAgICAgICBnbyAocHJlZCBtYXgpIHVyaSdcbiAgICAgICAgfCBOb25lIC0+IEx3dC5yZXR1cm4gKHJlc3AsIGJvZHkpXG4gICAgICBlbHNlIEx3dC5yZXR1cm4gKHJlc3AsIGJvZHkpXG4gICAgaW5cbiAgICBnbyBtYXggdXJpXG5cbiAgbGV0IGdldCB+Y3R4Ol8gPyhoZWFkZXJzID0gW10pIHVyaSA9XG4gICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2cgKEpzLnN0cmluZyBcIkdpdF9Db2h0dHBfY29uc29sZS5nZXQoKVxcblwiKTtcbiAgICBsZXQgaGVhZGVycyA9IENvaHR0cC5IZWFkZXIub2ZfbGlzdCBoZWFkZXJzIGluXG4gICAgbGV0IGYgdXJpID0gQ29odHRwX2JhY2tlbmQuQ2xpZW50LmdldCB+aGVhZGVycyB1cmkgaW5cbiAgICB3aXRoX3JlZGlyZWN0cyB+ZiB1cmkgPj49IGZ1biAoX3Jlc3AsIGJvZHkpIC0+XG4gICAgQ29odHRwX2x3dC5Cb2R5LnRvX3N0cmluZyBib2R5ID4+PSBmdW4gYm9keSAtPlxuICAgIEx3dC5yZXR1cm5fb2sgKCgpLCBib2R5KVxuXG4gIGxldCBwb3N0IH5jdHg6XyA/KGhlYWRlcnMgPSBbXSkgdXJpIGJvZHkgPVxuICAgIGxldCBoZWFkZXJzID0gQ29odHRwLkhlYWRlci5vZl9saXN0IGhlYWRlcnMgaW5cbiAgICBsZXQgYm9keSA9IENvaHR0cF9sd3QuQm9keS5vZl9zdHJpbmcgYm9keSBpblxuICAgIGxldCBmIHVyaSA9XG4gICAgICBDb2h0dHBfYmFja2VuZC5DbGllbnQucG9zdCB+aGVhZGVycyB+Y2h1bmtlZDpmYWxzZSB+Ym9keSB1cmlcbiAgICBpblxuICAgIHdpdGhfcmVkaXJlY3RzIH5mIHVyaSA+Pj0gZnVuIChfcmVzcCwgYm9keSkgLT5cbiAgICBDb2h0dHBfbHd0LkJvZHkudG9fc3RyaW5nIGJvZHkgPj49IGZ1biBib2R5IC0+XG4gICAgTHd0LnJldHVybl9vayAoKCksIGJvZHkpXG5lbmRcblxubW9kdWxlIEdpdF9jb25zb2xlX2h0dHAgPSBzdHJ1Y3RcbiAgb3BlbiBMd3QuSW5maXhcblxuICBsZXQgY29udGV4dCBjdHggPVxuICAgICgqIEhUVFAgKilcbiAgICBsZXQgZWRuID0gTWltaWMubWFrZSB+bmFtZTpcImFmLWh0dHAtZW5kcG9pbnRcIiBpblxuICAgIGxldCBrMSBnaXRfYWZfc2NoZW1lIGdpdF9hZl9ob3N0bmFtZSBnaXRfYWZfcG9ydCA9XG4gICAgICBtYXRjaCBnaXRfYWZfc2NoZW1lIHdpdGhcbiAgICAgIHwgYEhUVFAgLT4gTHd0LnJldHVybl9zb21lIChnaXRfYWZfaG9zdG5hbWUsIGdpdF9hZl9wb3J0KVxuICAgICAgfCBfIC0+IEx3dC5yZXR1cm5fbm9uZVxuICAgIGluXG4gICAgbGV0IGN0eCA9XG4gICAgICBNaW1pYy5mb2xkIGVkblxuICAgICAgICBNaW1pYy5GdW4uXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVxIEdpdF9hZi5naXRfYWZfc2NoZW1lO1xuICAgICAgICAgICAgcmVxIEdpdF9hZi5naXRfYWZfaG9zdG5hbWU7XG4gICAgICAgICAgICBkZnQgR2l0X2FmLmdpdF9hZl9wb3J0IDgwO1xuICAgICAgICAgIF1cbiAgICAgICAgfms6azEgY3R4XG4gICAgaW5cblxuICAgICgqIEhUVFBTICopXG4gICAgbGV0IGVkbiA9IE1pbWljLm1ha2Ugfm5hbWU6XCJhZi1odHRwcy1lbmRwb2ludFwiIGluXG4gICAgbGV0IGsxIGdpdF9hZl9zY2hlbWUgZ2l0X2FmX2hvc3RuYW1lIGdpdF9hZl9wb3J0ID1cbiAgICAgIG1hdGNoIGdpdF9hZl9zY2hlbWUgd2l0aFxuICAgICAgfCBgSFRUUFMgLT4gTHd0LnJldHVybl9zb21lIChnaXRfYWZfaG9zdG5hbWUsIGdpdF9hZl9wb3J0KVxuICAgICAgfCBfIC0+IEx3dC5yZXR1cm5fbm9uZVxuICAgIGluXG5cbiAgICBsZXQgY3R4ID1cbiAgICAgIE1pbWljLmZvbGQgZWRuXG4gICAgICAgIE1pbWljLkZ1bi5cbiAgICAgICAgICBbXG4gICAgICAgICAgICByZXEgR2l0X2FmLmdpdF9hZl9zY2hlbWU7XG4gICAgICAgICAgICByZXEgR2l0X2FmLmdpdF9hZl9ob3N0bmFtZTtcbiAgICAgICAgICAgIGRmdCBHaXRfYWYuZ2l0X2FmX3BvcnQgNDQzO1xuICAgICAgICAgIF1cbiAgICAgICAgfms6azEgY3R4XG4gICAgaW5cblxuICAgIGN0eFxuXG4gIG1vZHVsZSBIVFRQID0gc3RydWN0XG4gICAgdHlwZSBzdGF0ZSA9XG4gICAgICB8IEhhbmRzaGFrZVxuICAgICAgfCBHZXQgb2Yge1xuICAgICAgICAgIGFkdmVydGlzZWRfcmVmcyA6IHN0cmluZztcbiAgICAgICAgICB1cmkgOiBVcmkudDtcbiAgICAgICAgICBoZWFkZXJzIDogKHN0cmluZyAqIHN0cmluZykgbGlzdDtcbiAgICAgICAgICBjdHggOiBNaW1pYy5jdHg7XG4gICAgICAgIH1cbiAgICAgIHwgUG9zdCBvZiB7XG4gICAgICAgICAgbXV0YWJsZSBvdXRwdXQgOiBzdHJpbmc7XG4gICAgICAgICAgdXJpIDogVXJpLnQ7XG4gICAgICAgICAgaGVhZGVycyA6IChzdHJpbmcgKiBzdHJpbmcpIGxpc3Q7XG4gICAgICAgICAgY3R4IDogTWltaWMuY3R4O1xuICAgICAgICB9XG4gICAgICB8IEVycm9yXG5cbiAgICB0eXBlIGZsb3cgPSB7IGVuZHBvaW50IDogVXJpLnQ7IG11dGFibGUgc3RhdGUgOiBzdGF0ZSB9XG4gICAgdHlwZSBlcnJvciA9IFsgYE1zZyBvZiBzdHJpbmcgXVxuICAgIHR5cGUgd3JpdGVfZXJyb3IgPSBbIGBDbG9zZWQgfCBgTXNnIG9mIHN0cmluZyBdXG5cbiAgICBsZXQgcHBfZXJyb3IgcHBmIChgTXNnIGVycikgPSBGbXQuc3RyaW5nIHBwZiBlcnJcblxuICAgIGxldCBwcF93cml0ZV9lcnJvciBwcGYgPSBmdW5jdGlvblxuICAgICAgfCBgQ2xvc2VkIC0+IEZtdC5zdHJpbmcgcHBmIFwiQ29ubmVjdGlvbiBjbG9zZWQgYnkgcGVlclwiXG4gICAgICB8IGBNc2cgZXJyIC0+IEZtdC5zdHJpbmcgcHBmIGVyclxuXG4gICAgbGV0IHdyaXRlIHQgY3MgPVxuICAgICAgbWF0Y2ggdC5zdGF0ZSB3aXRoXG4gICAgICB8IEhhbmRzaGFrZSB8IEdldCBfIC0+XG4gICAgICAgICAgTHd0LnJldHVybl9lcnJvciAoYE1zZyBcIkhhbmRzaGFrZSBoYXMgbm90IGJlZW4gZG9uZVwiKVxuICAgICAgfCBFcnJvciAtPiBMd3QucmV0dXJuX2Vycm9yIChgTXNnIFwiSGFuZHNoYWtlIGdvdCBhbiBlcnJvclwiKVxuICAgICAgfCBQb3N0ICh7IG91dHB1dDsgXyB9IGFzIHYpIC0+XG4gICAgICAgICAgbGV0IG91dHB1dCA9IG91dHB1dCBeIENzdHJ1Y3QudG9fc3RyaW5nIGNzIGluXG4gICAgICAgICAgdi5vdXRwdXQgPC0gb3V0cHV0O1xuICAgICAgICAgIEx3dC5yZXR1cm5fb2sgKClcblxuICAgIGxldCB3cml0ZXYgdCBjc3MgPVxuICAgICAgbGV0IHJlYyBnbyA9IGZ1bmN0aW9uXG4gICAgICAgIHwgW10gLT4gTHd0LnJldHVybl9vayAoKVxuICAgICAgICB8IHggOjogciAtPiAoXG4gICAgICAgICAgICB3cml0ZSB0IHggPj49IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IE9rICgpIC0+IGdvIHJcbiAgICAgICAgICAgIHwgRXJyb3IgXyBhcyBlcnIgLT4gTHd0LnJldHVybiBlcnIpXG4gICAgICBpblxuICAgICAgZ28gY3NzXG5cbiAgICBsZXQgcmVhZCB0ID1cbiAgICAgIG1hdGNoIHQuc3RhdGUgd2l0aFxuICAgICAgfCBIYW5kc2hha2UgLT5cbiAgICAgICAgICBMd3QucmV0dXJuX2Vycm9yIChgTXNnIFwiSGFuZHNoYWtlIGhhcyBub3QgYmVlbiBkb25lXCIpXG4gICAgICB8IEVycm9yIC0+IEx3dC5yZXR1cm5fZXJyb3IgKGBNc2cgXCJIYW5kc2hha2UgZ290IGFuIGVycm9yXCIpXG4gICAgICB8IEdldCB7IGFkdmVydGlzZWRfcmVmczsgdXJpOyBoZWFkZXJzOyBjdHggfSAtPlxuICAgICAgICAgIHQuc3RhdGUgPC0gUG9zdCB7IG91dHB1dCA9IFwiXCI7IHVyaTsgaGVhZGVyczsgY3R4IH07XG4gICAgICAgICAgTHd0LnJldHVybl9vayAoYERhdGEgKENzdHJ1Y3Qub2Zfc3RyaW5nIGFkdmVydGlzZWRfcmVmcykpXG4gICAgICB8IFBvc3QgeyBvdXRwdXQ7IHVyaTsgaGVhZGVyczsgY3R4IH0gLT4gKFxuICAgICAgICAgIEdpdF9hZi5wb3N0IH5jdHggfmhlYWRlcnMgdXJpIG91dHB1dCA+Pj0gZnVuY3Rpb25cbiAgICAgICAgICB8IE9rIChfcmVzcCwgY29udGVudHMpIC0+XG4gICAgICAgICAgICAgIEx3dC5yZXR1cm5fb2sgKGBEYXRhIChDc3RydWN0Lm9mX3N0cmluZyBjb250ZW50cykpXG4gICAgICAgICAgfCBFcnJvciBlcnIgLT5cbiAgICAgICAgICAgICAgTHd0LnJldHVybl9lcnJvciAoYE1zZyAoRm10LnN0ciBcIiVhXCIgcHBfZXJyb3IgZXJyKSkpXG5cbiAgICBsZXQgY2xvc2UgXyA9IEx3dC5yZXR1cm5fdW5pdFxuXG4gICAgdHlwZSBlbmRwb2ludCA9IFVyaS50XG5cbiAgICBsZXQgY29ubmVjdCBlbmRwb2ludCA9XG4gICAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZ1xuICAgICAgICAoSnMuc3RyaW5nIFwiR2l0X0NvbnNvbGVfaHR0cC5IVFRQLmNvbm5lY3QoKVxcblwiKTtcbiAgICAgIEx3dC5yZXR1cm5fb2sgeyBlbmRwb2ludDsgc3RhdGUgPSBIYW5kc2hha2UgfVxuICBlbmRcblxuICBsZXQgaHR0cF9lbmRwb2ludCwgaHR0cF9wcm90b2NvbCA9XG4gICAgTWltaWMucmVnaXN0ZXIgfm5hbWU6XCJodHRwXCIgKG1vZHVsZSBIVFRQKVxuXG4gIGxldCBjb25uZWN0IChjdHggOiBNaW1pYy5jdHgpID1cbiAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZyAoSnMuc3RyaW5nIFwiR2l0X0NvbnNvbGVfaHR0cC5jb25uZWN0KClcXG5cIik7XG4gICAgbGV0IG1vZHVsZSBUID0gKHZhbCBNaW1pYy5yZXByIGh0dHBfcHJvdG9jb2wpIGluXG4gICAgbGV0IGVkbiA9IE1pbWljLm1ha2Ugfm5hbWU6XCJodHRwLWVuZHBvaW50XCIgaW5cbiAgICBsZXQgazAgdXJpID0gTHd0LnJldHVybl9zb21lIHVyaSBpblxuICAgIGxldCBrMSBnaXRfdHJhbnNtaXNzaW9uIGdpdF9zY2hlbWUgPVxuICAgICAgbWF0Y2ggKGdpdF90cmFuc21pc3Npb24sIGdpdF9zY2hlbWUpIHdpdGhcbiAgICAgIHwgYEhUVFAgKHVyaSwgXyksIChgSFRUUCB8IGBIVFRQUykgLT4gTHd0LnJldHVybl9zb21lIHVyaVxuICAgICAgfCBfIC0+IEx3dC5yZXR1cm5fbm9uZVxuICAgIGluXG4gICAgbGV0IGsyIGdpdF9zY2hlbWUgZ2l0X3VyaSBnaXRfaHR0cF9oZWFkZXJzID1cbiAgICAgIG1hdGNoIGdpdF9zY2hlbWUgd2l0aFxuICAgICAgfCBgR2l0IHwgYFNTSCB8IGBTY2hlbWUgXyAtPiBMd3QucmV0dXJuX25vbmVcbiAgICAgIHwgYEhUVFAgfCBgSFRUUFMgLT5cbiAgICAgICAgICBsZXQgaGVhZGVycyA9XG4gICAgICAgICAgICAoXCJjb250ZW50LXR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LWdpdC11cGxvYWQtcGFjay1yZXF1ZXN0XCIpXG4gICAgICAgICAgICA6OiBnaXRfaHR0cF9oZWFkZXJzXG4gICAgICAgICAgaW5cbiAgICAgICAgICBsZXQgaGFuZHNoYWtlIH51cmkwIH51cmkxID0gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgVC5UIGZsb3cgLT4gKFxuICAgICAgICAgICAgICAgIEZpcmVidWcuY29uc29sZSMjbG9nXG4gICAgICAgICAgICAgICAgICAoSnMuc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAoRi5zdHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiR2l0X0NvbnNvbGVfaHR0cC5jb25uZWN0LmsyLmhhbmRzaGFrZSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgIHVyaTA9JyVzJyB1cmkxPSclcydcXG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKFVyaS50b19zdHJpbmcgdXJpMCkgKFVyaS50b19zdHJpbmcgdXJpMSkpKTtcbiAgICAgICAgICAgICAgICBsZXQgY3R4ID0gY29udGV4dCBNaW1pYy5lbXB0eSBpblxuICAgICAgICAgICAgICAgIEdpdF9hZi5nZXQgfmN0eCB+aGVhZGVycyB1cmkwID4+PSBmdW5jdGlvblxuICAgICAgICAgICAgICAgIHwgT2sgKF9yZXNwLCBhZHZlcnRpc2VkX3JlZnMpIC0+XG4gICAgICAgICAgICAgICAgICAgIGZsb3cuc3RhdGUgPC1cbiAgICAgICAgICAgICAgICAgICAgICBIVFRQLkdldFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhZHZlcnRpc2VkX3JlZnM7IHVyaSA9IHVyaTE7IGhlYWRlcnM7IGN0eCB9O1xuICAgICAgICAgICAgICAgICAgICBMd3QucmV0dXJuX3VuaXRcbiAgICAgICAgICAgICAgICB8IEVycm9yIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgZmxvdy5zdGF0ZSA8LSBFcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgTHd0LnJldHVybl91bml0KVxuICAgICAgICAgICAgfCBfIC0+IEx3dC5yZXR1cm5fdW5pdFxuICAgICAgICAgIGluXG4gICAgICAgICAgbGV0IGdpdF90cmFuc21pc3Npb24gPSBgSFRUUCAoZ2l0X3VyaSwgaGFuZHNoYWtlKSBpblxuICAgICAgICAgIEx3dC5yZXR1cm5fc29tZSBnaXRfdHJhbnNtaXNzaW9uXG4gICAgaW5cbiAgICBsZXQgY3R4ID1cbiAgICAgIE1pbWljLmZvbGQgaHR0cF9lbmRwb2ludCBNaW1pYy5GdW4uWyByZXEgZWRuIF0gfms6azAgY3R4XG4gICAgaW5cbiAgICBsZXQgY3R4ID1cbiAgICAgIE1pbWljLmZvbGQgZWRuXG4gICAgICAgIE1pbWljLkZ1bi5cbiAgICAgICAgICBbIHJlcSBTbWFydF9naXQuZ2l0X3RyYW5zbWlzc2lvbjsgcmVxIFNtYXJ0X2dpdC5naXRfc2NoZW1lIF1cbiAgICAgICAgfms6azEgY3R4XG4gICAgaW5cbiAgICBsZXQgY3R4ID1cbiAgICAgIE1pbWljLmZvbGQgU21hcnRfZ2l0LmdpdF90cmFuc21pc3Npb25cbiAgICAgICAgTWltaWMuRnVuLlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlcSBTbWFydF9naXQuZ2l0X3NjaGVtZTtcbiAgICAgICAgICAgIHJlcSBTbWFydF9naXQuZ2l0X3VyaTtcbiAgICAgICAgICAgIGRmdCBTbWFydF9naXQuZ2l0X2h0dHBfaGVhZGVycyBMaXN0LltdO1xuICAgICAgICAgIF1cbiAgICAgICAgfms6azIgY3R4XG4gICAgaW5cbiAgICBMd3QucmV0dXJuIGN0eFxuZW5kXG5cbm1vZHVsZSBOYXYgPSBzdHJ1Y3RcbiAgb3BlbiBMd3QuSW5maXhcblxuICBtb2R1bGUgQ29uZmlnID0gc3RydWN0XG4gICAgb3BlbiBJcm1pbi5CYWNrZW5kLkNvbmZcblxuICAgIGxldCBzcGVjID0gU3BlYy52IFwiY29uc29sZV9qc19naXRcIlxuXG4gICAgbW9kdWxlIEtleSA9IHN0cnVjdFxuICAgICAgbGV0IHJlZmVyZW5jZSA6IEdpdC5SZWZlcmVuY2UudCBJcm1pbi5UeXBlLnQgPVxuICAgICAgICBsZXQgb2Zfc3RyaW5nIHN0ciA9XG4gICAgICAgICAgR2l0LlJlZmVyZW5jZS5vZl9zdHJpbmcgc3RyIHw+IFJlc3VsdC5nZXRfb2tcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHRvX3N0cmluZyByID0gR2l0LlJlZmVyZW5jZS50b19zdHJpbmcgciBpblxuICAgICAgICBJcm1pbi5UeXBlLihtYXAgc3RyaW5nKSBvZl9zdHJpbmcgdG9fc3RyaW5nXG5cbiAgICAgIGxldCBoZWFkID1cbiAgICAgICAga2V5IH5zcGVjIH5kb2M6XCJUaGUgbWFpbiBicmFuY2ggb2YgdGhlIEdpdCByZXBvc2l0b3J5LlwiIFwiaGVhZFwiXG4gICAgICAgICAgSXJtaW4uVHlwZS4ob3B0aW9uIHJlZmVyZW5jZSlcbiAgICAgICAgICBOb25lXG5cbiAgICAgIGxldCBiYXJlID1cbiAgICAgICAga2V5IH5zcGVjIH5kb2M6XCJEbyBub3QgZXhwYW5kIHRoZSBmaWxlc3lzdGVtIG9uIHRoZSBkaXNrLlwiXG4gICAgICAgICAgXCJiYXJlXCIgSXJtaW4uVHlwZS5ib29sIGZhbHNlXG5cbiAgICAgIGxldCBsZXZlbCA9XG4gICAgICAgIGtleSB+c3BlYyB+ZG9jOlwiVGhlIFpsaWIgY29tcHJlc3Npb24gbGV2ZWwuXCIgXCJsZXZlbFwiXG4gICAgICAgICAgSXJtaW4uVHlwZS4ob3B0aW9uIGludClcbiAgICAgICAgICBOb25lXG5cbiAgICAgIGxldCBidWZmZXJzID1cbiAgICAgICAga2V5IH5zcGVjIH5kb2M6XCJUaGUgbnVtYmVyIG9mIDRLIHByZS1hbGxvY2F0ZWQgYnVmZmVycy5cIlxuICAgICAgICAgIFwiYnVmZmVyc1wiXG4gICAgICAgICAgSXJtaW4uVHlwZS4ob3B0aW9uIGludClcbiAgICAgICAgICBOb25lXG4gICAgZW5kXG5cbiAgICBsZXQgaW5pdCA/aGVhZCA/bGV2ZWwgP2J1ZmZlcnMgX3Jvb3QgPVxuICAgICAgbGV0IG1vZHVsZSBDID0gSXJtaW4uQmFja2VuZC5Db25mIGluXG4gICAgICBsZXQgY29uZmlnID0gQy5lbXB0eSBzcGVjIGluXG5cbiAgICAgIGxldCBjb25maWcgPSBDLmFkZCBjb25maWcgS2V5LmhlYWQgaGVhZCBpblxuICAgICAgbGV0IGNvbmZpZyA9IEMuYWRkIGNvbmZpZyBLZXkubGV2ZWwgbGV2ZWwgaW5cbiAgICAgIGxldCBjb25maWcgPSBDLmFkZCBjb25maWcgS2V5LmJ1ZmZlcnMgYnVmZmVycyBpblxuICAgICAgQy52ZXJpZnkgY29uZmlnXG4gIGVuZFxuXG4gIG1vZHVsZSBTID0gc3RydWN0XG4gICAgbW9kdWxlIFNjaGVtYSA9XG4gICAgICBJcm1pbl9naXQuU2NoZW1hLk1ha2UgKEdpdC5NZW0uU3RvcmUpIChJcm1pbi5Db250ZW50cy5TdHJpbmcpXG4gICAgICAgIChJcm1pbl9naXQuQnJhbmNoLk1ha2UgKElybWluLkJyYW5jaC5TdHJpbmcpKVxuXG4gICAgbW9kdWxlIFN5bmMnID0gc3RydWN0XG4gICAgICBtb2R1bGUgR2l0TWVtU3luYyA9IEdpdC5NZW0uU3luYyAoR2l0Lk1lbS5TdG9yZSlcbiAgICAgIGluY2x1ZGUgR2l0TWVtU3luY1xuICAgICAgKCogVGhpcyBpcyB3aGVyZSB0aGUgZmV0Y2ggYW5kIHB1c2ggYXJlIGJyb2tlbiAqKVxuICAgIGVuZFxuXG4gICAgbW9kdWxlIFNNYWtlciA9IElybWluX2dpdC5NYWtlciAoR2l0Lk1lbS5TdG9yZSkgKFN5bmMnKVxuICAgIG1vZHVsZSBTTWFkZSA9IFNNYWtlci5NYWtlIChTY2hlbWEpXG4gICAgaW5jbHVkZSBTTWFkZVxuXG4gICAgdHlwZSBlbmRwb2ludCA9IE1pbWljLmN0eCAqIFNtYXJ0X2dpdC5FbmRwb2ludC50XG5cbiAgICBsZXQgcmVtb3RlID8oY3R4ID0gTWltaWMuZW1wdHkpID9oZWFkZXJzIHVyaSA9XG4gICAgICBFXG4gICAgICAgIChGaXJlYnVnLmNvbnNvbGUjI2xvZyAoSnMuc3RyaW5nIFwiTmF2LlMucmVtb3RlKClcXG5cIik7XG4gICAgICAgICBsZXQgKCAhICkgZiBhIGIgPSBmIGIgYSBpblxuICAgICAgICAgbWF0Y2ggU21hcnRfZ2l0LkVuZHBvaW50Lm9mX3N0cmluZyB1cmkgd2l0aFxuICAgICAgICAgfCBPayBlZG4gLT5cbiAgICAgICAgICAgICBsZXQgZWRuID1cbiAgICAgICAgICAgICAgIE9wdGlvbi5mb2xkIH5ub25lOmVkblxuICAgICAgICAgICAgICAgICB+c29tZTooIVNtYXJ0X2dpdC5FbmRwb2ludC53aXRoX2hlYWRlcnNfaWZfaHR0cCBlZG4pXG4gICAgICAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgICAgICBpblxuICAgICAgICAgICAgIEZpcmVidWcuY29uc29sZSMjbG9nXG4gICAgICAgICAgICAgICAoSnMuc3RyaW5nIFwiTmF2LlMucmVtb3RlKCkgPSAoY3R4LCBlZG4pIFxcblwiKTtcbiAgICAgICAgICAgICAoY3R4LCBlZG4pXG4gICAgICAgICB8IEVycm9yIChgTXNnIGVycikgLT4gRm10LmludmFsaWRfYXJnIFwicmVtb3RlOiAlc1wiIGVycilcblxuICAgIG1vZHVsZSBCYWNrZW5kID0gc3RydWN0XG4gICAgICBpbmNsdWRlIEJhY2tlbmRcbiAgICAgIG1vZHVsZSBSID0gUmVtb3RlXG5cbiAgICAgIG1vZHVsZSBSZW1vdGUgPSBzdHJ1Y3RcbiAgICAgICAgaW5jbHVkZSBSXG5cbiAgICAgICAgdHlwZSBlbmRwb2ludCA9IE1pbWljLmN0eCAqIFNtYXJ0X2dpdC5FbmRwb2ludC50XG5cbiAgICAgICAgbGV0IGN0eCBlID0gZnN0IGVcbiAgICAgICAgbGV0IGVkbiBlID0gc25kIGVcblxuICAgICAgICBsZXQgZmV0Y2ggdCA/ZGVwdGggZW5kcG9pbnQgYnJhbmNoID1cbiAgICAgICAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZ1xuICAgICAgICAgICAgKEpzLnN0cmluZyBcIlMuQmFja2VuZC5SZW1vdGUud3JhcHBlZF9mZXRjaCgpXFxuXCIpO1xuICAgICAgICAgIFIuZmV0Y2ggdCA/ZGVwdGggZW5kcG9pbnQgYnJhbmNoXG4gICAgICBlbmRcbiAgICBlbmRcbiAgZW5kXG5cbiAgbW9kdWxlIFN5bmMgPSBJcm1pbi5TeW5jLk1ha2UgKFMpXG5cbiAgdHlwZSB0ID0gUy50cmVlXG4gIHR5cGUgdHJlZSA9IHRcbiAgdHlwZSBzdGVwID0gUy5zdGVwXG4gIHR5cGUgcGF0aCA9IHN0ZXAgbGlzdFxuXG4gIGxldCBpbml0ICgpID0gUy5SZXBvLnYgKElybWluX21lbS5jb25maWcgKCkpID4+PSBTLm1haW4gPj49IFMudHJlZVxuXG4gIGxldCB0ZXN0X3BvcHVsYXRlICgpIDogdCBMd3QudCA9XG4gICAgbGV0IGFkZCBwIHMgdCA9IFMuVHJlZS5hZGQgdCBwIHMgaW5cbiAgICBhZGQgWyBcImhlbGxvXCIgXSBcIndvcmxkXCIgKFMuVHJlZS5lbXB0eSAoKSlcbiAgICA+Pj0gYWRkIFsgXCJoZWxsb1wiOyBcImRhZGR5XCIgXSBcImlseVwiXG4gICAgPj49IGFkZCBbIFwiYmVlcFwiOyBcImJlZXBcIiBdIFwibW90aGVyZnVja2VyXCJcblxuICBsZXQgdGVzdF9wdWxsICgpIDogdCBMd3QudCA9XG4gICAgKCogdGVzdF9wb3B1bGF0ZSAoKSopXG4gICAgUy5SZXBvLnYgKENvbmZpZy5pbml0IFwiXCIpID4+PSBmdW4gcmVwbyAtPlxuICAgIFMub2ZfYnJhbmNoIHJlcG8gXCJjdXJyZW50XCIgPj49IGZ1biB0IC0+XG4gICAgR2l0X2NvbnNvbGVfaHR0cC5jb25uZWN0IE1pbWljLmVtcHR5ID4+PSBmdW4gY3R4IC0+XG4gICAgbGV0IHVwc3RyZWFtID1cbiAgICAgIFMucmVtb3RlIH5jdHggXCJodHRwczovL2xvY2FsaG9zdDo4MDgwL2NvbnNvbGUvcm9vdHN0b3JlLmdpdFwiXG4gICAgaW5cbiAgICBTeW5jLmZldGNoX2V4biB0IHVwc3RyZWFtID4+PSBmdW4gXyAtPiBTLnRyZWUgdFxuZW5kXG5cbm1vZHVsZSBJbnB1dCA9IHN0cnVjdFxuICB0eXBlIGJ1dHRvbiA9XG4gICAgWyBgTGVmdCB8IGBNaWRkbGUgfCBgUmlnaHQgfCBgU2Nyb2xsIG9mIFsgYFVwIHwgYERvd24gXSBdXG5cbiAgdHlwZSBzcGVjaWFsID1cbiAgICBbIGBFbnRlclxuICAgIHwgYEVzY2FwZVxuICAgIHwgYFRhYlxuICAgIHwgYEFycm93IG9mIFsgYFVwIHwgYERvd24gfCBgTGVmdCB8IGBSaWdodCBdXG4gICAgfCBgRnVuY3Rpb24gb2YgaW50XG4gICAgfCBgUGFnZSBvZiBbIGBVcCB8IGBEb3duIF1cbiAgICB8IGBIb21lXG4gICAgfCBgRW5kXG4gICAgfCBgSW5zZXJ0XG4gICAgfCBgRGVsZXRlXG4gICAgfCBgQmFja3NwYWNlXG4gICAgfCBgVW5rbm93biBvZiBzdHJpbmcgXVxuXG4gICgqIFR5cGUgb2Yga2V5IGNvZGUuICopXG4gIHR5cGUgY29kZSA9XG4gICAgWyBgVWNoYXIgb2YgVWNoYXIudCAoKiBBIHVuaWNvZGUgY2hhcmFjdGVyLiAqKSB8IHNwZWNpYWwgXVxuXG4gICgqIHN0b2xlbiBmcm9tIGxhbWJkYS10ZXJtL3NyYy9sVGVybV97ZWRpdCxrZXl9Lm1seyxpfSAqKVxuICBsZXQgc3RyaW5nX29mX2NvZGUgPSBmdW5jdGlvblxuICAgIHwgYFVjaGFyIGNoIC0+XG4gICAgICAgIGlmIFVjaGFyLmlzX2NoYXIgY2ggdGhlbiBGLnN0ciBcIkNoYXIgJyVjJ1wiIChVY2hhci50b19jaGFyIGNoKVxuICAgICAgICBlbHNlIEYuc3RyIFwiQ2hhciAweCUwMnhcIiAoVWNoYXIudG9faW50IGNoKVxuICAgIHwgYEVudGVyIC0+IFwiRW50ZXJcIlxuICAgIHwgYEVzY2FwZSAtPiBcIkVzY2FwZVwiXG4gICAgfCBgVGFiIC0+IFwiVGFiXCJcbiAgICB8IGBBcnJvdyBgVXAgLT4gXCJVcFwiXG4gICAgfCBgQXJyb3cgYERvd24gLT4gXCJEb3duXCJcbiAgICB8IGBBcnJvdyBgTGVmdCAtPiBcIkxlZnRcIlxuICAgIHwgYEFycm93IGBSaWdodCAtPiBcIlJpZ2h0XCJcbiAgICB8IGBGdW5jdGlvbiBpIC0+IEYuc3RyIFwiRiVkXCIgaVxuICAgIHwgYFBhZ2UgYFVwIC0+IFwiUGFnZSBVcFwiXG4gICAgfCBgUGFnZSBgRG93biAtPiBcIlBhZ2UgRG93blwiXG4gICAgfCBgSG9tZSAtPiBcIkhvbWVcIlxuICAgIHwgYEVuZCAtPiBcIkVuZFwiXG4gICAgfCBgSW5zZXJ0IC0+IFwiSW5zZXJ0XCJcbiAgICB8IGBEZWxldGUgLT4gXCJEZWxldGVcIlxuICAgIHwgYEJhY2tzcGFjZSAtPiBcIkJhY2tzcGFjZVwiXG4gICAgfCBgVW5rbm93biBzIC0+IFN0cmluZy5jb25jYXQgXCJVbmtub3duIFwiIFsgXCJcXFwiXCI7IHM7IFwiXFxcIlwiIF1cbiAgICB8IF8gLT4gXCJDb2RlIFVua25vd24hXCJcblxuICBsZXQgcHBfY29kZSBwcGYgdiA9IEYucGYgcHBmIFwiJXNcIiAoc3RyaW5nX29mX2NvZGUgdilcblxuICB0eXBlIG1vZHMgPSBbIGBTdXBlciB8IGBNZXRhIHwgYEN0cmwgfCBgU2hpZnQgXSBsaXN0XG5cbiAgbGV0IHBwX21vZHMgPVxuICAgIEYuKFxuICAgICAgbGlzdCB+c2VwOkYuc3AgKGZ1biBwcGYgLT4gZnVuY3Rpb25cbiAgICAgICAgfCBgU3VwZXIgLT4gcGYgcHBmIFwiYFN1cGVyXCJcbiAgICAgICAgfCBgTWV0YSAtPiBwZiBwcGYgXCJgTWV0YVwiXG4gICAgICAgIHwgYEN0cmwgLT4gcGYgcHBmIFwiYEN0cmxcIlxuICAgICAgICB8IGBTaGlmdCAtPiBwZiBwcGYgXCJgU2hpZnRcIikpXG5cbiAgdHlwZSBtb3VzZSA9XG4gICAgWyBgUHJlc3Mgb2YgYnV0dG9uIHwgYERyYWcgfCBgUmVsZWFzZSBdICogKGZsb2F0ICogZmxvYXQpICogbW9kc1xuXG4gIHR5cGUgcGFzdGUgPSBbIGBTdGFydCB8IGBFbmQgXVxuICB0eXBlIGtleWFjdGlvbiA9IFsgYFByZXNzIHwgYFJlbGVhc2UgfCBgUmVwZWF0IF1cbmVuZFxuXG5tb2R1bGUgRXZlbnRfanMgPSBzdHJ1Y3RcbiAgb3BlbiBKc19vZl9vY2FtbFxuXG4gIGxldCBldnRfb2ZfanNrZXkgKGV2dCA6IERvbV9odG1sLmtleWJvYXJkRXZlbnQgSnMudCkgPVxuICAgICggKG1hdGNoIEpzLk9wdGRlZi50b19vcHRpb24gZXZ0IyMua2V5IHdpdGhcbiAgICAgIHwgU29tZSBzIC0+IChcbiAgICAgICAgICBtYXRjaCBKcy50b19zdHJpbmcgcyB3aXRoXG4gICAgICAgICAgfCBcIkVudGVyXCIgLT4gYEVudGVyXG4gICAgICAgICAgfCBcIkVzY2FwZVwiIC0+IGBFc2NhcGVcbiAgICAgICAgICB8IFwiVGFiXCIgLT4gYFRhYlxuICAgICAgICAgIHwgXCJBcnJvd1VwXCIgLT4gYEFycm93IGBVcFxuICAgICAgICAgIHwgXCJBcnJvd0Rvd25cIiAtPiBgQXJyb3cgYERvd25cbiAgICAgICAgICB8IFwiQXJyb3dMZWZ0XCIgLT4gYEFycm93IGBMZWZ0XG4gICAgICAgICAgfCBcIkFycm93UmlnaHRcIiAtPiBgQXJyb3cgYFJpZ2h0XG4gICAgICAgICAgfCBcIlBhZ2VVcFwiIC0+IGBQYWdlIGBVcFxuICAgICAgICAgIHwgXCJQYWdlRG93blwiIC0+IGBQYWdlIGBEb3duXG4gICAgICAgICAgfCBcIkhvbWVcIiAtPiBgSG9tZVxuICAgICAgICAgIHwgXCJFbmRcIiAtPiBgRW5kXG4gICAgICAgICAgfCBcIkluc2VydFwiIC0+IGBJbnNlcnRcbiAgICAgICAgICB8IFwiRGVsZXRlXCIgLT4gYERlbGV0ZVxuICAgICAgICAgIHwgXCJCYWNrc3BhY2VcIiAtPiBgQmFja3NwYWNlXG4gICAgICAgICAgfCBzIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggRG9tX2h0bWwuS2V5Ym9hcmRfa2V5Lm9mX2V2ZW50IGV2dCB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBzJyAtPiBgVWNoYXIgcydcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGBVbmtub3duIHMpKVxuICAgICAgfCBOb25lIC0+IGBVbmtub3duIFwia2V5cHJlc3MgLmtleSBpcyBOb25lP1wiKSxcbiAgICAgIChpZiBKcy50b19ib29sIGV2dCMjLmFsdEtleSB0aGVuIFsgYE1ldGEgXSBlbHNlIFtdKVxuICAgICAgQCAoaWYgSnMudG9fYm9vbCBldnQjIy5zaGlmdEtleSB0aGVuIFsgYFNoaWZ0IF0gZWxzZSBbXSlcbiAgICAgIEAgKGlmIEpzLnRvX2Jvb2wgZXZ0IyMuY3RybEtleSB0aGVuIFsgYEN0cmwgXSBlbHNlIFtdKVxuICAgICAgQCBpZiBKcy50b19ib29sIGV2dCMjLm1ldGFLZXkgdGhlbiBbIGBTdXBlciBdIGVsc2UgW10gKVxuZW5kXG5cbm9wZW4gR2dcblxubW9kdWxlIE5WRyA9IHN0cnVjdFxuICBpbmNsdWRlIEdyYXBodl93ZWJnbFxuXG4gIG1vZHVsZSBDb2xvciA9IHN0cnVjdFxuICAgIGluY2x1ZGUgR3JhcGh2X3dlYmdsLkNvbG9yXG5cbiAgICBsZXQgbm9uZSA9IENvbG9yLnRyYW5zcGFyZW50XG4gICAgbGV0IHJnYmYgPSBDb2xvci5yZ2JmXG4gICAgbGV0IGdyYXkgYSA9IHJnYmYgfnI6YSB+ZzphIH5iOmFcbiAgICBsZXQgbGlnaHQgPSBncmF5IDAuOFxuICAgIGxldCBkYXJrID0gZ3JheSAwLjJcblxuICAgIGxldCBibGFjayA9IGdyYXkgMC5cbiAgICBhbmQgcmVkID0gcmdiZiB+cjoxLiB+ZzowLiB+YjowLlxuICAgIGFuZCBncmVlbiA9IHJnYmYgfnI6MC4gfmc6MS4gfmI6MC5cbiAgICBhbmQgeWVsbG93ID0gcmdiZiB+cjoxLiB+ZzoxLiB+YjowLlxuICAgIGFuZCBibHVlID0gcmdiZiB+cjowLiB+ZzowLiB+YjoxLlxuICAgIGFuZCBtYWdlbnRhID0gcmdiZiB+cjoxLiB+ZzowLiB+YjoxLlxuICAgIGFuZCBjeWFuID0gcmdiZiB+cjowLiB+ZzoxLiB+YjoxLlxuICAgIGFuZCB3aGl0ZSA9IHJnYmYgfnI6MS4gfmc6MS4gfmI6MS5cbiAgICBhbmQgbGlnaHRibGFjayA9IGdyYXkgMC41XG4gICAgYW5kIGxpZ2h0cmVkID0gcmdiZiB+cjoxLjAgfmc6MC41IH5iOjAuNVxuICAgIGFuZCBsaWdodGdyZWVuID0gcmdiZiB+cjowLjUgfmc6MS4wIH5iOjAuNVxuICAgIGFuZCBsaWdodHllbGxvdyA9IHJnYmYgfnI6MS4wIH5nOjEuMCB+YjowLjVcbiAgICBhbmQgbGlnaHRibHVlID0gcmdiZiB+cjowLjUgfmc6MC41IH5iOjEuMFxuICAgIGFuZCBsaWdodG1hZ2VudGEgPSByZ2JmIH5yOjEuMCB+ZzowLjUgfmI6MS4wXG4gICAgYW5kIGxpZ2h0Y3lhbiA9IHJnYmYgfnI6MC41IH5nOjEuMCB+YjoxLjBcbiAgICBhbmQgbGlnaHR3aGl0ZSA9IHJnYmYgfnI6MS4wIH5nOjEuMCB+YjoxLjBcblxuICAgIGxldCAoID0gKSBhIGIgPSBhLnIgPSBiLnIgJiYgYS5nID0gYi5nICYmIGEuYiA9IGIuYiAmJiBhLmEgPSBiLmFcblxuICAgIGxldCAoICsrICkgYSBiID1cbiAgICAgIHtcbiAgICAgICAgciA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5yICsuIGIucik7XG4gICAgICAgIGcgPSBGbG9hdC5jbGFtcCB+bWluOjAuIH5tYXg6MS4gKGEuZyArLiBiLmcpO1xuICAgICAgICBiID0gRmxvYXQuY2xhbXAgfm1pbjowLiB+bWF4OjEuIChhLmIgKy4gYi5iKTtcbiAgICAgICAgYSA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5hICsuIGIuYSk7XG4gICAgICB9XG5cbiAgICBsZXQgcmVwbGFjZSB+cHJldiB+bmV4dCA9IGlmIG5leHQgPSBub25lIHRoZW4gcHJldiBlbHNlIG5leHRcblxuICAgIGxldCBwcCBwcGYgdCA6IHVuaXQgPVxuICAgICAgaWYgdCAhPSBub25lIHRoZW5cbiAgICAgICAgRi4oXG4gICAgICAgICAgZm10IFwiJWFcIiBwcGZcbiAgICAgICAgICAgIChsaXN0IChmbXQgXCIlMDJYXCIpKVxuICAgICAgICAgICAgKExpc3QubWFwXG4gICAgICAgICAgICAgICAoZnVuIGUgLT4gaW50X29mX2Zsb2F0IChlICouIDI1NS4pKVxuICAgICAgICAgICAgICAgWyB0LnI7IHQuZzsgdC5iOyB0LmEgXSkpXG4gICAgICBlbHNlIEYuZm10IFwiX1wiIHBwZlxuICBlbmRcbmVuZFxuXG5tb2R1bGUgQ29sb3IgPSBOVkcuQ29sb3JcblxuKCogZnJvbSBub3R0eS5tbCAqKVxubGV0IGJ0dyAoeCA6IGludCkgYSBiID0gYSA8PSB4ICYmIHggPD0gYlxuXG5tb2R1bGUgQnVmZmVyID0gc3RydWN0XG4gIGluY2x1ZGUgU3RkbGliLkJ1ZmZlclxuXG4gIGxldCBidWYgPSBjcmVhdGUgMTAyNFxuXG4gIGxldCBta3N0cmluZyBmID1cbiAgICBmIGJ1ZjtcbiAgICBsZXQgcmVzID0gY29udGVudHMgYnVmIGluXG4gICAgcmVzZXQgYnVmO1xuICAgIHJlc1xuXG4gIGxldCBhZGRfZGVjaW1hbCBiID0gZnVuY3Rpb25cbiAgICB8IHggd2hlbiBidHcgeCAwIDk5OSAtPlxuICAgICAgICBsZXQgZDEgPSB4IC8gMTAwIGFuZCBkMiA9IHggbW9kIDEwMCAvIDEwIGFuZCBkMyA9IHggbW9kIDEwIGluXG4gICAgICAgIGlmIGQxID4gMCB0aGVuIDB4MzAgKyBkMSB8PiBDaGFyLnVuc2FmZV9jaHIgfD4gYWRkX2NoYXIgYjtcbiAgICAgICAgaWYgZDEgKyBkMiA+IDAgdGhlbiAweDMwICsgZDIgfD4gQ2hhci51bnNhZmVfY2hyIHw+IGFkZF9jaGFyIGI7XG4gICAgICAgIDB4MzAgKyBkMyB8PiBDaGFyLnVuc2FmZV9jaHIgfD4gYWRkX2NoYXIgYlxuICAgIHwgeCAtPiBzdHJpbmdfb2ZfaW50IHggfD4gYWRkX3N0cmluZyBiXG5cbiAgbGV0IGFkZF9jaGFycyBiIGMgbiA9XG4gICAgZm9yIF8gPSAxIHRvIG4gZG9cbiAgICAgIGFkZF9jaGFyIGIgY1xuICAgIGRvbmVcbmVuZFxuXG5tb2R1bGUgU3RyaW5nID0gc3RydWN0XG4gIGluY2x1ZGUgU3RyaW5nXG5cbiAgbGV0IHN1YjBjcCBzIGkgbGVuID1cbiAgICBpZiBpID4gMCB8fCBsZW4gPCBsZW5ndGggcyB0aGVuIHN1YiBzIGkgbGVuIGVsc2Ugc1xuXG4gIGxldCBvZl9jaGFyc19yZXYgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gXCJcIlxuICAgIHwgWyBjIF0gLT4gU3RyaW5nLm1ha2UgMSBjXG4gICAgfCBjcyAtPlxuICAgICAgICBsZXQgbiA9IExpc3QubGVuZ3RoIGNzIGluXG4gICAgICAgIGxldCByZWMgZ28gYnMgaSA9XG4gICAgICAgICAgQnl0ZXMuKFxuICAgICAgICAgICAgZnVuY3Rpb25cbiAgICAgICAgICAgIHwgW10gLT4gdW5zYWZlX3RvX3N0cmluZyBic1xuICAgICAgICAgICAgfCB4IDo6IHhzIC0+XG4gICAgICAgICAgICAgICAgdW5zYWZlX3NldCBicyBpIHg7XG4gICAgICAgICAgICAgICAgZ28gYnMgKHByZWQgaSkgeHMpXG4gICAgICAgIGluXG4gICAgICAgIGdvIChCeXRlcy5jcmVhdGUgbikgKG4gLSAxKSBjc1xuZW5kXG5cbm1vZHVsZSBUZXh0ID0gc3RydWN0XG4gIGluY2x1ZGUgTlZHLlRleHRcblxuICB0eXBlIHQgPSBTdHJpbmcgb2Ygc3RyaW5nICgqIHwgVWNoYXJzIG9mIFVjaGFyLnQgbGlzdCopXG5cbiAgbGV0IGVtcHR5ID0gU3RyaW5nIFwiXCJcblxuICBsZXQgZXF1YWwgPSBmdW5jdGlvblxuICAgIHwgU3RyaW5nIGEgLT4gKCBmdW5jdGlvbiBTdHJpbmcgYiAtPiBTdHJpbmcuZXF1YWwgYSBiKVxuXG4gIGxldCBvZl9zdHJpbmcgcyA9IFN0cmluZyBzXG4gIGxldCB0b19zdHJpbmcgPSBmdW5jdGlvbiBTdHJpbmcgcyAtPiBzXG5cbiAgbGV0IG9mX3VjaGFycyB1Y3MgPVxuICAgIG9mX3N0cmluZyBAQCBCdWZmZXIubWtzdHJpbmdcbiAgICBAQCBmdW4gYnVmIC0+IEFycmF5Lml0ZXIgKEJ1ZmZlci5hZGRfdXRmXzhfdWNoYXIgYnVmKSB1Y3NcblxuICBsZXQgcmVwbGljYXRlYyB3IGMgPSBTdHJpbmcgKFN0cmluZy5tYWtlIChpbnRfb2ZfZmxvYXQgdykgYylcblxuICBsZXQgcHAgcHBmIDogdCAtPiB1bml0ID0gZnVuY3Rpb25cbiAgICB8IFN0cmluZyBzIC0+IEYuKGZtdCBcIlxcXCIlc1xcXCJcIiBwcGYgcylcbmVuZFxuXG5tb2R1bGUgU3R5bGUgPSBzdHJ1Y3RcbiAgbW9kdWxlIEZvbnQgPSBzdHJ1Y3RcbiAgICB0eXBlIHQgPSB7XG4gICAgICBzaXplIDogZmxvYXQgb3B0aW9uO1xuICAgICAgZm9udCA6IFsgYFNhbnMgfCBgU2VyaWYgfCBgTW9ubyB8IGBOb25lIF07XG4gICAgICB3ZWlnaHQgOiBbIGBCb2xkIHwgYFJlZ3VsYXIgfCBgTGlnaHQgfCBgTm9uZSBdO1xuICAgICAgaXRhbGljIDogWyBgSXRhbGljIHwgYE5vbmUgXTtcbiAgICAgIHVuZGVybGluZSA6IFsgYFVuZGVybGluZSB8IGBOb25lIF07XG4gICAgfVxuXG4gICAgbGV0IHBwIHBwZiA9XG4gICAgICBGLihcbiAgICAgICAgZm10IFwiJWFcIiBwcGZcbiAgICAgICAgICAocmVjb3JkIFsgZmllbGQgXCJzaXplXCIgKGZ1biBhIC0+IGEuc2l6ZSkgKG9wdGlvbiBmbG9hdCkgXSkpXG5cbiAgICBsZXQgZW1wdHkgPVxuICAgICAge1xuICAgICAgICBzaXplID0gTm9uZTtcbiAgICAgICAgZm9udCA9IGBOb25lO1xuICAgICAgICB3ZWlnaHQgPSBgTm9uZTtcbiAgICAgICAgaXRhbGljID0gYE5vbmU7XG4gICAgICAgIHVuZGVybGluZSA9IGBOb25lO1xuICAgICAgfVxuXG4gICAgbGV0IHVuZGVybGluZSA9IHsgZW1wdHkgd2l0aCB1bmRlcmxpbmUgPSBgVW5kZXJsaW5lIH1cbiAgICBsZXQgc2l6ZSB7IHNpemU7IF8gfSA9IG1hdGNoIHNpemUgd2l0aCBOb25lIC0+IDIwLiB8IFNvbWUgcyAtPiBzXG5cbiAgICBsZXQgbWVyZ2UgYSBiID1cbiAgICAgIHtcbiAgICAgICAgc2l6ZSA9XG4gICAgICAgICAgKG1hdGNoIChhLnNpemUsIGIuc2l6ZSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIHMsIE5vbmUgfCBOb25lLCBTb21lIHMgLT4gU29tZSBzXG4gICAgICAgICAgfCBTb21lIHMxLCBTb21lIHMyIC0+IFNvbWUgKEZsb2F0Lm1heF9udW0gczEgczIpKTtcbiAgICAgICAgZm9udCA9XG4gICAgICAgICAgKG1hdGNoIChhLmZvbnQsIGIuZm9udCkgd2l0aFxuICAgICAgICAgIHwgYFNhbnMsIF8gfCBfLCBgU2FucyAtPiBgU2Fuc1xuICAgICAgICAgIHwgYFNlcmlmLCAoYFNlcmlmIHwgYE1vbm8gfCBgTm9uZSkgfCAoYE1vbm8gfCBgTm9uZSksIGBTZXJpZlxuICAgICAgICAgICAgLT5cbiAgICAgICAgICAgICAgYFNlcmlmXG4gICAgICAgICAgfCBgTW9ubywgKGBNb25vIHwgYE5vbmUpIHwgYE5vbmUsIGBNb25vIC0+IGBNb25vXG4gICAgICAgICAgfCBgTm9uZSwgYE5vbmUgLT4gYE5vbmUpO1xuICAgICAgICB3ZWlnaHQgPVxuICAgICAgICAgIChtYXRjaCAoYS53ZWlnaHQsIGIud2VpZ2h0KSB3aXRoXG4gICAgICAgICAgfCBgQm9sZCwgXyB8IF8sIGBCb2xkIC0+IGBCb2xkXG4gICAgICAgICAgfCBgUmVndWxhciwgKGBSZWd1bGFyIHwgYExpZ2h0IHwgYE5vbmUpXG4gICAgICAgICAgfCAoYExpZ2h0IHwgYE5vbmUpLCBgUmVndWxhciAtPlxuICAgICAgICAgICAgICBgUmVndWxhclxuICAgICAgICAgIHwgYExpZ2h0LCAoYExpZ2h0IHwgYE5vbmUpIHwgYE5vbmUsIGBMaWdodCAtPiBgTGlnaHRcbiAgICAgICAgICB8IGBOb25lLCBgTm9uZSAtPiBgTm9uZSk7XG4gICAgICAgIGl0YWxpYyA9XG4gICAgICAgICAgKG1hdGNoIChhLml0YWxpYywgYi5pdGFsaWMpIHdpdGhcbiAgICAgICAgICB8IGBJdGFsaWMsIF8gfCBfLCBgSXRhbGljIC0+IGBJdGFsaWNcbiAgICAgICAgICB8IF8gLT4gYE5vbmUpO1xuICAgICAgICB1bmRlcmxpbmUgPVxuICAgICAgICAgIChtYXRjaCAoYS51bmRlcmxpbmUsIGIudW5kZXJsaW5lKSB3aXRoXG4gICAgICAgICAgfCBgVW5kZXJsaW5lLCBfIHwgXywgYFVuZGVybGluZSAtPiBgVW5kZXJsaW5lXG4gICAgICAgICAgfCBfIC0+IGBOb25lKTtcbiAgICAgIH1cblxuICAgIGxldCBzZXQgdmcgdCA9XG4gICAgICAobWF0Y2ggdC5zaXplIHdpdGhcbiAgICAgIHwgU29tZSBzaXplIC0+IFRleHQuc2V0X3NpemUgdmcgfnNpemVcbiAgICAgIHwgTm9uZSAtPiAoKSk7XG4gICAgICBtYXRjaCB0LmZvbnQgd2l0aFxuICAgICAgfCBgU2FucyAtPiBUZXh0LnNldF9mb250X2ZhY2Ugdmcgfm5hbWU6XCJzYW5zXCJcbiAgICAgIHwgXyAtPiAoKVxuXG4gICAgbGV0IHJlcGxhY2UgfnByZXYgfm5leHQgPSBtZXJnZSBwcmV2IG5leHRcbiAgZW5kXG5cbiAgdHlwZSB0ID0geyBmZyA6IENvbG9yLnQ7IGJnIDogQ29sb3IudDsgZm9udCA6IEZvbnQudCB9XG4gIHR5cGUgYXR0ciA9IHRcblxuICBsZXQgcHAgcHBmIGEgPVxuICAgIEYuKGZtdCBcIkBbPGg+JWEvJWFAXVwiIHBwZiBDb2xvci5wcCBhLmZnIENvbG9yLnBwIGEuYmcpXG5cbiAgbGV0IGVxdWFsID0gKCA9PSApXG5cbiAgbGV0IGVtcHR5ID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLnRyYW5zcGFyZW50O1xuICAgICAgYmcgPSBDb2xvci50cmFuc3BhcmVudDtcbiAgICAgIGZvbnQgPSBGb250LmVtcHR5O1xuICAgIH1cblxuICBsZXQgZGFyayA9IHsgZW1wdHkgd2l0aCBmZyA9IENvbG9yLmxpZ2h0OyBiZyA9IENvbG9yLmRhcmsgfVxuXG4gIGxldCAoICsrICkgYTEgYTIgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IuKGExLmZnICsrIGEyLmZnKTtcbiAgICAgIGJnID0gQ29sb3IuKGExLmJnICsrIGEyLmJnKTtcbiAgICAgIGZvbnQgPSBGb250Lm1lcmdlIGExLmZvbnQgYTIuZm9udDtcbiAgICB9XG5cbiAgbGV0IHJlcGxhY2UgfnByZXYgfm5leHQgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IucmVwbGFjZSB+cHJldjpwcmV2LmZnIH5uZXh0Om5leHQuZmc7XG4gICAgICBiZyA9IENvbG9yLnJlcGxhY2UgfnByZXY6cHJldi5iZyB+bmV4dDpuZXh0LmJnO1xuICAgICAgZm9udCA9IEZvbnQucmVwbGFjZSB+cHJldjpwcmV2LmZvbnQgfm5leHQ6bmV4dC5mb250O1xuICAgIH1cblxuICBsZXQgZmcgPyh0ID0gZW1wdHkpIGMgPSB7IHQgd2l0aCBmZyA9IGMgfVxuICBsZXQgYmcgPyh0ID0gZW1wdHkpIGMgPSB7IHQgd2l0aCBiZyA9IGMgfVxuICBsZXQgZm9udCA/KHQgPSBlbXB0eSkgYyA9IHsgdCB3aXRoIGZvbnQgPSBjIH1cblxuICBsZXQgbWVyZ2UgYSBiID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLmxlcnAgYS5mZyBiLmZnIH5hOjAuNTtcbiAgICAgIGJnID0gQ29sb3IubGVycCBhLmJnIGIuYmcgfmE6MC41O1xuICAgICAgZm9udCA9IEZvbnQubWVyZ2UgYS5mb250IGIuZm9udDtcbiAgICB9XG5cbiAgbGV0IHNldCB2ZyBzID1cbiAgICBGLmVwciBcIlN0eWxlLnNldCBALlwiO1xuICAgIE5WRy5zZXRfZmlsbF9jb2xvciB2ZyB+Y29sb3I6cy5iZztcbiAgICBOVkcuc2V0X3N0cm9rZV9jb2xvciB2ZyB+Y29sb3I6cy5mZztcbiAgICBGb250LnNldCB2ZyBzLmZvbnRcblxuICBsZXQgbWVudV9tYWluID0gYmcgQ29sb3IuZ3JlZW4gKysgZmcgQ29sb3IuYmxhY2tcbiAgbGV0IG1lbnVfc3ViID0gYmcgQ29sb3IubGlnaHRncmVlbiArKyBmZyBDb2xvci5ibGFja1xuXG4gIGxldCBjbGlja2FibGUgPVxuICAgIChiZyBAQCBDb2xvci5yZ2JmIH5yOjAuMiB+ZzowLjIgfmI6MC41KSArKyAoZmcgQEAgQ29sb3IubGlnaHQpXG5cbiAgbGV0IGN1cnNvciA9IChmZyBAQCBDb2xvci5kYXJrKSArKyAoYmcgQEAgQ29sb3IueWVsbG93KVxuZW5kXG5cbm1vZHVsZSBQYWQgPSBzdHJ1Y3RcbiAgb3BlbiBHZ1xuXG4gIHR5cGUgdCA9IHsgdCA6IHNpemUxOyBiIDogc2l6ZTE7IGwgOiBzaXplMTsgciA6IHNpemUxIH1cblxuICBsZXQgZW1wdHkgPVxuICAgIHsgdCA9IFNpemUxLnplcm87IGIgPSBTaXplMS56ZXJvOyBsID0gU2l6ZTEuemVybzsgciA9IFNpemUxLnplcm8gfVxuXG4gIGxldCBhbGwgdiA9IHsgdCA9IHY7IGIgPSB2OyBsID0gdjsgciA9IHYgfVxuZW5kXG5cbm1vZHVsZSBBID0gU3R5bGVcblxubW9kdWxlIEkgPSBzdHJ1Y3RcbiAgb3BlbiBHZ1xuXG4gIHR5cGUgZGltID0gcDJcblxuICB0eXBlIHQgPVxuICAgIHwgRW1wdHlcbiAgICB8IFNlZ21lbnQgb2YgVGV4dC50ICgqIGJveDIgaXMgK2Nyb3AvLXBhZCBvZiBkcmF3biBUZXh0LnQgKilcbiAgICB8IEF0dHIgb2YgKHQgKiBBLnQpXG4gICAgfCBIY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBWY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBaY29tcG9zZSBvZiAodCAqIHQpXG4gICAgfCBIY3JvcCBvZiAodCAqIGZsb2F0ICogZmxvYXQpXG4gICAgfCBWY3JvcCBvZiAodCAqIGZsb2F0ICogZmxvYXQpXG4gICAgfCBWb2lkIG9mIGRpbVxuXG4gIGxldCBwMl9tYXggcDEgcDIgOiBwMiA9XG4gICAgVjIuKHYgKEZsb2F0Lm1heCAoeCBwMSkgKHggcDIpKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgIFtAQGlubGluZV1cblxuICBsZXQgYm91bmRzX3NlZ21lbnQgdmcgcCA6IFRleHQudCAtPiBOVkcuVGV4dC5ib3VuZHMgPSBmdW5jdGlvblxuICAgIHwgU3RyaW5nIHMgLT5cbiAgICAgICAgbGV0IG9wZW4gTlZHLlRleHQgaW5cbiAgICAgICAgbGV0IHsgYXNjZW5kZXI7IF8gfSA9IE5WRy5UZXh0Lm1ldHJpY3MgdmcgaW5cbiAgICAgICAgYm91bmRzIHZnIH54OihWMi54IHApIH55OihWMi55IHAgKy4gYXNjZW5kZXIpIHNcblxuICBsZXQgcmVjIHNpemUgdmcgcCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPiBWMi56ZXJvXG4gICAgfCBTZWdtZW50IHMgLT5cbiAgICAgICAgbGV0IE5WRy5UZXh0LnsgYm94ID0geyB5bWF4OyB5bWluOyBfIH07IGFkdmFuY2UgfSA9XG4gICAgICAgICAgYm91bmRzX3NlZ21lbnQgdmcgcCBzXG4gICAgICAgIGluXG4gICAgICAgIFYyLnYgYWR2YW5jZSAoeW1heCAtLiB5bWluKVxuICAgIHwgQXR0ciAodCwgX2EpIC0+IHNpemUgdmcgcCB0XG4gICAgfCBIY29tcG9zZSAodDEsIHQyKSAtPlxuICAgICAgICBsZXQgcDEgPSBzaXplIHZnIHAgdDEgaW5cbiAgICAgICAgbGV0IHAyID0gc2l6ZSB2ZyBWMi4ocCArIHYgKHggcDEpIDAuKSB0MiBpblxuICAgICAgICBWMi4odiAoeCBwMSArLiB4IHAyKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgIHwgVmNvbXBvc2UgKHQxLCB0MikgLT5cbiAgICAgICAgbGV0IHAxID0gc2l6ZSB2ZyBwIHQxIGluXG4gICAgICAgIGxldCBwMiA9IHNpemUgdmcgVjIuKHAgKyB2IDAuICh5IHAxKSkgdDIgaW5cbiAgICAgICAgVjIuKHYgKEZsb2F0Lm1heCAoeCBwMSkgKHggcDIpKSAoeSBwMSArLiB5IHAyKSlcbiAgICB8IFpjb21wb3NlICh0MSwgdDIpIC0+IHAyX21heCAoc2l6ZSB2ZyBwIHQxKSAoc2l6ZSB2ZyBwIHQyKVxuICAgIHwgSGNyb3AgKHQsIGxlZnQsIHJpZ2h0KSAtPlxuICAgICAgICAoKiBwb3NpdGl2ZSB2YWx1ZXMgYXJlIGNyb3AsIG5lZ2F0aXZlIGlzIHBhZCAqKVxuICAgICAgICBWMi4oc2l6ZSB2ZyAocCAtIHYgbGVmdCAwLikgdCAtIHYgcmlnaHQgMC4pXG4gICAgfCBWY3JvcCAodCwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgIFYyLihzaXplIHZnIChwIC0gdiAwLiB0b3ApIHQgLSB2IDAuIGJvdHRvbSlcbiAgICB8IFZvaWQgcCcgLT4gVjIuKHAgKyBwJylcblxuICBsZXQgZW1wdHkgPSBFbXB0eVxuICBsZXQgdm9pZCB3IGggPSBWb2lkIChQMi52IHcgaClcblxuICBsZXQgYXR0ciBhID0gZnVuY3Rpb25cbiAgICB8IEF0dHIgKHQsIGEwKSAtPiBBdHRyICh0LCBBLihyZXBsYWNlIH5wcmV2OmEwIH5uZXh0OmEpKVxuICAgIHwgdCAtPiBBdHRyICh0LCBhKVxuXG4gIGxldCAoIDx8PiApIHQxIHQyID1cbiAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgfCBfLCBFbXB0eSAtPiB0MVxuICAgIHwgRW1wdHksIF8gLT4gdDJcbiAgICB8IF8gLT4gSGNvbXBvc2UgKHQxLCB0MilcblxuICBsZXQgKCA8LT4gKSB0MSB0MiA9XG4gICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgIHwgXywgRW1wdHkgLT4gdDFcbiAgICB8IEVtcHR5LCBfIC0+IHQyXG4gICAgfCBfIC0+IFZjb21wb3NlICh0MSwgdDIpXG5cbiAgbGV0ICggPC8+ICkgdDEgdDIgPVxuICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICB8IF8sIEVtcHR5IC0+IHQxXG4gICAgfCBFbXB0eSwgXyAtPiB0MlxuICAgIHwgXyAtPiBaY29tcG9zZSAodDEsIHQyKVxuXG4gICgqIGNyb3AgaXMgcG9zaXRpdmUgdmFsdWUsIHBhZCBpcyBuZWdhdGl2ZSAqKVxuXG4gIGxldCBoY3JvcCBsZWZ0IHJpZ2h0IGltZyA9XG4gICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiSGNyb3AgKCVmLCAlZilcIiBsZWZ0IHJpZ2h0KTsgKilcbiAgICBIY3JvcCAoaW1nLCBsZWZ0LCByaWdodClcblxuICBsZXQgdmNyb3AgdG9wIGJvdHRvbSBpbWcgPVxuICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIlZjcm9wICglZiwgJWYpXCIgdG9wIGJvdHRvbSk7ICopXG4gICAgVmNyb3AgKGltZywgdG9wLCBib3R0b20pXG5cbiAgbGV0IGNyb3AgPyhsID0gMC4pID8ociA9IDAuKSA/KHQgPSAwLikgPyhiID0gMC4pIGltZyA9XG4gICAgbGV0IGltZyA9IGlmIGwgPD4gMC4gfHwgciA8PiAwLiB0aGVuIGhjcm9wIGwgciBpbWcgZWxzZSBpbWcgaW5cbiAgICBpZiB0IDw+IDAuIHx8IGIgPD4gMC4gdGhlbiB2Y3JvcCB0IGIgaW1nIGVsc2UgaW1nXG5cbiAgbGV0IGhwYWQgbGVmdCByaWdodCBpbWcgPSBoY3JvcCAoLS5sZWZ0KSAoLS5yaWdodCkgaW1nXG4gIGxldCB2cGFkIHRvcCBib3R0b20gaW1nID0gdmNyb3AgKC0udG9wKSAoLS5ib3R0b20pIGltZ1xuXG4gIGxldCBwYWQgPyhsID0gMC4pID8ociA9IDAuKSA/KHQgPSAwLikgPyhiID0gMC4pIGltZyA9XG4gICAgY3JvcCB+bDooLS5sKSB+cjooLS5yKSB+dDooLS50KSB+YjooLS5iKSBpbWdcblxuICBsZXQgcmVjIGNvbmNhdG0geiAoIEAgKSB4cyA9XG4gICAgbGV0IHJlYyBhY2N1bSAoIEAgKSA9IGZ1bmN0aW9uXG4gICAgICB8IChbXSB8IFsgXyBdKSBhcyB4cyAtPiB4c1xuICAgICAgfCBhIDo6IGIgOjogeHMgLT4gKGEgQCBiKSA6OiBhY2N1bSAoIEAgKSB4c1xuICAgIGluXG4gICAgbWF0Y2ggeHMgd2l0aFxuICAgIHwgW10gLT4gelxuICAgIHwgWyB4IF0gLT4geFxuICAgIHwgeHMgLT4gY29uY2F0bSB6ICggQCApIChhY2N1bSAoIEAgKSB4cylcblxuICBsZXQgaGNhdCA9IGNvbmNhdG0gZW1wdHkgKCA8fD4gKVxuICBsZXQgdmNhdCA9IGNvbmNhdG0gZW1wdHkgKCA8LT4gKVxuICBsZXQgemNhdCB4cyA9IExpc3QuZm9sZF9yaWdodCAoIDwvPiApIHhzIGVtcHR5XG5cbiAgbGV0IHRleHQgYXR0ciB0eCA9XG4gICAgbWF0Y2ggYXR0ciB3aXRoIFNvbWUgYSAtPiBBdHRyIChTZWdtZW50IHR4LCBhKSB8IF8gLT4gU2VnbWVudCB0eFxuXG4gIGxldCBzdHJpbmcgP2F0dHIgcyA9IHRleHQgYXR0ciAoVGV4dC5vZl9zdHJpbmcgcylcbiAgbGV0IHVjaGFycyA/YXR0ciBhID0gdGV4dCBhdHRyIChUZXh0Lm9mX3VjaGFycyBhKVxuXG4gIGxldCByZWMgbGluc3BjbSB6ICggQCApIHggbiBmID1cbiAgICBtYXRjaCBuIHdpdGhcbiAgICB8IDAuIC0+IHpcbiAgICB8IDEuIC0+IGYgeFxuICAgIHwgXyAtPlxuICAgICAgICBsZXQgbSA9IG4gLy4gMi4gaW5cbiAgICAgICAgbGluc3BjbSB6ICggQCApIHggbSBmIEAgbGluc3BjbSB6ICggQCApICh4ICsuIG0pIChuIC0uIG0pIGZcblxuICBsZXQgdGFidWxhdGUgbSBuIGYgPVxuICAgIGxldCBtID0gbWF4IG0gMC4gYW5kIG4gPSBtYXggbiAwLiBpblxuICAgIGxpbnNwY20gZW1wdHkgKCA8LT4gKSAwLiBuIChmdW4geSAtPlxuICAgICAgICBsaW5zcGNtIGVtcHR5ICggPHw+ICkgMC4gbSAoZnVuIHggLT4gZiB4IHkpKVxuXG4gIGxldCBjaGFycyBjdG9yID9hdHRyIGMgdyBoID1cbiAgICBsZXQgdyA9IG1heCAwLiB3IGFuZCBoID0gbWF4IDAuIGggaW5cbiAgICBpZiB3IDwgMS4gfHwgaCA8IDEuIHRoZW4gdm9pZCB3IGhcbiAgICBlbHNlXG4gICAgICBsZXQgbGluZSA9IHRleHQgYXR0ciAoY3RvciB3IGMpIGluXG4gICAgICB0YWJ1bGF0ZSAxLiBoIChmdW4gXyBfIC0+IGxpbmUpXG5cbiAgbGV0IGNoYXIgPSBjaGFycyBUZXh0LnJlcGxpY2F0ZWNcbiAgKCogbGV0IHVjaGFyID0gY2hhcnMgVGV4dC5yZXBsaWNhdGV1ICopXG5cbiAgKCogbW9kdWxlIEZtdCA9IHN0cnVjdFxuICAgICAgIG9wZW4gRm9ybWF0XG5cbiAgICAgICB0eXBlIHN0YWcgKz0gQXR0ciBvZiBBLnRcblxuICAgICAgIGxldCBwdXNoIHIgeCA9IHIgOj0geCA6OiAhclxuICAgICAgIGxldCBwb3AgciA9IHIgOj0gbWF0Y2ggIXIgd2l0aCBfIDo6IHhzIC0+IHhzIHwgXyAtPiBbXVxuICAgICAgIGxldCB0b3BfYSByID0gbWF0Y2ggIXIgd2l0aCBhIDo6IF8gLT4gYSB8IF8gLT4gQS5lbXB0eVxuXG4gICAgICAgbGV0IGNyZWF0ZSAoKSA9XG4gICAgICAgICBsZXQgaW1nLCBsaW5lLCBhdHRyID0gKHJlZiBlbXB0eSwgcmVmIGVtcHR5LCByZWYgW10pIGluXG4gICAgICAgICBsZXQgZm10ID1cbiAgICAgICAgICAgZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnNcbiAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICBvdXRfZmx1c2ggPVxuICAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICAgaW1nIDo9ICFpbWcgPC0+ICFsaW5lO1xuICAgICAgICAgICAgICAgICAgIGxpbmUgOj0gZW1wdHk7XG4gICAgICAgICAgICAgICAgICAgYXR0ciA6PSBbXSk7XG4gICAgICAgICAgICAgICBvdXRfbmV3bGluZSA9XG4gICAgICAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgICBpbWcgOj0gIWltZyA8LT4gIWxpbmU7XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSB2b2lkIDAuIDEuKTtcbiAgICAgICAgICAgICAgIG91dF9zdHJpbmcgPVxuICAgICAgICAgICAgICAgICAoZnVuIHMgaSBuIC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PVxuICAgICAgICAgICAgICAgICAgICAgIWxpbmVcbiAgICAgICAgICAgICAgICAgICAgIDx8PiBzdHJpbmcgfmF0dHI6KHRvcF9hIGF0dHIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuKHN1YjBjcCBzIGkgbikpXG4gICAgICAgICAgICAgICAgICgqIE5vdCBlbnRpcmVseSBjbGVhcjsgZWl0aGVyIG9yIGJvdGggY291bGQgYmUgdm9pZDogKik7XG4gICAgICAgICAgICAgICBvdXRfc3BhY2VzID1cbiAgICAgICAgICAgICAgICAgKGZ1biB3IC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSAhbGluZSA8fD4gY2hhciB+YXR0cjoodG9wX2EgYXR0cikgJyAnIHcgMSk7XG4gICAgICAgICAgICAgICBvdXRfaW5kZW50ID1cbiAgICAgICAgICAgICAgICAgKGZ1biB3IC0+XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSAhbGluZSA8fD4gY2hhciB+YXR0cjoodG9wX2EgYXR0cikgJyAnIHcgMSk7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgaW5cbiAgICAgICAgIHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10XG4gICAgICAgICAgIHtcbiAgICAgICAgICAgICAocHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBmbXQgKCkpIHdpdGhcbiAgICAgICAgICAgICBtYXJrX29wZW5fc3RhZyA9XG4gICAgICAgICAgICAgICAoZnVuY3Rpb25cbiAgICAgICAgICAgICAgIHwgQXR0ciBhIC0+XG4gICAgICAgICAgICAgICAgICAgcHVzaCBhdHRyIEEuKHRvcF9hIGF0dHIgKysgYSk7XG4gICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgfCBfIC0+IFwiXCIpO1xuICAgICAgICAgICAgIG1hcmtfY2xvc2Vfc3RhZyA9XG4gICAgICAgICAgICAgICAoZnVuIF8gLT5cbiAgICAgICAgICAgICAgICAgcG9wIGF0dHI7XG4gICAgICAgICAgICAgICAgIFwiXCIpO1xuICAgICAgICAgICB9O1xuICAgICAgICAgcHBfc2V0X21hcmtfdGFncyBmbXQgdHJ1ZTtcbiAgICAgICAgICggZm10LFxuICAgICAgICAgICBmdW4gKCkgLT5cbiAgICAgICAgICAgICBsZXQgaSA9ICFpbWcgaW5cbiAgICAgICAgICAgICBpbWcgOj0gZW1wdHk7XG4gICAgICAgICAgICAgbGluZSA6PSBlbXB0eTtcbiAgICAgICAgICAgICBhdHRyIDo9IFtdO1xuICAgICAgICAgICAgIGkgKVxuXG4gICAgICAgbGV0IHBwZiwgcmVzZXQgPSBjcmVhdGUgKClcblxuICAgICAgIGxldCBrc3RyZiA/KGF0dHIgPSBBLmVtcHR5KSA/KHcgPSAxMDAwMDAwKSBrIGZvcm1hdCA9XG4gICAgICAgICBsZXQgbSA9IHJlZiAwIGluXG4gICAgICAgICBsZXQgZjEgXyAoKSA9XG4gICAgICAgICAgIG0gOj0gcHBfZ2V0X21hcmdpbiBwcGYgKCk7XG4gICAgICAgICAgIHBwX3NldF9tYXJnaW4gcHBmIHc7XG4gICAgICAgICAgIHBwX29wZW5fc3RhZyBwcGYgKEF0dHIgYXR0cilcbiAgICAgICAgIGFuZCBrIF8gPVxuICAgICAgICAgICBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gICAgICAgICAgIHBwX3NldF9tYXJnaW4gcHBmICFtO1xuICAgICAgICAgICByZXNldCAoKSB8PiBrXG4gICAgICAgICBpblxuICAgICAgICAga2ZwcmludGYgayBwcGYgKFwiJWFcIiBeXiBmb3JtYXQpIGYxICgpXG5cbiAgICAgICBsZXQgc3RyZiA/YXR0ciA/dyBmb3JtYXQgPSBrc3RyZiA/YXR0ciA/dyAoZnVuIGkgLT4gaSkgZm9ybWF0XG5cbiAgICAgICBsZXQgYXR0ciBhdHRyIGYgZm10IHggPVxuICAgICAgICAgcHBfb3Blbl9zdGFnIGZtdCAoQXR0ciBhdHRyKTtcbiAgICAgICAgIGYgZm10IHg7XG4gICAgICAgICBwcF9jbG9zZV9zdGFnIGZtdCAoKVxuICAgICBlbmRcblxuICAgICAgIGxldCBrc3RyZiwgc3RyZiwgcHBfYXR0ciA9IEZtdC4oa3N0cmYsIHN0cmYsIGF0dHIpICopXG5cbiAgbW9kdWxlIERyYXcgPSBzdHJ1Y3RcbiAgICB0eXBlIGF0dHIgPSBTdHlsZS50XG4gICAgdHlwZSBwID0gUDIudFxuICAgIHR5cGUgZCA9IFsgYFggfCBgWSB8IGBaIF1cblxuICAgIGxldCBzdHJfb2ZfYm94IGIgPVxuICAgICAgUHJpbnRmLnNwcmludGYgXCIob3g6JTAuMWYgb3k6JTAuMWYgZXglMC4xZiBleSUwLjFmKVwiIChCb3gyLm94IGIpXG4gICAgICAgIChCb3gyLm95IGIpIChCb3gyLm1heHggYikgKEJveDIubWF4eSBiKVxuXG4gICAgbGV0IGZpbGxfYm94IHZnIGNvbG9yIGIgPVxuICAgICAgbGV0IG1vZHVsZSBQYXRoID0gTlZHLlBhdGggaW5cbiAgICAgIGxldCBvcGVuIE5WRyBpblxuICAgICAgTlZHLnNhdmUgdmc7XG4gICAgICBQYXRoLmJlZ2luXyB2ZztcbiAgICAgIFBhdGgucmVjdCB2ZyB+eDooQm94Mi5veCBiKSB+eTooQm94Mi5veSBiKSB+dzooQm94Mi53IGIpXG4gICAgICAgIH5oOihCb3gyLmggYik7XG4gICAgICBzZXRfZmlsbF9jb2xvciB2ZyB+Y29sb3I7XG4gICAgICBmaWxsIHZnO1xuICAgICAgTlZHLnJlc3RvcmUgdmc7XG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJmaWxsX2JveDogJWFcIiBCb3gyLnBwIGIpOyAqKVxuICAgICAgQm94Mi5zaXplIGJcblxuICAgIGxldCBwYXRoX2JveCB2ZyBjb2xvciA/KHdpZHRoID0gMC4pIGIgPVxuICAgICAgbGV0IG1vZHVsZSBQYXRoID0gTlZHLlBhdGggaW5cbiAgICAgIFBhdGguYmVnaW5fIHZnO1xuICAgICAgUGF0aC5yZWN0IHZnIH54OihCb3gyLm94IGIpIH55OihCb3gyLm95IGIpIH53OihCb3gyLncgYilcbiAgICAgICAgfmg6KEJveDIuaCBiKTtcbiAgICAgIGlmIHdpZHRoICE9IDAuIHRoZW4gTlZHLnNldF9zdHJva2Vfd2lkdGggdmcgfndpZHRoO1xuICAgICAgTlZHLnNldF9zdHJva2VfY29sb3IgdmcgfmNvbG9yO1xuICAgICAgTlZHLnN0cm9rZSB2ZztcbiAgICAgIEJveDIuc2l6ZSBiXG5cbiAgICBsZXQgdmNhdCBkIGEgYiA9XG4gICAgICBtYXRjaCBkIHdpdGhcbiAgICAgIHwgYFggLT5cbiAgICAgICAgICBWMi52IChWMi54IGEgKy4gVjIueCBiKSAoRmxvYXQubWF4X251bSAoVjIueSBhKSAoVjIueSBiKSlcbiAgICAgIHwgYFkgLT4gVjIudiAoRmxvYXQubWF4X251bSAoVjIueCBhKSAoVjIueCBiKSkgKFYyLnkgYSArLiBWMi55IGIpXG4gICAgICB8IGBaIC0+XG4gICAgICAgICAgVjIudlxuICAgICAgICAgICAgKEZsb2F0Lm1heF9udW0gKFYyLnggYSkgKFYyLnggYikpXG4gICAgICAgICAgICAoRmxvYXQubWF4X251bSAoVjIueSBhKSAoVjIueSBiKSlcblxuICAgIGxldCByZWMgcHAgPyhhdHRyID0gQS5lbXB0eSkgcHBmIDogdCAtPiB1bml0ID1cbiAgICAgIGxldCBvcGVuIEYgaW5cbiAgICAgIGxldCBjb21wb3NlID0gcGFpciAocGFyZW5zIChwcCB+YXR0cikpIChwYXJlbnMgKHBwIH5hdHRyKSkgaW5cbiAgICAgIGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGZtdCBcIkVtcHR5XCIgcHBmXG4gICAgICB8IFNlZ21lbnQgdiAtPiBmbXQgXCJAWzxoPlNlZ21lbnQgJWFAXVwiIHBwZiBUZXh0LnBwIHZcbiAgICAgIHwgQXR0ciAodCwgYSkgLT5cbiAgICAgICAgICBmbXQgXCJAWzxoPkF0dHIgJWFAXVwiIHBwZlxuICAgICAgICAgICAgKHBhaXIgfnNlcDpjb21tYSBBLnBwXG4gICAgICAgICAgICAgICAocHAgfmF0dHI6QS4ocmVwbGFjZSB+cHJldjphdHRyIH5uZXh0OmEpKSlcbiAgICAgICAgICAgIChBLihyZXBsYWNlIH5wcmV2OmF0dHIgfm5leHQ6YSksIHQpXG4gICAgICB8IEhjb21wb3NlIGEgLT4gZm10IFwiSGNhdCAlYVwiIHBwZiBjb21wb3NlIGFcbiAgICAgIHwgVmNvbXBvc2UgYSAtPiBmbXQgXCJWY2F0ICVhXCIgcHBmIGNvbXBvc2UgYVxuICAgICAgfCBaY29tcG9zZSBhIC0+IGZtdCBcIlpjYXQgJWFcIiBwcGYgY29tcG9zZSBhXG4gICAgICB8IEhjcm9wICh0LCBsZWZ0LCByaWdodCkgLT5cbiAgICAgICAgICBmbXQgXCJIY3JvcCAoJS4xZiwlLjFmLCVhKVwiIHBwZiBsZWZ0IHJpZ2h0IChwcCB+YXR0cikgdFxuICAgICAgfCBWY3JvcCAodCwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgICAgZm10IFwiVmNyb3AgKCUuMWYsJS4xZiwlYSlcIiBwcGYgdG9wIGJvdHRvbSAocHAgfmF0dHIpIHRcbiAgICAgIHwgVm9pZCBkaW0gLT4gZm10IFwiVm9pZCAlYVwiIHBwZiAocGFyZW5zIFYyLnBwKSBkaW1cblxuICAgIGxldCBzZWdtZW50X2tlcm5fY2FjaGUgPSByZWYgKEJveDIuemVybywgXCJcIilcblxuICAgIGxldCByZWMgc2VnbWVudCB2ZyBwIDogVGV4dC50IC0+IFAyLnQgPSBmdW5jdGlvblxuICAgICAgfCBTdHJpbmcgcyAtPlxuICAgICAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIkkuRHJhdy5zZWdtZW50IHA9JWEgJXNcIiBHZy5WMi5wcCBwIHMpOyAqKVxuICAgICAgICAgICgqIGxldCBwJyA9XG4gICAgICAgICAgICAgICBsZXQgY2FjaGVfcCwgY2FjaGVfcyA9ICFzZWdtZW50X2tlcm5fY2FjaGUgaW5cbiAgICAgICAgICAgICAgICgqIHRyaWVzIHRvIGdldCB0aGUga2VybmluZyByaWdodCBhY3Jvc3Mgc2VnbWVudHMgKilcbiAgICAgICAgICAgICAgIGlmIFYyLihlcXVhbCAoQm94Mi5tYXggY2FjaGVfcCkgcCkgdGhlblxuICAgICAgICAgICAgICAgICBWMi4oXG4gICAgICAgICAgICAgICAgICAgQm94Mi5vIGNhY2hlX3BcbiAgICAgICAgICAgICAgICAgICArIHZcbiAgICAgICAgICAgICAgICAgICAgICAgKChib3VuZHNfc2VnbWVudCB2ZyAoQm94Mi5vIGNhY2hlX3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoVGV4dC5vZl9zdHJpbmcgKGNhY2hlX3MgXiBzKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5hZHZhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgLS4gKGJvdW5kc19zZWdtZW50IHZnIHAgKFRleHQub2Zfc3RyaW5nIHMpKS5hZHZhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgMC4pXG4gICAgICAgICAgICAgICBlbHNlIHBcbiAgICAgICAgICAgICBpbiAqKVxuICAgICAgICAgIGxldCBtZXRyaWNzID0gTlZHLlRleHQubWV0cmljcyB2ZyBpblxuICAgICAgICAgIE5WRy5UZXh0LnRleHQgdmcgfng6KFYyLnggcClcbiAgICAgICAgICAgIH55OihWMi55IHAgKy4gbWV0cmljcy5hc2NlbmRlcilcbiAgICAgICAgICAgIHM7XG5cbiAgICAgICAgICBsZXQgc3ogPVxuICAgICAgICAgICAgVjIudiAoYm91bmRzX3NlZ21lbnQgdmcgcCAoVGV4dC5vZl9zdHJpbmcgcykpLmFkdmFuY2VcbiAgICAgICAgICAgICAgbWV0cmljcy5saW5lX2hlaWdodFxuICAgICAgICAgIGluXG4gICAgICAgICAgc2VnbWVudF9rZXJuX2NhY2hlIDo9IChCb3gyLih2IHAgc3opLCBzKTtcbiAgICAgICAgICBzelxuXG4gICAgYW5kIG5vZGUgdmcgYXR0ciBwIG4gOiBwMiA9XG4gICAgICAoKiByZXR1cm5zIHRoZSAqc2l6ZSogb2YgdGhlIGRyYXduIGFyZWEgbm90IHRoZSBtYXggY29vcmRpbmF0ZXMgYW55bW9yZSAqKVxuICAgICAgbGV0IGInID1cbiAgICAgICAgbWF0Y2ggbiB3aXRoXG4gICAgICAgIHwgRW1wdHkgfCBWb2lkIF8gLT4gcFxuICAgICAgICB8IFNlZ21lbnQgdGV4dCAtPiBzZWdtZW50IHZnIHAgdGV4dFxuICAgICAgICB8IEF0dHIgKGksIGEpIC0+XG4gICAgICAgICAgICBsZXQgYTAgPSBBLihyZXBsYWNlIH5wcmV2OmF0dHIgfm5leHQ6YSkgaW5cbiAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChBLihhLmJnKSAhPSBBLihhdHRyLmJnKSlcbiAgICAgICAgICAgICAgJiYgQS4oYTAuYmcpICE9IE5WRy5Db2xvci50cmFuc3BhcmVudFxuICAgICAgICAgICAgdGhlbiBmaWxsX2JveCB2ZyBhMC5iZyAoQm94Mi52IHAgKHNpemUgdmcgcCBpKSkgfD4gaWdub3JlO1xuICAgICAgICAgICAgaWYgQS4oYXR0ci5mZykgIT0gYS5mZyB0aGVuIChcbiAgICAgICAgICAgICAgTlZHLnNldF9maWxsX2NvbG9yIHZnIH5jb2xvcjpTdHlsZS4oYTAuZmcpO1xuICAgICAgICAgICAgICBOVkcuc2V0X3N0cm9rZV9jb2xvciB2ZyB+Y29sb3I6U3R5bGUuKGEwLmZnKSk7XG4gICAgICAgICAgICBub2RlIHZnIGEwIHAgaVxuICAgICAgICB8IEhjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIFYyLihwICsgdiAoVjIueCBwMSkgMC4pIGkyIGluXG4gICAgICAgICAgICBWMi4odiAoeCBwMSArLiB4IHAyKSAoRmxvYXQubWF4ICh5IHAxKSAoeSBwMikpKVxuICAgICAgICB8IFZjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIFYyLihwICsgdiAwLiAoVjIueSBwMSkpIGkyIGluXG4gICAgICAgICAgICBWMi4odiAoRmxvYXQubWF4ICh4IHAxKSAoeCBwMikpICh5IHAxICsuIHkgcDIpKVxuICAgICAgICB8IFpjb21wb3NlIChpMSwgaTIpIC0+XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgcCBpMSBpblxuICAgICAgICAgICAgbGV0IHAyID0gbm9kZSB2ZyBhdHRyIHAgaTIgaW5cbiAgICAgICAgICAgIHAyX21heCBwMSBwMlxuICAgICAgICB8IEhjcm9wIChpLCBsZWZ0LCByaWdodCkgLT5cbiAgICAgICAgICAgIGxldCBwMCA9IHNpemUgdmcgcCBpIGluXG4gICAgICAgICAgICBOVkcuc2F2ZSB2ZztcbiAgICAgICAgICAgIE5WRy5TY2lzc29yLnNjaXNzb3Igdmcgfng6KFYyLnggcCkgfnk6KFYyLnkgcClcbiAgICAgICAgICAgICAgfnc6KFYyLnggcDAgLS4gcmlnaHQpXG4gICAgICAgICAgICAgIH5oOihWMi55IHAwKTtcbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBWMi4ocCAtIHYgbGVmdCAwLikgaSBpblxuICAgICAgICAgICAgTlZHLnJlc3RvcmUgdmc7XG4gICAgICAgICAgICBWMi4ocDEgLSB2IChsZWZ0ICsuIHJpZ2h0KSAwLilcbiAgICAgICAgfCBWY3JvcCAoaSwgdG9wLCBib3R0b20pIC0+XG4gICAgICAgICAgICBsZXQgcDAgPSBzaXplIHZnIHAgaSBpblxuICAgICAgICAgICAgTlZHLnNhdmUgdmc7XG4gICAgICAgICAgICBOVkcuU2Npc3Nvci5zY2lzc29yIHZnIH54OihWMi54IHApIH55OihWMi55IHApXG4gICAgICAgICAgICAgIH53OihWMi54IHAwKVxuICAgICAgICAgICAgICB+aDooVjIueSBwMCAtLiBib3R0b20pO1xuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIFYyLihwIC0gdiAwLiB0b3ApIGkgaW5cbiAgICAgICAgICAgIE5WRy5yZXN0b3JlIHZnO1xuICAgICAgICAgICAgVjIuKHAxIC0gdiAwLiAodG9wICsuIGJvdHRvbSkpXG4gICAgICBpblxuXG4gICAgICAoKiBpZ25vcmVcbiAgICAgICAgIChwYXRoX2JveCB2Zy52Z1xuICAgICAgICAgICAgKE5WRy5Db2xvci5yZ2JhZiB+cjoxLiB+ZzowLiB+YjowLiB+YTowLjIpXG4gICAgICAgICAgICAoQm94Mi5vZl9wdHMgYiBiJykpOyAqKVxuICAgICAgYidcbiAgZW5kXG5lbmRcblxubW9kdWxlIE5vdHR1aSA9IHN0cnVjdFxuICBsZXQgbWF4aSB4IHkgOiBpbnQgPSBpZiB4ID4geSB0aGVuIHggZWxzZSB5XG4gIGxldCBtaW5pIHggeSA6IGludCA9IGlmIHggPCB5IHRoZW4geCBlbHNlIHlcblxuICBtb2R1bGUgRm9jdXMgOiBzaWdcbiAgICB0eXBlIHZhciA9IGludCBMd2QudmFyXG4gICAgdHlwZSBoYW5kbGVcblxuICAgIHZhbCBtYWtlIDogdW5pdCAtPiBoYW5kbGVcbiAgICB2YWwgcmVxdWVzdCA6IGhhbmRsZSAtPiB1bml0XG4gICAgdmFsIHJlcXVlc3RfdmFyIDogdmFyIC0+IHVuaXRcbiAgICB2YWwgcmVsZWFzZSA6IGhhbmRsZSAtPiB1bml0XG5cbiAgICB0eXBlIHN0YXR1cyA9IEVtcHR5IHwgSGFuZGxlIG9mIGludCAqIHZhciB8IENvbmZsaWN0IG9mIGludFxuXG4gICAgdmFsIGVtcHR5IDogc3RhdHVzXG5cbiAgICAoKnZhbCBpc19lbXB0eSA6IHN0YXR1cyAtPiBib29sKilcbiAgICB2YWwgc3RhdHVzIDogaGFuZGxlIC0+IHN0YXR1cyBMd2QudFxuICAgIHZhbCB2YXIgOiBoYW5kbGUgLT4gdmFyXG4gICAgdmFsIGhhc19mb2N1cyA6IHN0YXR1cyAtPiBib29sXG4gICAgdmFsIG1lcmdlIDogc3RhdHVzIC0+IHN0YXR1cyAtPiBzdGF0dXNcbiAgICB2YWwgcHBfdmFyIDogRm9ybWF0LmZvcm1hdHRlciAtPiB2YXIgLT4gdW5pdFxuICAgIHZhbCBwcF9zdGF0dXMgOiBGb3JtYXQuZm9ybWF0dGVyIC0+IHN0YXR1cyAtPiB1bml0XG4gIGVuZCA9IHN0cnVjdFxuICAgIHR5cGUgdmFyID0gaW50IEx3ZC52YXJcbiAgICB0eXBlIHN0YXR1cyA9IEVtcHR5IHwgSGFuZGxlIG9mIGludCAqIHZhciB8IENvbmZsaWN0IG9mIGludFxuICAgIHR5cGUgaGFuZGxlID0gdmFyICogc3RhdHVzIEx3ZC50XG5cbiAgICBsZXQgbWFrZSAoKSA9XG4gICAgICBsZXQgdiA9IEx3ZC52YXIgMCBpblxuICAgICAgKHYsIEx3ZC5tYXAgfmY6KGZ1biBpIC0+IEhhbmRsZSAoaSwgdikpIChMd2QuZ2V0IHYpKVxuXG4gICAgbGV0IGVtcHR5IDogc3RhdHVzID0gRW1wdHlcbiAgICBsZXQgdmFyIChoIDogaGFuZGxlKSA6IHZhciA9IGZzdCBoXG4gICAgbGV0IHN0YXR1cyAoaCA6IGhhbmRsZSkgOiBzdGF0dXMgTHdkLnQgPSBzbmQgaFxuXG4gICAgbGV0IGhhc19mb2N1cyA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IEhhbmRsZSAoaSwgXykgfCBDb25mbGljdCBpIC0+IGkgPiAwXG5cbiAgICBsZXQgY2xvY2sgPSByZWYgMFxuXG4gICAgbGV0IHJlcXVlc3RfdmFyICh2IDogdmFyKSA9XG4gICAgICBpbmNyIGNsb2NrO1xuICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgIG0gXCJGb2N1cy5yZXF1ZXN0X3ZhciB2PSVkIGNsb2NrPSVkXCIgKEx3ZC5wZWVrIHYpICFjbG9jayk7XG4gICAgICBMd2Quc2V0IHYgIWNsb2NrXG5cbiAgICBsZXQgcmVxdWVzdCAoKHYsIF8pIDogaGFuZGxlKSA9IHJlcXVlc3RfdmFyIHZcblxuICAgIGxldCByZWxlYXNlICgodiwgXykgOiBoYW5kbGUpID1cbiAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICBtIFwiRm9jdXMucmVsZWFzZSB2PSVkIGNsb2NrPSVkXCIgKEx3ZC5wZWVrIHYpICFjbG9jayk7XG4gICAgICBpbmNyIGNsb2NrO1xuICAgICAgTHdkLnNldCB2IDBcblxuICAgIGxldCBtZXJnZSBzMSBzMiA6IHN0YXR1cyA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICB8IChFbXB0eSB8IEhhbmRsZSAoMCwgXykpLCB4IHwgeCwgKEVtcHR5IHwgSGFuZGxlICgwLCBfKSkgLT4geFxuICAgICAgfCBIYW5kbGUgKGkxLCBfKSwgSGFuZGxlIChpMiwgXykgd2hlbiBpMSA9IGkyIC0+IHMxXG4gICAgICB8IChIYW5kbGUgKGkxLCBfKSB8IENvbmZsaWN0IGkxKSwgQ29uZmxpY3QgaTIgd2hlbiBpMSA8IGkyIC0+IHMyXG4gICAgICB8IChIYW5kbGUgKGkxLCBfKSB8IENvbmZsaWN0IGkxKSwgSGFuZGxlIChpMiwgXykgd2hlbiBpMSA8IGkyIC0+XG4gICAgICAgICAgQ29uZmxpY3QgaTJcbiAgICAgIHwgQ29uZmxpY3QgXywgKEhhbmRsZSAoXywgXykgfCBDb25mbGljdCBfKSAtPiBzMVxuICAgICAgfCBIYW5kbGUgKGkxLCBfKSwgKEhhbmRsZSAoXywgXykgfCBDb25mbGljdCBfKSAtPiBDb25mbGljdCBpMVxuXG4gICAgbGV0IHBwX3ZhciBwcGYgdiA9IEYucGYgcHBmIFwiJWRcIiAoTHdkLnBlZWsgdilcblxuICAgIGxldCBwcF9zdGF0dXMgcHBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRi5wZiBwcGYgXCJFbXB0eVwiXG4gICAgICB8IEhhbmRsZSAoaSwgdikgLT4gRi5wZiBwcGYgXCJIYW5kbGUgKCVkLCAlYSlcIiBpIHBwX3ZhciB2XG4gICAgICB8IENvbmZsaWN0IGkgLT4gRi5wZiBwcGYgXCJDb25mbGljdCAlZFwiIGlcbiAgZW5kXG5cbiAgbW9kdWxlIEdyYXZpdHkgOiBzaWdcbiAgICB0eXBlIGRpcmVjdGlvbiA9IFsgYE5lZ2F0aXZlIHwgYE5ldXRyYWwgfCBgUG9zaXRpdmUgXVxuXG4gICAgdmFsIHBwX2RpcmVjdGlvbiA6IEZvcm1hdC5mb3JtYXR0ZXIgLT4gZGlyZWN0aW9uIC0+IHVuaXRcblxuICAgIHR5cGUgdFxuXG4gICAgdmFsIHBwIDogRm9ybWF0LmZvcm1hdHRlciAtPiB0IC0+IHVuaXRcbiAgICB2YWwgbWFrZSA6IGg6ZGlyZWN0aW9uIC0+IHY6ZGlyZWN0aW9uIC0+IHRcbiAgICB2YWwgZGVmYXVsdCA6IHRcbiAgICB2YWwgaCA6IHQgLT4gZGlyZWN0aW9uXG4gICAgdmFsIHYgOiB0IC0+IGRpcmVjdGlvblxuXG4gICAgdHlwZSB0MlxuXG4gICAgdmFsIHBhaXIgOiB0IC0+IHQgLT4gdDJcbiAgICB2YWwgcDEgOiB0MiAtPiB0XG4gICAgdmFsIHAyIDogdDIgLT4gdFxuICBlbmQgPSBzdHJ1Y3RcbiAgICB0eXBlIGRpcmVjdGlvbiA9IFsgYE5lZ2F0aXZlIHwgYE5ldXRyYWwgfCBgUG9zaXRpdmUgXVxuICAgIHR5cGUgdCA9IHsgaCA6IGRpcmVjdGlvbjsgdiA6IGRpcmVjdGlvbiB9XG5cbiAgICBsZXQgZGVmYXVsdCA9IHsgaCA9IGBOZXV0cmFsOyB2ID0gYE5ldXRyYWwgfVxuICAgIGxldCBtYWtlIH5oIH52ID0geyBoOyB2IH1cbiAgICBsZXQgaCB4ID0geC5oXG4gICAgbGV0IHYgeCA9IHgudlxuXG4gICAgbGV0IHBwX2RpcmVjdGlvbiBwcGYgZGlyID1cbiAgICAgIGxldCB0ZXh0ID1cbiAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgfCBgTmVnYXRpdmUgLT4gXCJgTmVnYXRpdmVcIlxuICAgICAgICB8IGBOZXV0cmFsIC0+IFwiYE5ldXRyYWxcIlxuICAgICAgICB8IGBQb3NpdGl2ZSAtPiBcImBQb3NpdGl2ZVwiXG4gICAgICBpblxuICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBwcGYgdGV4dFxuXG4gICAgbGV0IHBwIHBwZiBnID1cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcInsgaCA9ICVhOyB2ID0gJWEgfVwiIHBwX2RpcmVjdGlvbiAoaCBnKVxuICAgICAgICBwcF9kaXJlY3Rpb24gKHYgZylcblxuICAgIHR5cGUgdDIgPSB0ICogdFxuXG4gICAgbGV0IHBhaXIgdDEgdDIgPSAodDEsIHQyKVxuICAgIGxldCBwMSAodCwgXykgPSB0XG4gICAgbGV0IHAyIChfLCB0KSA9IHRcbiAgZW5kXG5cbiAgdHlwZSBncmF2aXR5ID0gR3Jhdml0eS50XG5cbiAgbW9kdWxlIEludGVydmFsIDogc2lnXG4gICAgdHlwZSB0XG5cbiAgICB2YWwgbWFrZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHRcbiAgICB2YWwgc2hpZnQgOiB0IC0+IGZsb2F0IC0+IHRcbiAgICB2YWwgZnN0IDogdCAtPiBmbG9hdFxuICAgIHZhbCBzbmQgOiB0IC0+IGZsb2F0XG4gICAgdmFsIHNpemUgOiB0IC0+IGZsb2F0XG4gICAgdmFsIHplcm8gOiB0XG4gIGVuZCA9IHN0cnVjdFxuICAgIHR5cGUgdCA9IGZsb2F0ICogZmxvYXRcblxuICAgIGxldCBtYWtlIHggeSA9ICh4LCB5KVxuICAgIGxldCBzaGlmdCAoeCwgeSkgZCA9ICh4ICsuIGQsIHkgKy4gZClcbiAgICBsZXQgZnN0ICh4LCBfKSA9IHhcbiAgICBsZXQgc2l6ZSAoeCwgeSkgPSB5IC0uIHhcbiAgICBsZXQgc25kIChfLCB5KSA9IHlcbiAgICBsZXQgemVybyA9ICgwLiwgMC4pXG4gIGVuZFxuXG4gIG1vZHVsZSBVaSA9IHN0cnVjdFxuICAgIHR5cGUgbWF5X2hhbmRsZSA9IFsgYFVuaGFuZGxlZCB8IGBIYW5kbGVkIF1cblxuICAgIGxldCBtYXlfaGFuZGxlICh0eXBlIGEpICh2IDogYSBvcHRpb24pIChmIDogYSAtPiBtYXlfaGFuZGxlKSA6XG4gICAgICAgIG1heV9oYW5kbGUgPVxuICAgICAgbWF0Y2ggdiB3aXRoIFNvbWUgdicgLT4gZiB2JyB8IE5vbmUgLT4gYFVuaGFuZGxlZFxuXG4gICAgbGV0IHBwX21heV9oYW5kbGUgcHBmID0gZnVuY3Rpb25cbiAgICAgIHwgYFVuaGFuZGxlZCAtPiBGLnBmIHBwZiBcImBVbmhhbmRsZWRcIlxuICAgICAgfCBgSGFuZGxlZCAtPiBGLnBmIHBwZiBcImBIYW5kbGVkXCJcblxuICAgIHR5cGUgbW91c2VfaGFuZGxlciA9XG4gICAgICB4OmZsb2F0IC0+XG4gICAgICB5OmZsb2F0IC0+XG4gICAgICBJbnB1dC5idXR0b24gLT5cbiAgICAgIFsgYFVuaGFuZGxlZFxuICAgICAgfCBgSGFuZGxlZFxuICAgICAgfCBgR3JhYiBvZlxuICAgICAgICAoeDpmbG9hdCAtPiB5OmZsb2F0IC0+IHVuaXQpICogKHg6ZmxvYXQgLT4geTpmbG9hdCAtPiB1bml0KVxuICAgICAgXVxuXG4gICAgdHlwZSBzZW1hbnRpY19rZXkgPVxuICAgICAgWyAoKiBDbGlwYm9hcmQgKilcbiAgICAgICAgYENvcHlcbiAgICAgIHwgYFBhc3RlXG4gICAgICB8ICgqIEZvY3VzIG1hbmFnZW1lbnQgKilcbiAgICAgICAgYEZvY3VzIG9mXG4gICAgICAgIFsgYE5leHQgfCBgUHJldiB8IGBMZWZ0IHwgYFJpZ2h0IHwgYFVwIHwgYERvd24gXSBdXG5cbiAgICB0eXBlIGtleSA9XG4gICAgICBbIElucHV0LnNwZWNpYWwgfCBgVWNoYXIgb2YgVWNoYXIudCB8IHNlbWFudGljX2tleSBdXG4gICAgICAqIElucHV0Lm1vZHNcblxuICAgIGxldCBwcF9rZXkgPVxuICAgICAgRi4oXG4gICAgICAgIHBhaXIgfnNlcDpGLnNwXG4gICAgICAgICAgKGZ1biBwcGYgdiAtPlxuICAgICAgICAgICAgbWF0Y2ggdiB3aXRoXG4gICAgICAgICAgICB8IGBDb3B5IC0+IHBmIHBwZiBcImBDb3B5XCJcbiAgICAgICAgICAgIHwgYFBhc3RlIC0+IHBmIHBwZiBcImBQYXN0ZVwiXG4gICAgICAgICAgICB8IGBGb2N1cyB2IC0+XG4gICAgICAgICAgICAgICAgcGYgcHBmIFwiYEZvY3VzICVzXCJcbiAgICAgICAgICAgICAgICAgIChtYXRjaCB2IHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgYE5leHQgLT4gXCJgTmV4dFwiXG4gICAgICAgICAgICAgICAgICB8IGBQcmV2IC0+IFwiYFByZXZcIlxuICAgICAgICAgICAgICAgICAgfCBgTGVmdCAtPiBcImBMZWZ0XCJcbiAgICAgICAgICAgICAgICAgIHwgYFJpZ2h0IC0+IFwiYFJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHwgYFVwIC0+IFwiYFVwXCJcbiAgICAgICAgICAgICAgICAgIHwgYERvd24gLT4gXCJgRG93blwiKVxuICAgICAgICAgICAgfCBhIC0+IHBmIHBwZiBcIiVhXCIgSW5wdXQucHBfY29kZSBhKVxuICAgICAgICAgIElucHV0LnBwX21vZHMpXG5cbiAgICB0eXBlIG1vdXNlID0gSW5wdXQubW91c2VcblxuICAgIHR5cGUgZXZlbnQgPVxuICAgICAgWyBgS2V5IG9mIGtleSB8IGBNb3VzZSBvZiBtb3VzZSB8IGBQYXN0ZSBvZiBJbnB1dC5wYXN0ZSBdXG5cbiAgICB0eXBlIGxheW91dF9zcGVjID0ge1xuICAgICAgdyA6IGZsb2F0O1xuICAgICAgaCA6IGZsb2F0O1xuICAgICAgc3cgOiBmbG9hdDtcbiAgICAgIHNoIDogZmxvYXQ7XG4gICAgfVxuXG4gICAgbGV0IHBwX2Zsb2F0IHBwZiA9IEYuZm10IFwiJS4xZlwiIHBwZlxuXG4gICAgdHlwZSBmbGFncyA9IGludFxuXG4gICAgbGV0IGZsYWdzX25vbmUgPSAwXG4gICAgbGV0IGZsYWdfdHJhbnNpZW50X3NlbnNvciA9IDFcbiAgICBsZXQgZmxhZ19wZXJtYW5lbnRfc2Vuc29yID0gMlxuXG4gICAgdHlwZSBzaXplX3NlbnNvciA9IHc6ZmxvYXQgLT4gaDpmbG9hdCAtPiB1bml0XG5cbiAgICB0eXBlIGZyYW1lX3NlbnNvciA9XG4gICAgICB4OmZsb2F0IC0+IHk6ZmxvYXQgLT4gdzpmbG9hdCAtPiBoOmZsb2F0IC0+IHVuaXQgLT4gdW5pdFxuXG4gICAgdHlwZSBpbWFnZSA9IEkudFxuICAgIHR5cGUgY2FjaGUgPSB7IHZ4IDogSW50ZXJ2YWwudDsgdnkgOiBJbnRlcnZhbC50OyBpbWFnZSA6IGltYWdlIH1cblxuICAgIHR5cGUgJ2EgZGVzYyA9XG4gICAgICB8IEF0b20gb2YgaW1hZ2VcbiAgICAgIHwgU2l6ZV9zZW5zb3Igb2YgJ2EgKiBzaXplX3NlbnNvclxuICAgICAgfCBUcmFuc2llbnRfc2Vuc29yIG9mICdhICogZnJhbWVfc2Vuc29yXG4gICAgICB8IFBlcm1hbmVudF9zZW5zb3Igb2YgJ2EgKiBmcmFtZV9zZW5zb3JcbiAgICAgIHwgUmVzaXplIG9mICdhICogZmxvYXQgb3B0aW9uICogZmxvYXQgb3B0aW9uICogR3Jhdml0eS50MlxuICAgICAgfCBNb3VzZV9oYW5kbGVyIG9mICdhICogbW91c2VfaGFuZGxlclxuICAgICAgfCBGb2N1c19hcmVhIG9mICdhICogKGtleSAtPiBtYXlfaGFuZGxlKVxuICAgICAgfCBTaGlmdF9hcmVhIG9mICdhICogZmxvYXQgKiBmbG9hdFxuICAgICAgfCBFdmVudF9maWx0ZXIgb2ZcbiAgICAgICAgICAnYSAqIChbIGBLZXkgb2Yga2V5IHwgYE1vdXNlIG9mIG1vdXNlIF0gLT4gbWF5X2hhbmRsZSlcbiAgICAgIHwgWCBvZiAnYSAqICdhXG4gICAgICB8IFkgb2YgJ2EgKiAnYVxuICAgICAgfCBaIG9mICdhICogJ2FcblxuICAgIHR5cGUgdCA9IHtcbiAgICAgIG11dGFibGUgdyA6IGZsb2F0O1xuICAgICAgbXV0YWJsZSBoIDogZmxvYXQ7XG4gICAgICBzdyA6IGZsb2F0O1xuICAgICAgc2ggOiBmbG9hdDtcbiAgICAgIG11dGFibGUgZGVzYyA6IHQgZGVzYztcbiAgICAgIGZvY3VzIDogRm9jdXMuc3RhdHVzO1xuICAgICAgbXV0YWJsZSBmbGFncyA6IGZsYWdzO1xuICAgICAgbXV0YWJsZSBzZW5zb3JfY2FjaGUgOiAoZmxvYXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQpIG9wdGlvbjtcbiAgICAgIG11dGFibGUgY2FjaGUgOiBjYWNoZTtcbiAgICB9XG5cbiAgICBsZXQgbGF5b3V0X3NwZWMgKHQgOiB0KSA6IGxheW91dF9zcGVjID1cbiAgICAgIHsgdyA9IHQudzsgaCA9IHQuaDsgc3cgPSB0LnN3OyBzaCA9IHQuc2ggfVxuXG4gICAgbGV0IGxheW91dF93aWR0aCB0ID0gdC53XG4gICAgbGV0IGxheW91dF9zdHJldGNoX3dpZHRoIHQgPSB0LnN3XG4gICAgbGV0IGxheW91dF9oZWlnaHQgdCA9IHQuaFxuICAgIGxldCBsYXlvdXRfc3RyZXRjaF9oZWlnaHQgdCA9IHQuc2hcblxuICAgIGxldCBwcF9sYXlvdXRfc3BlYyBwcGYgeyB3OyBoOyBzdzsgc2g7IF8gfSA9XG4gICAgICBsZXQgcCA9IHBwX2Zsb2F0IGluXG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJ7dz0lYTtAIGg9JWE7QCBzdz0lYTtAIHNoPSVhfVwiIHAgdyBwIGggcCBzd1xuICAgICAgICBwIHNoXG5cbiAgICBsZXQgY2FjaGUgOiBjYWNoZSA9XG4gICAgICB7IHZ4ID0gSW50ZXJ2YWwuemVybzsgdnkgPSBJbnRlcnZhbC56ZXJvOyBpbWFnZSA9IEkuZW1wdHkgfVxuXG4gICAgbGV0IGVtcHR5IDogdCA9XG4gICAgICB7XG4gICAgICAgIHcgPSAwLjtcbiAgICAgICAgaCA9IDAuO1xuICAgICAgICBzdyA9IDAuO1xuICAgICAgICBzaCA9IDAuO1xuICAgICAgICBmbGFncyA9IGZsYWdzX25vbmU7XG4gICAgICAgIGZvY3VzID0gRm9jdXMuZW1wdHk7XG4gICAgICAgIGRlc2MgPSBBdG9tIEkuZW1wdHk7XG4gICAgICAgIHNlbnNvcl9jYWNoZSA9IE5vbmU7XG4gICAgICAgIGNhY2hlO1xuICAgICAgfVxuXG4gICAgbGV0IGF0b20gaW1nIDogdCA9XG4gICAgICB7XG4gICAgICAgIHcgPSAwLjtcbiAgICAgICAgaCA9IDAuO1xuICAgICAgICBzdyA9IDAuO1xuICAgICAgICBzaCA9IDAuO1xuICAgICAgICBmb2N1cyA9IEZvY3VzLmVtcHR5O1xuICAgICAgICBmbGFncyA9IGZsYWdzX25vbmU7XG4gICAgICAgIGRlc2MgPSBBdG9tIGltZztcbiAgICAgICAgc2Vuc29yX2NhY2hlID0gTm9uZTtcbiAgICAgICAgY2FjaGU7XG4gICAgICB9XG5cbiAgICAoKiBsZXQgc3BhY2VfMV8wID0gYXRvbSAoSS52b2lkIDEgMClcbiAgICAgICBsZXQgc3BhY2VfMF8xID0gYXRvbSAoSS52b2lkIDAgMSlcbiAgICAgICBsZXQgc3BhY2VfMV8xID0gYXRvbSAoSS52b2lkIDEgMSlcblxuICAgICAgIGxldCBzcGFjZSB4IHkgPVxuICAgICAgICAgbWF0Y2ggKHgsIHkpIHdpdGhcbiAgICAgICAgIHwgMCwgMCAtPiBlbXB0eVxuICAgICAgICAgfCAxLCAwIC0+IHNwYWNlXzFfMFxuICAgICAgICAgfCAwLCAxIC0+IHNwYWNlXzBfMVxuICAgICAgICAgfCAxLCAxIC0+IHNwYWNlXzFfMVxuICAgICAgICAgIHwgXyAtPiBhdG9tIChJLnZvaWQgeCB5KSAqKVxuXG4gICAgbGV0IHNwYWNlIHggeSA9IGF0b20gKEkudm9pZCB4IHkpXG4gICAgbGV0IG1vdXNlX2FyZWEgZiB0IDogdCA9IHsgdCB3aXRoIGRlc2MgPSBNb3VzZV9oYW5kbGVyICh0LCBmKSB9XG5cbiAgICBsZXQga2V5Ym9hcmRfYXJlYSA/Zm9jdXMgZiAodCA6IHQpIDogdCA9XG4gICAgICBsZXQgZm9jdXMgPVxuICAgICAgICBtYXRjaCBmb2N1cyB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiB0LmZvY3VzXG4gICAgICAgIHwgU29tZSBmb2N1cyAtPiBGb2N1cy5tZXJnZSBmb2N1cyB0LmZvY3VzXG4gICAgICBpblxuICAgICAgeyB0IHdpdGggZGVzYyA9IEZvY3VzX2FyZWEgKHQsIGYpOyBmb2N1cyB9XG5cbiAgICBsZXQgc2hpZnRfYXJlYSB4IHkgdCA6IHQgPSB7IHQgd2l0aCBkZXNjID0gU2hpZnRfYXJlYSAodCwgeCwgeSkgfVxuXG4gICAgbGV0IHNpemVfc2Vuc29yIGhhbmRsZXIgdCA6IHQgPVxuICAgICAgeyB0IHdpdGggZGVzYyA9IFNpemVfc2Vuc29yICh0LCBoYW5kbGVyKSB9XG5cbiAgICBsZXQgdHJhbnNpZW50X3NlbnNvciBmcmFtZV9zZW5zb3IgdCA9XG4gICAgICB7XG4gICAgICAgIHQgd2l0aFxuICAgICAgICBkZXNjID0gVHJhbnNpZW50X3NlbnNvciAodCwgZnJhbWVfc2Vuc29yKTtcbiAgICAgICAgZmxhZ3MgPSB0LmZsYWdzIGxvciBmbGFnX3RyYW5zaWVudF9zZW5zb3I7XG4gICAgICB9XG5cbiAgICBsZXQgcGVybWFuZW50X3NlbnNvciBmcmFtZV9zZW5zb3IgdCA9XG4gICAgICB7XG4gICAgICAgIHQgd2l0aFxuICAgICAgICBkZXNjID0gUGVybWFuZW50X3NlbnNvciAodCwgZnJhbWVfc2Vuc29yKTtcbiAgICAgICAgZmxhZ3MgPSB0LmZsYWdzIGxvciBmbGFnX3Blcm1hbmVudF9zZW5zb3I7XG4gICAgICB9XG5cbiAgICBsZXQgcHJlcGFyZV9ncmF2aXR5ID0gZnVuY3Rpb25cbiAgICAgIHwgTm9uZSwgTm9uZSAtPiBHcmF2aXR5LihwYWlyIGRlZmF1bHQgZGVmYXVsdClcbiAgICAgIHwgU29tZSBnLCBOb25lIHwgTm9uZSwgU29tZSBnIC0+IEdyYXZpdHkuKHBhaXIgZyBnKVxuICAgICAgfCBTb21lIHBhZCwgU29tZSBjcm9wIC0+IEdyYXZpdHkuKHBhaXIgcGFkIGNyb3ApXG5cbiAgICBsZXQgcmVzaXplID93ID9oID9zdyA/c2ggP3BhZCA/Y3JvcCA/KGF0dHIgPSBBLmVtcHR5KSAodCA6IHQpIDogdFxuICAgICAgICA9XG4gICAgICBsZXQgXyA9IGF0dHIgaW5cbiAgICAgIGxldCB3bywgaG8gPSAodywgaCkgaW5cbiAgICAgIGxldCBnID0gcHJlcGFyZV9ncmF2aXR5IChwYWQsIGNyb3ApIGluXG4gICAgICBtYXRjaCAoKHcsIHQudyksIChoLCB0LmgpLCAoc3csIHQuc3cpLCAoc2gsIHQuc2gpKSB3aXRoXG4gICAgICB8ICggKFNvbWUgdywgXyB8IF8sIHcpLFxuICAgICAgICAgIChTb21lIGgsIF8gfCBfLCBoKSxcbiAgICAgICAgICAoU29tZSBzdywgXyB8IF8sIHN3KSxcbiAgICAgICAgICAoU29tZSBzaCwgXyB8IF8sIHNoKSApIC0+XG4gICAgICAgICAgeyB0IHdpdGggdzsgaDsgc3c7IHNoOyBkZXNjID0gUmVzaXplICh0LCB3bywgaG8sIGcpIH1cblxuICAgIGxldCByZXNpemVfdG8gKGwgOiBsYXlvdXRfc3BlYykgP3BhZCA/Y3JvcCA/KGF0dHIgPSBBLmVtcHR5KSB0IDogdFxuICAgICAgICA9XG4gICAgICBsZXQgXyA9IGF0dHIgaW5cbiAgICAgIGxldCBnID0gcHJlcGFyZV9ncmF2aXR5IChwYWQsIGNyb3ApIGluXG4gICAgICB7IHQgd2l0aCBkZXNjID0gUmVzaXplICh0LCBTb21lIGwudywgU29tZSBsLmgsIGcpIH1cblxuICAgIGxldCBldmVudF9maWx0ZXIgP2ZvY3VzIGYgKHQgOiB0KSA6IHQgPVxuICAgICAgbGV0IGZvY3VzID1cbiAgICAgICAgbWF0Y2ggZm9jdXMgd2l0aCBOb25lIC0+IHQuZm9jdXMgfCBTb21lIGZvY3VzIC0+IGZvY3VzXG4gICAgICBpblxuICAgICAgeyB0IHdpdGggZGVzYyA9IEV2ZW50X2ZpbHRlciAodCwgZik7IGZvY3VzIH1cblxuICAgIGxldCBqb2luX3ggKGEgOiB0KSAoYiA6IHQpID1cbiAgICAgIHtcbiAgICAgICAgZW1wdHkgd2l0aFxuICAgICAgICB3ID0gYS53ICsuIGIudztcbiAgICAgICAgaCA9IG1heCBhLmggYi5oO1xuICAgICAgICBzdyA9IGEuc3cgKy4gYi5zdztcbiAgICAgICAgc2ggPSBtYXggYS5zaCBiLnNoO1xuICAgICAgICBmbGFncyA9IGEuZmxhZ3MgbG9yIGIuZmxhZ3M7XG4gICAgICAgIGZvY3VzID0gRm9jdXMubWVyZ2UgYS5mb2N1cyBiLmZvY3VzO1xuICAgICAgICBkZXNjID0gWCAoYSwgYik7XG4gICAgICB9XG5cbiAgICBsZXQgam9pbl95IChhIDogdCkgKGIgOiB0KSA9XG4gICAgICB7XG4gICAgICAgIGVtcHR5IHdpdGhcbiAgICAgICAgdyA9IG1heCBhLncgYi53O1xuICAgICAgICBoID0gYS5oICsuIGIuaDtcbiAgICAgICAgc3cgPSBtYXggYS5zdyBiLnN3O1xuICAgICAgICBzaCA9IGEuc2ggKy4gYi5zaDtcbiAgICAgICAgZmxhZ3MgPSBhLmZsYWdzIGxvciBiLmZsYWdzO1xuICAgICAgICBmb2N1cyA9IEZvY3VzLm1lcmdlIGEuZm9jdXMgYi5mb2N1cztcbiAgICAgICAgZGVzYyA9IFkgKGEsIGIpO1xuICAgICAgfVxuXG4gICAgbGV0IGpvaW5feiAoYSA6IHQpIChiIDogdCkgPVxuICAgICAge1xuICAgICAgICBlbXB0eSB3aXRoXG4gICAgICAgIHcgPSBtYXggYS53IGIudztcbiAgICAgICAgaCA9IG1heCBhLmggYi5oO1xuICAgICAgICBzdyA9IG1heCBhLnN3IGIuc3c7XG4gICAgICAgIHNoID0gbWF4IGEuc2ggYi5zaDtcbiAgICAgICAgZmxhZ3MgPSBhLmZsYWdzIGxvciBiLmZsYWdzO1xuICAgICAgICBmb2N1cyA9IEZvY3VzLm1lcmdlIGEuZm9jdXMgYi5mb2N1cztcbiAgICAgICAgZGVzYyA9IFogKGEsIGIpO1xuICAgICAgfVxuXG4gICAgbGV0IHBhY2tfeCA9IChlbXB0eSwgam9pbl94KVxuICAgIGxldCBwYWNrX3kgPSAoZW1wdHksIGpvaW5feSlcbiAgICBsZXQgcGFja196ID0gKGVtcHR5LCBqb2luX3opXG4gICAgbGV0IGhjYXQgeHMgPSBMd2RfdXRpbHMucmVkdWNlIHBhY2tfeCB4c1xuICAgIGxldCB2Y2F0IHhzID0gTHdkX3V0aWxzLnJlZHVjZSBwYWNrX3kgeHNcbiAgICBsZXQgemNhdCB4cyA9IEx3ZF91dGlscy5yZWR1Y2UgcGFja196IHhzXG4gICAgbGV0IGhhc19mb2N1cyB0ID0gRm9jdXMuaGFzX2ZvY3VzIHQuZm9jdXNcblxuICAgIGxldCByZWMgcHAgcHBmIHQgPVxuICAgICAgRi5wZiBwcGYgXCJAWzxob3Y+Zm9jdXM9JWEgJWFAXVwiIEZvY3VzLnBwX3N0YXR1cyB0LmZvY3VzIHBwX2Rlc2NcbiAgICAgICAgdC5kZXNjXG5cbiAgICBhbmQgcHBfZGVzYyBwcGYgPSBmdW5jdGlvblxuICAgICAgfCBBdG9tIGEgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJBdG9tIEBbPGhvdj4oJWEpQF1cIlxuICAgICAgICAgICAgKEkuRHJhdy5wcCA/YXR0cjpOb25lKSBhXG4gICAgICB8IFNpemVfc2Vuc29yIChkZXNjLCBfKSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIlNpemVfc2Vuc29yICglYSwgXylcIiBwcCBkZXNjXG4gICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiVHJhbnNpZW50X3NlbnNvciAoJWEsQCBfKVwiIHBwIGRlc2NcbiAgICAgIHwgUGVybWFuZW50X3NlbnNvciAoZGVzYywgXykgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJQZXJtYW5lbnRfc2Vuc29yICglYSxAIF8pXCIgcHAgZGVzY1xuICAgICAgfCBSZXNpemUgKGRlc2MsIHgsIHksIF9ncmF2aXR5KSAtPlxuICAgICAgICAgIEYucGYgcHBmIFwiUmVzaXplICglYSwgJWEsQCBfLEAgJWEpXCIgKEYub3B0aW9uIHBwX2Zsb2F0KSB4XG4gICAgICAgICAgICAoRi5vcHRpb24gcHBfZmxvYXQpIHlcbiAgICAgICAgICAgICgqIEdyYXZpdHkucHAgKEdyYXZpdHkucDEgZ3Jhdml0eSkgR3Jhdml0eS5wcFxuICAgICAgICAgICAgICAgKEdyYXZpdHkucDIgZ3Jhdml0eSkgKilcbiAgICAgICAgICAgIHBwIGRlc2NcbiAgICAgIHwgTW91c2VfaGFuZGxlciAobiwgXykgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCIlYVwiICgqXCJNb3VzZSAoJWEsQCBfKVwiKikgcHAgblxuICAgICAgfCBGb2N1c19hcmVhIChuLCBfKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJGb2N1cyAoJWEsQCBfKVwiIHBwIG5cbiAgICAgIHwgU2hpZnRfYXJlYSAobiwgeCwgeSkgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJTaGlmdCAoJS4wZiwlLjBmLCVhKVwiIHggeSBwcCBuXG4gICAgICB8IEV2ZW50X2ZpbHRlciAobiwgXykgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJFdmVudCAoJWEsQCBfKVwiIHBwIG5cbiAgICAgIHwgWCAoYSwgYikgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiWCAoQFslYSxAICVhQF0pXCIgcHAgYSBwcCBiXG4gICAgICB8IFkgKGEsIGIpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIlkgKEBbJWEsQCAlYUBdKVwiIHBwIGEgcHAgYlxuICAgICAgfCBaIChhLCBiKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJaIChAWyVhLEAgJWFAXSlcIiBwcCBhIHBwIGJcblxuICAgIGxldCBpdGVyIGYgdWkgPVxuICAgICAgbWF0Y2ggdWkuZGVzYyB3aXRoXG4gICAgICB8IEF0b20gXyAtPiAoKVxuICAgICAgfCBTaXplX3NlbnNvciAodSwgXylcbiAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodSwgXylcbiAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodSwgXylcbiAgICAgIHwgUmVzaXplICh1LCBfLCBfLCBfKVxuICAgICAgfCBNb3VzZV9oYW5kbGVyICh1LCBfKVxuICAgICAgfCBGb2N1c19hcmVhICh1LCBfKVxuICAgICAgfCBTaGlmdF9hcmVhICh1LCBfLCBfKVxuICAgICAgfCBFdmVudF9maWx0ZXIgKHUsIF8pIC0+XG4gICAgICAgICAgZiB1XG4gICAgICB8IFggKHUxLCB1MikgfCBZICh1MSwgdTIpIHwgWiAodTEsIHUyKSAtPlxuICAgICAgICAgIGYgdTE7XG4gICAgICAgICAgZiB1MlxuICBlbmRcblxuICB0eXBlIHVpID0gVWkudFxuXG4gIG1vZHVsZSBSZW5kZXJlciA9IHN0cnVjdFxuICAgIG9wZW4gVWlcblxuICAgIHR5cGUgc2l6ZSA9IEdnLnAyXG5cbiAgICB0eXBlIGdyYWJfZnVuY3Rpb24gPVxuICAgICAgKHg6ZmxvYXQgLT4geTpmbG9hdCAtPiB1bml0KSAqICh4OmZsb2F0IC0+IHk6ZmxvYXQgLT4gdW5pdClcblxuICAgIHR5cGUgdCA9IHtcbiAgICAgIHZnIDogTlZHLnQ7XG4gICAgICBtdXRhYmxlIHNpemUgOiBzaXplO1xuICAgICAgbXV0YWJsZSB2aWV3IDogdWk7XG4gICAgICBtdXRhYmxlIG1vdXNlX2dyYWIgOiBncmFiX2Z1bmN0aW9uIG9wdGlvbjtcbiAgICB9XG5cbiAgICBsZXQgbWFrZSB2ZyAoKSA9XG4gICAgICB7IHZnOyBtb3VzZV9ncmFiID0gTm9uZTsgc2l6ZSA9IFAyLm87IHZpZXcgPSBVaS5lbXB0eSB9XG5cbiAgICBsZXQgc2l6ZSB0ID0gdC5zaXplXG5cbiAgICBsZXQgc29sdmVfZm9jdXMgKHVpIDogdWkpIGkgPVxuICAgICAgbGV0IHJlYyBhdXggdWkgPVxuICAgICAgICBtYXRjaCB1aS5mb2N1cyB3aXRoXG4gICAgICAgIHwgRm9jdXMuRW1wdHkgfCBGb2N1cy5IYW5kbGUgKDAsIF8pIC0+ICgpXG4gICAgICAgIHwgRm9jdXMuSGFuZGxlIChpJywgXykgd2hlbiBpID0gaScgLT4gKClcbiAgICAgICAgfCBGb2N1cy5IYW5kbGUgKF8sIHYpIC0+IEx3ZC5zZXQgdiAwXG4gICAgICAgIHwgRm9jdXMuQ29uZmxpY3QgXyAtPiBpdGVyIGF1eCB1aVxuICAgICAgaW5cbiAgICAgIGF1eCB1aVxuXG4gICAgbGV0IHNwbGl0IH5hIH5zYSB+YiB+c2IgdG90YWwgPVxuICAgICAgbGV0IHN0cmV0Y2ggPSBzYSArLiBzYiBpblxuICAgICAgbGV0IGZsZXggPSB0b3RhbCAtLiBhIC0uIGIgaW5cbiAgICAgIGxldCBhJywgYicgPVxuICAgICAgICBpZiBzdHJldGNoID4gMC4gJiYgZmxleCA+IDAuIHRoZW5cbiAgICAgICAgICBsZXQgcmF0aW8gPVxuICAgICAgICAgICAgaWYgc2EgPiBzYiB0aGVuIGZsZXggKi4gc2EgLy4gc3RyZXRjaFxuICAgICAgICAgICAgZWxzZSBmbGV4IC0uIChmbGV4ICouIHNiIC8uIHN0cmV0Y2gpXG4gICAgICAgICAgaW5cbiAgICAgICAgICAoYSArLiByYXRpbywgYiArLiBmbGV4IC0uIHJhdGlvKVxuICAgICAgICBlbHNlIChhLCBiKVxuICAgICAgaW5cbiAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgIG1cbiAgICAgICAgICAgICAgICAgXCJzcGxpdDogYT0lLjFmIHNhPSUuMWYgYj0lLjFmIHNiPSUuMWYgdG90YWw9JS4xZiAoJS4xZiwgXFxcbiAgICAgICAgICAgICAgICAgICUuMWYpXCJcbiAgICAgICAgICAgICAgICAgYSBzYSBiIHNiIHRvdGFsIGEnIGInKTsgKilcbiAgICAgIChhJywgYicpXG5cbiAgICBsZXQgcGFjayB+Zml4ZWQgfnN0cmV0Y2ggdG90YWwgZzEgZzIgPVxuICAgICAgbGV0IHYxLCB2MiA9XG4gICAgICAgIGxldCBmbGV4ID0gdG90YWwgLS4gZml4ZWQgaW5cbiAgICAgICAgaWYgc3RyZXRjaCA+IDAuICYmIGZsZXggPiAwLiB0aGVuICgwLiwgdG90YWwpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgZ3Jhdml0eSA9IGlmIGZsZXggPj0gMC4gdGhlbiBnMSBlbHNlIGcyIGluXG4gICAgICAgICAgbWF0Y2ggZ3Jhdml0eSB3aXRoXG4gICAgICAgICAgfCBgTmVnYXRpdmUgLT4gKDAuLCBmaXhlZClcbiAgICAgICAgICB8IGBOZXV0cmFsIC0+IChmbGV4IC8uIDIuLCBmaXhlZClcbiAgICAgICAgICB8IGBQb3NpdGl2ZSAtPiAoZmxleCwgZml4ZWQpXG4gICAgICBpblxuICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICBtIFwicGFjayBmaXhlZD0lLjFmIHN0cmV0Y2g9JS4xZiB0b3RhbD0lLjFmICglLjFmLCAlLjFmKVwiXG4gICAgICAgICAgICAgZml4ZWQgc3RyZXRjaCB0b3RhbCB2MSB2Mik7ICopXG4gICAgICAodjEsIHYyKVxuXG4gICAgbGV0IGhhc190cmFuc2llbnRfc2Vuc29yIGZsYWdzID1cbiAgICAgIGZsYWdzIGxhbmQgZmxhZ190cmFuc2llbnRfc2Vuc29yIDw+IDBcblxuICAgIGxldCBoYXNfcGVybWFuZW50X3NlbnNvciBmbGFncyA9XG4gICAgICBmbGFncyBsYW5kIGZsYWdfcGVybWFuZW50X3NlbnNvciA8PiAwXG5cbiAgICBsZXQgcmVjIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoICh1aSA6IHVpKSA9XG4gICAgICBpZlxuICAgICAgICBoYXNfdHJhbnNpZW50X3NlbnNvciB1aS5mbGFnc1xuICAgICAgICB8fCBoYXNfcGVybWFuZW50X3NlbnNvciB1aS5mbGFnc1xuICAgICAgICAgICAmJlxuICAgICAgICAgICBtYXRjaCB1aS5zZW5zb3JfY2FjaGUgd2l0aFxuICAgICAgICAgICB8IE5vbmUgLT4gZmFsc2VcbiAgICAgICAgICAgfCBTb21lIChveCcsIG95Jywgc3cnLCBzaCcpIC0+XG4gICAgICAgICAgICAgICBveCA9IG94JyAmJiBveSA9IG95JyAmJiBzdyA9IHN3JyAmJiBzaCA9IHNoJ1xuICAgICAgdGhlbiAoXG4gICAgICAgIHVpLmZsYWdzIDwtIHVpLmZsYWdzIGxhbmQgbG5vdCBmbGFnX3RyYW5zaWVudF9zZW5zb3I7XG4gICAgICAgIGlmIGhhc19wZXJtYW5lbnRfc2Vuc29yIHVpLmZsYWdzIHRoZW5cbiAgICAgICAgICB1aS5zZW5zb3JfY2FjaGUgPC0gU29tZSAob3gsIG95LCBzdywgc2gpO1xuICAgICAgICBtYXRjaCB1aS5kZXNjIHdpdGhcbiAgICAgICAgfCBBdG9tIF8gLT4gKClcbiAgICAgICAgfCBTaXplX3NlbnNvciAodCwgXylcbiAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgICB8IEZvY3VzX2FyZWEgKHQsIF8pXG4gICAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCBfKSAtPlxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggdFxuICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIHNlbnNvcikgLT5cbiAgICAgICAgICAgIHVpLmRlc2MgPC0gdC5kZXNjO1xuICAgICAgICAgICAgbGV0IHNlbnNvciA9IHNlbnNvciB+eDpveCB+eTpveSB+dzpzdyB+aDpzaCBpblxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggdDtcbiAgICAgICAgICAgIHNlbnNvciAoKVxuICAgICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHQsIHNlbnNvcikgLT5cbiAgICAgICAgICAgIGxldCBzZW5zb3IgPSBzZW5zb3Igfng6b3ggfnk6b3kgfnc6c3cgfmg6c2ggaW5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoIHQ7XG4gICAgICAgICAgICBzZW5zb3IgKClcbiAgICAgICAgfCBSZXNpemUgKHQsIHgsIHksIGcpIC0+XG4gICAgICAgICAgICBsZXQgb3BlbiBHcmF2aXR5IGluXG4gICAgICAgICAgICBsZXQgZHgsIHJ3ID1cbiAgICAgICAgICAgICAgcGFja1xuICAgICAgICAgICAgICAgIH5maXhlZDooT3B0aW9uLnZhbHVlIHggfmRlZmF1bHQ6dC53KVxuICAgICAgICAgICAgICAgIH5zdHJldGNoOnQuc3cgc3dcbiAgICAgICAgICAgICAgICAoaCAocDEgZykpXG4gICAgICAgICAgICAgICAgKGggKHAyIGcpKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGxldCBkeSwgcmggPVxuICAgICAgICAgICAgICBwYWNrXG4gICAgICAgICAgICAgICAgfmZpeGVkOihPcHRpb24udmFsdWUgeSB+ZGVmYXVsdDp0LmgpXG4gICAgICAgICAgICAgICAgfnN0cmV0Y2g6dC5zaCBzaFxuICAgICAgICAgICAgICAgICh2IChwMSBnKSlcbiAgICAgICAgICAgICAgICAodiAocDIgZykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgKG94ICsuIGR4KSAob3kgKy4gZHkpIHJ3IHJoIHRcbiAgICAgICAgfCBTaGlmdF9hcmVhICh0LCBzeCwgc3kpIC0+XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyAob3ggLS4gc3gpIChveSAtLiBzeSkgc3cgc2ggdFxuICAgICAgICB8IFggKGEsIGIpIC0+XG4gICAgICAgICAgICBsZXQgYXcsIGJ3ID0gc3BsaXQgfmE6YS53IH5zYTphLnN3IH5iOmIudyB+c2I6Yi5zdyBzdyBpblxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgYXcgc2ggYTtcbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIChveCArLiBhdykgb3kgYncgc2ggYlxuICAgICAgICB8IFkgKGEsIGIpIC0+XG4gICAgICAgICAgICBsZXQgYWgsIGJoID0gc3BsaXQgfmE6YS5oIH5zYTphLnNoIH5iOmIuaCB+c2I6Yi5zaCBzaCBpblxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgYWggYTtcbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IChveSArLiBhaCkgc3cgYmggYlxuICAgICAgICB8IFogKGEsIGIpIC0+XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCBhO1xuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggYilcblxuICAgIGxldCB1cGRhdGVfZm9jdXMgdWkgPVxuICAgICAgbWF0Y2ggdWkuZm9jdXMgd2l0aFxuICAgICAgfCBGb2N1cy5FbXB0eSB8IEZvY3VzLkhhbmRsZSBfIC0+ICgpXG4gICAgICB8IEZvY3VzLkNvbmZsaWN0IGkgLT4gc29sdmVfZm9jdXMgdWkgaVxuXG4gICAgbGV0IHJlYyB0X3NpemVfZGVzY19vZl90IHZnIChzaXplIDogYm94MikgKHVpIDogVWkudCBkZXNjKSA9XG4gICAgICBtYXRjaCB1aSB3aXRoXG4gICAgICB8IEF0b20gXyBhcyBhIC0+IGFcbiAgICAgIHwgU2l6ZV9zZW5zb3IgKHQsIHYpIC0+IFNpemVfc2Vuc29yICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIHYpIC0+XG4gICAgICAgICAgTW91c2VfaGFuZGxlciAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBGb2N1c19hcmVhICh0LCB2KSAtPiBGb2N1c19hcmVhICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IEV2ZW50X2ZpbHRlciAodCwgdikgLT4gRXZlbnRfZmlsdGVyICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIHYpIC0+XG4gICAgICAgICAgVHJhbnNpZW50X3NlbnNvciAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCB2KSAtPlxuICAgICAgICAgIFBlcm1hbmVudF9zZW5zb3IgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgUmVzaXplICh0LCB3LCBoLCBnMikgLT5cbiAgICAgICAgICBSZXNpemVcbiAgICAgICAgICAgICggdF9zaXplX29mX3QgdmdcbiAgICAgICAgICAgICAgICAoQm94Mi52IChCb3gyLm8gc2l6ZSlcbiAgICAgICAgICAgICAgICAgICAoVjIudlxuICAgICAgICAgICAgICAgICAgICAgIChPcHRpb24udmFsdWUgdyB+ZGVmYXVsdDooQm94Mi53IHNpemUpKVxuICAgICAgICAgICAgICAgICAgICAgIChPcHRpb24udmFsdWUgaCB+ZGVmYXVsdDooQm94Mi5oIHNpemUpKSkpXG4gICAgICAgICAgICAgICAgdCxcbiAgICAgICAgICAgICAgdyxcbiAgICAgICAgICAgICAgaCxcbiAgICAgICAgICAgICAgZzIgKVxuICAgICAgfCBTaGlmdF9hcmVhICh0LCBzeCwgc3kpIC0+XG4gICAgICAgICAgU2hpZnRfYXJlYVxuICAgICAgICAgICAgKCB0X3NpemVfb2ZfdCB2Z1xuICAgICAgICAgICAgICAgIChCb3gyLm9mX3B0c1xuICAgICAgICAgICAgICAgICAgIFYyLihCb3gyLm8gc2l6ZSAtIG9mX3R1cGxlIChzeCwgc3kpKVxuICAgICAgICAgICAgICAgICAgIChCb3gyLm1heCBzaXplKSlcbiAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICBzeCxcbiAgICAgICAgICAgICAgc3kgKVxuICAgICAgfCBYIChhLCBiKSAtPlxuICAgICAgICAgIGxldCBhJyA9IHRfc2l6ZV9vZl90IHZnIHNpemUgYSBpblxuICAgICAgICAgIGxldCBiJyA9XG4gICAgICAgICAgICB0X3NpemVfb2ZfdCB2Z1xuICAgICAgICAgICAgICAoQm94Mi5vZl9wdHNcbiAgICAgICAgICAgICAgICAgVjIuKHYgKEJveDIubWlueCBzaXplICsuIGEnLncpIChCb3gyLm1pbnkgc2l6ZSkpXG4gICAgICAgICAgICAgICAgIChCb3gyLm1heCBzaXplKSlcbiAgICAgICAgICAgICAgYlxuICAgICAgICAgIGluXG4gICAgICAgICAgWCAoYScsIGInKVxuICAgICAgfCBZIChhLCBiKSAtPlxuICAgICAgICAgIGxldCBhJyA9IHRfc2l6ZV9vZl90IHZnIHNpemUgYSBpblxuICAgICAgICAgIGxldCBiJyA9XG4gICAgICAgICAgICB0X3NpemVfb2ZfdCB2Z1xuICAgICAgICAgICAgICAoQm94Mi5vZl9wdHNcbiAgICAgICAgICAgICAgICAgVjIuKHYgKEJveDIubWlueCBzaXplKSAoQm94Mi5taW55IHNpemUgKy4gYScuaCkpXG4gICAgICAgICAgICAgICAgIChCb3gyLm1heCBzaXplKSlcbiAgICAgICAgICAgICAgYlxuICAgICAgICAgIGluXG4gICAgICAgICAgWSAoYScsIGInKVxuICAgICAgfCBaIChhLCBiKSAtPiBaICh0X3NpemVfb2ZfdCB2ZyBzaXplIGEsIHRfc2l6ZV9vZl90IHZnIHNpemUgYilcblxuICAgIGFuZCB0X3NpemVfb2ZfdCB2ZyAoc2l6ZSA6IGJveDIpICh1aSA6IFVpLnQpIDogdWkgPVxuICAgICAgbGV0IGRlc2MgPSB0X3NpemVfZGVzY19vZl90IHZnIHNpemUgdWkuZGVzYyBpblxuICAgICAgbGV0IHcsIGggPVxuICAgICAgICBtYXRjaCBkZXNjIHdpdGhcbiAgICAgICAgfCBBdG9tIGkgLT4gVjIudG9fdHVwbGUgKEkuc2l6ZSB2ZyAoQm94Mi5vIHNpemUpIGkpXG4gICAgICAgIHwgU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgICAgfCBGb2N1c19hcmVhICh0LCBfKVxuICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgXylcbiAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHQsIF8pIC0+XG4gICAgICAgICAgICAodC53LCB0LmgpXG4gICAgICAgIHwgUmVzaXplICh0LCB3LCBoLCBfKSAtPlxuICAgICAgICAgICAgKE9wdGlvbi52YWx1ZSB3IH5kZWZhdWx0OnQudywgT3B0aW9uLnZhbHVlIGggfmRlZmF1bHQ6dC5oKVxuICAgICAgICB8IFNoaWZ0X2FyZWEgKHQsIHgsIHkpIC0+ICh0LncgKy4geCwgdC5oICsuIHkpXG4gICAgICAgIHwgWCAoYSwgYikgLT4gKGEudyArLiBiLncsIG1heCBhLmggYi5oKVxuICAgICAgICB8IFkgKGEsIGIpIC0+IChtYXggYS53IGIudywgYS5oICsuIGIuaClcbiAgICAgICAgfCBaIChhLCBiKSAtPiAobWF4IGEudyBiLncsIG1heCBhLmggYi5oKVxuICAgICAgaW5cbiAgICAgIHsgdWkgd2l0aCB3OyBoOyBkZXNjOyBzZW5zb3JfY2FjaGUgPSBOb25lOyBjYWNoZSB9XG5cbiAgICBsZXQgdXBkYXRlIHQgc2l6ZSAodWkgOiBVaS50KSA9XG4gICAgICB0LnNpemUgPC0gc2l6ZTtcbiAgICAgIHQudmlldyA8LSB0X3NpemVfb2ZfdCB0LnZnIChCb3gyLnYgVjIuemVybyBzaXplKSB1aTtcbiAgICAgIHVwZGF0ZV9zZW5zb3JzIDAuIDAuIChQMi54IHNpemUpIChQMi55IHNpemUpIHQudmlldztcbiAgICAgIHVwZGF0ZV9mb2N1cyB0LnZpZXdcblxuICAgIGxldCBkaXNwYXRjaF9tb3VzZSBzdCB4IHkgYnRuIHcgaCB0ID1cbiAgICAgIGxldCBoYW5kbGUgb3ggb3kgZiA9XG4gICAgICAgIG1hdGNoIGYgfng6KHggLS4gb3gpIH55Oih5IC0uIG95KSBidG4gd2l0aFxuICAgICAgICB8IGBVbmhhbmRsZWQgLT4gZmFsc2VcbiAgICAgICAgfCBgSGFuZGxlZCAtPiB0cnVlXG4gICAgICAgIHwgYEdyYWIgZiAtPlxuICAgICAgICAgICAgc3QubW91c2VfZ3JhYiA8LSBTb21lIGY7XG4gICAgICAgICAgICB0cnVlXG4gICAgICBpblxuICAgICAgbGV0IHJlYyBhdXggb3ggb3kgc3cgc2ggdCA9XG4gICAgICAgIG1hdGNoIHQuZGVzYyB3aXRoXG4gICAgICAgIHwgQXRvbSBfIC0+IGZhbHNlXG4gICAgICAgIHwgWCAoYSwgYikgLT5cbiAgICAgICAgICAgIGxldCBhdywgYncgPSBzcGxpdCB+YTphLncgfnNhOmEuc3cgfmI6Yi53IH5zYjpiLnN3IHN3IGluXG4gICAgICAgICAgICBpZiB4IC0uIG94IDwgYXcgdGhlbiBhdXggb3ggb3kgYXcgc2ggYVxuICAgICAgICAgICAgZWxzZSBhdXggKG94ICsuIGF3KSBveSBidyBzaCBiXG4gICAgICAgIHwgWSAoYSwgYikgLT5cbiAgICAgICAgICAgIGxldCBhaCwgYmggPSBzcGxpdCB+YTphLmggfnNhOmEuc2ggfmI6Yi5oIH5zYjpiLnNoIHNoIGluXG4gICAgICAgICAgICBpZiB5IC0uIG95IDwgYWggdGhlbiBhdXggb3ggb3kgc3cgYWggYVxuICAgICAgICAgICAgZWxzZSBhdXggb3ggKG95ICsuIGFoKSBzdyBiaCBiXG4gICAgICAgIHwgWiAoYSwgYikgLT4gYXV4IG94IG95IHN3IHNoIGIgfHwgYXV4IG94IG95IHN3IHNoIGFcbiAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBmKSAtPlxuICAgICAgICAgICAgbGV0IF9vZmZzZXR4LCBydyA9XG4gICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQudyB+c3RyZXRjaDp0LnN3IHN3IGBOZWdhdGl2ZSBgTmVnYXRpdmVcbiAgICAgICAgICAgIGFuZCBfb2Zmc2V0eSwgcmggPVxuICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LmggfnN0cmV0Y2g6dC5zaCBzaCBgTmVnYXRpdmUgYE5lZ2F0aXZlXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgYXNzZXJ0IChfb2Zmc2V0eCA9IDAuICYmIF9vZmZzZXR5ID0gMC4pO1xuICAgICAgICAgICAgKHggLS4gb3ggPj0gMC5cbiAgICAgICAgICAgICYmIHggLS4gb3ggPD0gcndcbiAgICAgICAgICAgICYmIHkgLS4gb3kgPj0gMC5cbiAgICAgICAgICAgICYmIHkgLS4gb3kgPD0gcmgpXG4gICAgICAgICAgICAmJiAoYXV4IG94IG95IHN3IHNoIHQgfHwgaGFuZGxlIG94IG95IGYpXG4gICAgICAgIHwgU2l6ZV9zZW5zb3IgKGRlc2MsIF8pXG4gICAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAoZGVzYywgXylcbiAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yIChkZXNjLCBfKVxuICAgICAgICB8IEZvY3VzX2FyZWEgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgICBhdXggb3ggb3kgc3cgc2ggZGVzY1xuICAgICAgICB8IFNoaWZ0X2FyZWEgKGRlc2MsIHN4LCBzeSkgLT5cbiAgICAgICAgICAgIGF1eCAob3ggLS4gc3gpIChveSAtLiBzeSkgc3cgc2ggZGVzY1xuICAgICAgICB8IFJlc2l6ZSAodCwgXywgXywgZykgLT5cbiAgICAgICAgICAgIGxldCBvcGVuIEdyYXZpdHkgaW5cbiAgICAgICAgICAgIGxldCBkeCwgcncgPVxuICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LncgfnN0cmV0Y2g6dC5zdyBzdyAoaCAocDEgZykpIChoIChwMiBnKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBsZXQgZHksIHJoID1cbiAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC5oIH5zdHJldGNoOnQuc2ggc2ggKHYgKHAxIGcpKSAodiAocDIgZykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgYXV4IChveCArLiBkeCkgKG95ICsuIGR5KSBydyByaCB0XG4gICAgICAgIHwgRXZlbnRfZmlsdGVyIChuLCBmKSAtPiAoXG4gICAgICAgICAgICBtYXRjaCBmIChgTW91c2UgKGBQcmVzcyBidG4sICh4LCB5KSwgW10pKSB3aXRoXG4gICAgICAgICAgICB8IGBIYW5kbGVkIC0+IHRydWVcbiAgICAgICAgICAgIHwgYFVuaGFuZGxlZCAtPiBhdXggb3ggb3kgc3cgc2ggbilcbiAgICAgIGluXG4gICAgICBhdXggMC4gMC4gdyBoIHRcblxuICAgIGxldCByZWxlYXNlX2dyYWIgc3QgeCB5ID1cbiAgICAgIG1hdGNoIHN0Lm1vdXNlX2dyYWIgd2l0aFxuICAgICAgfCBOb25lIC0+ICgpXG4gICAgICB8IFNvbWUgKF8sIHJlbGVhc2UpIC0+XG4gICAgICAgICAgc3QubW91c2VfZ3JhYiA8LSBOb25lO1xuICAgICAgICAgIHJlbGVhc2UgfnggfnlcblxuICAgIGxldCByZXNpemVfY2FudmFzIHZnIHJ3IHJoIGltYWdlID1cbiAgICAgIGxldCB3LCBoID0gVjIudG9fdHVwbGUgQEAgSS5zaXplIHZnIFYyLnplcm8gaW1hZ2UgaW5cbiAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgbSBcInJlc2l6ZV9jYW52YXM6IHc9JS4xZiBydz0lLjFmIGg9JS4xZiByaD0lLjFmXCIgdyBydyBoIHJoKTsgKilcbiAgICAgIGlmIHcgPD4gcncgfHwgaCA8PiByaCB0aGVuIEkucGFkIH5yOihydyAtLiB3KSB+YjoocmggLS4gaCkgaW1hZ2VcbiAgICAgIGVsc2UgaW1hZ2VcblxuICAgIGxldCByZXNpemVfY2FudmFzMiB2ZyBveCBveSBydyByaCBpbWFnZSA9XG4gICAgICBsZXQgdywgaCA9IFYyLnRvX3R1cGxlIEBAIEkuc2l6ZSB2ZyBWMi56ZXJvIGltYWdlIGluXG4gICAgICBJLnBhZCB+bDpveCB+dDpveSB+cjoocncgLS4gdyAtLiBveCkgfmI6KHJoIC0uIGggLS4gb3kpIGltYWdlXG5cbiAgICBsZXQgc2FtZV9zaXplIHZnIHcgaCBpbWFnZSA9XG4gICAgICBWMi4oZXF1YWwgKG9mX3R1cGxlICh3LCBoKSkgKEkuc2l6ZSB2ZyBWMi56ZXJvIGltYWdlKSlcblxuICAgIGxldCBkaXNwYXRjaF9tb3VzZSB0IChldmVudCwgKHgsIHkpLCBfbW9kcykgPVxuICAgICAgaWZcbiAgICAgICAgbWF0Y2ggZXZlbnQgd2l0aFxuICAgICAgICB8IGBQcmVzcyBidG4gLT5cbiAgICAgICAgICAgIHJlbGVhc2VfZ3JhYiB0IHggeTtcbiAgICAgICAgICAgIGxldCB3LCBoID0gVjIudG9fdHVwbGUgdC5zaXplIGluXG4gICAgICAgICAgICBkaXNwYXRjaF9tb3VzZSB0IHggeSBidG4gdyBoIHQudmlld1xuICAgICAgICB8IGBEcmFnIC0+IChcbiAgICAgICAgICAgIG1hdGNoIHQubW91c2VfZ3JhYiB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gZmFsc2VcbiAgICAgICAgICAgIHwgU29tZSAoZHJhZywgXykgLT5cbiAgICAgICAgICAgICAgICBkcmFnIH54IH55O1xuICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgIHwgYFJlbGVhc2UgLT5cbiAgICAgICAgICAgIHJlbGVhc2VfZ3JhYiB0IHggeTtcbiAgICAgICAgICAgIHRydWVcbiAgICAgIHRoZW4gYEhhbmRsZWRcbiAgICAgIGVsc2UgYFVuaGFuZGxlZFxuXG4gICAgbGV0IHJlYyByZW5kZXJfbm9kZSB2ZyAodngxIDogc2l6ZTEpICh2eTEgOiBzaXplMSkgKHZ4MiA6IHNpemUxKVxuICAgICAgICAodnkyIDogc2l6ZTEpIChzdyA6IHNpemUxKSAoc2ggOiBzaXplMSkgKHQgOiB1aSkgOiBjYWNoZSA9XG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgIG1cbiAgICAgICAgICAgICBcInJlbmRlcl9ub2RlIHZ4MT0lLjBmQCB2eTE9JS4wZkAgdngyPSUuMGZAIHZ5Mj0lLjBmQCBcXFxuICAgICAgICAgICAgICBzdz0lLjBmQCBzaD0lLjBmQCBAWyVhQF1cIlxuICAgICAgICAgICAgIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBwcCB0KTsgKilcbiAgICAgIGlmXG4gICAgICAgIGxldCBjYWNoZSA9IHQuY2FjaGUgaW5cbiAgICAgICAgdngxID49IEludGVydmFsLmZzdCBjYWNoZS52eFxuICAgICAgICAmJiB2eTEgPj0gSW50ZXJ2YWwuZnN0IGNhY2hlLnZ5XG4gICAgICAgICYmIHZ4MiA8PSBJbnRlcnZhbC5zbmQgY2FjaGUudnhcbiAgICAgICAgJiYgdnkyIDw9IEludGVydmFsLnNuZCBjYWNoZS52eVxuICAgICAgdGhlbiB0LmNhY2hlXG4gICAgICBlbHNlIGlmIHZ4MiA8IDAuIHx8IHZ5MiA8IDAuIHx8IHN3IDwgdngxIHx8IHNoIDwgdnkxIHRoZW5cbiAgICAgICAge1xuICAgICAgICAgIHZ4ID0gSW50ZXJ2YWwubWFrZSB2eDEgdngyO1xuICAgICAgICAgIHZ5ID0gSW50ZXJ2YWwubWFrZSB2eTEgdnkyO1xuICAgICAgICAgIGltYWdlID0gSS52b2lkIHN3IHNoO1xuICAgICAgICB9XG4gICAgICBlbHNlXG4gICAgICAgIGxldCBjYWNoZSA9XG4gICAgICAgICAgbWF0Y2ggdC5kZXNjIHdpdGhcbiAgICAgICAgICB8IEF0b20gaW1hZ2UgLT5cbiAgICAgICAgICAgICAgbGV0IGltYWdlID1cbiAgICAgICAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgdC5mb2N1cyB0aGVuIChcbiAgICAgICAgICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcInJlbmRlcl9ub2RlIEF0b20gaGFzX2ZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgSS5hdHRyIEEuY2xpY2thYmxlIGltYWdlKVxuICAgICAgICAgICAgICAgIGVsc2UgaW1hZ2VcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZ4ID0gSW50ZXJ2YWwubWFrZSAwLiBzdztcbiAgICAgICAgICAgICAgICB2eSA9IEludGVydmFsLm1ha2UgMC4gc2g7XG4gICAgICAgICAgICAgICAgaW1hZ2UgPSByZXNpemVfY2FudmFzIHZnIHN3IHNoIGltYWdlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfCBTaXplX3NlbnNvciAoZGVzYywgaGFuZGxlcikgLT5cbiAgICAgICAgICAgICAgaGFuZGxlciB+dzpzdyB+aDpzaDtcbiAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIGRlc2NcbiAgICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKGRlc2MsIF8pIHwgUGVybWFuZW50X3NlbnNvciAoZGVzYywgXykgLT5cbiAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIGRlc2NcbiAgICAgICAgICB8IEZvY3VzX2FyZWEgKGRlc2MsIF8pIHwgTW91c2VfaGFuZGxlciAoZGVzYywgXykgLT5cbiAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIGRlc2NcbiAgICAgICAgICB8IFNoaWZ0X2FyZWEgKHQnLCBzeCwgc3kpIC0+XG4gICAgICAgICAgICAgIGxldCBjYWNoZSA9XG4gICAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgKHZ4MSArLiBzeCkgKHZ5MSArLiBzeSkgKHZ4MiArLiBzeClcbiAgICAgICAgICAgICAgICAgICh2eTIgKy4gc3kpIChzeCArLiBzdykgKHN5ICsuIHNoKSB0J1xuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgdnggPSBJbnRlcnZhbC5tYWtlIHZ4MSB2eDJcbiAgICAgICAgICAgICAgYW5kIHZ5ID0gSW50ZXJ2YWwubWFrZSB2eTEgdnkyIGluXG4gICAgICAgICAgICAgIGxldCBpbWFnZSA9XG4gICAgICAgICAgICAgICAgcmVzaXplX2NhbnZhcyB2ZyBzdyBzaFxuICAgICAgICAgICAgICAgICAgKEkuY3JvcCB+bDpzeCB+dDpzeSBjYWNoZS5pbWFnZSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgeyB2eDsgdnk7IGltYWdlIH1cbiAgICAgICAgICB8IFggKGEsIGIpIC0+XG4gICAgICAgICAgICAgIGxldCBhdywgYncgPSBzcGxpdCB+YTphLncgfnNhOmEuc3cgfmI6Yi53IH5zYjpiLnN3IHN3IGluXG4gICAgICAgICAgICAgIGxldCBjYSA9IHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBhdyBzaCBhIGluXG4gICAgICAgICAgICAgIGxldCBjYiA9XG4gICAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgKHZ4MSAtLiBhdykgdnkxICh2eDIgLS4gYXcpIHZ5MiBidyBzaCBiXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCB2eCA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ4KVxuICAgICAgICAgICAgICAgICAgICAgKEludGVydmFsLmZzdCBjYi52eCArLiBhdykpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudngpXG4gICAgICAgICAgICAgICAgICAgICAoSW50ZXJ2YWwuc25kIGNiLnZ4ICsuIGF3KSlcbiAgICAgICAgICAgICAgYW5kIHZ5ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudnkpIChJbnRlcnZhbC5mc3QgY2IudnkpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ5KSAoSW50ZXJ2YWwuc25kIGNiLnZ5KSlcbiAgICAgICAgICAgICAgYW5kIGltYWdlID1cbiAgICAgICAgICAgICAgICByZXNpemVfY2FudmFzIHZnIHN3IHNoIEkuKGNhLmltYWdlIDx8PiBjYi5pbWFnZSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgeyB2eDsgdnk7IGltYWdlIH1cbiAgICAgICAgICB8IFkgKGEsIGIpIC0+XG4gICAgICAgICAgICAgIGxldCBhaCwgYmggPSBzcGxpdCB+YTphLmggfnNhOmEuc2ggfmI6Yi5oIH5zYjpiLnNoIHNoIGluXG4gICAgICAgICAgICAgIGxldCBjYSA9IHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBhaCBhIGluXG4gICAgICAgICAgICAgIGxldCBjYiA9XG4gICAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgdngxICh2eTEgLS4gYWgpIHZ4MiAodnkyIC0uIGFoKSBzdyBiaCBiXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCB2eCA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ4KSAoSW50ZXJ2YWwuZnN0IGNiLnZ4KSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eCkgKEludGVydmFsLnNuZCBjYi52eCkpXG4gICAgICAgICAgICAgIGFuZCB2eSA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ5KVxuICAgICAgICAgICAgICAgICAgICAgKEludGVydmFsLmZzdCBjYi52eSArLiBhaCkpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudnkpXG4gICAgICAgICAgICAgICAgICAgICAoSW50ZXJ2YWwuc25kIGNiLnZ5ICsuIGFoKSlcbiAgICAgICAgICAgICAgYW5kIGltYWdlID1cbiAgICAgICAgICAgICAgICByZXNpemVfY2FudmFzIHZnIHN3IHNoIChJLiggPC0+ICkgY2EuaW1hZ2UgY2IuaW1hZ2UpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIHsgdng7IHZ5OyBpbWFnZSB9XG4gICAgICAgICAgfCBaIChhLCBiKSAtPlxuICAgICAgICAgICAgICBsZXQgY2EgPSByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggYSBpblxuICAgICAgICAgICAgICBsZXQgY2IgPSByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggYiBpblxuICAgICAgICAgICAgICBsZXQgdnggPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eCkgKEludGVydmFsLmZzdCBjYi52eCkpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudngpIChJbnRlcnZhbC5zbmQgY2IudngpKVxuICAgICAgICAgICAgICBhbmQgdnkgPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eSkgKEludGVydmFsLmZzdCBjYi52eSkpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudnkpIChJbnRlcnZhbC5zbmQgY2IudnkpKVxuICAgICAgICAgICAgICBhbmQgaW1hZ2UgPVxuICAgICAgICAgICAgICAgIHJlc2l6ZV9jYW52YXMgdmcgc3cgc2ggKEkuKCA8Lz4gKSBjYi5pbWFnZSBjYS5pbWFnZSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgeyB2eDsgdnk7IGltYWdlIH1cbiAgICAgICAgICB8IFJlc2l6ZSAodCwgXywgXywgZykgLT5cbiAgICAgICAgICAgICAgbGV0IG9wZW4gR3Jhdml0eSBpblxuICAgICAgICAgICAgICBsZXQgZHgsIHJ3ID1cbiAgICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LncgfnN0cmV0Y2g6dC5zdyBzdyAoaCAocDEgZykpIChoIChwMiBnKSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGR5LCByaCA9XG4gICAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC5oIH5zdHJldGNoOnQuc2ggc2ggKHYgKHAxIGcpKSAodiAocDIgZykpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBjID1cbiAgICAgICAgICAgICAgICByZW5kZXJfbm9kZSB2ZyAodngxIC0uIGR4KSAodnkxIC0uIGR5KSAodngyIC0uIGR4KVxuICAgICAgICAgICAgICAgICAgKHZ5MiAtLiBkeSkgcncgcmggdFxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSByZXNpemVfY2FudmFzMiB2ZyBkeCBkeSBzdyBzaCBjLmltYWdlIGluXG4gICAgICAgICAgICAgIGxldCB2eCA9IEludGVydmFsLnNoaWZ0IGMudnggZHggaW5cbiAgICAgICAgICAgICAgbGV0IHZ5ID0gSW50ZXJ2YWwuc2hpZnQgYy52eSBkeSBpblxuICAgICAgICAgICAgICB7IHZ4OyB2eTsgaW1hZ2UgfVxuICAgICAgICAgIHwgRXZlbnRfZmlsdGVyICh0LCBfZikgLT5cbiAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIHRcbiAgICAgICAgaW5cbiAgICAgICAgdC5jYWNoZSA8LSBjYWNoZTtcbiAgICAgICAgY2FjaGVcblxuICAgIGxldCBpbWFnZSB2ZyB7IHNpemU7IHZpZXc7IF8gfSA9XG4gICAgICBsZXQgdywgaCA9IFYyLnRvX3R1cGxlIHNpemUgaW5cbiAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIlJlbmRlcmVyLmltYWdlIHZpZXc9JWEgXCIgVWkucHAgdmlldyk7XG4gICAgICAocmVuZGVyX25vZGUgdmcgMC4gMC4gdyBoIHcgaCB2aWV3KS5pbWFnZVxuXG4gICAgbGV0IGRpc3BhdGNoX3Jhd19rZXkgc3Qga2V5ID1cbiAgICAgIGxldCByZWMgaXRlciAoc3QgOiB1aSBsaXN0KSA6IFs+IGBVbmhhbmRsZWQgXSA9XG4gICAgICAgIG1hdGNoIHN0IHdpdGhcbiAgICAgICAgfCBbXSAtPiBgVW5oYW5kbGVkXG4gICAgICAgIHwgdWkgOjogdGwgLT4gKFxuICAgICAgICAgICAgbWF0Y2ggdWkuZGVzYyB3aXRoXG4gICAgICAgICAgICB8IEF0b20gXyAtPiBpdGVyIHRsXG4gICAgICAgICAgICB8IFggKGEsIGIpIHwgWSAoYSwgYikgfCBaIChhLCBiKSAtPlxuICAgICAgICAgICAgICAgICgqIFRyeSBsZWZ0L3RvcCBtb3N0IGJyYW5jaCBmaXJzdCAqKVxuICAgICAgICAgICAgICAgIGxldCBzdCcgPVxuICAgICAgICAgICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGIuZm9jdXMgdGhlbiBiIDo6IHRsXG4gICAgICAgICAgICAgICAgICBlbHNlIGEgOjogYiA6OiB0bFxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgaXRlciBzdCdcbiAgICAgICAgICAgIHwgRm9jdXNfYXJlYSAodCwgZikgLT4gKFxuICAgICAgICAgICAgICAgIG1hdGNoIGl0ZXIgWyB0IF0gd2l0aFxuICAgICAgICAgICAgICAgIHwgYEhhbmRsZWQgLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICB8IGBVbmhhbmRsZWQgLT4gKFxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBmIGtleSB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgYEhhbmRsZWQgLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgfCBgVW5oYW5kbGVkIC0+IGl0ZXIgdGwpKVxuICAgICAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgICAgICAgfCBTaXplX3NlbnNvciAodCwgXylcbiAgICAgICAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodCwgXylcbiAgICAgICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgXylcbiAgICAgICAgICAgIHwgU2hpZnRfYXJlYSAodCwgXywgXylcbiAgICAgICAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBfKSAtPlxuICAgICAgICAgICAgICAgIGl0ZXIgKHQgOjogdGwpXG4gICAgICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgZikgLT4gKFxuICAgICAgICAgICAgICAgIG1hdGNoIGYgKGBLZXkga2V5KSB3aXRoXG4gICAgICAgICAgICAgICAgfCBgVW5oYW5kbGVkIC0+IGl0ZXIgKHQgOjogdGwpXG4gICAgICAgICAgICAgICAgfCBgSGFuZGxlZCAtPiBgSGFuZGxlZCkpXG4gICAgICBpblxuICAgICAgaXRlciBbIHN0LnZpZXcgXVxuXG4gICAgZXhjZXB0aW9uIEFjcXVpcmVkX2ZvY3VzXG5cbiAgICBsZXQgZ3JhYl9mb2N1cyB1aSA9XG4gICAgICBsZXQgcmVjIGF1eCB1aSA9XG4gICAgICAgIG1hdGNoIHVpLmZvY3VzIHdpdGhcbiAgICAgICAgfCBGb2N1cy5FbXB0eSAtPiAoKVxuICAgICAgICB8IEZvY3VzLkhhbmRsZSAoXywgdikgLT5cbiAgICAgICAgICAgIEZvY3VzLnJlcXVlc3RfdmFyIHY7XG4gICAgICAgICAgICByYWlzZSBBY3F1aXJlZF9mb2N1c1xuICAgICAgICB8IEZvY3VzLkNvbmZsaWN0IF8gLT4gaXRlciBhdXggdWlcbiAgICAgIGluXG4gICAgICBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJncmFiX2ZvY3VzXCIpO1xuICAgICAgdHJ5XG4gICAgICAgIGF1eCB1aTtcbiAgICAgICAgZmFsc2VcbiAgICAgIHdpdGggQWNxdWlyZWRfZm9jdXMgLT5cbiAgICAgICAgTG9nLndhcm4gKGZ1biBtIC0+IG0gXCJncmFiX2ZvY3VzIEFjcXVpcmVkX2ZvY3VzIC0+IHRydWVcIik7XG4gICAgICAgIHRydWVcblxuICAgIGxldCByZWMgZGlzcGF0Y2hfZm9jdXMgdCBkaXIgPVxuICAgICAgbWF0Y2ggdC5kZXNjIHdpdGhcbiAgICAgIHwgQXRvbSBfIC0+IGZhbHNlXG4gICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIF8pXG4gICAgICB8IFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBfKVxuICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBfKVxuICAgICAgfCBTaGlmdF9hcmVhICh0LCBfLCBfKVxuICAgICAgfCBSZXNpemUgKHQsIF8sIF8sIF8pXG4gICAgICB8IEV2ZW50X2ZpbHRlciAodCwgXykgLT5cbiAgICAgICAgICBkaXNwYXRjaF9mb2N1cyB0IGRpclxuICAgICAgfCBGb2N1c19hcmVhICh0JywgXykgLT5cbiAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgdCcuZm9jdXMgdGhlbiAoXG4gICAgICAgICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgICAgICAgbVxuICAgICAgICAgICAgICAgICAgXCJkaXNwYXRjaF9mb2N1cyBGb2N1c19hcmVhIGhhc19mb2N1cyB0Jy5mb2N1cyA9IFxcXG4gICAgICAgICAgICAgICAgICAgdHJ1ZVwiKTtcblxuICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgdCcgZGlyIHx8IGdyYWJfZm9jdXMgdClcbiAgICAgICAgICBlbHNlIGlmIEZvY3VzLmhhc19mb2N1cyB0LmZvY3VzIHRoZW4gZmFsc2VcbiAgICAgICAgICBlbHNlIGdyYWJfZm9jdXMgdFxuICAgICAgfCBYIChhLCBiKSAtPiAoXG4gICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGEuZm9jdXMgdGhlblxuICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHx8XG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgTmV4dCB8IGBSaWdodCAtPiBkaXNwYXRjaF9mb2N1cyBiIGRpclxuICAgICAgICAgICAgfCBfIC0+IGZhbHNlXG4gICAgICAgICAgZWxzZSBpZiBGb2N1cy5oYXNfZm9jdXMgYi5mb2N1cyB0aGVuXG4gICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBiIGRpclxuICAgICAgICAgICAgfHxcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBQcmV2IHwgYExlZnQgLT4gZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHwgXyAtPiBmYWxzZVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBQcmV2IHwgYExlZnQgfCBgVXAgLT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBiIGRpciB8fCBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfCBgTmV4dCB8IGBEb3duIHwgYFJpZ2h0IC0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYSBkaXIgfHwgZGlzcGF0Y2hfZm9jdXMgYiBkaXIpXG4gICAgICB8IFkgKGEsIGIpIC0+IChcbiAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgYS5mb2N1cyB0aGVuXG4gICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfHxcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBOZXh0IHwgYERvd24gLT4gZGlzcGF0Y2hfZm9jdXMgYiBkaXJcbiAgICAgICAgICAgIHwgXyAtPiBmYWxzZVxuICAgICAgICAgIGVsc2UgaWYgRm9jdXMuaGFzX2ZvY3VzIGIuZm9jdXMgdGhlblxuICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYiBkaXJcbiAgICAgICAgICAgIHx8XG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgUHJldiB8IGBVcCAtPiBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfCBfIC0+IGZhbHNlXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYFByZXYgfCBgVXAgLT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBiIGRpciB8fCBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgICAgfCBgTmV4dCB8IGBMZWZ0IHwgYERvd24gfCBgUmlnaHQgLT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaF9mb2N1cyBhIGRpciB8fCBkaXNwYXRjaF9mb2N1cyBiIGRpcilcbiAgICAgIHwgWiAoYSwgYikgLT5cbiAgICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgYS5mb2N1cyB0aGVuIGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgZWxzZSBkaXNwYXRjaF9mb2N1cyBiIGRpciB8fCBkaXNwYXRjaF9mb2N1cyBhIGRpclxuXG4gICAgbGV0IHJlYyBkaXNwYXRjaF9rZXkgc3Qga2V5ID1cbiAgICAgIG1hdGNoIChkaXNwYXRjaF9yYXdfa2V5IHN0IGtleSwga2V5KSB3aXRoXG4gICAgICB8IGBIYW5kbGVkLCBfIC0+IGBIYW5kbGVkXG4gICAgICB8IGBVbmhhbmRsZWQsIChgQXJyb3cgZGlyLCBbXSkgLT5cbiAgICAgICAgICBsZXQgZGlyIDogWyBgRG93biB8IGBMZWZ0IHwgYFJpZ2h0IHwgYFVwIF0gOj5cbiAgICAgICAgICAgICAgWyBgRG93biB8IGBMZWZ0IHwgYFJpZ2h0IHwgYFVwIHwgYE5leHQgfCBgUHJldiBdID1cbiAgICAgICAgICAgIGRpclxuICAgICAgICAgIGluXG4gICAgICAgICAgZGlzcGF0Y2hfa2V5IHN0IChgRm9jdXMgZGlyLCBbIGBNZXRhIF0pXG4gICAgICB8IGBVbmhhbmRsZWQsIChgVGFiLCBtb2RzKSAtPlxuICAgICAgICAgIGxldCBkaXIgPSBpZiBMaXN0Lm1lbSBgU2hpZnQgbW9kcyB0aGVuIGBQcmV2IGVsc2UgYE5leHQgaW5cbiAgICAgICAgICBkaXNwYXRjaF9rZXkgc3QgKGBGb2N1cyBkaXIsIG1vZHMpXG4gICAgICB8IGBVbmhhbmRsZWQsIChgRm9jdXMgZGlyLCBfKSAtPlxuICAgICAgICAgIGxldCByID0gZGlzcGF0Y2hfZm9jdXMgc3QudmlldyBkaXIgaW5cbiAgICAgICAgICAoaWYgciB0aGVuIExvZy5kZWJ1ZyBlbHNlIExvZy53YXJuKSAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgbSBcIlJlbmRlcmVyLmRpc3BhdGNoX2ZvY3VzIGtleTolYSAtPiAlYlwiIHBwX2tleSBrZXkgcik7XG4gICAgICAgICAgaWYgciB0aGVuIGBIYW5kbGVkIGVsc2UgYFVuaGFuZGxlZFxuICAgICAgfCBgVW5oYW5kbGVkLCBfIC0+IGBVbmhhbmRsZWRcblxuICAgIGxldCBkaXNwYXRjaF9ldmVudCB0ID0gZnVuY3Rpb25cbiAgICAgIHwgYEtleSBrZXkgLT4gZGlzcGF0Y2hfa2V5IHQga2V5XG4gICAgICB8IGBNb3VzZSBtb3VzZSAtPiBkaXNwYXRjaF9tb3VzZSB0IG1vdXNlXG4gICAgICB8IGBQYXN0ZSBfIC0+IGBVbmhhbmRsZWRcbiAgZW5kXG5lbmRcblxubW9kdWxlIE5vdHR1aV9sd3QgPSBzdHJ1Y3RcbiAgb3BlbiBOb3R0dWlcblxuICAoKiBzdG9sZW4gZnJvbSBsZXQtZGVmL2x3ZC9saWIvbm90dHVpL25vdHR1aS5tbCogZXRjLi4uICopXG4gIGxldCBjb3B5X3VudGlsIHF1aXQgfmYgaW5wdXQgPVxuICAgIGxldCBxdWl0ID0gTHd0Lm1hcCAoZnVuICgpIC0+IE5vbmUpIHF1aXQgaW5cbiAgICBsZXQgc3RyZWFtLCBwdXNoID0gTHd0X3N0cmVhbS5jcmVhdGUgKCkgaW5cbiAgICBsZXQgcmVjIGF1eCAoKSA9XG4gICAgICBMd3QuYmluZCAoTHd0LmNob29zZSBbIHF1aXQ7IEx3dF9zdHJlYW0ucGVlayBpbnB1dCBdKVxuICAgICAgQEAgZnVuIHJlc3VsdCAtPlxuICAgICAgbWF0Y2ggcmVzdWx0IHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIHB1c2ggTm9uZTtcbiAgICAgICAgICBMd3QucmV0dXJuX3VuaXRcbiAgICAgIHwgU29tZSB4IC0+XG4gICAgICAgICAgcHVzaCAoU29tZSAoZiB4KSk7XG4gICAgICAgICAgTHd0LmJpbmQgKEx3dF9zdHJlYW0uanVuayBpbnB1dCkgYXV4XG4gICAgaW5cbiAgICBMd3QuYXN5bmMgYXV4O1xuICAgIHN0cmVhbVxuXG4gIGxldCByZW5kZXIgdmcgP3F1aXQgfnNpemUgZXZlbnRzIGRvYyA9XG4gICAgbGV0IHJlbmRlcmVyID0gUmVuZGVyZXIubWFrZSB2ZyAoKSBpblxuICAgIGxldCByZWZyZXNoX3N0cmVhbSwgcHVzaF9yZWZyZXNoID0gTHd0X3N0cmVhbS5jcmVhdGUgKCkgaW5cbiAgICBsZXQgcm9vdCA9XG4gICAgICBMd2Qub2JzZXJ2ZVxuICAgICAgICB+b25faW52YWxpZGF0ZTooZnVuIF8gLT5cbiAgICAgICAgICBpZiBub3QgKEx3dF9zdHJlYW0uaXNfY2xvc2VkIHJlZnJlc2hfc3RyZWFtKSB0aGVuXG4gICAgICAgICAgICBwdXNoX3JlZnJlc2ggKFNvbWUgKCkpKVxuICAgICAgICBkb2NcbiAgICBpblxuICAgIGxldCBxdWl0LCBkb19xdWl0ID1cbiAgICAgIG1hdGNoIHF1aXQgd2l0aFxuICAgICAgfCBTb21lIHF1aXQgLT4gKHF1aXQsIE5vbmUpXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgICBsZXQgdCwgdSA9IEx3dC53YWl0ICgpIGluXG4gICAgICAgICAgKHQsIFNvbWUgdSlcbiAgICBpblxuICAgIGxldCBldmVudHMgPVxuICAgICAgY29weV91bnRpbCBxdWl0IGV2ZW50cyB+ZjooZnVuIGUgLT5cbiAgICAgICAgICAoZVxuICAgICAgICAgICAgOiBbIGBSZXNpemUgb2YgXyB8IFVpLmV2ZW50IF1cbiAgICAgICAgICAgIDo+IFsgYFJlc2l6ZSBvZiBfIHwgVWkuZXZlbnQgXSkpXG4gICAgaW5cbiAgICBsZXQgc2l6ZSA9IHJlZiBzaXplIGluXG4gICAgbGV0IHJlc3VsdCwgcHVzaCA9IEx3dF9zdHJlYW0uY3JlYXRlICgpIGluXG4gICAgbGV0IHJlZnJlc2ggKCkgPVxuICAgICAgKCogRklYTUUgVGhpcyBzaG91bGQgdXNlIFtMd2Quc2FtcGxlXSB3aXRoIHByb3BlciByZWxlYXNlIG1hbmFnZW1lbnQuICopXG4gICAgICBsZXQgdWkgPSBMd2QucXVpY2tfc2FtcGxlIHJvb3QgaW5cbiAgICAgIFJlbmRlcmVyLnVwZGF0ZSByZW5kZXJlciAhc2l6ZSB1aTtcbiAgICAgIHB1c2ggKFNvbWUgKFJlbmRlcmVyLmltYWdlIHZnIHJlbmRlcmVyKSlcbiAgICBpblxuICAgIHJlZnJlc2ggKCk7XG4gICAgbGV0IHByb2Nlc3NfZXZlbnQgZSA9XG4gICAgICBtYXRjaCBlIHdpdGhcbiAgICAgIHwgYEtleSAoYFVjaGFyIGMsIFsgYE1ldGEgXSkgYXMgZXZlbnRcbiAgICAgICAgd2hlbiBVY2hhci4oZXF1YWwgYyAob2ZfY2hhciAncScpKSAtPiAoXG4gICAgICAgICAgbWF0Y2ggZG9fcXVpdCB3aXRoXG4gICAgICAgICAgfCBTb21lIHUgLT4gTHd0Lndha2V1cCB1ICgpXG4gICAgICAgICAgfCBOb25lIC0+IGlnbm9yZSAoUmVuZGVyZXIuZGlzcGF0Y2hfZXZlbnQgcmVuZGVyZXIgZXZlbnQpKVxuICAgICAgfCAjVWkuZXZlbnQgYXMgZXZlbnQgLT4gKFxuICAgICAgICAgIG1hdGNoIFJlbmRlcmVyLmRpc3BhdGNoX2V2ZW50IHJlbmRlcmVyIGV2ZW50IHdpdGhcbiAgICAgICAgICB8IGBIYW5kbGVkIC0+ICgpXG4gICAgICAgICAgfCBgVW5oYW5kbGVkIC0+XG4gICAgICAgICAgICAgICgqIExvZy53YXJuIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgICAgbVxuICAgICAgICAgICAgICAgICAgICBcIk5vdHR1aV9sd3QucmVuZGVyIHByb2Nlc3NfZXZlbnQgI1VpLmV2ZW50IC0+IFxcXG4gICAgICAgICAgICAgICAgICAgICBgVW5oYW5kbGVkXCIpICopXG4gICAgICAgICAgICAgICgpKVxuICAgICAgfCBgUmVzaXplIHNpemUnIC0+XG4gICAgICAgICAgc2l6ZSA6PSBzaXplJztcbiAgICAgICAgICByZWZyZXNoICgpXG4gICAgaW5cbiAgICBMd3QuYXN5bmMgKGZ1biAoKSAtPlxuICAgICAgICBMd3QuZmluYWxpemVcbiAgICAgICAgICAoZnVuICgpIC0+IEx3dF9zdHJlYW0uaXRlciBwcm9jZXNzX2V2ZW50IGV2ZW50cylcbiAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICBwdXNoIE5vbmU7XG4gICAgICAgICAgICBMd3QucmV0dXJuX3VuaXQpKTtcbiAgICBMd3QuYXN5bmMgKGZ1biAoKSAtPiBMd3Rfc3RyZWFtLml0ZXIgcmVmcmVzaCByZWZyZXNoX3N0cmVhbSk7XG4gICAgcmVzdWx0XG5cbiAgKCogbGV0IHJ1biA/cXVpdCBkb2MgPVxuICAgICBsZXQgdGVybSA9IFRlcm0uY3JlYXRlICgpIGluXG4gICAgIGxldCBpbWFnZXMgPVxuICAgICAgIHJlbmRlciA/cXVpdCB+c2l6ZTooVGVybS5zaXplIHRlcm0pIChUZXJtLmV2ZW50cyB0ZXJtKSBkb2NcbiAgICAgaW5cbiAgICAgTHd0LmZpbmFsaXplXG4gICAgICAgKGZ1biAoKSAtPiBMd3Rfc3RyZWFtLml0ZXJfcyAoVGVybS5pbWFnZSB0ZXJtKSBpbWFnZXMpXG4gICAgICAgKGZ1biAoKSAtPiBUZXJtLnJlbGVhc2UgdGVybSkgKilcbmVuZFxuXG5tb2R1bGUgTm90dHVpX3dpZGdldHMgPSBzdHJ1Y3RcbiAgb3BlbiBOb3R0dWlcblxuICBsZXQgc3RyaW5nID8oYXR0ciA9IEEuZW1wdHkpIHN0ciA9IFVpLmF0b20gKEkuc3RyaW5nIH5hdHRyIHN0cilcbiAgbGV0IGludCA/YXR0ciB4ID0gc3RyaW5nID9hdHRyIChzdHJpbmdfb2ZfaW50IHgpXG4gIGxldCBib29sID9hdHRyIHggPSBzdHJpbmcgP2F0dHIgKHN0cmluZ19vZl9ib29sIHgpXG4gIGxldCBmbG9hdF8gP2F0dHIgeCA9IHN0cmluZyA/YXR0ciAoc3RyaW5nX29mX2Zsb2F0IHgpXG4gIGxldCBwcmludGYgP2F0dHIgZm10ID0gUHJpbnRmLmtzcHJpbnRmIChzdHJpbmcgP2F0dHIpIGZtdFxuICBsZXQgZm10ID9hdHRyIGZtdCA9IEZvcm1hdC5rYXNwcmludGYgKHN0cmluZyA/YXR0cikgZm10XG5cbiAgbGV0IGtwcmludGYgayA/YXR0ciBmbXQgPVxuICAgIFByaW50Zi5rc3ByaW50ZiAoZnVuIHN0ciAtPiBrIChzdHJpbmcgP2F0dHIgc3RyKSkgZm10XG5cbiAgbGV0IGtmbXQgayA/YXR0ciBmbXQgPVxuICAgIEZvcm1hdC5rYXNwcmludGYgKGZ1biBzdHIgLT4gayAoc3RyaW5nID9hdHRyIHN0cikpIGZtdFxuXG4gIHR5cGUgd2luZG93X21hbmFnZXIgPSB7XG4gICAgb3ZlcmxheXMgOiB1aSBMd2QudCBMd2RfdGFibGUudDtcbiAgICB2aWV3IDogdWkgTHdkLnQ7XG4gIH1cblxuICBsZXQgd2luZG93X21hbmFnZXIgYmFzZSA9XG4gICAgbGV0IG92ZXJsYXlzID0gTHdkX3RhYmxlLm1ha2UgKCkgaW5cbiAgICBsZXQgY29tcG9zaXRpb24gPVxuICAgICAgTHdkLmpvaW5cbiAgICAgICAgKEx3ZF90YWJsZS5yZWR1Y2UgKEx3ZF91dGlscy5saWZ0X21vbm9pZCBVaS5wYWNrX3opIG92ZXJsYXlzKVxuICAgIGluXG4gICAgbGV0IHZpZXcgPVxuICAgICAgTHdkLm1hcDIgYmFzZSBjb21wb3NpdGlvbiB+ZjooZnVuIGJhc2UgY29tcG9zaXRlIC0+XG4gICAgICAgICAgVWkuam9pbl96IGJhc2VcbiAgICAgICAgICAgIChVaS5yZXNpemVfdG8gKFVpLmxheW91dF9zcGVjIGJhc2UpIGNvbXBvc2l0ZSkpXG4gICAgaW5cbiAgICB7IG92ZXJsYXlzOyB2aWV3IH1cblxuICBsZXQgd2luZG93X21hbmFnZXJfdmlldyB3bSA9IHdtLnZpZXdcbiAgbGV0IHdpbmRvd19tYW5hZ2VyX292ZXJsYXlzIHdtID0gd20ub3ZlcmxheXNcblxuICBsZXQgbWVudV9vdmVybGF5IHdtIGcgPyhkeCA9IDAuKSA/KGR5ID0gMC4pIGJvZHkgYXJvdW5kID1cbiAgICBsZXQgc2Vuc29yIH54IH55IH53IH5oICgpID1cbiAgICAgIGxldCByb3cgPSBMd2RfdGFibGUuYXBwZW5kICh3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyB3bSkgaW5cbiAgICAgIGxldCBoX3BhZCA9XG4gICAgICAgIG1hdGNoIEdyYXZpdHkuaCBnIHdpdGhcbiAgICAgICAgfCBgTmVnYXRpdmUgLT4gVWkuc3BhY2UgKHggKy4gZHgpIDAuXG4gICAgICAgIHwgYE5ldXRyYWwgLT4gVWkuc3BhY2UgKHggKy4gZHggKy4gKHcgLy4gMi4pKSAwLlxuICAgICAgICB8IGBQb3NpdGl2ZSAtPiBVaS5zcGFjZSAoeCArLiBkeCArLiB3KSAwLlxuICAgICAgaW5cbiAgICAgIGxldCB2X3BhZCA9XG4gICAgICAgIG1hdGNoIEdyYXZpdHkudiBnIHdpdGhcbiAgICAgICAgfCBgTmVnYXRpdmUgLT4gVWkuc3BhY2UgMC4gKHkgKy4gZHkpXG4gICAgICAgIHwgYE5ldXRyYWwgLT4gVWkuc3BhY2UgMC4gKHkgKy4gZHkgKy4gKGggLy4gMi4pKVxuICAgICAgICB8IGBQb3NpdGl2ZSAtPiBVaS5zcGFjZSAwLiAoeSArLiBkeSArLiBoKVxuICAgICAgaW5cbiAgICAgIGxldCB2aWV3ID1cbiAgICAgICAgTHdkLm1hcCBib2R5IH5mOihmdW4gYm9keSAtPlxuICAgICAgICAgICAgbGV0IGJvZHkgPVxuICAgICAgICAgICAgICBsZXQgcGFkID0gVWkuc3BhY2UgMS4gMC4gaW5cbiAgICAgICAgICAgICAgVWkuam9pbl94IHBhZCAoVWkuam9pbl94IGJvZHkgcGFkKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGxldCBiZyA9XG4gICAgICAgICAgICAgIFVpLnJlc2l6ZV90byAoVWkubGF5b3V0X3NwZWMgYm9keSlcbiAgICAgICAgICAgICAgICB+YXR0cjpBLihiZyBDb2xvci5saWdodGdyZWVuKVxuICAgICAgICAgICAgICAgIFVpLmVtcHR5XG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgbGV0IGNhdGNoYWxsID1cbiAgICAgICAgICAgICAgVWkubW91c2VfYXJlYVxuICAgICAgICAgICAgICAgIChmdW4gfng6XyB+eTpfIC0+IGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLnJlbW92ZSByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgIHwgXyAtPiBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAoVWkucmVzaXplIH5zdzoxLiB+c2g6MS4gVWkuZW1wdHkpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgVWkuam9pbl96IGNhdGNoYWxsIEBAIFVpLmpvaW5feSB2X3BhZCBAQCBVaS5qb2luX3ggaF9wYWRcbiAgICAgICAgICAgIEBAIFVpLmpvaW5feiBiZyBib2R5KVxuICAgICAgaW5cbiAgICAgIEx3ZF90YWJsZS5zZXQgcm93IHZpZXdcbiAgICBpblxuICAgIFVpLnRyYW5zaWVudF9zZW5zb3Igc2Vuc29yIGFyb3VuZFxuXG4gICgqIGxldCBtZW51X292ZXJsYXkgd20gPyhkeCA9IDApID8oZHkgPSAwKSBoYW5kbGVyIGJvZHkgPVxuICAgICBsZXQgcmVmcmVzaCA9IEx3ZC52YXIgKCkgaW5cbiAgICAgbGV0IGNsaWNrZWQgPSByZWYgZmFsc2UgaW5cbiAgICAgTHdkLm1hcCcgYm9keSBAQCBmdW4gYm9keSAtPlxuICAgICBsZXQgYm9keSA9XG4gICAgICAgbGV0IHBhZCA9IFVpLnNwYWNlIDEgMCBpblxuICAgICAgIFVpLmpvaW5feCBwYWQgKFVpLmpvaW5feCBib2R5IHBhZClcbiAgICAgaW5cbiAgICAgbGV0IGJnID1cbiAgICAgICBVaS5yZXNpemVfdG8gKFVpLmxheW91dF9zcGVjIGJvZHkpXG4gICAgICAgICB+Ymc6QS4oYmcgbGlnaHRncmVlbilcbiAgICAgICAgIFVpLmVtcHR5XG4gICAgIGluXG4gICAgIGxldCBjbGlja19oYW5kbGVyIH54Ol8gfnk6XyA9IGZ1bmN0aW9uXG4gICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICBjbGlja2VkIDo9IHRydWU7XG4gICAgICAgICAgIEx3ZC5zZXQgcmVmcmVzaCAoKTtcbiAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgICBpblxuICAgICBsZXQgdWkgPSBVaS5tb3VzZV9hcmVhIGNsaWNrX2hhbmRsZXIgKFVpLmpvaW5feiBiZyBib2R5KSBpblxuICAgICBpZiAhY2xpY2tlZCB0aGVuIChcbiAgICAgICBjbGlja2VkIDo9IGZhbHNlO1xuICAgICAgIGxldCBzZW5zb3Igfnggfnkgfnc6XyB+aCAoKSA9XG4gICAgICAgICBsZXQgcm93ID0gTHdkX3RhYmxlLmFwcGVuZCAod2luZG93X21hbmFnZXJfb3ZlcmxheXMgd20pIGluXG4gICAgICAgICBsZXQgaF9wYWQgPSBVaS5zcGFjZSAoeCArIGR4KSAwIGluXG4gICAgICAgICBsZXQgdl9wYWQgPSBVaS5zcGFjZSAwICh5ICsgaCArIGR5KSBpblxuICAgICAgICAgbGV0IHZpZXcgPVxuICAgICAgICAgICBMd2QubWFwJyAoaGFuZGxlciAoKSkgQEAgZnVuIHZpZXcgLT5cbiAgICAgICAgICAgbGV0IGNhdGNoYWxsID1cbiAgICAgICAgICAgICBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAgICAgICAoZnVuIH54Ol8gfnk6XyAtPiBmdW5jdGlvblxuICAgICAgICAgICAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgICAgICAgICAgICBMd2RfdGFibGUucmVtb3ZlIHJvdztcbiAgICAgICAgICAgICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgICAgICAgICAgIHwgXyAtPiBgSGFuZGxlZClcbiAgICAgICAgICAgICAgIChVaS5yZXNpemUgfnN3OjEgfnNoOjEgVWkuZW1wdHkpXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIFVpLmpvaW5feiBjYXRjaGFsbCAoVWkuam9pbl95IHZfcGFkIChVaS5qb2luX3ggaF9wYWQgdmlldykpXG4gICAgICAgICBpblxuICAgICAgICAgTHdkX3RhYmxlLnNldCByb3cgdmlld1xuICAgICAgIGluXG4gICAgICAgVWkudHJhbnNpZW50X3NlbnNvciBzZW5zb3IgdWkpXG4gICAgIGVsc2UgdWkgKilcblxuICBsZXQgc2Nyb2xsX3N0ZXAgPSA3LlxuXG4gIGxldCBzY3JvbGxfYXJlYSA/KG9mZnNldCA9ICgwLiwgMC4pKSB0ID1cbiAgICBsZXQgb2Zmc2V0ID0gTHdkLnZhciBvZmZzZXQgaW5cbiAgICBsZXQgc2Nyb2xsIGRfeCBkX3kgPVxuICAgICAgbGV0IHNfeCwgc195ID0gTHdkLnBlZWsgb2Zmc2V0IGluXG4gICAgICBsZXQgc194ID0gbWF4IDAuIChzX3ggKy4gZF94KSBpblxuICAgICAgbGV0IHNfeSA9IG1heCAwLiAoc195ICsuIGRfeSkgaW5cbiAgICAgIEx3ZC5zZXQgb2Zmc2V0IChzX3gsIHNfeSk7XG4gICAgICBgSGFuZGxlZFxuICAgIGluXG4gICAgbGV0IGZvY3VzX2hhbmRsZXIgPSBmdW5jdGlvblxuICAgICAgfCBgQXJyb3cgYExlZnQsIFtdIC0+IHNjcm9sbCAoLS5zY3JvbGxfc3RlcCkgMC5cbiAgICAgIHwgYEFycm93IGBSaWdodCwgW10gLT4gc2Nyb2xsICgrLnNjcm9sbF9zdGVwKSAwLlxuICAgICAgfCBgQXJyb3cgYFVwLCBbXSAtPiBzY3JvbGwgMC4gKC0uc2Nyb2xsX3N0ZXApXG4gICAgICB8IGBBcnJvdyBgRG93biwgW10gLT4gc2Nyb2xsIDAuICgrLnNjcm9sbF9zdGVwKVxuICAgICAgfCBgUGFnZSBgVXAsIFtdIC0+IHNjcm9sbCAwLiAoLS5zY3JvbGxfc3RlcCAqLiA4LilcbiAgICAgIHwgYFBhZ2UgYERvd24sIFtdIC0+IHNjcm9sbCAwLiAoKy5zY3JvbGxfc3RlcCAqLiA4LilcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICAoKiBsZXQgc2Nyb2xsX2hhbmRsZXIgfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgICAgIHwgYFNjcm9sbCBgVXAgLT4gc2Nyb2xsIDAuICgtLnNjcm9sbF9zdGVwKVxuICAgICAgICAgfCBgU2Nyb2xsIGBEb3duIC0+IHNjcm9sbCAwLiAoKy5zY3JvbGxfc3RlcClcbiAgICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgICAgaW4gKilcbiAgICBMd2QubWFwMiB0IChMd2QuZ2V0IG9mZnNldCkgfmY6KGZ1biB0IChzX3gsIHNfeSkgLT5cbiAgICAgICAgdCB8PiBVaS5zaGlmdF9hcmVhIHNfeCBzX3lcbiAgICAgICAgKCp8PiBVaS5tb3VzZV9hcmVhIHNjcm9sbF9oYW5kbGVyKilcbiAgICAgICAgfD4gVWkua2V5Ym9hcmRfYXJlYSBmb2N1c19oYW5kbGVyKVxuXG4gIGxldCBtYWluX21lbnVfaXRlbSB3bSB0ZXh0IGYgPVxuICAgIGxldCB0ZXh0ID0gc3RyaW5nIH5hdHRyOkEubWVudV9tYWluIChcIiBcIiBeIHRleHQgXiBcIiBcIikgaW5cbiAgICBsZXQgcmVmcmVzaCA9IEx3ZC52YXIgKCkgaW5cbiAgICBsZXQgb3ZlcmxheSA9IHJlZiBmYWxzZSBpblxuICAgIGxldCBvbl9jbGljayB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIG92ZXJsYXkgOj0gdHJ1ZTtcbiAgICAgICAgICBMd2Quc2V0IHJlZnJlc2ggKCk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBMd2QubWFwIChMd2QuZ2V0IHJlZnJlc2gpIH5mOihmdW4gKCkgLT5cbiAgICAgICAgbGV0IHVpID0gVWkubW91c2VfYXJlYSBvbl9jbGljayB0ZXh0IGluXG4gICAgICAgIGlmICFvdmVybGF5IHRoZW4gKFxuICAgICAgICAgIG92ZXJsYXkgOj0gZmFsc2U7XG4gICAgICAgICAgbWVudV9vdmVybGF5IHdtXG4gICAgICAgICAgICAoR3Jhdml0eS5tYWtlIH5oOmBOZWdhdGl2ZSB+djpgUG9zaXRpdmUpXG4gICAgICAgICAgICAoZiAoKSkgdWkpXG4gICAgICAgIGVsc2UgdWkpXG5cbiAgbGV0IHN1Yl9tZW51X2l0ZW0gd20gdGV4dCBmID1cbiAgICBsZXQgdGV4dCA9IHN0cmluZyB+YXR0cjpBLm1lbnVfc3ViIHRleHQgaW5cbiAgICBsZXQgcmVmcmVzaCA9IEx3ZC52YXIgKCkgaW5cbiAgICBsZXQgb3ZlcmxheSA9IHJlZiBmYWxzZSBpblxuICAgIGxldCBvbl9jbGljayB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIG92ZXJsYXkgOj0gdHJ1ZTtcbiAgICAgICAgICBMd2Quc2V0IHJlZnJlc2ggKCk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBMd2QubWFwIChMd2QuZ2V0IHJlZnJlc2gpIH5mOihmdW4gKCkgLT5cbiAgICAgICAgbGV0IHVpID0gVWkubW91c2VfYXJlYSBvbl9jbGljayB0ZXh0IGluXG4gICAgICAgIGlmICFvdmVybGF5IHRoZW4gKFxuICAgICAgICAgIG92ZXJsYXkgOj0gZmFsc2U7XG4gICAgICAgICAgbWVudV9vdmVybGF5IHdtXG4gICAgICAgICAgICAoR3Jhdml0eS5tYWtlIH5oOmBQb3NpdGl2ZSB+djpgTmVnYXRpdmUpXG4gICAgICAgICAgICAoZiAoKSkgdWkpXG4gICAgICAgIGVsc2UgdWkpXG5cbiAgbGV0IHN1Yl9lbnRyeSB0ZXh0IGYgPVxuICAgIGxldCB0ZXh0ID0gc3RyaW5nIH5hdHRyOkEubWVudV9zdWIgdGV4dCBpblxuICAgIGxldCBvbl9jbGljayB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIGYgKCk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBVaS5tb3VzZV9hcmVhIG9uX2NsaWNrIHRleHRcblxuICB0eXBlIHBhbmVfc3RhdGUgPVxuICAgIHwgU3BsaXQgb2YgeyBwb3MgOiBmbG9hdDsgbWF4IDogZmxvYXQgfVxuICAgIHwgUmVfc3BsaXQgb2YgeyBwb3MgOiBmbG9hdDsgbWF4IDogZmxvYXQ7IGF0IDogZmxvYXQgfVxuXG4gIGxldCBoX3BhbmUgbGVmdCByaWdodCA9XG4gICAgbGV0IHN0YXRlX3ZhciA9IEx3ZC52YXIgKFNwbGl0IHsgcG9zID0gNS47IG1heCA9IDEwLiB9KSBpblxuICAgIGxldCByZW5kZXIgc3RhdGUgKGwsIHIpID1cbiAgICAgIGxldCAoU3BsaXQgeyBwb3M7IG1heCB9IHwgUmVfc3BsaXQgeyBwb3M7IG1heDsgXyB9KSA9IHN0YXRlIGluXG4gICAgICBsZXQgbCA9IFVpLnJlc2l6ZSB+dzowLiB+aDowLiB+c2g6MS4gfnN3OnBvcyBsIGluXG4gICAgICBsZXQgciA9IFVpLnJlc2l6ZSB+dzowLiB+aDowLiB+c2g6MS4gfnN3OihtYXggLS4gcG9zKSByIGluXG4gICAgICBsZXQgc3BsaXR0ZXIgPVxuICAgICAgICBVaS5yZXNpemVcbiAgICAgICAgICB+YXR0cjpBLihiZyBDb2xvci5saWdodHllbGxvdylcbiAgICAgICAgICB+dzoxLiB+aDowLiB+c3c6MC4gfnNoOjEuIFVpLmVtcHR5XG4gICAgICBpblxuICAgICAgbGV0IHNwbGl0dGVyID1cbiAgICAgICAgVWkubW91c2VfYXJlYVxuICAgICAgICAgIChmdW4gfng6XyB+eTpfIC0+IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgICAgICAgYEdyYWJcbiAgICAgICAgICAgICAgICAgICggKGZ1biB+eCB+eTpfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggTHdkLnBlZWsgc3RhdGVfdmFyIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICB8IFNwbGl0IHsgcG9zOyBtYXggfSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCA9IHggfSlcbiAgICAgICAgICAgICAgICAgICAgICB8IFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0IH0gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXQgPD4geCB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCA9IHggfSkpLFxuICAgICAgICAgICAgICAgICAgICBmdW4gfng6XyB+eTpfIC0+ICgpIClcbiAgICAgICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkKVxuICAgICAgICAgIHNwbGl0dGVyXG4gICAgICBpblxuICAgICAgbGV0IHVpID0gVWkuam9pbl94IGwgKFVpLmpvaW5feCBzcGxpdHRlciByKSBpblxuICAgICAgbGV0IHVpID0gVWkucmVzaXplIH53OjEwMC4gfmg6MTAwLiB+c3c6MTAuIH5zaDoxMC4gdWkgaW5cbiAgICAgIGxldCB1aSA9XG4gICAgICAgIG1hdGNoIHN0YXRlIHdpdGhcbiAgICAgICAgfCBTcGxpdCBfIC0+IHVpXG4gICAgICAgIHwgUmVfc3BsaXQgeyBhdDsgXyB9IC0+XG4gICAgICAgICAgICBVaS50cmFuc2llbnRfc2Vuc29yXG4gICAgICAgICAgICAgIChmdW4gfnggfnk6XyB+dyB+aDpfICgpIC0+XG4gICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXIgKFNwbGl0IHsgcG9zID0gYXQgLS4geDsgbWF4ID0gdyB9KSlcbiAgICAgICAgICAgICAgdWlcbiAgICAgIGluXG4gICAgICB1aVxuICAgIGluXG4gICAgTHdkLm1hcDIgfmY6cmVuZGVyIChMd2QuZ2V0IHN0YXRlX3ZhcikgKEx3ZC5wYWlyIGxlZnQgcmlnaHQpXG5cbiAgbGV0IHZfcGFuZSB0b3AgYm90ID1cbiAgICBsZXQgc3RhdGVfdmFyID0gTHdkLnZhciAoU3BsaXQgeyBwb3MgPSA1LjsgbWF4ID0gMTAuIH0pIGluXG4gICAgbGV0IHJlbmRlciBzdGF0ZSAodG9wLCBib3QpID1cbiAgICAgIGxldCAoU3BsaXQgeyBwb3M7IG1heCB9IHwgUmVfc3BsaXQgeyBwb3M7IG1heDsgXyB9KSA9IHN0YXRlIGluXG4gICAgICBsZXQgdG9wID0gVWkucmVzaXplIH53OjAuIH5oOjAuIH5zdzoxLiB+c2g6cG9zIHRvcCBpblxuICAgICAgbGV0IGJvdCA9IFVpLnJlc2l6ZSB+dzowLiB+aDowLiB+c3c6MS4gfnNoOihtYXggLS4gcG9zKSBib3QgaW5cbiAgICAgIGxldCBzcGxpdHRlciA9XG4gICAgICAgIFVpLnJlc2l6ZVxuICAgICAgICAgIH5hdHRyOkEuKGJnIENvbG9yLmxpZ2h0eWVsbG93KVxuICAgICAgICAgIH53OjAuIH5oOjEuIH5zdzoxLiB+c2g6MC4gVWkuZW1wdHlcbiAgICAgIGluXG4gICAgICBsZXQgc3BsaXR0ZXIgPVxuICAgICAgICBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAgKGZ1biB+eDpfIH55Ol8gLT4gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgICAgICBgR3JhYlxuICAgICAgICAgICAgICAgICAgKCAoZnVuIH54Ol8gfnkgLT5cbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBMd2QucGVlayBzdGF0ZV92YXIgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU3BsaXQgeyBwb3M7IG1heCB9IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0ID0geSB9KVxuICAgICAgICAgICAgICAgICAgICAgIHwgUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgfSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhdCA8PiB5IHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0ID0geSB9KSksXG4gICAgICAgICAgICAgICAgICAgIGZ1biB+eDpfIH55Ol8gLT4gKCkgKVxuICAgICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpXG4gICAgICAgICAgc3BsaXR0ZXJcbiAgICAgIGluXG4gICAgICBsZXQgdWkgPSBVaS5qb2luX3kgdG9wIChVaS5qb2luX3kgc3BsaXR0ZXIgYm90KSBpblxuICAgICAgbGV0IHVpID0gVWkucmVzaXplIH53OjEwLiB+aDoxMC4gfnN3OjEuIH5zaDoxLiB1aSBpblxuICAgICAgbGV0IHVpID1cbiAgICAgICAgbWF0Y2ggc3RhdGUgd2l0aFxuICAgICAgICB8IFNwbGl0IF8gLT4gdWlcbiAgICAgICAgfCBSZV9zcGxpdCB7IGF0OyBfIH0gLT5cbiAgICAgICAgICAgIFVpLnRyYW5zaWVudF9zZW5zb3JcbiAgICAgICAgICAgICAgKGZ1biB+eDpfIH55IH53Ol8gfmggKCkgLT5cbiAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhciAoU3BsaXQgeyBwb3MgPSBhdCAtLiB5OyBtYXggPSBoIH0pKVxuICAgICAgICAgICAgICB1aVxuICAgICAgaW5cbiAgICAgIHVpXG4gICAgaW5cbiAgICBMd2QubWFwMiB+ZjpyZW5kZXIgKEx3ZC5nZXQgc3RhdGVfdmFyKSAoTHdkLnBhaXIgdG9wIGJvdClcblxuICBsZXQgZXFfdWNfYyB1YyBjID0gVWNoYXIuKGVxdWFsIHVjIChvZl9jaGFyIGMpKVxuXG4gIGxldCBlZGl0X2ZpZWxkID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKSA/KG9uX2NoYW5nZSA9IEZ1bi5pZCkgc3RhdGVcbiAgICAgID1cbiAgICBsZXQgdXBkYXRlIGZvY3VzX2ggZm9jdXMgKHRleHQsIHBvcykgPVxuICAgICAgbGV0IHBvcyA9IG1pbiAobWF4IDAgcG9zKSAoU3RyaW5nLmxlbmd0aCB0ZXh0KSBpblxuICAgICAgbGV0IGNvbnRlbnQgPVxuICAgICAgICBVaS5hdG9tIEBAIEkuaGNhdFxuICAgICAgICBAQFxuICAgICAgICBpZiBGb2N1cy5oYXNfZm9jdXMgZm9jdXMgdGhlblxuICAgICAgICAgIGxldCBhdHRyID0gQS5jbGlja2FibGUgaW5cbiAgICAgICAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCB0ZXh0IGluXG4gICAgICAgICAgaWYgcG9zID49IGxlbiB0aGVuXG4gICAgICAgICAgICBbIEkuc3RyaW5nIH5hdHRyIHRleHQ7IEkuc3RyaW5nIH5hdHRyOkEuY3Vyc29yIFwiIFwiIF1cbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIEkuc3RyaW5nIH5hdHRyIChTdHJpbmcuc3ViIHRleHQgMCBwb3MpO1xuICAgICAgICAgICAgICBJLnN0cmluZyB+YXR0cjpBLmN1cnNvciAoU3RyaW5nLnN1YiB0ZXh0IHBvcyAxKTtcbiAgICAgICAgICAgICAgSS5zdHJpbmcgfmF0dHJcbiAgICAgICAgICAgICAgICAoU3RyaW5nLnN1YiB0ZXh0IChwb3MgKyAxKSAobGVuIC0gcG9zIC0gMSkpO1xuICAgICAgICAgICAgXVxuICAgICAgICBlbHNlIFsgSS5zdHJpbmcgKGlmIHRleHQgPSBcIlwiIHRoZW4gXCIgXCIgZWxzZSB0ZXh0KSBdXG4gICAgICBpblxuICAgICAgbGV0IGhhbmRsZXIgayA9XG4gICAgICAgIGxldCBvbl9jaGFuZ2UgYSA9XG4gICAgICAgICAgTHdkLnNldCBzdGF0ZSAob25fY2hhbmdlIGEpO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgIGluXG4gICAgICAgIChtYXRjaCBrIHdpdGhcbiAgICAgICAgfCBgVWNoYXIgYywgWyBgQ3RybCBdIHdoZW4gVWNoYXIuKGVxdWFsIGMgKG9mX2NoYXIgJ1UnKSkgLT5cbiAgICAgICAgICAgIG9uX2NoYW5nZSAoXCJcIiwgMCkgKCogY2xlYXIgKilcbiAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdrJyAtPlxuICAgICAgICAgICAgKCogVE9ETyBwdXQga2lsbGVkIHRleHQgaW50byBraWxsLXJpbmcgKilcbiAgICAgICAgICAgIGlmIHBvcyA8IFN0cmluZy5sZW5ndGggdGV4dCB0aGVuXG4gICAgICAgICAgICAgIG9uX2NoYW5nZSAoU3RyaW5nLnN1YiB0ZXh0IDAgcG9zLCBwb3MpXG4gICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWQgKCoga2lsbCAqKVxuICAgICAgICB8IGBCYWNrc3BhY2UsIFtdIC0+XG4gICAgICAgICAgICBpZiBwb3MgPiAwIHRoZW5cbiAgICAgICAgICAgICAgbGV0IHRleHQgPVxuICAgICAgICAgICAgICAgIGlmIHBvcyA8IFN0cmluZy5sZW5ndGggdGV4dCB0aGVuXG4gICAgICAgICAgICAgICAgICBTdHJpbmcuc3ViIHRleHQgMCAocG9zIC0gMSlcbiAgICAgICAgICAgICAgICAgIF4gU3RyaW5nLnN1YiB0ZXh0IHBvcyAoU3RyaW5nLmxlbmd0aCB0ZXh0IC0gcG9zKVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgU3RyaW5nLmxlbmd0aCB0ZXh0ID4gMCB0aGVuXG4gICAgICAgICAgICAgICAgICBTdHJpbmcuc3ViIHRleHQgMCAoU3RyaW5nLmxlbmd0aCB0ZXh0IC0gMSlcbiAgICAgICAgICAgICAgICBlbHNlIHRleHRcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IHBvcyA9IG1heCAwIChwb3MgLSAxKSBpblxuICAgICAgICAgICAgICBvbl9jaGFuZ2UgKHRleHQsIHBvcylcbiAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZFxuICAgICAgICB8IGBVY2hhciBrLCBbXSAtPlxuICAgICAgICAgICAgbGV0IGsgPSBVY2hhci51bnNhZmVfdG9fY2hhciBrIGluXG4gICAgICAgICAgICBsZXQgdGV4dCA9XG4gICAgICAgICAgICAgIGlmIHBvcyA8IFN0cmluZy5sZW5ndGggdGV4dCB0aGVuXG4gICAgICAgICAgICAgICAgU3RyaW5nLnN1YiB0ZXh0IDAgcG9zIF4gU3RyaW5nLm1ha2UgMSBrXG4gICAgICAgICAgICAgICAgXiBTdHJpbmcuc3ViIHRleHQgcG9zIChTdHJpbmcubGVuZ3RoIHRleHQgLSBwb3MpXG4gICAgICAgICAgICAgIGVsc2UgdGV4dCBeIFN0cmluZy5tYWtlIDEga1xuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIG9uX2NoYW5nZSAodGV4dCwgcG9zICsgMSlcbiAgICAgICAgfCBgRXNjYXBlLCBbXSAtPlxuICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBmb2N1c19oO1xuICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgKCogfCBgRW50ZXIsIF8gLT5cbiAgICAgICAgICAgIG9uX3N1Ym1pdCAodGV4dCwgcG9zKTtcbiAgICAgICAgICAgIGBIYW5kbGVkICopXG4gICAgICAgIHwgYEFycm93IGBMZWZ0LCBbXSAtPlxuICAgICAgICAgICAgaWYgcG9zID4gMCB0aGVuIG9uX2NoYW5nZSAodGV4dCwgcG9zIC0gMSkgZWxzZSBgVW5oYW5kbGVkXG4gICAgICAgIHwgYEFycm93IGBSaWdodCwgW10gLT5cbiAgICAgICAgICAgIGxldCBwb3MgPSBwb3MgKyAxIGluXG4gICAgICAgICAgICBpZiBwb3MgPD0gU3RyaW5nLmxlbmd0aCB0ZXh0IHRoZW4gb25fY2hhbmdlICh0ZXh0LCBwb3MpXG4gICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWRcbiAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpXG4gICAgICAgIHw+IGZ1biByIC0+XG4gICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgIG0gXCJlZGl0X2ZpZWxkIGtleWJvYXJkX2FyZWEgaGFuZGxlciAlYSAtPiAlYVwiIFVpLnBwX2tleSBrXG4gICAgICAgICAgICAgIFVpLnBwX21heV9oYW5kbGUgcik7XG4gICAgICAgIHJcbiAgICAgIGluXG4gICAgICBVaS5rZXlib2FyZF9hcmVhIH5mb2N1cyBoYW5kbGVyIGNvbnRlbnRcbiAgICBpblxuICAgIGxldCBub2RlID1cbiAgICAgIEx3ZC5tYXAyIH5mOih1cGRhdGUgZm9jdXMpIChGb2N1cy5zdGF0dXMgZm9jdXMpIChMd2QuZ2V0IHN0YXRlKVxuICAgIGluXG4gICAgbm9kZVxuICAoKiBsZXQgbW91c2VfZ3JhYiAodGV4dCwgcG9zKSB+eCB+eTpfID0gZnVuY3Rpb25cbiAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgIGlmIHggPD4gcG9zIHRoZW4gb25fY2hhbmdlICh0ZXh0LCB4KTtcbiAgICAgICAgICAgTm90dHVpLkZvY3VzLnJlcXVlc3QgZm9jdXM7XG4gICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICAgaW5cbiAgICAgTHdkLm1hcDIgc3RhdGUgbm9kZSB+ZjooZnVuIHN0YXRlIGNvbnRlbnQgLT5cbiAgICAgICAgIFVpLm1vdXNlX2FyZWEgKG1vdXNlX2dyYWIgc3RhdGUpIGNvbnRlbnQgKilcblxuICBvcGVuIEx3ZC5JbmZpeFxuXG4gIHR5cGUgbGluZSA9IHtcbiAgICBmb2N1cyA6IEZvY3VzLmhhbmRsZTtcbiAgICBzdGF0ZSA6IChzdHJpbmcgKiBpbnQpIEx3ZC52YXI7XG4gICAgdWkgOiBVaS50IEx3ZC50O1xuICB9XG5cbiAgdHlwZSBsaW5lcyA9IGxpbmUgTHdkX3RhYmxlLnRcblxuICBsZXQgbGluZV9lbXB0eSAoKSA9XG4gICAgbGV0IGZvY3VzID0gRm9jdXMubWFrZSAoKSBpblxuICAgIGxldCBzdGF0ZSA9IEx3ZC52YXIgKFwiXCIsIDApIGluXG4gICAgeyBmb2N1czsgc3RhdGU7IHVpID0gZWRpdF9maWVsZCB+Zm9jdXMgc3RhdGUgfVxuXG4gIGxldCBsaW5lX21ha2UgPyhmb2N1cyA9IEZvY3VzLm1ha2UgKCkpIHN0ciA9XG4gICAgbGV0IHN0YXRlID0gTHdkLnZhciAoc3RyLCAwKSBpblxuICAgIHsgZm9jdXM7IHN0YXRlOyB1aSA9IGVkaXRfZmllbGQgfmZvY3VzIHN0YXRlIH1cblxuICBsZXQgbGluZV9hcHBlbmQgPyh0YWJsZSA9IEx3ZF90YWJsZS5tYWtlICgpKSA/Zm9jdXMgc3RyID1cbiAgICBsZXQgcm93ID0gTHdkX3RhYmxlLmFwcGVuZCB0YWJsZSBpblxuICAgIEx3ZF90YWJsZS5zZXQgcm93IChsaW5lX21ha2UgP2ZvY3VzIHN0cilcblxuICBsZXQgY29weV9saW5lX2N1cnNvciAoeCA6IGxpbmUpICh5IDogbGluZSkgPVxuICAgIGxldCBfLCB4aSA9IEx3ZC5wZWVrIHguc3RhdGUgaW5cbiAgICBsZXQgeXMsIF8gPSBMd2QucGVlayB5LnN0YXRlIGluXG4gICAgbGV0IHlpID0gSW50Lm1heCAwIChJbnQubWluIHhpIChTdHJpbmcubGVuZ3RoIHlzKSkgaW5cbiAgICBMd2Quc2V0IHkuc3RhdGUgKHlzLCB5aSlcblxuICBsZXQgcm93X29mX2N1cnNvciBjdXJzb3IgZiA9XG4gICAgVWkubWF5X2hhbmRsZSAoTHdkLnBlZWsgY3Vyc29yKSAoZnVuIHJvdyAtPiBmIHJvdylcblxuICBsZXQgbGluZV9vZl9jdXJzb3IgY3Vyc29yXG4gICAgICAoZiA6IGxpbmUgTHdkX3RhYmxlLnJvdyAtPiBsaW5lIC0+IFVpLm1heV9oYW5kbGUpIDpcbiAgICAgIFVpLm1heV9oYW5kbGUgPVxuICAgIFVpLm1heV9oYW5kbGUgKEx3ZC5wZWVrIGN1cnNvcikgKGZ1biByb3cgLT5cbiAgICAgICAgVWkubWF5X2hhbmRsZSAoTHdkX3RhYmxlLmdldCByb3cpIChmdW4gbGluZSAtPiBmIHJvdyBsaW5lKSlcblxuICBsZXQgY3Vyc29yX21vdmUgY3Vyc29yXG4gICAgICAoZiA6ICdhIEx3ZF90YWJsZS5yb3cgLT4gJ2EgTHdkX3RhYmxlLnJvdyBvcHRpb24pID1cbiAgICBtYXRjaCBMd2QucGVlayBjdXJzb3Igd2l0aFxuICAgIHwgU29tZSBjdXJzb3Jfcm93IC0+IChcbiAgICAgICAgbWF0Y2ggZiBjdXJzb3Jfcm93IHdpdGhcbiAgICAgICAgfCBTb21lIG5ld19yb3cgLT5cbiAgICAgICAgICAgIChtYXRjaCBMd2RfdGFibGUuZ2V0IG5ld19yb3cgd2l0aFxuICAgICAgICAgICAgfCBTb21lIG5ld19saW5lIC0+XG4gICAgICAgICAgICAgICAgY3Vyc29yX3JvdyB8PiBMd2RfdGFibGUuZ2V0XG4gICAgICAgICAgICAgICAgfD4gT3B0aW9uLml0ZXIgKGZ1biBjdXJzb3JfbGluZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBjb3B5X2xpbmVfY3Vyc29yIGN1cnNvcl9saW5lIG5ld19saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGN1cnNvcl9saW5lLmZvY3VzKTtcbiAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lLmZvY3VzXG4gICAgICAgICAgICB8IE5vbmUgLT4gKCkpO1xuICAgICAgICAgICAgTHdkLnNldCBjdXJzb3IgKFNvbWUgbmV3X3Jvdyk7XG4gICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZClcbiAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZFxuXG4gIGxldCBlZGl0X2FyZWFfb2Zfc3RyaW5nID8odGFibGUgPSBMd2RfdGFibGUubWFrZSAoKSkgKHMgOiBzdHJpbmcpIDpcbiAgICAgIGxpbmUgTHdkX3RhYmxlLnQgPVxuICAgICgqIEFwcGVuZCBsaW5lcyBmcm9tIHMgdG8gdGFibGUgKilcbiAgICBMaXN0Lml0ZXIgKGxpbmVfYXBwZW5kIH50YWJsZSkgKFN0cmluZy5zcGxpdF9vbl9jaGFyICdcXG4nIHMpO1xuICAgIHRhYmxlXG5cbiAgbGV0IGZvY3VzX3ZhbCBmb2N1cyA6IGludCA9XG4gICAgRm9jdXMuKFxuICAgICAgbWF0Y2ggZm9jdXMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiAwXG4gICAgICB8IEhhbmRsZSAoaSwgXykgLT4gaVxuICAgICAgfCBDb25mbGljdCBpIC0+IGkpXG5cbiAgbGV0IHJlYyBmaW5kX2ZvY3VzICh1aSA6IHVpKSA6IHVpID1cbiAgICBGb2N1cy4oXG4gICAgICBtYXRjaCAodWkuZm9jdXMsIHVpLmRlc2MpIHdpdGhcbiAgICAgIHwgRW1wdHksIF8gLT4gVWkuZW1wdHlcbiAgICAgIHwgSGFuZGxlIChfLCBfKSwgXyAtPiB1aVxuICAgICAgfCBDb25mbGljdCBfLCAoWCAoYSwgYikgfCBZIChhLCBiKSB8IFogKGEsIGIpKSAtPlxuICAgICAgICAgIGlmIGZvY3VzX3ZhbCBhLmZvY3VzIDwgZm9jdXNfdmFsIGIuZm9jdXMgdGhlbiBmaW5kX2ZvY3VzIGJcbiAgICAgICAgICBlbHNlIGZpbmRfZm9jdXMgYVxuICAgICAgfCBDb25mbGljdCBfLCBBdG9tIF8gLT4gVWkuZW1wdHlcbiAgICAgIHwgKCBDb25mbGljdCBfLFxuICAgICAgICAgICggU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgICAgIHwgRm9jdXNfYXJlYSAodCwgXylcbiAgICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgXylcbiAgICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBfKVxuICAgICAgICAgIHwgU2hpZnRfYXJlYSAodCwgXywgXykgKSApIC0+XG4gICAgICAgICAgZmluZF9mb2N1cyB0KVxuXG4gIGxldCBmb2N1c19oYW5kbGVfY29tcGFyZSBhIGIgPVxuICAgIGlmXG4gICAgICBMd2QucGVlayAoRm9jdXMudmFyIChzbmQgYSkuZm9jdXMpXG4gICAgICA8IEx3ZC5wZWVrIChGb2N1cy52YXIgKHNuZCBiKS5mb2N1cylcbiAgICB0aGVuIGJcbiAgICBlbHNlIGFcblxuICBsZXQgZm9jdXNlZF9yb3dfb2ZfdGFibGUgKHRhYmxlIDogbGluZSBMd2RfdGFibGUudCkgPVxuICAgIEx3ZF90YWJsZS5tYXBfcmVkdWNlXG4gICAgICAoZnVuIHJvdyAobGluZSA6IGxpbmUpIC0+IChTb21lIHJvdywgbGluZSkpXG4gICAgICAoKE5vbmUsIGxpbmVfZW1wdHkgKCkpLCBmb2N1c19oYW5kbGVfY29tcGFyZSlcbiAgICAgIHRhYmxlXG5cbiAgbGV0IGVkaXRfYXJlYSA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKVxuICAgICAgKCkgOiBVaS50IEx3ZC50ID1cbiAgICBsZXQgY3Vyc29yID0gTHdkLnZhciBAQCBMd2RfdGFibGUuZmlyc3QgdGFibGUgaW5cbiAgICBPcHRpb24uaXRlclxuICAgICAgKGZ1biBjdXJzb3IgLT5cbiAgICAgICAgT3B0aW9uLml0ZXIgKGZ1biBmaXJzdCAtPiBGb2N1cy5yZXF1ZXN0IGZpcnN0LmZvY3VzKVxuICAgICAgICBAQCBMd2RfdGFibGUuZ2V0IGN1cnNvcilcbiAgICAgIChMd2QucGVlayBjdXJzb3IpO1xuXG4gICAgKCogQnVpbGQgdmlldyBvZiB0YWJsZSAqKVxuICAgIEx3ZF90YWJsZS5tYXBfcmVkdWNlXG4gICAgICAoZnVuIF8geyB1aTsgXyB9IC0+IHVpKVxuICAgICAgKEx3ZF91dGlscy5saWZ0X21vbm9pZCBVaS5wYWNrX3kpXG4gICAgICB0YWJsZVxuICAgIHw+IEx3ZC5qb2luXG4gICAgfD4gTHdkLm1hcDJcbiAgICAgICAgIH5mOihmdW4gZm9jdXMgLT5cbiAgICAgICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgKGZ1biBrIC0+XG4gICAgICAgICAgICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgICAgICAgICAgbSBcImVkaXRfYXJlYSBoYW5kbGVyICVhXCIgVWkucHBfa2V5IGspO1xuICAgICAgICAgICAgICAgbWF0Y2ggayB3aXRoXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ24nIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUubmV4dCBjKVxuICAgICAgICAgICAgICAgfCBgQXJyb3cgYERvd24sIF8gLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBjIC0+IEx3ZF90YWJsZS5uZXh0IGMpXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ3AnIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUucHJldiBjKVxuICAgICAgICAgICAgICAgfCBgQXJyb3cgYFVwLCBfIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUucHJldiBjKVxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc8JyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIF8gLT4gTHdkX3RhYmxlLmZpcnN0IHRhYmxlKVxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc+JyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIF8gLT4gTHdkX3RhYmxlLmxhc3QgdGFibGUpXG4gICAgICAgICAgICAgICB8IGBFbnRlciwgW10gLT5cbiAgICAgICAgICAgICAgICAgICBsaW5lX29mX2N1cnNvciBjdXJzb3IgKGZ1biBvbGRfcm93IG9sZF9saW5lIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBzdHIsIHBvcyA9IEx3ZC5wZWVrIG9sZF9saW5lLnN0YXRlIGluXG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBvX3N0ciA9IFN0cmluZy5zdWIgc3RyIDAgcG9zIGluXG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBuX3N0ciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLihzdWIgc3RyIHBvcyAobGVuZ3RoIHN0ciAtIHBvcykpXG4gICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgb2xkX2xpbmUuc3RhdGUgKG9fc3RyLCBwb3MpO1xuICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X2xpbmUgPSBsaW5lX21ha2Ugbl9zdHIgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBvbGRfbGluZS5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVxdWVzdCBuZXdfbGluZS5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBjdXJzb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAoU29tZSAoTHdkX3RhYmxlLmFmdGVyIG9sZF9yb3cgfnNldDpuZXdfbGluZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgIHwgYEJhY2tzcGFjZSwgW10gLT5cbiAgICAgICAgICAgICAgICAgICBsaW5lX29mX2N1cnNvciBjdXJzb3IgKGZ1biByb3cgbGluZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyLCBwb3MgPSBMd2QucGVlayBsaW5lLnN0YXRlIGluXG4gICAgICAgICAgICAgICAgICAgICAgIFVpLm1heV9oYW5kbGUgKEx3ZF90YWJsZS5wcmV2IHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIHJvd19wcmV2IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwb3MgPSAwIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVWkubWF5X2hhbmRsZSAoTHdkX3RhYmxlLmdldCByb3dfcHJldilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIGxpbmVfcHJldiAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0cl9wcmV2LCBfID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnBlZWsgbGluZV9wcmV2LnN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBsaW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVxdWVzdCBsaW5lX3ByZXYuZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IGxpbmVfcHJldi5zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0cl9wcmV2IF4gc3RyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5sZW5ndGggc3RyX3ByZXYgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5yZW1vdmUgcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWQpKVxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdrJyAtPiBgSGFuZGxlZFxuICAgICAgICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpKVxuICAgICAgICAgKEZvY3VzLnN0YXR1cyBmb2N1cylcblxuICBsZXQgdHJlZV9uYXYgPyhmb2N1cyA9IEZvY3VzLm1ha2UgKCkpIHRyZWUgcGF0aCA6IFVpLnQgTHdkLnQgTHd0LnQgPVxuICAgIGxldCB0YWJsZSA9IEx3ZF90YWJsZS5tYWtlICgpIGluXG5cbiAgICAoKlxuICAgIE9wdGlvbi5pdGVyXG4gICAgICAoZnVuIGN1cnNvciAtPlxuICAgICAgICBPcHRpb24uaXRlciAoZnVuIGZpcnN0IC0+IEZvY3VzLnJlcXVlc3QgZmlyc3QuZm9jdXMpXG4gICAgICAgIEBAIEx3ZF90YWJsZS5nZXQgY3Vyc29yKVxuICAgICAgKEx3ZC5wZWVrIGN1cnNvcik7ICopXG4gICAgbGV0IGN1cnNvcl9tb3ZlIGN1cnNvclxuICAgICAgICAoZiA6ICdhIEx3ZF90YWJsZS5yb3cgLT4gJ2EgTHdkX3RhYmxlLnJvdyBvcHRpb24pID1cbiAgICAgIG1hdGNoIEx3ZC5wZWVrIGN1cnNvciB3aXRoXG4gICAgICB8IFNvbWUgY3Vyc29yX3JvdyAtPiAoXG4gICAgICAgICAgbWF0Y2ggZiBjdXJzb3Jfcm93IHdpdGhcbiAgICAgICAgICB8IFNvbWUgbmV3X3JvdyAtPlxuICAgICAgICAgICAgICBMd2Quc2V0IGN1cnNvciAoU29tZSBuZXdfcm93KTtcbiAgICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZClcbiAgICAgIHwgTm9uZSAtPiBgVW5oYW5kbGVkXG4gICAgaW5cblxuICAgICgqIEJ1aWxkIHZpZXcgb2YgdHJlZSAqKVxuICAgIGxldCBvcGVuIEx3dC5JbmZpeCBpblxuICAgIE5hdi5TLlRyZWUubGlzdCB0cmVlIHBhdGggPj49IGZ1biB0cmVlbGlzdCAtPlxuICAgIExpc3QuaXRlciAoZnVuIHRlIC0+IEx3ZF90YWJsZS5hcHBlbmQnIHRhYmxlIHRlKSB0cmVlbGlzdDtcbiAgICBsZXQgY3Vyc29yID0gTHdkLnZhciBAQCBMd2RfdGFibGUuZmlyc3QgdGFibGUgaW5cbiAgICBMd3QucmV0dXJuXG4gICAgICAoTHdkX3RhYmxlLm1hcF9yZWR1Y2VcbiAgICAgICAgIChmdW4gXyAocywgXykgLT4gTHdkLnB1cmUgKHN0cmluZyBzKSlcbiAgICAgICAgIChMd2RfdXRpbHMubGlmdF9tb25vaWQgVWkucGFja195KVxuICAgICAgICAgdGFibGVcbiAgICAgIHw+IEx3ZC5qb2luXG4gICAgICB8PiBMd2QubWFwMlxuICAgICAgICAgICB+ZjooZnVuIGZvY3VzIC0+XG4gICAgICAgICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgKGZ1biBrIC0+XG4gICAgICAgICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgICAgICAgIG0gXCJlZGl0X2FyZWEgaGFuZGxlciAlYVwiIFVpLnBwX2tleSBrKTtcbiAgICAgICAgICAgICAgICAgbWF0Y2ggayB3aXRoXG4gICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnbicgLT5cbiAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLm5leHQgYylcbiAgICAgICAgICAgICAgICAgfCBgQXJyb3cgYERvd24sIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLm5leHQgYylcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdwJyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUucHJldiBjKVxuICAgICAgICAgICAgICAgICB8IGBBcnJvdyBgVXAsIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLnByZXYgYylcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc8JyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5maXJzdCB0YWJsZSlcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc+JyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5sYXN0IHRhYmxlKVxuICAgICAgICAgICAgICAgICB8IGBFbnRlciwgW10gLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBgQmFja3NwYWNlLCBbXSAtPiBgVW5oYW5kbGVkXG4gICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnaycgLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpKVxuICAgICAgICAgICAoRm9jdXMuc3RhdHVzIGZvY3VzKSlcblxuICAoKiogVGFiIHZpZXcsIHdoZXJlIGV4YWN0bHkgb25lIGVsZW1lbnQgb2YgW2xdIGlzIHNob3duIGF0IGEgdGltZS4gKilcbiAgbGV0IHRhYnMgKHRhYnMgOiAoc3RyaW5nICogKHVuaXQgLT4gVWkudCBMd2QudCkpIGxpc3QpIDogVWkudCBMd2QudFxuICAgICAgPVxuICAgIG1hdGNoIHRhYnMgd2l0aFxuICAgIHwgW10gLT4gTHdkLnJldHVybiBVaS5lbXB0eVxuICAgIHwgXyAtPlxuICAgICAgICBsZXQgY3VyID0gTHdkLnZhciAwIGluXG4gICAgICAgIEx3ZC5nZXQgY3VyID4+PSBmdW4gaWR4X3NlbCAtPlxuICAgICAgICBsZXQgXywgZiA9IExpc3QubnRoIHRhYnMgaWR4X3NlbCBpblxuICAgICAgICBsZXQgdGFiX2JhciA9XG4gICAgICAgICAgdGFic1xuICAgICAgICAgIHw+IExpc3QubWFwaSAoZnVuIGkgKHMsIF8pIC0+XG4gICAgICAgICAgICAgICAgIGxldCBhdHRyID1cbiAgICAgICAgICAgICAgICAgICBpZiBpID0gaWR4X3NlbCB0aGVuIEEuKGJnIENvbG9yLmJsdWUpIGVsc2UgQS5lbXB0eVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICBsZXQgdGFiX2Fubm90ID0gcHJpbnRmIH5hdHRyIFwiWyVzXVwiIHMgaW5cbiAgICAgICAgICAgICAgICAgVWkubW91c2VfYXJlYVxuICAgICAgICAgICAgICAgICAgIChmdW4gfng6XyB+eTpfIGwgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmIGwgPSBgTGVmdCB0aGVuIChcbiAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBjdXIgaTtcbiAgICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWQpXG4gICAgICAgICAgICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWQpXG4gICAgICAgICAgICAgICAgICAgdGFiX2Fubm90KVxuICAgICAgICAgIHw+IFVpLmhjYXRcbiAgICAgICAgaW5cbiAgICAgICAgZiAoKSA+fD0gVWkuam9pbl95IHRhYl9iYXJcblxuICAoKlxuICAgICAgICgqKiBIb3Jpem9udGFsL3ZlcnRpY2FsIGJveC4gV2UgZmlsbCBsaW5lcyB1bnRpbCB0aGVyZSBpcyBubyByb29tLFxuICAgICAgICAgYW5kIHRoZW4gZ28gdG8gdGhlIG5leHQgbGlnbmUuIEFsbCB3aWRnZXRzIGluIGEgbGluZSBhcmUgY29uc2lkZXJlZCB0b1xuICAgICAgICAgaGF2ZSB0aGUgc2FtZSBoZWlnaHQuXG4gICAgICAgICBAcGFyYW0gd2lkdGggZHluYW1pYyB3aWR0aCAgKGRlZmF1bHQgODApXG4gICAgICopXG4gICAgICAgbGV0IGZsZXhfYm94ID8odyA9IEx3ZC5yZXR1cm4gODApIChsIDogVWkudCBMd2QudCBsaXN0KSA6IFVpLnQgTHdkLnRcbiAgICAgICAgICAgPVxuICAgICAgICAgTHdkX3V0aWxzLmZsYXR0ZW5fbCBsID4+PSBmdW4gbCAtPlxuICAgICAgICAgdyA+fD0gZnVuIHdfbGltaXQgLT5cbiAgICAgICAgIGxldCByZWMgYm94X3JlbmRlciAoYWNjIDogVWkudCkgKGkgOiBpbnQpIGwgOiBVaS50ID1cbiAgICAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgIHwgW10gLT4gYWNjXG4gICAgICAgICAgIHwgdWkwIDo6IHRsIC0+XG4gICAgICAgICAgICAgICBsZXQgdzAgPSAoVWkubGF5b3V0X3NwZWMgdWkwKS5VaS53IGluXG4gICAgICAgICAgICAgICBpZiBpICsgdzAgPj0gd19saW1pdCB0aGVuXG4gICAgICAgICAgICAgICAgICgqIG5ld2xpbmUgc3RhcnRpbmcgd2l0aCB1aTAgKilcbiAgICAgICAgICAgICAgICAgVWkuam9pbl95IGFjYyAoYm94X3JlbmRlciB1aTAgdzAgdGwpXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICgqIHNhbWUgbGluZSAqKVxuICAgICAgICAgICAgICAgICBib3hfcmVuZGVyIChVaS5qb2luX3ggYWNjIHVpMCkgKGkgKyB3MCkgdGxcbiAgICAgICAgIGluXG4gICAgICAgICBib3hfcmVuZGVyIFVpLmVtcHR5IDAgbFxuKilcblxuICAoKiogUHJpbnRzIHRoZSBzdW1tYXJ5LCBidXQgY2FsbHMgW2YoKV0gdG8gY29tcHV0ZSBhIHN1Yi13aWRnZXRcbiAgICAgICAgIHdoZW4gY2xpY2tlZCBvbi4gVXNlZnVsIGZvciBkaXNwbGF5aW5nIGRlZXAgdHJlZXMuICopXG4gIGxldCB1bmZvbGRhYmxlID8oZm9sZGVkX2J5X2RlZmF1bHQgPSB0cnVlKSBzdW1tYXJ5XG4gICAgICAoZiA6IHVuaXQgLT4gVWkudCBMd2QudCkgOiBVaS50IEx3ZC50ID1cbiAgICBsZXQgb3BlbiBMd2QuSW5maXggaW5cbiAgICBsZXQgb3BlbmVkID0gTHdkLnZhciAobm90IGZvbGRlZF9ieV9kZWZhdWx0KSBpblxuICAgIGxldCBmb2xkX2NvbnRlbnQgPVxuICAgICAgTHdkLmdldCBvcGVuZWQgPj49IGZ1bmN0aW9uXG4gICAgICB8IHRydWUgLT5cbiAgICAgICAgICAoKiBjYWxsIFtmXSBhbmQgcGFkIGEgYml0ICopXG4gICAgICAgICAgZiAoKSB8PiBMd2QubWFwIH5mOihVaS5qb2luX3ggKHN0cmluZyBcIiBcIikpXG4gICAgICB8IGZhbHNlIC0+IEx3ZC5yZXR1cm4gVWkuZW1wdHlcbiAgICBpblxuICAgICgqIHBhZCBzdW1tYXJ5IHdpdGggYSBcIj4gXCIgd2hlbiBpdCdzIG9wZW5lZCAqKVxuICAgIGxldCBzdW1tYXJ5ID1cbiAgICAgIEx3ZC5nZXQgb3BlbmVkID4+PSBmdW4gb3AgLT5cbiAgICAgIHN1bW1hcnkgPnw9IGZ1biBzIC0+XG4gICAgICBVaS5oY2F0XG4gICAgICAgIFtcbiAgICAgICAgICBzdHJpbmcgfmF0dHI6QS5jbGlja2FibGUgKGlmIG9wIHRoZW4gXCJ2XCIgZWxzZSBcIj5cIik7XG4gICAgICAgICAgc3RyaW5nIFwiIFwiO1xuICAgICAgICAgIHM7XG4gICAgICAgIF1cbiAgICBpblxuICAgIGxldCBjdXJzb3Igfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgIHwgYExlZnQgd2hlbiBMd2QucGVlayBvcGVuZWQgLT5cbiAgICAgICAgICBMd2Quc2V0IG9wZW5lZCBmYWxzZTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIEx3ZC5zZXQgb3BlbmVkIHRydWU7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBsZXQgbW91c2UgPVxuICAgICAgTHdkLm1hcCB+ZjooZnVuIG0gLT4gVWkubW91c2VfYXJlYSBjdXJzb3IgbSkgc3VtbWFyeVxuICAgIGluXG4gICAgTHdkLm1hcDIgbW91c2UgZm9sZF9jb250ZW50IH5mOihmdW4gc3VtbWFyeSBmb2xkIC0+XG4gICAgICAgICgqIFRPRE86IG1ha2UgdGhpcyBjb25maWd1cmFibGUvb3B0aW9uYWwgKilcbiAgICAgICAgKCogbmV3bGluZSBpZiBpdCdzIHRvbyBiaWcgdG8gZml0IG9uIG9uZSBsaW5lIG5pY2VseSAqKVxuICAgICAgICBsZXQgc3BlY19zdW0gPSBVaS5sYXlvdXRfc3BlYyBzdW1tYXJ5IGluXG4gICAgICAgIGxldCBzcGVjX2ZvbGQgPSBVaS5sYXlvdXRfc3BlYyBmb2xkIGluXG4gICAgICAgICgqIFRPRE86IHNvbWVob3csIHByb2JlIGZvciBhdmFpbGFibGUgd2lkdGggaGVyZT8gKilcbiAgICAgICAgbGV0IHRvb19iaWcgPVxuICAgICAgICAgIHNwZWNfZm9sZC5VaS5oID4gMjAuXG4gICAgICAgICAgfHwgc3BlY19mb2xkLlVpLmggPiAyMC5cbiAgICAgICAgICAgICAmJiBzcGVjX3N1bS5VaS53ICsuIHNwZWNfZm9sZC5VaS53ID4gMjQwLlxuICAgICAgICBpblxuICAgICAgICBpZiB0b29fYmlnIHRoZW5cbiAgICAgICAgICBVaS5qb2luX3kgc3VtbWFyeSAoVWkuam9pbl94IChzdHJpbmcgXCIgXCIpIGZvbGQpXG4gICAgICAgIGVsc2UgVWkuam9pbl94IHN1bW1hcnkgZm9sZClcblxuICBsZXQgaGJveCBsID0gTHdkX3V0aWxzLnBhY2sgVWkucGFja194IGxcbiAgbGV0IHZib3ggbCA9IEx3ZF91dGlscy5wYWNrIFVpLnBhY2tfeSBsXG4gIGxldCB6Ym94IGwgPSBMd2RfdXRpbHMucGFjayBVaS5wYWNrX3ogbFxuXG4gIGxldCB2bGlzdCA/KGJ1bGxldCA9IFwiLSBcIikgKGwgOiBVaS50IEx3ZC50IGxpc3QpIDogVWkudCBMd2QudCA9XG4gICAgbFxuICAgIHw+IExpc3QubWFwIChmdW4gdWkgLT4gTHdkLm1hcCB+ZjooVWkuam9pbl94IChzdHJpbmcgYnVsbGV0KSkgdWkpXG4gICAgfD4gdmJveFxuXG4gICgqKiBBIGxpc3Qgb2YgaXRlbXMgd2l0aCBhIGR5bmFtaWMgZmlsdGVyIG9uIHRoZSBpdGVtcyAqKVxuICBsZXQgdmxpc3Rfd2l0aCA/KGJ1bGxldCA9IFwiLSBcIilcbiAgICAgID8oZmlsdGVyID0gTHdkLnJldHVybiAoZnVuIF8gLT4gdHJ1ZSkpIChmIDogJ2EgLT4gVWkudCBMd2QudClcbiAgICAgIChsIDogJ2EgbGlzdCBMd2QudCkgOiBVaS50IEx3ZC50ID1cbiAgICBsZXQgb3BlbiBMd2QuSW5maXggaW5cbiAgICBsZXQgcmVjIGZpbHRlcl9tYXBfIGFjYyBmIGwgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IExpc3QucmV2IGFjY1xuICAgICAgfCB4IDo6IGwnIC0+XG4gICAgICAgICAgbGV0IGFjYycgPVxuICAgICAgICAgICAgbWF0Y2ggZiB4IHdpdGggTm9uZSAtPiBhY2MgfCBTb21lIHkgLT4geSA6OiBhY2NcbiAgICAgICAgICBpblxuICAgICAgICAgIGZpbHRlcl9tYXBfIGFjYycgZiBsJ1xuICAgIGluXG4gICAgbGV0IGwgPVxuICAgICAgbFxuICAgICAgPnw9IExpc3QubWFwIChmdW4geCAtPlxuICAgICAgICAgICAgICAoeCwgTHdkLm1hcCB+ZjooVWkuam9pbl94IChzdHJpbmcgYnVsbGV0KSkgQEAgZiB4KSlcbiAgICBpblxuICAgIGxldCBsX2ZpbHRlciA6IF8gbGlzdCBMd2QudCA9XG4gICAgICBmaWx0ZXIgPj49IGZ1biBmaWx0ZXIgLT5cbiAgICAgIGxcbiAgICAgID58PSBmaWx0ZXJfbWFwXyBbXSAoZnVuICh4LCB1aSkgLT5cbiAgICAgICAgICAgICAgaWYgZmlsdGVyIHggdGhlbiBTb21lIHVpIGVsc2UgTm9uZSlcbiAgICBpblxuICAgIGxfZmlsdGVyID4+PSBMd2RfdXRpbHMucGFjayBVaS5wYWNrX3lcblxuICBsZXQgdmxpc3Rfb2ZfdGV4dCA/KGZvY3VzID0gRm9jdXMubWFrZSAoKSlcbiAgICAgID8oa2V5X2hhbmRsZXIgPSBmdW4gXyAtPiBgVW5oYW5kbGVkKSA9XG4gICAgTHdkLm1hcDIgKEZvY3VzLnN0YXR1cyBmb2N1cykgfmY6KGZ1biBmb2N1cyBzIC0+XG4gICAgICAgIFVpLnZjYXQgQEAgTGlzdC5tYXAgc3RyaW5nIEBAIFN0cmluZy5zcGxpdF9vbl9jaGFyICdcXG4nIHNcbiAgICAgICAgfD4gVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMga2V5X2hhbmRsZXIpXG5cbiAgKCogbGV0IHJlYyBpdGVyYXRlIG4gZiB4ID0gaWYgbiA9IDAgdGhlbiB4IGVsc2UgaXRlcmF0ZSAobiAtIDEpIGYgKGYgeClcblxuICAgICAoKiogQSBncmlkIGxheW91dCwgd2l0aCBhbGlnbm1lbnQgaW4gYWxsIHJvd3MvY29sdW1ucy5cbiAgICAgICBAcGFyYW0gbWF4X2ggbWF4aW11bSBoZWlnaHQgb2YgYSBjZWxsXG4gICAgICAgQHBhcmFtIG1heF93IG1heGltdW0gd2lkdGggb2YgYSBjZWxsXG4gICAgICAgQHBhcmFtIGJnIGF0dHJpYnV0ZSBmb3IgY29udHJvbGxpbmcgYmFja2dyb3VuZCBzdHlsZVxuICAgICAgIEBwYXJhbSBoX3NwYWNlIGhvcml6b250YWwgc3BhY2UgYmV0d2VlbiBlYWNoIGNlbGwgaW4gYSByb3dcbiAgICAgICBAcGFyYW0gdl9zcGFjZSB2ZXJ0aWNhbCBzcGFjZSBiZXR3ZWVuIGVhY2ggcm93XG4gICAgICAgQHBhcmFtIHBhZCB1c2VkIHRvIGNvbnRyb2wgcGFkZGluZyBvZiBjZWxsc1xuICAgICAgIEBwYXJhbSBjcm9wIHVzZWQgdG8gY29udHJvbCBjcm9wcGluZyBvZiBjZWxsc1xuICAgICAgIFRPRE86IGNvbnRyb2wgcGFkZGluZy9hbGlnbm1lbnQsIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICAgICAgIFRPRE86IGNvbnRyb2wgYWxpZ24gbGVmdC9yaWdodCBpbiBjZWxsc1xuICAgICAgIFRPRE86IGhvcml6b250YWwgcnVsZSBiZWxvdyBoZWFkZXJzXG4gICAgICAgVE9ETzogaGVhZGVycyAqKVxuICAgICBsZXQgZ3JpZCA/bWF4X2ggP21heF93ID9wYWQgP2Nyb3AgP2JnID8oaF9zcGFjZSA9IDApID8odl9zcGFjZSA9IDApXG4gICAgICAgICA/KGhlYWRlcnMgOiBVaS50IEx3ZC50IGxpc3Qgb3B0aW9uKVxuICAgICAgICAgKHJvd3MgOiBVaS50IEx3ZC50IGxpc3QgbGlzdCkgOiBVaS50IEx3ZC50ID1cbiAgICAgICBsZXQgcm93cyA9XG4gICAgICAgICBtYXRjaCBoZWFkZXJzIHdpdGggTm9uZSAtPiByb3dzIHwgU29tZSByIC0+IHIgOjogcm93c1xuICAgICAgIGluXG4gICAgICAgKCogYnVpbGQgYSBbdWkgbGlzdCBsaXN0IEx3ZC50XSAqKVxuICAgICAgIEx3ZF91dGlscy5tYXBfbCAoZnVuIHIgLT4gTHdkX3V0aWxzLmZsYXR0ZW5fbCByKSByb3dzXG4gICAgICAgPj49IGZ1biAocm93cyA6IFVpLnQgbGlzdCBsaXN0KSAtPlxuICAgICAgICgqIGRldGVybWluZSB3aWR0aCBvZiBlYWNoIGNvbHVtbiBhbmQgaGVpZ2h0IG9mIGVhY2ggcm93ICopXG4gICAgICAgbGV0IG5fY29scyA9XG4gICAgICAgICBMaXN0LmZvbGRfbGVmdCAoZnVuIG4gciAtPiBtYXggbiAoTGlzdC5sZW5ndGggcikpIDAgcm93c1xuICAgICAgIGluXG4gICAgICAgbGV0IGNvbF93aWR0aHMgPSBBcnJheS5tYWtlIG5fY29scyAxIGluXG4gICAgICAgTGlzdC5pdGVyXG4gICAgICAgICAoZnVuIHJvdyAtPlxuICAgICAgICAgICBMaXN0Lml0ZXJpXG4gICAgICAgICAgICAgKGZ1biBjb2xfaiBjZWxsIC0+XG4gICAgICAgICAgICAgICBsZXQgdyA9IChVaS5sYXlvdXRfc3BlYyBjZWxsKS5VaS53IGluXG4gICAgICAgICAgICAgICBjb2xfd2lkdGhzLihjb2xfaikgPC0gbWF4IGNvbF93aWR0aHMuKGNvbF9qKSB3KVxuICAgICAgICAgICAgIHJvdylcbiAgICAgICAgIHJvd3M7XG4gICAgICAgKG1hdGNoIG1heF93IHdpdGhcbiAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICB8IFNvbWUgbWF4X3cgLT5cbiAgICAgICAgICAgKCogbGltaXQgd2lkdGggKilcbiAgICAgICAgICAgQXJyYXkuaXRlcmlcbiAgICAgICAgICAgICAoZnVuIGkgeCAtPiBjb2xfd2lkdGhzLihpKSA8LSBtaW4geCBtYXhfdylcbiAgICAgICAgICAgICBjb2xfd2lkdGhzKTtcbiAgICAgICAoKiBub3cgcmVuZGVyLCB3aXRoIHNvbWUgcGFkZGluZyAqKVxuICAgICAgIGxldCBwYWNrX3BhZF94ID1cbiAgICAgICAgIGlmIGhfc3BhY2UgPD0gMCB0aGVuIChVaS5lbXB0eSwgVWkuam9pbl94KVxuICAgICAgICAgZWxzZSAoVWkuZW1wdHksIGZ1biB4IHkgLT4gVWkuaGNhdCBbIHg7IFVpLnNwYWNlIGhfc3BhY2UgMDsgeSBdKVxuICAgICAgIGFuZCBwYWNrX3BhZF95ID1cbiAgICAgICAgIGlmIHZfc3BhY2UgPSAwIHRoZW4gKFVpLmVtcHR5LCBVaS5qb2luX3kpXG4gICAgICAgICBlbHNlIChVaS5lbXB0eSwgZnVuIHggeSAtPiBVaS52Y2F0IFsgeDsgVWkuc3BhY2Ugdl9zcGFjZSAwOyB5IF0pXG4gICAgICAgaW5cbiAgICAgICBsZXQgcm93cyA9XG4gICAgICAgICBMaXN0Lm1hcFxuICAgICAgICAgICAoZnVuIHJvdyAtPlxuICAgICAgICAgICAgIGxldCByb3dfaCA9XG4gICAgICAgICAgICAgICBMaXN0LmZvbGRfbGVmdFxuICAgICAgICAgICAgICAgICAoZnVuIG4gYyAtPiBtYXggbiAoVWkubGF5b3V0X3NwZWMgYykuVWkuaClcbiAgICAgICAgICAgICAgICAgMCByb3dcbiAgICAgICAgICAgICBpblxuICAgICAgICAgICAgIGxldCByb3dfaCA9XG4gICAgICAgICAgICAgICBtYXRjaCBtYXhfaCB3aXRoXG4gICAgICAgICAgICAgICB8IE5vbmUgLT4gcm93X2hcbiAgICAgICAgICAgICAgIHwgU29tZSBtYXhfaCAtPiBtaW4gcm93X2ggbWF4X2hcbiAgICAgICAgICAgICBpblxuICAgICAgICAgICAgIGxldCByb3cgPVxuICAgICAgICAgICAgICAgTGlzdC5tYXBpXG4gICAgICAgICAgICAgICAgIChmdW4gaSBjIC0+XG4gICAgICAgICAgICAgICAgICAgVWkucmVzaXplIH53OmNvbF93aWR0aHMuKGkpIH5oOnJvd19oID9jcm9wID9wYWQgP2JnIGMpXG4gICAgICAgICAgICAgICAgIHJvd1xuICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgTHdkX3V0aWxzLnJlZHVjZSBwYWNrX3BhZF94IHJvdylcbiAgICAgICAgICAgcm93c1xuICAgICAgIGluXG4gICAgICAgKCogVE9ETzogbW91c2UgYW5kIGtleWJvYXJkIGhhbmRsaW5nICopXG4gICAgICAgbGV0IHVpID0gTHdkX3V0aWxzLnJlZHVjZSBwYWNrX3BhZF95IHJvd3MgaW5cbiAgICAgICBMd2QucmV0dXJuIHVpXG4gICopXG5cbiAgKCoqIFR1cm4gdGhlIGdpdmVuIFt1aV0gaW50byBhIGNsaWNrYWJsZSBidXR0b24sIGNhbGxzIFtmXSB3aGVuIGNsaWNrZWQuICopXG4gIGxldCBidXR0b25fb2YgdWkgZiA9XG4gICAgVWkua2V5Ym9hcmRfYXJlYVxuICAgICAgKGZ1bmN0aW9uXG4gICAgICAgIHwgYEVudGVyLCBfIC0+XG4gICAgICAgICAgICBmICgpO1xuICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpXG4gICAgICAoKiBAQCBVaS5tb3VzZV9hcmVhXG4gICAgICAgICAoZnVuIH54Ol8gfnk6XyBfIC0+XG4gICAgICAgICAgIGYgKCk7XG4gICAgICAgICAgIGBIYW5kbGVkKSAqKVxuICAgICAgdWlcblxuICAoKiogQSBjbGlja2FibGUgYnV0dG9uIHRoYXQgY2FsbHMgW2ZdIHdoZW4gY2xpY2tlZCwgbGFiZWxsZWQgd2l0aCBhIHN0cmluZy4gKilcbiAgbGV0IGJ1dHRvbiA/KGF0dHIgPSBBLmNsaWNrYWJsZSkgcyBmID0gYnV0dG9uX29mIChzdHJpbmcgfmF0dHIgcykgZlxuXG4gICgqIGZpbGUgZXhwbG9yZXIgZm9yIHNlbGVjdGluZyBhIGZpbGUgKilcbiAgbGV0IGZpbGVfc2VsZWN0ID8oYWJzID0gZmFsc2UpID9maWx0ZXIgfihvbl9zZWxlY3QgOiBzdHJpbmcgLT4gdW5pdClcbiAgICAgICgpIDogVWkudCBMd2QudCA9XG4gICAgbGV0IHJlYyBhdXggfmZvbGQgcGF0aCA9XG4gICAgICB0cnlcbiAgICAgICAgbGV0IHBfcmVsID0gaWYgcGF0aCA9IFwiXCIgdGhlbiBcIi5cIiBlbHNlIHBhdGggaW5cbiAgICAgICAgaWYgU3lzLmlzX2RpcmVjdG9yeSBwX3JlbCB0aGVuXG4gICAgICAgICAgbGV0IHVpICgpID1cbiAgICAgICAgICAgIGxldCBhcnIgPSBTeXMucmVhZGRpciBwX3JlbCBpblxuICAgICAgICAgICAgbGV0IGwgPVxuICAgICAgICAgICAgICBBcnJheS50b19saXN0IGFyciB8PiBMaXN0Lm1hcCAoRmlsZW5hbWUuY29uY2F0IHBhdGgpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKCogYXBwbHkgcG90ZW50aWFsIGZpbHRlciAqKVxuICAgICAgICAgICAgbGV0IGwgPVxuICAgICAgICAgICAgICBtYXRjaCBmaWx0ZXIgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbFxuICAgICAgICAgICAgICB8IFNvbWUgZiAtPiBMaXN0LmZpbHRlciBmIGxcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBsZXQgbCA9IEx3ZC5yZXR1cm4gQEAgTGlzdC5zb3J0IFN0cmluZy5jb21wYXJlIGwgaW5cbiAgICAgICAgICAgIHZsaXN0X3dpdGggfmJ1bGxldDpcIlwiIChhdXggfmZvbGQ6dHJ1ZSkgbFxuICAgICAgICAgIGluXG4gICAgICAgICAgaWYgZm9sZCB0aGVuXG4gICAgICAgICAgICB1bmZvbGRhYmxlIH5mb2xkZWRfYnlfZGVmYXVsdDp0cnVlXG4gICAgICAgICAgICAgIChMd2QucmV0dXJuIEBAIHN0cmluZyBAQCBwYXRoIF4gXCIvXCIpXG4gICAgICAgICAgICAgIHVpXG4gICAgICAgICAgZWxzZSB1aSAoKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgTHdkLnJldHVyblxuICAgICAgICAgIEBAIGJ1dHRvblxuICAgICAgICAgICAgICAgfmF0dHI6QS4oZm9udCBGb250LnVuZGVybGluZSlcbiAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgICAgIChmdW4gKCkgLT4gb25fc2VsZWN0IHBhdGgpXG4gICAgICB3aXRoIGUgLT5cbiAgICAgICAgTHdkLnJldHVyblxuICAgICAgICBAQCBVaS52Y2F0XG4gICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgcHJpbnRmXG4gICAgICAgICAgICAgICAgIH5hdHRyOkEuKGJnIENvbG9yLnJlZClcbiAgICAgICAgICAgICAgICAgXCJjYW5ub3QgbGlzdCBkaXJlY3RvcnkgJXNcIiBwYXRoO1xuICAgICAgICAgICAgICAgc3RyaW5nIEBAIFByaW50ZXhjLnRvX3N0cmluZyBlO1xuICAgICAgICAgICAgIF1cbiAgICBpblxuICAgIGxldCBzdGFydCA9IGlmIGFicyB0aGVuIFN5cy5nZXRjd2QgKCkgZWxzZSBcIlwiIGluXG4gICAgYXV4IH5mb2xkOmZhbHNlIHN0YXJ0XG5cbiAgbGV0IHRvZ2dsZSwgdG9nZ2xlJyA9XG4gICAgbGV0IHRvZ2dsZV8gc3QgKGxibCA6IHN0cmluZyBMd2QudCkgKGYgOiBib29sIC0+IHVuaXQpIDpcbiAgICAgICAgVWkudCBMd2QudCA9XG4gICAgICBsZXQgbWtfYnV0IHN0X3YgbGJsX3YgPVxuICAgICAgICBsZXQgbGJsID1cbiAgICAgICAgICBVaS5oY2F0XG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIHByaW50ZiBcIlslc3xcIiBsYmxfdjtcbiAgICAgICAgICAgICAgc3RyaW5nIH5hdHRyOkEuY2xpY2thYmxlIChpZiBzdF92IHRoZW4gXCLinJRcIiBlbHNlIFwiw5dcIik7XG4gICAgICAgICAgICAgIHN0cmluZyBcIl1cIjtcbiAgICAgICAgICAgIF1cbiAgICAgICAgaW5cbiAgICAgICAgYnV0dG9uX29mIGxibCAoZnVuICgpIC0+XG4gICAgICAgICAgICBsZXQgbmV3X3N0ID0gbm90IHN0X3YgaW5cbiAgICAgICAgICAgIEx3ZC5zZXQgc3QgbmV3X3N0O1xuICAgICAgICAgICAgZiBuZXdfc3QpXG4gICAgICBpblxuICAgICAgTHdkLm1hcDIgfmY6bWtfYnV0IChMd2QuZ2V0IHN0KSBsYmxcbiAgICBpblxuICAgICgqIFNpbWlsYXIgdG8geyF0b2dnbGV9LCBleGNlcHQgaXQgZGlyZWN0bHkgcmVmbGVjdHMgdGhlIHN0YXRlIG9mIGEgdmFyaWFibGUuICopXG4gICAgbGV0IHRvZ2dsZScgKGxibCA6IHN0cmluZyBMd2QudCkgKHYgOiBib29sIEx3ZC52YXIpIDogVWkudCBMd2QudCA9XG4gICAgICB0b2dnbGVfIHYgbGJsIChMd2Quc2V0IHYpXG4gICAgKCogYSB0b2dnbGUsIHdpdGggYSB0cnVlL2ZhbHNlIHN0YXRlICopXG4gICAgYW5kIHRvZ2dsZSA/KGluaXQgPSBmYWxzZSkgKGxibCA6IHN0cmluZyBMd2QudCkgKGYgOiBib29sIC0+IHVuaXQpXG4gICAgICAgIDogVWkudCBMd2QudCA9XG4gICAgICBsZXQgc3QgPSBMd2QudmFyIGluaXQgaW5cbiAgICAgIHRvZ2dsZV8gc3QgbGJsIGZcbiAgICBpblxuICAgICh0b2dnbGUsIHRvZ2dsZScpXG5cbiAgdHlwZSBzY3JvbGxib3hfc3RhdGUgPSB7XG4gICAgdyA6IGZsb2F0O1xuICAgIGggOiBmbG9hdDtcbiAgICB4IDogZmxvYXQ7XG4gICAgeSA6IGZsb2F0O1xuICB9XG5cbiAgbGV0IGFkanVzdF9vZmZzZXQgdmlzaWJsZSB0b3RhbCBvZmYgPVxuICAgIGxldCBvZmYgPVxuICAgICAgaWYgb2ZmICsuIHZpc2libGUgPiB0b3RhbCB0aGVuIHRvdGFsIC0uIHZpc2libGUgZWxzZSBvZmZcbiAgICBpblxuICAgIGxldCBvZmYgPSBpZiBvZmYgPCAwLiB0aGVuIDAuIGVsc2Ugb2ZmIGluXG4gICAgb2ZmXG5cbiAgbGV0IHNjcm9sbGJhcl93aWR0aCA9IDEwLlxuICBsZXQgZGVjcl9pZiB4IGNvbmQgPSBpZiBjb25kIHRoZW4geCAtLiBzY3JvbGxiYXJfd2lkdGggZWxzZSB4XG4gIGxldCBzY3JvbGxiYXJfYmcgPSBDb2xvci5ncmF5IDAuNFxuICBsZXQgc2Nyb2xsYmFyX2ZnID0gQ29sb3IuZ3JheSAwLjdcblxuICBsZXQgc2Nyb2xsYmFyX2NsaWNrX3N0ZXAgPVxuICAgIDMuICgqIENsaWNraW5nIHNjcm9sbHMgb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gKilcblxuICBsZXQgc2Nyb2xsYmFyX3doZWVsX3N0ZXAgPVxuICAgIDguICgqIFdoZWVsIGV2ZW50IHNjcm9sbHMgMS84dGggb2YgdGhlIHNjcmVlbiAqKVxuXG4gIGxldCBoc2Nyb2xsYmFyIHZpc2libGUgdG90YWwgb2Zmc2V0IH5zZXQgPVxuICAgIGxldCBwcmVmaXggPSBvZmZzZXQgKi4gdmlzaWJsZSAvLiB0b3RhbCBpblxuICAgIGxldCBzdWZmaXggPSAodG90YWwgLS4gb2Zmc2V0IC0uIHZpc2libGUpICouIHZpc2libGUgLy4gdG90YWwgaW5cbiAgICBsZXQgaGFuZGxlID0gdmlzaWJsZSAtLiBwcmVmaXggLS4gc3VmZml4IGluXG4gICAgbGV0IHJlbmRlciBzaXplIGNvbG9yID1cbiAgICAgIFVpLmF0b20gKEkuYXR0ciAoQS5iZyBjb2xvcikgKEkudm9pZCBzaXplIHNjcm9sbGJhcl93aWR0aCkpXG4gICAgaW5cbiAgICBsZXQgbW91c2VfaGFuZGxlciB+eCB+eTpfID0gZnVuY3Rpb25cbiAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICBpZiB4IDwgcHJlZml4IHRoZW4gKFxuICAgICAgICAgICAgc2V0IChvZmZzZXQgLS4gbWF4IDEuICh2aXNpYmxlIC8uIHNjcm9sbGJhcl9jbGlja19zdGVwKSk7XG4gICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICBlbHNlIGlmIHggPiBwcmVmaXggKy4gaGFuZGxlIHRoZW4gKFxuICAgICAgICAgICAgc2V0IChvZmZzZXQgKy4gbWF4IDEuICh2aXNpYmxlIC8uIHNjcm9sbGJhcl9jbGlja19zdGVwKSk7XG4gICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBgR3JhYlxuICAgICAgICAgICAgICAoIChmdW4gfng6eCcgfnk6XyAtPlxuICAgICAgICAgICAgICAgICAgc2V0IChvZmZzZXQgKy4gKCh4JyAtLiB4KSAqLiB0b3RhbCAvLiB2aXNpYmxlKSkpLFxuICAgICAgICAgICAgICAgIGZ1biB+eDpfIH55Ol8gLT4gKCkgKVxuICAgICAgfCBgU2Nyb2xsIGRpciAtPlxuICAgICAgICAgIGxldCBkaXIgPSBtYXRjaCBkaXIgd2l0aCBgRG93biAtPiAxLiB8IGBVcCAtPiAtMS4gaW5cbiAgICAgICAgICBzZXRcbiAgICAgICAgICAgIChvZmZzZXRcbiAgICAgICAgICAgICsuIChkaXIgKi4gbWF4IDEuICh2aXNpYmxlIC8uIHNjcm9sbGJhcl93aGVlbF9zdGVwKSkpO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgIGluXG4gICAgbGV0ICggKysgKSA9IFVpLmpvaW5feCBpblxuICAgIFVpLm1vdXNlX2FyZWEgbW91c2VfaGFuZGxlclxuICAgICAgKHJlbmRlciBwcmVmaXggc2Nyb2xsYmFyX2JnXG4gICAgICArKyByZW5kZXIgaGFuZGxlIHNjcm9sbGJhcl9mZ1xuICAgICAgKysgcmVuZGVyIHN1ZmZpeCBzY3JvbGxiYXJfYmcpXG5cbiAgbGV0IHZzY3JvbGxiYXIgdmlzaWJsZSB0b3RhbCBvZmZzZXQgfnNldCA9XG4gICAgbGV0IHByZWZpeCA9IG9mZnNldCAqLiB2aXNpYmxlIC8uIHRvdGFsIGluXG4gICAgbGV0IHN1ZmZpeCA9ICh0b3RhbCAtLiBvZmZzZXQgLS4gdmlzaWJsZSkgKi4gdmlzaWJsZSAvLiB0b3RhbCBpblxuICAgIGxldCBoYW5kbGUgPSB2aXNpYmxlIC0uIHByZWZpeCAtLiBzdWZmaXggaW5cbiAgICBsZXQgcmVuZGVyIHNpemUgY29sb3IgPVxuICAgICAgVWkuYXRvbSAoSS5jaGFyIH5hdHRyOihBLmJnIGNvbG9yKSAnICcgMS4gc2l6ZSlcbiAgICBpblxuICAgIGxldCBtb3VzZV9oYW5kbGVyIH54Ol8gfnkgPSBmdW5jdGlvblxuICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgIGlmIHkgPCBwcmVmaXggdGhlbiAoXG4gICAgICAgICAgICBzZXQgKG9mZnNldCAtLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX2NsaWNrX3N0ZXApKTtcbiAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgIGVsc2UgaWYgeSA+IHByZWZpeCArLiBoYW5kbGUgdGhlbiAoXG4gICAgICAgICAgICBzZXQgKG9mZnNldCArLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX2NsaWNrX3N0ZXApKTtcbiAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGBHcmFiXG4gICAgICAgICAgICAgICggKGZ1biB+eDpfIH55OnknIC0+XG4gICAgICAgICAgICAgICAgICBzZXQgKG9mZnNldCArLiAoKHknIC0uIHkpICouIHRvdGFsIC8uIHZpc2libGUpKSksXG4gICAgICAgICAgICAgICAgZnVuIH54Ol8gfnk6XyAtPiAoKSApXG4gICAgICB8IGBTY3JvbGwgZGlyIC0+XG4gICAgICAgICAgbGV0IGRpciA9IG1hdGNoIGRpciB3aXRoIGBEb3duIC0+IDEuIHwgYFVwIC0+IC0xLiBpblxuICAgICAgICAgIHNldFxuICAgICAgICAgICAgKG9mZnNldFxuICAgICAgICAgICAgKy4gKGRpciAqLiBtYXggMS4gKHZpc2libGUgLy4gc2Nyb2xsYmFyX3doZWVsX3N0ZXApKSk7XG4gICAgICAgICAgYEhhbmRsZWRcbiAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgaW5cbiAgICBsZXQgKCArKyApID0gVWkuam9pbl95IGluXG4gICAgVWkubW91c2VfYXJlYSBtb3VzZV9oYW5kbGVyXG4gICAgICAocmVuZGVyIHByZWZpeCBzY3JvbGxiYXJfYmdcbiAgICAgICsrIHJlbmRlciBoYW5kbGUgc2Nyb2xsYmFyX2ZnXG4gICAgICArKyByZW5kZXIgc3VmZml4IHNjcm9sbGJhcl9iZylcblxuICBsZXQgc2Nyb2xsYm94IHQgPVxuICAgICgqIEtlZXAgdHJhY2sgb2Ygc2Nyb2xsIHN0YXRlICopXG4gICAgbGV0IHN0YXRlX3ZhciA9IEx3ZC52YXIgeyB3ID0gMC47IGggPSAwLjsgeCA9IDAuOyB5ID0gMC4gfSBpblxuICAgICgqIEtlZXAgdHJhY2sgb2Ygc2l6ZSBhdmFpbGFibGUgZm9yIGRpc3BsYXkgKilcbiAgICBsZXQgdXBkYXRlX3NpemUgfncgfmggPVxuICAgICAgbGV0IHN0YXRlID0gTHdkLnBlZWsgc3RhdGVfdmFyIGluXG4gICAgICBpZiBzdGF0ZS53IDw+IHcgfHwgc3RhdGUuaCA8PiBoIHRoZW5cbiAgICAgICAgTHdkLnNldCBzdGF0ZV92YXIgeyBzdGF0ZSB3aXRoIHc7IGggfVxuICAgIGluXG4gICAgbGV0IG1lYXN1cmVfc2l6ZSBib2R5ID1cbiAgICAgIFVpLnNpemVfc2Vuc29yIHVwZGF0ZV9zaXplXG4gICAgICAgIChVaS5yZXNpemUgfnc6MC4gfmg6MC4gfnN3OjEuIH5zaDoxLiBib2R5KVxuICAgIGluXG4gICAgKCogR2l2ZW4gYm9keSBhbmQgc3RhdGUsIGNvbXBvc2l0ZSBzY3JvbGwgYmFycyAqKVxuICAgIGxldCBjb21wb3NlX2JhcnMgYm9keSBzdGF0ZSA9XG4gICAgICBsZXQgYncsIGJoID0gKFVpLmxheW91dF93aWR0aCBib2R5LCBVaS5sYXlvdXRfaGVpZ2h0IGJvZHkpIGluXG4gICAgICAoKiBMb2dpYyB0byBkZXRlcm1pbmUgd2hpY2ggc2Nyb2xsIGJhciBzaG91bGQgYmUgdmlzaWJsZSAqKVxuICAgICAgbGV0IGh2aXNpYmxlID0gc3RhdGUudyA8IGJ3IGFuZCB2dmlzaWJsZSA9IHN0YXRlLmggPCBiaCBpblxuICAgICAgbGV0IGh2aXNpYmxlID0gaHZpc2libGUgfHwgKHZ2aXNpYmxlICYmIHN0YXRlLncgPSBidykgaW5cbiAgICAgIGxldCB2dmlzaWJsZSA9IHZ2aXNpYmxlIHx8IChodmlzaWJsZSAmJiBzdGF0ZS5oID0gYmgpIGluXG4gICAgICAoKiBDb21wdXRlIHNpemUgYW5kIG9mZnNldHMgYmFzZWQgb24gdmlzaWJpbGl0eSAqKVxuICAgICAgbGV0IHN0YXRlX3cgPSBkZWNyX2lmIHN0YXRlLncgdnZpc2libGUgaW5cbiAgICAgIGxldCBzdGF0ZV9oID0gZGVjcl9pZiBzdGF0ZS5oIGh2aXNpYmxlIGluXG4gICAgICBsZXQgc3RhdGVfeCA9IGFkanVzdF9vZmZzZXQgc3RhdGVfdyBidyBzdGF0ZS54IGluXG4gICAgICBsZXQgc3RhdGVfeSA9IGFkanVzdF9vZmZzZXQgc3RhdGVfaCBiaCBzdGF0ZS55IGluXG4gICAgICAoKiBDb21wb3NpdGUgdmlzaWJsZSBzY3JvbGwgYmFycyAqKVxuICAgICAgbGV0IGNyb3AgYiA9XG4gICAgICAgIFVpLnJlc2l6ZSB+c3c6c2Nyb2xsYmFyX3dpZHRoIH5zaDpzY3JvbGxiYXJfd2lkdGggfnc6MC4gfmg6MC5cbiAgICAgICAgICAoVWkuc2hpZnRfYXJlYSBzdGF0ZV94IHN0YXRlX3kgYilcbiAgICAgIGluXG4gICAgICBsZXQgc2V0X3ZzY3JvbGwgeSA9XG4gICAgICAgIGxldCBzdGF0ZSA9IEx3ZC5wZWVrIHN0YXRlX3ZhciBpblxuICAgICAgICBpZiBzdGF0ZS55IDw+IHkgdGhlbiBMd2Quc2V0IHN0YXRlX3ZhciB7IHN0YXRlIHdpdGggeSB9XG4gICAgICBpblxuICAgICAgbGV0IHNldF9oc2Nyb2xsIHggPVxuICAgICAgICBsZXQgc3RhdGUgPSBMd2QucGVlayBzdGF0ZV92YXIgaW5cbiAgICAgICAgaWYgc3RhdGUueCA8PiB4IHRoZW4gTHdkLnNldCBzdGF0ZV92YXIgeyBzdGF0ZSB3aXRoIHggfVxuICAgICAgaW5cbiAgICAgIGxldCAoIDwtPiApID0gVWkuam9pbl95IGFuZCAoIDx8PiApID0gVWkuam9pbl94IGluXG4gICAgICBtYXRjaCAoaHZpc2libGUsIHZ2aXNpYmxlKSB3aXRoXG4gICAgICB8IGZhbHNlLCBmYWxzZSAtPiBib2R5XG4gICAgICB8IGZhbHNlLCB0cnVlIC0+XG4gICAgICAgICAgY3JvcCBib2R5IDx8PiB2c2Nyb2xsYmFyIHN0YXRlX2ggYmggc3RhdGVfeSB+c2V0OnNldF92c2Nyb2xsXG4gICAgICB8IHRydWUsIGZhbHNlIC0+XG4gICAgICAgICAgY3JvcCBib2R5IDwtPiBoc2Nyb2xsYmFyIHN0YXRlX3cgYncgc3RhdGVfeCB+c2V0OnNldF9oc2Nyb2xsXG4gICAgICB8IHRydWUsIHRydWUgLT5cbiAgICAgICAgICBjcm9wIGJvZHlcbiAgICAgICAgICA8fD4gdnNjcm9sbGJhciBzdGF0ZV9oIGJoIHN0YXRlX3kgfnNldDpzZXRfdnNjcm9sbFxuICAgICAgICAgIDwtPiAoaHNjcm9sbGJhciBzdGF0ZV93IGJ3IHN0YXRlX3ggfnNldDpzZXRfaHNjcm9sbFxuICAgICAgICAgICAgICA8fD4gVWkuc3BhY2Ugc2Nyb2xsYmFyX3dpZHRoIHNjcm9sbGJhcl93aWR0aClcbiAgICBpblxuICAgICgqIFJlbmRlciBmaW5hbCBib3ggKilcbiAgICBMd2QubWFwMiB0IChMd2QuZ2V0IHN0YXRlX3ZhcikgfmY6KGZ1biB1aSBzaXplIC0+XG4gICAgICAgIG1lYXN1cmVfc2l6ZSAoY29tcG9zZV9iYXJzIHVpIHNpemUpKVxuZW5kXG4iLCJvcGVuIEpzX29mX29jYW1sXG5vcGVuIEx3dC5JbmZpeFxubW9kdWxlIE5WRyA9IEdyYXBodl93ZWJnbFxuXG5sZXQgXyA9XG4gIExvZ3Muc2V0X3JlcG9ydGVyIChIdW1hbi5Mb2dzX3JlcG9ydGVyLmNvbnNvbGVfcmVwb3J0ZXIgKCkpO1xuICBMb2dzLnNldF9sZXZlbCAoU29tZSBEZWJ1ZylcblxubW9kdWxlIExvZyA9ICh2YWwgTG9ncy5zcmNfbG9nIExvZ3MuZGVmYXVsdCA6IExvZ3MuTE9HKVxuXG4oKiBUaGlzIHNjYWxlcyB0aGUgY2FudmFzIHRvIG1hdGNoIHRoZSBEUEkgb2YgdGhlIHdpbmRvdyxcbiAgIGl0IHByZXZlbnRzIGJsdXJyaW5lc3Mgd2hlbiByZW5kZXJpbmcgdG8gdGhlIGNhbnZhcyAqKVxubGV0IHNjYWxlX2NhbnZhcyAoY2FudmFzIDogRG9tX2h0bWwuY2FudmFzRWxlbWVudCBKcy50KSA9XG4gIGxldCBkcHIgPSBEb21faHRtbC53aW5kb3cjIy5kZXZpY2VQaXhlbFJhdGlvIGluXG4gIGxldCByZWN0ID0gY2FudmFzIyNnZXRCb3VuZGluZ0NsaWVudFJlY3QgaW5cbiAgbGV0IHdpZHRoID0gcmVjdCMjLnJpZ2h0IC0uIHJlY3QjIy5sZWZ0IGluXG4gIGxldCBoZWlnaHQgPSByZWN0IyMuYm90dG9tIC0uIHJlY3QjIy50b3AgaW5cbiAgY2FudmFzIyMud2lkdGggOj0gd2lkdGggKi4gZHByIHw+IGludF9vZl9mbG9hdDtcbiAgY2FudmFzIyMuaGVpZ2h0IDo9IGhlaWdodCAqLiBkcHIgfD4gaW50X29mX2Zsb2F0O1xuICBsZXQgd2lkdGggPVxuICAgIFByaW50Zi5zcHJpbnRmIFwiJWRweFwiIChpbnRfb2ZfZmxvYXQgd2lkdGgpIHw+IEpzLnN0cmluZ1xuICBpblxuICBsZXQgaGVpZ2h0ID1cbiAgICBQcmludGYuc3ByaW50ZiBcIiVkcHhcIiAoaW50X29mX2Zsb2F0IGhlaWdodCkgfD4gSnMuc3RyaW5nXG4gIGluXG4gIGNhbnZhcyMjLnN0eWxlIyMud2lkdGggOj0gd2lkdGg7XG4gIGNhbnZhcyMjLnN0eWxlIyMuaGVpZ2h0IDo9IGhlaWdodFxuXG5sZXQgd2ViZ2xfaW5pdGlhbGl6ZSBjYW52YXMgPVxuICBzY2FsZV9jYW52YXMgY2FudmFzO1xuICAoKiBHcmFwaHYgcmVxdWlyZXMgYSBzdGVuY2lsIGJ1ZmZlciB0byB3b3JrIHByb3Blcmx5ICopXG4gIGxldCBhdHRycyA9IFdlYkdMLmRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyBpblxuICBhdHRycyMjLnN0ZW5jaWwgOj0gSnMuX3RydWU7XG4gIG1hdGNoXG4gICAgV2ViR0wuZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIGNhbnZhcyBhdHRycyB8PiBKcy5PcHQudG9fb3B0aW9uXG4gIHdpdGhcbiAgfCBOb25lIC0+XG4gICAgICBwcmludF9lbmRsaW5lIFwiU29ycnkgeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgV2ViR0xcIjtcbiAgICAgIHJhaXNlIEV4aXRcbiAgfCBTb21lIGN0eCAtPiBjdHhcblxubGV0IGdyYXBodl9pbml0aWFsaXplIHdlYmdsX2N0eCA9XG4gIGxldCBvcGVuIE5WRyBpblxuICBsZXQgdmcgPVxuICAgIGNyZWF0ZVxuICAgICAgfmZsYWdzOkNyZWF0ZUZsYWdzLihhbnRpYWxpYXMgbG9yIHN0ZW5jaWxfc3Ryb2tlcylcbiAgICAgIHdlYmdsX2N0eFxuICBpblxuICAoKiBGaWxlIGluIHRoaXMgY2FzZSBpcyBhY3R1YWxseSB0aGUgQ1NTIGZvbnQgbmFtZSAqKVxuICBUZXh0LmNyZWF0ZSB2ZyB+bmFtZTpcInNhbnNcIiB+ZmlsZTpcInNhbnNcIiB8PiBpZ25vcmU7XG4gIHdlYmdsX2N0eCMjY2xlYXJDb2xvciAwLjMgMC4zIDAuMzIgMS47XG4gIHZnXG5cbmxldCByZXF1ZXN0X2FuaW1hdGlvbl9mcmFtZSAoKSA9XG4gIGxldCB0LCBzID0gTHd0LndhaXQgKCkgaW5cbiAgbGV0IChfIDogRG9tX2h0bWwuYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWQpID1cbiAgICBEb21faHRtbC53aW5kb3cjI3JlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgKEpzLndyYXBfY2FsbGJhY2sgKGZ1biAodGltZSA6IGZsb2F0KSAtPiBMd3Qud2FrZXVwIHMgdGltZSkpXG4gIGluXG4gIHRcblxubGV0IHJlbmRlcl9zdHJlYW0gY2FudmFzIHdlYmdsX2N0eCB2Z1xuICAgIChyZW5kZXIgOiBOVkcudCAtPiA/dGltZTpmbG9hdCAtPiBHZy5wMiAtPiBIdW1hbi5JLnQgLT4gdW5pdCkgOlxuICAgIEh1bWFuLkkudCBMd3Rfc3RyZWFtLnQgLT4gdW5pdCBMd3QudCA9XG4gIEx3dF9zdHJlYW0uaXRlcl9uIChmdW4gaSAtPlxuICAgICAgcmVxdWVzdF9hbmltYXRpb25fZnJhbWUgKCkgPj49IGZ1biB0aW1lIC0+XG4gICAgICB3ZWJnbF9jdHgjI2NsZWFyXG4gICAgICAgICh3ZWJnbF9jdHgjIy5fQ09MT1JfQlVGRkVSX0JJVF9cbiAgICAgICAgbG9yIHdlYmdsX2N0eCMjLl9ERVBUSF9CVUZGRVJfQklUX1xuICAgICAgICBsb3Igd2ViZ2xfY3R4IyMuX1NURU5DSUxfQlVGRkVSX0JJVF8pO1xuICAgICAgbGV0IGRldmljZV9yYXRpbyA9IERvbV9odG1sLndpbmRvdyMjLmRldmljZVBpeGVsUmF0aW8gaW5cbiAgICAgIE5WRy5iZWdpbl9mcmFtZSB2ZyB+d2lkdGg6Y2FudmFzIyMud2lkdGggfmhlaWdodDpjYW52YXMjIy5oZWlnaHRcbiAgICAgICAgfmRldmljZV9yYXRpbztcbiAgICAgIE5WRy5UcmFuc2Zvcm0uc2NhbGUgdmcgfng6ZGV2aWNlX3JhdGlvIH55OmRldmljZV9yYXRpbztcbiAgICAgIHJlbmRlciB2ZyB+dGltZSBHZy5QMi5vIGk7XG4gICAgICBOVkcuZW5kX2ZyYW1lIHZnO1xuICAgICAgTHd0LnJldHVybl91bml0KVxuXG5vcGVuIEh1bWFuXG5cbmxldCBfID1cbiAgbGV0IGNhbnZhcyA9XG4gICAgSnMuVW5zYWZlLmNvZXJjZSAoRG9tX2h0bWwuZ2V0RWxlbWVudEJ5SWRfZXhuIFwiY2FudmFzXCIpXG4gIGluXG4gIGxldCB3ZWJnbF9jdHggPSB3ZWJnbF9pbml0aWFsaXplIGNhbnZhcyBpblxuICBsZXQgdmcgPSBncmFwaHZfaW5pdGlhbGl6ZSB3ZWJnbF9jdHggaW5cbiAgbGV0IG9wZW4gSnNfb2Zfb2NhbWxfbHd0Lkx3dF9qc19ldmVudHMgaW5cbiAgbGV0IG9wZW4gTm90dHVpIGluXG4gIGxldCBncmF2aXR5X3BhZCA9IEdyYXZpdHkubWFrZSB+aDpgTmVnYXRpdmUgfnY6YE5lZ2F0aXZlIGluXG4gIGxldCBncmF2aXR5X2Nyb3AgPSBHcmF2aXR5Lm1ha2Ugfmg6YFBvc2l0aXZlIH52OmBOZWdhdGl2ZSBpblxuICBsZXQgYm9keSA9IEx3ZC52YXIgKEx3ZC5wdXJlIFVpLmVtcHR5KSBpblxuICBsZXQgd20gPSBOb3R0dWlfd2lkZ2V0cy53aW5kb3dfbWFuYWdlciAoTHdkLmpvaW4gKEx3ZC5nZXQgYm9keSkpIGluXG4gIE5hdi50ZXN0X3B1bGwgKCkgPj49IGZ1biB0ZXN0X3RyZWUgLT5cbiAgTm90dHVpX3dpZGdldHMuKHRyZWVfbmF2IHRlc3RfdHJlZSBbXSkgPj49IGZ1biB1aSAtPlxuICBsZXQgcm9vdCA9XG4gICAgTHdkLnNldCBib2R5XG4gICAgICAoTHdkLm1hcCB+ZjooVWkucmVzaXplIH5wYWQ6Z3Jhdml0eV9wYWQgfmNyb3A6Z3Jhdml0eV9jcm9wKSB1aSk7XG4gICAgTm90dHVpX3dpZGdldHMud2luZG93X21hbmFnZXJfdmlldyB3bVxuICBpblxuXG4gIGxldCBldmVudHMsIHB1c2hfZXZlbnQgPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICBsZXQgaW1hZ2VzID1cbiAgICBIdW1hbi5Ob3R0dWlfbHd0LnJlbmRlciB2Z1xuICAgICAgfnNpemU6KEdnLlAyLnYgY2FudmFzIyMud2lkdGggY2FudmFzIyMuaGVpZ2h0KVxuICAgICAgZXZlbnRzIHJvb3RcbiAgaW5cbiAgYXN5bmMgKGZ1biAoKSAtPlxuICAgICAgcmVuZGVyX3N0cmVhbSBjYW52YXMgd2ViZ2xfY3R4IHZnXG4gICAgICAgIChmdW4gdmcgPyh0aW1lID0gMC4pIHAgaSAtPlxuICAgICAgICAgIGxldCBfID0gdGltZSBpblxuICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgbSBcIkRyYXdpbmcgaW1hZ2U6IHA9JWEgbj0lYVwiIEdnLlYyLnBwIHBcbiAgICAgICAgICAgICAgICAoSS5EcmF3LnBwIH5hdHRyOkEuZGFyaylcbiAgICAgICAgICAgICAgICBpKTtcbiAgICAgICAgICBsZXQgcCcgPSBJLkRyYXcubm9kZSB2ZyBBLmRhcmsgcCBpIGluXG4gICAgICAgICAgTG9ncy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgbSBcIkRyYXdpbmcgZmluaXNoZWQ6IHAnPSVhXCIgR2cuVjIucHAgcCcpKVxuICAgICAgICBpbWFnZXMpO1xuICBidWZmZXJlZF9sb29wIChtYWtlX2V2ZW50IERvbV9odG1sLkV2ZW50LmtleWRvd24pIERvbV9odG1sLmRvY3VtZW50XG4gICAgKGZ1biBldiBfIC0+XG4gICAgICBMd3QucmV0dXJuXG4gICAgICBAQCBwdXNoX2V2ZW50IChTb21lIChgS2V5IChFdmVudF9qcy5ldnRfb2ZfanNrZXkgZXYpKSkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEVuc3VyZSB0aGF0IFthdF9leGl0XSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGV2ZXJ5IHByb2dyYW0gKilcblxubGV0IF8gPSBkb19hdF9leGl0KClcbiJdfQ== \ No newline at end of file diff --git a/boot_js.ml b/boot_js.ml index 01bb3a3..3b583ac 100644 --- a/boot_js.ml +++ b/boot_js.ml @@ -90,40 +90,8 @@ let _ = let gravity_crop = Gravity.make ~h:`Positive ~v:`Negative in let body = Lwd.var (Lwd.pure Ui.empty) in let wm = Nottui_widgets.window_manager (Lwd.join (Lwd.get body)) in - let ui = - Nottui_widgets.( - edit_area - ~table: - (edit_area_of_string - "edit me?\n\ - derp derp derp\n\ - herp herp derp\n\ - ding dong beep beep") - () - (* vlist_of_text - @@ Lwd.pure - "navigate me?\n\ - derp derp derp\n\ - herp herp derp\n\ - ding dong beep beep" *) - (* @@ Lwd_utils.pack Ui.pack_y - [ - edit_field edit_me; - string "derp derp derp"; - string "herp herp derp"; - string "ding dong beep beep"; - string "derp derp derp"; - string "herp herp derp"; - string "ding dong beep beep"; - string "derp derp derp"; - string "herp herp derp"; - string "ding dong beep beep"; - string "derp derp derp"; - string "herp herp derp"; - string "ding dong beep beep"; - main_menu_item wm "Quit" (fun () -> exit 0); - ] *)) - in + Nav.test_pull () >>= fun test_tree -> + Nottui_widgets.(tree_nav test_tree []) >>= fun ui -> let root = Lwd.set body (Lwd.map ~f:(Ui.resize ~pad:gravity_pad ~crop:gravity_crop) ui); diff --git a/human.ml b/human.ml index aa4ffd6..c870d99 100644 --- a/human.ml +++ b/human.ml @@ -453,19 +453,13 @@ module Nav = struct let test_pull () : t Lwt.t = (* test_populate ()*) - Firebug.console##log (Js.string "Nav.test_pull()\n"); S.Repo.v (Config.init "") >>= fun repo -> - Firebug.console##log (Js.string "Nav.test_pull(2)\n"); S.of_branch repo "current" >>= fun t -> - Firebug.console##log (Js.string "Nav.test_pull(3)\n"); Git_console_http.connect Mimic.empty >>= fun ctx -> - Firebug.console##log (Js.string "Nav.test_pull(4)\n"); let upstream = S.remote ~ctx "https://localhost:8080/console/rootstore.git" in - Firebug.console##log (Js.string "Nav.test_pull(5)\n"); Sync.fetch_exn t upstream >>= fun _ -> S.tree t - (* irmin/src/irmin/sync.ml: calls S.Remote.Backend.fetch *) end module Input = struct @@ -2779,7 +2773,7 @@ module Nottui_widgets = struct Ui.may_handle (Lwd_table.get row) (fun line -> f row line)) let cursor_move cursor - (f : line Lwd_table.row -> line Lwd_table.row option) = + (f : 'a Lwd_table.row -> 'a Lwd_table.row option) = match Lwd.peek cursor with | Some cursor_row -> ( match f cursor_row with @@ -2859,7 +2853,7 @@ module Nottui_widgets = struct table |> Lwd.join |> Lwd.map2 - ~f:(fun (focus, _) -> + ~f:(fun focus -> Ui.keyboard_area ~focus (fun k -> Log.debug (fun m -> m "edit_area handler %a" Ui.pp_key k); @@ -2911,7 +2905,65 @@ module Nottui_widgets = struct else `Unhandled)) | `Uchar u, [ `Ctrl ] when eq_uc_c u 'k' -> `Handled | _ -> `Unhandled)) - (Lwd.pair (Focus.status focus) (focused_row_of_table table)) + (Focus.status focus) + + let tree_nav ?(focus = Focus.make ()) tree path : Ui.t Lwd.t Lwt.t = + let table = Lwd_table.make () in + + (* + Option.iter + (fun cursor -> + Option.iter (fun first -> Focus.request first.focus) + @@ Lwd_table.get cursor) + (Lwd.peek cursor); *) + let cursor_move cursor + (f : 'a Lwd_table.row -> 'a Lwd_table.row option) = + match Lwd.peek cursor with + | Some cursor_row -> ( + match f cursor_row with + | Some new_row -> + Lwd.set cursor (Some new_row); + `Handled + | None -> `Unhandled) + | None -> `Unhandled + in + + (* Build view of tree *) + let open Lwt.Infix in + Nav.S.Tree.list tree path >>= fun treelist -> + List.iter (fun te -> Lwd_table.append' table te) treelist; + let cursor = Lwd.var @@ Lwd_table.first table in + Lwt.return + (Lwd_table.map_reduce + (fun _ (s, _) -> Lwd.pure (string s)) + (Lwd_utils.lift_monoid Ui.pack_y) + table + |> Lwd.join + |> Lwd.map2 + ~f:(fun focus -> + Ui.keyboard_area ~focus (fun k -> + Log.debug (fun m -> + m "edit_area handler %a" Ui.pp_key k); + match k with + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'n' -> + cursor_move cursor (fun c -> Lwd_table.next c) + | `Arrow `Down, _ -> + cursor_move cursor (fun c -> Lwd_table.next c) + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'p' -> + cursor_move cursor (fun c -> Lwd_table.prev c) + | `Arrow `Up, _ -> + cursor_move cursor (fun c -> Lwd_table.prev c) + | `Uchar u, [ `Meta ] when eq_uc_c u '<' -> + cursor_move cursor (fun _ -> + Lwd_table.first table) + | `Uchar u, [ `Meta ] when eq_uc_c u '>' -> + cursor_move cursor (fun _ -> + Lwd_table.last table) + | `Enter, [] -> `Handled + | `Backspace, [] -> `Unhandled + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'k' -> `Handled + | _ -> `Unhandled)) + (Focus.status focus)) (** Tab view, where exactly one element of [l] is shown at a time. *) let tabs (tabs : (string * (unit -> Ui.t Lwd.t)) list) : Ui.t Lwd.t