From d46c1de49da7f72b395669f0c5db8c4c64bd2277 Mon Sep 17 00:00:00 2001 From: cqc Date: Mon, 23 Jan 2023 11:54:46 -0600 Subject: [PATCH] still works --- _build/default/boot_js.bc.js | 9236 ++++++++++++++++++---------------- boot_js.ml | 2 +- human.ml | 180 +- 3 files changed, 4911 insertions(+), 4507 deletions(-) diff --git a/_build/default/boot_js.bc.js b/_build/default/boot_js.bc.js index fd434b3..7be5471 100644 --- a/_build/default/boot_js.bc.js +++ b/_build/default/boot_js.bc.js @@ -564265,26 +564265,34 @@ :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6,a7,a8,a9])} var global_data=runtime.caml_get_global_data(), - cst$20=caml_string_of_jsbytes("]"), - cst$21=caml_string_of_jsbytes("\xe2\x9c\x94"), - cst$22=caml_string_of_jsbytes("\xc3\x97"), - cst$16=caml_string_of_jsbytes(""), - cst$17=caml_string_of_jsbytes("."), - cst$18=caml_string_of_jsbytes("/"), - cst$19=caml_string_of_jsbytes(""), - cst$15=caml_string_of_jsbytes("- "), - cst$14=caml_string_of_jsbytes("- "), - cst$13=caml_string_of_jsbytes(" "), - cst$11=caml_string_of_jsbytes(" "), - cst_v=caml_string_of_jsbytes("v"), - cst$12=caml_string_of_jsbytes(">"), - cst$10=caml_string_of_jsbytes(" "), + cst_None=caml_string_of_jsbytes(" -> None"), + cst$10=caml_string_of_jsbytes("/"), + cst_Nav_S_Tree_find_all=caml_string_of_jsbytes("Nav.S.Tree.find_all "), + cst_how_d_you_get_here=caml_string_of_jsbytes(" how'd you get here??"), + cst$11=caml_string_of_jsbytes("/"), + cst_Nav_S_Tree_kind=caml_string_of_jsbytes("Nav.S.Tree.kind "), cst_could_not_find_path=caml_string_of_jsbytes("could not find path: "), cst_Sub_node=caml_string_of_jsbytes("Sub-node??"), + cst_None$0=caml_string_of_jsbytes(" -> None?"), + cst_Nav_S_Tree_kind$0=caml_string_of_jsbytes("Nav.S.Tree.kind "), cst_cursor_table_row_doesn_t_e= caml_string_of_jsbytes("cursor table row doesn't exist"), cst_cursor_doesn_t_exist=caml_string_of_jsbytes("cursor doesn't exist"), cst_initializing=caml_string_of_jsbytes("initializing..."), + cst$22=caml_string_of_jsbytes("]"), + cst$23=caml_string_of_jsbytes("\xe2\x9c\x94"), + cst$24=caml_string_of_jsbytes("\xc3\x97"), + cst$18=caml_string_of_jsbytes(""), + cst$19=caml_string_of_jsbytes("."), + cst$20=caml_string_of_jsbytes("/"), + cst$21=caml_string_of_jsbytes(""), + cst$17=caml_string_of_jsbytes("- "), + cst$16=caml_string_of_jsbytes("- "), + cst$15=caml_string_of_jsbytes(" "), + cst$13=caml_string_of_jsbytes(" "), + cst_v=caml_string_of_jsbytes("v"), + cst$14=caml_string_of_jsbytes(">"), + cst$12=caml_string_of_jsbytes(" "), cst$7=caml_string_of_jsbytes(" "), cst$8=caml_string_of_jsbytes(""), cst$9=caml_string_of_jsbytes(" "), @@ -564376,18 +564384,18 @@ cst_Dune_exe_Human_Nottui_Rend= caml_string_of_jsbytes ("Dune__exe__Human.Nottui.Renderer.Acquired_focus"), + Lwd_table=global_data.Lwd_table, Lwd=global_data.Lwd, Stdlib=global_data.Stdlib, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_Filename=global_data.Stdlib__Filename, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Printexc=global_data.Stdlib__Printexc, - Lwd_utils=global_data.Lwd_utils, - Lwd_table=global_data.Lwd_table, Logs=global_data.Logs, + Stdlib_Option=global_data.Stdlib__Option, + Lwd_utils=global_data.Lwd_utils, Lwt=global_data.Lwt, Lwt_stream=global_data.Lwt_stream, - Stdlib_Option=global_data.Stdlib__Option, + Stdlib_List=global_data.Stdlib__List, + Stdlib_Array=global_data.Stdlib__Array, + Stdlib_Filename=global_data.Stdlib__Filename, + Stdlib_Printexc=global_data.Stdlib__Printexc, Stdlib_Int=global_data.Stdlib__Int, Stdlib_Uchar=global_data.Stdlib__Uchar, Stdlib_Format=global_data.Stdlib__Format, @@ -564425,34 +564433,21 @@ Irmin_git=global_data.Irmin_git, Irmin_Sync=global_data.Irmin__Sync, include$0=global_data.Graphv_webgl, - _fs_=[0,0.], - _ft_=[0,0.], - _fo_=[0,1.], - _fp_=[0,1.], - _fq_=[0,0.], - _fr_=[0,0.], - _fn_=[254,0.,0.,0.,0.], - _fi_=[0,[12,91,[2,0,[12,124,0]]],caml_string_of_jsbytes("[%s|")], - _fg_=[0,caml_string_of_jsbytes("")], - _fh_=[0,1], - _ff_= - [0, - [11,caml_string_of_jsbytes("cannot list directory "),[2,0,0]], - caml_string_of_jsbytes("cannot list directory %s")], - _fe_=[0,[12,91,[2,0,[12,93,0]]],caml_string_of_jsbytes("[%s]")], - _fd_= + _e$_= [0, [11,caml_string_of_jsbytes("edit_area handler "),[15,0]], caml_string_of_jsbytes("edit_area handler %a")], - _fb_= + _fe_= + [0, + [11,caml_string_of_jsbytes("nav_handler "),[15,0]], + caml_string_of_jsbytes("nav_handler %a")], + _fc_= [0, [11, - caml_string_of_jsbytes - ("tree_nav cursorviewroot on_invalidate Lwt.async (Lwd.set cursorview) triggered??"), + caml_string_of_jsbytes("tree_nav Lwt.async (Lwd.set cursorview)"), 0], - caml_string_of_jsbytes - ("tree_nav cursorviewroot on_invalidate Lwt.async (Lwd.set cursorview) triggered??")], - _e$_= + caml_string_of_jsbytes("tree_nav Lwt.async (Lwd.set cursorview)")], + _fa_= [0, [11, caml_string_of_jsbytes @@ -564460,8 +564455,23 @@ 0], caml_string_of_jsbytes ("tree_nav cursorviewroot on_invalidate push_cv triggered??")], - _fa_=[0,0], - _fc_=[0,0], + _fb_=[0,0], + _fd_=[0,0], + _ft_=[0,0.], + _fu_=[0,0.], + _fp_=[0,1.], + _fq_=[0,1.], + _fr_=[0,0.], + _fs_=[0,0.], + _fo_=[254,0.,0.,0.,0.], + _fj_=[0,[12,91,[2,0,[12,124,0]]],caml_string_of_jsbytes("[%s|")], + _fh_=[0,caml_string_of_jsbytes("")], + _fi_=[0,1], + _fg_= + [0, + [11,caml_string_of_jsbytes("cannot list directory "),[2,0,0]], + caml_string_of_jsbytes("cannot list directory %s")], + _ff_=[0,[12,91,[2,0,[12,93,0]]],caml_string_of_jsbytes("[%s]")], _e__= [0, [11,caml_string_of_jsbytes("edit_area handler "),[15,0]], @@ -564936,11 +564946,11 @@ case 3:var meth=cst_info;break; default:var meth=cst_debug} /*<>*/ var - /*<>*/ _P5_= + /*<>*/ _Ru_= [0, /*<>*/ caml_jsstring_of_string(s)], - /*<>*/ _P6_=console; + /*<>*/ _Rv_=console; /*<>*/ /*<>*/ runtime.caml_js_meth_call - (_P6_,meth,_P5_); + (_Rv_,meth,_Ru_); /*<>*/ return 0 /*<>*/ } /*<>*/ var /*<>*/ _a_=255, @@ -564948,10 +564958,10 @@ /*<>*/ b= /*<>*/ caml_call1(_b_,_a_); /*<>*/ function flush(param) { /*<>*/ var - /*<>*/ _P3_=include[2], - /*<>*/ s= /*<>*/ caml_call1(_P3_,b), - /*<>*/ _P4_=include[8]; - /*<>*/ /*<>*/ caml_call1(_P4_,b); + /*<>*/ _Rs_=include[2], + /*<>*/ s= /*<>*/ caml_call1(_Rs_,b), + /*<>*/ _Rt_=include[8]; + /*<>*/ /*<>*/ caml_call1(_Rt_,b); /*<>*/ return s /*<>*/ } /*<>*/ var /*<>*/ _c_=Stdlib_Format[111], @@ -564960,27 +564970,27 @@ [0, function(level,s) { /*<>*/ var - /*<>*/ _PX_=Stdlib[28], - /*<>*/ _PY_= - /*<>*/ caml_call2(_PX_,cst,s), - /*<>*/ _PZ_=[0,level], - /*<>*/ _P0_=Logs[4], - /*<>*/ _P1_= - /*<>*/ caml_call1(_P0_,_PZ_), - /*<>*/ _P2_=Stdlib[28]; + /*<>*/ _Rm_=Stdlib[28], + /*<>*/ _Rn_= + /*<>*/ caml_call2(_Rm_,cst,s), + /*<>*/ _Ro_=[0,level], + /*<>*/ _Rp_=Logs[4], + /*<>*/ _Rq_= + /*<>*/ caml_call1(_Rp_,_Ro_), + /*<>*/ _Rr_=Stdlib[28]; /*<>*/ /*<>*/ caml_call2 - (_P2_,_P1_,_PY_); + (_Rr_,_Rq_,_Rn_); /*<>*/ return 0 /*<>*/ }]; /*<>*/ function console_report(src,level,over,k,msgf) { /*<>*/ function k$0(param) { /*<>*/ var - /*<>*/ _PU_=0, - /*<>*/ s= /*<>*/ flush(_PU_); + /*<>*/ _Rj_=0, + /*<>*/ s= /*<>*/ flush(_Rj_); /*<>*/ /*<>*/ console$0(level,s); - /*<>*/ /*<>*/ var _PV_=hook[1]; - /*<>*/ /*<>*/ caml_call2(_PV_,level,s); - /*<>*/ /*<>*/ var _PW_=0; - /*<>*/ /*<>*/ caml_call1(over,_PW_); + /*<>*/ /*<>*/ var _Rk_=hook[1]; + /*<>*/ /*<>*/ caml_call2(_Rk_,level,s); + /*<>*/ /*<>*/ var _Rl_=0; + /*<>*/ /*<>*/ caml_call1(over,_Rl_); /*<>*/ return /*<>*/ caml_call1(k,0) /*<>*/ } /*<>*/ return /*<>*/ caml_call1 (msgf, @@ -564988,23 +564998,23 @@ { /*<>*/ if(header) { /*<>*/ var /*<>*/ h=header[1], - /*<>*/ _PM_=Stdlib[98], - /*<>*/ _PN_= - /*<>*/ caml_call2(_PM_,fmt,_d_), - /*<>*/ _PO_=Stdlib[98], - /*<>*/ _PP_= - /*<>*/ caml_call2(_PO_,_e_,_PN_); + /*<>*/ _Rb_=Stdlib[98], + /*<>*/ _Rc_= + /*<>*/ caml_call2(_Rb_,fmt,_d_), + /*<>*/ _Rd_=Stdlib[98], + /*<>*/ _Re_= + /*<>*/ caml_call2(_Rd_,_e_,_Rc_); /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[136],k$0,ppf,_PP_,h)} + (Stdlib_Format[136],k$0,ppf,_Re_,h)} /*<>*/ var - /*<>*/ _PQ_=Stdlib[98], - /*<>*/ _PR_= - /*<>*/ caml_call2(_PQ_,fmt,_f_), - /*<>*/ _PS_=Stdlib[98], - /*<>*/ _PT_= - /*<>*/ caml_call2(_PS_,_g_,_PR_); + /*<>*/ _Rf_=Stdlib[98], + /*<>*/ _Rg_= + /*<>*/ caml_call2(_Rf_,fmt,_f_), + /*<>*/ _Rh_=Stdlib[98], + /*<>*/ _Ri_= + /*<>*/ caml_call2(_Rh_,_g_,_Rg_); /*<>*/ return /*<>*/ caml_call3 - (Stdlib_Format[136],k$0,ppf,_PT_) /*<>*/ }) /*<>*/ } + (Stdlib_Format[136],k$0,ppf,_Ri_) /*<>*/ }) /*<>*/ } /*<>*/ function console_reporter(param) { /*<>*/ return [0,console_report] /*<>*/ } /*<>*/ var @@ -565039,62 +565049,62 @@ else var max=10; /*<>*/ if(max < 10) - { /*<>*/ /*<>*/ var _Pt_=Stdlib[1]; + { /*<>*/ /*<>*/ var _QU_=Stdlib[1]; /*<>*/ /*<>*/ caml_call1 - (_Pt_,cst_with_redirects)} + (_QU_,cst_with_redirects)} /*<>*/ var - /*<>*/ _Pu_=16, - /*<>*/ _Pv_=0, - /*<>*/ _Pw_=Stdlib_Hashtbl[1], + /*<>*/ _QV_=16, + /*<>*/ _QW_=0, + /*<>*/ _QX_=Stdlib_Hashtbl[1], /*<>*/ tbl= - /*<>*/ caml_call2(_Pw_,_Pv_,_Pu_); + /*<>*/ caml_call2(_QX_,_QW_,_QV_); /*<>*/ function go(max,uri) - { /*<>*/ function _Px_(param) + { /*<>*/ function _QY_(param) { /*<>*/ var /*<>*/ body=param[2], /*<>*/ resp=param[1], - /*<>*/ _Pz_=Cohttp_Response[6], - /*<>*/ _PA_= - /*<>*/ caml_call1(_Pz_,resp), - /*<>*/ _PB_=Cohttp_Code[35], + /*<>*/ _Q0_=Cohttp_Response[6], + /*<>*/ _Q1_= + /*<>*/ caml_call1(_Q0_,resp), + /*<>*/ _Q2_=Cohttp_Code[35], /*<>*/ status_code= - /*<>*/ caml_call1(_PB_,_PA_), - /*<>*/ _PC_=Cohttp_Code[40]; + /*<>*/ caml_call1(_Q2_,_Q1_), + /*<>*/ _Q3_=Cohttp_Code[40]; /*<>*/ if - ( /*<>*/ caml_call1(_PC_,status_code)) + ( /*<>*/ caml_call1(_Q3_,status_code)) { /*<>*/ var - /*<>*/ _PD_=Cohttp_Response[4], - /*<>*/ _PE_= - /*<>*/ caml_call1(_PD_,resp), - /*<>*/ _PF_=Cohttp_Header[43], + /*<>*/ _Q4_=Cohttp_Response[4], + /*<>*/ _Q5_= + /*<>*/ caml_call1(_Q4_,resp), + /*<>*/ _Q6_=Cohttp_Header[43], /*<>*/ match= - /*<>*/ caml_call1(_PF_,_PE_); + /*<>*/ caml_call1(_Q6_,_Q5_); /*<>*/ if(match) { /*<>*/ var /*<>*/ uri=match[1], - /*<>*/ _PG_=Stdlib_Hashtbl[9]; + /*<>*/ _Q7_=Stdlib_Hashtbl[9]; if (! - /*<>*/ caml_call2(_PG_,tbl,uri) + /*<>*/ caml_call2(_Q7_,tbl,uri) && 0 !== max) { /*<>*/ var - /*<>*/ _PH_=0, - /*<>*/ _PI_=Stdlib_Hashtbl[5]; + /*<>*/ _Q8_=0, + /*<>*/ _Q9_=Stdlib_Hashtbl[5]; /*<>*/ /*<>*/ caml_call3 - (_PI_,tbl,uri,_PH_); + (_Q9_,tbl,uri,_Q8_); /*<>*/ var - /*<>*/ _PJ_= + /*<>*/ _Q__= function(param) { /*<>*/ return /*<>*/ go (max - 1 | 0,uri) /*<>*/ }, - /*<>*/ _PK_=Cohttp_lwt_Body[19], - /*<>*/ _PL_= - /*<>*/ caml_call1(_PK_,body); + /*<>*/ _Q$_=Cohttp_lwt_Body[19], + /*<>*/ _Ra_= + /*<>*/ caml_call1(_Q$_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_PL_,_PJ_)} + (Lwt[33][1],_Ra_,_Q__)} /*<>*/ return /*<>*/ caml_call1 (Lwt[4],[0,resp,body])} /*<>*/ return /*<>*/ caml_call1 @@ -565102,10 +565112,10 @@ /*<>*/ return /*<>*/ caml_call1 (Lwt[4],[0,resp,body]) /*<>*/ } /*<>*/ /*<>*/ var - _Py_= + _QZ_= /*<>*/ caml_call1(f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Py_,_Px_) /*<>*/ } + (Lwt[33][1],_QZ_,_QY_) /*<>*/ } /*<>*/ return /*<>*/ go(max,uri) /*<>*/ } /*<>*/ function get(param,opt,uri) { /*<>*/ if(opt) @@ -565114,40 +565124,40 @@ headers=sth; else var headers=0; - /*<>*/ function _Pi_(x) + /*<>*/ function _QJ_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,1), x) /*<>*/ } /*<>*/ var - /*<>*/ _Pj_="Git_Cohttp_console.get()\n", - /*<>*/ _Pk_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Pl_(t1,t0,param) + /*<>*/ _QK_="Git_Cohttp_console.get()\n", + /*<>*/ _QL_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _QM_(t1,t0,param) { /*<>*/ return t1.log(t0)} - _Pl_(_Pk_,_Pj_,_Pi_); + _QM_(_QL_,_QK_,_QJ_); /*<>*/ var - _Pm_=Cohttp_Header[5], + _QN_=Cohttp_Header[5], /*<>*/ headers$0= - /*<>*/ caml_call1(_Pm_,headers); + /*<>*/ caml_call1(_QN_,headers); /*<>*/ function f(uri) { /*<>*/ return /*<>*/ caml_call3 (Cohttp_lwt_jsoo[3][3],0,[0,headers$0],uri) /*<>*/ } - /*<>*/ function _Pn_(param) + /*<>*/ function _QO_(param) { /*<>*/ /*<>*/ var body=param[2]; - /*<>*/ function _Pq_(body) + /*<>*/ function _QR_(body) { /*<>*/ return /*<>*/ caml_call1 (Lwt[42],[0,0,body]) /*<>*/ } /*<>*/ var - /*<>*/ _Pr_=Cohttp_lwt_Body[11], - /*<>*/ _Ps_= - /*<>*/ caml_call1(_Pr_,body); + /*<>*/ _QS_=Cohttp_lwt_Body[11], + /*<>*/ _QT_= + /*<>*/ caml_call1(_QS_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Ps_,_Pq_) /*<>*/ } + (Lwt[33][1],_QT_,_QR_) /*<>*/ } /*<>*/ var - /*<>*/ _Po_=0, - /*<>*/ _Pp_= - /*<>*/ with_redirects(_Po_,f,uri); + /*<>*/ _QP_=0, + /*<>*/ _QQ_= + /*<>*/ with_redirects(_QP_,f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Pp_,_Pn_) /*<>*/ } + (Lwt[33][1],_QQ_,_QO_) /*<>*/ } /*<>*/ function post(param,opt,uri,body) { /*<>*/ if(opt) /*<>*/ var @@ -565156,32 +565166,32 @@ else var headers=0; /*<>*/ var - /*<>*/ _Pa_=Cohttp_Header[5], + /*<>*/ _QB_=Cohttp_Header[5], /*<>*/ headers$0= - /*<>*/ caml_call1(_Pa_,headers), - /*<>*/ _Pb_=Cohttp_lwt_Body[5], + /*<>*/ caml_call1(_QB_,headers), + /*<>*/ _QC_=Cohttp_lwt_Body[5], /*<>*/ body$0= - /*<>*/ caml_call1(_Pb_,body); + /*<>*/ caml_call1(_QC_,body); /*<>*/ function f(uri) { /*<>*/ return /*<>*/ caml_call5 (Cohttp_lwt_jsoo[3][5],0,[0,body$0],_s_,[0,headers$0],uri) /*<>*/ } - /*<>*/ function _Pc_(param) + /*<>*/ function _QD_(param) { /*<>*/ /*<>*/ var body=param[2]; - /*<>*/ function _Pf_(body) + /*<>*/ function _QG_(body) { /*<>*/ return /*<>*/ caml_call1 (Lwt[42],[0,0,body]) /*<>*/ } /*<>*/ var - /*<>*/ _Pg_=Cohttp_lwt_Body[11], - /*<>*/ _Ph_= - /*<>*/ caml_call1(_Pg_,body); + /*<>*/ _QH_=Cohttp_lwt_Body[11], + /*<>*/ _QI_= + /*<>*/ caml_call1(_QH_,body); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Ph_,_Pf_) /*<>*/ } + (Lwt[33][1],_QI_,_QG_) /*<>*/ } /*<>*/ var - /*<>*/ _Pd_=0, - /*<>*/ _Pe_= - /*<>*/ with_redirects(_Pd_,f,uri); + /*<>*/ _QE_=0, + /*<>*/ _QF_= + /*<>*/ with_redirects(_QE_,f,uri); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Pe_,_Pc_) /*<>*/ } + (Lwt[33][1],_QF_,_QD_) /*<>*/ } /*<>*/ /*<>*/ var Git_af= [0, @@ -565194,9 +565204,9 @@ post]; /*<>*/ function context(ctx) { /*<>*/ var - /*<>*/ _OM_=Mimic[8], + /*<>*/ _Qb_=Mimic[8], /*<>*/ edn= - /*<>*/ caml_call1(_OM_,cst_af_http_endpoint); + /*<>*/ caml_call1(_Qb_,cst_af_http_endpoint); /*<>*/ function k1 (git_af_scheme,git_af_hostname,git_af_port) { /*<>*/ return 802644872 === git_af_scheme @@ -565204,26 +565214,26 @@ (Lwt[41],[0,git_af_hostname,git_af_port]) :Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _ON_=0, - /*<>*/ _OO_=80, - /*<>*/ _OP_=Git_af[2], - /*<>*/ _OQ_=Mimic[7][3], - /*<>*/ _OR_= - [0, /*<>*/ caml_call2(_OQ_,_OP_,_OO_),_ON_], - /*<>*/ _OS_=Git_af[3], - /*<>*/ _OT_=Mimic[7][1], - /*<>*/ _OU_= - [0, /*<>*/ caml_call1(_OT_,_OS_),_OR_], - /*<>*/ _OV_=Git_af[1], - /*<>*/ _OW_=Mimic[7][1], - /*<>*/ _OX_= - [0, /*<>*/ caml_call1(_OW_,_OV_),_OU_], - /*<>*/ _OY_=Mimic[11], + /*<>*/ _Qc_=0, + /*<>*/ _Qd_=80, + /*<>*/ _Qe_=Git_af[2], + /*<>*/ _Qf_=Mimic[7][3], + /*<>*/ _Qg_= + [0, /*<>*/ caml_call2(_Qf_,_Qe_,_Qd_),_Qc_], + /*<>*/ _Qh_=Git_af[3], + /*<>*/ _Qi_=Mimic[7][1], + /*<>*/ _Qj_= + [0, /*<>*/ caml_call1(_Qi_,_Qh_),_Qg_], + /*<>*/ _Qk_=Git_af[1], + /*<>*/ _Ql_=Mimic[7][1], + /*<>*/ _Qm_= + [0, /*<>*/ caml_call1(_Ql_,_Qk_),_Qj_], + /*<>*/ _Qn_=Mimic[11], /*<>*/ ctx$0= - /*<>*/ caml_call4(_OY_,edn,_OX_,k1,ctx), - /*<>*/ _OZ_=Mimic[8], + /*<>*/ caml_call4(_Qn_,edn,_Qm_,k1,ctx), + /*<>*/ _Qo_=Mimic[8], /*<>*/ edn$0= - /*<>*/ caml_call1(_OZ_,cst_af_https_endpoint); + /*<>*/ caml_call1(_Qo_,cst_af_https_endpoint); /*<>*/ function k1$0 (git_af_scheme,git_af_hostname,git_af_port) { /*<>*/ return 748663755 === git_af_scheme @@ -565231,23 +565241,23 @@ (Lwt[41],[0,git_af_hostname,git_af_port]) :Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _O0_=0, - /*<>*/ _O1_=443, - /*<>*/ _O2_=Git_af[2], - /*<>*/ _O3_=Mimic[7][3], - /*<>*/ _O4_= - [0, /*<>*/ caml_call2(_O3_,_O2_,_O1_),_O0_], - /*<>*/ _O5_=Git_af[3], - /*<>*/ _O6_=Mimic[7][1], - /*<>*/ _O7_= - [0, /*<>*/ caml_call1(_O6_,_O5_),_O4_], - /*<>*/ _O8_=Git_af[1], - /*<>*/ _O9_=Mimic[7][1], - /*<>*/ _O__= - [0, /*<>*/ caml_call1(_O9_,_O8_),_O7_], - /*<>*/ _O$_=Mimic[11], + /*<>*/ _Qp_=0, + /*<>*/ _Qq_=443, + /*<>*/ _Qr_=Git_af[2], + /*<>*/ _Qs_=Mimic[7][3], + /*<>*/ _Qt_= + [0, /*<>*/ caml_call2(_Qs_,_Qr_,_Qq_),_Qp_], + /*<>*/ _Qu_=Git_af[3], + /*<>*/ _Qv_=Mimic[7][1], + /*<>*/ _Qw_= + [0, /*<>*/ caml_call1(_Qv_,_Qu_),_Qt_], + /*<>*/ _Qx_=Git_af[1], + /*<>*/ _Qy_=Mimic[7][1], + /*<>*/ _Qz_= + [0, /*<>*/ caml_call1(_Qy_,_Qx_),_Qw_], + /*<>*/ _QA_=Mimic[11], /*<>*/ ctx$1= - /*<>*/ caml_call4(_O$_,edn$0,_O__,k1$0,ctx$0); + /*<>*/ caml_call4(_QA_,edn$0,_Qz_,k1$0,ctx$0); /*<>*/ return ctx$1 /*<>*/ } /*<>*/ function pp_error$0(ppf,param) { /*<>*/ var err=param[2];return caml_call2(Fmt[57],ppf,err)} @@ -565259,24 +565269,24 @@ /*<>*/ return /*<>*/ caml_call2 (Fmt[57],ppf,err)} /*<>*/ function write(t,cs) - { /*<>*/ /*<>*/ var _OG_=t[2]; - /*<>*/ if(typeof _OG_ === "number") - { /*<>*/ if(1 === _OG_) + { /*<>*/ /*<>*/ var _P7_=t[2]; + /*<>*/ if(typeof _P7_ === "number") + { /*<>*/ if(1 === _P7_) /*<>*/ return /*<>*/ caml_call1 (Lwt[43],_u_)} else - /*<>*/ if(1 === _OG_[0]) + /*<>*/ if(1 === _P7_[0]) { /*<>*/ var - output=_OG_[1], - _OH_=0, - _OI_=0, - _OJ_=Cstruct[28], - /*<>*/ _OK_= - /*<>*/ caml_call3(_OJ_,_OI_,_OH_,cs), - /*<>*/ _OL_=Stdlib[28], + output=_P7_[1], + _P8_=0, + _P9_=0, + _P__=Cstruct[28], + /*<>*/ _P$_= + /*<>*/ caml_call3(_P__,_P9_,_P8_,cs), + /*<>*/ _Qa_=Stdlib[28], /*<>*/ output$0= - /*<>*/ caml_call2(_OL_,output,_OK_); - /*<>*/ _OG_[1] = output$0; + /*<>*/ caml_call2(_Qa_,output,_P$_); + /*<>*/ _P7_[1] = output$0; /*<>*/ return /*<>*/ caml_call1 (Lwt[42],0)} /*<>*/ return /*<>*/ caml_call1 @@ -565287,89 +565297,89 @@ { /*<>*/ var r=param[2], x=param[1], - _OE_= + _P5_= function(err) { /*<>*/ return 0 === err[0] ? /*<>*/ go(r) : /*<>*/ caml_call1(Lwt[4],err) /*<>*/ }, - /*<>*/ _OF_= /*<>*/ write(t,x); + /*<>*/ _P6_= /*<>*/ write(t,x); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_OF_,_OE_)} + (Lwt[33][1],_P6_,_P5_)} /*<>*/ return /*<>*/ caml_call1 (Lwt[42],0) /*<>*/ } /*<>*/ return /*<>*/ go(css) /*<>*/ } /*<>*/ function read(t) - { /*<>*/ /*<>*/ var _On_=t[2]; - /*<>*/ if(typeof _On_ === "number") - /*<>*/ return 0 === _On_ + { /*<>*/ /*<>*/ var _PO_=t[2]; + /*<>*/ if(typeof _PO_ === "number") + /*<>*/ return 0 === _PO_ ? /*<>*/ caml_call1(Lwt[43],_v_) : /*<>*/ caml_call1(Lwt[43],_w_); else - { /*<>*/ if(0 === _On_[0]) - {var ctx=_On_[4],headers=_On_[3],uri=_On_[2],advertised_refs=_On_[1]; + { /*<>*/ if(0 === _PO_[0]) + {var ctx=_PO_[4],headers=_PO_[3],uri=_PO_[2],advertised_refs=_PO_[1]; t[2] = [1,cst$0,uri,headers,ctx]; /*<>*/ var - _Oo_=0, - _Op_=0, - _Oq_=0, - _Or_=Cstruct[7], - /*<>*/ _Os_= + _PP_=0, + _PQ_=0, + _PR_=0, + _PS_=Cstruct[7], + /*<>*/ _PT_= [0, 758940234, /*<>*/ caml_call4 - (_Or_,_Oq_,_Op_,_Oo_,advertised_refs)]; + (_PS_,_PR_,_PQ_,_PP_,advertised_refs)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[42],_Os_)} + (Lwt[42],_PT_)} /*<>*/ var - output=_On_[1], - ctx$0=_On_[4], - headers$0=_On_[3], - uri$0=_On_[2], - _Ot_= + output=_PO_[1], + ctx$0=_PO_[4], + headers$0=_PO_[3], + uri$0=_PO_[2], + _PU_= function(param) { /*<>*/ if(0 === param[0]) { /*<>*/ var match=param[1], contents=match[2], - _Ox_=0, - _Oy_=0, - _Oz_=0, - _OA_=Cstruct[7], - /*<>*/ _OB_= + _PY_=0, + _PZ_=0, + _P0_=0, + _P1_=Cstruct[7], + /*<>*/ _P2_= [0, 758940234, /*<>*/ caml_call4 - (_OA_,_Oz_,_Oy_,_Ox_,contents)]; + (_P1_,_P0_,_PZ_,_PY_,contents)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[42],_OB_)} + (Lwt[42],_P2_)} /*<>*/ var /*<>*/ err=param[1], - /*<>*/ _OC_=Fmt[6], - /*<>*/ _OD_= + /*<>*/ _P3_=Fmt[6], + /*<>*/ _P4_= [0, 3854881, - /*<>*/ caml_call3(_OC_,_x_,pp_error$0,err)]; + /*<>*/ caml_call3(_P3_,_x_,pp_error$0,err)]; /*<>*/ return /*<>*/ caml_call1 - (Lwt[43],_OD_) /*<>*/ }, - _Ou_=[0,headers$0], - _Ov_=Git_af[7], - /*<>*/ _Ow_= - /*<>*/ caml_call4(_Ov_,ctx$0,_Ou_,uri$0,output); + (Lwt[43],_P4_) /*<>*/ }, + _PV_=[0,headers$0], + _PW_=Git_af[7], + /*<>*/ _PX_= + /*<>*/ caml_call4(_PW_,ctx$0,_PV_,uri$0,output); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Ow_,_Ot_)} /*<>*/ } + (Lwt[33][1],_PX_,_PU_)} /*<>*/ } /*<>*/ function close(param) { /*<>*/ return Lwt[36] /*<>*/ } /*<>*/ function connect(endpoint) - { /*<>*/ function _Oj_(x) + { /*<>*/ function _PK_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,2), x) /*<>*/ } /*<>*/ var - /*<>*/ _Ok_="Git_Console_http.HTTP.connect()\n", - /*<>*/ _Ol_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Om_(t3,t2,param) + /*<>*/ _PL_="Git_Console_http.HTTP.connect()\n", + /*<>*/ _PM_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _PN_(t3,t2,param) { /*<>*/ return t3.log(t2)} - _Om_(_Ol_,_Ok_,_Oj_); + _PN_(_PM_,_PL_,_PK_); return caml_call1(Lwt[42],[0,endpoint,0]) /*<>*/ } /*<>*/ var /*<>*/ HTTP= @@ -565383,23 +565393,23 @@ /*<>*/ http_protocol=match[2], /*<>*/ http_endpoint=match[1]; /*<>*/ function connect$0(ctx) - { /*<>*/ function _Ny_(x) + { /*<>*/ function _OZ_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,3), x) /*<>*/ } /*<>*/ var - /*<>*/ _Nz_="Git_Console_http.connect()\n", - /*<>*/ _NA_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _NB_(t5,t4,param) + /*<>*/ _O0_="Git_Console_http.connect()\n", + /*<>*/ _O1_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _O2_(t5,t4,param) { /*<>*/ return t5.log(t4)} - _NB_(_NA_,_Nz_,_Ny_); + _O2_(_O1_,_O0_,_OZ_); /*<>*/ var - _NC_=Mimic[15], + _O3_=Mimic[15], /*<>*/ T= - /*<>*/ caml_call1(_NC_,http_protocol), - /*<>*/ _ND_=Mimic[8], + /*<>*/ caml_call1(_O3_,http_protocol), + /*<>*/ _O4_=Mimic[8], /*<>*/ edn= - /*<>*/ caml_call1(_ND_,cst_http_endpoint); + /*<>*/ caml_call1(_O4_,cst_http_endpoint); /*<>*/ function k0(uri) { /*<>*/ return /*<>*/ caml_call1 (Lwt[41],uri) /*<>*/ } @@ -565412,12 +565422,12 @@ 802644872 === git_transmission[1]) - {var switch$0=0,_Oi_=git_transmission[2][1]; + {var switch$0=0,_PJ_=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],_Oi_)} + (Lwt[41],_PJ_)} /*<>*/ return Lwt[37] /*<>*/ } /*<>*/ function k2 (git_scheme,git_uri,git_http_headers) @@ -565430,34 +565440,34 @@ { /*<>*/ if(param[1] === T[1]) { /*<>*/ var /*<>*/ flow=param[2], - /*<>*/ _N3_= + /*<>*/ _Ps_= function(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,5395588,4), x) /*<>*/ }, - /*<>*/ _N4_=0, - /*<>*/ _N5_=Uri[8], - /*<>*/ _N6_= - /*<>*/ caml_call2(_N5_,_N4_,uri1), - /*<>*/ _N7_=0, - /*<>*/ _N8_=Uri[8], - /*<>*/ _N9_= - /*<>*/ caml_call2(_N8_,_N7_,uri0), - /*<>*/ _N__=Fmt[6], - /*<>*/ _N$_= - /*<>*/ caml_call3(_N__,_C_,_N9_,_N6_), - /*<>*/ _Oa_= - /*<>*/ caml_jsstring_of_string(_N$_), - /*<>*/ _Ob_=Js_of_ocaml_Firebug[1], - /*<>*/ _Oc_= + /*<>*/ _Pt_=0, + /*<>*/ _Pu_=Uri[8], + /*<>*/ _Pv_= + /*<>*/ caml_call2(_Pu_,_Pt_,uri1), + /*<>*/ _Pw_=0, + /*<>*/ _Px_=Uri[8], + /*<>*/ _Py_= + /*<>*/ caml_call2(_Px_,_Pw_,uri0), + /*<>*/ _Pz_=Fmt[6], + /*<>*/ _PA_= + /*<>*/ caml_call3(_Pz_,_C_,_Py_,_Pv_), + /*<>*/ _PB_= + /*<>*/ caml_jsstring_of_string(_PA_), + /*<>*/ _PC_=Js_of_ocaml_Firebug[1], + /*<>*/ _PD_= function(t7,t6,param){ /*<>*/ return t7.log(t6)}; - _Oc_(_Ob_,_Oa_,_N3_); + _PD_(_PC_,_PB_,_Ps_); /*<>*/ var - _Od_=Mimic[13], + _PE_=Mimic[13], /*<>*/ ctx= - /*<>*/ context(_Od_), - /*<>*/ _Oe_= + /*<>*/ context(_PE_), + /*<>*/ _PF_= function(param) { /*<>*/ if(0 === param[0]) {var match=param[1],advertised_refs=match[2]; @@ -565465,12 +565475,12 @@ return Lwt[36]} /*<>*/ flow[2] = 1; /*<>*/ return Lwt[36] /*<>*/ }, - /*<>*/ _Of_=[0,headers], - /*<>*/ _Og_=Git_af[6], - /*<>*/ _Oh_= - /*<>*/ caml_call3(_Og_,ctx,_Of_,uri0); + /*<>*/ _PG_=[0,headers], + /*<>*/ _PH_=Git_af[6], + /*<>*/ _PI_= + /*<>*/ caml_call3(_PH_,ctx,_PG_,uri0); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Oh_,_Oe_)} + (Lwt[33][1],_PI_,_PF_)} /*<>*/ return Lwt[36]}, /*<>*/ git_transmission= [0,802644872,[0,git_uri,handshake]]; @@ -565478,43 +565488,43 @@ (Lwt[41],git_transmission)} /*<>*/ return Lwt[37] /*<>*/ } /*<>*/ var - /*<>*/ _NE_=0, - /*<>*/ _NF_=Mimic[7][1], - /*<>*/ _NG_= - [0, /*<>*/ caml_call1(_NF_,edn),_NE_], - /*<>*/ _NH_=Mimic[11], + /*<>*/ _O5_=0, + /*<>*/ _O6_=Mimic[7][1], + /*<>*/ _O7_= + [0, /*<>*/ caml_call1(_O6_,edn),_O5_], + /*<>*/ _O8_=Mimic[11], /*<>*/ ctx$0= - /*<>*/ caml_call4(_NH_,http_endpoint,_NG_,k0,ctx), - /*<>*/ _NI_=0, - /*<>*/ _NJ_=Smart_git[3], - /*<>*/ _NK_=Mimic[7][1], - /*<>*/ _NL_= - [0, /*<>*/ caml_call1(_NK_,_NJ_),_NI_], - /*<>*/ _NM_=Smart_git[9], - /*<>*/ _NN_=Mimic[7][1], - /*<>*/ _NO_= - [0, /*<>*/ caml_call1(_NN_,_NM_),_NL_], - /*<>*/ _NP_=Mimic[11], + /*<>*/ caml_call4(_O8_,http_endpoint,_O7_,k0,ctx), + /*<>*/ _O9_=0, + /*<>*/ _O__=Smart_git[3], + /*<>*/ _O$_=Mimic[7][1], + /*<>*/ _Pa_= + [0, /*<>*/ caml_call1(_O$_,_O__),_O9_], + /*<>*/ _Pb_=Smart_git[9], + /*<>*/ _Pc_=Mimic[7][1], + /*<>*/ _Pd_= + [0, /*<>*/ caml_call1(_Pc_,_Pb_),_Pa_], + /*<>*/ _Pe_=Mimic[11], /*<>*/ ctx$1= - /*<>*/ caml_call4(_NP_,edn,_NO_,k1,ctx$0), - /*<>*/ _NQ_=0, - /*<>*/ _NR_=0, - /*<>*/ _NS_=Smart_git[8], - /*<>*/ _NT_=Mimic[7][3], - /*<>*/ _NU_= - [0, /*<>*/ caml_call2(_NT_,_NS_,_NR_),_NQ_], - /*<>*/ _NV_=Smart_git[10], - /*<>*/ _NW_=Mimic[7][1], - /*<>*/ _NX_= - [0, /*<>*/ caml_call1(_NW_,_NV_),_NU_], - /*<>*/ _NY_=Smart_git[3], - /*<>*/ _NZ_=Mimic[7][1], - /*<>*/ _N0_= - [0, /*<>*/ caml_call1(_NZ_,_NY_),_NX_], - /*<>*/ _N1_=Smart_git[9], - /*<>*/ _N2_=Mimic[11], + /*<>*/ caml_call4(_Pe_,edn,_Pd_,k1,ctx$0), + /*<>*/ _Pf_=0, + /*<>*/ _Pg_=0, + /*<>*/ _Ph_=Smart_git[8], + /*<>*/ _Pi_=Mimic[7][3], + /*<>*/ _Pj_= + [0, /*<>*/ caml_call2(_Pi_,_Ph_,_Pg_),_Pf_], + /*<>*/ _Pk_=Smart_git[10], + /*<>*/ _Pl_=Mimic[7][1], + /*<>*/ _Pm_= + [0, /*<>*/ caml_call1(_Pl_,_Pk_),_Pj_], + /*<>*/ _Pn_=Smart_git[3], + /*<>*/ _Po_=Mimic[7][1], + /*<>*/ _Pp_= + [0, /*<>*/ caml_call1(_Po_,_Pn_),_Pm_], + /*<>*/ _Pq_=Smart_git[9], + /*<>*/ _Pr_=Mimic[11], /*<>*/ ctx$2= - /*<>*/ caml_call4(_N2_,_N1_,_N0_,k2,ctx$1); + /*<>*/ caml_call4(_Pr_,_Pq_,_Pp_,k2,ctx$1); /*<>*/ return /*<>*/ caml_call1 (Lwt[4],ctx$2) /*<>*/ } /*<>*/ var @@ -565525,11 +565535,11 @@ /*<>*/ caml_call1(_D_,cst_console_js_git); /*<>*/ function of_string(str) { /*<>*/ var - /*<>*/ _Nw_=Git_Reference[1], - /*<>*/ _Nx_= - /*<>*/ caml_call1(_Nw_,str); + /*<>*/ _OX_=Git_Reference[1], + /*<>*/ _OY_= + /*<>*/ caml_call1(_OX_,str); /*<>*/ return /*<>*/ caml_call1 - (Result[4],_Nx_) /*<>*/ } + (Result[4],_OY_) /*<>*/ } /*<>*/ function to_string(r) { /*<>*/ return /*<>*/ caml_call1 (Git_Reference[11],r) /*<>*/ } @@ -565593,21 +565603,21 @@ /*<>*/ Key=[0,reference,head,bare,level,buffers]; /*<>*/ function init(head,level,buffers,root) { /*<>*/ var - /*<>*/ _Np_=Irmin[2][1][11], + /*<>*/ _OQ_=Irmin[2][1][11], /*<>*/ config= - /*<>*/ caml_call1(_Np_,spec), - /*<>*/ _Nq_=Key[2], - /*<>*/ _Nr_=Irmin[2][1][15], + /*<>*/ caml_call1(_OQ_,spec), + /*<>*/ _OR_=Key[2], + /*<>*/ _OS_=Irmin[2][1][15], /*<>*/ config$0= - /*<>*/ caml_call3(_Nr_,config,_Nq_,head), - /*<>*/ _Ns_=Key[4], - /*<>*/ _Nt_=Irmin[2][1][15], + /*<>*/ caml_call3(_OS_,config,_OR_,head), + /*<>*/ _OT_=Key[4], + /*<>*/ _OU_=Irmin[2][1][15], /*<>*/ config$1= - /*<>*/ caml_call3(_Nt_,config$0,_Ns_,level), - /*<>*/ _Nu_=Key[5], - /*<>*/ _Nv_=Irmin[2][1][15], + /*<>*/ caml_call3(_OU_,config$0,_OT_,level), + /*<>*/ _OV_=Key[5], + /*<>*/ _OW_=Irmin[2][1][15], /*<>*/ config$2= - /*<>*/ caml_call3(_Nv_,config$1,_Nu_,buffers); + /*<>*/ caml_call3(_OW_,config$1,_OV_,buffers); /*<>*/ return /*<>*/ caml_call1 (Irmin[2][1][22],config$2) /*<>*/ } /*<>*/ var @@ -565790,53 +565800,53 @@ ctx=sth; else var ctx=Mimic[13]; - /*<>*/ function _M9_(x) + /*<>*/ function _Oy_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,5), x) /*<>*/ } /*<>*/ var - /*<>*/ _M__="Nav.S.remote()\n", - /*<>*/ _M$_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _Na_(t9,t8,param) + /*<>*/ _Oz_="Nav.S.remote()\n", + /*<>*/ _OA_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _OB_(t9,t8,param) { /*<>*/ return t9.log(t8)} - _Na_(_M$_,_M__,_M9_); + _OB_(_OA_,_Oz_,_Oy_); function symbol(f,a,b) { /*<>*/ return /*<>*/ caml_call2 (f,b,a) /*<>*/ } /*<>*/ var - _Nb_=Smart_git[1][2], + _OC_=Smart_git[1][2], /*<>*/ match= - /*<>*/ caml_call1(_Nb_,uri); + /*<>*/ caml_call1(_OC_,uri); /*<>*/ if(0 === match[0]) { /*<>*/ var /*<>*/ edn=match[1], - /*<>*/ _Nc_=Smart_git[1][3], - /*<>*/ _Nd_= - function(_Nn_,_No_){ /*<>*/ return symbol(_Nc_,_Nn_,_No_)}, - /*<>*/ _Ne_= - function(_Nm_){ /*<>*/ return _Nd_(edn,_Nm_)}, - /*<>*/ _Nf_=Stdlib_Option[8], + /*<>*/ _OD_=Smart_git[1][3], + /*<>*/ _OE_= + function(_OO_,_OP_){ /*<>*/ return symbol(_OD_,_OO_,_OP_)}, + /*<>*/ _OF_= + function(_ON_){ /*<>*/ return _OE_(edn,_ON_)}, + /*<>*/ _OG_=Stdlib_Option[8], /*<>*/ edn$0= - /*<>*/ caml_call3(_Nf_,edn,_Ne_,headers), - /*<>*/ _Ng_= + /*<>*/ caml_call3(_OG_,edn,_OF_,headers), + /*<>*/ _OH_= function(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,5395588,6), x) /*<>*/ }, - /*<>*/ _Nh_="Nav.S.remote() = (ctx, edn) \n", - /*<>*/ _Ni_=Js_of_ocaml_Firebug[1], - /*<>*/ _Nj_= + /*<>*/ _OI_="Nav.S.remote() = (ctx, edn) \n", + /*<>*/ _OJ_=Js_of_ocaml_Firebug[1], + /*<>*/ _OK_= function(t11,t10,param){ /*<>*/ return t11.log(t10)}; - _Nj_(_Ni_,_Nh_,_Ng_); - /*<>*/ var _Nk_=[0,ctx,edn$0]} + _OK_(_OJ_,_OI_,_OH_); + /*<>*/ var _OL_=[0,ctx,edn$0]} else var match$0=match[1], err=match$0[2], - _Nl_=Fmt[13], - _Nk_= /*<>*/ caml_call2(_Nl_,_aw_,err); - return [0,E,_Nk_] /*<>*/ } + _OM_=Fmt[13], + _OL_= /*<>*/ caml_call2(_OM_,_aw_,err); + return [0,E,_OL_] /*<>*/ } /*<>*/ var /*<>*/ Schema$0=Backend[1], /*<>*/ Hash$0=Backend[2], @@ -565856,16 +565866,16 @@ /*<>*/ function edn(e) { /*<>*/ return e[2] /*<>*/ } /*<>*/ function fetch$0(t,depth,endpoint,branch) - { /*<>*/ function _M5_(x) + { /*<>*/ function _Ou_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5395588,7), x) /*<>*/ } /*<>*/ var - /*<>*/ _M6_="S.Backend.Remote.wrapped_fetch()\n", - /*<>*/ _M7_=Js_of_ocaml_Firebug[1]; - /*<>*/ function _M8_(t13,t12,param) + /*<>*/ _Ov_="S.Backend.Remote.wrapped_fetch()\n", + /*<>*/ _Ow_=Js_of_ocaml_Firebug[1]; + /*<>*/ function _Ox_(t13,t12,param) { /*<>*/ return t13.log(t12)} - _M8_(_M7_,_M6_,_M5_); + _Ox_(_Ow_,_Ov_,_Ou_); return caml_call4(Remote[1],t,depth,endpoint,branch) /*<>*/ } /*<>*/ var /*<>*/ Remote$0=[0,push$0,v,ctx,edn,fetch$0], @@ -566094,86 +566104,86 @@ S[90]]); /*<>*/ function init$0(param) { /*<>*/ var - /*<>*/ _MW_=S[29], - /*<>*/ _MX_=S[25], - /*<>*/ _MY_=0, - /*<>*/ _MZ_=Irmin_mem[2], - /*<>*/ _M0_= - /*<>*/ caml_call1(_MZ_,_MY_), - /*<>*/ _M1_=S[23][1], - /*<>*/ _M2_= - /*<>*/ caml_call1(_M1_,_M0_), - /*<>*/ _M3_=Lwt[33][1], - /*<>*/ _M4_= - /*<>*/ caml_call2(_M3_,_M2_,_MX_); + /*<>*/ _Ol_=S[29], + /*<>*/ _Om_=S[25], + /*<>*/ _On_=0, + /*<>*/ _Oo_=Irmin_mem[2], + /*<>*/ _Op_= + /*<>*/ caml_call1(_Oo_,_On_), + /*<>*/ _Oq_=S[23][1], + /*<>*/ _Or_= + /*<>*/ caml_call1(_Oq_,_Op_), + /*<>*/ _Os_=Lwt[33][1], + /*<>*/ _Ot_= + /*<>*/ caml_call2(_Os_,_Or_,_Om_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_M4_,_MW_) /*<>*/ } + (Lwt[33][1],_Ot_,_Ol_) /*<>*/ } /*<>*/ function test_populate(param) { /*<>*/ function add(p,s,t) { /*<>*/ return /*<>*/ caml_call4 (S[36][31],t,p,0,s) /*<>*/ } - /*<>*/ function _MM_(_MV_) - { /*<>*/ return add(_aB_,cst_motherfucker,_MV_)} - /*<>*/ function _MN_(_MU_) - { /*<>*/ return add(_aC_,cst_ily,_MU_)} + /*<>*/ function _Ob_(_Ok_) + { /*<>*/ return add(_aB_,cst_motherfucker,_Ok_)} + /*<>*/ function _Oc_(_Oj_) + { /*<>*/ return add(_aC_,cst_ily,_Oj_)} /*<>*/ var - /*<>*/ _MO_=0, - /*<>*/ _MP_=S[36][9], - /*<>*/ _MQ_= - /*<>*/ caml_call1(_MP_,_MO_), - /*<>*/ _MR_= - /*<>*/ add(_aD_,cst_world,_MQ_), - /*<>*/ _MS_=Lwt[33][1], - /*<>*/ _MT_= - /*<>*/ caml_call2(_MS_,_MR_,_MN_); + /*<>*/ _Od_=0, + /*<>*/ _Oe_=S[36][9], + /*<>*/ _Of_= + /*<>*/ caml_call1(_Oe_,_Od_), + /*<>*/ _Og_= + /*<>*/ add(_aD_,cst_world,_Of_), + /*<>*/ _Oh_=Lwt[33][1], + /*<>*/ _Oi_= + /*<>*/ caml_call2(_Oh_,_Og_,_Oc_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_MT_,_MM_) /*<>*/ } + (Lwt[33][1],_Oi_,_Ob_) /*<>*/ } /*<>*/ function test_pull(param) - { /*<>*/ function _Mq_(repo) - { /*<>*/ function _My_(t) - { /*<>*/ function _MB_(ctx) + { /*<>*/ function _NR_(repo) + { /*<>*/ function _NZ_(t) + { /*<>*/ function _N2_(ctx) { /*<>*/ var - /*<>*/ _MF_=0, - /*<>*/ _MG_=[0,ctx], - /*<>*/ _MH_=S[94], + /*<>*/ _N6_=0, + /*<>*/ _N7_=[0,ctx], + /*<>*/ _N8_=S[94], /*<>*/ upstream= /*<>*/ caml_call3 - (_MH_,_MG_,_MF_,cst_https_localhost_8080_conso); - /*<>*/ function _MI_(param) + (_N8_,_N7_,_N6_,cst_https_localhost_8080_conso); + /*<>*/ function _N9_(param) { /*<>*/ return /*<>*/ caml_call1 (S[29],t) /*<>*/ } /*<>*/ var - /*<>*/ _MJ_=0, - /*<>*/ _MK_=Sync$0[4], - /*<>*/ _ML_= - /*<>*/ caml_call3(_MK_,t,_MJ_,upstream); + /*<>*/ _N__=0, + /*<>*/ _N$_=Sync$0[4], + /*<>*/ _Oa_= + /*<>*/ caml_call3(_N$_,t,_N__,upstream); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_ML_,_MI_) /*<>*/ } + (Lwt[33][1],_Oa_,_N9_) /*<>*/ } /*<>*/ var - /*<>*/ _MC_=Mimic[13], - /*<>*/ _MD_=Git_console_http[5], - /*<>*/ _ME_= - /*<>*/ caml_call1(_MD_,_MC_); + /*<>*/ _N3_=Mimic[13], + /*<>*/ _N4_=Git_console_http[5], + /*<>*/ _N5_= + /*<>*/ caml_call1(_N4_,_N3_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_ME_,_MB_) /*<>*/ } + (Lwt[33][1],_N5_,_N2_) /*<>*/ } /*<>*/ var - /*<>*/ _Mz_=S[26], - /*<>*/ _MA_= - /*<>*/ caml_call2(_Mz_,repo,cst_current); + /*<>*/ _N0_=S[26], + /*<>*/ _N1_= + /*<>*/ caml_call2(_N0_,repo,cst_current); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_MA_,_My_) /*<>*/ } + (Lwt[33][1],_N1_,_NZ_) /*<>*/ } /*<>*/ var - /*<>*/ _Mr_=0, - /*<>*/ _Ms_=0, - /*<>*/ _Mt_=0, - /*<>*/ _Mu_=Config[3], - /*<>*/ _Mv_= - /*<>*/ caml_call4(_Mu_,_Mt_,_Ms_,_Mr_,cst$1), - /*<>*/ _Mw_=S[23][1], - /*<>*/ _Mx_= - /*<>*/ caml_call1(_Mw_,_Mv_); + /*<>*/ _NS_=0, + /*<>*/ _NT_=0, + /*<>*/ _NU_=0, + /*<>*/ _NV_=Config[3], + /*<>*/ _NW_= + /*<>*/ caml_call4(_NV_,_NU_,_NT_,_NS_,cst$1), + /*<>*/ _NX_=S[23][1], + /*<>*/ _NY_= + /*<>*/ caml_call1(_NX_,_NW_); /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_Mx_,_Mq_) /*<>*/ } + (Lwt[33][1],_NY_,_NR_) /*<>*/ } /*<>*/ /*<>*/ var Nav= [0,Config,S,Sync$0,init$0,test_populate,test_pull]; @@ -566194,58 +566204,58 @@ {if(-764299431 === param) /*<>*/ return cst_Insert; if(-323132129 <= param) /*<>*/ return cst_Backspace} else - {var _Mi_=param[1]; - if(852405675 <= _Mi_) - {if(892012143 === _Mi_) - {var _Mj_=param[2]; - if(19067 === _Mj_) /*<>*/ return cst_Page_Up; - if(759637122 === _Mj_) + {var _NJ_=param[1]; + if(852405675 <= _NJ_) + {if(892012143 === _NJ_) + {var _NK_=param[2]; + if(19067 === _NK_) /*<>*/ return cst_Page_Up; + if(759637122 === _NK_) /*<>*/ return cst_Page_Down} else - if(951904681 === _Mi_) - {var _Mk_=param[2]; - if(19068 <= _Mk_) - {if(759637122 === _Mk_) /*<>*/ return cst_Down; - if(847852583 === _Mk_) /*<>*/ return cst_Left} + if(951904681 === _NJ_) + {var _NL_=param[2]; + if(19068 <= _NL_) + {if(759637122 === _NL_) /*<>*/ return cst_Down; + if(847852583 === _NL_) /*<>*/ return cst_Left} else - {if(-57574468 === _Mk_) + {if(-57574468 === _NL_) /*<>*/ return cst_Right; - if(19067 <= _Mk_) /*<>*/ return cst_Up}} + if(19067 <= _NL_) /*<>*/ return cst_Up}} else - if(! (852405676 <= _Mi_)) + if(! (852405676 <= _NJ_)) { /*<>*/ var /*<>*/ ch=param[2], - /*<>*/ _Ml_=Stdlib_Uchar[11]; + /*<>*/ _NM_=Stdlib_Uchar[11]; /*<>*/ if - ( /*<>*/ caml_call1(_Ml_,ch)) + ( /*<>*/ caml_call1(_NM_,ch)) { /*<>*/ var - /*<>*/ _Mm_=Stdlib_Uchar[13], - /*<>*/ _Mn_= - /*<>*/ caml_call1(_Mm_,ch); + /*<>*/ _NN_=Stdlib_Uchar[13], + /*<>*/ _NO_= + /*<>*/ caml_call1(_NN_,ch); /*<>*/ return /*<>*/ caml_call2 - (Fmt[6],_aE_,_Mn_)} + (Fmt[6],_aE_,_NO_)} /*<>*/ var - /*<>*/ _Mo_=Stdlib_Uchar[10], - /*<>*/ _Mp_= - /*<>*/ caml_call1(_Mo_,ch); + /*<>*/ _NP_=Stdlib_Uchar[10], + /*<>*/ _NQ_= + /*<>*/ caml_call1(_NP_,ch); /*<>*/ return /*<>*/ caml_call2 - (Fmt[6],_aF_,_Mp_)}} + (Fmt[6],_aF_,_NQ_)}} else - {if(-301701320 === _Mi_) + {if(-301701320 === _NJ_) { /*<>*/ /*<>*/ var i=param[2]; /*<>*/ return /*<>*/ caml_call2 (Fmt[6],_aG_,i)} - if(785140586 === _Mi_) + if(785140586 === _NJ_) {var s=param[2]; return caml_call2 (Stdlib_String[6],cst_Unknown,[0,cst$2,[0,s,_aH_]])}}} /*<>*/ return cst_Code_Unknown /*<>*/ } /*<>*/ function pp_code(ppf,v) { /*<>*/ /*<>*/ var - _Mh_= + _NI_= /*<>*/ string_of_code(v); /*<>*/ return /*<>*/ caml_call3 - (Fmt[3],ppf,_aI_,_Mh_) /*<>*/ } + (Fmt[3],ppf,_aI_,_NI_) /*<>*/ } /*<>*/ function _aJ_(ppf,param) { /*<>*/ return 748795083 <= param ?858945253 <= param @@ -566261,65 +566271,65 @@ /*<>*/ caml_call2(_aP_,_aO_,_aJ_), /*<>*/ Input=[0,string_of_code,pp_code,pp_mods]; /*<>*/ function evt_of_jskey(evt) - { /*<>*/ function _LO_(x) + { /*<>*/ function _Nd_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,562118618,8), x) /*<>*/ } - /*<>*/ function _LP_(t18,param) + /*<>*/ function _Ne_(t18,param) { /*<>*/ return t18.metaKey} /*<>*/ var - _LQ_=_LP_(evt,_LO_), - /*<>*/ _LR_=_LQ_ | 0?_aQ_:0; - function _LS_(x) + _Nf_=_Ne_(evt,_Nd_), + /*<>*/ _Ng_=_Nf_ | 0?_aQ_:0; + function _Nh_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-511887948,9), x) /*<>*/ } - function _LT_(t17,param){ /*<>*/ return t17.ctrlKey} + function _Ni_(t17,param){ /*<>*/ return t17.ctrlKey} /*<>*/ var - _LU_=_LT_(evt,_LS_), - /*<>*/ _LV_=_LU_ | 0?_aR_:0, - _LW_=Stdlib[37], - /*<>*/ _LX_= - /*<>*/ caml_call2(_LW_,_LV_,_LR_); - /*<>*/ function _LY_(x) + _Nj_=_Ni_(evt,_Nh_), + /*<>*/ _Nk_=_Nj_ | 0?_aR_:0, + _Nl_=Stdlib[37], + /*<>*/ _Nm_= + /*<>*/ caml_call2(_Nl_,_Nk_,_Ng_); + /*<>*/ function _Nn_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,429888061,10), x) /*<>*/ } - /*<>*/ function _LZ_(t16,param) + /*<>*/ function _No_(t16,param) { /*<>*/ return t16.shiftKey} /*<>*/ var - _L0_=_LZ_(evt,_LY_), - /*<>*/ _L1_=_L0_ | 0?_aS_:0, - _L2_=Stdlib[37], - /*<>*/ _L3_= - /*<>*/ caml_call2(_L2_,_L1_,_LX_); - /*<>*/ function _L4_(x) + _Np_=_No_(evt,_Nn_), + /*<>*/ _Nq_=_Np_ | 0?_aS_:0, + _Nr_=Stdlib[37], + /*<>*/ _Ns_= + /*<>*/ caml_call2(_Nr_,_Nq_,_Nm_); + /*<>*/ function _Nt_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method (x,-993351690,11), x) /*<>*/ } - /*<>*/ function _L5_(t15,param) + /*<>*/ function _Nu_(t15,param) { /*<>*/ return t15.altKey} /*<>*/ var - _L6_=_L5_(evt,_L4_), - /*<>*/ _L7_=_L6_ | 0?_aT_:0, - _L8_=Stdlib[37], - /*<>*/ _L9_= - /*<>*/ caml_call2(_L8_,_L7_,_L3_); - /*<>*/ function _L__(x) + _Nv_=_Nu_(evt,_Nt_), + /*<>*/ _Nw_=_Nv_ | 0?_aT_:0, + _Nx_=Stdlib[37], + /*<>*/ _Ny_= + /*<>*/ caml_call2(_Nx_,_Nw_,_Ns_); + /*<>*/ function _Nz_(x) { /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ caml_get_public_method(x,5343647,12), x) /*<>*/ } - /*<>*/ function _L$_(t14,param) + /*<>*/ function _NA_(t14,param) { /*<>*/ return t14.key} /*<>*/ var - _Ma_=_L$_(evt,_L__), - _Mb_=Js_of_ocaml_Js[6][10], + _NB_=_NA_(evt,_Nz_), + _NC_=Js_of_ocaml_Js[6][10], /*<>*/ match= - /*<>*/ caml_call1(_Mb_,_Ma_); + /*<>*/ caml_call1(_NC_,_NB_); /*<>*/ if(match) { /*<>*/ var /*<>*/ s=match[1], @@ -566339,19 +566349,19 @@ if(caml_string_notequal(s$0,cst_Tab$0)) switch$1 = 1; else - var _Mg_=4198965; + var _NH_=4198965; else - var _Mg_=_aU_; + var _NH_=_aU_; else - var _Mg_=_aV_; + var _NH_=_aV_; else - var _Mg_=-764299431; + var _NH_=-764299431; else - var _Mg_=803993151; + var _NH_=803993151; else - var _Mg_=258914209; + var _NH_=258914209; else - var _Mg_=62119160; + var _NH_=62119160; else if(caml_string_notequal(s$0,cst_ArrowDown)) if(caml_string_notequal(s$0,cst_ArrowLeft)) @@ -566362,37 +566372,37 @@ if(caml_string_notequal(s$0,cst_End$0)) switch$1 = 1; else - var _Mg_=3455931; + var _NH_=3455931; else - var _Mg_=527250507; + var _NH_=527250507; else - var _Mg_=-323132129; + var _NH_=-323132129; else - var _Mg_=_aW_; + var _NH_=_aW_; else - var _Mg_=_aX_; + var _NH_=_aX_; else - var _Mg_=_aY_; + var _NH_=_aY_; else - var _Mg_=_aZ_; - /*<>*/ if(switch$1) + var _NH_=_aZ_; + /*<>*/ if(switch$1) { /*<>*/ var - /*<>*/ _Mc_=Js_of_ocaml_Dom_html[27][1], + /*<>*/ _ND_=Js_of_ocaml_Dom_html[27][1], /*<>*/ match$0= - /*<>*/ caml_call1(_Mc_,evt); + /*<>*/ caml_call1(_ND_,evt); /*<>*/ if(match$0) /*<>*/ var /*<>*/ s$1=match$0[1], - _Md_=[0,852405675,s$1]; + _NE_=[0,852405675,s$1]; else - var _Md_=[0,785140586,s$0]; - /*<>*/ var _Me_=_Md_} + var _NE_=[0,785140586,s$0]; + /*<>*/ var _NF_=_NE_} else - var _Me_=_Mg_; - /*<>*/ var _Mf_=_Me_} + var _NF_=_NH_; + /*<>*/ var _NG_=_NF_} else - var _Mf_=_a0_; - return [0,_Mf_,_L9_] /*<>*/ } + var _NG_=_a0_; + return [0,_NG_,_Ny_] /*<>*/ } /*<>*/ var /*<>*/ Event_js=[0,evt_of_jskey], /*<>*/ _a7_=include$0[7], @@ -566533,58 +566543,58 @@ /*<>*/ caml_call3(_bQ_,_cy_,_cx_,_cw_); /*<>*/ function symbol(a,b) { /*<>*/ /*<>*/ var - _LK_= + _M$_= a[1] == b[1]?1:0; - /*<>*/ if(_LK_) + /*<>*/ if(_M$_) { /*<>*/ /*<>*/ var - _LL_= + _Na_= a[2] == b[2]?1:0; - /*<>*/ if(_LL_) + /*<>*/ if(_Na_) /*<>*/ var - /*<>*/ _LM_=a[3] == b[3]?1:0, - /*<>*/ _LN_=_LM_?a[4] == b[4]?1:0:_LM_; + /*<>*/ _Nb_=a[3] == b[3]?1:0, + /*<>*/ _Nc_=_Nb_?a[4] == b[4]?1:0:_Nb_; else - var _LN_=_LL_} + var _Nc_=_Na_} else - var _LN_=_LK_; - /*<>*/ return _LN_ /*<>*/ } + var _Nc_=_M$_; + /*<>*/ return _Nc_ /*<>*/ } /*<>*/ function symbol$0(a,b) { /*<>*/ var - /*<>*/ _Lj_=b[4], - /*<>*/ _Lk_=a[4], - /*<>*/ _Ll_=_Lk_ + _Lj_, - /*<>*/ _Lm_=1., - /*<>*/ _Ln_=0., - /*<>*/ _Lo_=Gg[1][47], - /*<>*/ _Lp_= - /*<>*/ caml_call3(_Lo_,_Ln_,_Lm_,_Ll_), - /*<>*/ _Lq_=b[3], - /*<>*/ _Lr_=a[3], - /*<>*/ _Ls_=_Lr_ + _Lq_, - /*<>*/ _Lt_=1., - /*<>*/ _Lu_=0., - /*<>*/ _Lv_=Gg[1][47], - /*<>*/ _Lw_= - /*<>*/ caml_call3(_Lv_,_Lu_,_Lt_,_Ls_), - /*<>*/ _Lx_=b[2], - /*<>*/ _Ly_=a[2], - /*<>*/ _Lz_=_Ly_ + _Lx_, - /*<>*/ _LA_=1., - /*<>*/ _LB_=0., - /*<>*/ _LC_=Gg[1][47], - /*<>*/ _LD_= - /*<>*/ caml_call3(_LC_,_LB_,_LA_,_Lz_), - /*<>*/ _LE_=b[1], - /*<>*/ _LF_=a[1], - /*<>*/ _LG_=_LF_ + _LE_, - /*<>*/ _LH_=1., - /*<>*/ _LI_=0., - /*<>*/ _LJ_=Gg[1][47]; + /*<>*/ _MK_=b[4], + /*<>*/ _ML_=a[4], + /*<>*/ _MM_=_ML_ + _MK_, + /*<>*/ _MN_=1., + /*<>*/ _MO_=0., + /*<>*/ _MP_=Gg[1][47], + /*<>*/ _MQ_= + /*<>*/ caml_call3(_MP_,_MO_,_MN_,_MM_), + /*<>*/ _MR_=b[3], + /*<>*/ _MS_=a[3], + /*<>*/ _MT_=_MS_ + _MR_, + /*<>*/ _MU_=1., + /*<>*/ _MV_=0., + /*<>*/ _MW_=Gg[1][47], + /*<>*/ _MX_= + /*<>*/ caml_call3(_MW_,_MV_,_MU_,_MT_), + /*<>*/ _MY_=b[2], + /*<>*/ _MZ_=a[2], + /*<>*/ _M0_=_MZ_ + _MY_, + /*<>*/ _M1_=1., + /*<>*/ _M2_=0., + /*<>*/ _M3_=Gg[1][47], + /*<>*/ _M4_= + /*<>*/ caml_call3(_M3_,_M2_,_M1_,_M0_), + /*<>*/ _M5_=b[1], + /*<>*/ _M6_=a[1], + /*<>*/ _M7_=_M6_ + _M5_, + /*<>*/ _M8_=1., + /*<>*/ _M9_=0., + /*<>*/ _M__=Gg[1][47]; /*<>*/ return [254, - /*<>*/ caml_call3(_LJ_,_LI_,_LH_,_LG_), - _LD_, - _Lw_, - _Lp_] /*<>*/ } + /*<>*/ caml_call3(_M__,_M9_,_M8_,_M7_), + _M4_, + _MX_, + _MQ_] /*<>*/ } /*<>*/ function replace(prev,next) { /*<>*/ return /*<>*/ symbol (next,_bP_) @@ -566593,22 +566603,22 @@ /*<>*/ function pp(ppf,t) { /*<>*/ if(t !== _bP_) { /*<>*/ var - /*<>*/ _La_=[0,t[1],[0,t[2],[0,t[3],[0,t[4],0]]]], - /*<>*/ _Lb_= + /*<>*/ _MB_=[0,t[1],[0,t[2],[0,t[3],[0,t[4],0]]]], + /*<>*/ _MC_= function(e) { /*<>*/ return e * 255. | 0 /*<>*/ }, - /*<>*/ _Lc_=Stdlib_List[19], - /*<>*/ _Ld_= - /*<>*/ caml_call2(_Lc_,_Lb_,_La_), - /*<>*/ _Le_=Fmt[21], - /*<>*/ _Lf_= - /*<>*/ caml_call1(_Le_,_cz_), - /*<>*/ _Lg_=0, - /*<>*/ _Lh_=Fmt[64], - /*<>*/ _Li_= - /*<>*/ caml_call2(_Lh_,_Lg_,_Lf_); + /*<>*/ _MD_=Stdlib_List[19], + /*<>*/ _ME_= + /*<>*/ caml_call2(_MD_,_MC_,_MB_), + /*<>*/ _MF_=Fmt[21], + /*<>*/ _MG_= + /*<>*/ caml_call1(_MF_,_cz_), + /*<>*/ _MH_=0, + /*<>*/ _MI_=Fmt[64], + /*<>*/ _MJ_= + /*<>*/ caml_call2(_MI_,_MH_,_MG_); /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_cA_,ppf,_Li_,_Ld_)} + (Fmt[21],_cA_,ppf,_MJ_,_ME_)} /*<>*/ return /*<>*/ caml_call2 (Fmt[21],_cB_,ppf) /*<>*/ } /*<>*/ var @@ -566694,9 +566704,9 @@ Color]; /*<>*/ function btw(x,a,b) { /*<>*/ var - /*<>*/ _K__=a <= x?1:0, - /*<>*/ _K$_=_K__?x <= b?1:0:_K__; - /*<>*/ return _K$_ /*<>*/ } + /*<>*/ _Mz_=a <= x?1:0, + /*<>*/ _MA_=_Mz_?x <= b?1:0:_Mz_; + /*<>*/ return _MA_ /*<>*/ } /*<>*/ var /*<>*/ _cC_=include[1], /*<>*/ _cD_=include[2], @@ -566750,46 +566760,46 @@ /*<>*/ return res /*<>*/ } /*<>*/ function add_decimal(b,x) { /*<>*/ var - /*<>*/ _K1_=999, - /*<>*/ _K2_=0; - /*<>*/ if( /*<>*/ btw(x,_K2_,_K1_)) + /*<>*/ _Mq_=999, + /*<>*/ _Mr_=0; + /*<>*/ if( /*<>*/ btw(x,_Mr_,_Mq_)) { /*<>*/ var /*<>*/ d1=x / 100 | 0, /*<>*/ d2=(x % 100 | 0) / 10 | 0, /*<>*/ d3=x % 10 | 0; /*<>*/ if(0 < d1) { /*<>*/ var - /*<>*/ _K3_=48 + d1 | 0, - /*<>*/ _K4_= + /*<>*/ _Ms_=48 + d1 | 0, + /*<>*/ _Mt_= /*<>*/ caml_call1(_cN_,b); /*<>*/ /*<>*/ caml_call1 - (_K4_,_K3_)} + (_Mt_,_Ms_)} /*<>*/ if(0 < (d1 + d2 | 0)) { /*<>*/ var - /*<>*/ _K5_=48 + d2 | 0, - /*<>*/ _K6_= + /*<>*/ _Mu_=48 + d2 | 0, + /*<>*/ _Mv_= /*<>*/ caml_call1(_cN_,b); /*<>*/ /*<>*/ caml_call1 - (_K6_,_K5_)} - /*<>*/ /*<>*/ var _K7_=48 + d3 | 0; + (_Mv_,_Mu_)} + /*<>*/ /*<>*/ var _Mw_=48 + d3 | 0; /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_cN_,b),_K7_)} + ( /*<>*/ caml_call1(_cN_,b),_Mw_)} /*<>*/ var - /*<>*/ _K8_=Stdlib[33], - /*<>*/ _K9_= - /*<>*/ caml_call1(_K8_,x); + /*<>*/ _Mx_=Stdlib[33], + /*<>*/ _My_= + /*<>*/ caml_call1(_Mx_,x); /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_cR_,b),_K9_) /*<>*/ } + ( /*<>*/ caml_call1(_cR_,b),_My_) /*<>*/ } /*<>*/ function add_chars(b,c,n) - { /*<>*/ /*<>*/ var _KZ_=1; + { /*<>*/ /*<>*/ var _Mo_=1; /*<>*/ if(! (n < 1)) - {var for$0=_KZ_; + {var for$0=_Mo_; /*<>*/ for(;;) { /*<>*/ /*<>*/ caml_call2(_cN_,b,c); /*<>*/ /*<>*/ var - _K0_= + _Mp_= for$0 + 1 | 0; - if(n !== for$0){var for$0=_K0_;continue} + if(n !== for$0){var for$0=_Mp_;continue} break}} return 0 /*<>*/ } /*<>*/ var @@ -566916,9 +566926,9 @@ { /*<>*/ if(cs) {if(cs[2]) { /*<>*/ var - /*<>*/ _KX_=Stdlib_List[1], + /*<>*/ _Mm_=Stdlib_List[1], /*<>*/ n= - /*<>*/ caml_call1(_KX_,cs), + /*<>*/ caml_call1(_Mm_,cs), /*<>*/ go= function(bs,i) { /*<>*/ return function(param) @@ -566928,10 +566938,10 @@ return caml_call1(go(bs,i - 1 | 0),xs)} /*<>*/ return /*<>*/ caml_call1 (Stdlib_Bytes[48],bs) /*<>*/ } /*<>*/ }, - /*<>*/ _KY_=n - 1 | 0; + /*<>*/ _Mn_=n - 1 | 0; /*<>*/ return /*<>*/ caml_call1 ( /*<>*/ go - ( /*<>*/ runtime.caml_create_bytes(n),_KY_), + ( /*<>*/ runtime.caml_create_bytes(n),_Mn_), cs)} /*<>*/ /*<>*/ var c=cs[1]; /*<>*/ return /*<>*/ caml_call2 @@ -567034,9 +567044,9 @@ /*<>*/ add_fallback=include$1[21], /*<>*/ reset_fallback_id=include$1[22], /*<>*/ reset_fallback=include$1[23]; - /*<>*/ function equal$0(param,_KW_) + /*<>*/ function equal$0(param,_Ml_) { /*<>*/ var - /*<>*/ b=_KW_[1], + /*<>*/ b=_Ml_[1], /*<>*/ a=param[1]; /*<>*/ return /*<>*/ caml_call2 (String[8],a,b) /*<>*/ } @@ -567046,22 +567056,22 @@ { /*<>*/ /*<>*/ var s=param[1]; /*<>*/ return s /*<>*/ } /*<>*/ function of_uchars(ucs) - { /*<>*/ function _KS_(buf) + { /*<>*/ function _Mh_(buf) { /*<>*/ var - /*<>*/ _KU_=Buffer[13], - /*<>*/ _KV_= - /*<>*/ caml_call1(_KU_,buf); + /*<>*/ _Mj_=Buffer[13], + /*<>*/ _Mk_= + /*<>*/ caml_call1(_Mj_,buf); /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Array[13],_KV_,ucs) /*<>*/ } - /*<>*/ /*<>*/ var _KT_=Buffer[42]; + (Stdlib_Array[13],_Mk_,ucs) /*<>*/ } + /*<>*/ /*<>*/ var _Mi_=Buffer[42]; /*<>*/ return /*<>*/ of_string$0 - ( /*<>*/ caml_call1(_KT_,_KS_)) /*<>*/ } + ( /*<>*/ caml_call1(_Mi_,_Mh_)) /*<>*/ } /*<>*/ function replicatec(w,c) { /*<>*/ var - /*<>*/ _KQ_=w | 0, - /*<>*/ _KR_=String[1]; + /*<>*/ _Mf_=w | 0, + /*<>*/ _Mg_=String[1]; /*<>*/ return [0, - /*<>*/ caml_call2(_KR_,_KQ_,c)] /*<>*/ } + /*<>*/ caml_call2(_Mg_,_Mf_,c)] /*<>*/ } /*<>*/ function pp$0(ppf,param) { /*<>*/ var s=param[1];return caml_call3(Fmt[21],_df_,ppf,s)} /*<>*/ /*<>*/ var @@ -567099,29 +567109,29 @@ pp$0]; /*<>*/ function pp$1(ppf) { /*<>*/ var - /*<>*/ _KD_=0, - /*<>*/ _KE_=Fmt[53], - /*<>*/ _KF_=0, - /*<>*/ _KG_=Fmt[62], - /*<>*/ _KH_= - /*<>*/ caml_call2(_KG_,_KF_,_KE_); - /*<>*/ function _KI_(a) + /*<>*/ _L4_=0, + /*<>*/ _L5_=Fmt[53], + /*<>*/ _L6_=0, + /*<>*/ _L7_=Fmt[62], + /*<>*/ _L8_= + /*<>*/ caml_call2(_L7_,_L6_,_L5_); + /*<>*/ function _L9_(a) { /*<>*/ return a[1] /*<>*/ } /*<>*/ var - /*<>*/ _KJ_=0, - /*<>*/ _KK_=0, - /*<>*/ _KL_=Fmt[42], - /*<>*/ _KM_= + /*<>*/ _L__=0, + /*<>*/ _L$_=0, + /*<>*/ _Ma_=Fmt[42], + /*<>*/ _Mb_= [0, /*<>*/ caml_call5 - (_KL_,_KK_,_KJ_,cst_size,_KI_,_KH_), - _KD_], - /*<>*/ _KN_=0, - /*<>*/ _KO_=Fmt[43], - /*<>*/ _KP_= - /*<>*/ caml_call2(_KO_,_KN_,_KM_); + (_Ma_,_L$_,_L__,cst_size,_L9_,_L8_), + _L4_], + /*<>*/ _Mc_=0, + /*<>*/ _Md_=Fmt[43], + /*<>*/ _Me_= + /*<>*/ caml_call2(_Md_,_Mc_,_Mb_); /*<>*/ return /*<>*/ caml_call3 - (Fmt[21],_dg_,ppf,_KP_) /*<>*/ } + (Fmt[21],_dg_,ppf,_Me_) /*<>*/ } /*<>*/ /*<>*/ var underline= [0,empty$2[1],empty$2[2],empty$2[3],empty$2[4],698610924]; @@ -567134,98 +567144,98 @@ /*<>*/ function merge$0(a,b) { /*<>*/ var switch$0=0, - /*<>*/ _Kn_=b[5]; - if(698610924 !== a[5] && 698610924 !== _Kn_) - {var _Ko_=870530776;switch$0 = 1} - /*<>*/ if(! switch$0)var _Ko_=698610924; - /*<>*/ var switch$1=0,_Kp_=b[4]; - if(989373200 !== a[4] && 989373200 !== _Kp_) - {var _Kq_=870530776;switch$1 = 1} - if(! switch$1)var _Kq_=989373200; - /*<>*/ var _Kr_=a[3],_Ks_=b[3],switch$2=0; - if(737455525 <= _Kr_) - if(870530776 <= _Kr_) - if(136970422 === _Ks_) + /*<>*/ _LO_=b[5]; + if(698610924 !== a[5] && 698610924 !== _LO_) + {var _LP_=870530776;switch$0 = 1} + /*<>*/ if(! switch$0)var _LP_=698610924; + /*<>*/ var switch$1=0,_LQ_=b[4]; + if(989373200 !== a[4] && 989373200 !== _LQ_) + {var _LR_=870530776;switch$1 = 1} + if(! switch$1)var _LR_=989373200; + /*<>*/ var _LS_=a[3],_LT_=b[3],switch$2=0; + if(737455525 <= _LS_) + if(870530776 <= _LS_) + if(136970422 === _LT_) switch$2 = 3; else - if(870530776 === _Ks_) - {var _Kt_=870530776;switch$2 = 1} + if(870530776 === _LT_) + {var _LU_=870530776;switch$2 = 1} else switch$2 = 2; else switch$2 = 4; else - if(136970422 <= _Kr_) - if(136970422 === _Ks_ || 870530776 === _Ks_) + if(136970422 <= _LS_) + if(136970422 === _LT_ || 870530776 === _LT_) switch$2 = 3; else switch$2 = 2; else - if(-807830980 !== _Ks_ && 136970422 !== _Ks_ && 870530776 !== _Ks_) + if(-807830980 !== _LT_ && 136970422 !== _LT_ && 870530776 !== _LT_) switch$2 = 2; /*<>*/ var switch$3=0; switch(switch$2) - {case 2:switch$3 = 737455525 === _Ks_?1:2;break; + {case 2:switch$3 = 737455525 === _LT_?1:2;break; case 4:switch$3 = 1;break; case 0:switch$3 = 2;break; - case 3:var _Kt_=136970422;break + case 3:var _LU_=136970422;break } switch(switch$3) - {case 1:var _Kt_=737455525;break;case 2:var _Kt_=-807830980;break} - /*<>*/ var _Ku_=a[2],_Kv_=b[2],switch$4=0; - if(870530776 <= _Ku_) - if(925282419 <= _Ku_) + {case 1:var _LU_=737455525;break;case 2:var _LU_=-807830980;break} + /*<>*/ var _LV_=a[2],_LW_=b[2],switch$4=0; + if(870530776 <= _LV_) + if(925282419 <= _LV_) switch$4 = 4; else - if(859441219 === _Kv_) + if(859441219 === _LW_) switch$4 = 3; else - if(870530776 === _Kv_) - {var _Kw_=870530776;switch$4 = 1} + if(870530776 === _LW_) + {var _LX_=870530776;switch$4 = 1} else switch$4 = 2; else - if(859441219 <= _Ku_) - if(859441219 === _Kv_ || 870530776 === _Kv_) + if(859441219 <= _LV_) + if(859441219 === _LW_ || 870530776 === _LW_) switch$4 = 3; else switch$4 = 2; else - if(224104285 !== _Kv_ && 859441219 !== _Kv_ && 870530776 !== _Kv_) + if(224104285 !== _LW_ && 859441219 !== _LW_ && 870530776 !== _LW_) switch$4 = 2; /*<>*/ var switch$5=0; switch(switch$4) - {case 2:switch$5 = 925282419 === _Kv_?1:2;break; + {case 2:switch$5 = 925282419 === _LW_?1:2;break; case 4:switch$5 = 1;break; case 0:switch$5 = 2;break; - case 3:var _Kw_=859441219;break + case 3:var _LX_=859441219;break } switch(switch$5) - {case 1:var _Kw_=925282419;break;case 2:var _Kw_=224104285;break} - /*<>*/ var _Kx_=a[1],_Ky_=b[1],switch$6=0; - if(_Kx_) - {var _Kz_=_Kx_[1]; - if(_Ky_) + {case 1:var _LX_=925282419;break;case 2:var _LX_=224104285;break} + /*<>*/ var _LY_=a[1],_LZ_=b[1],switch$6=0; + if(_LY_) + {var _L0_=_LY_[1]; + if(_LZ_) /*<>*/ var - /*<>*/ s2=_Ky_[1], - /*<>*/ _KA_=Gg[1][25], - /*<>*/ _KB_= - [0, /*<>*/ caml_call2(_KA_,_Kz_,s2)], - _KC_=_KB_; + /*<>*/ s2=_LZ_[1], + /*<>*/ _L1_=Gg[1][25], + /*<>*/ _L2_= + [0, /*<>*/ caml_call2(_L1_,_L0_,s2)], + _L3_=_L2_; else - {var s=_Kz_;switch$6 = 1}} + {var s=_L0_;switch$6 = 1}} else - if(_Ky_){var s=_Ky_[1];switch$6 = 1}else var _KC_=0; - if(switch$6)var _KC_=[0,s]; - return [0,_KC_,_Kw_,_Kt_,_Kq_,_Ko_] /*<>*/ } + if(_LZ_){var s=_LZ_[1];switch$6 = 1}else var _L3_=0; + if(switch$6)var _L3_=[0,s]; + return [0,_L3_,_LX_,_LU_,_LR_,_LP_] /*<>*/ } /*<>*/ function set$0(vg,t) - { /*<>*/ /*<>*/ var _Kl_=t[1]; - /*<>*/ if(_Kl_) + { /*<>*/ /*<>*/ var _LM_=t[1]; + /*<>*/ if(_LM_) { /*<>*/ var - /*<>*/ size=_Kl_[1], - /*<>*/ _Km_=Text[4]; + /*<>*/ size=_LM_[1], + /*<>*/ _LN_=Text[4]; /*<>*/ /*<>*/ caml_call2 - (_Km_,vg,size)} + (_LN_,vg,size)} /*<>*/ return 925282419 === t[2] ? /*<>*/ caml_call2(Text[9],vg,cst_sans) :0 /*<>*/ } @@ -567238,49 +567248,49 @@ /*<>*/ 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(_Kk_,_Kj_) - { /*<>*/ return _Kk_ === _Kj_?1:0} + /*<>*/ function equal$1(_LL_,_LK_) + { /*<>*/ return _LL_ === _LK_?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 - /*<>*/ _J__=a2[3], - /*<>*/ _J$_=a1[3], - /*<>*/ _Ka_=Font[5], - /*<>*/ _Kb_= - /*<>*/ caml_call2(_Ka_,_J$_,_J__), - /*<>*/ _Kc_=a2[2], - /*<>*/ _Kd_=a1[2], - /*<>*/ _Ke_=NVG[40][34], - /*<>*/ _Kf_= - /*<>*/ caml_call2(_Ke_,_Kd_,_Kc_), - /*<>*/ _Kg_=a2[1], - /*<>*/ _Kh_=a1[1], - /*<>*/ _Ki_=NVG[40][34]; + /*<>*/ _Lz_=a2[3], + /*<>*/ _LA_=a1[3], + /*<>*/ _LB_=Font[5], + /*<>*/ _LC_= + /*<>*/ caml_call2(_LB_,_LA_,_Lz_), + /*<>*/ _LD_=a2[2], + /*<>*/ _LE_=a1[2], + /*<>*/ _LF_=NVG[40][34], + /*<>*/ _LG_= + /*<>*/ caml_call2(_LF_,_LE_,_LD_), + /*<>*/ _LH_=a2[1], + /*<>*/ _LI_=a1[1], + /*<>*/ _LJ_=NVG[40][34]; /*<>*/ return [0, - /*<>*/ caml_call2(_Ki_,_Kh_,_Kg_), - _Kf_, - _Kb_] /*<>*/ } + /*<>*/ caml_call2(_LJ_,_LI_,_LH_), + _LG_, + _LC_] /*<>*/ } /*<>*/ function replace$1(prev,next) { /*<>*/ var - /*<>*/ _JZ_=next[3], - /*<>*/ _J0_=prev[3], - /*<>*/ _J1_=Font[7], - /*<>*/ _J2_= - /*<>*/ caml_call2(_J1_,_J0_,_JZ_), - /*<>*/ _J3_=next[2], - /*<>*/ _J4_=prev[2], - /*<>*/ _J5_=NVG[40][35], - /*<>*/ _J6_= - /*<>*/ caml_call2(_J5_,_J4_,_J3_), - /*<>*/ _J7_=next[1], - /*<>*/ _J8_=prev[1], - /*<>*/ _J9_=NVG[40][35]; + /*<>*/ _Lo_=next[3], + /*<>*/ _Lp_=prev[3], + /*<>*/ _Lq_=Font[7], + /*<>*/ _Lr_= + /*<>*/ caml_call2(_Lq_,_Lp_,_Lo_), + /*<>*/ _Ls_=next[2], + /*<>*/ _Lt_=prev[2], + /*<>*/ _Lu_=NVG[40][35], + /*<>*/ _Lv_= + /*<>*/ caml_call2(_Lu_,_Lt_,_Ls_), + /*<>*/ _Lw_=next[1], + /*<>*/ _Lx_=prev[1], + /*<>*/ _Ly_=NVG[40][35]; /*<>*/ return [0, - /*<>*/ caml_call2(_J9_,_J8_,_J7_), - _J6_, - _J2_] /*<>*/ } + /*<>*/ caml_call2(_Ly_,_Lx_,_Lw_), + _Lv_, + _Lr_] /*<>*/ } /*<>*/ function fg(opt,c) { /*<>*/ if(opt) /*<>*/ var /*<>*/ sth=opt[1],t=sth; @@ -567301,36 +567311,36 @@ /*<>*/ return [0,t[1],t[2],c] /*<>*/ } /*<>*/ function merge$1(a,b) { /*<>*/ var - /*<>*/ _JM_=b[3], - /*<>*/ _JN_=a[3], - /*<>*/ _JO_=Font[5], - /*<>*/ _JP_= - /*<>*/ caml_call2(_JO_,_JN_,_JM_), - /*<>*/ _JQ_=0.5, - /*<>*/ _JR_=b[2], - /*<>*/ _JS_=a[2], - /*<>*/ _JT_=NVG[40][6], - /*<>*/ _JU_= - /*<>*/ caml_call3(_JT_,_JS_,_JR_,_JQ_), - /*<>*/ _JV_=0.5, - /*<>*/ _JW_=b[1], - /*<>*/ _JX_=a[1], - /*<>*/ _JY_=NVG[40][6]; + /*<>*/ _Lb_=b[3], + /*<>*/ _Lc_=a[3], + /*<>*/ _Ld_=Font[5], + /*<>*/ _Le_= + /*<>*/ caml_call2(_Ld_,_Lc_,_Lb_), + /*<>*/ _Lf_=0.5, + /*<>*/ _Lg_=b[2], + /*<>*/ _Lh_=a[2], + /*<>*/ _Li_=NVG[40][6], + /*<>*/ _Lj_= + /*<>*/ caml_call3(_Li_,_Lh_,_Lg_,_Lf_), + /*<>*/ _Lk_=0.5, + /*<>*/ _Ll_=b[1], + /*<>*/ _Lm_=a[1], + /*<>*/ _Ln_=NVG[40][6]; /*<>*/ return [0, - /*<>*/ caml_call3(_JY_,_JX_,_JW_,_JV_), - _JU_, - _JP_] /*<>*/ } + /*<>*/ caml_call3(_Ln_,_Lm_,_Ll_,_Lk_), + _Lj_, + _Le_] /*<>*/ } /*<>*/ function set$1(vg,s) - { /*<>*/ /*<>*/ var _JH_=Fmt[5]; - /*<>*/ /*<>*/ caml_call1(_JH_,_di_); + { /*<>*/ /*<>*/ var _K8_=Fmt[5]; + /*<>*/ /*<>*/ caml_call1(_K8_,_di_); /*<>*/ var - /*<>*/ _JI_=s[2], - /*<>*/ _JJ_=NVG[35]; - /*<>*/ /*<>*/ caml_call2(_JJ_,vg,_JI_); + /*<>*/ _K9_=s[2], + /*<>*/ _K__=NVG[35]; + /*<>*/ /*<>*/ caml_call2(_K__,vg,_K9_); /*<>*/ var - /*<>*/ _JK_=s[1], - /*<>*/ _JL_=NVG[37]; - /*<>*/ /*<>*/ caml_call2(_JL_,vg,_JK_); + /*<>*/ _K$_=s[1], + /*<>*/ _La_=NVG[37]; + /*<>*/ /*<>*/ caml_call2(_La_,vg,_K$_); /*<>*/ return /*<>*/ caml_call2 (Font[6],vg,s[3]) /*<>*/ } /*<>*/ var @@ -567396,44 +567406,44 @@ /*<>*/ /*<>*/ var Pad=[0,empty$4,all]; /*<>*/ function p2_max(p1,p2) { /*<>*/ var - /*<>*/ _Jv_=Gg[2][5], - /*<>*/ _Jw_= - /*<>*/ caml_call1(_Jv_,p2), - /*<>*/ _Jx_=Gg[2][5], - /*<>*/ _Jy_= - /*<>*/ caml_call1(_Jx_,p1), - /*<>*/ _Jz_=Gg[1][22], - /*<>*/ _JA_= - /*<>*/ caml_call2(_Jz_,_Jy_,_Jw_), - /*<>*/ _JB_=Gg[2][4], - /*<>*/ _JC_= - /*<>*/ caml_call1(_JB_,p2), - /*<>*/ _JD_=Gg[2][4], - /*<>*/ _JE_= - /*<>*/ caml_call1(_JD_,p1), - /*<>*/ _JF_=Gg[1][22], - /*<>*/ _JG_= - /*<>*/ caml_call2(_JF_,_JE_,_JC_); + /*<>*/ _KW_=Gg[2][5], + /*<>*/ _KX_= + /*<>*/ caml_call1(_KW_,p2), + /*<>*/ _KY_=Gg[2][5], + /*<>*/ _KZ_= + /*<>*/ caml_call1(_KY_,p1), + /*<>*/ _K0_=Gg[1][22], + /*<>*/ _K1_= + /*<>*/ caml_call2(_K0_,_KZ_,_KX_), + /*<>*/ _K2_=Gg[2][4], + /*<>*/ _K3_= + /*<>*/ caml_call1(_K2_,p2), + /*<>*/ _K4_=Gg[2][4], + /*<>*/ _K5_= + /*<>*/ caml_call1(_K4_,p1), + /*<>*/ _K6_=Gg[1][22], + /*<>*/ _K7_= + /*<>*/ caml_call2(_K6_,_K5_,_K3_); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_JG_,_JA_) /*<>*/ } + (Gg[2][2],_K7_,_K1_) /*<>*/ } /*<>*/ function bounds_segment(vg,p,param) { /*<>*/ var s=param[1], - _Jn_=NVG[39][13], + _KO_=NVG[39][13], /*<>*/ match= - /*<>*/ caml_call1(_Jn_,vg), + /*<>*/ caml_call1(_KO_,vg), /*<>*/ ascender=match[1], - /*<>*/ _Jo_=0, - /*<>*/ _Jp_=0, - /*<>*/ _Jq_=Gg[2][5], - /*<>*/ _Jr_= - /*<>*/ caml_call1(_Jq_,p), - /*<>*/ _Js_=_Jr_ + ascender, - /*<>*/ _Jt_=Gg[2][4], - /*<>*/ _Ju_= - /*<>*/ caml_call1(_Jt_,p); + /*<>*/ _KP_=0, + /*<>*/ _KQ_=0, + /*<>*/ _KR_=Gg[2][5], + /*<>*/ _KS_= + /*<>*/ caml_call1(_KR_,p), + /*<>*/ _KT_=_KS_ + ascender, + /*<>*/ _KU_=Gg[2][4], + /*<>*/ _KV_= + /*<>*/ caml_call1(_KU_,p); /*<>*/ return /*<>*/ caml_call6 - (NVG[39][12],vg,_Ju_,_Js_,_Jp_,_Jo_,s)} + (NVG[39][12],vg,_KV_,_KT_,_KQ_,_KP_,s)} /*<>*/ function size$0(vg,p,param) { /*<>*/ var param$0=param; for(;;) @@ -567444,10 +567454,10 @@ {case 0: /*<>*/ var /*<>*/ s=param$0[1], - /*<>*/ _Iw_= + /*<>*/ _JX_= /*<>*/ bounds_segment(vg,p,s), - /*<>*/ advance=_Iw_[2], - /*<>*/ match=_Iw_[1], + /*<>*/ advance=_JX_[2], + /*<>*/ match=_JX_[1], /*<>*/ ymax=match[4], /*<>*/ ymin=match[2]; /*<>*/ return /*<>*/ caml_call2 @@ -567461,35 +567471,35 @@ t1=match$1[1], /*<>*/ p1= /*<>*/ size$0(vg,p,t1), - /*<>*/ _Ix_=0., - /*<>*/ _Iy_=Gg[2][4], - /*<>*/ _Iz_= - /*<>*/ caml_call1(_Iy_,p1), - /*<>*/ _IA_=Gg[2][2], - /*<>*/ _IB_= - /*<>*/ caml_call2(_IA_,_Iz_,_Ix_), - /*<>*/ _IC_=Gg[2][36], - /*<>*/ _ID_= - /*<>*/ caml_call2(_IC_,p,_IB_), + /*<>*/ _JY_=0., + /*<>*/ _JZ_=Gg[2][4], + /*<>*/ _J0_= + /*<>*/ caml_call1(_JZ_,p1), + /*<>*/ _J1_=Gg[2][2], + /*<>*/ _J2_= + /*<>*/ caml_call2(_J1_,_J0_,_JY_), + /*<>*/ _J3_=Gg[2][36], + /*<>*/ _J4_= + /*<>*/ caml_call2(_J3_,p,_J2_), /*<>*/ p2= - /*<>*/ size$0(vg,_ID_,t2), - /*<>*/ _IE_=Gg[2][5], - /*<>*/ _IF_= - /*<>*/ caml_call1(_IE_,p2), - /*<>*/ _IG_=Gg[2][5], - /*<>*/ _IH_= - /*<>*/ caml_call1(_IG_,p1), - /*<>*/ _II_=Gg[1][22], - /*<>*/ _IJ_= - /*<>*/ caml_call2(_II_,_IH_,_IF_), - /*<>*/ _IK_=Gg[2][4], - /*<>*/ _IL_= - /*<>*/ caml_call1(_IK_,p2), - /*<>*/ _IM_=Gg[2][4], - /*<>*/ _IN_= - /*<>*/ caml_call1(_IM_,p1); + /*<>*/ size$0(vg,_J4_,t2), + /*<>*/ _J5_=Gg[2][5], + /*<>*/ _J6_= + /*<>*/ caml_call1(_J5_,p2), + /*<>*/ _J7_=Gg[2][5], + /*<>*/ _J8_= + /*<>*/ caml_call1(_J7_,p1), + /*<>*/ _J9_=Gg[1][22], + /*<>*/ _J__= + /*<>*/ caml_call2(_J9_,_J8_,_J6_), + /*<>*/ _J$_=Gg[2][4], + /*<>*/ _Ka_= + /*<>*/ caml_call1(_J$_,p2), + /*<>*/ _Kb_=Gg[2][4], + /*<>*/ _Kc_= + /*<>*/ caml_call1(_Kb_,p1); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_IN_ + _IL_,_IJ_); + (Gg[2][2],_Kc_ + _Ka_,_J__); case 3: /*<>*/ var match$2=param$0[1], @@ -567497,87 +567507,87 @@ t1$0=match$2[1], /*<>*/ p1$0= /*<>*/ size$0(vg,p,t1$0), - /*<>*/ _IO_=Gg[2][5], - /*<>*/ _IP_= - /*<>*/ caml_call1(_IO_,p1$0), - /*<>*/ _IQ_=0., - /*<>*/ _IR_=Gg[2][2], - /*<>*/ _IS_= - /*<>*/ caml_call2(_IR_,_IQ_,_IP_), - /*<>*/ _IT_=Gg[2][36], - /*<>*/ _IU_= - /*<>*/ caml_call2(_IT_,p,_IS_), + /*<>*/ _Kd_=Gg[2][5], + /*<>*/ _Ke_= + /*<>*/ caml_call1(_Kd_,p1$0), + /*<>*/ _Kf_=0., + /*<>*/ _Kg_=Gg[2][2], + /*<>*/ _Kh_= + /*<>*/ caml_call2(_Kg_,_Kf_,_Ke_), + /*<>*/ _Ki_=Gg[2][36], + /*<>*/ _Kj_= + /*<>*/ caml_call2(_Ki_,p,_Kh_), /*<>*/ p2$0= - /*<>*/ size$0(vg,_IU_,t2$0), - /*<>*/ _IV_=Gg[2][5], - /*<>*/ _IW_= - /*<>*/ caml_call1(_IV_,p2$0), - /*<>*/ _IX_=Gg[2][5], - /*<>*/ _IY_= - /*<>*/ caml_call1(_IX_,p1$0), - /*<>*/ _IZ_=_IY_ + _IW_, - /*<>*/ _I0_=Gg[2][4], - /*<>*/ _I1_= - /*<>*/ caml_call1(_I0_,p2$0), - /*<>*/ _I2_=Gg[2][4], - /*<>*/ _I3_= - /*<>*/ caml_call1(_I2_,p1$0), - /*<>*/ _I4_=Gg[1][22], - /*<>*/ _I5_= - /*<>*/ caml_call2(_I4_,_I3_,_I1_); + /*<>*/ size$0(vg,_Kj_,t2$0), + /*<>*/ _Kk_=Gg[2][5], + /*<>*/ _Kl_= + /*<>*/ caml_call1(_Kk_,p2$0), + /*<>*/ _Km_=Gg[2][5], + /*<>*/ _Kn_= + /*<>*/ caml_call1(_Km_,p1$0), + /*<>*/ _Ko_=_Kn_ + _Kl_, + /*<>*/ _Kp_=Gg[2][4], + /*<>*/ _Kq_= + /*<>*/ caml_call1(_Kp_,p2$0), + /*<>*/ _Kr_=Gg[2][4], + /*<>*/ _Ks_= + /*<>*/ caml_call1(_Kr_,p1$0), + /*<>*/ _Kt_=Gg[1][22], + /*<>*/ _Ku_= + /*<>*/ caml_call2(_Kt_,_Ks_,_Kq_); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_I5_,_IZ_); + (Gg[2][2],_Ku_,_Ko_); case 4: /*<>*/ var match$3=param$0[1], t2$1=match$3[2], t1$1=match$3[1], - /*<>*/ _I6_= + /*<>*/ _Kv_= /*<>*/ size$0(vg,p,t2$1); /*<>*/ return /*<>*/ p2_max - ( /*<>*/ size$0(vg,p,t1$1),_I6_); + ( /*<>*/ size$0(vg,p,t1$1),_Kv_); case 5: /*<>*/ var match$4=param$0[1], right=match$4[3], left=match$4[2], t=match$4[1], - _I7_=0., - _I8_=Gg[2][2], - /*<>*/ _I9_= - /*<>*/ caml_call2(_I8_,right,_I7_), - /*<>*/ _I__=0., - /*<>*/ _I$_=Gg[2][2], - /*<>*/ _Ja_= - /*<>*/ caml_call2(_I$_,left,_I__), - /*<>*/ _Jb_=Gg[2][37], - /*<>*/ _Jc_= - /*<>*/ caml_call2(_Jb_,p,_Ja_), - /*<>*/ _Jd_= - /*<>*/ size$0(vg,_Jc_,t); + _Kw_=0., + _Kx_=Gg[2][2], + /*<>*/ _Ky_= + /*<>*/ caml_call2(_Kx_,right,_Kw_), + /*<>*/ _Kz_=0., + /*<>*/ _KA_=Gg[2][2], + /*<>*/ _KB_= + /*<>*/ caml_call2(_KA_,left,_Kz_), + /*<>*/ _KC_=Gg[2][37], + /*<>*/ _KD_= + /*<>*/ caml_call2(_KC_,p,_KB_), + /*<>*/ _KE_= + /*<>*/ size$0(vg,_KD_,t); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][37],_Jd_,_I9_); + (Gg[2][37],_KE_,_Ky_); case 6: /*<>*/ var match$5=param$0[1], bottom=match$5[3], top=match$5[2], t$0=match$5[1], - _Je_=0., - _Jf_=Gg[2][2], - /*<>*/ _Jg_= - /*<>*/ caml_call2(_Jf_,_Je_,bottom), - /*<>*/ _Jh_=0., - /*<>*/ _Ji_=Gg[2][2], - /*<>*/ _Jj_= - /*<>*/ caml_call2(_Ji_,_Jh_,top), - /*<>*/ _Jk_=Gg[2][37], - /*<>*/ _Jl_= - /*<>*/ caml_call2(_Jk_,p,_Jj_), - /*<>*/ _Jm_= - /*<>*/ size$0(vg,_Jl_,t$0); + _KF_=0., + _KG_=Gg[2][2], + /*<>*/ _KH_= + /*<>*/ caml_call2(_KG_,_KF_,bottom), + /*<>*/ _KI_=0., + /*<>*/ _KJ_=Gg[2][2], + /*<>*/ _KK_= + /*<>*/ caml_call2(_KJ_,_KI_,top), + /*<>*/ _KL_=Gg[2][37], + /*<>*/ _KM_= + /*<>*/ caml_call2(_KL_,p,_KK_), + /*<>*/ _KN_= + /*<>*/ size$0(vg,_KM_,t$0); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][37],_Jm_,_Jg_); + (Gg[2][37],_KN_,_KH_); default: /*<>*/ /*<>*/ var p$0= @@ -567586,14 +567596,14 @@ (Gg[2][36],p,p$0)}} /*<>*/ /*<>*/ var empty$5=0; /*<>*/ function void$0(w,h) - { /*<>*/ /*<>*/ var _Iv_=Gg[5][2]; + { /*<>*/ /*<>*/ var _JW_=Gg[5][2]; /*<>*/ return [7, - /*<>*/ caml_call2(_Iv_,w,h)] /*<>*/ } + /*<>*/ caml_call2(_JW_,w,h)] /*<>*/ } /*<>*/ function attr(a,t) { /*<>*/ if(typeof t !== "number" && 1 === t[0]) - {var match=t[1],a0=match[2],t$0=match[1],_Iu_=Style[7]; + {var match=t[1],a0=match[2],t$0=match[1],_JV_=Style[7]; /*<>*/ return [1, - [0,t$0, /*<>*/ caml_call2(_Iu_,a0,a)]]} + [0,t$0, /*<>*/ caml_call2(_JV_,a0,a)]]} /*<>*/ return [1,[0,t,a]]} /*<>*/ function symbol$2(t1,t2) { /*<>*/ return typeof t2 === "number" @@ -567611,73 +567621,73 @@ { /*<>*/ return [5,[0,img,left,right]] /*<>*/ } /*<>*/ function vcrop(top,bottom,img) { /*<>*/ return [6,[0,img,top,bottom]] /*<>*/ } - /*<>*/ function crop(opt,_It_,_Is_,_Ir_,img) + /*<>*/ function crop(opt,_JU_,_JT_,_JS_,img) { /*<>*/ if(opt) /*<>*/ var /*<>*/ sth=opt[1],l=sth; else var l=0.; - /*<>*/ if(_It_) + /*<>*/ if(_JU_) /*<>*/ var - /*<>*/ sth$0=_It_[1], + /*<>*/ sth$0=_JU_[1], r=sth$0; else var r=0.; - /*<>*/ if(_Is_) + /*<>*/ if(_JT_) /*<>*/ var - /*<>*/ sth$1=_Is_[1], + /*<>*/ sth$1=_JT_[1], t=sth$1; else var t=0.; - /*<>*/ if(_Ir_) + /*<>*/ if(_JS_) /*<>*/ var - /*<>*/ sth$2=_Ir_[1], + /*<>*/ sth$2=_JS_[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) + /*<>*/ 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 _Iq_=- right; + { /*<>*/ /*<>*/ var _JR_=- right; /*<>*/ return /*<>*/ hcrop - (- left,_Iq_,img) /*<>*/ } + (- left,_JR_,img) /*<>*/ } /*<>*/ function vpad(top,bottom,img) - { /*<>*/ /*<>*/ var _Ip_=- bottom; + { /*<>*/ /*<>*/ var _JQ_=- bottom; /*<>*/ return /*<>*/ vcrop - (- top,_Ip_,img) /*<>*/ } - /*<>*/ function pad(opt,_Il_,_Ik_,_Ij_,img) + (- top,_JQ_,img) /*<>*/ } + /*<>*/ function pad(opt,_JM_,_JL_,_JK_,img) { /*<>*/ if(opt) /*<>*/ var /*<>*/ sth=opt[1],l=sth; else var l=0.; - /*<>*/ if(_Il_) + /*<>*/ if(_JM_) /*<>*/ var - /*<>*/ sth$0=_Il_[1], + /*<>*/ sth$0=_JM_[1], r=sth$0; else var r=0.; - /*<>*/ if(_Ik_) + /*<>*/ if(_JL_) /*<>*/ var - /*<>*/ sth$1=_Ik_[1], + /*<>*/ sth$1=_JL_[1], t=sth$1; else var t=0.; - /*<>*/ if(_Ij_) + /*<>*/ if(_JK_) /*<>*/ var - /*<>*/ sth$2=_Ij_[1], + /*<>*/ sth$2=_JK_[1], b=sth$2; else var b=0.; /*<>*/ var - /*<>*/ _Im_=[0,- b], - /*<>*/ _In_=[0,- t], - /*<>*/ _Io_=[0,- r]; + /*<>*/ _JN_=[0,- b], + /*<>*/ _JO_=[0,- t], + /*<>*/ _JP_=[0,- r]; /*<>*/ return /*<>*/ crop - ([0,- l],_Io_,_In_,_Im_,img) /*<>*/ } + ([0,- l],_JP_,_JO_,_JN_,img) /*<>*/ } /*<>*/ function concatm(z,symbol,xs) { /*<>*/ var xs$0=xs; /*<>*/ for(;;) @@ -567685,17 +567695,17 @@ accum= function(symbol,xs) { /*<>*/ if(xs) - {var _Ih_=xs[2]; - if(_Ih_) + {var _JI_=xs[2]; + if(_JI_) { /*<>*/ var - xs$0=_Ih_[2], - b=_Ih_[1], + xs$0=_JI_[2], + b=_JI_[1], a=xs[1], - /*<>*/ _Ii_= + /*<>*/ _JJ_= /*<>*/ accum(symbol,xs$0); /*<>*/ return [0, /*<>*/ caml_call2(symbol,a,b), - _Ii_]}} + _JJ_]}} /*<>*/ return xs}; /*<>*/ if(xs$0) {if(xs$0[2]) @@ -567707,10 +567717,10 @@ /*<>*/ /*<>*/ var x=xs$0[1]; /*<>*/ return x} /*<>*/ return z} /*<>*/ } - /*<>*/ function hcat(_Ig_) - { /*<>*/ return concatm(empty$5,symbol$2,_Ig_)} - /*<>*/ function vcat(_If_) - { /*<>*/ return concatm(empty$5,symbol$3,_If_)} + /*<>*/ function hcat(_JH_) + { /*<>*/ return concatm(empty$5,symbol$2,_JH_)} + /*<>*/ function vcat(_JG_) + { /*<>*/ return concatm(empty$5,symbol$3,_JG_)} /*<>*/ function zcat(xs) { /*<>*/ return /*<>*/ caml_call3 (Stdlib_List[26],symbol$4,xs,empty$5) /*<>*/ } @@ -567720,39 +567730,39 @@ /*<>*/ return [1,[0,[0,tx],a]]} /*<>*/ return [0,tx] /*<>*/ } /*<>*/ function string(attr,s) - { /*<>*/ /*<>*/ var _Ie_=Text[26]; + { /*<>*/ /*<>*/ var _JF_=Text[26]; /*<>*/ return /*<>*/ text$0 - (attr, /*<>*/ caml_call1(_Ie_,s)) /*<>*/ } + (attr, /*<>*/ caml_call1(_JF_,s)) /*<>*/ } /*<>*/ function uchars(attr,a) - { /*<>*/ /*<>*/ var _Id_=Text[28]; + { /*<>*/ /*<>*/ var _JE_=Text[28]; /*<>*/ return /*<>*/ text$0 - (attr, /*<>*/ caml_call1(_Id_,a)) /*<>*/ } + (attr, /*<>*/ caml_call1(_JE_,a)) /*<>*/ } /*<>*/ function linspcm(z,symbol,x,n,f) { /*<>*/ if(n != 0.) {if(n != 1.) { /*<>*/ var /*<>*/ m=n / 2., - /*<>*/ _Ia_=n - m, - /*<>*/ _Ib_=x + m, - /*<>*/ _Ic_= - /*<>*/ linspcm(z,symbol,_Ib_,_Ia_,f); + /*<>*/ _JB_=n - m, + /*<>*/ _JC_=x + m, + /*<>*/ _JD_= + /*<>*/ linspcm(z,symbol,_JC_,_JB_,f); /*<>*/ return /*<>*/ caml_call2 (symbol, /*<>*/ linspcm(z,symbol,x,m,f), - _Ic_)} + _JD_)} /*<>*/ return /*<>*/ caml_call1 (f,x)} /*<>*/ return z /*<>*/ } /*<>*/ function tabulate(m,n,f) { /*<>*/ var - /*<>*/ _H8_=0., - /*<>*/ _H9_=Stdlib[17], + /*<>*/ _Jx_=0., + /*<>*/ _Jy_=Stdlib[17], /*<>*/ m$0= - /*<>*/ caml_call2(_H9_,m,_H8_), - /*<>*/ _H__=0., - /*<>*/ _H$_=Stdlib[17], + /*<>*/ caml_call2(_Jy_,m,_Jx_), + /*<>*/ _Jz_=0., + /*<>*/ _JA_=Stdlib[17], /*<>*/ n$0= - /*<>*/ caml_call2(_H$_,n,_H__); + /*<>*/ caml_call2(_JA_,n,_Jz_); /*<>*/ return /*<>*/ linspcm (empty$5, symbol$3, @@ -567769,73 +567779,73 @@ (f,x,y) /*<>*/ }) /*<>*/ }) /*<>*/ } /*<>*/ function chars(ctor,attr,c,w,h) { /*<>*/ var - /*<>*/ _H2_=0., - /*<>*/ _H3_=Stdlib[17], + /*<>*/ _Jr_=0., + /*<>*/ _Js_=Stdlib[17], /*<>*/ w$0= - /*<>*/ caml_call2(_H3_,_H2_,w), - /*<>*/ _H4_=0., - /*<>*/ _H5_=Stdlib[17], + /*<>*/ caml_call2(_Js_,_Jr_,w), + /*<>*/ _Jt_=0., + /*<>*/ _Ju_=Stdlib[17], /*<>*/ h$0= - /*<>*/ caml_call2(_H5_,_H4_,h); + /*<>*/ caml_call2(_Ju_,_Jt_,h); if(! (w$0 < 1.) && ! (h$0 < 1.)) { /*<>*/ var - /*<>*/ _H6_= + /*<>*/ _Jv_= /*<>*/ caml_call2(ctor,w$0,c), /*<>*/ line= - /*<>*/ text$0(attr,_H6_); + /*<>*/ text$0(attr,_Jv_); /*<>*/ return /*<>*/ tabulate (1., h$0, - function(param,_H7_) + function(param,_Jw_) { /*<>*/ return line /*<>*/ })} /*<>*/ return /*<>*/ void$0(w$0,h$0) /*<>*/ } /*<>*/ /*<>*/ var _dL_=Text[29]; - /*<>*/ function char$0(_HY_,_HZ_,_H0_,_H1_) - { /*<>*/ return chars(_dL_,_HY_,_HZ_,_H0_,_H1_)} + /*<>*/ function char$0(_Jn_,_Jo_,_Jp_,_Jq_) + { /*<>*/ return chars(_dL_,_Jn_,_Jo_,_Jp_,_Jq_)} /*<>*/ function str_of_box(b) { /*<>*/ var - /*<>*/ _HQ_=Gg[15][20], - /*<>*/ _HR_= - /*<>*/ caml_call1(_HQ_,b), - /*<>*/ _HS_=Gg[15][19], - /*<>*/ _HT_= - /*<>*/ caml_call1(_HS_,b), - /*<>*/ _HU_=Gg[15][7], - /*<>*/ _HV_= - /*<>*/ caml_call1(_HU_,b), - /*<>*/ _HW_=Gg[15][6], - /*<>*/ _HX_= - /*<>*/ caml_call1(_HW_,b); + /*<>*/ _Jf_=Gg[15][20], + /*<>*/ _Jg_= + /*<>*/ caml_call1(_Jf_,b), + /*<>*/ _Jh_=Gg[15][19], + /*<>*/ _Ji_= + /*<>*/ caml_call1(_Jh_,b), + /*<>*/ _Jj_=Gg[15][7], + /*<>*/ _Jk_= + /*<>*/ caml_call1(_Jj_,b), + /*<>*/ _Jl_=Gg[15][6], + /*<>*/ _Jm_= + /*<>*/ caml_call1(_Jl_,b); /*<>*/ return /*<>*/ caml_call5 - (Stdlib_Printf[4],_dM_,_HX_,_HV_,_HT_,_HR_) /*<>*/ } + (Stdlib_Printf[4],_dM_,_Jm_,_Jk_,_Ji_,_Jg_) /*<>*/ } /*<>*/ function fill_box(vg,color,b) - { /*<>*/ /*<>*/ var _HC_=NVG[15]; - /*<>*/ /*<>*/ caml_call1(_HC_,vg); - /*<>*/ /*<>*/ var _HD_=NVG[32][1]; - /*<>*/ /*<>*/ caml_call1(_HD_,vg); + { /*<>*/ /*<>*/ var _I3_=NVG[15]; + /*<>*/ /*<>*/ caml_call1(_I3_,vg); + /*<>*/ /*<>*/ var _I4_=NVG[32][1]; + /*<>*/ /*<>*/ caml_call1(_I4_,vg); /*<>*/ var - /*<>*/ _HE_=Gg[15][10], - /*<>*/ _HF_= - /*<>*/ caml_call1(_HE_,b), - /*<>*/ _HG_=Gg[15][9], - /*<>*/ _HH_= - /*<>*/ caml_call1(_HG_,b), - /*<>*/ _HI_=Gg[15][7], - /*<>*/ _HJ_= - /*<>*/ caml_call1(_HI_,b), - /*<>*/ _HK_=Gg[15][6], - /*<>*/ _HL_= - /*<>*/ caml_call1(_HK_,b), - /*<>*/ _HM_=NVG[32][7]; + /*<>*/ _I5_=Gg[15][10], + /*<>*/ _I6_= + /*<>*/ caml_call1(_I5_,b), + /*<>*/ _I7_=Gg[15][9], + /*<>*/ _I8_= + /*<>*/ caml_call1(_I7_,b), + /*<>*/ _I9_=Gg[15][7], + /*<>*/ _I__= + /*<>*/ caml_call1(_I9_,b), + /*<>*/ _I$_=Gg[15][6], + /*<>*/ _Ja_= + /*<>*/ caml_call1(_I$_,b), + /*<>*/ _Jb_=NVG[32][7]; /*<>*/ /*<>*/ caml_call5 - (_HM_,vg,_HL_,_HJ_,_HH_,_HF_); - /*<>*/ /*<>*/ var _HN_=NVG[35]; + (_Jb_,vg,_Ja_,_I__,_I8_,_I6_); + /*<>*/ /*<>*/ var _Jc_=NVG[35]; /*<>*/ /*<>*/ caml_call2 - (_HN_,vg,color); - /*<>*/ /*<>*/ var _HO_=NVG[30]; - /*<>*/ /*<>*/ caml_call1(_HO_,vg); - /*<>*/ /*<>*/ var _HP_=NVG[16]; - /*<>*/ /*<>*/ caml_call1(_HP_,vg); + (_Jc_,vg,color); + /*<>*/ /*<>*/ var _Jd_=NVG[30]; + /*<>*/ /*<>*/ caml_call1(_Jd_,vg); + /*<>*/ /*<>*/ var _Je_=NVG[16]; + /*<>*/ /*<>*/ caml_call1(_Je_,vg); /*<>*/ return /*<>*/ caml_call1 (Gg[15][8],b) /*<>*/ } /*<>*/ function path_box(vg,color,opt,b) @@ -567845,96 +567855,96 @@ width=sth; else var width=0.; - /*<>*/ /*<>*/ var _Hp_=NVG[32][1]; - /*<>*/ /*<>*/ caml_call1(_Hp_,vg); + /*<>*/ /*<>*/ var _IQ_=NVG[32][1]; + /*<>*/ /*<>*/ caml_call1(_IQ_,vg); /*<>*/ var - /*<>*/ _Hq_=Gg[15][10], - /*<>*/ _Hr_= - /*<>*/ caml_call1(_Hq_,b), - /*<>*/ _Hs_=Gg[15][9], - /*<>*/ _Ht_= - /*<>*/ caml_call1(_Hs_,b), - /*<>*/ _Hu_=Gg[15][7], - /*<>*/ _Hv_= - /*<>*/ caml_call1(_Hu_,b), - /*<>*/ _Hw_=Gg[15][6], - /*<>*/ _Hx_= - /*<>*/ caml_call1(_Hw_,b), - /*<>*/ _Hy_=NVG[32][7]; + /*<>*/ _IR_=Gg[15][10], + /*<>*/ _IS_= + /*<>*/ caml_call1(_IR_,b), + /*<>*/ _IT_=Gg[15][9], + /*<>*/ _IU_= + /*<>*/ caml_call1(_IT_,b), + /*<>*/ _IV_=Gg[15][7], + /*<>*/ _IW_= + /*<>*/ caml_call1(_IV_,b), + /*<>*/ _IX_=Gg[15][6], + /*<>*/ _IY_= + /*<>*/ caml_call1(_IX_,b), + /*<>*/ _IZ_=NVG[32][7]; /*<>*/ /*<>*/ caml_call5 - (_Hy_,vg,_Hx_,_Hv_,_Ht_,_Hr_); + (_IZ_,vg,_IY_,_IW_,_IU_,_IS_); /*<>*/ if(0. !== width) - { /*<>*/ /*<>*/ var _Hz_=NVG[21]; + { /*<>*/ /*<>*/ var _I0_=NVG[21]; /*<>*/ /*<>*/ caml_call2 - (_Hz_,vg,width)} - /*<>*/ /*<>*/ var _HA_=NVG[37]; + (_I0_,vg,width)} + /*<>*/ /*<>*/ var _I1_=NVG[37]; /*<>*/ /*<>*/ caml_call2 - (_HA_,vg,color); - /*<>*/ /*<>*/ var _HB_=NVG[31]; - /*<>*/ /*<>*/ caml_call1(_HB_,vg); + (_I1_,vg,color); + /*<>*/ /*<>*/ var _I2_=NVG[31]; + /*<>*/ /*<>*/ caml_call1(_I2_,vg); /*<>*/ return /*<>*/ caml_call1 (Gg[15][8],b) /*<>*/ } /*<>*/ function vcat$0(d,a,b) { /*<>*/ if(89 === d) { /*<>*/ var - /*<>*/ _GU_=Gg[2][5], - /*<>*/ _GV_= - /*<>*/ caml_call1(_GU_,b), - /*<>*/ _GW_=Gg[2][5], - /*<>*/ _GX_= - /*<>*/ caml_call1(_GW_,a), - /*<>*/ _GY_=_GX_ + _GV_, - /*<>*/ _GZ_=Gg[2][4], - /*<>*/ _G0_= - /*<>*/ caml_call1(_GZ_,b), - /*<>*/ _G1_=Gg[2][4], - /*<>*/ _G2_= - /*<>*/ caml_call1(_G1_,a), - /*<>*/ _G3_=Gg[1][25], - /*<>*/ _G4_= - /*<>*/ caml_call2(_G3_,_G2_,_G0_); + /*<>*/ _Ij_=Gg[2][5], + /*<>*/ _Ik_= + /*<>*/ caml_call1(_Ij_,b), + /*<>*/ _Il_=Gg[2][5], + /*<>*/ _Im_= + /*<>*/ caml_call1(_Il_,a), + /*<>*/ _In_=_Im_ + _Ik_, + /*<>*/ _Io_=Gg[2][4], + /*<>*/ _Ip_= + /*<>*/ caml_call1(_Io_,b), + /*<>*/ _Iq_=Gg[2][4], + /*<>*/ _Ir_= + /*<>*/ caml_call1(_Iq_,a), + /*<>*/ _Is_=Gg[1][25], + /*<>*/ _It_= + /*<>*/ caml_call2(_Is_,_Ir_,_Ip_); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_G4_,_GY_)} + (Gg[2][2],_It_,_In_)} if(90 <= d) { /*<>*/ var - /*<>*/ _G5_=Gg[2][5], - /*<>*/ _G6_= - /*<>*/ caml_call1(_G5_,b), - /*<>*/ _G7_=Gg[2][5], - /*<>*/ _G8_= - /*<>*/ caml_call1(_G7_,a), - /*<>*/ _G9_=Gg[1][25], - /*<>*/ _G__= - /*<>*/ caml_call2(_G9_,_G8_,_G6_), - /*<>*/ _G$_=Gg[2][4], - /*<>*/ _Ha_= - /*<>*/ caml_call1(_G$_,b), - /*<>*/ _Hb_=Gg[2][4], - /*<>*/ _Hc_= - /*<>*/ caml_call1(_Hb_,a), - /*<>*/ _Hd_=Gg[1][25], - /*<>*/ _He_= - /*<>*/ caml_call2(_Hd_,_Hc_,_Ha_); + /*<>*/ _Iu_=Gg[2][5], + /*<>*/ _Iv_= + /*<>*/ caml_call1(_Iu_,b), + /*<>*/ _Iw_=Gg[2][5], + /*<>*/ _Ix_= + /*<>*/ caml_call1(_Iw_,a), + /*<>*/ _Iy_=Gg[1][25], + /*<>*/ _Iz_= + /*<>*/ caml_call2(_Iy_,_Ix_,_Iv_), + /*<>*/ _IA_=Gg[2][4], + /*<>*/ _IB_= + /*<>*/ caml_call1(_IA_,b), + /*<>*/ _IC_=Gg[2][4], + /*<>*/ _ID_= + /*<>*/ caml_call1(_IC_,a), + /*<>*/ _IE_=Gg[1][25], + /*<>*/ _IF_= + /*<>*/ caml_call2(_IE_,_ID_,_IB_); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_He_,_G__)} + (Gg[2][2],_IF_,_Iz_)} /*<>*/ var - /*<>*/ _Hf_=Gg[2][5], - /*<>*/ _Hg_= - /*<>*/ caml_call1(_Hf_,b), - /*<>*/ _Hh_=Gg[2][5], - /*<>*/ _Hi_= - /*<>*/ caml_call1(_Hh_,a), - /*<>*/ _Hj_=Gg[1][25], - /*<>*/ _Hk_= - /*<>*/ caml_call2(_Hj_,_Hi_,_Hg_), - /*<>*/ _Hl_=Gg[2][4], - /*<>*/ _Hm_= - /*<>*/ caml_call1(_Hl_,b), - /*<>*/ _Hn_=Gg[2][4], - /*<>*/ _Ho_= - /*<>*/ caml_call1(_Hn_,a); + /*<>*/ _IG_=Gg[2][5], + /*<>*/ _IH_= + /*<>*/ caml_call1(_IG_,b), + /*<>*/ _II_=Gg[2][5], + /*<>*/ _IJ_= + /*<>*/ caml_call1(_II_,a), + /*<>*/ _IK_=Gg[1][25], + /*<>*/ _IL_= + /*<>*/ caml_call2(_IK_,_IJ_,_IH_), + /*<>*/ _IM_=Gg[2][4], + /*<>*/ _IN_= + /*<>*/ caml_call1(_IM_,b), + /*<>*/ _IO_=Gg[2][4], + /*<>*/ _IP_= + /*<>*/ caml_call1(_IO_,a); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][2],_Ho_ + _Hm_,_Hk_) /*<>*/ } + (Gg[2][2],_IP_ + _IN_,_IL_) /*<>*/ } /*<>*/ function pp$3(opt,ppf) { /*<>*/ if(opt) /*<>*/ var @@ -567942,24 +567952,24 @@ attr=sth; else var attr=Style[4]; - /*<>*/ /*<>*/ var _Gp_=[0,attr]; - /*<>*/ function _Gq_(_GT_) - { /*<>*/ return pp$3(_Gp_,_GT_)} + /*<>*/ /*<>*/ var _HQ_=[0,attr]; + /*<>*/ function _HR_(_Ii_) + { /*<>*/ return pp$3(_HQ_,_Ii_)} /*<>*/ var - /*<>*/ _Gr_=Fmt[37], - /*<>*/ _Gs_= - /*<>*/ caml_call1(_Gr_,_Gq_), - /*<>*/ _Gt_=[0,attr]; - /*<>*/ function _Gu_(_GS_) - { /*<>*/ return pp$3(_Gt_,_GS_)} + /*<>*/ _HS_=Fmt[37], + /*<>*/ _HT_= + /*<>*/ caml_call1(_HS_,_HR_), + /*<>*/ _HU_=[0,attr]; + /*<>*/ function _HV_(_Ih_) + { /*<>*/ return pp$3(_HU_,_Ih_)} /*<>*/ var - /*<>*/ _Gv_=Fmt[37], - /*<>*/ _Gw_= - /*<>*/ caml_call1(_Gv_,_Gu_), - /*<>*/ _Gx_=0, - /*<>*/ _Gy_=Fmt[61], + /*<>*/ _HW_=Fmt[37], + /*<>*/ _HX_= + /*<>*/ caml_call1(_HW_,_HV_), + /*<>*/ _HY_=0, + /*<>*/ _HZ_=Fmt[61], /*<>*/ compose= - /*<>*/ caml_call3(_Gy_,_Gx_,_Gw_,_Gs_); + /*<>*/ caml_call3(_HZ_,_HY_,_HX_,_HT_); /*<>*/ return function(param) { /*<>*/ if(typeof param === "number") /*<>*/ return /*<>*/ caml_call2 @@ -567977,21 +567987,21 @@ match=param[1], a=match[2], t=match[1], - _Gz_=Style[7], - /*<>*/ _GA_= - [0, /*<>*/ caml_call2(_Gz_,attr,a),t], - /*<>*/ _GB_=Style[7], - /*<>*/ _GC_= - [0, /*<>*/ caml_call2(_GB_,attr,a)], - /*<>*/ _GD_= - function(_GR_){ /*<>*/ return pp$3(_GC_,_GR_)}, - /*<>*/ _GE_=Style[2], - /*<>*/ _GF_=[0,Fmt[25]], - /*<>*/ _GG_=Fmt[61], - /*<>*/ _GH_= - /*<>*/ caml_call3(_GG_,_GF_,_GE_,_GD_); + _H0_=Style[7], + /*<>*/ _H1_= + [0, /*<>*/ caml_call2(_H0_,attr,a),t], + /*<>*/ _H2_=Style[7], + /*<>*/ _H3_= + [0, /*<>*/ caml_call2(_H2_,attr,a)], + /*<>*/ _H4_= + function(_Ig_){ /*<>*/ return pp$3(_H3_,_Ig_)}, + /*<>*/ _H5_=Style[2], + /*<>*/ _H6_=[0,Fmt[25]], + /*<>*/ _H7_=Fmt[61], + /*<>*/ _H8_= + /*<>*/ caml_call3(_H7_,_H6_,_H5_,_H4_); /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_dP_,ppf,_GH_,_GA_); + (Fmt[21],_dP_,ppf,_H8_,_H1_); case 2: /*<>*/ /*<>*/ var a$0= @@ -568016,67 +568026,67 @@ right=match$0[3], left=match$0[2], t$0=match$0[1], - _GI_=[0,attr], - /*<>*/ _GJ_= - function(_GQ_){ /*<>*/ return pp$3(_GI_,_GQ_)}; + _H9_=[0,attr], + /*<>*/ _H__= + function(_If_){ /*<>*/ return pp$3(_H9_,_If_)}; /*<>*/ return /*<>*/ caml_call6 - (Fmt[21],_dT_,ppf,left,right,_GJ_,t$0); + (Fmt[21],_dT_,ppf,left,right,_H__,t$0); case 6: /*<>*/ var match$1=param[1], bottom=match$1[3], top=match$1[2], t$1=match$1[1], - _GK_=[0,attr], - /*<>*/ _GL_= - function(_GP_){ /*<>*/ return pp$3(_GK_,_GP_)}; + _H$_=[0,attr], + /*<>*/ _Ia_= + function(_Ie_){ /*<>*/ return pp$3(_H$_,_Ie_)}; /*<>*/ return /*<>*/ caml_call6 - (Fmt[21],_dU_,ppf,top,bottom,_GL_,t$1); + (Fmt[21],_dU_,ppf,top,bottom,_Ia_,t$1); default: /*<>*/ var /*<>*/ dim=param[1], - /*<>*/ _GM_=Gg[2][52], - /*<>*/ _GN_=Fmt[37], - /*<>*/ _GO_= - /*<>*/ caml_call1(_GN_,_GM_); + /*<>*/ _Ib_=Gg[2][52], + /*<>*/ _Ic_=Fmt[37], + /*<>*/ _Id_= + /*<>*/ caml_call1(_Ic_,_Ib_); /*<>*/ return /*<>*/ caml_call4 - (Fmt[21],_dV_,ppf,_GO_,dim)} /*<>*/ } /*<>*/ } + (Fmt[21],_dV_,ppf,_Id_,dim)} /*<>*/ } /*<>*/ } /*<>*/ /*<>*/ var segment_kern_cache= [0,[0,Gg[15][11],cst$4]]; /*<>*/ function segment(vg,p,param) { /*<>*/ var s=param[1], - _F$_=NVG[39][13], + _HA_=NVG[39][13], /*<>*/ metrics= - /*<>*/ caml_call1(_F$_,vg), - /*<>*/ _Ga_=0, - /*<>*/ _Gb_=0, - /*<>*/ _Gc_=metrics[1], - /*<>*/ _Gd_=Gg[2][5], - /*<>*/ _Ge_= - /*<>*/ caml_call1(_Gd_,p), - /*<>*/ _Gf_=_Ge_ + _Gc_, - /*<>*/ _Gg_=Gg[2][4], - /*<>*/ _Gh_= - /*<>*/ caml_call1(_Gg_,p), - /*<>*/ _Gi_=NVG[39][1]; + /*<>*/ caml_call1(_HA_,vg), + /*<>*/ _HB_=0, + /*<>*/ _HC_=0, + /*<>*/ _HD_=metrics[1], + /*<>*/ _HE_=Gg[2][5], + /*<>*/ _HF_= + /*<>*/ caml_call1(_HE_,p), + /*<>*/ _HG_=_HF_ + _HD_, + /*<>*/ _HH_=Gg[2][4], + /*<>*/ _HI_= + /*<>*/ caml_call1(_HH_,p), + /*<>*/ _HJ_=NVG[39][1]; /*<>*/ /*<>*/ caml_call6 - (_Gi_,vg,_Gh_,_Gf_,_Gb_,_Ga_,s); + (_HJ_,vg,_HI_,_HG_,_HC_,_HB_,s); /*<>*/ var - /*<>*/ _Gj_=metrics[3], - /*<>*/ _Gk_=Text[26], - /*<>*/ _Gl_= - /*<>*/ caml_call1(_Gk_,s), - /*<>*/ _Gm_= - /*<>*/ bounds_segment(vg,p,_Gl_)[2], - /*<>*/ _Gn_=Gg[2][2], + /*<>*/ _HK_=metrics[3], + /*<>*/ _HL_=Text[26], + /*<>*/ _HM_= + /*<>*/ caml_call1(_HL_,s), + /*<>*/ _HN_= + /*<>*/ bounds_segment(vg,p,_HM_)[2], + /*<>*/ _HO_=Gg[2][2], /*<>*/ sz= - /*<>*/ caml_call2(_Gn_,_Gm_,_Gj_), - /*<>*/ _Go_=Gg[15][2]; + /*<>*/ caml_call2(_HO_,_HN_,_HK_), + /*<>*/ _HP_=Gg[15][2]; /*<>*/ segment_kern_cache[1] = - [0, /*<>*/ caml_call2(_Go_,p,sz),s]; + [0, /*<>*/ caml_call2(_HP_,p,sz),s]; /*<>*/ return sz} /*<>*/ function node(vg,attr,p,n) { /*<>*/ var switch$0=0; @@ -568094,32 +568104,32 @@ match=n[1], a=match[2], i=match[1], - _EI_=Style[7], + _F9_=Style[7], /*<>*/ a0= - /*<>*/ caml_call2(_EI_,attr,a), - /*<>*/ _EJ_=a[2] !== attr[2]?1:0, - /*<>*/ _EK_=_EJ_?a0[2] !== NVG[40][5]?1:0:_EJ_; - /*<>*/ if(_EK_) + /*<>*/ caml_call2(_F9_,attr,a), + /*<>*/ _F__=a[2] !== attr[2]?1:0, + /*<>*/ _F$_=_F__?a0[2] !== NVG[40][5]?1:0:_F__; + /*<>*/ if(_F$_) { /*<>*/ var - /*<>*/ _EL_= + /*<>*/ _Ga_= /*<>*/ size$0(vg,p,i), - /*<>*/ _EM_=Gg[15][2], - /*<>*/ _EN_= - /*<>*/ caml_call2(_EM_,p,_EL_), - /*<>*/ _EO_=a0[2]; + /*<>*/ _Gb_=Gg[15][2], + /*<>*/ _Gc_= + /*<>*/ caml_call2(_Gb_,p,_Ga_), + /*<>*/ _Gd_=a0[2]; /*<>*/ /*<>*/ fill_box - (vg,_EO_,_EN_)} + (vg,_Gd_,_Gc_)} /*<>*/ if(attr[1] !== a[1]) { /*<>*/ var - /*<>*/ _EP_=a0[1], - /*<>*/ _EQ_=NVG[35]; + /*<>*/ _Ge_=a0[1], + /*<>*/ _Gf_=NVG[35]; /*<>*/ /*<>*/ caml_call2 - (_EQ_,vg,_EP_); + (_Gf_,vg,_Ge_); /*<>*/ var - /*<>*/ _ER_=a0[1], - /*<>*/ _ES_=NVG[37]; + /*<>*/ _Gg_=a0[1], + /*<>*/ _Gh_=NVG[37]; /*<>*/ /*<>*/ caml_call2 - (_ES_,vg,_ER_)} + (_Gh_,vg,_Gg_)} /*<>*/ var b= /*<>*/ node(vg,a0,p,i); @@ -568131,36 +568141,36 @@ i1=match$0[1], /*<>*/ p1= /*<>*/ node(vg,attr,p,i1), - /*<>*/ _ET_=0., - /*<>*/ _EU_=Gg[2][4], - /*<>*/ _EV_= - /*<>*/ caml_call1(_EU_,p1), - /*<>*/ _EW_=Gg[2][2], - /*<>*/ _EX_= - /*<>*/ caml_call2(_EW_,_EV_,_ET_), - /*<>*/ _EY_=Gg[2][36], - /*<>*/ _EZ_= - /*<>*/ caml_call2(_EY_,p,_EX_), + /*<>*/ _Gi_=0., + /*<>*/ _Gj_=Gg[2][4], + /*<>*/ _Gk_= + /*<>*/ caml_call1(_Gj_,p1), + /*<>*/ _Gl_=Gg[2][2], + /*<>*/ _Gm_= + /*<>*/ caml_call2(_Gl_,_Gk_,_Gi_), + /*<>*/ _Gn_=Gg[2][36], + /*<>*/ _Go_= + /*<>*/ caml_call2(_Gn_,p,_Gm_), /*<>*/ p2= - /*<>*/ node(vg,attr,_EZ_,i2), - /*<>*/ _E0_=Gg[2][5], - /*<>*/ _E1_= - /*<>*/ caml_call1(_E0_,p2), - /*<>*/ _E2_=Gg[2][5], - /*<>*/ _E3_= - /*<>*/ caml_call1(_E2_,p1), - /*<>*/ _E4_=Gg[1][22], - /*<>*/ _E5_= - /*<>*/ caml_call2(_E4_,_E3_,_E1_), - /*<>*/ _E6_=Gg[2][4], - /*<>*/ _E7_= - /*<>*/ caml_call1(_E6_,p2), - /*<>*/ _E8_=Gg[2][4], - /*<>*/ _E9_= - /*<>*/ caml_call1(_E8_,p1), - /*<>*/ _E__=_E9_ + _E7_, - /*<>*/ _E$_=Gg[2][2], - b= /*<>*/ caml_call2(_E$_,_E__,_E5_); + /*<>*/ node(vg,attr,_Go_,i2), + /*<>*/ _Gp_=Gg[2][5], + /*<>*/ _Gq_= + /*<>*/ caml_call1(_Gp_,p2), + /*<>*/ _Gr_=Gg[2][5], + /*<>*/ _Gs_= + /*<>*/ caml_call1(_Gr_,p1), + /*<>*/ _Gt_=Gg[1][22], + /*<>*/ _Gu_= + /*<>*/ caml_call2(_Gt_,_Gs_,_Gq_), + /*<>*/ _Gv_=Gg[2][4], + /*<>*/ _Gw_= + /*<>*/ caml_call1(_Gv_,p2), + /*<>*/ _Gx_=Gg[2][4], + /*<>*/ _Gy_= + /*<>*/ caml_call1(_Gx_,p1), + /*<>*/ _Gz_=_Gy_ + _Gw_, + /*<>*/ _GA_=Gg[2][2], + b= /*<>*/ caml_call2(_GA_,_Gz_,_Gu_); break; case 3: /*<>*/ var @@ -568169,36 +568179,36 @@ i1$0=match$1[1], /*<>*/ p1$0= /*<>*/ node(vg,attr,p,i1$0), - /*<>*/ _Fa_=Gg[2][5], - /*<>*/ _Fb_= - /*<>*/ caml_call1(_Fa_,p1$0), - /*<>*/ _Fc_=0., - /*<>*/ _Fd_=Gg[2][2], - /*<>*/ _Fe_= - /*<>*/ caml_call2(_Fd_,_Fc_,_Fb_), - /*<>*/ _Ff_=Gg[2][36], - /*<>*/ _Fg_= - /*<>*/ caml_call2(_Ff_,p,_Fe_), + /*<>*/ _GB_=Gg[2][5], + /*<>*/ _GC_= + /*<>*/ caml_call1(_GB_,p1$0), + /*<>*/ _GD_=0., + /*<>*/ _GE_=Gg[2][2], + /*<>*/ _GF_= + /*<>*/ caml_call2(_GE_,_GD_,_GC_), + /*<>*/ _GG_=Gg[2][36], + /*<>*/ _GH_= + /*<>*/ caml_call2(_GG_,p,_GF_), /*<>*/ p2$0= - /*<>*/ node(vg,attr,_Fg_,i2$0), - /*<>*/ _Fh_=Gg[2][5], - /*<>*/ _Fi_= - /*<>*/ caml_call1(_Fh_,p2$0), - /*<>*/ _Fj_=Gg[2][5], - /*<>*/ _Fk_= - /*<>*/ caml_call1(_Fj_,p1$0), - /*<>*/ _Fl_=_Fk_ + _Fi_, - /*<>*/ _Fm_=Gg[2][4], - /*<>*/ _Fn_= - /*<>*/ caml_call1(_Fm_,p2$0), - /*<>*/ _Fo_=Gg[2][4], - /*<>*/ _Fp_= - /*<>*/ caml_call1(_Fo_,p1$0), - /*<>*/ _Fq_=Gg[1][22], - /*<>*/ _Fr_= - /*<>*/ caml_call2(_Fq_,_Fp_,_Fn_), - /*<>*/ _Fs_=Gg[2][2], - b= /*<>*/ caml_call2(_Fs_,_Fr_,_Fl_); + /*<>*/ node(vg,attr,_GH_,i2$0), + /*<>*/ _GI_=Gg[2][5], + /*<>*/ _GJ_= + /*<>*/ caml_call1(_GI_,p2$0), + /*<>*/ _GK_=Gg[2][5], + /*<>*/ _GL_= + /*<>*/ caml_call1(_GK_,p1$0), + /*<>*/ _GM_=_GL_ + _GJ_, + /*<>*/ _GN_=Gg[2][4], + /*<>*/ _GO_= + /*<>*/ caml_call1(_GN_,p2$0), + /*<>*/ _GP_=Gg[2][4], + /*<>*/ _GQ_= + /*<>*/ caml_call1(_GP_,p1$0), + /*<>*/ _GR_=Gg[1][22], + /*<>*/ _GS_= + /*<>*/ caml_call2(_GR_,_GQ_,_GO_), + /*<>*/ _GT_=Gg[2][2], + b= /*<>*/ caml_call2(_GT_,_GS_,_GM_); break; case 4: /*<>*/ var @@ -568219,47 +568229,47 @@ i$0=match$3[1], /*<>*/ p0= /*<>*/ size$0(vg,p,i$0), - /*<>*/ _Ft_=NVG[15]; + /*<>*/ _GU_=NVG[15]; /*<>*/ /*<>*/ caml_call1 - (_Ft_,vg); + (_GU_,vg); /*<>*/ var - /*<>*/ _Fu_=Gg[2][5], - /*<>*/ _Fv_= - /*<>*/ caml_call1(_Fu_,p0), - /*<>*/ _Fw_=Gg[2][4], - /*<>*/ _Fx_= - /*<>*/ caml_call1(_Fw_,p0), - /*<>*/ _Fy_=_Fx_ - right, - /*<>*/ _Fz_=Gg[2][5], - /*<>*/ _FA_= - /*<>*/ caml_call1(_Fz_,p), - /*<>*/ _FB_=Gg[2][4], - /*<>*/ _FC_= - /*<>*/ caml_call1(_FB_,p), - /*<>*/ _FD_=NVG[28][1]; + /*<>*/ _GV_=Gg[2][5], + /*<>*/ _GW_= + /*<>*/ caml_call1(_GV_,p0), + /*<>*/ _GX_=Gg[2][4], + /*<>*/ _GY_= + /*<>*/ caml_call1(_GX_,p0), + /*<>*/ _GZ_=_GY_ - right, + /*<>*/ _G0_=Gg[2][5], + /*<>*/ _G1_= + /*<>*/ caml_call1(_G0_,p), + /*<>*/ _G2_=Gg[2][4], + /*<>*/ _G3_= + /*<>*/ caml_call1(_G2_,p), + /*<>*/ _G4_=NVG[28][1]; /*<>*/ /*<>*/ caml_call5 - (_FD_,vg,_FC_,_FA_,_Fy_,_Fv_); + (_G4_,vg,_G3_,_G1_,_GZ_,_GW_); /*<>*/ var - /*<>*/ _FE_=0., - /*<>*/ _FF_=Gg[2][2], - /*<>*/ _FG_= - /*<>*/ caml_call2(_FF_,left,_FE_), - /*<>*/ _FH_=Gg[2][37], - /*<>*/ _FI_= - /*<>*/ caml_call2(_FH_,p,_FG_), + /*<>*/ _G5_=0., + /*<>*/ _G6_=Gg[2][2], + /*<>*/ _G7_= + /*<>*/ caml_call2(_G6_,left,_G5_), + /*<>*/ _G8_=Gg[2][37], + /*<>*/ _G9_= + /*<>*/ caml_call2(_G8_,p,_G7_), /*<>*/ p1$2= - /*<>*/ node(vg,attr,_FI_,i$0), - /*<>*/ _FJ_=NVG[16]; + /*<>*/ node(vg,attr,_G9_,i$0), + /*<>*/ _G__=NVG[16]; /*<>*/ /*<>*/ caml_call1 - (_FJ_,vg); + (_G__,vg); /*<>*/ var - /*<>*/ _FK_=0., - /*<>*/ _FL_=left + right, - /*<>*/ _FM_=Gg[2][2], - /*<>*/ _FN_= - /*<>*/ caml_call2(_FM_,_FL_,_FK_), - /*<>*/ _FO_=Gg[2][37], - b= /*<>*/ caml_call2(_FO_,p1$2,_FN_); + /*<>*/ _G$_=0., + /*<>*/ _Ha_=left + right, + /*<>*/ _Hb_=Gg[2][2], + /*<>*/ _Hc_= + /*<>*/ caml_call2(_Hb_,_Ha_,_G$_), + /*<>*/ _Hd_=Gg[2][37], + b= /*<>*/ caml_call2(_Hd_,p1$2,_Hc_); break; case 6: /*<>*/ var @@ -568269,50 +568279,50 @@ i$1=match$4[1], /*<>*/ p0$0= /*<>*/ size$0(vg,p,i$1), - /*<>*/ _FP_=NVG[15]; + /*<>*/ _He_=NVG[15]; /*<>*/ /*<>*/ caml_call1 - (_FP_,vg); + (_He_,vg); /*<>*/ var - /*<>*/ _FQ_=Gg[2][5], - /*<>*/ _FR_= - /*<>*/ caml_call1(_FQ_,p0$0), - /*<>*/ _FS_=_FR_ - bottom, - /*<>*/ _FT_=Gg[2][4], - /*<>*/ _FU_= - /*<>*/ caml_call1(_FT_,p0$0), - /*<>*/ _FV_=Gg[2][5], - /*<>*/ _FW_= - /*<>*/ caml_call1(_FV_,p), - /*<>*/ _FX_=Gg[2][4], - /*<>*/ _FY_= - /*<>*/ caml_call1(_FX_,p), - /*<>*/ _FZ_=NVG[28][1]; + /*<>*/ _Hf_=Gg[2][5], + /*<>*/ _Hg_= + /*<>*/ caml_call1(_Hf_,p0$0), + /*<>*/ _Hh_=_Hg_ - bottom, + /*<>*/ _Hi_=Gg[2][4], + /*<>*/ _Hj_= + /*<>*/ caml_call1(_Hi_,p0$0), + /*<>*/ _Hk_=Gg[2][5], + /*<>*/ _Hl_= + /*<>*/ caml_call1(_Hk_,p), + /*<>*/ _Hm_=Gg[2][4], + /*<>*/ _Hn_= + /*<>*/ caml_call1(_Hm_,p), + /*<>*/ _Ho_=NVG[28][1]; /*<>*/ /*<>*/ caml_call5 - (_FZ_,vg,_FY_,_FW_,_FU_,_FS_); + (_Ho_,vg,_Hn_,_Hl_,_Hj_,_Hh_); /*<>*/ var - /*<>*/ _F0_=0., - /*<>*/ _F1_=Gg[2][2], - /*<>*/ _F2_= - /*<>*/ caml_call2(_F1_,_F0_,top), - /*<>*/ _F3_=Gg[2][37], - /*<>*/ _F4_= - /*<>*/ caml_call2(_F3_,p,_F2_), + /*<>*/ _Hp_=0., + /*<>*/ _Hq_=Gg[2][2], + /*<>*/ _Hr_= + /*<>*/ caml_call2(_Hq_,_Hp_,top), + /*<>*/ _Hs_=Gg[2][37], + /*<>*/ _Ht_= + /*<>*/ caml_call2(_Hs_,p,_Hr_), /*<>*/ p1$3= - /*<>*/ node(vg,attr,_F4_,i$1), - /*<>*/ _F5_=NVG[16]; + /*<>*/ node(vg,attr,_Ht_,i$1), + /*<>*/ _Hu_=NVG[16]; /*<>*/ /*<>*/ caml_call1 - (_F5_,vg); + (_Hu_,vg); /*<>*/ var - /*<>*/ _F6_=top + bottom, - /*<>*/ _F7_=0., - /*<>*/ _F8_=Gg[2][2], - /*<>*/ _F9_= - /*<>*/ caml_call2(_F8_,_F7_,_F6_), - /*<>*/ _F__=Gg[2][37], - b= /*<>*/ caml_call2(_F__,p1$3,_F9_); + /*<>*/ _Hv_=top + bottom, + /*<>*/ _Hw_=0., + /*<>*/ _Hx_=Gg[2][2], + /*<>*/ _Hy_= + /*<>*/ caml_call2(_Hx_,_Hw_,_Hv_), + /*<>*/ _Hz_=Gg[2][37], + b= /*<>*/ caml_call2(_Hz_,p1$3,_Hy_); break; default:switch$0 = 1} - /*<>*/ if(switch$0)var b=p; + /*<>*/ if(switch$0)var b=p; /*<>*/ return b /*<>*/ } /*<>*/ var /*<>*/ Draw= @@ -568360,20 +568370,20 @@ { /*<>*/ return x < y?x:y /*<>*/ } /*<>*/ function make$0(param) { /*<>*/ var - /*<>*/ _EC_=0, - /*<>*/ _ED_=Lwd[10], + /*<>*/ _F3_=0, + /*<>*/ _F4_=Lwd[10], /*<>*/ v= - /*<>*/ caml_call1(_ED_,_EC_); - /*<>*/ function _EE_(i) + /*<>*/ caml_call1(_F4_,_F3_); + /*<>*/ function _F5_(i) { /*<>*/ return [0,i,v] /*<>*/ } /*<>*/ var - /*<>*/ _EF_=Lwd[11], - /*<>*/ _EG_= - /*<>*/ caml_call1(_EF_,v), - /*<>*/ _EH_=Lwd[3]; + /*<>*/ _F6_=Lwd[11], + /*<>*/ _F7_= + /*<>*/ caml_call1(_F6_,v), + /*<>*/ _F8_=Lwd[3]; /*<>*/ return [0, v, - /*<>*/ caml_call2(_EH_,_EG_,_EE_)] /*<>*/ } + /*<>*/ caml_call2(_F8_,_F7_,_F5_)] /*<>*/ } /*<>*/ /*<>*/ var empty$6=0; /*<>*/ function var$0(h) { /*<>*/ return h[1] /*<>*/ } @@ -568387,39 +568397,39 @@ /*<>*/ /*<>*/ var clock=[0,0]; /*<>*/ function request_var(v) { /*<>*/ clock[1]++; - /*<>*/ function _Ex_(m) + /*<>*/ function _FY_(m) { /*<>*/ var - /*<>*/ _EA_=clock[1], - /*<>*/ _EB_=Lwd[13]; + /*<>*/ _F1_=clock[1], + /*<>*/ _F2_=Lwd[13]; /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_dW_, /*<>*/ caml_call1(_EB_,v),_EA_) /*<>*/ } + (m,0,0,_dW_, /*<>*/ caml_call1(_F2_,v),_F1_) /*<>*/ } /*<>*/ var - /*<>*/ _Ey_=0, - /*<>*/ _Ez_=Logs[14]; + /*<>*/ _FZ_=0, + /*<>*/ _F0_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_Ez_,_Ey_,_Ex_); + (_F0_,_FZ_,_FY_); /*<>*/ 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]; - function _Es_(m) + function _FT_(m) { /*<>*/ var - /*<>*/ _Ev_=clock[1], - /*<>*/ _Ew_=Lwd[13]; + /*<>*/ _FW_=clock[1], + /*<>*/ _FX_=Lwd[13]; /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_dX_, /*<>*/ caml_call1(_Ew_,v),_Ev_) /*<>*/ } - var _Et_=0,_Eu_=Logs[14]; + (m,0,0,_dX_, /*<>*/ caml_call1(_FX_,v),_FW_) /*<>*/ } + var _FU_=0,_FV_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_Eu_,_Et_,_Es_); + (_FV_,_FU_,_FT_); /*<>*/ 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; @@ -568429,15 +568439,15 @@ {var switch$2=0; if(typeof s1 !== "number" && 0 !== s1[0]){var i1=s1[1];switch$2 = 1} if(! switch$2) - {var _Er_=s1[1],switch$3=0; + {var _FS_=s1[1],switch$3=0; if(typeof s2 !== "number" && 0 !== s2[0])switch$3 = 1; if(! switch$3) { /*<>*/ /*<>*/ var i2= s2[1]; - /*<>*/ if(_Er_ === i2) + /*<>*/ if(_FS_ === i2) /*<>*/ return s1} - var i1=_Er_} + var i1=_FS_} var switch$4=0; if(typeof s2 !== "number" && 0 !== s2[0]) { /*<>*/ /*<>*/ var @@ -568457,11 +568467,11 @@ /*<>*/ return x /*<>*/ } /*<>*/ function pp_var(ppf,v) { /*<>*/ var - /*<>*/ _Ep_=Lwd[13], - /*<>*/ _Eq_= - /*<>*/ caml_call1(_Ep_,v); + /*<>*/ _FQ_=Lwd[13], + /*<>*/ _FR_= + /*<>*/ caml_call1(_FQ_,v); /*<>*/ return /*<>*/ caml_call3 - (Fmt[3],ppf,_dY_,_Eq_) /*<>*/ } + (Fmt[3],ppf,_dY_,_FR_) /*<>*/ } /*<>*/ function pp_status(ppf,param) { /*<>*/ if(typeof param === "number") /*<>*/ return /*<>*/ caml_call2 @@ -568503,16 +568513,16 @@ (Stdlib_Format[13],ppf,text) /*<>*/ } /*<>*/ function pp$4(ppf,g) { /*<>*/ var - /*<>*/ _En_= /*<>*/ v$0(g), - /*<>*/ _Eo_= /*<>*/ h(g); + /*<>*/ _FO_= /*<>*/ v$0(g), + /*<>*/ _FP_= /*<>*/ h(g); /*<>*/ return /*<>*/ caml_call6 (Stdlib_Format[129], ppf, _d2_, pp_direction, - _Eo_, + _FP_, pp_direction, - _En_) /*<>*/ } + _FO_) /*<>*/ } /*<>*/ function pair(t1,t2) { /*<>*/ return [0,t1,t2] /*<>*/ } /*<>*/ function p1(param) @@ -568528,8 +568538,8 @@ { /*<>*/ var y=param[2], x=param[1], - /*<>*/ _Em_=y + d; - /*<>*/ return [0,x + d,_Em_]} + /*<>*/ _FN_=y + d; + /*<>*/ return [0,x + d,_FN_]} /*<>*/ function fst(param) { /*<>*/ var x=param[1];return x} /*<>*/ function size$1(param) @@ -568562,13 +568572,13 @@ if(397856696 === v[1]) { /*<>*/ var /*<>*/ v$0=v[2], - /*<>*/ _El_= + /*<>*/ _FM_= 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,_d__,_El_)} + return caml_call3(Fmt[3],ppf,_d__,_FM_)} /*<>*/ return /*<>*/ caml_call4 (Fmt[3],ppf,_d9_,Input[2],v) /*<>*/ } /*<>*/ var @@ -568612,9 +568622,9 @@ 0, cache] /*<>*/ } /*<>*/ function space(x,y) - { /*<>*/ /*<>*/ var _Ek_=I[5]; + { /*<>*/ /*<>*/ var _FL_=I[5]; /*<>*/ return /*<>*/ atom - ( /*<>*/ caml_call2(_Ek_,x,y)) /*<>*/ } + ( /*<>*/ caml_call2(_FL_,x,y)) /*<>*/ } /*<>*/ function mouse_area(f,t) { /*<>*/ return [0, t[1], @@ -568630,9 +568640,9 @@ { /*<>*/ if(focus) /*<>*/ var /*<>*/ focus$0=focus[1], - /*<>*/ _Ei_=t[6], - /*<>*/ _Ej_=Focus[9], - focus$1= /*<>*/ caml_call2(_Ej_,focus$0,_Ei_); + /*<>*/ _FJ_=t[6], + /*<>*/ _FK_=Focus[9], + focus$1= /*<>*/ caml_call2(_FK_,focus$0,_FJ_); else var focus$1=t[6]; /*<>*/ return [0, @@ -568690,41 +568700,41 @@ t[8], t[9]] /*<>*/ } /*<>*/ function prepare_gravity(param) - { /*<>*/ /*<>*/ var _Ee_=param[1]; - /*<>*/ if(_Ee_) - {var _Ef_=param[2],_Eg_=_Ee_[1]; - if(_Ef_) + { /*<>*/ /*<>*/ var _FF_=param[1]; + /*<>*/ if(_FF_) + {var _FG_=param[2],_FH_=_FF_[1]; + if(_FG_) { /*<>*/ /*<>*/ var crop= - _Ef_[1]; + _FG_[1]; /*<>*/ return /*<>*/ caml_call2 - (Gravity[7],_Eg_,crop)} - var g=_Eg_} + (Gravity[7],_FH_,crop)} + var g=_FH_} else - {var _Eh_=param[2]; - if(! _Eh_) + {var _FI_=param[2]; + if(! _FI_) /*<>*/ return /*<>*/ caml_call2 (Gravity[7],Gravity[4],Gravity[4]); - var g=_Eh_[1]} + var g=_FI_[1]} /*<>*/ return /*<>*/ caml_call2 (Gravity[7],g,g) /*<>*/ } /*<>*/ function resize(w,h,sw,sh,pad,crop,opt,t) { /*<>*/ var - /*<>*/ _D8_=[0,pad,crop], + /*<>*/ _Fx_=[0,pad,crop], /*<>*/ g= - /*<>*/ prepare_gravity(_D8_), - /*<>*/ _D9_=t[1], - /*<>*/ _D__=t[2], - /*<>*/ _D$_=t[3], - /*<>*/ _Ea_=t[4], - /*<>*/ _Eb_=w?w[1]:_D9_, - _Ec_=h?h[1]:_D__, - _Ed_=sw?sw[1]:_D$_, - sh$0=sh?sh[1]:_Ea_; + /*<>*/ prepare_gravity(_Fx_), + /*<>*/ _Fy_=t[1], + /*<>*/ _Fz_=t[2], + /*<>*/ _FA_=t[3], + /*<>*/ _FB_=t[4], + /*<>*/ _FC_=w?w[1]:_Fy_, + _FD_=h?h[1]:_Fz_, + _FE_=sw?sw[1]:_FA_, + sh$0=sh?sh[1]:_FB_; /*<>*/ return [0, - _Eb_, - _Ec_, - _Ed_, + _FC_, + _FD_, + _FE_, sh$0, [4,t,w,h,g], t[6], @@ -568733,9 +568743,9 @@ t[9]]} /*<>*/ function resize_to(l,pad,crop,opt,t) { /*<>*/ var - /*<>*/ _D7_=[0,pad,crop], + /*<>*/ _Fw_=[0,pad,crop], /*<>*/ g= - /*<>*/ prepare_gravity(_D7_); + /*<>*/ prepare_gravity(_Fw_); /*<>*/ return [0, t[1], t[2], @@ -568765,114 +568775,114 @@ t[9]] /*<>*/ } /*<>*/ function join_x(a,b) { /*<>*/ var - /*<>*/ _DM_=init$2[9], - /*<>*/ _DN_=init$2[8], - /*<>*/ _DO_=a[7] | b[7], - /*<>*/ _DP_=b[6], - /*<>*/ _DQ_=a[6], - /*<>*/ _DR_=Focus[9], - /*<>*/ _DS_= - /*<>*/ caml_call2(_DR_,_DQ_,_DP_), - /*<>*/ _DT_=[9,a,b], - /*<>*/ _DU_=b[4], - /*<>*/ _DV_=a[4], - /*<>*/ _DW_=Stdlib[17], - /*<>*/ _DX_= - /*<>*/ caml_call2(_DW_,_DV_,_DU_), - /*<>*/ _DY_=b[3], - /*<>*/ _DZ_=a[3], - /*<>*/ _D0_=_DZ_ + _DY_, - /*<>*/ _D1_=b[2], - /*<>*/ _D2_=a[2], - /*<>*/ _D3_=Stdlib[17], - /*<>*/ _D4_= - /*<>*/ caml_call2(_D3_,_D2_,_D1_), - /*<>*/ _D5_=b[1], - /*<>*/ _D6_=a[1]; + /*<>*/ _Fb_=init$2[9], + /*<>*/ _Fc_=init$2[8], + /*<>*/ _Fd_=a[7] | b[7], + /*<>*/ _Fe_=b[6], + /*<>*/ _Ff_=a[6], + /*<>*/ _Fg_=Focus[9], + /*<>*/ _Fh_= + /*<>*/ caml_call2(_Fg_,_Ff_,_Fe_), + /*<>*/ _Fi_=[9,a,b], + /*<>*/ _Fj_=b[4], + /*<>*/ _Fk_=a[4], + /*<>*/ _Fl_=Stdlib[17], + /*<>*/ _Fm_= + /*<>*/ caml_call2(_Fl_,_Fk_,_Fj_), + /*<>*/ _Fn_=b[3], + /*<>*/ _Fo_=a[3], + /*<>*/ _Fp_=_Fo_ + _Fn_, + /*<>*/ _Fq_=b[2], + /*<>*/ _Fr_=a[2], + /*<>*/ _Fs_=Stdlib[17], + /*<>*/ _Ft_= + /*<>*/ caml_call2(_Fs_,_Fr_,_Fq_), + /*<>*/ _Fu_=b[1], + /*<>*/ _Fv_=a[1]; /*<>*/ return [0, - _D6_ + _D5_, - _D4_, - _D0_, - _DX_, - _DT_, - _DS_, - _DO_, - _DN_, - _DM_] /*<>*/ } + _Fv_ + _Fu_, + _Ft_, + _Fp_, + _Fm_, + _Fi_, + _Fh_, + _Fd_, + _Fc_, + _Fb_] /*<>*/ } /*<>*/ function join_y(a,b) { /*<>*/ var - /*<>*/ _Dr_=init$2[9], - /*<>*/ _Ds_=init$2[8], - /*<>*/ _Dt_=a[7] | b[7], - /*<>*/ _Du_=b[6], - /*<>*/ _Dv_=a[6], - /*<>*/ _Dw_=Focus[9], - /*<>*/ _Dx_= - /*<>*/ caml_call2(_Dw_,_Dv_,_Du_), - /*<>*/ _Dy_=[10,a,b], - /*<>*/ _Dz_=b[4], - /*<>*/ _DA_=a[4], - /*<>*/ _DB_=_DA_ + _Dz_, - /*<>*/ _DC_=b[3], - /*<>*/ _DD_=a[3], - /*<>*/ _DE_=Stdlib[17], - /*<>*/ _DF_= - /*<>*/ caml_call2(_DE_,_DD_,_DC_), - /*<>*/ _DG_=b[2], - /*<>*/ _DH_=a[2], - /*<>*/ _DI_=_DH_ + _DG_, - /*<>*/ _DJ_=b[1], - /*<>*/ _DK_=a[1], - /*<>*/ _DL_=Stdlib[17]; + /*<>*/ _ES_=init$2[9], + /*<>*/ _ET_=init$2[8], + /*<>*/ _EU_=a[7] | b[7], + /*<>*/ _EV_=b[6], + /*<>*/ _EW_=a[6], + /*<>*/ _EX_=Focus[9], + /*<>*/ _EY_= + /*<>*/ caml_call2(_EX_,_EW_,_EV_), + /*<>*/ _EZ_=[10,a,b], + /*<>*/ _E0_=b[4], + /*<>*/ _E1_=a[4], + /*<>*/ _E2_=_E1_ + _E0_, + /*<>*/ _E3_=b[3], + /*<>*/ _E4_=a[3], + /*<>*/ _E5_=Stdlib[17], + /*<>*/ _E6_= + /*<>*/ caml_call2(_E5_,_E4_,_E3_), + /*<>*/ _E7_=b[2], + /*<>*/ _E8_=a[2], + /*<>*/ _E9_=_E8_ + _E7_, + /*<>*/ _E__=b[1], + /*<>*/ _E$_=a[1], + /*<>*/ _Fa_=Stdlib[17]; /*<>*/ return [0, - /*<>*/ caml_call2(_DL_,_DK_,_DJ_), - _DI_, - _DF_, - _DB_, - _Dy_, - _Dx_, - _Dt_, - _Ds_, - _Dr_] /*<>*/ } + /*<>*/ caml_call2(_Fa_,_E$_,_E__), + _E9_, + _E6_, + _E2_, + _EZ_, + _EY_, + _EU_, + _ET_, + _ES_] /*<>*/ } /*<>*/ function join_z(a,b) { /*<>*/ var - /*<>*/ _C6_=init$2[9], - /*<>*/ _C7_=init$2[8], - /*<>*/ _C8_=a[7] | b[7], - /*<>*/ _C9_=b[6], - /*<>*/ _C__=a[6], - /*<>*/ _C$_=Focus[9], - /*<>*/ _Da_= - /*<>*/ caml_call2(_C$_,_C__,_C9_), - /*<>*/ _Db_=[11,a,b], - /*<>*/ _Dc_=b[4], - /*<>*/ _Dd_=a[4], - /*<>*/ _De_=Stdlib[17], - /*<>*/ _Df_= - /*<>*/ caml_call2(_De_,_Dd_,_Dc_), - /*<>*/ _Dg_=b[3], - /*<>*/ _Dh_=a[3], - /*<>*/ _Di_=Stdlib[17], - /*<>*/ _Dj_= - /*<>*/ caml_call2(_Di_,_Dh_,_Dg_), - /*<>*/ _Dk_=b[2], - /*<>*/ _Dl_=a[2], - /*<>*/ _Dm_=Stdlib[17], - /*<>*/ _Dn_= - /*<>*/ caml_call2(_Dm_,_Dl_,_Dk_), - /*<>*/ _Do_=b[1], - /*<>*/ _Dp_=a[1], - /*<>*/ _Dq_=Stdlib[17]; + /*<>*/ _Ev_=init$2[9], + /*<>*/ _Ew_=init$2[8], + /*<>*/ _Ex_=a[7] | b[7], + /*<>*/ _Ey_=b[6], + /*<>*/ _Ez_=a[6], + /*<>*/ _EA_=Focus[9], + /*<>*/ _EB_= + /*<>*/ caml_call2(_EA_,_Ez_,_Ey_), + /*<>*/ _EC_=[11,a,b], + /*<>*/ _ED_=b[4], + /*<>*/ _EE_=a[4], + /*<>*/ _EF_=Stdlib[17], + /*<>*/ _EG_= + /*<>*/ caml_call2(_EF_,_EE_,_ED_), + /*<>*/ _EH_=b[3], + /*<>*/ _EI_=a[3], + /*<>*/ _EJ_=Stdlib[17], + /*<>*/ _EK_= + /*<>*/ caml_call2(_EJ_,_EI_,_EH_), + /*<>*/ _EL_=b[2], + /*<>*/ _EM_=a[2], + /*<>*/ _EN_=Stdlib[17], + /*<>*/ _EO_= + /*<>*/ caml_call2(_EN_,_EM_,_EL_), + /*<>*/ _EP_=b[1], + /*<>*/ _EQ_=a[1], + /*<>*/ _ER_=Stdlib[17]; /*<>*/ return [0, - /*<>*/ caml_call2(_Dq_,_Dp_,_Do_), - _Dn_, - _Dj_, - _Df_, - _Db_, - _Da_, - _C8_, - _C7_, - _C6_] /*<>*/ } + /*<>*/ caml_call2(_ER_,_EQ_,_EP_), + _EO_, + _EK_, + _EG_, + _EC_, + _EB_, + _Ex_, + _Ew_, + _Ev_] /*<>*/ } /*<>*/ var /*<>*/ pack_x=[0,init$2,join_x], /*<>*/ pack_y=[0,init$2,join_y], @@ -568897,12 +568907,12 @@ {case 0: /*<>*/ var /*<>*/ a=param[1], - /*<>*/ _CX_=0, - /*<>*/ _CY_=I[27][5], - /*<>*/ _CZ_= - /*<>*/ caml_call1(_CY_,_CX_); + /*<>*/ _Em_=0, + /*<>*/ _En_=I[27][5], + /*<>*/ _Eo_= + /*<>*/ caml_call1(_En_,_Em_); /*<>*/ return /*<>*/ caml_call4 - (Stdlib_Format[129],ppf,_ee_,_CZ_,a); + (Stdlib_Format[129],ppf,_ee_,_Eo_,a); case 1: /*<>*/ /*<>*/ var desc= @@ -568926,16 +568936,16 @@ y=param[3], x=param[2], desc$2=param[1], - _C0_=0, - _C1_=Fmt[62], - /*<>*/ _C2_= - /*<>*/ caml_call2(_C1_,_C0_,p), - /*<>*/ _C3_=0, - /*<>*/ _C4_=Fmt[62], - /*<>*/ _C5_= - /*<>*/ caml_call2(_C4_,_C3_,p); + _Ep_=0, + _Eq_=Fmt[62], + /*<>*/ _Er_= + /*<>*/ caml_call2(_Eq_,_Ep_,p), + /*<>*/ _Es_=0, + /*<>*/ _Et_=Fmt[62], + /*<>*/ _Eu_= + /*<>*/ caml_call2(_Et_,_Es_,p); /*<>*/ return /*<>*/ caml_call8 - (Fmt[3],ppf,_ei_,_C5_,x,_C2_,y,pp$5,desc$2); + (Fmt[3],ppf,_ei_,_Eu_,x,_Er_,y,pp$5,desc$2); case 5: /*<>*/ /*<>*/ var n=param[1]; /*<>*/ return /*<>*/ caml_call4 @@ -568961,17 +568971,17 @@ var b$1=param[2],a$2=param[1]; return caml_call6(Stdlib_Format[129],ppf,_ep_,pp$5,a$2,pp$5,b$1)}} /*<>*/ function iter$0(f,ui) - { /*<>*/ /*<>*/ var _CW_=ui[5]; - /*<>*/ switch(_CW_[0]) + { /*<>*/ /*<>*/ var _El_=ui[5]; + /*<>*/ switch(_El_[0]) {case 0: /*<>*/ return 0; case 9: case 10: case 11: - var u2=_CW_[2],u1=_CW_[1]; + var u2=_El_[2],u1=_El_[1]; /*<>*/ /*<>*/ caml_call1(f,u1); /*<>*/ return /*<>*/ caml_call1 (f,u2); - default:var u=_CW_[1];return caml_call1(f,u)} /*<>*/ } + default:var u=_El_[1];return caml_call1(f,u)} /*<>*/ } /*<>*/ /*<>*/ var Ui= [0, @@ -569021,16 +569031,16 @@ { /*<>*/ return t[2] /*<>*/ } /*<>*/ function solve_focus(ui,i) { /*<>*/ function aux(ui) - { /*<>*/ /*<>*/ var _CU_=ui[6]; - /*<>*/ if(typeof _CU_ !== "number") - { /*<>*/ if(0 !== _CU_[0]) + { /*<>*/ /*<>*/ var _Ej_=ui[6]; + /*<>*/ if(typeof _Ej_ !== "number") + { /*<>*/ if(0 !== _Ej_[0]) /*<>*/ return /*<>*/ caml_call2 (Ui[40],aux,ui); - var _CV_=_CU_[1]; - if(0 !== _CV_) - { /*<>*/ if(i === _CV_) + var _Ek_=_Ej_[1]; + if(0 !== _Ek_) + { /*<>*/ if(i === _Ek_) /*<>*/ return 0; - /*<>*/ /*<>*/ var v=_CU_[2]; + /*<>*/ /*<>*/ var v=_Ej_[2]; /*<>*/ return /*<>*/ caml_call2 (Lwd[12],v,0)}} /*<>*/ return 0 /*<>*/ } @@ -569038,27 +569048,27 @@ /*<>*/ function split(a,sa,b,sb,total) { /*<>*/ var /*<>*/ stretch=sa + sb, - /*<>*/ _CO_=total - a, - /*<>*/ flex=_CO_ - b, + /*<>*/ _Ed_=total - a, + /*<>*/ flex=_Ed_ - b, switch$0=0; if(0. < stretch && 0. < flex) { /*<>*/ if(sb < sa) /*<>*/ var - /*<>*/ _CP_=flex * sa, - ratio=_CP_ / stretch; + /*<>*/ _Ee_=flex * sa, + ratio=_Ee_ / stretch; else /*<>*/ var - /*<>*/ _CS_=flex * sb, - /*<>*/ _CT_=_CS_ / stretch, - ratio=flex - _CT_; + /*<>*/ _Eh_=flex * sb, + /*<>*/ _Ei_=_Eh_ / stretch, + ratio=flex - _Ei_; /*<>*/ var - /*<>*/ _CQ_=b + flex, - /*<>*/ b$0=_CQ_ - ratio, - /*<>*/ _CR_=a + ratio, + /*<>*/ _Ef_=b + flex, + /*<>*/ b$0=_Ef_ - ratio, + /*<>*/ _Eg_=a + ratio, b$1=b$0, - a$0=_CR_; + a$0=_Eg_; switch$0 = 1} - /*<>*/ if(! switch$0)var b$1=b,a$0=a; + /*<>*/ if(! switch$0)var b$1=b,a$0=a; /*<>*/ return [0,a$0,b$1] /*<>*/ } /*<>*/ function pack(fixed,stretch,total,g1,g2) { /*<>*/ var @@ -569066,12 +569076,12 @@ switch$0=0; if(0. < stretch && 0. < flex) /*<>*/ var - /*<>*/ _CM_=0., + /*<>*/ _Eb_=0., v2=total, - v1=_CM_; + v1=_Eb_; else switch$0 = 1; - /*<>*/ if(switch$0) + /*<>*/ if(switch$0) { /*<>*/ /*<>*/ var gravity= 0. <= flex?g1:g2; @@ -569083,9 +569093,9 @@ else if(947590439 <= gravity) /*<>*/ var - /*<>*/ _CN_=flex / 2., + /*<>*/ _Ec_=flex / 2., v2=fixed, - v1=_CN_; + v1=_Ec_; else var v2=fixed,v1=flex} /*<>*/ return [0,v1,v2] /*<>*/ } @@ -569097,58 +569107,58 @@ {var ox$0=ox,oy$0=oy,sw$0=sw,sh$0=sh,ui$0=ui; /*<>*/ for(;;) { /*<>*/ var - /*<>*/ _B2_=ui$0[7], - /*<>*/ _B3_= - /*<>*/ has_transient_sensor(_B2_); - /*<>*/ if(_B3_) - var _B4_=_B3_; + /*<>*/ _Dr_=ui$0[7], + /*<>*/ _Ds_= + /*<>*/ has_transient_sensor(_Dr_); + /*<>*/ if(_Ds_) + var _Dt_=_Ds_; else { /*<>*/ var - _CE_=ui$0[7], - /*<>*/ _CF_= - /*<>*/ has_permanent_sensor(_CE_); - /*<>*/ if(_CF_) - {var _CG_=ui$0[8]; - if(_CG_) + _D5_=ui$0[7], + /*<>*/ _D6_= + /*<>*/ has_permanent_sensor(_D5_); + /*<>*/ if(_D6_) + {var _D7_=ui$0[8]; + if(_D7_) {var - match$3=_CG_[1], + match$3=_D7_[1], sh$1=match$3[4], sw$1=match$3[3], oy$4=match$3[2], ox$4=match$3[1], - _CH_=ox$0 == ox$4?1:0; - if(_CH_) - {var _CI_=oy$0 == oy$4?1:0; - if(_CI_) - var _CJ_=sw$0 == sw$1?1:0,_CK_=_CJ_?sh$0 == sh$1?1:0:_CJ_; + _D8_=ox$0 == ox$4?1:0; + if(_D8_) + {var _D9_=oy$0 == oy$4?1:0; + if(_D9_) + var _D__=sw$0 == sw$1?1:0,_D$_=_D__?sh$0 == sh$1?1:0:_D__; else - var _CK_=_CI_} + var _D$_=_D9_} else - var _CK_=_CH_; - var _CL_=_CK_} + var _D$_=_D8_; + var _Ea_=_D$_} else - var _CL_=0; - var _B4_=_CL_} + var _Ea_=0; + var _Dt_=_Ea_} else - var _B4_=_CF_} - /*<>*/ if(_B4_) + var _Dt_=_D6_} + /*<>*/ if(_Dt_) { /*<>*/ var - /*<>*/ _B5_=Ui[6], - /*<>*/ _B6_=Stdlib[21], - /*<>*/ _B7_= - /*<>*/ caml_call1(_B6_,_B5_); - /*<>*/ ui$0[7] = ui$0[7] & _B7_; + /*<>*/ _Du_=Ui[6], + /*<>*/ _Dv_=Stdlib[21], + /*<>*/ _Dw_= + /*<>*/ caml_call1(_Dv_,_Du_); + /*<>*/ ui$0[7] = ui$0[7] & _Dw_; /*<>*/ /*<>*/ var - _B8_= + _Dx_= ui$0[7]; /*<>*/ if - ( /*<>*/ has_permanent_sensor(_B8_)) + ( /*<>*/ has_permanent_sensor(_Dx_)) /*<>*/ ui$0[8] = [0,[0,ox$0,oy$0,sw$0,sh$0]]; - /*<>*/ /*<>*/ var _B9_=ui$0[5]; - /*<>*/ switch(_B9_[0]) + /*<>*/ /*<>*/ var _Dy_=ui$0[5]; + /*<>*/ switch(_Dy_[0]) {case 0: /*<>*/ return 0; case 2: - var sensor=_B9_[2],t=_B9_[1]; + var sensor=_Dy_[2],t=_Dy_[1]; ui$0[5] = t[5]; /*<>*/ /*<>*/ var sensor$0= @@ -569160,8 +569170,8 @@ (sensor$0,0); case 3: /*<>*/ var - sensor$1=_B9_[2], - t$0=_B9_[1], + sensor$1=_Dy_[2], + t$0=_Dy_[1], /*<>*/ sensor$2= /*<>*/ caml_call4 (sensor$1,ox$0,oy$0,sw$0,sh$0); @@ -569171,50 +569181,50 @@ (sensor$2,0); case 4: /*<>*/ var - g=_B9_[4], - y=_B9_[3], - x=_B9_[2], - t$1=_B9_[1], - _B__=Gravity[9], - /*<>*/ _B$_= - /*<>*/ caml_call1(_B__,g), - /*<>*/ _Ca_=Gravity[5], - /*<>*/ _Cb_= - /*<>*/ caml_call1(_Ca_,_B$_), - /*<>*/ _Cc_=Gravity[8], - /*<>*/ _Cd_= - /*<>*/ caml_call1(_Cc_,g), - /*<>*/ _Ce_=Gravity[5], - /*<>*/ _Cf_= - /*<>*/ caml_call1(_Ce_,_Cd_), - /*<>*/ _Cg_=t$1[3], - /*<>*/ _Ch_=t$1[1], - /*<>*/ _Ci_=Stdlib_Option[3], - /*<>*/ _Cj_= - /*<>*/ caml_call2(_Ci_,x,_Ch_), + g=_Dy_[4], + y=_Dy_[3], + x=_Dy_[2], + t$1=_Dy_[1], + _Dz_=Gravity[9], + /*<>*/ _DA_= + /*<>*/ caml_call1(_Dz_,g), + /*<>*/ _DB_=Gravity[5], + /*<>*/ _DC_= + /*<>*/ caml_call1(_DB_,_DA_), + /*<>*/ _DD_=Gravity[8], + /*<>*/ _DE_= + /*<>*/ caml_call1(_DD_,g), + /*<>*/ _DF_=Gravity[5], + /*<>*/ _DG_= + /*<>*/ caml_call1(_DF_,_DE_), + /*<>*/ _DH_=t$1[3], + /*<>*/ _DI_=t$1[1], + /*<>*/ _DJ_=Stdlib_Option[3], + /*<>*/ _DK_= + /*<>*/ caml_call2(_DJ_,x,_DI_), /*<>*/ match= - /*<>*/ pack(_Cj_,_Cg_,sw$0,_Cf_,_Cb_), + /*<>*/ pack(_DK_,_DH_,sw$0,_DG_,_DC_), /*<>*/ rw=match[2], /*<>*/ dx=match[1], - /*<>*/ _Ck_=Gravity[9], - /*<>*/ _Cl_= - /*<>*/ caml_call1(_Ck_,g), - /*<>*/ _Cm_=Gravity[6], - /*<>*/ _Cn_= - /*<>*/ caml_call1(_Cm_,_Cl_), - /*<>*/ _Co_=Gravity[8], - /*<>*/ _Cp_= - /*<>*/ caml_call1(_Co_,g), - /*<>*/ _Cq_=Gravity[6], - /*<>*/ _Cr_= - /*<>*/ caml_call1(_Cq_,_Cp_), - /*<>*/ _Cs_=t$1[4], - /*<>*/ _Ct_=t$1[2], - /*<>*/ _Cu_=Stdlib_Option[3], - /*<>*/ _Cv_= - /*<>*/ caml_call2(_Cu_,y,_Ct_), + /*<>*/ _DL_=Gravity[9], + /*<>*/ _DM_= + /*<>*/ caml_call1(_DL_,g), + /*<>*/ _DN_=Gravity[6], + /*<>*/ _DO_= + /*<>*/ caml_call1(_DN_,_DM_), + /*<>*/ _DP_=Gravity[8], + /*<>*/ _DQ_= + /*<>*/ caml_call1(_DP_,g), + /*<>*/ _DR_=Gravity[6], + /*<>*/ _DS_= + /*<>*/ caml_call1(_DR_,_DQ_), + /*<>*/ _DT_=t$1[4], + /*<>*/ _DU_=t$1[2], + /*<>*/ _DV_=Stdlib_Option[3], + /*<>*/ _DW_= + /*<>*/ caml_call2(_DV_,y,_DU_), /*<>*/ match$0= - /*<>*/ pack(_Cv_,_Cs_,sh$0,_Cr_,_Cn_), + /*<>*/ pack(_DW_,_DT_,sh$0,_DS_,_DO_), /*<>*/ rh=match$0[2], /*<>*/ dy=match$0[1], /*<>*/ oy$1=oy$0 + dy, @@ -569227,9 +569237,9 @@ continue; case 7: /*<>*/ var - sy=_B9_[3], - sx=_B9_[2], - t$2=_B9_[1], + sy=_Dy_[3], + sx=_Dy_[2], + t$2=_Dy_[1], /*<>*/ oy$2=oy$0 - sy, /*<>*/ ox$2=ox$0 - sx, ox$0=ox$2, @@ -569238,14 +569248,14 @@ continue; case 9: /*<>*/ var - b=_B9_[2], - a=_B9_[1], - _Cw_=b[3], - _Cx_=b[1], - _Cy_=a[3], - _Cz_=a[1], + b=_Dy_[2], + a=_Dy_[1], + _DX_=b[3], + _DY_=b[1], + _DZ_=a[3], + _D0_=a[1], /*<>*/ match$1= - /*<>*/ split(_Cz_,_Cy_,_Cx_,_Cw_,sw$0), + /*<>*/ split(_D0_,_DZ_,_DY_,_DX_,sw$0), /*<>*/ bw=match$1[2], /*<>*/ aw=match$1[1]; /*<>*/ /*<>*/ update_sensors @@ -569258,14 +569268,14 @@ continue; case 10: /*<>*/ var - b$0=_B9_[2], - a$0=_B9_[1], - _CA_=b$0[4], - _CB_=b$0[2], - _CC_=a$0[4], - _CD_=a$0[2], + b$0=_Dy_[2], + a$0=_Dy_[1], + _D1_=b$0[4], + _D2_=b$0[2], + _D3_=a$0[4], + _D4_=a$0[2], /*<>*/ match$2= - /*<>*/ split(_CD_,_CC_,_CB_,_CA_,sh$0), + /*<>*/ split(_D4_,_D3_,_D2_,_D1_,sh$0), /*<>*/ bh=match$2[2], /*<>*/ ah=match$2[1]; /*<>*/ /*<>*/ update_sensors @@ -569277,118 +569287,118 @@ ui$0=b$0; continue; case 11: - var b$1=_B9_[2],a$1=_B9_[1]; + var b$1=_Dy_[2],a$1=_Dy_[1]; /*<>*/ /*<>*/ update_sensors (ox$0,oy$0,sw$0,sh$0,a$1); var ui$0=b$1; continue; - default:var ui$1=_B9_[1],ui$0=ui$1;continue}} - return _B4_} /*<>*/ } + default:var ui$1=_Dy_[1],ui$0=ui$1;continue}} + return _Dt_} /*<>*/ } /*<>*/ function update_focus(ui) - { /*<>*/ /*<>*/ var _B1_=ui[6]; - /*<>*/ if(typeof _B1_ !== "number" && 1 === _B1_[0]) - { /*<>*/ /*<>*/ var i=_B1_[1]; + { /*<>*/ /*<>*/ var _Dq_=ui[6]; + /*<>*/ if(typeof _Dq_ !== "number" && 1 === _Dq_[0]) + { /*<>*/ /*<>*/ var i=_Dq_[1]; /*<>*/ return /*<>*/ solve_focus (ui,i)} /*<>*/ return 0 /*<>*/ } /*<>*/ function t_size_of_t(vg,size,ui) { /*<>*/ var - /*<>*/ _Br_=ui[5], + /*<>*/ _CS_=ui[5], /*<>*/ desc= - /*<>*/ t_size_desc_of_t(vg,size,_Br_); + /*<>*/ t_size_desc_of_t(vg,size,_CS_); /*<>*/ switch(desc[0]) {case 0: /*<>*/ var /*<>*/ i=desc[1], - /*<>*/ _Bs_=Gg[15][5], - /*<>*/ _Bt_= - /*<>*/ caml_call1(_Bs_,size), - /*<>*/ _Bu_=I[3], - /*<>*/ _Bv_= - /*<>*/ caml_call3(_Bu_,vg,_Bt_,i), - /*<>*/ _Bw_= - /*<>*/ caml_call1(Gg[2][13],_Bv_), - /*<>*/ _Bx_=_Bw_[2], - /*<>*/ _By_=_Bw_[1], - h=_Bx_, - w=_By_; + /*<>*/ _CT_=Gg[15][5], + /*<>*/ _CU_= + /*<>*/ caml_call1(_CT_,size), + /*<>*/ _CV_=I[3], + /*<>*/ _CW_= + /*<>*/ caml_call3(_CV_,vg,_CU_,i), + /*<>*/ _CX_= + /*<>*/ caml_call1(Gg[2][13],_CW_), + /*<>*/ _CY_=_CX_[2], + /*<>*/ _CZ_=_CX_[1], + h=_CY_, + w=_CZ_; break; case 4: /*<>*/ var h$0=desc[3], w$0=desc[2], t$0=desc[1], - _BB_=t$0[2], - _BC_=Stdlib_Option[3], + _C2_=t$0[2], + _C3_=Stdlib_Option[3], /*<>*/ h$1= - /*<>*/ caml_call2(_BC_,h$0,_BB_), - /*<>*/ _BD_=t$0[1], - /*<>*/ _BE_=Stdlib_Option[3], - /*<>*/ _BF_= - /*<>*/ caml_call2(_BE_,w$0,_BD_), + /*<>*/ caml_call2(_C3_,h$0,_C2_), + /*<>*/ _C4_=t$0[1], + /*<>*/ _C5_=Stdlib_Option[3], + /*<>*/ _C6_= + /*<>*/ caml_call2(_C5_,w$0,_C4_), h=h$1, - w=_BF_; + w=_C6_; break; case 7: /*<>*/ var y=desc[3], x=desc[2], t$1=desc[1], - _BG_=t$1[2], - /*<>*/ h$2=_BG_ + y, - /*<>*/ _BH_=t$1[1], - /*<>*/ _BI_=_BH_ + x, + _C7_=t$1[2], + /*<>*/ h$2=_C7_ + y, + /*<>*/ _C8_=t$1[1], + /*<>*/ _C9_=_C8_ + x, h=h$2, - w=_BI_; + w=_C9_; break; case 9: /*<>*/ var b=desc[2], a=desc[1], - _BJ_=b[2], - _BK_=a[2], - _BL_=Stdlib[17], + _C__=b[2], + _C$_=a[2], + _Da_=Stdlib[17], /*<>*/ h$3= - /*<>*/ caml_call2(_BL_,_BK_,_BJ_), - /*<>*/ _BM_=b[1], - /*<>*/ _BN_=a[1], - /*<>*/ _BO_=_BN_ + _BM_, + /*<>*/ caml_call2(_Da_,_C$_,_C__), + /*<>*/ _Db_=b[1], + /*<>*/ _Dc_=a[1], + /*<>*/ _Dd_=_Dc_ + _Db_, h=h$3, - w=_BO_; + w=_Dd_; break; case 10: /*<>*/ var b$0=desc[2], a$0=desc[1], - _BP_=b$0[2], - _BQ_=a$0[2], - /*<>*/ h$4=_BQ_ + _BP_, - /*<>*/ _BR_=b$0[1], - /*<>*/ _BS_=a$0[1], - /*<>*/ _BT_=Stdlib[17], - /*<>*/ _BU_= - /*<>*/ caml_call2(_BT_,_BS_,_BR_), + _De_=b$0[2], + _Df_=a$0[2], + /*<>*/ h$4=_Df_ + _De_, + /*<>*/ _Dg_=b$0[1], + /*<>*/ _Dh_=a$0[1], + /*<>*/ _Di_=Stdlib[17], + /*<>*/ _Dj_= + /*<>*/ caml_call2(_Di_,_Dh_,_Dg_), h=h$4, - w=_BU_; + w=_Dj_; break; case 11: /*<>*/ var b$1=desc[2], a$1=desc[1], - _BV_=b$1[2], - _BW_=a$1[2], - _BX_=Stdlib[17], + _Dk_=b$1[2], + _Dl_=a$1[2], + _Dm_=Stdlib[17], /*<>*/ h$5= - /*<>*/ caml_call2(_BX_,_BW_,_BV_), - /*<>*/ _BY_=b$1[1], - /*<>*/ _BZ_=a$1[1], - /*<>*/ _B0_=Stdlib[17], + /*<>*/ caml_call2(_Dm_,_Dl_,_Dk_), + /*<>*/ _Dn_=b$1[1], + /*<>*/ _Do_=a$1[1], + /*<>*/ _Dp_=Stdlib[17], /*<>*/ w$1= - /*<>*/ caml_call2(_B0_,_BZ_,_BY_), + /*<>*/ caml_call2(_Dp_,_Do_,_Dn_), h=h$5, w=w$1; break; - default:var t=desc[1],_Bz_=t[2],_BA_=t[1],h=_Bz_,w=_BA_} + default:var t=desc[1],_C0_=t[2],_C1_=t[1],h=_C0_,w=_C1_} /*<>*/ return [0, w, h, @@ -569423,29 +569433,29 @@ h=ui[3], w=ui[2], t$2=ui[1], - _AF_=Gg[15][10], - /*<>*/ _AG_= - /*<>*/ caml_call1(_AF_,size), - /*<>*/ _AH_=Stdlib_Option[3], - /*<>*/ _AI_= - /*<>*/ caml_call2(_AH_,h,_AG_), - /*<>*/ _AJ_=Gg[15][9], - /*<>*/ _AK_= - /*<>*/ caml_call1(_AJ_,size), - /*<>*/ _AL_=Stdlib_Option[3], - /*<>*/ _AM_= - /*<>*/ caml_call2(_AL_,w,_AK_), - /*<>*/ _AN_=Gg[2][2], - /*<>*/ _AO_= - /*<>*/ caml_call2(_AN_,_AM_,_AI_), - /*<>*/ _AP_=Gg[15][5], - /*<>*/ _AQ_= - /*<>*/ caml_call1(_AP_,size), - /*<>*/ _AR_=Gg[15][2], - /*<>*/ _AS_= - /*<>*/ caml_call2(_AR_,_AQ_,_AO_); + _B6_=Gg[15][10], + /*<>*/ _B7_= + /*<>*/ caml_call1(_B6_,size), + /*<>*/ _B8_=Stdlib_Option[3], + /*<>*/ _B9_= + /*<>*/ caml_call2(_B8_,h,_B7_), + /*<>*/ _B__=Gg[15][9], + /*<>*/ _B$_= + /*<>*/ caml_call1(_B__,size), + /*<>*/ _Ca_=Stdlib_Option[3], + /*<>*/ _Cb_= + /*<>*/ caml_call2(_Ca_,w,_B$_), + /*<>*/ _Cc_=Gg[2][2], + /*<>*/ _Cd_= + /*<>*/ caml_call2(_Cc_,_Cb_,_B9_), + /*<>*/ _Ce_=Gg[15][5], + /*<>*/ _Cf_= + /*<>*/ caml_call1(_Ce_,size), + /*<>*/ _Cg_=Gg[15][2], + /*<>*/ _Ch_= + /*<>*/ caml_call2(_Cg_,_Cf_,_Cd_); /*<>*/ return [4, - /*<>*/ t_size_of_t(vg,_AS_,t$2), + /*<>*/ t_size_of_t(vg,_Ch_,t$2), w, h, g2]; @@ -569464,24 +569474,24 @@ sy=ui[3], sx=ui[2], t$5=ui[1], - _AT_=Gg[15][18], - /*<>*/ _AU_= - /*<>*/ caml_call1(_AT_,size), - /*<>*/ _AV_=[0,sx,sy], - /*<>*/ _AW_=Gg[2][12], - /*<>*/ _AX_= - /*<>*/ caml_call1(_AW_,_AV_), - /*<>*/ _AY_=Gg[15][5], - /*<>*/ _AZ_= - /*<>*/ caml_call1(_AY_,size), - /*<>*/ _A0_=Gg[2][37], - /*<>*/ _A1_= - /*<>*/ caml_call2(_A0_,_AZ_,_AX_), - /*<>*/ _A2_=Gg[15][13], - /*<>*/ _A3_= - /*<>*/ caml_call2(_A2_,_A1_,_AU_); + _Ci_=Gg[15][18], + /*<>*/ _Cj_= + /*<>*/ caml_call1(_Ci_,size), + /*<>*/ _Ck_=[0,sx,sy], + /*<>*/ _Cl_=Gg[2][12], + /*<>*/ _Cm_= + /*<>*/ caml_call1(_Cl_,_Ck_), + /*<>*/ _Cn_=Gg[15][5], + /*<>*/ _Co_= + /*<>*/ caml_call1(_Cn_,size), + /*<>*/ _Cp_=Gg[2][37], + /*<>*/ _Cq_= + /*<>*/ caml_call2(_Cp_,_Co_,_Cm_), + /*<>*/ _Cr_=Gg[15][13], + /*<>*/ _Cs_= + /*<>*/ caml_call2(_Cr_,_Cq_,_Cj_); /*<>*/ return [7, - /*<>*/ t_size_of_t(vg,_A3_,t$5), + /*<>*/ t_size_of_t(vg,_Cs_,t$5), sx, sy]; case 8: @@ -569495,25 +569505,25 @@ a=ui[1], /*<>*/ a$0= /*<>*/ t_size_of_t(vg,size,a), - /*<>*/ _A4_=Gg[15][18], - /*<>*/ _A5_= - /*<>*/ caml_call1(_A4_,size), - /*<>*/ _A6_=Gg[15][17], - /*<>*/ _A7_= - /*<>*/ caml_call1(_A6_,size), - /*<>*/ _A8_=a$0[1], - /*<>*/ _A9_=Gg[15][16], - /*<>*/ _A__= - /*<>*/ caml_call1(_A9_,size), - /*<>*/ _A$_=_A__ + _A8_, - /*<>*/ _Ba_=Gg[2][2], - /*<>*/ _Bb_= - /*<>*/ caml_call2(_Ba_,_A$_,_A7_), - /*<>*/ _Bc_=Gg[15][13], - /*<>*/ _Bd_= - /*<>*/ caml_call2(_Bc_,_Bb_,_A5_), + /*<>*/ _Ct_=Gg[15][18], + /*<>*/ _Cu_= + /*<>*/ caml_call1(_Ct_,size), + /*<>*/ _Cv_=Gg[15][17], + /*<>*/ _Cw_= + /*<>*/ caml_call1(_Cv_,size), + /*<>*/ _Cx_=a$0[1], + /*<>*/ _Cy_=Gg[15][16], + /*<>*/ _Cz_= + /*<>*/ caml_call1(_Cy_,size), + /*<>*/ _CA_=_Cz_ + _Cx_, + /*<>*/ _CB_=Gg[2][2], + /*<>*/ _CC_= + /*<>*/ caml_call2(_CB_,_CA_,_Cw_), + /*<>*/ _CD_=Gg[15][13], + /*<>*/ _CE_= + /*<>*/ caml_call2(_CD_,_CC_,_Cu_), /*<>*/ b$0= - /*<>*/ t_size_of_t(vg,_Bd_,b); + /*<>*/ t_size_of_t(vg,_CE_,b); /*<>*/ return [9,a$0,b$0]; case 10: /*<>*/ var @@ -569521,67 +569531,67 @@ a$1=ui[1], /*<>*/ a$2= /*<>*/ t_size_of_t(vg,size,a$1), - /*<>*/ _Be_=Gg[15][18], - /*<>*/ _Bf_= - /*<>*/ caml_call1(_Be_,size), - /*<>*/ _Bg_=a$2[2], - /*<>*/ _Bh_=Gg[15][17], - /*<>*/ _Bi_= - /*<>*/ caml_call1(_Bh_,size), - /*<>*/ _Bj_=_Bi_ + _Bg_, - /*<>*/ _Bk_=Gg[15][16], - /*<>*/ _Bl_= - /*<>*/ caml_call1(_Bk_,size), - /*<>*/ _Bm_=Gg[2][2], - /*<>*/ _Bn_= - /*<>*/ caml_call2(_Bm_,_Bl_,_Bj_), - /*<>*/ _Bo_=Gg[15][13], - /*<>*/ _Bp_= - /*<>*/ caml_call2(_Bo_,_Bn_,_Bf_), + /*<>*/ _CF_=Gg[15][18], + /*<>*/ _CG_= + /*<>*/ caml_call1(_CF_,size), + /*<>*/ _CH_=a$2[2], + /*<>*/ _CI_=Gg[15][17], + /*<>*/ _CJ_= + /*<>*/ caml_call1(_CI_,size), + /*<>*/ _CK_=_CJ_ + _CH_, + /*<>*/ _CL_=Gg[15][16], + /*<>*/ _CM_= + /*<>*/ caml_call1(_CL_,size), + /*<>*/ _CN_=Gg[2][2], + /*<>*/ _CO_= + /*<>*/ caml_call2(_CN_,_CM_,_CK_), + /*<>*/ _CP_=Gg[15][13], + /*<>*/ _CQ_= + /*<>*/ caml_call2(_CP_,_CO_,_CG_), /*<>*/ b$2= - /*<>*/ t_size_of_t(vg,_Bp_,b$1); + /*<>*/ t_size_of_t(vg,_CQ_,b$1); /*<>*/ return [10,a$2,b$2]; default: /*<>*/ var b$3=ui[2], a$3=ui[1], - /*<>*/ _Bq_= + /*<>*/ _CR_= /*<>*/ t_size_of_t(vg,size,b$3); /*<>*/ return [11, /*<>*/ t_size_of_t(vg,size,a$3), - _Bq_]} /*<>*/ } + _CR_]} /*<>*/ } /*<>*/ function update(t,size,ui) { /*<>*/ t[2] = size; /*<>*/ var - /*<>*/ _Au_=Gg[2][8], - /*<>*/ _Av_=Gg[15][2], - /*<>*/ _Aw_= - /*<>*/ caml_call2(_Av_,_Au_,size), - /*<>*/ _Ax_=t[1]; + /*<>*/ _BV_=Gg[2][8], + /*<>*/ _BW_=Gg[15][2], + /*<>*/ _BX_= + /*<>*/ caml_call2(_BW_,_BV_,size), + /*<>*/ _BY_=t[1]; /*<>*/ t[3] = - /*<>*/ t_size_of_t(_Ax_,_Aw_,ui); + /*<>*/ t_size_of_t(_BY_,_BX_,ui); /*<>*/ var - /*<>*/ _Ay_=t[3], - /*<>*/ _Az_=Gg[5][4], - /*<>*/ _AA_= - /*<>*/ caml_call1(_Az_,size), - /*<>*/ _AB_=Gg[5][3], - /*<>*/ _AC_= - /*<>*/ caml_call1(_AB_,size), - /*<>*/ _AD_=0., - /*<>*/ _AE_=0.; + /*<>*/ _BZ_=t[3], + /*<>*/ _B0_=Gg[5][4], + /*<>*/ _B1_= + /*<>*/ caml_call1(_B0_,size), + /*<>*/ _B2_=Gg[5][3], + /*<>*/ _B3_= + /*<>*/ caml_call1(_B2_,size), + /*<>*/ _B4_=0., + /*<>*/ _B5_=0.; /*<>*/ /*<>*/ update_sensors - (_AE_,_AD_,_AC_,_AA_,_Ay_); + (_B5_,_B4_,_B3_,_B1_,_BZ_); /*<>*/ return /*<>*/ update_focus (t[3]) /*<>*/ } /*<>*/ function _eq_(st,x,y,btn,w,h,t) { /*<>*/ function handle(ox,oy,f) { /*<>*/ var - /*<>*/ _As_=y - oy, - /*<>*/ _At_=x - ox, + /*<>*/ _BT_=y - oy, + /*<>*/ _BU_=x - ox, /*<>*/ match= - /*<>*/ caml_call3(f,_At_,_As_,btn); + /*<>*/ caml_call3(f,_BU_,_BT_,btn); /*<>*/ if(typeof match === "number") return 321312668 <= match?1:0; /*<>*/ /*<>*/ var f$0=match[2]; @@ -569590,47 +569600,47 @@ /*<>*/ 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 _zJ_=t$0[5]; - /*<>*/ switch(_zJ_[0]) + { /*<>*/ /*<>*/ var _A__=t$0[5]; + /*<>*/ switch(_A__[0]) {case 0: /*<>*/ return 0; case 4: /*<>*/ var - g=_zJ_[4], - t$2=_zJ_[1], - _zK_=Gravity[9], - /*<>*/ _zL_= - /*<>*/ caml_call1(_zK_,g), - /*<>*/ _zM_=Gravity[5], - /*<>*/ _zN_= - /*<>*/ caml_call1(_zM_,_zL_), - /*<>*/ _zO_=Gravity[8], - /*<>*/ _zP_= - /*<>*/ caml_call1(_zO_,g), - /*<>*/ _zQ_=Gravity[5], - /*<>*/ _zR_= - /*<>*/ caml_call1(_zQ_,_zP_), - /*<>*/ _zS_=t$2[3], - /*<>*/ _zT_=t$2[1], + g=_A__[4], + t$2=_A__[1], + _A$_=Gravity[9], + /*<>*/ _Ba_= + /*<>*/ caml_call1(_A$_,g), + /*<>*/ _Bb_=Gravity[5], + /*<>*/ _Bc_= + /*<>*/ caml_call1(_Bb_,_Ba_), + /*<>*/ _Bd_=Gravity[8], + /*<>*/ _Be_= + /*<>*/ caml_call1(_Bd_,g), + /*<>*/ _Bf_=Gravity[5], + /*<>*/ _Bg_= + /*<>*/ caml_call1(_Bf_,_Be_), + /*<>*/ _Bh_=t$2[3], + /*<>*/ _Bi_=t$2[1], /*<>*/ match= - /*<>*/ pack(_zT_,_zS_,sw$0,_zR_,_zN_), + /*<>*/ pack(_Bi_,_Bh_,sw$0,_Bg_,_Bc_), /*<>*/ rw=match[2], /*<>*/ dx=match[1], - /*<>*/ _zU_=Gravity[9], - /*<>*/ _zV_= - /*<>*/ caml_call1(_zU_,g), - /*<>*/ _zW_=Gravity[6], - /*<>*/ _zX_= - /*<>*/ caml_call1(_zW_,_zV_), - /*<>*/ _zY_=Gravity[8], - /*<>*/ _zZ_= - /*<>*/ caml_call1(_zY_,g), - /*<>*/ _z0_=Gravity[6], - /*<>*/ _z1_= - /*<>*/ caml_call1(_z0_,_zZ_), - /*<>*/ _z2_=t$2[4], - /*<>*/ _z3_=t$2[2], + /*<>*/ _Bj_=Gravity[9], + /*<>*/ _Bk_= + /*<>*/ caml_call1(_Bj_,g), + /*<>*/ _Bl_=Gravity[6], + /*<>*/ _Bm_= + /*<>*/ caml_call1(_Bl_,_Bk_), + /*<>*/ _Bn_=Gravity[8], + /*<>*/ _Bo_= + /*<>*/ caml_call1(_Bn_,g), + /*<>*/ _Bp_=Gravity[6], + /*<>*/ _Bq_= + /*<>*/ caml_call1(_Bp_,_Bo_), + /*<>*/ _Br_=t$2[4], + /*<>*/ _Bs_=t$2[2], /*<>*/ match$0= - /*<>*/ pack(_z3_,_z2_,sh$0,_z1_,_zX_), + /*<>*/ pack(_Bs_,_Br_,sh$0,_Bq_,_Bm_), /*<>*/ rh=match$0[2], /*<>*/ dy=match$0[1], /*<>*/ oy$1=oy$0 + dy, @@ -569643,57 +569653,57 @@ continue; case 5: /*<>*/ var - f=_zJ_[2], - t$3=_zJ_[1], - _z4_=720626325, - _z5_=720626325, - _z6_=t$3[3], - _z7_=t$3[1], + f=_A__[2], + t$3=_A__[1], + _Bt_=720626325, + _Bu_=720626325, + _Bv_=t$3[3], + _Bw_=t$3[1], /*<>*/ match$1= - /*<>*/ pack(_z7_,_z6_,sw$0,_z5_,_z4_), - /*<>*/ _z8_=match$1[2], - /*<>*/ _z9_=match$1[1], - /*<>*/ _z__=720626325, - /*<>*/ _z$_=720626325, - /*<>*/ _Aa_=t$3[4], - /*<>*/ _Ab_=t$3[2], + /*<>*/ pack(_Bw_,_Bv_,sw$0,_Bu_,_Bt_), + /*<>*/ _Bx_=match$1[2], + /*<>*/ _By_=match$1[1], + /*<>*/ _Bz_=720626325, + /*<>*/ _BA_=720626325, + /*<>*/ _BB_=t$3[4], + /*<>*/ _BC_=t$3[2], /*<>*/ match$2= - /*<>*/ pack(_Ab_,_Aa_,sh$0,_z$_,_z__), + /*<>*/ pack(_BC_,_BB_,sh$0,_BA_,_Bz_), /*<>*/ rh$0=match$2[2], /*<>*/ offsety=match$2[1]; - if(_z9_ == 0. && offsety == 0.) + if(_By_ == 0. && offsety == 0.) { /*<>*/ /*<>*/ var - _Ac_= + _BD_= 0. <= x - ox$0?1:0; - /*<>*/ if(_Ac_) + /*<>*/ if(_BD_) { /*<>*/ /*<>*/ var - _Ad_= - x - ox$0 <= _z8_?1:0; - /*<>*/ if(_Ad_) + _BE_= + x - ox$0 <= _Bx_?1:0; + /*<>*/ if(_BE_) /*<>*/ var - /*<>*/ _Ae_=0. <= y - oy$0?1:0, - /*<>*/ _Af_= - _Ae_?y - oy$0 <= rh$0?1:0:_Ae_; + /*<>*/ _BF_=0. <= y - oy$0?1:0, + /*<>*/ _BG_= + _BF_?y - oy$0 <= rh$0?1:0:_BF_; else - var _Af_=_Ad_} + var _BG_=_BE_} else - var _Af_=_Ac_; - if(_Af_) + var _BG_=_BD_; + if(_BG_) { /*<>*/ /*<>*/ var - _Ag_= + _BH_= /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,t$3); - /*<>*/ if(! _Ag_) + /*<>*/ if(! _BH_) return handle(ox$0,oy$0,f); - /*<>*/ var _Ah_=_Ag_} + /*<>*/ var _BI_=_BH_} else - var _Ah_=_Af_; - return _Ah_} + var _BI_=_BG_; + return _BI_} throw [0,Assert_failure,_er_]; case 7: /*<>*/ var - sy=_zJ_[3], - sx=_zJ_[2], - desc=_zJ_[1], + sy=_A__[3], + sx=_A__[2], + desc=_A__[1], /*<>*/ oy$2=oy$0 - sy, /*<>*/ ox$2=ox$0 - sx, ox$0=ox$2, @@ -569702,25 +569712,25 @@ continue; case 8: /*<>*/ var - f$0=_zJ_[2], - n=_zJ_[1], - _Ai_=[0,529696261,[0,[0,-608844957,btn],[0,x,y],0]], + f$0=_A__[2], + n=_A__[1], + _BJ_=[0,529696261,[0,[0,-608844957,btn],[0,x,y],0]], /*<>*/ match$3= - /*<>*/ caml_call1(f$0,_Ai_); + /*<>*/ caml_call1(f$0,_BJ_); /*<>*/ if(321312668 <= match$3) /*<>*/ return 1; /*<>*/ var t$0=n; continue; case 9: /*<>*/ var - b=_zJ_[2], - a=_zJ_[1], - _Aj_=b[3], - _Ak_=b[1], - _Al_=a[3], - _Am_=a[1], + b=_A__[2], + a=_A__[1], + _BK_=b[3], + _BL_=b[1], + _BM_=a[3], + _BN_=a[1], /*<>*/ match$4= - /*<>*/ split(_Am_,_Al_,_Ak_,_Aj_,sw$0), + /*<>*/ split(_BN_,_BM_,_BL_,_BK_,sw$0), /*<>*/ bw=match$4[2], /*<>*/ aw=match$4[1]; /*<>*/ if(x - ox$0 < aw) @@ -569733,14 +569743,14 @@ continue; case 10: /*<>*/ var - b$0=_zJ_[2], - a$0=_zJ_[1], - _An_=b$0[4], - _Ao_=b$0[2], - _Ap_=a$0[4], - _Aq_=a$0[2], + b$0=_A__[2], + a$0=_A__[1], + _BO_=b$0[4], + _BP_=b$0[2], + _BQ_=a$0[4], + _BR_=a$0[2], /*<>*/ match$5= - /*<>*/ split(_Aq_,_Ap_,_Ao_,_An_,sh$0), + /*<>*/ split(_BR_,_BQ_,_BP_,_BO_,sh$0), /*<>*/ bh=match$5[2], /*<>*/ ah=match$5[1]; /*<>*/ if(y - oy$0 < ah) @@ -569753,167 +569763,167 @@ continue; case 11: /*<>*/ var - b$1=_zJ_[2], - a$1=_zJ_[1], - /*<>*/ _Ar_= + b$1=_A__[2], + a$1=_A__[1], + /*<>*/ _BS_= /*<>*/ aux(ox$0,oy$0,sw$0,sh$0,b$1); - /*<>*/ if(_Ar_)return _Ar_; + /*<>*/ if(_BS_)return _BS_; /*<>*/ var t$0=a$1; continue; - default:var t$1=_zJ_[1],t$0=t$1;continue}} /*<>*/ } + default:var t$1=_A__[1],t$0=t$1;continue}} /*<>*/ } /*<>*/ return /*<>*/ aux (0.,0.,w,h,t) /*<>*/ } /*<>*/ function release_grab(st,x,y) - { /*<>*/ /*<>*/ var _zI_=st[4]; - /*<>*/ if(_zI_) - {var match=_zI_[1],release=match[2]; + { /*<>*/ /*<>*/ var _A9_=st[4]; + /*<>*/ if(_A9_) + {var match=_A9_[1],release=match[2]; st[4] = 0; return caml_call2(release,x,y)} /*<>*/ return 0 /*<>*/ } /*<>*/ function resize_canvas(vg,rw,rh,image) { /*<>*/ var - /*<>*/ _zC_=Gg[2][8], - /*<>*/ _zD_=I[3], - /*<>*/ _zE_= - /*<>*/ caml_call3(_zD_,vg,_zC_,image), - /*<>*/ _zF_=Gg[2][13], + /*<>*/ _A3_=Gg[2][8], + /*<>*/ _A4_=I[3], + /*<>*/ _A5_= + /*<>*/ caml_call3(_A4_,vg,_A3_,image), + /*<>*/ _A6_=Gg[2][13], /*<>*/ match= - /*<>*/ caml_call1(_zF_,_zE_), + /*<>*/ caml_call1(_A6_,_A5_), /*<>*/ h=match[2], /*<>*/ w=match[1]; if(w == rw && h == rh) /*<>*/ return image; /*<>*/ var - /*<>*/ _zG_=[0,rh - h], - /*<>*/ _zH_=0; + /*<>*/ _A7_=[0,rh - h], + /*<>*/ _A8_=0; /*<>*/ return /*<>*/ caml_call5 - (I[15],0,[0,rw - w],_zH_,_zG_,image) /*<>*/ } + (I[15],0,[0,rw - w],_A8_,_A7_,image) /*<>*/ } /*<>*/ function resize_canvas2(vg,ox,oy,rw,rh,image) { /*<>*/ var - /*<>*/ _zu_=Gg[2][8], - /*<>*/ _zv_=I[3], - /*<>*/ _zw_= - /*<>*/ caml_call3(_zv_,vg,_zu_,image), - /*<>*/ _zx_=Gg[2][13], + /*<>*/ _AV_=Gg[2][8], + /*<>*/ _AW_=I[3], + /*<>*/ _AX_= + /*<>*/ caml_call3(_AW_,vg,_AV_,image), + /*<>*/ _AY_=Gg[2][13], /*<>*/ match= - /*<>*/ caml_call1(_zx_,_zw_), + /*<>*/ caml_call1(_AY_,_AX_), /*<>*/ h=match[2], /*<>*/ w=match[1], - /*<>*/ _zy_=rh - h, - /*<>*/ _zz_=[0,_zy_ - oy], - /*<>*/ _zA_=[0,oy], - /*<>*/ _zB_=rw - w; + /*<>*/ _AZ_=rh - h, + /*<>*/ _A0_=[0,_AZ_ - oy], + /*<>*/ _A1_=[0,oy], + /*<>*/ _A2_=rw - w; /*<>*/ return /*<>*/ caml_call5 - (I[15],[0,ox],[0,_zB_ - ox],_zA_,_zz_,image) /*<>*/ } + (I[15],[0,ox],[0,_A2_ - ox],_A1_,_A0_,image) /*<>*/ } /*<>*/ function same_size(vg,w,h,image) { /*<>*/ var - /*<>*/ _zo_=Gg[2][8], - /*<>*/ _zp_=I[3], - /*<>*/ _zq_= - /*<>*/ caml_call3(_zp_,vg,_zo_,image), - /*<>*/ _zr_=[0,w,h], - /*<>*/ _zs_=Gg[2][12], - /*<>*/ _zt_= - /*<>*/ caml_call1(_zs_,_zr_); + /*<>*/ _AP_=Gg[2][8], + /*<>*/ _AQ_=I[3], + /*<>*/ _AR_= + /*<>*/ caml_call3(_AQ_,vg,_AP_,image), + /*<>*/ _AS_=[0,w,h], + /*<>*/ _AT_=Gg[2][12], + /*<>*/ _AU_= + /*<>*/ caml_call1(_AT_,_AS_); /*<>*/ return /*<>*/ caml_call2 - (Gg[2][48],_zt_,_zq_) /*<>*/ } + (Gg[2][48],_AU_,_AR_) /*<>*/ } /*<>*/ 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 _zi_=t[4]; - /*<>*/ if(_zi_) - {var match$0=_zi_[1],drag=match$0[1]; + { /*<>*/ /*<>*/ var _AJ_=t[4]; + /*<>*/ if(_AJ_) + {var match$0=_AJ_[1],drag=match$0[1]; /*<>*/ /*<>*/ caml_call2 (drag,x,y); - var _zj_=1} + var _AK_=1} else - var _zj_=0; - /*<>*/ var _zk_=_zj_} + var _AK_=0; + /*<>*/ var _AL_=_AK_} else { /*<>*/ /*<>*/ release_grab (t,x,y); - var _zk_=1} + var _AL_=1} else { /*<>*/ /*<>*/ var btn=event[2]; /*<>*/ /*<>*/ release_grab (t,x,y); /*<>*/ var - /*<>*/ _zl_=t[2], - /*<>*/ _zm_=Gg[2][13], + /*<>*/ _AM_=t[2], + /*<>*/ _AN_=Gg[2][13], /*<>*/ match$1= - /*<>*/ caml_call1(_zm_,_zl_), + /*<>*/ caml_call1(_AN_,_AM_), /*<>*/ h=match$1[2], /*<>*/ w=match$1[1], - /*<>*/ _zn_=t[3], - _zk_= /*<>*/ _eq_(t,x,y,btn,w,h,_zn_)} - /*<>*/ return _zk_?321312668:-475359645} + /*<>*/ _AO_=t[3], + _AL_= /*<>*/ _eq_(t,x,y,btn,w,h,_AO_)} + /*<>*/ return _AL_?321312668:-475359645} /*<>*/ function render_node(vg,vx1,vy1,vx2,vy2,sw,sh,t) { /*<>*/ var /*<>*/ cache=t[9], - /*<>*/ _v7_=cache[1], - /*<>*/ _v8_=Interval[3], - /*<>*/ _v9_= - /*<>*/ caml_call1(_v8_,_v7_) <= vx1?1:0; - /*<>*/ if(_v9_) + /*<>*/ _xw_=cache[1], + /*<>*/ _xx_=Interval[3], + /*<>*/ _xy_= + /*<>*/ caml_call1(_xx_,_xw_) <= vx1?1:0; + /*<>*/ if(_xy_) { /*<>*/ var - _v__=cache[2], - _v$_=Interval[3], - /*<>*/ _wa_= - /*<>*/ caml_call1(_v$_,_v__) <= vy1?1:0; - /*<>*/ if(_wa_) + _xz_=cache[2], + _xA_=Interval[3], + /*<>*/ _xB_= + /*<>*/ caml_call1(_xA_,_xz_) <= vy1?1:0; + /*<>*/ if(_xB_) { /*<>*/ var - _wb_=cache[1], - _wc_=Interval[4], - /*<>*/ _wd_= - vx2 <= /*<>*/ caml_call1(_wc_,_wb_)?1:0; - /*<>*/ if(_wd_) + _xC_=cache[1], + _xD_=Interval[4], + /*<>*/ _xE_= + vx2 <= /*<>*/ caml_call1(_xD_,_xC_)?1:0; + /*<>*/ if(_xE_) var - _we_=cache[2], - _wf_=Interval[4], - _wg_=vy2 <= /*<>*/ caml_call1(_wf_,_we_)?1:0; + _xF_=cache[2], + _xG_=Interval[4], + _xH_=vy2 <= /*<>*/ caml_call1(_xG_,_xF_)?1:0; else - var _wg_=_wd_} + var _xH_=_xE_} else - var _wg_=_wa_} + var _xH_=_xB_} else - var _wg_=_v9_; - if(_wg_) /*<>*/ return t[9]; + var _xH_=_xy_; + if(_xH_) /*<>*/ return t[9]; if(! (vx2 < 0.) && ! (vy2 < 0.) && ! (sw < vx1) && ! (sh < vy1)) - { /*<>*/ /*<>*/ var _wm_=t[5]; - /*<>*/ switch(_wm_[0]) + { /*<>*/ /*<>*/ var _xN_=t[5]; + /*<>*/ switch(_xN_[0]) {case 0: - var image=_wm_[1],_wn_=t[6],_wo_=Focus[8]; + var image=_xN_[1],_xO_=t[6],_xP_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_wo_,_wn_)) + ( /*<>*/ caml_call1(_xP_,_xO_)) { /*<>*/ var - /*<>*/ _wp_= + /*<>*/ _xQ_= function(m) { /*<>*/ return /*<>*/ caml_call3 (m,0,0,_es_) /*<>*/ }, - /*<>*/ _wq_=0, - /*<>*/ _wr_=Logs[14]; + /*<>*/ _xR_=0, + /*<>*/ _xS_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_wr_,_wq_,_wp_); + (_xS_,_xR_,_xQ_); /*<>*/ var - /*<>*/ _ws_=Style[15], - /*<>*/ _wt_=I[6], - image$0= /*<>*/ caml_call2(_wt_,_ws_,image)} + /*<>*/ _xT_=Style[15], + /*<>*/ _xU_=I[6], + image$0= /*<>*/ caml_call2(_xU_,_xT_,image)} else var image$0=image; /*<>*/ var - /*<>*/ _wu_= + /*<>*/ _xV_= /*<>*/ resize_canvas(vg,sw,sh,image$0), - /*<>*/ _wv_=0., - /*<>*/ _ww_=Interval[1], - /*<>*/ _wx_= - /*<>*/ caml_call2(_ww_,_wv_,sh), - /*<>*/ _wy_=0., - /*<>*/ _wz_=Interval[1], + /*<>*/ _xW_=0., + /*<>*/ _xX_=Interval[1], + /*<>*/ _xY_= + /*<>*/ caml_call2(_xX_,_xW_,sh), + /*<>*/ _xZ_=0., + /*<>*/ _x0_=Interval[1], cache$0= - [0, /*<>*/ caml_call2(_wz_,_wy_,sw),_wx_,_wu_]; + [0, /*<>*/ caml_call2(_x0_,_xZ_,sw),_xY_,_xV_]; break; case 1: - var handler=_wm_[2],desc=_wm_[1]; + var handler=_xN_[2],desc=_xN_[1]; /*<>*/ /*<>*/ caml_call2 (handler,sw,sh); var @@ -569923,400 +569933,400 @@ break; case 4: /*<>*/ var - g=_wm_[4], - t$0=_wm_[1], - _wA_=Gravity[9], - /*<>*/ _wB_= - /*<>*/ caml_call1(_wA_,g), - /*<>*/ _wC_=Gravity[5], - /*<>*/ _wD_= - /*<>*/ caml_call1(_wC_,_wB_), - /*<>*/ _wE_=Gravity[8], - /*<>*/ _wF_= - /*<>*/ caml_call1(_wE_,g), - /*<>*/ _wG_=Gravity[5], - /*<>*/ _wH_= - /*<>*/ caml_call1(_wG_,_wF_), - /*<>*/ _wI_=t$0[3], - /*<>*/ _wJ_=t$0[1], + g=_xN_[4], + t$0=_xN_[1], + _x1_=Gravity[9], + /*<>*/ _x2_= + /*<>*/ caml_call1(_x1_,g), + /*<>*/ _x3_=Gravity[5], + /*<>*/ _x4_= + /*<>*/ caml_call1(_x3_,_x2_), + /*<>*/ _x5_=Gravity[8], + /*<>*/ _x6_= + /*<>*/ caml_call1(_x5_,g), + /*<>*/ _x7_=Gravity[5], + /*<>*/ _x8_= + /*<>*/ caml_call1(_x7_,_x6_), + /*<>*/ _x9_=t$0[3], + /*<>*/ _x__=t$0[1], /*<>*/ match= - /*<>*/ pack(_wJ_,_wI_,sw,_wH_,_wD_), + /*<>*/ pack(_x__,_x9_,sw,_x8_,_x4_), /*<>*/ rw=match[2], /*<>*/ dx=match[1], - /*<>*/ _wK_=Gravity[9], - /*<>*/ _wL_= - /*<>*/ caml_call1(_wK_,g), - /*<>*/ _wM_=Gravity[6], - /*<>*/ _wN_= - /*<>*/ caml_call1(_wM_,_wL_), - /*<>*/ _wO_=Gravity[8], - /*<>*/ _wP_= - /*<>*/ caml_call1(_wO_,g), - /*<>*/ _wQ_=Gravity[6], - /*<>*/ _wR_= - /*<>*/ caml_call1(_wQ_,_wP_), - /*<>*/ _wS_=t$0[4], - /*<>*/ _wT_=t$0[2], + /*<>*/ _x$_=Gravity[9], + /*<>*/ _ya_= + /*<>*/ caml_call1(_x$_,g), + /*<>*/ _yb_=Gravity[6], + /*<>*/ _yc_= + /*<>*/ caml_call1(_yb_,_ya_), + /*<>*/ _yd_=Gravity[8], + /*<>*/ _ye_= + /*<>*/ caml_call1(_yd_,g), + /*<>*/ _yf_=Gravity[6], + /*<>*/ _yg_= + /*<>*/ caml_call1(_yf_,_ye_), + /*<>*/ _yh_=t$0[4], + /*<>*/ _yi_=t$0[2], /*<>*/ match$0= - /*<>*/ pack(_wT_,_wS_,sh,_wR_,_wN_), + /*<>*/ pack(_yi_,_yh_,sh,_yg_,_yc_), /*<>*/ rh=match$0[2], /*<>*/ dy=match$0[1], - /*<>*/ _wU_=vy2 - dy, - /*<>*/ _wV_=vx2 - dx, - /*<>*/ _wW_=vy1 - dy, - /*<>*/ _wX_=vx1 - dx, + /*<>*/ _yj_=vy2 - dy, + /*<>*/ _yk_=vx2 - dx, + /*<>*/ _yl_=vy1 - dy, + /*<>*/ _ym_=vx1 - dx, /*<>*/ c= /*<>*/ render_node - (vg,_wX_,_wW_,_wV_,_wU_,rw,rh,t$0), - /*<>*/ _wY_=c[3], + (vg,_ym_,_yl_,_yk_,_yj_,rw,rh,t$0), + /*<>*/ _yn_=c[3], /*<>*/ image$1= - /*<>*/ resize_canvas2(vg,dx,dy,sw,sh,_wY_), - /*<>*/ _wZ_=c[1], - /*<>*/ _w0_=Interval[2], + /*<>*/ resize_canvas2(vg,dx,dy,sw,sh,_yn_), + /*<>*/ _yo_=c[1], + /*<>*/ _yp_=Interval[2], /*<>*/ vx= - /*<>*/ caml_call2(_w0_,_wZ_,dx), - /*<>*/ _w1_=c[2], - /*<>*/ _w2_=Interval[2], + /*<>*/ caml_call2(_yp_,_yo_,dx), + /*<>*/ _yq_=c[2], + /*<>*/ _yr_=Interval[2], /*<>*/ vy= - /*<>*/ caml_call2(_w2_,_w1_,dy), + /*<>*/ caml_call2(_yr_,_yq_,dy), cache$0=[0,vx,vy,image$1]; break; case 7: /*<>*/ var - sy=_wm_[3], - sx=_wm_[2], - t$1=_wm_[1], - /*<>*/ _w3_=sy + sh, - /*<>*/ _w4_=sx + sw, - /*<>*/ _w5_=vy2 + sy, - /*<>*/ _w6_=vx2 + sx, - /*<>*/ _w7_=vy1 + sy, - /*<>*/ _w8_=vx1 + sx, + sy=_xN_[3], + sx=_xN_[2], + t$1=_xN_[1], + /*<>*/ _ys_=sy + sh, + /*<>*/ _yt_=sx + sw, + /*<>*/ _yu_=vy2 + sy, + /*<>*/ _yv_=vx2 + sx, + /*<>*/ _yw_=vy1 + sy, + /*<>*/ _yx_=vx1 + sx, /*<>*/ cache$1= /*<>*/ render_node - (vg,_w8_,_w7_,_w6_,_w5_,_w4_,_w3_,t$1), - /*<>*/ _w9_=Interval[1], + (vg,_yx_,_yw_,_yv_,_yu_,_yt_,_ys_,t$1), + /*<>*/ _yy_=Interval[1], /*<>*/ vx$0= - /*<>*/ caml_call2(_w9_,vx1,vx2), - /*<>*/ _w__=Interval[1], + /*<>*/ caml_call2(_yy_,vx1,vx2), + /*<>*/ _yz_=Interval[1], /*<>*/ vy$0= - /*<>*/ caml_call2(_w__,vy1,vy2), - /*<>*/ _w$_=cache$1[3], - /*<>*/ _xa_=0, - /*<>*/ _xb_=[0,sy], - /*<>*/ _xc_=0, - /*<>*/ _xd_=[0,sx], - /*<>*/ _xe_=I[12], - /*<>*/ _xf_= + /*<>*/ caml_call2(_yz_,vy1,vy2), + /*<>*/ _yA_=cache$1[3], + /*<>*/ _yB_=0, + /*<>*/ _yC_=[0,sy], + /*<>*/ _yD_=0, + /*<>*/ _yE_=[0,sx], + /*<>*/ _yF_=I[12], + /*<>*/ _yG_= /*<>*/ caml_call5 - (_xe_,_xd_,_xc_,_xb_,_xa_,_w$_), + (_yF_,_yE_,_yD_,_yC_,_yB_,_yA_), /*<>*/ image$2= - /*<>*/ resize_canvas(vg,sw,sh,_xf_), + /*<>*/ resize_canvas(vg,sw,sh,_yG_), cache$0=[0,vx$0,vy$0,image$2]; break; case 8: /*<>*/ var - /*<>*/ t$2=_wm_[1], + /*<>*/ t$2=_xN_[1], cache$0= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,t$2); break; case 9: /*<>*/ var - b=_wm_[2], - a=_wm_[1], - _xg_=b[3], - _xh_=b[1], - _xi_=a[3], - _xj_=a[1], + b=_xN_[2], + a=_xN_[1], + _yH_=b[3], + _yI_=b[1], + _yJ_=a[3], + _yK_=a[1], /*<>*/ match$1= - /*<>*/ split(_xj_,_xi_,_xh_,_xg_,sw), + /*<>*/ split(_yK_,_yJ_,_yI_,_yH_,sw), /*<>*/ bw=match$1[2], /*<>*/ aw=match$1[1], /*<>*/ ca= /*<>*/ render_node(vg,vx1,vy1,vx2,vy2,aw,sh,a), - /*<>*/ _xk_=vx2 - aw, - /*<>*/ _xl_=vx1 - aw, + /*<>*/ _yL_=vx2 - aw, + /*<>*/ _yM_=vx1 - aw, /*<>*/ cb= /*<>*/ render_node - (vg,_xl_,vy1,_xk_,vy2,bw,sh,b), - /*<>*/ _xm_=cb[1], - /*<>*/ _xn_=Interval[4], - /*<>*/ _xo_= - /*<>*/ caml_call1(_xn_,_xm_), - /*<>*/ _xp_=_xo_ + aw, - /*<>*/ _xq_=ca[1], - /*<>*/ _xr_=Interval[4], - /*<>*/ _xs_= - /*<>*/ caml_call1(_xr_,_xq_), - /*<>*/ _xt_=Stdlib[16], - /*<>*/ _xu_= - /*<>*/ caml_call2(_xt_,_xs_,_xp_), - /*<>*/ _xv_=cb[1], - /*<>*/ _xw_=Interval[3], - /*<>*/ _xx_= - /*<>*/ caml_call1(_xw_,_xv_), - /*<>*/ _xy_=_xx_ + aw, - /*<>*/ _xz_=ca[1], - /*<>*/ _xA_=Interval[3], - /*<>*/ _xB_= - /*<>*/ caml_call1(_xA_,_xz_), - /*<>*/ _xC_=Stdlib[17], - /*<>*/ _xD_= - /*<>*/ caml_call2(_xC_,_xB_,_xy_), - /*<>*/ _xE_=Interval[1], + (vg,_yM_,vy1,_yL_,vy2,bw,sh,b), + /*<>*/ _yN_=cb[1], + /*<>*/ _yO_=Interval[4], + /*<>*/ _yP_= + /*<>*/ caml_call1(_yO_,_yN_), + /*<>*/ _yQ_=_yP_ + aw, + /*<>*/ _yR_=ca[1], + /*<>*/ _yS_=Interval[4], + /*<>*/ _yT_= + /*<>*/ caml_call1(_yS_,_yR_), + /*<>*/ _yU_=Stdlib[16], + /*<>*/ _yV_= + /*<>*/ caml_call2(_yU_,_yT_,_yQ_), + /*<>*/ _yW_=cb[1], + /*<>*/ _yX_=Interval[3], + /*<>*/ _yY_= + /*<>*/ caml_call1(_yX_,_yW_), + /*<>*/ _yZ_=_yY_ + aw, + /*<>*/ _y0_=ca[1], + /*<>*/ _y1_=Interval[3], + /*<>*/ _y2_= + /*<>*/ caml_call1(_y1_,_y0_), + /*<>*/ _y3_=Stdlib[17], + /*<>*/ _y4_= + /*<>*/ caml_call2(_y3_,_y2_,_yZ_), + /*<>*/ _y5_=Interval[1], /*<>*/ vx$1= - /*<>*/ caml_call2(_xE_,_xD_,_xu_), - /*<>*/ _xF_=cb[2], - /*<>*/ _xG_=Interval[4], - /*<>*/ _xH_= - /*<>*/ caml_call1(_xG_,_xF_), - /*<>*/ _xI_=ca[2], - /*<>*/ _xJ_=Interval[4], - /*<>*/ _xK_= - /*<>*/ caml_call1(_xJ_,_xI_), - /*<>*/ _xL_=Stdlib[16], - /*<>*/ _xM_= - /*<>*/ caml_call2(_xL_,_xK_,_xH_), - /*<>*/ _xN_=cb[2], - /*<>*/ _xO_=Interval[3], - /*<>*/ _xP_= - /*<>*/ caml_call1(_xO_,_xN_), - /*<>*/ _xQ_=ca[2], - /*<>*/ _xR_=Interval[3], - /*<>*/ _xS_= - /*<>*/ caml_call1(_xR_,_xQ_), - /*<>*/ _xT_=Stdlib[17], - /*<>*/ _xU_= - /*<>*/ caml_call2(_xT_,_xS_,_xP_), - /*<>*/ _xV_=Interval[1], + /*<>*/ caml_call2(_y5_,_y4_,_yV_), + /*<>*/ _y6_=cb[2], + /*<>*/ _y7_=Interval[4], + /*<>*/ _y8_= + /*<>*/ caml_call1(_y7_,_y6_), + /*<>*/ _y9_=ca[2], + /*<>*/ _y__=Interval[4], + /*<>*/ _y$_= + /*<>*/ caml_call1(_y__,_y9_), + /*<>*/ _za_=Stdlib[16], + /*<>*/ _zb_= + /*<>*/ caml_call2(_za_,_y$_,_y8_), + /*<>*/ _zc_=cb[2], + /*<>*/ _zd_=Interval[3], + /*<>*/ _ze_= + /*<>*/ caml_call1(_zd_,_zc_), + /*<>*/ _zf_=ca[2], + /*<>*/ _zg_=Interval[3], + /*<>*/ _zh_= + /*<>*/ caml_call1(_zg_,_zf_), + /*<>*/ _zi_=Stdlib[17], + /*<>*/ _zj_= + /*<>*/ caml_call2(_zi_,_zh_,_ze_), + /*<>*/ _zk_=Interval[1], /*<>*/ vy$1= - /*<>*/ caml_call2(_xV_,_xU_,_xM_), - /*<>*/ _xW_=cb[3], - /*<>*/ _xX_=ca[3], - /*<>*/ _xY_=I[7], - /*<>*/ _xZ_= - /*<>*/ caml_call2(_xY_,_xX_,_xW_), + /*<>*/ caml_call2(_zk_,_zj_,_zb_), + /*<>*/ _zl_=cb[3], + /*<>*/ _zm_=ca[3], + /*<>*/ _zn_=I[7], + /*<>*/ _zo_= + /*<>*/ caml_call2(_zn_,_zm_,_zl_), /*<>*/ image$3= - /*<>*/ resize_canvas(vg,sw,sh,_xZ_), + /*<>*/ resize_canvas(vg,sw,sh,_zo_), cache$0=[0,vx$1,vy$1,image$3]; break; case 10: /*<>*/ var - b$0=_wm_[2], - a$0=_wm_[1], - _x0_=b$0[4], - _x1_=b$0[2], - _x2_=a$0[4], - _x3_=a$0[2], + b$0=_xN_[2], + a$0=_xN_[1], + _zp_=b$0[4], + _zq_=b$0[2], + _zr_=a$0[4], + _zs_=a$0[2], /*<>*/ match$2= - /*<>*/ split(_x3_,_x2_,_x1_,_x0_,sh), + /*<>*/ split(_zs_,_zr_,_zq_,_zp_,sh), /*<>*/ bh=match$2[2], /*<>*/ ah=match$2[1], /*<>*/ ca$0= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,ah,a$0), - /*<>*/ _x4_=vy2 - ah, - /*<>*/ _x5_=vy1 - ah, + /*<>*/ _zt_=vy2 - ah, + /*<>*/ _zu_=vy1 - ah, /*<>*/ cb$0= /*<>*/ render_node - (vg,vx1,_x5_,vx2,_x4_,sw,bh,b$0), - /*<>*/ _x6_=cb$0[1], - /*<>*/ _x7_=Interval[4], - /*<>*/ _x8_= - /*<>*/ caml_call1(_x7_,_x6_), - /*<>*/ _x9_=ca$0[1], - /*<>*/ _x__=Interval[4], - /*<>*/ _x$_= - /*<>*/ caml_call1(_x__,_x9_), - /*<>*/ _ya_=Stdlib[16], - /*<>*/ _yb_= - /*<>*/ caml_call2(_ya_,_x$_,_x8_), - /*<>*/ _yc_=cb$0[1], - /*<>*/ _yd_=Interval[3], - /*<>*/ _ye_= - /*<>*/ caml_call1(_yd_,_yc_), - /*<>*/ _yf_=ca$0[1], - /*<>*/ _yg_=Interval[3], - /*<>*/ _yh_= - /*<>*/ caml_call1(_yg_,_yf_), - /*<>*/ _yi_=Stdlib[17], - /*<>*/ _yj_= - /*<>*/ caml_call2(_yi_,_yh_,_ye_), - /*<>*/ _yk_=Interval[1], + (vg,vx1,_zu_,vx2,_zt_,sw,bh,b$0), + /*<>*/ _zv_=cb$0[1], + /*<>*/ _zw_=Interval[4], + /*<>*/ _zx_= + /*<>*/ caml_call1(_zw_,_zv_), + /*<>*/ _zy_=ca$0[1], + /*<>*/ _zz_=Interval[4], + /*<>*/ _zA_= + /*<>*/ caml_call1(_zz_,_zy_), + /*<>*/ _zB_=Stdlib[16], + /*<>*/ _zC_= + /*<>*/ caml_call2(_zB_,_zA_,_zx_), + /*<>*/ _zD_=cb$0[1], + /*<>*/ _zE_=Interval[3], + /*<>*/ _zF_= + /*<>*/ caml_call1(_zE_,_zD_), + /*<>*/ _zG_=ca$0[1], + /*<>*/ _zH_=Interval[3], + /*<>*/ _zI_= + /*<>*/ caml_call1(_zH_,_zG_), + /*<>*/ _zJ_=Stdlib[17], + /*<>*/ _zK_= + /*<>*/ caml_call2(_zJ_,_zI_,_zF_), + /*<>*/ _zL_=Interval[1], /*<>*/ vx$2= - /*<>*/ caml_call2(_yk_,_yj_,_yb_), - /*<>*/ _yl_=cb$0[2], - /*<>*/ _ym_=Interval[4], - /*<>*/ _yn_= - /*<>*/ caml_call1(_ym_,_yl_), - /*<>*/ _yo_=_yn_ + ah, - /*<>*/ _yp_=ca$0[2], - /*<>*/ _yq_=Interval[4], - /*<>*/ _yr_= - /*<>*/ caml_call1(_yq_,_yp_), - /*<>*/ _ys_=Stdlib[16], - /*<>*/ _yt_= - /*<>*/ caml_call2(_ys_,_yr_,_yo_), - /*<>*/ _yu_=cb$0[2], - /*<>*/ _yv_=Interval[3], - /*<>*/ _yw_= - /*<>*/ caml_call1(_yv_,_yu_), - /*<>*/ _yx_=_yw_ + ah, - /*<>*/ _yy_=ca$0[2], - /*<>*/ _yz_=Interval[3], - /*<>*/ _yA_= - /*<>*/ caml_call1(_yz_,_yy_), - /*<>*/ _yB_=Stdlib[17], - /*<>*/ _yC_= - /*<>*/ caml_call2(_yB_,_yA_,_yx_), - /*<>*/ _yD_=Interval[1], + /*<>*/ caml_call2(_zL_,_zK_,_zC_), + /*<>*/ _zM_=cb$0[2], + /*<>*/ _zN_=Interval[4], + /*<>*/ _zO_= + /*<>*/ caml_call1(_zN_,_zM_), + /*<>*/ _zP_=_zO_ + ah, + /*<>*/ _zQ_=ca$0[2], + /*<>*/ _zR_=Interval[4], + /*<>*/ _zS_= + /*<>*/ caml_call1(_zR_,_zQ_), + /*<>*/ _zT_=Stdlib[16], + /*<>*/ _zU_= + /*<>*/ caml_call2(_zT_,_zS_,_zP_), + /*<>*/ _zV_=cb$0[2], + /*<>*/ _zW_=Interval[3], + /*<>*/ _zX_= + /*<>*/ caml_call1(_zW_,_zV_), + /*<>*/ _zY_=_zX_ + ah, + /*<>*/ _zZ_=ca$0[2], + /*<>*/ _z0_=Interval[3], + /*<>*/ _z1_= + /*<>*/ caml_call1(_z0_,_zZ_), + /*<>*/ _z2_=Stdlib[17], + /*<>*/ _z3_= + /*<>*/ caml_call2(_z2_,_z1_,_zY_), + /*<>*/ _z4_=Interval[1], /*<>*/ vy$2= - /*<>*/ caml_call2(_yD_,_yC_,_yt_), - /*<>*/ _yE_=cb$0[3], - /*<>*/ _yF_=ca$0[3], - /*<>*/ _yG_=I[8], - /*<>*/ _yH_= - /*<>*/ caml_call2(_yG_,_yF_,_yE_), + /*<>*/ caml_call2(_z4_,_z3_,_zU_), + /*<>*/ _z5_=cb$0[3], + /*<>*/ _z6_=ca$0[3], + /*<>*/ _z7_=I[8], + /*<>*/ _z8_= + /*<>*/ caml_call2(_z7_,_z6_,_z5_), /*<>*/ image$4= - /*<>*/ resize_canvas(vg,sw,sh,_yH_), + /*<>*/ resize_canvas(vg,sw,sh,_z8_), cache$0=[0,vx$2,vy$2,image$4]; break; case 11: /*<>*/ var - b$1=_wm_[2], - a$1=_wm_[1], + b$1=_xN_[2], + a$1=_xN_[1], /*<>*/ ca$1= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,a$1), /*<>*/ cb$1= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,b$1), - /*<>*/ _yI_=cb$1[1], - /*<>*/ _yJ_=Interval[4], - /*<>*/ _yK_= - /*<>*/ caml_call1(_yJ_,_yI_), - /*<>*/ _yL_=ca$1[1], - /*<>*/ _yM_=Interval[4], - /*<>*/ _yN_= - /*<>*/ caml_call1(_yM_,_yL_), - /*<>*/ _yO_=Stdlib[16], - /*<>*/ _yP_= - /*<>*/ caml_call2(_yO_,_yN_,_yK_), - /*<>*/ _yQ_=cb$1[1], - /*<>*/ _yR_=Interval[3], - /*<>*/ _yS_= - /*<>*/ caml_call1(_yR_,_yQ_), - /*<>*/ _yT_=ca$1[1], - /*<>*/ _yU_=Interval[3], - /*<>*/ _yV_= - /*<>*/ caml_call1(_yU_,_yT_), - /*<>*/ _yW_=Stdlib[17], - /*<>*/ _yX_= - /*<>*/ caml_call2(_yW_,_yV_,_yS_), - /*<>*/ _yY_=Interval[1], + /*<>*/ _z9_=cb$1[1], + /*<>*/ _z__=Interval[4], + /*<>*/ _z$_= + /*<>*/ caml_call1(_z__,_z9_), + /*<>*/ _Aa_=ca$1[1], + /*<>*/ _Ab_=Interval[4], + /*<>*/ _Ac_= + /*<>*/ caml_call1(_Ab_,_Aa_), + /*<>*/ _Ad_=Stdlib[16], + /*<>*/ _Ae_= + /*<>*/ caml_call2(_Ad_,_Ac_,_z$_), + /*<>*/ _Af_=cb$1[1], + /*<>*/ _Ag_=Interval[3], + /*<>*/ _Ah_= + /*<>*/ caml_call1(_Ag_,_Af_), + /*<>*/ _Ai_=ca$1[1], + /*<>*/ _Aj_=Interval[3], + /*<>*/ _Ak_= + /*<>*/ caml_call1(_Aj_,_Ai_), + /*<>*/ _Al_=Stdlib[17], + /*<>*/ _Am_= + /*<>*/ caml_call2(_Al_,_Ak_,_Ah_), + /*<>*/ _An_=Interval[1], /*<>*/ vx$3= - /*<>*/ caml_call2(_yY_,_yX_,_yP_), - /*<>*/ _yZ_=cb$1[2], - /*<>*/ _y0_=Interval[4], - /*<>*/ _y1_= - /*<>*/ caml_call1(_y0_,_yZ_), - /*<>*/ _y2_=ca$1[2], - /*<>*/ _y3_=Interval[4], - /*<>*/ _y4_= - /*<>*/ caml_call1(_y3_,_y2_), - /*<>*/ _y5_=Stdlib[16], - /*<>*/ _y6_= - /*<>*/ caml_call2(_y5_,_y4_,_y1_), - /*<>*/ _y7_=cb$1[2], - /*<>*/ _y8_=Interval[3], - /*<>*/ _y9_= - /*<>*/ caml_call1(_y8_,_y7_), - /*<>*/ _y__=ca$1[2], - /*<>*/ _y$_=Interval[3], - /*<>*/ _za_= - /*<>*/ caml_call1(_y$_,_y__), - /*<>*/ _zb_=Stdlib[17], - /*<>*/ _zc_= - /*<>*/ caml_call2(_zb_,_za_,_y9_), - /*<>*/ _zd_=Interval[1], + /*<>*/ caml_call2(_An_,_Am_,_Ae_), + /*<>*/ _Ao_=cb$1[2], + /*<>*/ _Ap_=Interval[4], + /*<>*/ _Aq_= + /*<>*/ caml_call1(_Ap_,_Ao_), + /*<>*/ _Ar_=ca$1[2], + /*<>*/ _As_=Interval[4], + /*<>*/ _At_= + /*<>*/ caml_call1(_As_,_Ar_), + /*<>*/ _Au_=Stdlib[16], + /*<>*/ _Av_= + /*<>*/ caml_call2(_Au_,_At_,_Aq_), + /*<>*/ _Aw_=cb$1[2], + /*<>*/ _Ax_=Interval[3], + /*<>*/ _Ay_= + /*<>*/ caml_call1(_Ax_,_Aw_), + /*<>*/ _Az_=ca$1[2], + /*<>*/ _AA_=Interval[3], + /*<>*/ _AB_= + /*<>*/ caml_call1(_AA_,_Az_), + /*<>*/ _AC_=Stdlib[17], + /*<>*/ _AD_= + /*<>*/ caml_call2(_AC_,_AB_,_Ay_), + /*<>*/ _AE_=Interval[1], /*<>*/ vy$3= - /*<>*/ caml_call2(_zd_,_zc_,_y6_), - /*<>*/ _ze_=ca$1[3], - /*<>*/ _zf_=cb$1[3], - /*<>*/ _zg_=I[9], - /*<>*/ _zh_= - /*<>*/ caml_call2(_zg_,_zf_,_ze_), + /*<>*/ caml_call2(_AE_,_AD_,_Av_), + /*<>*/ _AF_=ca$1[3], + /*<>*/ _AG_=cb$1[3], + /*<>*/ _AH_=I[9], + /*<>*/ _AI_= + /*<>*/ caml_call2(_AH_,_AG_,_AF_), /*<>*/ image$5= - /*<>*/ resize_canvas(vg,sw,sh,_zh_), + /*<>*/ resize_canvas(vg,sw,sh,_AI_), cache$0=[0,vx$3,vy$3,image$5]; break; case 2: case 3: var - desc$0=_wm_[1], + desc$0=_xN_[1], cache$0= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,desc$0); break; default: var - desc$1=_wm_[1], + desc$1=_xN_[1], cache$0= /*<>*/ render_node (vg,vx1,vy1,vx2,vy2,sw,sh,desc$1)} /*<>*/ t[9] = cache$0; /*<>*/ return cache$0} /*<>*/ var - /*<>*/ _wh_=I[5], - /*<>*/ _wi_= - /*<>*/ caml_call2(_wh_,sw,sh), - /*<>*/ _wj_=Interval[1], - /*<>*/ _wk_= - /*<>*/ caml_call2(_wj_,vy1,vy2), - /*<>*/ _wl_=Interval[1]; + /*<>*/ _xI_=I[5], + /*<>*/ _xJ_= + /*<>*/ caml_call2(_xI_,sw,sh), + /*<>*/ _xK_=Interval[1], + /*<>*/ _xL_= + /*<>*/ caml_call2(_xK_,vy1,vy2), + /*<>*/ _xM_=Interval[1]; /*<>*/ return [0, - /*<>*/ caml_call2(_wl_,vx1,vx2), - _wk_, - _wi_] /*<>*/ } + /*<>*/ caml_call2(_xM_,vx1,vx2), + _xL_, + _xJ_] /*<>*/ } /*<>*/ function image(vg,param) { /*<>*/ var size=param[2], view=param[3], - _v1_=Gg[2][13], + _xq_=Gg[2][13], /*<>*/ match= - /*<>*/ caml_call1(_v1_,size), + /*<>*/ caml_call1(_xq_,size), /*<>*/ h=match[2], /*<>*/ w=match[1]; - /*<>*/ function _v2_(m) + /*<>*/ function _xr_(m) { /*<>*/ return /*<>*/ caml_call5 (m,0,0,_et_,Ui[38],view) /*<>*/ } /*<>*/ var - /*<>*/ _v3_=0, - /*<>*/ _v4_=Logs[14]; + /*<>*/ _xs_=0, + /*<>*/ _xt_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_v4_,_v3_,_v2_); + (_xt_,_xs_,_xr_); /*<>*/ var - /*<>*/ _v5_=0., - /*<>*/ _v6_=0.; + /*<>*/ _xu_=0., + /*<>*/ _xv_=0.; /*<>*/ return /*<>*/ render_node - (vg,_v6_,_v5_,w,h,w,h,view) + (vg,_xv_,_xu_,w,h,w,h,view) [3]} /*<>*/ 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],_vW_=ui[5]; - switch(_vW_[0]) + {var tl=st$0[2],ui=st$0[1],_xl_=ui[5]; + switch(_xl_[0]) {case 0:var st$0=tl;continue; case 6: /*<>*/ var - f=_vW_[2], - t$0=_vW_[1], - _vX_=[0,t$0,0], + f=_xl_[2], + t$0=_xl_[1], + _xm_=[0,t$0,0], /*<>*/ match= - /*<>*/ iter(_vX_); + /*<>*/ iter(_xm_); /*<>*/ if(321312668 <= match) /*<>*/ return 321312668; /*<>*/ /*<>*/ var @@ -570328,11 +570338,11 @@ continue; case 8: /*<>*/ var - f$0=_vW_[2], - t$1=_vW_[1], - _vY_=[0,3752319,key], + f$0=_xl_[2], + t$1=_xl_[1], + _xn_=[0,3752319,key], /*<>*/ match$1= - /*<>*/ caml_call1(f$0,_vY_); + /*<>*/ caml_call1(f$0,_xn_); /*<>*/ if(321312668 <= match$1) /*<>*/ return 321312668; /*<>*/ var @@ -570343,17 +570353,17 @@ case 10: case 11: /*<>*/ var - b=_vW_[2], - a=_vW_[1], - _vZ_=b[6], - _v0_=Focus[8], + b=_xl_[2], + a=_xl_[1], + _xo_=b[6], + _xp_=Focus[8], /*<>*/ st$3= - /*<>*/ caml_call1(_v0_,_vZ_) + /*<>*/ caml_call1(_xp_,_xo_) ?[0,b,tl] :[0,a,[0,b,tl]], st$0=st$3; continue; - default:var t=_vW_[1],st$1=[0,t,tl],st$0=st$1;continue}} + default:var t=_xl_[1],st$1=[0,t,tl],st$0=st$1;continue}} /*<>*/ return -475359645} /*<>*/ } /*<>*/ return /*<>*/ iter ([0,st[3],0]) /*<>*/ } @@ -570364,101 +570374,101 @@ /*<>*/ runtime.caml_fresh_oo_id(0)]; /*<>*/ function grab_focus(ui) { /*<>*/ function aux(ui) - { /*<>*/ /*<>*/ var _vU_=ui[6]; - /*<>*/ if(typeof _vU_ === "number") + { /*<>*/ /*<>*/ var _xj_=ui[6]; + /*<>*/ if(typeof _xj_ === "number") /*<>*/ return 0; else - { /*<>*/ if(0 === _vU_[0]) + { /*<>*/ if(0 === _xj_[0]) { /*<>*/ var - /*<>*/ v=_vU_[2], - /*<>*/ _vV_=Focus[3]; + /*<>*/ v=_xj_[2], + /*<>*/ _xk_=Focus[3]; /*<>*/ /*<>*/ caml_call1 - (_vV_,v); + (_xk_,v); /*<>*/ throw Acquired_focus} /*<>*/ return /*<>*/ caml_call2 (Ui[40],aux,ui)} /*<>*/ } - /*<>*/ function _vM_(m) + /*<>*/ function _xb_(m) { /*<>*/ return /*<>*/ caml_call3 (m,0,0,_eu_) /*<>*/ } /*<>*/ var - /*<>*/ _vN_=0, - /*<>*/ _vO_=Logs[14]; + /*<>*/ _xc_=0, + /*<>*/ _xd_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_vO_,_vN_,_vM_); + (_xd_,_xc_,_xb_); /*<>*/ try { /*<>*/ /*<>*/ aux(ui); - /*<>*/ /*<>*/ var _vS_=0; - return _vS_} - catch(_vT_) - {_vT_ = caml_wrap_exception(_vT_); - if(_vT_ === Acquired_focus) + /*<>*/ /*<>*/ var _xh_=0; + return _xh_} + catch(_xi_) + {_xi_ = caml_wrap_exception(_xi_); + if(_xi_ === Acquired_focus) { /*<>*/ var - /*<>*/ _vP_= + /*<>*/ _xe_= function(m) { /*<>*/ return /*<>*/ caml_call3 (m,0,0,_ev_) /*<>*/ }, - /*<>*/ _vQ_=0, - /*<>*/ _vR_=Logs[12]; + /*<>*/ _xf_=0, + /*<>*/ _xg_=Logs[12]; /*<>*/ /*<>*/ caml_call2 - (_vR_,_vQ_,_vP_); + (_xg_,_xf_,_xe_); /*<>*/ return 1} - /*<>*/ throw _vT_} /*<>*/ } + /*<>*/ throw _xi_} /*<>*/ } /*<>*/ function dispatch_focus(t,dir) { /*<>*/ var t$0=t; /*<>*/ for(;;) - { /*<>*/ /*<>*/ var _vk_=t$0[5]; - /*<>*/ switch(_vk_[0]) + { /*<>*/ /*<>*/ var _wL_=t$0[5]; + /*<>*/ switch(_wL_[0]) {case 0: /*<>*/ return 0; case 6: /*<>*/ var - /*<>*/ t$2=_vk_[1], - /*<>*/ _vl_=t$2[6], - /*<>*/ _vm_=Focus[8]; + /*<>*/ t$2=_wL_[1], + /*<>*/ _wM_=t$2[6], + /*<>*/ _wN_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vm_,_vl_)) + ( /*<>*/ caml_call1(_wN_,_wM_)) { /*<>*/ var - /*<>*/ _vn_= + /*<>*/ _wO_= function(m) { /*<>*/ return /*<>*/ caml_call3 (m,0,0,_ew_) /*<>*/ }, - /*<>*/ _vo_=0, - /*<>*/ _vp_=Logs[14]; + /*<>*/ _wP_=0, + /*<>*/ _wQ_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_vp_,_vo_,_vn_); + (_wQ_,_wP_,_wO_); /*<>*/ /*<>*/ var - _vq_= + _wR_= /*<>*/ dispatch_focus(t$2,dir); - /*<>*/ return _vq_?_vq_:grab_focus(t$0)} + /*<>*/ return _wR_?_wR_:grab_focus(t$0)} /*<>*/ var - /*<>*/ _vr_=t$0[6], - /*<>*/ _vs_=Focus[8]; + /*<>*/ _wS_=t$0[6], + /*<>*/ _wT_=Focus[8]; /*<>*/ return /*<>*/ caml_call1 - (_vs_,_vr_) + (_wT_,_wS_) ?0 : /*<>*/ grab_focus(t$0); case 9: - var b=_vk_[2],a=_vk_[1],_vt_=a[6],_vu_=Focus[8]; + var b=_wL_[2],a=_wL_[1],_wU_=a[6],_wV_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vu_,_vt_)) + ( /*<>*/ caml_call1(_wV_,_wU_)) { /*<>*/ /*<>*/ var - _vv_= + _wW_= /*<>*/ dispatch_focus(a,dir); - /*<>*/ if(_vv_) - /*<>*/ return _vv_; + /*<>*/ if(_wW_) + /*<>*/ return _wW_; if(-57574468 !== dir && 870035731 !== dir) /*<>*/ return 0; /*<>*/ var t$0=b; continue} /*<>*/ var - /*<>*/ _vw_=b[6], - /*<>*/ _vx_=Focus[8]; + /*<>*/ _wX_=b[6], + /*<>*/ _wY_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vx_,_vw_)) + ( /*<>*/ caml_call1(_wY_,_wX_)) { /*<>*/ /*<>*/ var - _vy_= + _wZ_= /*<>*/ dispatch_focus(b,dir); - /*<>*/ if(_vy_) - /*<>*/ return _vy_; + /*<>*/ if(_wZ_) + /*<>*/ return _wZ_; if(847852583 !== dir && 892857107 !== dir) /*<>*/ return 0; /*<>*/ var t$0=a; @@ -570468,74 +570478,74 @@ {if(870035731 === dir)switch$0 = 1} else if(19067 !== dir)switch$0 = 1; - /*<>*/ if(switch$0) + /*<>*/ if(switch$0) { /*<>*/ /*<>*/ var - _vz_= + _w0_= /*<>*/ dispatch_focus(a,dir); - /*<>*/ if(_vz_)return _vz_; + /*<>*/ if(_w0_)return _w0_; /*<>*/ var t$0=b; continue} /*<>*/ /*<>*/ var - _vA_= + _w1_= /*<>*/ dispatch_focus(b,dir); - /*<>*/ if(_vA_) - /*<>*/ return _vA_; + /*<>*/ if(_w1_) + /*<>*/ return _w1_; /*<>*/ var t$0=a; continue; case 10: - var b$0=_vk_[2],a$0=_vk_[1],_vB_=a$0[6],_vC_=Focus[8]; + var b$0=_wL_[2],a$0=_wL_[1],_w2_=a$0[6],_w3_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vC_,_vB_)) + ( /*<>*/ caml_call1(_w3_,_w2_)) { /*<>*/ /*<>*/ var - _vD_= + _w4_= /*<>*/ dispatch_focus(a$0,dir); - /*<>*/ if(_vD_) - /*<>*/ return _vD_; + /*<>*/ if(_w4_) + /*<>*/ return _w4_; if(759637122 !== dir && 870035731 !== dir) /*<>*/ return 0; /*<>*/ var t$0=b$0; continue} /*<>*/ var - /*<>*/ _vE_=b$0[6], - /*<>*/ _vF_=Focus[8]; + /*<>*/ _w5_=b$0[6], + /*<>*/ _w6_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vF_,_vE_)) + ( /*<>*/ caml_call1(_w6_,_w5_)) { /*<>*/ /*<>*/ var - _vG_= + _w7_= /*<>*/ dispatch_focus(b$0,dir); - /*<>*/ if(_vG_) - /*<>*/ return _vG_; + /*<>*/ if(_w7_) + /*<>*/ return _w7_; if(19067 !== dir && 892857107 !== dir) /*<>*/ return 0; /*<>*/ var t$0=a$0; continue} if(19067 !== dir && ! (892857107 <= dir)) { /*<>*/ /*<>*/ var - _vI_= + _w9_= /*<>*/ dispatch_focus(a$0,dir); - /*<>*/ if(_vI_) - /*<>*/ return _vI_; + /*<>*/ if(_w9_) + /*<>*/ return _w9_; /*<>*/ var t$0=b$0; continue} /*<>*/ /*<>*/ var - _vH_= + _w8_= /*<>*/ dispatch_focus(b$0,dir); - /*<>*/ if(_vH_)return _vH_; + /*<>*/ if(_w8_)return _w8_; /*<>*/ var t$0=a$0; continue; case 11: - var b$1=_vk_[2],a$1=_vk_[1],_vJ_=a$1[6],_vK_=Focus[8]; + var b$1=_wL_[2],a$1=_wL_[1],_w__=a$1[6],_w$_=Focus[8]; /*<>*/ if - ( /*<>*/ caml_call1(_vK_,_vJ_)) + ( /*<>*/ caml_call1(_w$_,_w__)) {var t$0=a$1;continue} /*<>*/ /*<>*/ var - _vL_= + _xa_= /*<>*/ dispatch_focus(b$1,dir); - /*<>*/ if(_vL_) - /*<>*/ return _vL_; + /*<>*/ if(_xa_) + /*<>*/ return _xa_; /*<>*/ var t$0=a$1; continue; - default:var t$1=_vk_[1],t$0=t$1;continue}} /*<>*/ } + default:var t$1=_wL_[1],t$0=t$1;continue}} /*<>*/ } /*<>*/ function dispatch_key(st,key) { /*<>*/ var key$0=key; /*<>*/ for(;;) @@ -570544,51 +570554,51 @@ /*<>*/ dispatch_raw_key(st,key$0); /*<>*/ if(321312668 <= match) /*<>*/ return 321312668; - /*<>*/ var _vc_=key$0[1]; - if(typeof _vc_ === "number") - {if(4198965 === _vc_) + /*<>*/ var _wD_=key$0[1]; + if(typeof _wD_ === "number") + {if(4198965 === _wD_) { /*<>*/ var /*<>*/ mods=key$0[2], - /*<>*/ _vd_=256924770, - /*<>*/ _ve_=Stdlib_List[36], + /*<>*/ _wE_=256924770, + /*<>*/ _wF_=Stdlib_List[36], /*<>*/ dir= - /*<>*/ caml_call2(_ve_,_vd_,mods) + /*<>*/ caml_call2(_wF_,_wE_,mods) ?892857107 :870035731, /*<>*/ key$1=[0,[0,397856696,dir],mods], key$0=key$1; continue}} else - {var _vf_=_vc_[1]; - if(397856696 === _vf_) + {var _wG_=_wD_[1]; + if(397856696 === _wG_) { /*<>*/ var - /*<>*/ dir$0=_vc_[2], - /*<>*/ _vg_=st[3], + /*<>*/ dir$0=_wD_[2], + /*<>*/ _wH_=st[3], /*<>*/ r= - /*<>*/ dispatch_focus(_vg_,dir$0), - /*<>*/ _vh_= + /*<>*/ dispatch_focus(_wH_,dir$0), + /*<>*/ _wI_= function(m) { /*<>*/ return /*<>*/ caml_call6 (m,0,0,_ex_,Ui[3],key$0,r) /*<>*/ }, - /*<>*/ _vi_=0, - /*<>*/ _vj_=r?Logs[14]:Logs[12]; + /*<>*/ _wJ_=0, + /*<>*/ _wK_=r?Logs[14]:Logs[12]; /*<>*/ /*<>*/ caml_call2 - (_vj_,_vi_,_vh_); + (_wK_,_wJ_,_wI_); /*<>*/ return r?321312668:-475359645} - if(951904681 === _vf_ && ! key$0[2]) + if(951904681 === _wG_ && ! key$0[2]) { /*<>*/ var - /*<>*/ dir$1=_vc_[2], + /*<>*/ dir$1=_wD_[2], /*<>*/ key$2=[0,[0,397856696,dir$1],_ey_], key$0=key$2; continue}} /*<>*/ return -475359645} /*<>*/ } /*<>*/ function dispatch_event(t,param) - { /*<>*/ var _vb_=param[1]; - if(3752319 === _vb_) + { /*<>*/ var _wC_=param[1]; + if(3752319 === _wC_) { /*<>*/ /*<>*/ var key=param[2]; /*<>*/ return /*<>*/ dispatch_key (t,key)} - if(529696261 <= _vb_) + if(529696261 <= _wC_) { /*<>*/ /*<>*/ var mouse= param[2]; @@ -570626,136 +570636,136 @@ /*<>*/ Nottui= [0,maxi,mini,Focus,Gravity,Interval,Ui,Renderer]; /*<>*/ function copy_until(quit,f,input) - { /*<>*/ function _uX_(param) + { /*<>*/ function _wm_(param) { /*<>*/ return 0 /*<>*/ } /*<>*/ var - /*<>*/ _uY_=Lwt[28], + /*<>*/ _wn_=Lwt[28], /*<>*/ quit$0= - /*<>*/ caml_call2(_uY_,_uX_,quit), - /*<>*/ _uZ_=0, - /*<>*/ _u0_=Lwt_stream[4], + /*<>*/ caml_call2(_wn_,_wm_,quit), + /*<>*/ _wo_=0, + /*<>*/ _wp_=Lwt_stream[4], /*<>*/ match= - /*<>*/ caml_call1(_u0_,_uZ_), + /*<>*/ caml_call1(_wp_,_wo_), /*<>*/ push=match[2], /*<>*/ stream=match[1]; /*<>*/ function aux(param) - { /*<>*/ function _u2_(result) + { /*<>*/ function _wr_(result) { /*<>*/ if(result) { /*<>*/ var /*<>*/ x=result[1], - /*<>*/ _u9_= + /*<>*/ _wy_= [0, /*<>*/ caml_call1(f,x)]; /*<>*/ /*<>*/ caml_call1 - (push,_u9_); + (push,_wy_); /*<>*/ var - /*<>*/ _u__=Lwt_stream[27], - /*<>*/ _u$_= - /*<>*/ caml_call1(_u__,input); + /*<>*/ _wz_=Lwt_stream[27], + /*<>*/ _wA_= + /*<>*/ caml_call1(_wz_,input); /*<>*/ return /*<>*/ caml_call2 - (Lwt[6],_u$_,aux)} - /*<>*/ /*<>*/ var _va_=0; + (Lwt[6],_wA_,aux)} + /*<>*/ /*<>*/ var _wB_=0; /*<>*/ /*<>*/ caml_call1 - (push,_va_); + (push,_wB_); /*<>*/ return Lwt[36] /*<>*/ } /*<>*/ var - /*<>*/ _u3_=0, - /*<>*/ _u4_=Lwt_stream[19], - /*<>*/ _u5_= - [0,quit$0,[0, /*<>*/ caml_call1(_u4_,input),_u3_]], - /*<>*/ _u6_=Lwt[17], - /*<>*/ _u7_= - /*<>*/ caml_call1(_u6_,_u5_), - /*<>*/ _u8_=Lwt[6]; + /*<>*/ _ws_=0, + /*<>*/ _wt_=Lwt_stream[19], + /*<>*/ _wu_= + [0,quit$0,[0, /*<>*/ caml_call1(_wt_,input),_ws_]], + /*<>*/ _wv_=Lwt[17], + /*<>*/ _ww_= + /*<>*/ caml_call1(_wv_,_wu_), + /*<>*/ _wx_=Lwt[6]; /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_u8_,_u7_),_u2_) /*<>*/ } - /*<>*/ /*<>*/ var _u1_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_u1_,aux); + ( /*<>*/ caml_call1(_wx_,_ww_),_wr_) /*<>*/ } + /*<>*/ /*<>*/ var _wq_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_wq_,aux); /*<>*/ return stream /*<>*/ } /*<>*/ function render(vg,quit,size,events,doc) { /*<>*/ var - /*<>*/ _un_=0, - /*<>*/ _uo_=Nottui[7][1], + /*<>*/ _vO_=0, + /*<>*/ _vP_=Nottui[7][1], /*<>*/ renderer= - /*<>*/ caml_call2(_uo_,vg,_un_), - /*<>*/ _up_=0, - /*<>*/ _uq_=Lwt_stream[4], + /*<>*/ caml_call2(_vP_,vg,_vO_), + /*<>*/ _vQ_=0, + /*<>*/ _vR_=Lwt_stream[4], /*<>*/ match= - /*<>*/ caml_call1(_uq_,_up_), + /*<>*/ caml_call1(_vR_,_vQ_), /*<>*/ push_refresh=match[2], /*<>*/ refresh_stream=match[1], - /*<>*/ _ur_= + /*<>*/ _vS_= [0, function(param) { /*<>*/ var - /*<>*/ _uV_=Lwt_stream[35], - /*<>*/ _uW_= + /*<>*/ _wk_=Lwt_stream[35], + /*<>*/ _wl_= 1 - - /*<>*/ caml_call1(_uV_,refresh_stream); - /*<>*/ return _uW_ + /*<>*/ caml_call1(_wk_,refresh_stream); + /*<>*/ return _wl_ ? /*<>*/ caml_call1(push_refresh,_ez_) - :_uW_ /*<>*/ }], - /*<>*/ _us_=Lwd[23], + :_wl_ /*<>*/ }], + /*<>*/ _vT_=Lwd[23], /*<>*/ root= - /*<>*/ caml_call2(_us_,_ur_,doc); + /*<>*/ caml_call2(_vT_,_vS_,doc); /*<>*/ if(quit) - var quit$0=quit[1],_ut_=0,do_quit=_ut_,quit$1=quit$0; + var quit$0=quit[1],_vU_=0,do_quit=_vU_,quit$1=quit$0; else /*<>*/ var - /*<>*/ _uC_=0, - /*<>*/ _uD_=Lwt[1], + /*<>*/ _v3_=0, + /*<>*/ _v4_=Lwt[1], /*<>*/ match$1= - /*<>*/ caml_call1(_uD_,_uC_), + /*<>*/ caml_call1(_v4_,_v3_), /*<>*/ u=match$1[2], /*<>*/ t=match$1[1], /*<>*/ do_quit$0=[0,u], do_quit=do_quit$0, quit$1=t; - /*<>*/ function _uu_(e) + /*<>*/ function _vV_(e) { /*<>*/ return e /*<>*/ } /*<>*/ var /*<>*/ events$0= - /*<>*/ copy_until(quit$1,_uu_,events), + /*<>*/ copy_until(quit$1,_vV_,events), /*<>*/ size$0=[0,size], - /*<>*/ _uv_=0, - /*<>*/ _uw_=Lwt_stream[4], + /*<>*/ _vW_=0, + /*<>*/ _vX_=Lwt_stream[4], /*<>*/ match$0= - /*<>*/ caml_call1(_uw_,_uv_), + /*<>*/ caml_call1(_vX_,_vW_), /*<>*/ push=match$0[2], /*<>*/ result=match$0[1]; /*<>*/ function refresh(param) { /*<>*/ var - /*<>*/ _uR_=Lwd[28], + /*<>*/ _wg_=Lwd[28], /*<>*/ ui= - /*<>*/ caml_call1(_uR_,root), - /*<>*/ _uS_=size$0[1], - /*<>*/ _uT_=Nottui[7][12]; + /*<>*/ caml_call1(_wg_,root), + /*<>*/ _wh_=size$0[1], + /*<>*/ _wi_=Nottui[7][12]; /*<>*/ /*<>*/ caml_call3 - (_uT_,renderer,_uS_,ui); + (_wi_,renderer,_wh_,ui); /*<>*/ /*<>*/ var - _uU_= + _wj_= Nottui[7][19]; /*<>*/ return /*<>*/ caml_call1 (push, - [0, /*<>*/ caml_call2(_uU_,vg,renderer)]) /*<>*/ } - /*<>*/ /*<>*/ var _ux_=0; - /*<>*/ /*<>*/ refresh(_ux_); + [0, /*<>*/ caml_call2(_wj_,vg,renderer)]) /*<>*/ } + /*<>*/ /*<>*/ var _vY_=0; + /*<>*/ /*<>*/ refresh(_vY_); /*<>*/ function process_event(e) - { /*<>*/ /*<>*/ var _uH_=e[1]; - /*<>*/ if(3752319 === _uH_) - {var _uI_=e[2],_uJ_=_uI_[1]; - if(typeof _uJ_ !== "number" && 852405675 === _uJ_[1]) - {var _uL_=_uI_[2]; - if(_uL_ && 858945253 === _uL_[1] && ! _uL_[2]) + { /*<>*/ /*<>*/ var _v8_=e[1]; + /*<>*/ if(3752319 === _v8_) + {var _v9_=e[2],_v__=_v9_[1]; + if(typeof _v__ !== "number" && 852405675 === _v__[1]) + {var _wa_=_v9_[2]; + if(_wa_ && 858945253 === _wa_[1] && ! _wa_[2]) { /*<>*/ var - c=_uJ_[2], - _uM_=113, - _uN_=Stdlib_Uchar[12], - /*<>*/ _uO_= - /*<>*/ caml_call1(_uN_,_uM_), - /*<>*/ _uP_=Stdlib_Uchar[15]; + c=_v__[2], + _wb_=113, + _wc_=Stdlib_Uchar[12], + /*<>*/ _wd_= + /*<>*/ caml_call1(_wc_,_wb_), + /*<>*/ _we_=Stdlib_Uchar[15]; /*<>*/ if - ( /*<>*/ caml_call2(_uP_,c,_uO_)) + ( /*<>*/ caml_call2(_we_,c,_wd_)) { /*<>*/ if(do_quit) { /*<>*/ /*<>*/ var u= @@ -570763,40 +570773,40 @@ /*<>*/ return /*<>*/ caml_call2 (Lwt[52],u,0)} /*<>*/ /*<>*/ var - _uQ_= + _wf_= Nottui[7][25]; /*<>*/ /*<>*/ caml_call2 - (_uQ_,renderer,e); + (_wf_,renderer,e); /*<>*/ return 0}}}} else - if(1024445972 <= _uH_) + if(1024445972 <= _v8_) { /*<>*/ /*<>*/ var size=e[2]; /*<>*/ size$0[1] = size; /*<>*/ return /*<>*/ refresh (0)} /*<>*/ var - /*<>*/ _uK_=Nottui[7][25], + /*<>*/ _v$_=Nottui[7][25], /*<>*/ match= - /*<>*/ caml_call2(_uK_,renderer,e); + /*<>*/ caml_call2(_v$_,renderer,e); /*<>*/ return 321312668 <= match?0:0 /*<>*/ } - /*<>*/ function _uy_(param) - { /*<>*/ function _uE_(param) - { /*<>*/ /*<>*/ var _uG_=0; + /*<>*/ function _vZ_(param) + { /*<>*/ function _v5_(param) + { /*<>*/ /*<>*/ var _v7_=0; /*<>*/ /*<>*/ caml_call1 - (push,_uG_); + (push,_v7_); /*<>*/ return Lwt[36] /*<>*/ } - /*<>*/ function _uF_(param) + /*<>*/ function _v6_(param) { /*<>*/ return /*<>*/ caml_call2 (Lwt_stream[50],process_event,events$0) /*<>*/ } /*<>*/ return /*<>*/ caml_call2 - (Lwt[8],_uF_,_uE_) /*<>*/ } - /*<>*/ /*<>*/ var _uz_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_uz_,_uy_); - /*<>*/ function _uA_(param) + (Lwt[8],_v6_,_v5_) /*<>*/ } + /*<>*/ /*<>*/ var _v0_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_v0_,_vZ_); + /*<>*/ function _v1_(param) { /*<>*/ return /*<>*/ caml_call2 (Lwt_stream[50],refresh,refresh_stream) /*<>*/ } - /*<>*/ /*<>*/ var _uB_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1(_uB_,_uA_); + /*<>*/ /*<>*/ var _v2_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1(_v2_,_v1_); /*<>*/ return result /*<>*/ } /*<>*/ /*<>*/ var Nottui_lwt= @@ -570809,228 +570819,228 @@ else var attr=Style[4]; /*<>*/ var - /*<>*/ _uk_=[0,attr], - /*<>*/ _ul_=I[21], - /*<>*/ _um_= - /*<>*/ caml_call2(_ul_,_uk_,str); + /*<>*/ _vL_=[0,attr], + /*<>*/ _vM_=I[21], + /*<>*/ _vN_= + /*<>*/ caml_call2(_vM_,_vL_,str); /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_um_) /*<>*/ } + (Nottui[6][16],_vN_) /*<>*/ } /*<>*/ function int$0(attr,x) - { /*<>*/ /*<>*/ var _uj_=Stdlib[33]; + { /*<>*/ /*<>*/ var _vK_=Stdlib[33]; /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_uj_,x)) /*<>*/ } + (attr, /*<>*/ caml_call1(_vK_,x)) /*<>*/ } /*<>*/ function bool(attr,x) - { /*<>*/ /*<>*/ var _ui_=Stdlib[30]; + { /*<>*/ /*<>*/ var _vJ_=Stdlib[30]; /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_ui_,x)) /*<>*/ } + (attr, /*<>*/ caml_call1(_vJ_,x)) /*<>*/ } /*<>*/ function float$0(attr,x) - { /*<>*/ /*<>*/ var _uh_=Stdlib[35]; + { /*<>*/ /*<>*/ var _vI_=Stdlib[35]; /*<>*/ return /*<>*/ string$0 - (attr, /*<>*/ caml_call1(_uh_,x)) /*<>*/ } + (attr, /*<>*/ caml_call1(_vI_,x)) /*<>*/ } /*<>*/ function printf(attr,fmt) - { /*<>*/ function _uf_(_ug_) - { /*<>*/ return string$0(attr,_ug_)} + { /*<>*/ function _vG_(_vH_) + { /*<>*/ return string$0(attr,_vH_)} /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[10],_uf_,fmt) /*<>*/ } + (Stdlib_Printf[10],_vG_,fmt) /*<>*/ } /*<>*/ function fmt(attr,fmt) - { /*<>*/ function _ud_(_ue_) - { /*<>*/ return string$0(attr,_ue_)} + { /*<>*/ function _vE_(_vF_) + { /*<>*/ return string$0(attr,_vF_)} /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Format[140],_ud_,fmt) /*<>*/ } + (Stdlib_Format[140],_vE_,fmt) /*<>*/ } /*<>*/ function kprintf(k,attr,fmt) - { /*<>*/ function _uc_(str) + { /*<>*/ function _vD_(str) { /*<>*/ return /*<>*/ caml_call1 (k, /*<>*/ string$0(attr,str)) /*<>*/ } /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Printf[10],_uc_,fmt) /*<>*/ } + (Stdlib_Printf[10],_vD_,fmt) /*<>*/ } /*<>*/ function kfmt(k,attr,fmt) - { /*<>*/ function _ub_(str) + { /*<>*/ function _vC_(str) { /*<>*/ return /*<>*/ caml_call1 (k, /*<>*/ string$0(attr,str)) /*<>*/ } /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Format[140],_ub_,fmt) /*<>*/ } + (Stdlib_Format[140],_vC_,fmt) /*<>*/ } /*<>*/ function window_manager(base) { /*<>*/ var - /*<>*/ _tW_=0, - /*<>*/ _tX_=Lwd_table[1], + /*<>*/ _vl_=0, + /*<>*/ _vm_=Lwd_table[1], /*<>*/ overlays= - /*<>*/ caml_call1(_tX_,_tW_), - /*<>*/ _tY_=Nottui[6][33], - /*<>*/ _tZ_=Lwd_utils[1], - /*<>*/ _t0_= - /*<>*/ caml_call1(_tZ_,_tY_), - /*<>*/ _t1_=Lwd_table[18], - /*<>*/ _t2_= - /*<>*/ caml_call2(_t1_,_t0_,overlays), - /*<>*/ _t3_=Lwd[5], + /*<>*/ caml_call1(_vm_,_vl_), + /*<>*/ _vn_=Nottui[6][33], + /*<>*/ _vo_=Lwd_utils[1], + /*<>*/ _vp_= + /*<>*/ caml_call1(_vo_,_vn_), + /*<>*/ _vq_=Lwd_table[18], + /*<>*/ _vr_= + /*<>*/ caml_call2(_vq_,_vp_,overlays), + /*<>*/ _vs_=Lwd[5], /*<>*/ composition= - /*<>*/ caml_call1(_t3_,_t2_); - /*<>*/ function _t4_(base,composite) + /*<>*/ caml_call1(_vs_,_vr_); + /*<>*/ function _vt_(base,composite) { /*<>*/ var - /*<>*/ _t6_=0, - /*<>*/ _t7_=0, - /*<>*/ _t8_=0, - /*<>*/ _t9_=Nottui[6][8], - /*<>*/ _t__= - /*<>*/ caml_call1(_t9_,base), - /*<>*/ _t$_=Nottui[6][26], - /*<>*/ _ua_= + /*<>*/ _vv_=0, + /*<>*/ _vw_=0, + /*<>*/ _vx_=0, + /*<>*/ _vy_=Nottui[6][8], + /*<>*/ _vz_= + /*<>*/ caml_call1(_vy_,base), + /*<>*/ _vA_=Nottui[6][26], + /*<>*/ _vB_= /*<>*/ caml_call5 - (_t$_,_t__,_t8_,_t7_,_t6_,composite); + (_vA_,_vz_,_vx_,_vw_,_vv_,composite); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][30],base,_ua_) /*<>*/ } + (Nottui[6][30],base,_vB_) /*<>*/ } /*<>*/ var - /*<>*/ _t5_=Lwd[4], + /*<>*/ _vu_=Lwd[4], /*<>*/ view= - /*<>*/ caml_call3(_t5_,base,composition,_t4_); + /*<>*/ caml_call3(_vu_,base,composition,_vt_); /*<>*/ 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,_sQ_,body,around) + /*<>*/ function menu_overlay(wm,g,opt,_uf_,body,around) { /*<>*/ if(opt) /*<>*/ var /*<>*/ sth=opt[1], dx=sth; else var dx=0.; - /*<>*/ if(_sQ_) + /*<>*/ if(_uf_) /*<>*/ var - /*<>*/ sth$0=_sQ_[1], + /*<>*/ sth$0=_uf_[1], dy=sth$0; else var dy=0.; /*<>*/ function sensor(x,y,w,h,param) { /*<>*/ var - /*<>*/ _sR_= + /*<>*/ _ug_= /*<>*/ window_manager_overlays(wm), - /*<>*/ _sS_=0, - /*<>*/ _sT_=Lwd_table[3], + /*<>*/ _uh_=0, + /*<>*/ _ui_=Lwd_table[3], /*<>*/ row= - /*<>*/ caml_call2(_sT_,_sS_,_sR_), - /*<>*/ _sU_=Nottui[4][5], + /*<>*/ caml_call2(_ui_,_uh_,_ug_), + /*<>*/ _uj_=Nottui[4][5], /*<>*/ match= - /*<>*/ caml_call1(_sU_,g); + /*<>*/ caml_call1(_uj_,g); /*<>*/ if(720626325 === match) /*<>*/ var - /*<>*/ _sV_=0., - /*<>*/ _sW_=x + dx, - /*<>*/ _sX_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_sX_,_sW_,_sV_); + /*<>*/ _uk_=0., + /*<>*/ _ul_=x + dx, + /*<>*/ _um_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_um_,_ul_,_uk_); else if(947590439 <= match) /*<>*/ var - /*<>*/ _tb_=0., - /*<>*/ _tc_=w / 2., - /*<>*/ _td_=x + dx, - /*<>*/ _te_=_td_ + _tc_, - /*<>*/ _tf_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_tf_,_te_,_tb_); + /*<>*/ _uC_=0., + /*<>*/ _uD_=w / 2., + /*<>*/ _uE_=x + dx, + /*<>*/ _uF_=_uE_ + _uD_, + /*<>*/ _uG_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_uG_,_uF_,_uC_); else /*<>*/ var - /*<>*/ _tg_=0., - /*<>*/ _th_=x + dx, - /*<>*/ _ti_=_th_ + w, - /*<>*/ _tj_=Nottui[6][17], - h_pad= /*<>*/ caml_call2(_tj_,_ti_,_tg_); + /*<>*/ _uH_=0., + /*<>*/ _uI_=x + dx, + /*<>*/ _uJ_=_uI_ + w, + /*<>*/ _uK_=Nottui[6][17], + h_pad= /*<>*/ caml_call2(_uK_,_uJ_,_uH_); /*<>*/ var - /*<>*/ _sY_=Nottui[4][6], + /*<>*/ _un_=Nottui[4][6], /*<>*/ match$0= - /*<>*/ caml_call1(_sY_,g); + /*<>*/ caml_call1(_un_,g); /*<>*/ if(720626325 === match$0) /*<>*/ var - /*<>*/ _sZ_=y + dy, - /*<>*/ _s0_=0., - /*<>*/ _s1_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_s1_,_s0_,_sZ_); + /*<>*/ _uo_=y + dy, + /*<>*/ _up_=0., + /*<>*/ _uq_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_uq_,_up_,_uo_); else if(947590439 <= match$0) /*<>*/ var - /*<>*/ _s4_=h / 2., - /*<>*/ _s5_=y + dy, - /*<>*/ _s6_=_s5_ + _s4_, - /*<>*/ _s7_=0., - /*<>*/ _s8_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_s8_,_s7_,_s6_); + /*<>*/ _ut_=h / 2., + /*<>*/ _uu_=y + dy, + /*<>*/ _uv_=_uu_ + _ut_, + /*<>*/ _uw_=0., + /*<>*/ _ux_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_ux_,_uw_,_uv_); else /*<>*/ var - /*<>*/ _s9_=y + dy, - /*<>*/ _s__=_s9_ + h, - /*<>*/ _s$_=0., - /*<>*/ _ta_=Nottui[6][17], - v_pad= /*<>*/ caml_call2(_ta_,_s$_,_s__); - /*<>*/ function _s2_(body) + /*<>*/ _uy_=y + dy, + /*<>*/ _uz_=_uy_ + h, + /*<>*/ _uA_=0., + /*<>*/ _uB_=Nottui[6][17], + v_pad= /*<>*/ caml_call2(_uB_,_uA_,_uz_); + /*<>*/ function _ur_(body) { /*<>*/ var - /*<>*/ _tk_=0., - /*<>*/ _tl_=1., - /*<>*/ _tm_=Nottui[6][17], + /*<>*/ _uL_=0., + /*<>*/ _uM_=1., + /*<>*/ _uN_=Nottui[6][17], /*<>*/ pad= - /*<>*/ caml_call2(_tm_,_tl_,_tk_), - /*<>*/ _tn_=Nottui[6][28], - /*<>*/ _to_= - /*<>*/ caml_call2(_tn_,body,pad), - /*<>*/ _tp_=Nottui[6][28], + /*<>*/ caml_call2(_uN_,_uM_,_uL_), + /*<>*/ _uO_=Nottui[6][28], + /*<>*/ _uP_= + /*<>*/ caml_call2(_uO_,body,pad), + /*<>*/ _uQ_=Nottui[6][28], /*<>*/ body$0= - /*<>*/ caml_call2(_tp_,pad,_to_), - /*<>*/ _tq_=Nottui[6][15], - /*<>*/ _tr_=NVG[40][27], - /*<>*/ _ts_=0, - /*<>*/ _tt_=Style[9], - /*<>*/ _tu_= - [0, /*<>*/ caml_call2(_tt_,_ts_,_tr_)], - /*<>*/ _tv_=0, - /*<>*/ _tw_=0, - /*<>*/ _tx_=Nottui[6][8], - /*<>*/ _ty_= - /*<>*/ caml_call1(_tx_,body$0), - /*<>*/ _tz_=Nottui[6][26], + /*<>*/ caml_call2(_uQ_,pad,_uP_), + /*<>*/ _uR_=Nottui[6][15], + /*<>*/ _uS_=NVG[40][27], + /*<>*/ _uT_=0, + /*<>*/ _uU_=Style[9], + /*<>*/ _uV_= + [0, /*<>*/ caml_call2(_uU_,_uT_,_uS_)], + /*<>*/ _uW_=0, + /*<>*/ _uX_=0, + /*<>*/ _uY_=Nottui[6][8], + /*<>*/ _uZ_= + /*<>*/ caml_call1(_uY_,body$0), + /*<>*/ _u0_=Nottui[6][26], /*<>*/ bg= /*<>*/ caml_call5 - (_tz_,_ty_,_tw_,_tv_,_tu_,_tq_), - /*<>*/ _tA_=Nottui[6][15], - /*<>*/ _tB_=0, - /*<>*/ _tC_=0, - /*<>*/ _tD_=0, - /*<>*/ _tE_=0, - /*<>*/ _tF_=0, - /*<>*/ _tG_=Nottui[6][25], - /*<>*/ _tH_= + (_u0_,_uZ_,_uX_,_uW_,_uV_,_uR_), + /*<>*/ _u1_=Nottui[6][15], + /*<>*/ _u2_=0, + /*<>*/ _u3_=0, + /*<>*/ _u4_=0, + /*<>*/ _u5_=0, + /*<>*/ _u6_=0, + /*<>*/ _u7_=Nottui[6][25], + /*<>*/ _u8_= /*<>*/ caml_call8 - (_tG_,_tF_,_tE_,_eB_,_eA_,_tD_,_tC_,_tB_,_tA_); - /*<>*/ function _tI_(param,_tU_,_tT_) - { /*<>*/ if(847852583 === _tT_) + (_u7_,_u6_,_u5_,_eB_,_eA_,_u4_,_u3_,_u2_,_u1_); + /*<>*/ function _u9_(param,_vj_,_vi_) + { /*<>*/ if(847852583 === _vi_) { /*<>*/ /*<>*/ var - _tV_= + _vk_= Lwd_table[16]; /*<>*/ /*<>*/ caml_call1 - (_tV_,row); + (_vk_,row); /*<>*/ return 321312668} /*<>*/ return 321312668 /*<>*/ } /*<>*/ var - /*<>*/ _tJ_=Nottui[6][18], + /*<>*/ _u__=Nottui[6][18], /*<>*/ catchall= - /*<>*/ caml_call2(_tJ_,_tI_,_tH_), - /*<>*/ _tK_=Nottui[6][30], - /*<>*/ _tL_= - /*<>*/ caml_call2(_tK_,bg,body$0), - /*<>*/ _tM_=Nottui[6][28], - /*<>*/ _tN_= - /*<>*/ caml_call1(_tM_,h_pad), - /*<>*/ _tO_= - /*<>*/ caml_call1(_tN_,_tL_), - /*<>*/ _tP_=Nottui[6][29], - /*<>*/ _tQ_= - /*<>*/ caml_call1(_tP_,v_pad), - /*<>*/ _tR_= - /*<>*/ caml_call1(_tQ_,_tO_), - /*<>*/ _tS_=Nottui[6][30]; + /*<>*/ caml_call2(_u__,_u9_,_u8_), + /*<>*/ _u$_=Nottui[6][30], + /*<>*/ _va_= + /*<>*/ caml_call2(_u$_,bg,body$0), + /*<>*/ _vb_=Nottui[6][28], + /*<>*/ _vc_= + /*<>*/ caml_call1(_vb_,h_pad), + /*<>*/ _vd_= + /*<>*/ caml_call1(_vc_,_va_), + /*<>*/ _ve_=Nottui[6][29], + /*<>*/ _vf_= + /*<>*/ caml_call1(_ve_,v_pad), + /*<>*/ _vg_= + /*<>*/ caml_call1(_vf_,_vd_), + /*<>*/ _vh_=Nottui[6][30]; /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_tS_,catchall),_tR_) /*<>*/ } + ( /*<>*/ caml_call1(_vh_,catchall),_vg_) /*<>*/ } /*<>*/ var - /*<>*/ _s3_=Lwd[3], + /*<>*/ _us_=Lwd[3], /*<>*/ view= - /*<>*/ caml_call2(_s3_,body,_s2_); + /*<>*/ caml_call2(_us_,body,_ur_); /*<>*/ return /*<>*/ caml_call2 (Lwd_table[13],row,view) /*<>*/ } /*<>*/ return /*<>*/ caml_call2 @@ -571044,263 +571054,263 @@ else var offset=_eC_; /*<>*/ var - /*<>*/ _st_=Lwd[10], + /*<>*/ _tU_=Lwd[10], /*<>*/ offset$0= - /*<>*/ caml_call1(_st_,offset); + /*<>*/ caml_call1(_tU_,offset); /*<>*/ function scroll(d_x,d_y) { /*<>*/ var - /*<>*/ _sH_=Lwd[13], + /*<>*/ _t8_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_sH_,offset$0), + /*<>*/ caml_call1(_t8_,offset$0), /*<>*/ s_y=match[2], /*<>*/ s_x=match[1], - /*<>*/ _sI_=s_x + d_x, - /*<>*/ _sJ_=0., - /*<>*/ _sK_=Stdlib[17], + /*<>*/ _t9_=s_x + d_x, + /*<>*/ _t__=0., + /*<>*/ _t$_=Stdlib[17], /*<>*/ s_x$0= - /*<>*/ caml_call2(_sK_,_sJ_,_sI_), - /*<>*/ _sL_=s_y + d_y, - /*<>*/ _sM_=0., - /*<>*/ _sN_=Stdlib[17], + /*<>*/ caml_call2(_t$_,_t__,_t9_), + /*<>*/ _ua_=s_y + d_y, + /*<>*/ _ub_=0., + /*<>*/ _uc_=Stdlib[17], /*<>*/ s_y$0= - /*<>*/ caml_call2(_sN_,_sM_,_sL_), - /*<>*/ _sO_=[0,s_x$0,s_y$0], - /*<>*/ _sP_=Lwd[12]; + /*<>*/ caml_call2(_uc_,_ub_,_ua_), + /*<>*/ _ud_=[0,s_x$0,s_y$0], + /*<>*/ _ue_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_sP_,offset$0,_sO_); + (_ue_,offset$0,_ud_); /*<>*/ return 321312668 /*<>*/ } /*<>*/ function focus_handler(param) - { /*<>*/ /*<>*/ var _sC_=param[1]; - /*<>*/ if(typeof _sC_ !== "number") - {var _sD_=_sC_[1]; - if(892012143 === _sD_) - {var _sE_=_sC_[2]; - if(19067 === _sE_) + { /*<>*/ /*<>*/ var _t3_=param[1]; + /*<>*/ if(typeof _t3_ !== "number") + {var _t4_=_t3_[1]; + if(892012143 === _t4_) + {var _t5_=_t3_[2]; + if(19067 === _t5_) {if(! param[2]) /*<>*/ return /*<>*/ scroll (0.,-56.)} else - if(759637122 === _sE_ && ! param[2]) + if(759637122 === _t5_ && ! param[2]) /*<>*/ return /*<>*/ scroll (0.,56.)} else - if(951904681 === _sD_) - {var _sF_=_sC_[2]; - if(19068 <= _sF_) - {if(759637122 === _sF_) + if(951904681 === _t4_) + {var _t6_=_t3_[2]; + if(19068 <= _t6_) + {if(759637122 === _t6_) {if(! param[2]) /*<>*/ return /*<>*/ scroll (0.,scroll_step)} else - if(847852583 === _sF_ && ! param[2]) + if(847852583 === _t6_ && ! param[2]) { /*<>*/ /*<>*/ var - _sG_= + _t7_= 0.; /*<>*/ return /*<>*/ scroll - (-7.,_sG_)}} + (-7.,_t7_)}} else - if(-57574468 === _sF_) + if(-57574468 === _t6_) {if(! param[2]) /*<>*/ return /*<>*/ scroll (scroll_step,0.)} else - if(19067 <= _sF_ && ! param[2]) + if(19067 <= _t6_ && ! param[2]) /*<>*/ return /*<>*/ scroll (0.,-7.)}} /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function _su_(t,param) + /*<>*/ function _tV_(t,param) { /*<>*/ var /*<>*/ s_y=param[2], /*<>*/ s_x=param[1], - /*<>*/ _sx_=Nottui[6][20], - /*<>*/ _sy_= - /*<>*/ caml_call2(_sx_,s_x,s_y), - /*<>*/ _sz_= - /*<>*/ caml_call1(_sy_,t), - /*<>*/ _sA_=0, - /*<>*/ _sB_=Nottui[6][19]; + /*<>*/ _tY_=Nottui[6][20], + /*<>*/ _tZ_= + /*<>*/ caml_call2(_tY_,s_x,s_y), + /*<>*/ _t0_= + /*<>*/ caml_call1(_tZ_,t), + /*<>*/ _t1_=0, + /*<>*/ _t2_=Nottui[6][19]; /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call2(_sB_,_sA_,focus_handler), - _sz_) /*<>*/ } + ( /*<>*/ caml_call2(_t2_,_t1_,focus_handler), + _t0_) /*<>*/ } /*<>*/ var - /*<>*/ _sv_=Lwd[11], - /*<>*/ _sw_= - /*<>*/ caml_call1(_sv_,offset$0); + /*<>*/ _tW_=Lwd[11], + /*<>*/ _tX_= + /*<>*/ caml_call1(_tW_,offset$0); /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],t,_sw_,_su_) /*<>*/ } + (Lwd[4],t,_tX_,_tV_) /*<>*/ } /*<>*/ function main_menu_item(wm,text,f) { /*<>*/ var - /*<>*/ _r9_=Stdlib[28], - /*<>*/ _r__= - /*<>*/ caml_call2(_r9_,text,cst$5), - /*<>*/ _r$_=Stdlib[28], - /*<>*/ _sa_= - /*<>*/ caml_call2(_r$_,cst$6,_r__), - /*<>*/ _sb_=[0,Style[13]], + /*<>*/ _ty_=Stdlib[28], + /*<>*/ _tz_= + /*<>*/ caml_call2(_ty_,text,cst$5), + /*<>*/ _tA_=Stdlib[28], + /*<>*/ _tB_= + /*<>*/ caml_call2(_tA_,cst$6,_tz_), + /*<>*/ _tC_=[0,Style[13]], /*<>*/ text$0= - /*<>*/ string$0(_sb_,_sa_), - /*<>*/ _sc_=0, - /*<>*/ _sd_=Lwd[10], + /*<>*/ string$0(_tC_,_tB_), + /*<>*/ _tD_=0, + /*<>*/ _tE_=Lwd[10], /*<>*/ refresh= - /*<>*/ caml_call1(_sd_,_sc_), + /*<>*/ caml_call1(_tE_,_tD_), /*<>*/ overlay=[0,0]; - /*<>*/ function on_click(param,_sq_,_sp_) - { /*<>*/ if(847852583 === _sp_) + /*<>*/ function on_click(param,_tR_,_tQ_) + { /*<>*/ if(847852583 === _tQ_) { /*<>*/ overlay[1] = 1; /*<>*/ var - /*<>*/ _sr_=0, - /*<>*/ _ss_=Lwd[12]; + /*<>*/ _tS_=0, + /*<>*/ _tT_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_ss_,refresh,_sr_); + (_tT_,refresh,_tS_); /*<>*/ return 321312668} /*<>*/ return -475359645} - /*<>*/ function _se_(param) + /*<>*/ function _tF_(param) { /*<>*/ var - /*<>*/ _sh_=Nottui[6][18], + /*<>*/ _tI_=Nottui[6][18], /*<>*/ ui= - /*<>*/ caml_call2(_sh_,on_click,text$0); + /*<>*/ caml_call2(_tI_,on_click,text$0); /*<>*/ if(overlay[1]) { /*<>*/ overlay[1] = 0; /*<>*/ var - /*<>*/ _si_=0, - /*<>*/ _sj_= - /*<>*/ caml_call1(f,_si_), - /*<>*/ _sk_=0, - /*<>*/ _sl_=0, - /*<>*/ _sm_=615277273, - /*<>*/ _sn_=720626325, - /*<>*/ _so_=Nottui[4][3]; + /*<>*/ _tJ_=0, + /*<>*/ _tK_= + /*<>*/ caml_call1(f,_tJ_), + /*<>*/ _tL_=0, + /*<>*/ _tM_=0, + /*<>*/ _tN_=615277273, + /*<>*/ _tO_=720626325, + /*<>*/ _tP_=Nottui[4][3]; /*<>*/ return /*<>*/ menu_overlay (wm, - /*<>*/ caml_call2(_so_,_sn_,_sm_), - _sl_, - _sk_, - _sj_, + /*<>*/ caml_call2(_tP_,_tO_,_tN_), + _tM_, + _tL_, + _tK_, ui)} /*<>*/ return ui /*<>*/ } /*<>*/ var - /*<>*/ _sf_=Lwd[11], - /*<>*/ _sg_= - /*<>*/ caml_call1(_sf_,refresh); + /*<>*/ _tG_=Lwd[11], + /*<>*/ _tH_= + /*<>*/ caml_call1(_tG_,refresh); /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],_sg_,_se_) /*<>*/ } + (Lwd[3],_tH_,_tF_) /*<>*/ } /*<>*/ function sub_menu_item(wm,text,f) { /*<>*/ var - /*<>*/ _rR_=[0,Style[14]], + /*<>*/ _tg_=[0,Style[14]], /*<>*/ text$0= - /*<>*/ string$0(_rR_,text), - /*<>*/ _rS_=0, - /*<>*/ _rT_=Lwd[10], + /*<>*/ string$0(_tg_,text), + /*<>*/ _th_=0, + /*<>*/ _ti_=Lwd[10], /*<>*/ refresh= - /*<>*/ caml_call1(_rT_,_rS_), + /*<>*/ caml_call1(_ti_,_th_), /*<>*/ overlay=[0,0]; - /*<>*/ function on_click(param,_r6_,_r5_) - { /*<>*/ if(847852583 === _r5_) + /*<>*/ function on_click(param,_tv_,_tu_) + { /*<>*/ if(847852583 === _tu_) { /*<>*/ overlay[1] = 1; /*<>*/ var - /*<>*/ _r7_=0, - /*<>*/ _r8_=Lwd[12]; + /*<>*/ _tw_=0, + /*<>*/ _tx_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_r8_,refresh,_r7_); + (_tx_,refresh,_tw_); /*<>*/ return 321312668} /*<>*/ return -475359645} - /*<>*/ function _rU_(param) + /*<>*/ function _tj_(param) { /*<>*/ var - /*<>*/ _rX_=Nottui[6][18], + /*<>*/ _tm_=Nottui[6][18], /*<>*/ ui= - /*<>*/ caml_call2(_rX_,on_click,text$0); + /*<>*/ caml_call2(_tm_,on_click,text$0); /*<>*/ if(overlay[1]) { /*<>*/ overlay[1] = 0; /*<>*/ var - /*<>*/ _rY_=0, - /*<>*/ _rZ_= - /*<>*/ caml_call1(f,_rY_), - /*<>*/ _r0_=0, - /*<>*/ _r1_=0, - /*<>*/ _r2_=720626325, - /*<>*/ _r3_=615277273, - /*<>*/ _r4_=Nottui[4][3]; + /*<>*/ _tn_=0, + /*<>*/ _to_= + /*<>*/ caml_call1(f,_tn_), + /*<>*/ _tp_=0, + /*<>*/ _tq_=0, + /*<>*/ _tr_=720626325, + /*<>*/ _ts_=615277273, + /*<>*/ _tt_=Nottui[4][3]; /*<>*/ return /*<>*/ menu_overlay (wm, - /*<>*/ caml_call2(_r4_,_r3_,_r2_), - _r1_, - _r0_, - _rZ_, + /*<>*/ caml_call2(_tt_,_ts_,_tr_), + _tq_, + _tp_, + _to_, ui)} /*<>*/ return ui /*<>*/ } /*<>*/ var - /*<>*/ _rV_=Lwd[11], - /*<>*/ _rW_= - /*<>*/ caml_call1(_rV_,refresh); + /*<>*/ _tk_=Lwd[11], + /*<>*/ _tl_= + /*<>*/ caml_call1(_tk_,refresh); /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],_rW_,_rU_) /*<>*/ } + (Lwd[3],_tl_,_tj_) /*<>*/ } /*<>*/ function sub_entry(text,f) { /*<>*/ var - /*<>*/ _rN_=[0,Style[14]], + /*<>*/ _tc_=[0,Style[14]], /*<>*/ text$0= - /*<>*/ string$0(_rN_,text); - /*<>*/ function on_click(param,_rP_,_rO_) - { /*<>*/ if(847852583 === _rO_) - { /*<>*/ /*<>*/ var _rQ_=0; + /*<>*/ string$0(_tc_,text); + /*<>*/ function on_click(param,_te_,_td_) + { /*<>*/ if(847852583 === _td_) + { /*<>*/ /*<>*/ var _tf_=0; /*<>*/ /*<>*/ caml_call1 - (f,_rQ_); + (f,_tf_); /*<>*/ return 321312668} /*<>*/ return -475359645} /*<>*/ return /*<>*/ caml_call2 (Nottui[6][18],on_click,text$0) /*<>*/ } /*<>*/ function h_pane(left,right) { /*<>*/ var - /*<>*/ _q9_=Lwd[10], + /*<>*/ _sy_=Lwd[10], /*<>*/ state_var= - /*<>*/ caml_call1(_q9_,_eD_); + /*<>*/ caml_call1(_sy_,_eD_); /*<>*/ function render(state,param) { /*<>*/ var r=param[2], l=param[1], pos=state[1], max=state[2], - _rc_=0, - _rd_=0, - _re_=0, - _rf_=[0,pos], - _rg_=Nottui[6][25], + _sD_=0, + _sE_=0, + _sF_=0, + _sG_=[0,pos], + _sH_=Nottui[6][25], /*<>*/ l$0= /*<>*/ caml_call8 - (_rg_,_eG_,_eF_,_rf_,_eE_,_re_,_rd_,_rc_,l), - /*<>*/ _rh_=0, - /*<>*/ _ri_=0, - /*<>*/ _rj_=0, - /*<>*/ _rk_=[0,max - pos], - /*<>*/ _rl_=Nottui[6][25], + (_sH_,_eG_,_eF_,_sG_,_eE_,_sF_,_sE_,_sD_,l), + /*<>*/ _sI_=0, + /*<>*/ _sJ_=0, + /*<>*/ _sK_=0, + /*<>*/ _sL_=[0,max - pos], + /*<>*/ _sM_=Nottui[6][25], /*<>*/ r$0= /*<>*/ caml_call8 - (_rl_,_eJ_,_eI_,_rk_,_eH_,_rj_,_ri_,_rh_,r), - /*<>*/ _rm_=Nottui[6][15], - /*<>*/ _rn_=NVG[40][28], - /*<>*/ _ro_=0, - /*<>*/ _rp_=Style[9], - /*<>*/ _rq_= - [0, /*<>*/ caml_call2(_rp_,_ro_,_rn_)], - /*<>*/ _rr_=0, - /*<>*/ _rs_=0, - /*<>*/ _rt_=Nottui[6][25], + (_sM_,_eJ_,_eI_,_sL_,_eH_,_sK_,_sJ_,_sI_,r), + /*<>*/ _sN_=Nottui[6][15], + /*<>*/ _sO_=NVG[40][28], + /*<>*/ _sP_=0, + /*<>*/ _sQ_=Style[9], + /*<>*/ _sR_= + [0, /*<>*/ caml_call2(_sQ_,_sP_,_sO_)], + /*<>*/ _sS_=0, + /*<>*/ _sT_=0, + /*<>*/ _sU_=Nottui[6][25], /*<>*/ splitter= /*<>*/ caml_call8 - (_rt_,_eN_,_eM_,_eL_,_eK_,_rs_,_rr_,_rq_,_rm_); - /*<>*/ function _ru_(param,_rI_,_rH_) - { /*<>*/ if(847852583 === _rH_) + (_sU_,_eN_,_eM_,_eL_,_eK_,_sT_,_sS_,_sR_,_sN_); + /*<>*/ function _sV_(param,_s9_,_s8_) + { /*<>*/ if(847852583 === _s8_) { /*<>*/ /*<>*/ var - _rJ_= - function(param,_rM_) + _s__= + function(param,_tb_) { /*<>*/ return 0 /*<>*/ }; /*<>*/ return [0, 793050092, [0, function(x,param) { /*<>*/ var - /*<>*/ _rK_=Lwd[13], + /*<>*/ _s$_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_rK_,state_var); + /*<>*/ caml_call1(_s$_,state_var); /*<>*/ if(0 === match[0]) {var max=match[2],pos=match[1]; return caml_call2(Lwd[12],state_var,[1,pos,max,x])} @@ -571308,104 +571318,104 @@ at=match[3], max$0=match[2], pos$0=match[1], - _rL_=at != x?1:0; - return _rL_ + _ta_=at != x?1:0; + return _ta_ ? /*<>*/ caml_call2 (Lwd[12],state_var,[1,pos$0,max$0,x]) - :_rL_ /*<>*/ }, - _rJ_]]} + :_ta_ /*<>*/ }, + _s__]]} /*<>*/ return -475359645 /*<>*/ } /*<>*/ var - /*<>*/ _rv_=Nottui[6][18], + /*<>*/ _sW_=Nottui[6][18], /*<>*/ splitter$0= - /*<>*/ caml_call2(_rv_,_ru_,splitter), - /*<>*/ _rw_=Nottui[6][28], - /*<>*/ _rx_= - /*<>*/ caml_call2(_rw_,splitter$0,r$0), - /*<>*/ _ry_=Nottui[6][28], + /*<>*/ caml_call2(_sW_,_sV_,splitter), + /*<>*/ _sX_=Nottui[6][28], + /*<>*/ _sY_= + /*<>*/ caml_call2(_sX_,splitter$0,r$0), + /*<>*/ _sZ_=Nottui[6][28], /*<>*/ ui= - /*<>*/ caml_call2(_ry_,l$0,_rx_), - /*<>*/ _rz_=0, - /*<>*/ _rA_=0, - /*<>*/ _rB_=0, - /*<>*/ _rC_=Nottui[6][25], + /*<>*/ caml_call2(_sZ_,l$0,_sY_), + /*<>*/ _s0_=0, + /*<>*/ _s1_=0, + /*<>*/ _s2_=0, + /*<>*/ _s3_=Nottui[6][25], /*<>*/ ui$0= /*<>*/ caml_call8 - (_rC_,_eR_,_eQ_,_eP_,_eO_,_rB_,_rA_,_rz_,ui); + (_s3_,_eR_,_eQ_,_eP_,_eO_,_s2_,_s1_,_s0_,ui); /*<>*/ if(0 === state[0]) var ui$1=ui$0; else var at=state[3], - _rD_= - function(x,param,w,_rG_,_rF_) + _s4_= + function(x,param,w,_s7_,_s6_) { /*<>*/ return /*<>*/ caml_call2 (Lwd[12],state_var,[0,at - x,w]) /*<>*/ }, - _rE_=Nottui[6][22], - ui$1= /*<>*/ caml_call2(_rE_,_rD_,ui$0); + _s5_=Nottui[6][22], + ui$1= /*<>*/ caml_call2(_s5_,_s4_,ui$0); /*<>*/ return ui$1} /*<>*/ var - /*<>*/ _q__=Lwd[8], - /*<>*/ _q$_= - /*<>*/ caml_call2(_q__,left,right), - /*<>*/ _ra_=Lwd[11], - /*<>*/ _rb_= - /*<>*/ caml_call1(_ra_,state_var); + /*<>*/ _sz_=Lwd[8], + /*<>*/ _sA_= + /*<>*/ caml_call2(_sz_,left,right), + /*<>*/ _sB_=Lwd[11], + /*<>*/ _sC_= + /*<>*/ caml_call1(_sB_,state_var); /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_rb_,_q$_,render) /*<>*/ } + (Lwd[4],_sC_,_sA_,render) /*<>*/ } /*<>*/ function v_pane(top,bot) { /*<>*/ var - /*<>*/ _qt_=Lwd[10], + /*<>*/ _rU_=Lwd[10], /*<>*/ state_var= - /*<>*/ caml_call1(_qt_,_eS_); + /*<>*/ caml_call1(_rU_,_eS_); /*<>*/ function render(state,param) { /*<>*/ var bot=param[2], top=param[1], pos=state[1], max=state[2], - _qy_=0, - _qz_=0, - _qA_=0, - _qB_=[0,pos], - _qC_=Nottui[6][25], + _rZ_=0, + _r0_=0, + _r1_=0, + _r2_=[0,pos], + _r3_=Nottui[6][25], /*<>*/ top$0= /*<>*/ caml_call8 - (_qC_,_eV_,_eU_,_eT_,_qB_,_qA_,_qz_,_qy_,top), - /*<>*/ _qD_=0, - /*<>*/ _qE_=0, - /*<>*/ _qF_=0, - /*<>*/ _qG_=[0,max - pos], - /*<>*/ _qH_=Nottui[6][25], + (_r3_,_eV_,_eU_,_eT_,_r2_,_r1_,_r0_,_rZ_,top), + /*<>*/ _r4_=0, + /*<>*/ _r5_=0, + /*<>*/ _r6_=0, + /*<>*/ _r7_=[0,max - pos], + /*<>*/ _r8_=Nottui[6][25], /*<>*/ bot$0= /*<>*/ caml_call8 - (_qH_,_eY_,_eX_,_eW_,_qG_,_qF_,_qE_,_qD_,bot), - /*<>*/ _qI_=Nottui[6][15], - /*<>*/ _qJ_=NVG[40][28], - /*<>*/ _qK_=0, - /*<>*/ _qL_=Style[9], - /*<>*/ _qM_= - [0, /*<>*/ caml_call2(_qL_,_qK_,_qJ_)], - /*<>*/ _qN_=0, - /*<>*/ _qO_=0, - /*<>*/ _qP_=Nottui[6][25], + (_r8_,_eY_,_eX_,_eW_,_r7_,_r6_,_r5_,_r4_,bot), + /*<>*/ _r9_=Nottui[6][15], + /*<>*/ _r__=NVG[40][28], + /*<>*/ _r$_=0, + /*<>*/ _sa_=Style[9], + /*<>*/ _sb_= + [0, /*<>*/ caml_call2(_sa_,_r$_,_r__)], + /*<>*/ _sc_=0, + /*<>*/ _sd_=0, + /*<>*/ _se_=Nottui[6][25], /*<>*/ splitter= /*<>*/ caml_call8 - (_qP_,_e2_,_e1_,_e0_,_eZ_,_qO_,_qN_,_qM_,_qI_); - /*<>*/ function _qQ_(param,_q4_,_q3_) - { /*<>*/ if(847852583 === _q3_) + (_se_,_e2_,_e1_,_e0_,_eZ_,_sd_,_sc_,_sb_,_r9_); + /*<>*/ function _sf_(param,_st_,_ss_) + { /*<>*/ if(847852583 === _ss_) { /*<>*/ /*<>*/ var - _q5_= - function(param,_q8_) + _su_= + function(param,_sx_) { /*<>*/ return 0 /*<>*/ }; /*<>*/ return [0, 793050092, [0, function(param,y) { /*<>*/ var - /*<>*/ _q6_=Lwd[13], + /*<>*/ _sv_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_q6_,state_var); + /*<>*/ caml_call1(_sv_,state_var); /*<>*/ if(0 === match[0]) {var max=match[2],pos=match[1]; return caml_call2(Lwd[12],state_var,[1,pos,max,y])} @@ -571413,160 +571423,160 @@ at=match[3], max$0=match[2], pos$0=match[1], - _q7_=at != y?1:0; - return _q7_ + _sw_=at != y?1:0; + return _sw_ ? /*<>*/ caml_call2 (Lwd[12],state_var,[1,pos$0,max$0,y]) - :_q7_ /*<>*/ }, - _q5_]]} + :_sw_ /*<>*/ }, + _su_]]} /*<>*/ return -475359645 /*<>*/ } /*<>*/ var - /*<>*/ _qR_=Nottui[6][18], + /*<>*/ _sg_=Nottui[6][18], /*<>*/ splitter$0= - /*<>*/ caml_call2(_qR_,_qQ_,splitter), - /*<>*/ _qS_=Nottui[6][29], - /*<>*/ _qT_= - /*<>*/ caml_call2(_qS_,splitter$0,bot$0), - /*<>*/ _qU_=Nottui[6][29], + /*<>*/ caml_call2(_sg_,_sf_,splitter), + /*<>*/ _sh_=Nottui[6][29], + /*<>*/ _si_= + /*<>*/ caml_call2(_sh_,splitter$0,bot$0), + /*<>*/ _sj_=Nottui[6][29], /*<>*/ ui= - /*<>*/ caml_call2(_qU_,top$0,_qT_), - /*<>*/ _qV_=0, - /*<>*/ _qW_=0, - /*<>*/ _qX_=0, - /*<>*/ _qY_=Nottui[6][25], + /*<>*/ caml_call2(_sj_,top$0,_si_), + /*<>*/ _sk_=0, + /*<>*/ _sl_=0, + /*<>*/ _sm_=0, + /*<>*/ _sn_=Nottui[6][25], /*<>*/ ui$0= /*<>*/ caml_call8 - (_qY_,_e6_,_e5_,_e4_,_e3_,_qX_,_qW_,_qV_,ui); + (_sn_,_e6_,_e5_,_e4_,_e3_,_sm_,_sl_,_sk_,ui); /*<>*/ if(0 === state[0]) var ui$1=ui$0; else var at=state[3], - _qZ_= - function(param,y,_q2_,h,_q1_) + _so_= + function(param,y,_sr_,h,_sq_) { /*<>*/ return /*<>*/ caml_call2 (Lwd[12],state_var,[0,at - y,h]) /*<>*/ }, - _q0_=Nottui[6][22], - ui$1= /*<>*/ caml_call2(_q0_,_qZ_,ui$0); + _sp_=Nottui[6][22], + ui$1= /*<>*/ caml_call2(_sp_,_so_,ui$0); /*<>*/ return ui$1} /*<>*/ var - /*<>*/ _qu_=Lwd[8], - /*<>*/ _qv_= - /*<>*/ caml_call2(_qu_,top,bot), - /*<>*/ _qw_=Lwd[11], - /*<>*/ _qx_= - /*<>*/ caml_call1(_qw_,state_var); + /*<>*/ _rV_=Lwd[8], + /*<>*/ _rW_= + /*<>*/ caml_call2(_rV_,top,bot), + /*<>*/ _rX_=Lwd[11], + /*<>*/ _rY_= + /*<>*/ caml_call1(_rX_,state_var); /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_qx_,_qv_,render) /*<>*/ } + (Lwd[4],_rY_,_rW_,render) /*<>*/ } /*<>*/ function eq_uc_c(uc,c) { /*<>*/ var - /*<>*/ _qr_=Stdlib_Uchar[12], - /*<>*/ _qs_= - /*<>*/ caml_call1(_qr_,c); + /*<>*/ _rS_=Stdlib_Uchar[12], + /*<>*/ _rT_= + /*<>*/ caml_call1(_rS_,c); /*<>*/ return /*<>*/ caml_call2 - (Stdlib_Uchar[15],uc,_qs_) /*<>*/ } - /*<>*/ function edit_field(opt,_oD_,state) + (Stdlib_Uchar[15],uc,_rT_) /*<>*/ } + /*<>*/ function edit_field(opt,_p4_,state) { /*<>*/ if(opt) /*<>*/ var /*<>*/ sth=opt[1], focus=sth; else /*<>*/ var - /*<>*/ _oK_=0, - /*<>*/ _oL_=Nottui[3][1], - focus= /*<>*/ caml_call1(_oL_,_oK_); - /*<>*/ if(_oD_) + /*<>*/ _p$_=0, + /*<>*/ _qa_=Nottui[3][1], + focus= /*<>*/ caml_call1(_qa_,_p$_); + /*<>*/ if(_p4_) /*<>*/ var - /*<>*/ sth$0=_oD_[1], + /*<>*/ sth$0=_p4_[1], on_change=sth$0; else - var on_change=function(_qq_){ /*<>*/ return _qq_}; + var on_change=function(_rR_){ /*<>*/ return _rR_}; /*<>*/ function update(focus_h,focus,param) { /*<>*/ var pos=param[2], text=param[1], - _oO_=caml_ml_string_length(text), - _oP_=0, - _oQ_=Stdlib[17], - /*<>*/ _oR_= - /*<>*/ caml_call2(_oQ_,_oP_,pos), - /*<>*/ _oS_=Stdlib[16], + _qd_=caml_ml_string_length(text), + _qe_=0, + _qf_=Stdlib[17], + /*<>*/ _qg_= + /*<>*/ caml_call2(_qf_,_qe_,pos), + /*<>*/ _qh_=Stdlib[16], /*<>*/ pos$0= - /*<>*/ caml_call2(_oS_,_oR_,_oO_), - /*<>*/ _oT_=Nottui[3][8]; + /*<>*/ caml_call2(_qh_,_qg_,_qd_), + /*<>*/ _qi_=Nottui[3][8]; /*<>*/ if - ( /*<>*/ caml_call1(_oT_,focus)) + ( /*<>*/ caml_call1(_qi_,focus)) { /*<>*/ var /*<>*/ attr=Style[15], /*<>*/ len= /*<>*/ caml_ml_string_length(text); /*<>*/ if(len <= pos$0) /*<>*/ var - /*<>*/ _oU_=0, - /*<>*/ _oV_=[0,Style[16]], - /*<>*/ _oW_=I[21], - /*<>*/ _oX_= - [0, /*<>*/ caml_call2(_oW_,_oV_,cst$7),_oU_], - /*<>*/ _oY_=[0,attr], - /*<>*/ _oZ_=I[21], - _o0_=[0, /*<>*/ caml_call2(_oZ_,_oY_,text),_oX_]; + /*<>*/ _qj_=0, + /*<>*/ _qk_=[0,Style[16]], + /*<>*/ _ql_=I[21], + /*<>*/ _qm_= + [0, /*<>*/ caml_call2(_ql_,_qk_,cst$7),_qj_], + /*<>*/ _qn_=[0,attr], + /*<>*/ _qo_=I[21], + _qp_=[0, /*<>*/ caml_call2(_qo_,_qn_,text),_qm_]; else /*<>*/ var - /*<>*/ _o5_=0, - /*<>*/ _o6_=(len - pos$0 | 0) - 1 | 0, - /*<>*/ _o7_=pos$0 + 1 | 0, - /*<>*/ _o8_=String[15], - /*<>*/ _o9_= - /*<>*/ caml_call3(_o8_,text,_o7_,_o6_), - /*<>*/ _o__=[0,attr], - /*<>*/ _o$_=I[21], - /*<>*/ _pa_= - [0, /*<>*/ caml_call2(_o$_,_o__,_o9_),_o5_], - /*<>*/ _pb_=1, - /*<>*/ _pc_=String[15], - /*<>*/ _pd_= - /*<>*/ caml_call3(_pc_,text,pos$0,_pb_), - /*<>*/ _pe_=[0,Style[16]], - /*<>*/ _pf_=I[21], - /*<>*/ _pg_= - [0, /*<>*/ caml_call2(_pf_,_pe_,_pd_),_pa_], - /*<>*/ _ph_=0, - /*<>*/ _pi_=String[15], - /*<>*/ _pj_= - /*<>*/ caml_call3(_pi_,text,_ph_,pos$0), - /*<>*/ _pk_=[0,attr], - /*<>*/ _pl_=I[21], - _o0_=[0, /*<>*/ caml_call2(_pl_,_pk_,_pj_),_pg_]; - /*<>*/ var _o1_=_o0_} + /*<>*/ _qu_=0, + /*<>*/ _qv_=(len - pos$0 | 0) - 1 | 0, + /*<>*/ _qw_=pos$0 + 1 | 0, + /*<>*/ _qx_=String[15], + /*<>*/ _qy_= + /*<>*/ caml_call3(_qx_,text,_qw_,_qv_), + /*<>*/ _qz_=[0,attr], + /*<>*/ _qA_=I[21], + /*<>*/ _qB_= + [0, /*<>*/ caml_call2(_qA_,_qz_,_qy_),_qu_], + /*<>*/ _qC_=1, + /*<>*/ _qD_=String[15], + /*<>*/ _qE_= + /*<>*/ caml_call3(_qD_,text,pos$0,_qC_), + /*<>*/ _qF_=[0,Style[16]], + /*<>*/ _qG_=I[21], + /*<>*/ _qH_= + [0, /*<>*/ caml_call2(_qG_,_qF_,_qE_),_qB_], + /*<>*/ _qI_=0, + /*<>*/ _qJ_=String[15], + /*<>*/ _qK_= + /*<>*/ caml_call3(_qJ_,text,_qI_,pos$0), + /*<>*/ _qL_=[0,attr], + /*<>*/ _qM_=I[21], + _qp_=[0, /*<>*/ caml_call2(_qM_,_qL_,_qK_),_qH_]; + /*<>*/ var _qq_=_qp_} else /*<>*/ var - /*<>*/ _pm_=0, - /*<>*/ _pn_= + /*<>*/ _qN_=0, + /*<>*/ _qO_= /*<>*/ caml_string_equal(text,cst$8)?cst$9:text, - _po_=0, - _pp_=I[21], - _o1_=[0, /*<>*/ caml_call2(_pp_,_po_,_pn_),_pm_]; + _qP_=0, + _qQ_=I[21], + _qq_=[0, /*<>*/ caml_call2(_qQ_,_qP_,_qO_),_qN_]; /*<>*/ var - /*<>*/ _o2_=I[17], - /*<>*/ _o3_= - /*<>*/ caml_call1(_o2_,_o1_), - /*<>*/ _o4_=Nottui[6][16], + /*<>*/ _qr_=I[17], + /*<>*/ _qs_= + /*<>*/ caml_call1(_qr_,_qq_), + /*<>*/ _qt_=Nottui[6][16], /*<>*/ content= - /*<>*/ caml_call1(_o4_,_o3_); + /*<>*/ caml_call1(_qt_,_qs_); /*<>*/ function handler(k) { /*<>*/ function on_change$0(a) { /*<>*/ var - /*<>*/ _qo_= + /*<>*/ _rP_= /*<>*/ caml_call1(on_change,a), - /*<>*/ _qp_=Lwd[12]; + /*<>*/ _rQ_=Lwd[12]; /*<>*/ /*<>*/ caml_call2 - (_qp_,state,_qo_); + (_rQ_,state,_rP_); /*<>*/ return 321312668 /*<>*/ } /*<>*/ var - /*<>*/ _pq_=k[1], + /*<>*/ _qR_=k[1], switch$0=0; - /*<>*/ if(typeof _pq_ === "number") - {if(-323132129 === _pq_) + /*<>*/ if(typeof _qR_ === "number") + {if(-323132129 === _qR_) {if(! k[2]) { /*<>*/ if(0 < pos$0) { /*<>*/ if @@ -571574,149 +571584,149 @@ < /*<>*/ caml_ml_string_length(text)) /*<>*/ var - /*<>*/ _ps_= + /*<>*/ _qT_= /*<>*/ caml_ml_string_length(text) - pos$0 | 0, - /*<>*/ _pt_=String[15], - /*<>*/ _pu_= - /*<>*/ caml_call3(_pt_,text,pos$0,_ps_), - /*<>*/ _pv_=pos$0 - 1 | 0, - /*<>*/ _pw_=0, - /*<>*/ _px_=String[15], - /*<>*/ _py_= - /*<>*/ caml_call3(_px_,text,_pw_,_pv_), - /*<>*/ _pz_=Stdlib[28], - text$0= /*<>*/ caml_call2(_pz_,_py_,_pu_); + /*<>*/ _qU_=String[15], + /*<>*/ _qV_= + /*<>*/ caml_call3(_qU_,text,pos$0,_qT_), + /*<>*/ _qW_=pos$0 - 1 | 0, + /*<>*/ _qX_=0, + /*<>*/ _qY_=String[15], + /*<>*/ _qZ_= + /*<>*/ caml_call3(_qY_,text,_qX_,_qW_), + /*<>*/ _q0_=Stdlib[28], + text$0= /*<>*/ caml_call2(_q0_,_qZ_,_qV_); else /*<>*/ if (0 < /*<>*/ caml_ml_string_length(text)) /*<>*/ var - /*<>*/ _pG_= + /*<>*/ _q7_= /*<>*/ caml_ml_string_length(text) - 1 | 0, - /*<>*/ _pH_=0, - /*<>*/ _pI_=String[15], + /*<>*/ _q8_=0, + /*<>*/ _q9_=String[15], text$0= - /*<>*/ caml_call3(_pI_,text,_pH_,_pG_); + /*<>*/ caml_call3(_q9_,text,_q8_,_q7_); else var text$0=text; /*<>*/ var - /*<>*/ _pA_=pos$0 - 1 | 0, - /*<>*/ _pB_=0, - /*<>*/ _pC_=Stdlib[17], + /*<>*/ _q1_=pos$0 - 1 | 0, + /*<>*/ _q2_=0, + /*<>*/ _q3_=Stdlib[17], /*<>*/ pos= - /*<>*/ caml_call2(_pC_,_pB_,_pA_), - /*<>*/ _pD_=[0,text$0,pos], - _pE_= /*<>*/ on_change$0(_pD_)} + /*<>*/ caml_call2(_q3_,_q2_,_q1_), + /*<>*/ _q4_=[0,text$0,pos], + _q5_= /*<>*/ on_change$0(_q4_)} else - var _pE_=-475359645; - var _pF_=_pE_; + var _q5_=-475359645; + var _q6_=_q5_; switch$0 = 1}} else - if(258914209 === _pq_ && ! k[2]) + if(258914209 === _qR_ && ! k[2]) { /*<>*/ /*<>*/ var - _pJ_= + _q__= Nottui[3][4]; /*<>*/ /*<>*/ caml_call1 - (_pJ_,focus_h); - /*<>*/ var _pF_=321312668; + (_q__,focus_h); + /*<>*/ var _q6_=321312668; switch$0 = 1}} else - {var _pK_=_pq_[1],switch$1=0; - if(852405675 === _pK_) - {var _pL_=k[2],_pM_=_pq_[2],switch$2=0; - if(_pL_) - if(748795083 === _pL_[1] && ! _pL_[2]) + {var _q$_=_qR_[1],switch$1=0; + if(852405675 === _q$_) + {var _ra_=k[2],_rb_=_qR_[2],switch$2=0; + if(_ra_) + if(748795083 === _ra_[1] && ! _ra_[2]) { /*<>*/ var - /*<>*/ _pN_=85, - /*<>*/ _pO_=Stdlib_Uchar[12], - /*<>*/ _pP_= - /*<>*/ caml_call1(_pO_,_pN_), - /*<>*/ _pQ_=Stdlib_Uchar[15], + /*<>*/ _rc_=85, + /*<>*/ _rd_=Stdlib_Uchar[12], + /*<>*/ _re_= + /*<>*/ caml_call1(_rd_,_rc_), + /*<>*/ _rf_=Stdlib_Uchar[15], switch$3=0; /*<>*/ if - ( /*<>*/ caml_call2(_pQ_,_pM_,_pP_)) - var _pR_= /*<>*/ on_change$0(_e8_); + ( /*<>*/ caml_call2(_rf_,_rb_,_re_)) + var _rg_= /*<>*/ on_change$0(_e8_); else { /*<>*/ /*<>*/ var - _pU_= + _rj_= 107; /*<>*/ if - ( /*<>*/ eq_uc_c(_pM_,_pU_)) + ( /*<>*/ eq_uc_c(_rb_,_rj_)) { /*<>*/ if (pos$0 < /*<>*/ caml_ml_string_length(text)) /*<>*/ var - /*<>*/ _pV_=0, - /*<>*/ _pW_=String[15], - /*<>*/ _pX_= + /*<>*/ _rk_=0, + /*<>*/ _rl_=String[15], + /*<>*/ _rm_= [0, - /*<>*/ caml_call3(_pW_,text,_pV_,pos$0), + /*<>*/ caml_call3(_rl_,text,_rk_,pos$0), pos$0], - _pY_= /*<>*/ on_change$0(_pX_); + _rn_= /*<>*/ on_change$0(_rm_); else - var _pY_=-475359645; - var _pR_=_pY_} + var _rn_=-475359645; + var _rg_=_rn_} else {switch$1 = 1;switch$2 = 1;switch$3 = 1}} - if(! switch$3)var _pS_=_pR_} + if(! switch$3)var _rh_=_rg_} else {switch$1 = 1;switch$2 = 1} else { /*<>*/ var - /*<>*/ _pZ_=Stdlib_Uchar[14], + /*<>*/ _ro_=Stdlib_Uchar[14], /*<>*/ k$0= - /*<>*/ caml_call1(_pZ_,_pM_); + /*<>*/ caml_call1(_ro_,_rb_); /*<>*/ if (pos$0 < /*<>*/ caml_ml_string_length(text)) /*<>*/ var - /*<>*/ _p0_= + /*<>*/ _rp_= /*<>*/ caml_ml_string_length(text) - pos$0 | 0, - /*<>*/ _p1_=String[15], - /*<>*/ _p2_= - /*<>*/ caml_call3(_p1_,text,pos$0,_p0_), - /*<>*/ _p3_=1, - /*<>*/ _p4_=String[1], - /*<>*/ _p5_= - /*<>*/ caml_call2(_p4_,_p3_,k$0), - /*<>*/ _p6_=Stdlib[28], - /*<>*/ _p7_= - /*<>*/ caml_call2(_p6_,_p5_,_p2_), - /*<>*/ _p8_=0, - /*<>*/ _p9_=String[15], - /*<>*/ _p__= - /*<>*/ caml_call3(_p9_,text,_p8_,pos$0), - /*<>*/ _p$_=Stdlib[28], - text$1= /*<>*/ caml_call2(_p$_,_p__,_p7_); + /*<>*/ _rq_=String[15], + /*<>*/ _rr_= + /*<>*/ caml_call3(_rq_,text,pos$0,_rp_), + /*<>*/ _rs_=1, + /*<>*/ _rt_=String[1], + /*<>*/ _ru_= + /*<>*/ caml_call2(_rt_,_rs_,k$0), + /*<>*/ _rv_=Stdlib[28], + /*<>*/ _rw_= + /*<>*/ caml_call2(_rv_,_ru_,_rr_), + /*<>*/ _rx_=0, + /*<>*/ _ry_=String[15], + /*<>*/ _rz_= + /*<>*/ caml_call3(_ry_,text,_rx_,pos$0), + /*<>*/ _rA_=Stdlib[28], + text$1= /*<>*/ caml_call2(_rA_,_rz_,_rw_); else /*<>*/ var - /*<>*/ _qb_=1, - /*<>*/ _qc_=String[1], - /*<>*/ _qd_= - /*<>*/ caml_call2(_qc_,_qb_,k$0), - /*<>*/ _qe_=Stdlib[28], - text$1= /*<>*/ caml_call2(_qe_,text,_qd_); + /*<>*/ _rC_=1, + /*<>*/ _rD_=String[1], + /*<>*/ _rE_= + /*<>*/ caml_call2(_rD_,_rC_,k$0), + /*<>*/ _rF_=Stdlib[28], + text$1= /*<>*/ caml_call2(_rF_,text,_rE_); /*<>*/ var - /*<>*/ _qa_=[0,text$1,pos$0 + 1 | 0], - _pS_= /*<>*/ on_change$0(_qa_)} - if(! switch$2)var _pT_=_pS_} + /*<>*/ _rB_=[0,text$1,pos$0 + 1 | 0], + _rh_= /*<>*/ on_change$0(_rB_)} + if(! switch$2)var _ri_=_rh_} else - if(951904681 === _pK_) - {var _qf_=_pq_[2],switch$4=0; - if(-57574468 === _qf_) + if(951904681 === _q$_) + {var _rG_=_qR_[2],switch$4=0; + if(-57574468 === _rG_) if(k[2]) {switch$1 = 1;switch$4 = 1} else @@ -571728,70 +571738,70 @@ <= /*<>*/ caml_ml_string_length(text)) /*<>*/ var - /*<>*/ _qg_=[0,text,pos$1], - _qh_= /*<>*/ on_change$0(_qg_); + /*<>*/ _rH_=[0,text,pos$1], + _rI_= /*<>*/ on_change$0(_rH_); else - var _qh_=-475359645; - /*<>*/ var _qi_=_qh_} + var _rI_=-475359645; + /*<>*/ var _rJ_=_rI_} else - if(847852583 === _qf_ && ! k[2]) + if(847852583 === _rG_ && ! k[2]) { /*<>*/ if(0 < pos$0) /*<>*/ var - /*<>*/ _qj_=[0,text,pos$0 - 1 | 0], - _qk_= /*<>*/ on_change$0(_qj_); + /*<>*/ _rK_=[0,text,pos$0 - 1 | 0], + _rL_= /*<>*/ on_change$0(_rK_); else - var _qk_=-475359645; - var _qi_=_qk_} + var _rL_=-475359645; + var _rJ_=_rL_} else {switch$1 = 1;switch$4 = 1} - if(! switch$4)var _pT_=_qi_} + if(! switch$4)var _ri_=_rJ_} else switch$1 = 1; - if(! switch$1){var _pF_=_pT_;switch$0 = 1}} - /*<>*/ /*<>*/ var - _pr_= - switch$0?_pF_:-475359645; + if(! switch$1){var _q6_=_ri_;switch$0 = 1}} + /*<>*/ /*<>*/ var + _qS_= + switch$0?_q6_:-475359645; return function(r) - { /*<>*/ function _ql_(m) + { /*<>*/ function _rM_(m) { /*<>*/ return /*<>*/ caml_call7 (m,0,0,_e7_,Nottui[6][3],k,Nottui[6][2],r) /*<>*/ } /*<>*/ var - /*<>*/ _qm_=0, - /*<>*/ _qn_=Logs[14]; + /*<>*/ _rN_=0, + /*<>*/ _rO_=Logs[14]; /*<>*/ /*<>*/ caml_call2 - (_qn_,_qm_,_ql_); + (_rO_,_rN_,_rM_); /*<>*/ return r /*<>*/ } - (_pr_) /*<>*/ } + (_qS_) /*<>*/ } /*<>*/ return /*<>*/ caml_call3 (Nottui[6][19],[0,focus],handler,content)} - /*<>*/ function _oE_(_oM_,_oN_) - { /*<>*/ return update(focus,_oM_,_oN_)} + /*<>*/ function _p5_(_qb_,_qc_) + { /*<>*/ return update(focus,_qb_,_qc_)} /*<>*/ var - /*<>*/ _oF_=Lwd[11], - /*<>*/ _oG_= - /*<>*/ caml_call1(_oF_,state), - /*<>*/ _oH_=Nottui[3][6], - /*<>*/ _oI_= - /*<>*/ caml_call1(_oH_,focus), - /*<>*/ _oJ_=Lwd[4], + /*<>*/ _p6_=Lwd[11], + /*<>*/ _p7_= + /*<>*/ caml_call1(_p6_,state), + /*<>*/ _p8_=Nottui[3][6], + /*<>*/ _p9_= + /*<>*/ caml_call1(_p8_,focus), + /*<>*/ _p__=Lwd[4], /*<>*/ node= - /*<>*/ caml_call3(_oJ_,_oI_,_oG_,_oE_); + /*<>*/ caml_call3(_p__,_p9_,_p7_,_p5_); /*<>*/ return node /*<>*/ } /*<>*/ function line_empty(param) { /*<>*/ var - /*<>*/ _oy_=0, - /*<>*/ _oz_=Nottui[3][1], + /*<>*/ _pZ_=0, + /*<>*/ _p0_=Nottui[3][1], /*<>*/ focus= - /*<>*/ caml_call1(_oz_,_oy_), - /*<>*/ _oA_=Lwd[10], + /*<>*/ caml_call1(_p0_,_pZ_), + /*<>*/ _p1_=Lwd[10], /*<>*/ state= - /*<>*/ caml_call1(_oA_,_e9_), - /*<>*/ _oB_=0, - /*<>*/ _oC_=[0,focus]; + /*<>*/ caml_call1(_p1_,_e9_), + /*<>*/ _p2_=0, + /*<>*/ _p3_=[0,focus]; /*<>*/ return [0, focus, state, - /*<>*/ edit_field(_oC_,_oB_,state)] /*<>*/ } + /*<>*/ edit_field(_p3_,_p2_,state)] /*<>*/ } /*<>*/ function line_make(opt,str) { /*<>*/ if(opt) /*<>*/ var @@ -571799,20 +571809,20 @@ focus=sth; else /*<>*/ var - /*<>*/ _ow_=0, - /*<>*/ _ox_=Nottui[3][1], - focus= /*<>*/ caml_call1(_ox_,_ow_); + /*<>*/ _pX_=0, + /*<>*/ _pY_=Nottui[3][1], + focus= /*<>*/ caml_call1(_pY_,_pX_); /*<>*/ var - /*<>*/ _os_=[0,str,0], - /*<>*/ _ot_=Lwd[10], + /*<>*/ _pT_=[0,str,0], + /*<>*/ _pU_=Lwd[10], /*<>*/ state= - /*<>*/ caml_call1(_ot_,_os_), - /*<>*/ _ou_=0, - /*<>*/ _ov_=[0,focus]; + /*<>*/ caml_call1(_pU_,_pT_), + /*<>*/ _pV_=0, + /*<>*/ _pW_=[0,focus]; /*<>*/ return [0, focus, state, - /*<>*/ edit_field(_ov_,_ou_,state)] /*<>*/ } + /*<>*/ edit_field(_pW_,_pV_,state)] /*<>*/ } /*<>*/ function line_append(opt,focus,str) { /*<>*/ if(opt) /*<>*/ var @@ -571820,1804 +571830,2093 @@ table=sth; else /*<>*/ var - /*<>*/ _oq_=0, - /*<>*/ _or_=Lwd_table[1], - table= /*<>*/ caml_call1(_or_,_oq_); + /*<>*/ _pR_=0, + /*<>*/ _pS_=Lwd_table[1], + table= /*<>*/ caml_call1(_pS_,_pR_); /*<>*/ var - /*<>*/ _on_=0, - /*<>*/ _oo_=Lwd_table[3], + /*<>*/ _pO_=0, + /*<>*/ _pP_=Lwd_table[3], /*<>*/ row= - /*<>*/ caml_call2(_oo_,_on_,table), - /*<>*/ _op_= + /*<>*/ caml_call2(_pP_,_pO_,table), + /*<>*/ _pQ_= /*<>*/ line_make(focus,str); /*<>*/ return /*<>*/ caml_call2 - (Lwd_table[13],row,_op_) /*<>*/ } + (Lwd_table[13],row,_pQ_) /*<>*/ } /*<>*/ function copy_line_cursor(x,y) { /*<>*/ var - /*<>*/ _oe_=x[2], - /*<>*/ _of_=Lwd[13], + /*<>*/ _pF_=x[2], + /*<>*/ _pG_=Lwd[13], /*<>*/ match= - /*<>*/ caml_call1(_of_,_oe_), + /*<>*/ caml_call1(_pG_,_pF_), /*<>*/ xi=match[2], - /*<>*/ _og_=y[2], - /*<>*/ _oh_=Lwd[13], + /*<>*/ _pH_=y[2], + /*<>*/ _pI_=Lwd[13], /*<>*/ match$0= - /*<>*/ caml_call1(_oh_,_og_), + /*<>*/ caml_call1(_pI_,_pH_), /*<>*/ ys=match$0[1], - /*<>*/ _oi_= + /*<>*/ _pJ_= /*<>*/ caml_ml_string_length(ys), - /*<>*/ _oj_=Stdlib_Int[10], - /*<>*/ _ok_= - /*<>*/ caml_call2(_oj_,xi,_oi_), - /*<>*/ _ol_=0, - /*<>*/ _om_=Stdlib_Int[11], + /*<>*/ _pK_=Stdlib_Int[10], + /*<>*/ _pL_= + /*<>*/ caml_call2(_pK_,xi,_pJ_), + /*<>*/ _pM_=0, + /*<>*/ _pN_=Stdlib_Int[11], /*<>*/ yi= - /*<>*/ caml_call2(_om_,_ol_,_ok_); + /*<>*/ caml_call2(_pN_,_pM_,_pL_); /*<>*/ return /*<>*/ caml_call2 (Lwd[12],y[2],[0,ys,yi]) /*<>*/ } /*<>*/ function row_of_cursor(cursor,f) - { /*<>*/ function _ob_(row) + { /*<>*/ function _pC_(row) { /*<>*/ return /*<>*/ caml_call1 (f,row) /*<>*/ } /*<>*/ var - /*<>*/ _oc_=Lwd[13], - /*<>*/ _od_= - /*<>*/ caml_call1(_oc_,cursor); + /*<>*/ _pD_=Lwd[13], + /*<>*/ _pE_= + /*<>*/ caml_call1(_pD_,cursor); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_od_,_ob_) /*<>*/ } + (Nottui[6][1],_pE_,_pC_) /*<>*/ } /*<>*/ function line_of_cursor(cursor,f) - { /*<>*/ function _n7_(row) - { /*<>*/ function _n__(line) + { /*<>*/ function _pw_(row) + { /*<>*/ function _pz_(line) { /*<>*/ return /*<>*/ caml_call2 (f,row,line) /*<>*/ } /*<>*/ var - /*<>*/ _n$_=Lwd_table[12], - /*<>*/ _oa_= - /*<>*/ caml_call1(_n$_,row); + /*<>*/ _pA_=Lwd_table[12], + /*<>*/ _pB_= + /*<>*/ caml_call1(_pA_,row); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_oa_,_n__) /*<>*/ } + (Nottui[6][1],_pB_,_pz_) /*<>*/ } /*<>*/ var - /*<>*/ _n8_=Lwd[13], - /*<>*/ _n9_= - /*<>*/ caml_call1(_n8_,cursor); + /*<>*/ _px_=Lwd[13], + /*<>*/ _py_= + /*<>*/ caml_call1(_px_,cursor); /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_n9_,_n7_) /*<>*/ } - /*<>*/ function cursor_move(cursor,f) - { /*<>*/ var - /*<>*/ _nW_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_nW_,cursor); - /*<>*/ if(match) - { /*<>*/ var - /*<>*/ cursor_row=match[1], - /*<>*/ match$0= - /*<>*/ caml_call1(f,cursor_row); - /*<>*/ if(match$0) - { /*<>*/ var - /*<>*/ new_row=match$0[1], - /*<>*/ _nX_=Lwd_table[12], - /*<>*/ match$1= - /*<>*/ caml_call1(_nX_,new_row); - /*<>*/ if(match$1) - { /*<>*/ var - /*<>*/ new_line=match$1[1], - /*<>*/ _nY_=Lwd_table[12], - /*<>*/ _nZ_= - /*<>*/ caml_call1(_nY_,cursor_row), - /*<>*/ _n0_= - function(cursor_line) - { /*<>*/ /*<>*/ copy_line_cursor - (cursor_line,new_line); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[3][4],cursor_line[1]) /*<>*/ }, - /*<>*/ _n1_=Stdlib_Option[9], - /*<>*/ _n2_= - /*<>*/ caml_call1(_n1_,_n0_); - /*<>*/ /*<>*/ caml_call1 - (_n2_,_nZ_); - /*<>*/ var - /*<>*/ _n3_=new_line[1], - /*<>*/ _n4_=Nottui[3][2]; - /*<>*/ /*<>*/ caml_call1 - (_n4_,_n3_)} - /*<>*/ var - /*<>*/ _n5_=[0,new_row], - /*<>*/ _n6_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_n6_,cursor,_n5_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function edit_area_of_string(opt,s) + (Nottui[6][1],_py_,_pw_) /*<>*/ } + /*<>*/ function cursor_move(opt,cursor) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], + update=sth; + else + var + update= + function(param,_pv_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return function(new_row) + { /*<>*/ var + /*<>*/ _pk_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_pk_,cursor); + /*<>*/ if(match) + { /*<>*/ var + /*<>*/ cursor_row=match[1], + /*<>*/ match$0= + /*<>*/ caml_call1(new_row,cursor_row); + /*<>*/ if(match$0) + { /*<>*/ var + /*<>*/ new_row$0=match$0[1], + /*<>*/ _pl_=Lwd_table[12], + /*<>*/ match$1= + /*<>*/ caml_call1(_pl_,new_row$0); + /*<>*/ if(match$1) + { /*<>*/ var + /*<>*/ new_line=match$1[1], + /*<>*/ _pm_=Lwd_table[12], + /*<>*/ _pn_= + /*<>*/ caml_call1(_pm_,cursor_row), + /*<>*/ _po_= + function(cursor_line) + { /*<>*/ /*<>*/ caml_call2 + (update,cursor_line,new_line); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][4],cursor_line[1]) /*<>*/ }, + /*<>*/ _pp_=Stdlib_Option[9], + /*<>*/ _pq_= + /*<>*/ caml_call1(_pp_,_po_); + /*<>*/ /*<>*/ caml_call1 + (_pq_,_pn_); + /*<>*/ var + /*<>*/ _pr_=new_line[1], + /*<>*/ _ps_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_ps_,_pr_)} + /*<>*/ var + /*<>*/ _pt_=[0,new_row$0], + /*<>*/ _pu_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_pu_,cursor,_pt_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ return -475359645 /*<>*/ }} + /*<>*/ function line_table_of_string(opt,s) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], table=sth; else - /*<>*/ var - /*<>*/ _nS_=0, - /*<>*/ _nT_=Lwd_table[1], - table= /*<>*/ caml_call1(_nT_,_nS_); - /*<>*/ var - /*<>*/ _nM_=10, - /*<>*/ _nN_=String[16], - /*<>*/ _nO_= - /*<>*/ caml_call2(_nN_,_nM_,s), - /*<>*/ _nP_=[0,table]; - /*<>*/ function arg(_nU_,_nV_) - { /*<>*/ return line_append(_nP_,_nU_,_nV_)} - /*<>*/ function _nQ_(eta) + /*<>*/ var + /*<>*/ _pg_=0, + /*<>*/ _ph_=Lwd_table[1], + table= /*<>*/ caml_call1(_ph_,_pg_); + /*<>*/ var + /*<>*/ _pa_=10, + /*<>*/ _pb_=String[16], + /*<>*/ _pc_= + /*<>*/ caml_call2(_pb_,_pa_,s), + /*<>*/ _pd_=[0,table]; + /*<>*/ function arg(_pi_,_pj_) + { /*<>*/ return line_append(_pd_,_pi_,_pj_)} + /*<>*/ function _pe_(eta) { /*<>*/ return arg(0,eta)} - /*<>*/ /*<>*/ var - _nR_= + /*<>*/ /*<>*/ var + _pf_= Stdlib_List[17]; - /*<>*/ /*<>*/ caml_call2 - (_nR_,_nQ_,_nO_); - /*<>*/ return table} + /*<>*/ /*<>*/ caml_call2 + (_pf_,_pe_,_pc_); + /*<>*/ return table} /*<>*/ function focus_val(focus) - { /*<>*/ if(typeof focus === "number") - /*<>*/ return 0; + { /*<>*/ 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} /*<>*/ } + { /*<>*/ 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 - /*<>*/ _nI_=ui$0[5], - /*<>*/ _nH_=ui$0[6]; - /*<>*/ if(typeof _nH_ === "number") - /*<>*/ return Nottui[6][15]; + /*<>*/ for(;;) + { /*<>*/ var + /*<>*/ _o8_=ui$0[5], + /*<>*/ _o7_=ui$0[6]; + /*<>*/ if(typeof _o7_ === "number") + /*<>*/ return Nottui[6][15]; else - { /*<>*/ if(0 === _nH_[0]) - /*<>*/ return ui$0; - switch(_nI_[0]) - {case 0: /*<>*/ return Nottui[6][15]; + { /*<>*/ if(0 === _o7_[0]) + /*<>*/ return ui$0; + switch(_o8_[0]) + {case 0: /*<>*/ return Nottui[6][15]; case 9: case 10: case 11: - /*<>*/ var - b=_nI_[2], - a=_nI_[1], - _nJ_=b[6], - /*<>*/ _nK_= - /*<>*/ focus_val(_nJ_), - /*<>*/ _nL_=a[6]; - /*<>*/ if - ( /*<>*/ focus_val(_nL_) < _nK_) + /*<>*/ var + b=_o8_[2], + a=_o8_[1], + _o9_=b[6], + /*<>*/ _o__= + /*<>*/ focus_val(_o9_), + /*<>*/ _o$_=a[6]; + /*<>*/ if + ( /*<>*/ focus_val(_o$_) < _o__) {var ui$0=b;continue} - /*<>*/ var ui$0=a; + /*<>*/ var ui$0=a; continue; - default:var ui$1=_nI_[1],ui$0=ui$1;continue}}} /*<>*/ } + default:var ui$1=_o8_[1],ui$0=ui$1;continue}}} /*<>*/ } /*<>*/ function focus_handle_compare(a,b) - { /*<>*/ var - /*<>*/ _ny_=b[2][1], - /*<>*/ _nz_=Nottui[3][7], - /*<>*/ _nA_= - /*<>*/ caml_call1(_nz_,_ny_), - /*<>*/ _nB_=Lwd[13], - /*<>*/ _nC_= - /*<>*/ caml_call1(_nB_,_nA_), - /*<>*/ _nD_=a[2][1], - /*<>*/ _nE_=Nottui[3][7], - /*<>*/ _nF_= - /*<>*/ caml_call1(_nE_,_nD_), - /*<>*/ _nG_=Lwd[13]; - /*<>*/ return /*<>*/ caml_call1 - (_nG_,_nF_) + { /*<>*/ var + /*<>*/ _oY_=b[2][1], + /*<>*/ _oZ_=Nottui[3][7], + /*<>*/ _o0_= + /*<>*/ caml_call1(_oZ_,_oY_), + /*<>*/ _o1_=Lwd[13], + /*<>*/ _o2_= + /*<>*/ caml_call1(_o1_,_o0_), + /*<>*/ _o3_=a[2][1], + /*<>*/ _o4_=Nottui[3][7], + /*<>*/ _o5_= + /*<>*/ caml_call1(_o4_,_o3_), + /*<>*/ _o6_=Lwd[13]; + /*<>*/ return /*<>*/ caml_call1 + (_o6_,_o5_) < - _nC_ + _o2_ ?b - :a /*<>*/ } + :a /*<>*/ } /*<>*/ function focused_row_of_table(table) - { /*<>*/ var - /*<>*/ _nv_=0, - /*<>*/ _nw_= + { /*<>*/ var + /*<>*/ _oV_=0, + /*<>*/ _oW_= [0, - [0,0, /*<>*/ line_empty(_nv_)], + [0,0, /*<>*/ line_empty(_oV_)], focus_handle_compare]; - /*<>*/ function _nx_(row,line) - { /*<>*/ return [0,[0,row],line] /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (Lwd_table[19],_nx_,_nw_,table) /*<>*/ } - /*<>*/ function edit_area(opt,_mc_,param) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ function _oX_(row,line) + { /*<>*/ return [0,[0,row],line] /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Lwd_table[19],_oX_,_oW_,table) /*<>*/ } + /*<>*/ function to_lwt_lwd(e) + { /*<>*/ var + /*<>*/ _oT_=Lwd[2], + /*<>*/ _oU_= + /*<>*/ caml_call1(_oT_,e); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_oU_) /*<>*/ } + /*<>*/ function lwt_lwd_string(s) + { /*<>*/ /*<>*/ var _oS_=0; + /*<>*/ return /*<>*/ to_lwt_lwd + ( /*<>*/ string$0(_oS_,s)) /*<>*/ } + /*<>*/ function edit_area(opt,_ny_,param) + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], table=sth; else - /*<>*/ var - /*<>*/ _my_=0, - /*<>*/ _mz_=Lwd_table[1], - table= /*<>*/ caml_call1(_mz_,_my_); - /*<>*/ if(_mc_) - /*<>*/ var - /*<>*/ sth$0=_mc_[1], + /*<>*/ var + /*<>*/ _nU_=0, + /*<>*/ _nV_=Lwd_table[1], + table= /*<>*/ caml_call1(_nV_,_nU_); + /*<>*/ if(_ny_) + /*<>*/ var + /*<>*/ sth$0=_ny_[1], focus=sth$0; else - /*<>*/ var - /*<>*/ _mw_=0, - /*<>*/ _mx_=Nottui[3][1], - focus= /*<>*/ caml_call1(_mx_,_mw_); - /*<>*/ var - /*<>*/ _md_=Lwd_table[8], - /*<>*/ _me_= - /*<>*/ caml_call1(_md_,table), - /*<>*/ _mf_=Lwd[10], - /*<>*/ cursor= - /*<>*/ caml_call1(_mf_,_me_), - /*<>*/ _mg_=Lwd[13], - /*<>*/ _mh_= - /*<>*/ caml_call1(_mg_,cursor); - /*<>*/ function _mi_(cursor) - { /*<>*/ var - /*<>*/ _nr_=Lwd_table[12], - /*<>*/ _ns_= - /*<>*/ caml_call1(_nr_,cursor); - /*<>*/ function _nt_(first) - { /*<>*/ return /*<>*/ caml_call1 - (Nottui[3][2],first[1]) /*<>*/ } - /*<>*/ /*<>*/ var - _nu_= + /*<>*/ var + /*<>*/ _nS_=0, + /*<>*/ _nT_=Nottui[3][1], + focus= /*<>*/ caml_call1(_nT_,_nS_); + /*<>*/ var + /*<>*/ _nz_=Lwd_table[8], + /*<>*/ _nA_= + /*<>*/ caml_call1(_nz_,table), + /*<>*/ _nB_=Lwd[10], + /*<>*/ cursor= + /*<>*/ caml_call1(_nB_,_nA_), + /*<>*/ _nC_=Lwd[13], + /*<>*/ _nD_= + /*<>*/ caml_call1(_nC_,cursor); + /*<>*/ function _nE_(cursor) + { /*<>*/ var + /*<>*/ _oO_=Lwd_table[12], + /*<>*/ _oP_= + /*<>*/ caml_call1(_oO_,cursor); + /*<>*/ function _oQ_(first) + { /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][2],first[1]) /*<>*/ } + /*<>*/ /*<>*/ var + _oR_= Stdlib_Option[9]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_nu_,_nt_),_ns_) /*<>*/ } - /*<>*/ /*<>*/ var - _mj_= + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_oR_,_oQ_),_oP_) /*<>*/ } + /*<>*/ /*<>*/ var + _nF_= Stdlib_Option[9]; - /*<>*/ /*<>*/ caml_call2 - (_mj_,_mi_,_mh_); - /*<>*/ var - /*<>*/ _mk_=Nottui[6][32], - /*<>*/ _ml_=Lwd_utils[1], - /*<>*/ _mm_= - /*<>*/ caml_call1(_ml_,_mk_); - /*<>*/ function _mn_(param,_nq_) - { /*<>*/ /*<>*/ var ui=_nq_[3]; - /*<>*/ return ui /*<>*/ } - /*<>*/ var - /*<>*/ _mo_=Lwd_table[19], - /*<>*/ _mp_= - /*<>*/ caml_call3(_mo_,_mn_,_mm_,table), - /*<>*/ _mq_=Lwd[5], - /*<>*/ _mr_= - /*<>*/ caml_call1(_mq_,_mp_), - /*<>*/ _ms_=Nottui[3][6], - /*<>*/ _mt_= - /*<>*/ caml_call1(_ms_,focus), - /*<>*/ _mu_= - /*<>*/ caml_call1(Lwd[4],_mt_); - /*<>*/ function _mv_(focus) - { /*<>*/ function _mB_(k) - { /*<>*/ function _mC_(m) - { /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_e__,Nottui[6][3],k) /*<>*/ } - /*<>*/ var - /*<>*/ _mD_=0, - /*<>*/ _mE_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_mE_,_mD_,_mC_); - /*<>*/ /*<>*/ var _mF_=k[1]; - /*<>*/ if(typeof _mF_ === "number") - {if(-323132129 === _mF_) + /*<>*/ /*<>*/ caml_call2 + (_nF_,_nE_,_nD_); + /*<>*/ var + /*<>*/ _nG_=Nottui[6][32], + /*<>*/ _nH_=Lwd_utils[1], + /*<>*/ _nI_= + /*<>*/ caml_call1(_nH_,_nG_); + /*<>*/ function _nJ_(param,_oN_) + { /*<>*/ /*<>*/ var ui=_oN_[3]; + /*<>*/ return ui /*<>*/ } + /*<>*/ var + /*<>*/ _nK_=Lwd_table[19], + /*<>*/ _nL_= + /*<>*/ caml_call3(_nK_,_nJ_,_nI_,table), + /*<>*/ _nM_=Lwd[5], + /*<>*/ _nN_= + /*<>*/ caml_call1(_nM_,_nL_), + /*<>*/ _nO_=Nottui[3][6], + /*<>*/ _nP_= + /*<>*/ caml_call1(_nO_,focus), + /*<>*/ _nQ_= + /*<>*/ caml_call1(Lwd[4],_nP_); + /*<>*/ function _nR_(focus) + { /*<>*/ function _nX_(k) + { /*<>*/ function _nY_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_e__,Nottui[6][3],k) /*<>*/ } + /*<>*/ var + /*<>*/ _nZ_=0, + /*<>*/ _n0_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_n0_,_nZ_,_nY_); + /*<>*/ var + /*<>*/ _n1_=[0,copy_line_cursor], + /*<>*/ cursor_move$0= + /*<>*/ cursor_move(_n1_,cursor), + /*<>*/ _n2_=k[1]; + /*<>*/ if(typeof _n2_ === "number") + {if(-323132129 === _n2_) {if(! k[2]) - /*<>*/ return /*<>*/ line_of_cursor + /*<>*/ return /*<>*/ line_of_cursor (cursor, function(row,line) - { /*<>*/ var - /*<>*/ _mQ_=line[2], - /*<>*/ _mR_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_mR_,_mQ_), - /*<>*/ pos=match[2], - /*<>*/ str=match[1]; - /*<>*/ function _mS_(row_prev) - { /*<>*/ if(0 === pos) - { /*<>*/ var - /*<>*/ _mV_= + { /*<>*/ var + /*<>*/ _ob_=line[2], + /*<>*/ _oc_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_oc_,_ob_), + /*<>*/ pos=match[2], + /*<>*/ str=match[1]; + /*<>*/ function _od_(row_prev) + { /*<>*/ if(0 === pos) + { /*<>*/ var + /*<>*/ _og_= function(line_prev) - { /*<>*/ var - /*<>*/ _mY_=line_prev[2], - /*<>*/ _mZ_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_mZ_,_mY_), - /*<>*/ str_prev=match[1], - /*<>*/ _m0_=line[1], - /*<>*/ _m1_=Nottui[3][4]; - /*<>*/ /*<>*/ caml_call1 - (_m1_,_m0_); - /*<>*/ var - /*<>*/ _m2_=line_prev[1], - /*<>*/ _m3_=Nottui[3][2]; - /*<>*/ /*<>*/ caml_call1 - (_m3_,_m2_); - /*<>*/ var - /*<>*/ _m4_= - /*<>*/ caml_ml_string_length(str_prev), - /*<>*/ _m5_=Stdlib[28], - /*<>*/ _m6_= - [0, - /*<>*/ caml_call2(_m5_,str_prev,str), - _m4_], - /*<>*/ _m7_=line_prev[2], - /*<>*/ _m8_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_m8_,_m7_,_m6_); - /*<>*/ /*<>*/ var - _m9_= - Lwd_table[16]; + { /*<>*/ var + /*<>*/ _oj_=line_prev[2], + /*<>*/ _ok_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_ok_,_oj_), + /*<>*/ str_prev=match[1], + /*<>*/ _ol_=line[1], + /*<>*/ _om_=Nottui[3][4]; /*<>*/ /*<>*/ caml_call1 - (_m9_,row); - /*<>*/ return 321312668 /*<>*/ }, - /*<>*/ _mW_=Lwd_table[12], - /*<>*/ _mX_= - /*<>*/ caml_call1(_mW_,row_prev); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_mX_,_mV_)} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ var - /*<>*/ _mT_=Lwd_table[11], - /*<>*/ _mU_= - /*<>*/ caml_call1(_mT_,row); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][1],_mU_,_mS_) /*<>*/ })} + (_om_,_ol_); + /*<>*/ var + /*<>*/ _on_=line_prev[1], + /*<>*/ _oo_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_oo_,_on_); + /*<>*/ var + /*<>*/ _op_= + /*<>*/ caml_ml_string_length(str_prev), + /*<>*/ _oq_=Stdlib[28], + /*<>*/ _or_= + [0, + /*<>*/ caml_call2(_oq_,str_prev,str), + _op_], + /*<>*/ _os_=line_prev[2], + /*<>*/ _ot_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_ot_,_os_,_or_); + /*<>*/ /*<>*/ var + _ou_= + Lwd_table[16]; + /*<>*/ /*<>*/ caml_call1 + (_ou_,row); + /*<>*/ return 321312668 /*<>*/ }, + /*<>*/ _oh_=Lwd_table[12], + /*<>*/ _oi_= + /*<>*/ caml_call1(_oh_,row_prev); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_oi_,_og_)} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ var + /*<>*/ _oe_=Lwd_table[11], + /*<>*/ _of_= + /*<>*/ caml_call1(_oe_,row); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_of_,_od_) /*<>*/ })} else - if(62119160 === _mF_ && ! k[2]) - /*<>*/ return /*<>*/ line_of_cursor + if(62119160 === _n2_ && ! k[2]) + /*<>*/ return /*<>*/ line_of_cursor (cursor, function(old_row,old_line) - { /*<>*/ var - /*<>*/ _m__=old_line[2], - /*<>*/ _m$_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_m$_,_m__), - /*<>*/ pos=match[2], - /*<>*/ str=match[1], - /*<>*/ _na_=0, - /*<>*/ _nb_=String[15], - /*<>*/ o_str= - /*<>*/ caml_call3(_nb_,str,_na_,pos), - /*<>*/ _nc_= - /*<>*/ caml_ml_string_length(str) + { /*<>*/ var + /*<>*/ _ov_=old_line[2], + /*<>*/ _ow_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_ow_,_ov_), + /*<>*/ pos=match[2], + /*<>*/ str=match[1], + /*<>*/ _ox_=0, + /*<>*/ _oy_=String[15], + /*<>*/ o_str= + /*<>*/ caml_call3(_oy_,str,_ox_,pos), + /*<>*/ _oz_= + /*<>*/ caml_ml_string_length(str) - pos | 0, - /*<>*/ _nd_=String[15], - /*<>*/ n_str= - /*<>*/ caml_call3(_nd_,str,pos,_nc_), - /*<>*/ _ne_=[0,o_str,pos], - /*<>*/ _nf_=old_line[2], - /*<>*/ _ng_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_ng_,_nf_,_ne_); - /*<>*/ var - /*<>*/ _nh_=0, - /*<>*/ new_line= - /*<>*/ line_make(_nh_,n_str), - /*<>*/ _ni_=old_line[1], - /*<>*/ _nj_=Nottui[3][4]; - /*<>*/ /*<>*/ caml_call1 - (_nj_,_ni_); - /*<>*/ var - /*<>*/ _nk_=new_line[1], - /*<>*/ _nl_=Nottui[3][2]; - /*<>*/ /*<>*/ caml_call1 - (_nl_,_nk_); - /*<>*/ var - /*<>*/ _nm_=[0,new_line], - /*<>*/ _nn_=Lwd_table[7], - /*<>*/ _no_= - [0, /*<>*/ caml_call2(_nn_,_nm_,old_row)], - /*<>*/ _np_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_np_,cursor,_no_); - /*<>*/ return 321312668 /*<>*/ })} + /*<>*/ _oA_=String[15], + /*<>*/ n_str= + /*<>*/ caml_call3(_oA_,str,pos,_oz_), + /*<>*/ _oB_=[0,o_str,pos], + /*<>*/ _oC_=old_line[2], + /*<>*/ _oD_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_oD_,_oC_,_oB_); + /*<>*/ var + /*<>*/ _oE_=0, + /*<>*/ new_line= + /*<>*/ line_make(_oE_,n_str), + /*<>*/ _oF_=old_line[1], + /*<>*/ _oG_=Nottui[3][4]; + /*<>*/ /*<>*/ caml_call1 + (_oG_,_oF_); + /*<>*/ var + /*<>*/ _oH_=new_line[1], + /*<>*/ _oI_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_oI_,_oH_); + /*<>*/ var + /*<>*/ _oJ_=[0,new_line], + /*<>*/ _oK_=Lwd_table[7], + /*<>*/ _oL_= + [0, /*<>*/ caml_call2(_oK_,_oJ_,old_row)], + /*<>*/ _oM_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_oM_,cursor,_oL_); + /*<>*/ return 321312668 /*<>*/ })} else - {var _mG_=_mF_[1]; - if(852405675 === _mG_) - {var _mH_=k[2]; - if(_mH_) - {var _mI_=_mH_[1],_mJ_=_mF_[2]; - if(748795083 === _mI_) - {if(! _mH_[2]) - { /*<>*/ /*<>*/ var - _mK_= + {var _n3_=_n2_[1]; + if(852405675 === _n3_) + {var _n4_=k[2]; + if(_n4_) + {var _n5_=_n4_[1],_n6_=_n2_[2]; + if(748795083 === _n5_) + {if(! _n4_[2]) + { /*<>*/ /*<>*/ var + _n7_= 110; - /*<>*/ if - ( /*<>*/ eq_uc_c(_mJ_,_mK_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[10],c) /*<>*/ }); - /*<>*/ /*<>*/ var - _mL_= + /*<>*/ if + ( /*<>*/ eq_uc_c(_n6_,_n7_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[10]); + /*<>*/ /*<>*/ var + _n8_= 112; - /*<>*/ if - ( /*<>*/ eq_uc_c(_mJ_,_mL_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[11],c) /*<>*/ }); - /*<>*/ /*<>*/ var - _mM_= + /*<>*/ if + ( /*<>*/ eq_uc_c(_n6_,_n8_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[11]); + /*<>*/ /*<>*/ var + _n9_= 107; - /*<>*/ if - ( /*<>*/ eq_uc_c(_mJ_,_mM_)) - /*<>*/ return 321312668}} + /*<>*/ if + ( /*<>*/ eq_uc_c(_n6_,_n9_)) + /*<>*/ return 321312668}} else - if(858945253 === _mI_ && ! _mH_[2]) - { /*<>*/ /*<>*/ var - _mN_= + if(858945253 === _n5_ && ! _n4_[2]) + { /*<>*/ /*<>*/ var + _n__= 60; - /*<>*/ if - ( /*<>*/ eq_uc_c(_mJ_,_mN_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, + /*<>*/ if + ( /*<>*/ eq_uc_c(_n6_,_n__)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0, function(param) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[8],table) /*<>*/ }); - /*<>*/ /*<>*/ var - _mO_= + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[8],table) /*<>*/ }); + /*<>*/ /*<>*/ var + _n$_= 62; - /*<>*/ if - ( /*<>*/ eq_uc_c(_mJ_,_mO_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, + /*<>*/ if + ( /*<>*/ eq_uc_c(_n6_,_n$_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0, function(param) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[9],table) /*<>*/ })}}} + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[9],table) /*<>*/ })}}} else - if(951904681 === _mG_) - {var _mP_=_mF_[2]; - if(19067 === _mP_) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[11],c) /*<>*/ }); - if(759637122 === _mP_) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[10],c) /*<>*/ })}} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][19],[0,focus],_mB_) /*<>*/ } - /*<>*/ return /*<>*/ function(_mA_) - { /*<>*/ return caml_call2(_mu_,_mA_,_mv_)} - (_mr_) /*<>*/ } - /*<>*/ function tree_nav(opt,tree,path) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + if(951904681 === _n3_) + {var _oa_=_n2_[2]; + if(19067 === _oa_) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[11]); + if(759637122 === _oa_) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[10])}} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][19],[0,focus],_nX_) /*<>*/ } + /*<>*/ return /*<>*/ function(_nW_) + { /*<>*/ return caml_call2(_nQ_,_nW_,_nR_)} + (_nN_) /*<>*/ } + /*<>*/ function tree_nav(opt,param) + {var path=param[2],tree=param[1]; + if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], focus=sth; else - /*<>*/ var - /*<>*/ _j5_=0, - /*<>*/ _j6_=Nottui[3][1], - focus= /*<>*/ caml_call1(_j6_,_j5_); - /*<>*/ var - /*<>*/ _jX_=0, - /*<>*/ _jY_=Lwd_table[1], - /*<>*/ table= - /*<>*/ caml_call1(_jY_,_jX_); - /*<>*/ function cursor_move(cursor,f) - { /*<>*/ var - /*<>*/ _l4_=Lwd[13], - /*<>*/ match= - /*<>*/ caml_call1(_l4_,cursor); - /*<>*/ if(match) - { /*<>*/ var - /*<>*/ cursor_row=match[1], - /*<>*/ match$0= - /*<>*/ caml_call1(f,cursor_row); - /*<>*/ if(match$0) - { /*<>*/ var - /*<>*/ new_row=match$0[1], - /*<>*/ _l5_=Lwd_table[12], - /*<>*/ match$1= - /*<>*/ caml_call1(_l5_,new_row); - /*<>*/ if(match$1) - { /*<>*/ var + /*<>*/ var + /*<>*/ _lH_=0, + /*<>*/ _lI_=Nottui[3][1], + focus= /*<>*/ caml_call1(_lI_,_lH_); + /*<>*/ var + /*<>*/ _lz_=0, + /*<>*/ _lA_=Lwd_table[1], + /*<>*/ table= + /*<>*/ caml_call1(_lA_,_lz_); + /*<>*/ function cursor_move(cursor,f) + { /*<>*/ var + /*<>*/ _no_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_no_,cursor); + /*<>*/ if(match) + { /*<>*/ var + /*<>*/ cursor_row=match[1], + /*<>*/ match$0= + /*<>*/ caml_call1(f,cursor_row); + /*<>*/ if(match$0) + { /*<>*/ var + /*<>*/ new_row=match$0[1], + /*<>*/ _np_=Lwd_table[12], + /*<>*/ match$1= + /*<>*/ caml_call1(_np_,new_row); + /*<>*/ if(match$1) + { /*<>*/ var match$2=match$1[1], new_line_focus=match$2[1], - _l6_=Lwd_table[12], - /*<>*/ _l7_= - /*<>*/ caml_call1(_l6_,cursor_row), - /*<>*/ _l8_= + _nq_=Lwd_table[12], + /*<>*/ _nr_= + /*<>*/ caml_call1(_nq_,cursor_row), + /*<>*/ _ns_= function(param) - { /*<>*/ /*<>*/ var + { /*<>*/ /*<>*/ var cursor_line_focus= param[1]; - /*<>*/ return /*<>*/ caml_call1 - (Nottui[3][4],cursor_line_focus) /*<>*/ }, - /*<>*/ _l9_=Stdlib_Option[9], - /*<>*/ _l__= - /*<>*/ caml_call1(_l9_,_l8_); - /*<>*/ /*<>*/ caml_call1 - (_l__,_l7_); - /*<>*/ /*<>*/ var - _l$_= + /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][4],cursor_line_focus) /*<>*/ }, + /*<>*/ _nt_=Stdlib_Option[9], + /*<>*/ _nu_= + /*<>*/ caml_call1(_nt_,_ns_); + /*<>*/ /*<>*/ caml_call1 + (_nu_,_nr_); + /*<>*/ /*<>*/ var + _nv_= Nottui[3][2]; - /*<>*/ /*<>*/ caml_call1 - (_l$_,new_line_focus)} - /*<>*/ var - /*<>*/ _ma_=[0,new_row], - /*<>*/ _mb_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_mb_,cursor,_ma_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ function _jZ_(treelist) - { /*<>*/ function _j7_(te) - { /*<>*/ var - /*<>*/ _l1_=0, - /*<>*/ _l2_=Nottui[3][1], - /*<>*/ _l3_= - [0, /*<>*/ caml_call1(_l2_,_l1_),te]; - /*<>*/ return /*<>*/ caml_call2 - (Lwd_table[5],table,_l3_) /*<>*/ } - /*<>*/ /*<>*/ var - _j8_= + /*<>*/ /*<>*/ caml_call1 + (_nv_,new_line_focus)} + /*<>*/ var + /*<>*/ _nw_=[0,new_row], + /*<>*/ _nx_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_nx_,cursor,_nw_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ function _lB_(treelist) + { /*<>*/ function _lJ_(te) + { /*<>*/ var + /*<>*/ _nl_=0, + /*<>*/ _nm_=Nottui[3][1], + /*<>*/ _nn_= + [0, /*<>*/ caml_call1(_nm_,_nl_),te]; + /*<>*/ return /*<>*/ caml_call2 + (Lwd_table[5],table,_nn_) /*<>*/ } + /*<>*/ /*<>*/ var + _lK_= Stdlib_List[17]; - /*<>*/ /*<>*/ caml_call2 - (_j8_,_j7_,treelist); - /*<>*/ var - /*<>*/ _j9_=Lwd_table[8], - /*<>*/ _j__= - /*<>*/ caml_call1(_j9_,table), - /*<>*/ _j$_=Lwd[10], - /*<>*/ cursor= - /*<>*/ caml_call1(_j$_,_j__), - /*<>*/ _ka_=Lwd[13], - /*<>*/ _kb_= - /*<>*/ caml_call1(_ka_,cursor); - /*<>*/ function _kc_(cursor) - { /*<>*/ var - /*<>*/ _lX_=Lwd_table[12], - /*<>*/ _lY_= - /*<>*/ caml_call1(_lX_,cursor); - /*<>*/ function _lZ_(param) - { /*<>*/ /*<>*/ var + /*<>*/ /*<>*/ caml_call2 + (_lK_,_lJ_,treelist); + /*<>*/ var + /*<>*/ _lL_=Lwd_table[8], + /*<>*/ _lM_= + /*<>*/ caml_call1(_lL_,table), + /*<>*/ _lN_=Lwd[10], + /*<>*/ cursor= + /*<>*/ caml_call1(_lN_,_lM_), + /*<>*/ _lO_=Lwd[13], + /*<>*/ _lP_= + /*<>*/ caml_call1(_lO_,cursor); + /*<>*/ function _lQ_(cursor) + { /*<>*/ var + /*<>*/ _nh_=Lwd_table[12], + /*<>*/ _ni_= + /*<>*/ caml_call1(_nh_,cursor); + /*<>*/ function _nj_(param) + { /*<>*/ /*<>*/ var f= param[1]; - /*<>*/ return /*<>*/ caml_call1 - (Nottui[3][2],f) /*<>*/ } - /*<>*/ /*<>*/ var - _l0_= + /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][2],f) /*<>*/ } + /*<>*/ /*<>*/ var + _nk_= Stdlib_Option[9]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call1(_l0_,_lZ_),_lY_) /*<>*/ } - /*<>*/ /*<>*/ var - _kd_= + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_nk_,_nj_),_ni_) /*<>*/ } + /*<>*/ /*<>*/ var + _lR_= Stdlib_Option[9]; - /*<>*/ /*<>*/ caml_call2 - (_kd_,_kc_,_kb_); - /*<>*/ var - /*<>*/ _ke_=0, - /*<>*/ _kf_= - /*<>*/ string$0(_ke_,cst_initializing), - /*<>*/ _kg_=Lwd[2], - /*<>*/ _kh_= - /*<>*/ caml_call1(_kg_,_kf_), - /*<>*/ _ki_=Lwd[10], - /*<>*/ cursorview= - /*<>*/ caml_call1(_ki_,_kh_), - /*<>*/ _kj_=0, - /*<>*/ _kk_=Lwt_stream[4], - /*<>*/ match= - /*<>*/ caml_call1(_kk_,_kj_), - /*<>*/ push_cv=match[2], - /*<>*/ cv=match[1]; - /*<>*/ function _kl_(param) - { /*<>*/ if(param) - { /*<>*/ var - /*<>*/ cursor_row=param[1], - /*<>*/ _ln_=Lwd_table[12], - /*<>*/ match= - /*<>*/ caml_call1(_ln_,cursor_row); - /*<>*/ if(match) - { /*<>*/ var + /*<>*/ /*<>*/ caml_call2 + (_lR_,_lQ_,_lP_); + /*<>*/ var + /*<>*/ _lS_=0, + /*<>*/ _lT_= + /*<>*/ string$0(_lS_,cst_initializing), + /*<>*/ _lU_=Lwd[2], + /*<>*/ _lV_= + /*<>*/ caml_call1(_lU_,_lT_), + /*<>*/ _lW_=Lwd[10], + /*<>*/ cursorview= + /*<>*/ caml_call1(_lW_,_lV_), + /*<>*/ _lX_=0, + /*<>*/ _lY_=Lwt_stream[4], + /*<>*/ match= + /*<>*/ caml_call1(_lY_,_lX_), + /*<>*/ push_cv=match[2], + /*<>*/ cv=match[1]; + /*<>*/ function _lZ_(param) + { /*<>*/ if(param) + { /*<>*/ var + /*<>*/ cursor_row=param[1], + /*<>*/ _m1_=Lwd_table[12], + /*<>*/ match= + /*<>*/ caml_call1(_m1_,cursor_row); + /*<>*/ if(match) + { /*<>*/ var match$0=match[1][2], tree=match$0[2], step=match$0[1], - _lo_= + _m2_= function(param) - { /*<>*/ if(param) + { /*<>*/ if(param) {if(870528546 <= param[1]) - { /*<>*/ var - /*<>*/ _lA_=0, - /*<>*/ _lB_= - /*<>*/ string$0(_lA_,cst_Sub_node), - /*<>*/ _lC_=Lwd[2], - /*<>*/ _lD_= - /*<>*/ caml_call1(_lC_,_lB_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lD_)} - /*<>*/ var - /*<>*/ _lE_= + /*<>*/ return /*<>*/ lwt_lwd_string + (cst_Sub_node); + /*<>*/ var + /*<>*/ _m6_= function(param) - { /*<>*/ if(param) - { /*<>*/ var + { /*<>*/ if(param) + { /*<>*/ var match=param[1], contents=match[1], - _lM_=0, - _lN_=0, - _lO_=0, - /*<>*/ _lP_= + _nb_=0, + _nc_=0, + _nd_=0, + /*<>*/ _ne_= [0, - /*<>*/ edit_area_of_string(_lO_,contents)], - /*<>*/ _lQ_= - /*<>*/ edit_area(_lP_,_lN_,_lM_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lQ_)} - /*<>*/ var - /*<>*/ _lR_=Stdlib[28], - /*<>*/ _lS_= - /*<>*/ caml_call2 - (_lR_,cst_could_not_find_path,step), - /*<>*/ _lT_=0, - /*<>*/ _lU_= - /*<>*/ string$0(_lT_,_lS_), - /*<>*/ _lV_=Lwd[2], - /*<>*/ _lW_= - /*<>*/ caml_call1(_lV_,_lU_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lW_) /*<>*/ }, - /*<>*/ _lF_=0, - /*<>*/ _lG_=Nav[2][36][24], - /*<>*/ _lH_= - /*<>*/ caml_call2(_lG_,tree,_lF_); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_lH_,_lE_)} - /*<>*/ var - /*<>*/ _lI_=0, - /*<>*/ _lJ_= - /*<>*/ string$0(_lI_,step), - /*<>*/ _lK_=Lwd[2], - /*<>*/ _lL_= - /*<>*/ caml_call1(_lK_,_lJ_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lL_) /*<>*/ }, - _lp_=0, - _lq_=Nav[2][36][16], - /*<>*/ _lr_= - /*<>*/ caml_call2(_lq_,tree,_lp_); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_lr_,_lo_)} - /*<>*/ var - /*<>*/ _ls_=0, - /*<>*/ _lt_= - /*<>*/ string$0 - (_ls_,cst_cursor_table_row_doesn_t_e), - /*<>*/ _lu_=Lwd[2], - /*<>*/ _lv_= - /*<>*/ caml_call1(_lu_,_lt_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lv_)} - /*<>*/ var - /*<>*/ _lw_=0, - /*<>*/ _lx_= - /*<>*/ string$0(_lw_,cst_cursor_doesn_t_exist), - /*<>*/ _ly_=Lwd[2], - /*<>*/ _lz_= - /*<>*/ caml_call1(_ly_,_lx_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lz_) /*<>*/ } - /*<>*/ var - /*<>*/ _km_=Lwd[11], - /*<>*/ _kn_= - /*<>*/ caml_call1(_km_,cursor), - /*<>*/ _ko_=Lwd[3], - /*<>*/ _kp_= - /*<>*/ caml_call2(_ko_,_kn_,_kl_), - /*<>*/ _kq_= + /*<>*/ line_table_of_string + (_nd_,contents)], + /*<>*/ _nf_= + /*<>*/ edit_area(_ne_,_nc_,_nb_); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_nf_)} + /*<>*/ /*<>*/ var + _ng_= + Stdlib[28]; + /*<>*/ return /*<>*/ lwt_lwd_string + ( /*<>*/ caml_call2 + (_ng_,cst_could_not_find_path,step)) /*<>*/ }, + /*<>*/ _m7_=0, + /*<>*/ _m8_=Nav[2][36][24], + /*<>*/ _m9_= + /*<>*/ caml_call2(_m8_,tree,_m7_); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_m9_,_m6_)} + /*<>*/ var + /*<>*/ _m__=Stdlib[28], + /*<>*/ _m$_= + /*<>*/ caml_call2(_m__,step,cst_None$0), + /*<>*/ _na_=Stdlib[28]; + /*<>*/ return /*<>*/ lwt_lwd_string + ( /*<>*/ caml_call2 + (_na_,cst_Nav_S_Tree_kind$0,_m$_)) /*<>*/ }, + _m3_=0, + _m4_=Nav[2][36][16], + /*<>*/ _m5_= + /*<>*/ caml_call2(_m4_,tree,_m3_); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_m5_,_m2_)} + /*<>*/ return /*<>*/ lwt_lwd_string + (cst_cursor_table_row_doesn_t_e)} + /*<>*/ return /*<>*/ lwt_lwd_string + (cst_cursor_doesn_t_exist) /*<>*/ } + /*<>*/ var + /*<>*/ _l0_=Lwd[11], + /*<>*/ _l1_= + /*<>*/ caml_call1(_l0_,cursor), + /*<>*/ _l2_=Lwd[3], + /*<>*/ _l3_= + /*<>*/ caml_call2(_l2_,_l1_,_lZ_), + /*<>*/ _l4_= [0, function(param) - { /*<>*/ function _lk_(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_e$_) /*<>*/ } - /*<>*/ var - /*<>*/ _ll_=0, - /*<>*/ _lm_=Logs[13]; - /*<>*/ /*<>*/ caml_call2 - (_lm_,_ll_,_lk_); - /*<>*/ return /*<>*/ caml_call1 - (push_cv,_fa_) /*<>*/ }], - /*<>*/ _kr_=Lwd[23], - /*<>*/ _ks_= - /*<>*/ caml_call1(_kr_,_kq_), - /*<>*/ cvroot= - /*<>*/ caml_call1(_ks_,_kp_); - /*<>*/ function _kt_(param) - { /*<>*/ function _lb_(param) - { /*<>*/ function _lc_(cursorview$0) - { /*<>*/ function _lf_(m) - { /*<>*/ return /*<>*/ caml_call3 - (m,0,0,_fb_) /*<>*/ } - /*<>*/ var - /*<>*/ _lg_=0, - /*<>*/ _lh_=Logs[13]; - /*<>*/ /*<>*/ caml_call2 - (_lh_,_lg_,_lf_); - /*<>*/ var - /*<>*/ _li_=Lwd[12], - /*<>*/ _lj_= - /*<>*/ caml_call2 - (_li_,cursorview,cursorview$0); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_lj_) /*<>*/ } - /*<>*/ var - /*<>*/ _ld_=Lwd[28], - /*<>*/ _le_= - /*<>*/ caml_call1(_ld_,cvroot); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_le_,_lc_) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Lwt_stream[52],_lb_,cv) /*<>*/ } - /*<>*/ /*<>*/ var _ku_=Lwt[11]; - /*<>*/ /*<>*/ caml_call1 - (_ku_,_kt_); - /*<>*/ /*<>*/ caml_call1 - (push_cv,_fc_); - /*<>*/ var - /*<>*/ _kv_=Nottui[6][32], - /*<>*/ _kw_=Lwd_utils[1], - /*<>*/ _kx_= - /*<>*/ caml_call1(_kw_,_kv_); - /*<>*/ function _ky_(param,_k8_) - { /*<>*/ var - /*<>*/ match=_k8_[2], - /*<>*/ s=match[1], - /*<>*/ f=_k8_[1]; - /*<>*/ function _k9_(focus_h) - { /*<>*/ /*<>*/ var - _la_= + { /*<>*/ function _mY_(m) + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_fa_) /*<>*/ } + /*<>*/ var + /*<>*/ _mZ_=0, + /*<>*/ _m0_=Logs[13]; + /*<>*/ /*<>*/ caml_call2 + (_m0_,_mZ_,_mY_); + /*<>*/ return /*<>*/ caml_call1 + (push_cv,_fb_) /*<>*/ }], + /*<>*/ _l5_=Lwd[23], + /*<>*/ _l6_= + /*<>*/ caml_call1(_l5_,_l4_), + /*<>*/ cvroot= + /*<>*/ caml_call1(_l6_,_l3_); + /*<>*/ function _l7_(param) + { /*<>*/ function _mP_(param) + { /*<>*/ function _mQ_(cursorview$0) + { /*<>*/ function _mT_(m) + { /*<>*/ return /*<>*/ caml_call3 + (m,0,0,_fc_) /*<>*/ } + /*<>*/ var + /*<>*/ _mU_=0, + /*<>*/ _mV_=Logs[13]; + /*<>*/ /*<>*/ caml_call2 + (_mV_,_mU_,_mT_); + /*<>*/ var + /*<>*/ _mW_=Lwd[12], + /*<>*/ _mX_= + /*<>*/ caml_call2 + (_mW_,cursorview,cursorview$0); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_mX_) /*<>*/ } + /*<>*/ var + /*<>*/ _mR_=Lwd[28], + /*<>*/ _mS_= + /*<>*/ caml_call1(_mR_,cvroot); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_mS_,_mQ_) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Lwt_stream[52],_mP_,cv) /*<>*/ } + /*<>*/ /*<>*/ var _l8_=Lwt[11]; + /*<>*/ /*<>*/ caml_call1 + (_l8_,_l7_); + /*<>*/ /*<>*/ caml_call1 + (push_cv,_fd_); + /*<>*/ var + /*<>*/ _l9_=Nottui[6][32], + /*<>*/ _l__=Lwd_utils[1], + /*<>*/ _l$_= + /*<>*/ caml_call1(_l__,_l9_); + /*<>*/ function _ma_(param,_mK_) + { /*<>*/ var + /*<>*/ match=_mK_[2], + /*<>*/ s=match[1], + /*<>*/ f=_mK_[1]; + /*<>*/ function _mL_(focus_h) + { /*<>*/ /*<>*/ var + _mO_= Nottui[3][8]; - /*<>*/ return /*<>*/ caml_call1 - (_la_,focus_h) - ? /*<>*/ string$0([0,Style[16]],s) - : /*<>*/ string$0(0,s) /*<>*/ } - /*<>*/ var - /*<>*/ _k__=Nottui[3][6], - /*<>*/ _k$_= - /*<>*/ caml_call1(_k__,f); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],_k$_,_k9_) /*<>*/ } - /*<>*/ var - /*<>*/ _kz_=Lwd_table[19], - /*<>*/ _kA_= - /*<>*/ caml_call3(_kz_,_ky_,_kx_,table), - /*<>*/ _kB_=Lwd[5], - /*<>*/ _kC_= - /*<>*/ caml_call1(_kB_,_kA_), - /*<>*/ _kD_=Nottui[3][6], - /*<>*/ _kE_= - /*<>*/ caml_call1(_kD_,focus), - /*<>*/ _kF_= - /*<>*/ caml_call1(Lwd[4],_kE_); - /*<>*/ function _kG_(focus) - { /*<>*/ function _kT_(k) - { /*<>*/ function _kU_(m) - { /*<>*/ return /*<>*/ caml_call5 - (m,0,0,_fd_,Nottui[6][3],k) /*<>*/ } - /*<>*/ var - /*<>*/ _kV_=0, - /*<>*/ _kW_=Logs[14]; - /*<>*/ /*<>*/ caml_call2 - (_kW_,_kV_,_kU_); - /*<>*/ /*<>*/ var _kX_=k[1]; - /*<>*/ if(typeof _kX_ === "number") - {if(-323132129 === _kX_) - {if(! k[2]) /*<>*/ return -475359645} + /*<>*/ return /*<>*/ caml_call1 + (_mO_,focus_h) + ? /*<>*/ string$0([0,Style[16]],s) + : /*<>*/ string$0(0,s) /*<>*/ } + /*<>*/ var + /*<>*/ _mM_=Nottui[3][6], + /*<>*/ _mN_= + /*<>*/ caml_call1(_mM_,f); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[3],_mN_,_mL_) /*<>*/ } + /*<>*/ var + /*<>*/ _mb_=Lwd_table[19], + /*<>*/ _mc_= + /*<>*/ caml_call3(_mb_,_ma_,_l$_,table), + /*<>*/ _md_=Lwd[5], + /*<>*/ _me_= + /*<>*/ caml_call1(_md_,_mc_), + /*<>*/ _mf_=Nottui[3][6], + /*<>*/ _mg_= + /*<>*/ caml_call1(_mf_,focus), + /*<>*/ _mh_= + /*<>*/ caml_call1(Lwd[4],_mg_); + /*<>*/ function _mi_(focus) + { /*<>*/ function _mv_(k) + { /*<>*/ function _mw_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_fe_,Nottui[6][3],k) /*<>*/ } + /*<>*/ var + /*<>*/ _mx_=0, + /*<>*/ _my_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_my_,_mx_,_mw_); + /*<>*/ /*<>*/ var _mz_=k[1]; + /*<>*/ if(typeof _mz_ === "number") + {if(-323132129 === _mz_) + {if(! k[2]) /*<>*/ return -475359645} else - if(62119160 === _kX_ && ! k[2]) - /*<>*/ return 321312668} + if(62119160 === _mz_ && ! k[2]) + /*<>*/ return 321312668} else - {var _kY_=_kX_[1]; - if(852405675 === _kY_) - {var _kZ_=k[2]; - if(_kZ_) - {var _k0_=_kZ_[1],_k1_=_kX_[2]; - if(748795083 === _k0_) - {if(! _kZ_[2]) - { /*<>*/ /*<>*/ var - _k2_= + {var _mA_=_mz_[1]; + if(852405675 === _mA_) + {var _mB_=k[2]; + if(_mB_) + {var _mC_=_mB_[1],_mD_=_mz_[2]; + if(748795083 === _mC_) + {if(! _mB_[2]) + { /*<>*/ /*<>*/ var + _mE_= 110; - /*<>*/ if - ( /*<>*/ eq_uc_c(_k1_,_k2_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[10],c) /*<>*/ }); - /*<>*/ /*<>*/ var - _k3_= + /*<>*/ if + ( /*<>*/ eq_uc_c(_mD_,_mE_)) + /*<>*/ return /*<>*/ cursor_move + (cursor,Lwd_table[10]); + /*<>*/ /*<>*/ var + _mF_= 112; - /*<>*/ if - ( /*<>*/ eq_uc_c(_k1_,_k3_)) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[11],c) /*<>*/ }); - /*<>*/ /*<>*/ var - _k4_= + /*<>*/ if + ( /*<>*/ eq_uc_c(_mD_,_mF_)) + /*<>*/ return /*<>*/ cursor_move + (cursor,Lwd_table[11]); + /*<>*/ /*<>*/ var + _mG_= 107; - /*<>*/ if - ( /*<>*/ eq_uc_c(_k1_,_k4_)) - /*<>*/ return 321312668}} + /*<>*/ if + ( /*<>*/ eq_uc_c(_mD_,_mG_)) + /*<>*/ return 321312668}} else - if(858945253 === _k0_ && ! _kZ_[2]) - { /*<>*/ /*<>*/ var - _k5_= + if(858945253 === _mC_ && ! _mB_[2]) + { /*<>*/ /*<>*/ var + _mH_= 60; - /*<>*/ if - ( /*<>*/ eq_uc_c(_k1_,_k5_)) - /*<>*/ return /*<>*/ cursor_move + /*<>*/ if + ( /*<>*/ eq_uc_c(_mD_,_mH_)) + /*<>*/ return /*<>*/ cursor_move (cursor, function(param) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[8],table) /*<>*/ }); - /*<>*/ /*<>*/ var - _k6_= + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[8],table) /*<>*/ }); + /*<>*/ /*<>*/ var + _mI_= 62; - /*<>*/ if - ( /*<>*/ eq_uc_c(_k1_,_k6_)) - /*<>*/ return /*<>*/ cursor_move + /*<>*/ if + ( /*<>*/ eq_uc_c(_mD_,_mI_)) + /*<>*/ return /*<>*/ cursor_move (cursor, function(param) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[9],table) /*<>*/ })}}} + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[9],table) /*<>*/ })}}} else - if(951904681 === _kY_) - {var _k7_=_kX_[2]; - if(19067 === _k7_) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[11],c) /*<>*/ }); - if(759637122 === _k7_) - /*<>*/ return /*<>*/ cursor_move - (cursor, - function(c) - { /*<>*/ return /*<>*/ caml_call1 - (Lwd_table[10],c) /*<>*/ })}} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][19],[0,focus],_kT_) /*<>*/ } - /*<>*/ function _kH_(_kS_) - { /*<>*/ return caml_call2(_kF_,_kS_,_kG_)} - /*<>*/ var - /*<>*/ _kI_= /*<>*/ _kH_(_kC_), - /*<>*/ _kJ_=Lwd[11], - /*<>*/ _kK_= - /*<>*/ caml_call1(_kJ_,cursorview), - /*<>*/ _kL_=Lwd[5], - /*<>*/ _kM_= - /*<>*/ caml_call1(_kL_,_kK_), - /*<>*/ _kN_= - /*<>*/ caml_call1(Lwd[4],_kM_); - /*<>*/ function _kO_(cursorview,tree_view) - { /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][28],tree_view,cursorview) /*<>*/ } - /*<>*/ function _kP_(_kR_) - { /*<>*/ return caml_call2(_kN_,_kR_,_kO_)} - /*<>*/ /*<>*/ var - _kQ_= - /*<>*/ _kP_(_kI_); - /*<>*/ return /*<>*/ caml_call1 - (Lwt[4],_kQ_) /*<>*/ } - /*<>*/ var - /*<>*/ _j0_=0, - /*<>*/ _j1_=0, - /*<>*/ _j2_=0, - /*<>*/ _j3_=Nav[2][36][28], - /*<>*/ _j4_= - /*<>*/ caml_call5(_j3_,tree,_j2_,_j1_,_j0_,path); - /*<>*/ return /*<>*/ caml_call2 - (Lwt[33][1],_j4_,_jZ_) /*<>*/ } + if(951904681 === _mA_) + {var _mJ_=_mz_[2]; + if(19067 === _mJ_) + /*<>*/ return /*<>*/ cursor_move + (cursor,Lwd_table[11]); + if(759637122 === _mJ_) + /*<>*/ return /*<>*/ cursor_move + (cursor,Lwd_table[10])}} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][19],[0,focus],_mv_) /*<>*/ } + /*<>*/ function _mj_(_mu_) + { /*<>*/ return caml_call2(_mh_,_mu_,_mi_)} + /*<>*/ var + /*<>*/ _mk_= /*<>*/ _mj_(_me_), + /*<>*/ _ml_=Lwd[11], + /*<>*/ _mm_= + /*<>*/ caml_call1(_ml_,cursorview), + /*<>*/ _mn_=Lwd[5], + /*<>*/ _mo_= + /*<>*/ caml_call1(_mn_,_mm_), + /*<>*/ _mp_= + /*<>*/ caml_call1(Lwd[4],_mo_); + /*<>*/ function _mq_(cursorview,tree_view) + { /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][28],tree_view,cursorview) /*<>*/ } + /*<>*/ function _mr_(_mt_) + { /*<>*/ return caml_call2(_mp_,_mt_,_mq_)} + /*<>*/ /*<>*/ var + _ms_= + /*<>*/ _mr_(_mk_); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_ms_) /*<>*/ } + /*<>*/ var + /*<>*/ _lC_=0, + /*<>*/ _lD_=0, + /*<>*/ _lE_=0, + /*<>*/ _lF_=Nav[2][36][28], + /*<>*/ _lG_= + /*<>*/ caml_call5(_lF_,tree,_lE_,_lD_,_lC_,path); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_lG_,_lB_)} + /*<>*/ function node_edit_area(opt,_jY_,param) + {var path=param[2],tree=param[1]; + if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], + table=sth; + else + /*<>*/ var + /*<>*/ _j7_=0, + /*<>*/ _j8_=Lwd_table[1], + table= /*<>*/ caml_call1(_j8_,_j7_); + /*<>*/ if(_jY_) + /*<>*/ var + /*<>*/ sth$0=_jY_[1], + focus=sth$0; + else + /*<>*/ var + /*<>*/ _j5_=0, + /*<>*/ _j6_=Nottui[3][1], + focus= /*<>*/ caml_call1(_j6_,_j5_); + /*<>*/ var + /*<>*/ _jZ_=Lwd_table[8], + /*<>*/ _j0_= + /*<>*/ caml_call1(_jZ_,table), + /*<>*/ _j1_=Lwd[10], + /*<>*/ cursor= + /*<>*/ caml_call1(_j1_,_j0_); + /*<>*/ function _j2_(param) + { /*<>*/ if(param) + {if(870528546 <= param[1]) + /*<>*/ return /*<>*/ tree_nav + (0,[0,tree,path]); + /*<>*/ var + /*<>*/ _j9_= + function(param) + { /*<>*/ if(param) + {var match=param[1],contents=match[1],_kf_=[0,table]; + /*<>*/ /*<>*/ line_table_of_string + (_kf_,contents); + /*<>*/ var + /*<>*/ _kg_=Lwd[13], + /*<>*/ _kh_= + /*<>*/ caml_call1(_kg_,cursor), + /*<>*/ _ki_= + function(cursor) + { /*<>*/ var + /*<>*/ _lv_=Lwd_table[12], + /*<>*/ _lw_= + /*<>*/ caml_call1(_lv_,cursor); + /*<>*/ function _lx_(first) + { /*<>*/ return /*<>*/ caml_call1 + (Nottui[3][2],first[1]) /*<>*/ } + /*<>*/ /*<>*/ var + _ly_= + Stdlib_Option[9]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call1(_ly_,_lx_),_lw_) /*<>*/ }, + /*<>*/ _kj_=Stdlib_Option[9]; + /*<>*/ /*<>*/ caml_call2 + (_kj_,_ki_,_kh_); + /*<>*/ var + /*<>*/ _kk_=Nottui[6][32], + /*<>*/ _kl_=Lwd_utils[1], + /*<>*/ _km_= + /*<>*/ caml_call1(_kl_,_kk_), + /*<>*/ _kn_= + function(param,_lu_) + { /*<>*/ /*<>*/ var + ui= + _lu_[3]; + /*<>*/ return ui /*<>*/ }, + /*<>*/ _ko_=Lwd_table[19], + /*<>*/ _kp_= + /*<>*/ caml_call3(_ko_,_kn_,_km_,table), + /*<>*/ _kq_=Lwd[5], + /*<>*/ _kr_= + /*<>*/ caml_call1(_kq_,_kp_), + /*<>*/ _ks_=Nottui[3][6], + /*<>*/ _kt_= + /*<>*/ caml_call1(_ks_,focus), + /*<>*/ _ku_= + /*<>*/ caml_call1(Lwd[4],_kt_), + /*<>*/ _kv_= + function(focus) + { /*<>*/ function _kE_(k) + { /*<>*/ function _kF_(m) + { /*<>*/ return /*<>*/ caml_call5 + (m,0,0,_e$_,Nottui[6][3],k) /*<>*/ } + /*<>*/ var + /*<>*/ _kG_=0, + /*<>*/ _kH_=Logs[14]; + /*<>*/ /*<>*/ caml_call2 + (_kH_,_kG_,_kF_); + /*<>*/ var + /*<>*/ _kI_=[0,copy_line_cursor], + /*<>*/ cursor_move$0= + /*<>*/ cursor_move(_kI_,cursor), + /*<>*/ _kJ_=k[1]; + /*<>*/ if(typeof _kJ_ === "number") + {if(-323132129 === _kJ_) + {if(! k[2]) + /*<>*/ return /*<>*/ line_of_cursor + (cursor, + function(row,line) + { /*<>*/ var + /*<>*/ _kU_=line[2], + /*<>*/ _kV_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_kV_,_kU_), + /*<>*/ pos=match[2], + /*<>*/ str=match[1]; + /*<>*/ function _kW_(row_prev) + { /*<>*/ if(0 === pos) + { /*<>*/ var + /*<>*/ _kZ_= + function(line_prev) + { /*<>*/ var + /*<>*/ _k2_=line_prev[2], + /*<>*/ _k3_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_k3_,_k2_), + /*<>*/ str_prev=match[1], + /*<>*/ _k4_=line[1], + /*<>*/ _k5_=Nottui[3][4]; + /*<>*/ /*<>*/ caml_call1 + (_k5_,_k4_); + /*<>*/ var + /*<>*/ _k6_=line_prev[1], + /*<>*/ _k7_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_k7_,_k6_); + /*<>*/ var + /*<>*/ _k8_= + /*<>*/ caml_ml_string_length(str_prev), + /*<>*/ _k9_=Stdlib[28], + /*<>*/ _k__= + [0, + /*<>*/ caml_call2(_k9_,str_prev,str), + _k8_], + /*<>*/ _k$_=line_prev[2], + /*<>*/ _la_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_la_,_k$_,_k__); + /*<>*/ /*<>*/ var + _lb_= + Lwd_table[16]; + /*<>*/ /*<>*/ caml_call1 + (_lb_,row); + /*<>*/ return 321312668 /*<>*/ }, + /*<>*/ _k0_=Lwd_table[12], + /*<>*/ _k1_= + /*<>*/ caml_call1(_k0_,row_prev); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_k1_,_kZ_)} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ var + /*<>*/ _kX_=Lwd_table[11], + /*<>*/ _kY_= + /*<>*/ caml_call1(_kX_,row); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][1],_kY_,_kW_) /*<>*/ })} + else + if(62119160 === _kJ_ && ! k[2]) + /*<>*/ return /*<>*/ line_of_cursor + (cursor, + function(old_row,old_line) + { /*<>*/ var + /*<>*/ _lc_=old_line[2], + /*<>*/ _ld_=Lwd[13], + /*<>*/ match= + /*<>*/ caml_call1(_ld_,_lc_), + /*<>*/ pos=match[2], + /*<>*/ str=match[1], + /*<>*/ _le_= + /*<>*/ caml_ml_string_length(str) + - + pos + | + 0, + /*<>*/ _lf_=String[15], + /*<>*/ n_str= + /*<>*/ caml_call3(_lf_,str,pos,_le_), + /*<>*/ _lg_=0, + /*<>*/ _lh_=String[15], + /*<>*/ _li_= + [0, + /*<>*/ caml_call3(_lh_,str,_lg_,pos), + pos], + /*<>*/ _lj_=old_line[2], + /*<>*/ _lk_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_lk_,_lj_,_li_); + /*<>*/ var + /*<>*/ _ll_=0, + /*<>*/ new_line= + /*<>*/ line_make(_ll_,n_str), + /*<>*/ _lm_=old_line[1], + /*<>*/ _ln_=Nottui[3][4]; + /*<>*/ /*<>*/ caml_call1 + (_ln_,_lm_); + /*<>*/ var + /*<>*/ _lo_=new_line[1], + /*<>*/ _lp_=Nottui[3][2]; + /*<>*/ /*<>*/ caml_call1 + (_lp_,_lo_); + /*<>*/ var + /*<>*/ _lq_=[0,new_line], + /*<>*/ _lr_=Lwd_table[7], + /*<>*/ _ls_= + [0, /*<>*/ caml_call2(_lr_,_lq_,old_row)], + /*<>*/ _lt_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_lt_,cursor,_ls_); + /*<>*/ return 321312668 /*<>*/ })} + else + {var _kK_=_kJ_[1]; + if(852405675 === _kK_) + {var _kL_=k[2]; + if(_kL_) + {var _kM_=_kL_[1],_kN_=_kJ_[2]; + if(748795083 === _kM_) + {if(! _kL_[2]) + { /*<>*/ /*<>*/ var + _kO_= + 110; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kN_,_kO_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[10]); + /*<>*/ /*<>*/ var + _kP_= + 112; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kN_,_kP_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[11]); + /*<>*/ /*<>*/ var + _kQ_= + 107; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kN_,_kQ_)) + /*<>*/ return 321312668}} + else + if(858945253 === _kM_ && ! _kL_[2]) + { /*<>*/ /*<>*/ var + _kR_= + 60; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kN_,_kR_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0, + function(param) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[8],table) /*<>*/ }); + /*<>*/ /*<>*/ var + _kS_= + 62; + /*<>*/ if + ( /*<>*/ eq_uc_c(_kN_,_kS_)) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0, + function(param) + { /*<>*/ return /*<>*/ caml_call1 + (Lwd_table[9],table) /*<>*/ })}}} + else + if(951904681 === _kK_) + {var _kT_=_kJ_[2]; + if(19067 === _kT_) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[11]); + if(759637122 === _kT_) + /*<>*/ return /*<>*/ caml_call1 + (cursor_move$0,Lwd_table[10])}} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][19],[0,focus],_kE_) /*<>*/ }, + /*<>*/ _kw_= + function(_kD_){ /*<>*/ return caml_call2(_ku_,_kD_,_kv_)}, + /*<>*/ _kx_= + /*<>*/ _kw_(_kr_); + /*<>*/ return /*<>*/ caml_call1 + (Lwt[4],_kx_)} + /*<>*/ var + /*<>*/ _ky_=String[6], + /*<>*/ _kz_= + /*<>*/ caml_call2(_ky_,cst$10,path), + /*<>*/ _kA_=Stdlib[28], + /*<>*/ _kB_= + /*<>*/ caml_call2(_kA_,_kz_,cst_None), + /*<>*/ _kC_=Stdlib[28]; + /*<>*/ return /*<>*/ lwt_lwd_string + ( /*<>*/ caml_call2 + (_kC_,cst_Nav_S_Tree_find_all,_kB_)) /*<>*/ }, + /*<>*/ _j__=Nav[2][36][24], + /*<>*/ _j$_= + /*<>*/ caml_call2(_j__,tree,path); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_j$_,_j9_)} + /*<>*/ var + /*<>*/ _ka_=String[6], + /*<>*/ _kb_= + /*<>*/ caml_call2(_ka_,cst$11,path), + /*<>*/ _kc_=Stdlib[28], + /*<>*/ _kd_= + /*<>*/ caml_call2 + (_kc_,_kb_,cst_how_d_you_get_here), + /*<>*/ _ke_=Stdlib[28]; + /*<>*/ return /*<>*/ lwt_lwd_string + ( /*<>*/ caml_call2 + (_ke_,cst_Nav_S_Tree_kind,_kd_)) /*<>*/ } + /*<>*/ var + /*<>*/ _j3_=Nav[2][36][16], + /*<>*/ _j4_= + /*<>*/ caml_call2(_j3_,tree,path); + /*<>*/ return /*<>*/ caml_call2 + (Lwt[33][1],_j4_,_j2_)} /*<>*/ function tabs(tabs) - { /*<>*/ if(tabs) - { /*<>*/ var - /*<>*/ _jB_=0, - /*<>*/ _jC_=Lwd[10], - /*<>*/ cur= - /*<>*/ caml_call1(_jC_,_jB_), - /*<>*/ _jD_= + { /*<>*/ if(tabs) + { /*<>*/ var + /*<>*/ _jC_=0, + /*<>*/ _jD_=Lwd[10], + /*<>*/ cur= + /*<>*/ caml_call1(_jD_,_jC_), + /*<>*/ _jE_= function(idx_sel) - { /*<>*/ var - /*<>*/ _jG_=Stdlib_List[7], - /*<>*/ match= - /*<>*/ caml_call2(_jG_,tabs,idx_sel), - /*<>*/ f=match[2]; - /*<>*/ function _jH_(i,param) - { /*<>*/ /*<>*/ var + { /*<>*/ var + /*<>*/ _jH_=Stdlib_List[7], + /*<>*/ match= + /*<>*/ caml_call2(_jH_,tabs,idx_sel), + /*<>*/ f=match[2]; + /*<>*/ function _jI_(i,param) + { /*<>*/ /*<>*/ var s= param[1]; - /*<>*/ if(i === idx_sel) - /*<>*/ var - /*<>*/ _jQ_=NVG[40][21], - /*<>*/ _jR_=0, - /*<>*/ _jS_=Style[9], - attr= /*<>*/ caml_call2(_jS_,_jR_,_jQ_); + /*<>*/ if(i === idx_sel) + /*<>*/ var + /*<>*/ _jR_=NVG[40][21], + /*<>*/ _jS_=0, + /*<>*/ _jT_=Style[9], + attr= /*<>*/ caml_call2(_jT_,_jS_,_jR_); else var attr=Style[4]; - /*<>*/ var - /*<>*/ _jT_=[0,attr], - /*<>*/ tab_annot= - /*<>*/ caml_call1 - ( /*<>*/ printf(_jT_,_fe_),s); - /*<>*/ function _jU_(param,_jV_,l) - { /*<>*/ if(847852583 === l) - { /*<>*/ /*<>*/ var - _jW_= + /*<>*/ var + /*<>*/ _jU_=[0,attr], + /*<>*/ tab_annot= + /*<>*/ caml_call1 + ( /*<>*/ printf(_jU_,_ff_),s); + /*<>*/ function _jV_(param,_jW_,l) + { /*<>*/ if(847852583 === l) + { /*<>*/ /*<>*/ var + _jX_= Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jW_,cur,i); - /*<>*/ return 321312668} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],_jU_,tab_annot) /*<>*/ } - /*<>*/ var - /*<>*/ _jI_=Stdlib_List[20], - /*<>*/ _jJ_= - /*<>*/ caml_call1(_jI_,_jH_), - /*<>*/ _jK_= - /*<>*/ caml_call1(_jJ_,tabs), - /*<>*/ _jL_=Nottui[6][34], - /*<>*/ tab_bar= - /*<>*/ caml_call1(_jL_,_jK_), - /*<>*/ _jM_=Nottui[6][29], - /*<>*/ _jN_= - /*<>*/ caml_call1(_jM_,tab_bar), - /*<>*/ _jO_=0, - /*<>*/ _jP_= - /*<>*/ caml_call1(f,_jO_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],_jP_,_jN_) /*<>*/ }, - /*<>*/ _jE_=Lwd[11], - /*<>*/ _jF_= - /*<>*/ caml_call1(_jE_,cur); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][2],_jF_,_jD_)} - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],Nottui[6][15]) /*<>*/ } + /*<>*/ /*<>*/ caml_call2 + (_jX_,cur,i); + /*<>*/ return 321312668} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],_jV_,tab_annot) /*<>*/ } + /*<>*/ var + /*<>*/ _jJ_=Stdlib_List[20], + /*<>*/ _jK_= + /*<>*/ caml_call1(_jJ_,_jI_), + /*<>*/ _jL_= + /*<>*/ caml_call1(_jK_,tabs), + /*<>*/ _jM_=Nottui[6][34], + /*<>*/ tab_bar= + /*<>*/ caml_call1(_jM_,_jL_), + /*<>*/ _jN_=Nottui[6][29], + /*<>*/ _jO_= + /*<>*/ caml_call1(_jN_,tab_bar), + /*<>*/ _jP_=0, + /*<>*/ _jQ_= + /*<>*/ caml_call1(f,_jP_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],_jQ_,_jO_) /*<>*/ }, + /*<>*/ _jF_=Lwd[11], + /*<>*/ _jG_= + /*<>*/ caml_call1(_jF_,cur); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][2],_jG_,_jE_)} + /*<>*/ 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 - /*<>*/ _iU_=1 - folded_by_default, - /*<>*/ _iV_=Lwd[10], - /*<>*/ opened= - /*<>*/ caml_call1(_iV_,_iU_); - /*<>*/ function _iW_(param) - { /*<>*/ if(param) - { /*<>*/ var - /*<>*/ _jt_=0, - /*<>*/ _ju_= - /*<>*/ caml_call1(f,_jt_), - /*<>*/ _jv_=Lwd[3], - /*<>*/ _jw_=0, - /*<>*/ _jx_= - /*<>*/ string$0(_jw_,cst$10), - /*<>*/ _jy_=Nottui[6][28], - /*<>*/ _jz_= - /*<>*/ caml_call1(_jy_,_jx_); - /*<>*/ return /*<>*/ function - (_jA_) - { /*<>*/ return caml_call2(_jv_,_jA_,_jz_)} - (_ju_)} - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],Nottui[6][15]) /*<>*/ } - /*<>*/ var - /*<>*/ _iX_=Lwd[11], - /*<>*/ _iY_= - /*<>*/ caml_call1(_iX_,opened), - /*<>*/ _iZ_=Lwd[30][2], - /*<>*/ fold_content= - /*<>*/ caml_call2(_iZ_,_iY_,_iW_); - /*<>*/ function _i0_(op) - { /*<>*/ function _jm_(s) - { /*<>*/ var - /*<>*/ _jn_=[0,s,0], - /*<>*/ _jo_=0, - /*<>*/ _jp_= - [0, /*<>*/ string$0(_jo_,cst$11),_jn_], - /*<>*/ _jq_=op?cst_v:cst$12, - _jr_=[0,Style[15]], - /*<>*/ _js_= - [0, /*<>*/ string$0(_jr_,_jq_),_jp_]; - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][34],_js_) /*<>*/ } - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],summary,_jm_) /*<>*/ } - /*<>*/ var - /*<>*/ _i1_=Lwd[11], - /*<>*/ _i2_= - /*<>*/ caml_call1(_i1_,opened), - /*<>*/ _i3_=Lwd[30][2], - /*<>*/ summary$0= - /*<>*/ caml_call2(_i3_,_i2_,_i0_); - /*<>*/ function cursor(param,_jg_,_jf_) - { /*<>*/ if(847852583 === _jf_) - { /*<>*/ /*<>*/ var - _jh_= + /*<>*/ var + /*<>*/ _iV_=1 - folded_by_default, + /*<>*/ _iW_=Lwd[10], + /*<>*/ opened= + /*<>*/ caml_call1(_iW_,_iV_); + /*<>*/ function _iX_(param) + { /*<>*/ if(param) + { /*<>*/ var + /*<>*/ _ju_=0, + /*<>*/ _jv_= + /*<>*/ caml_call1(f,_ju_), + /*<>*/ _jw_=Lwd[3], + /*<>*/ _jx_=0, + /*<>*/ _jy_= + /*<>*/ string$0(_jx_,cst$12), + /*<>*/ _jz_=Nottui[6][28], + /*<>*/ _jA_= + /*<>*/ caml_call1(_jz_,_jy_); + /*<>*/ return /*<>*/ function + (_jB_) + { /*<>*/ return caml_call2(_jw_,_jB_,_jA_)} + (_jv_)} + /*<>*/ return /*<>*/ caml_call1 + (Lwd[1],Nottui[6][15]) /*<>*/ } + /*<>*/ var + /*<>*/ _iY_=Lwd[11], + /*<>*/ _iZ_= + /*<>*/ caml_call1(_iY_,opened), + /*<>*/ _i0_=Lwd[30][2], + /*<>*/ fold_content= + /*<>*/ caml_call2(_i0_,_iZ_,_iX_); + /*<>*/ function _i1_(op) + { /*<>*/ function _jn_(s) + { /*<>*/ var + /*<>*/ _jo_=[0,s,0], + /*<>*/ _jp_=0, + /*<>*/ _jq_= + [0, /*<>*/ string$0(_jp_,cst$13),_jo_], + /*<>*/ _jr_=op?cst_v:cst$14, + _js_=[0,Style[15]], + /*<>*/ _jt_= + [0, /*<>*/ string$0(_js_,_jr_),_jq_]; + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][34],_jt_) /*<>*/ } + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],summary,_jn_) /*<>*/ } + /*<>*/ var + /*<>*/ _i2_=Lwd[11], + /*<>*/ _i3_= + /*<>*/ caml_call1(_i2_,opened), + /*<>*/ _i4_=Lwd[30][2], + /*<>*/ summary$0= + /*<>*/ caml_call2(_i4_,_i3_,_i1_); + /*<>*/ function cursor(param,_jh_,_jg_) + { /*<>*/ if(847852583 === _jg_) + { /*<>*/ /*<>*/ var + _ji_= Lwd[13]; - /*<>*/ if - ( /*<>*/ caml_call1(_jh_,opened)) - { /*<>*/ var - /*<>*/ _ji_=0, - /*<>*/ _jj_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jj_,opened,_ji_); - /*<>*/ return 321312668} - /*<>*/ var - /*<>*/ _jk_=1, - /*<>*/ _jl_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_jl_,opened,_jk_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ function _i4_(m) - { /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],cursor,m) /*<>*/ } - /*<>*/ var - /*<>*/ _i5_=Lwd[3], - /*<>*/ mouse= - /*<>*/ caml_call2(_i5_,summary$0,_i4_); - /*<>*/ function _i6_(summary,fold) - { /*<>*/ var - /*<>*/ _i7_=Nottui[6][8], - /*<>*/ spec_sum= - /*<>*/ caml_call1(_i7_,summary), - /*<>*/ _i8_=Nottui[6][8], - /*<>*/ spec_fold= - /*<>*/ caml_call1(_i8_,fold), - /*<>*/ _i9_=20. < spec_fold[2]?1:0; - /*<>*/ if(_i9_) - var too_big=_i9_; + /*<>*/ if + ( /*<>*/ caml_call1(_ji_,opened)) + { /*<>*/ var + /*<>*/ _jj_=0, + /*<>*/ _jk_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_jk_,opened,_jj_); + /*<>*/ return 321312668} + /*<>*/ var + /*<>*/ _jl_=1, + /*<>*/ _jm_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_jm_,opened,_jl_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ function _i5_(m) + { /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],cursor,m) /*<>*/ } + /*<>*/ var + /*<>*/ _i6_=Lwd[3], + /*<>*/ mouse= + /*<>*/ caml_call2(_i6_,summary$0,_i5_); + /*<>*/ function _i7_(summary,fold) + { /*<>*/ var + /*<>*/ _i8_=Nottui[6][8], + /*<>*/ spec_sum= + /*<>*/ caml_call1(_i8_,summary), + /*<>*/ _i9_=Nottui[6][8], + /*<>*/ spec_fold= + /*<>*/ caml_call1(_i9_,fold), + /*<>*/ _i__=20. < spec_fold[2]?1:0; + /*<>*/ if(_i__) + var too_big=_i__; else - {var _jc_=20. < spec_fold[2]?1:0; - if(_jc_) + {var _jd_=20. < spec_fold[2]?1:0; + if(_jd_) var - _jd_=spec_fold[1], - _je_=spec_sum[1], - too_big=240. < _je_ + _jd_?1:0; + _je_=spec_fold[1], + _jf_=spec_sum[1], + too_big=240. < _jf_ + _je_?1:0; else - var too_big=_jc_} - /*<>*/ if(too_big) - { /*<>*/ var - /*<>*/ _i__=0, - /*<>*/ _i$_= - /*<>*/ string$0(_i__,cst$13), - /*<>*/ _ja_=Nottui[6][28], - /*<>*/ _jb_= - /*<>*/ caml_call2(_ja_,_i$_,fold); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][29],summary,_jb_)} - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][28],summary,fold) /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],mouse,fold_content,_i6_)} + var too_big=_jd_} + /*<>*/ if(too_big) + { /*<>*/ var + /*<>*/ _i$_=0, + /*<>*/ _ja_= + /*<>*/ string$0(_i$_,cst$15), + /*<>*/ _jb_=Nottui[6][28], + /*<>*/ _jc_= + /*<>*/ caml_call2(_jb_,_ja_,fold); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][29],summary,_jc_)} + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][28],summary,fold) /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],mouse,fold_content,_i7_)} /*<>*/ function hbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][31],l) /*<>*/ } + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[2],Nottui[6][31],l) /*<>*/ } /*<>*/ function vbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][32],l) /*<>*/ } + { /*<>*/ return /*<>*/ caml_call2 + (Lwd_utils[2],Nottui[6][32],l) /*<>*/ } /*<>*/ function zbox(l) - { /*<>*/ return /*<>*/ caml_call2 - (Lwd_utils[2],Nottui[6][33],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 _iN_(ui) - { /*<>*/ var - /*<>*/ _iQ_=0, - /*<>*/ _iR_= - /*<>*/ string$0(_iQ_,bullet), - /*<>*/ _iS_=Nottui[6][28], - /*<>*/ _iT_= - /*<>*/ caml_call1(_iS_,_iR_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[3],ui,_iT_) /*<>*/ } - /*<>*/ var - /*<>*/ _iO_=Stdlib_List[19], - /*<>*/ _iP_= - /*<>*/ caml_call1(_iO_,_iN_); - /*<>*/ return /*<>*/ vbox - ( /*<>*/ caml_call1(_iP_,l))} - /*<>*/ function vlist_with(opt,_ip_,f) + var bullet=cst$16; + /*<>*/ function _iO_(ui) + { /*<>*/ var + /*<>*/ _iR_=0, + /*<>*/ _iS_= + /*<>*/ string$0(_iR_,bullet), + /*<>*/ _iT_=Nottui[6][28], + /*<>*/ _iU_= + /*<>*/ caml_call1(_iT_,_iS_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[3],ui,_iU_) /*<>*/ } + /*<>*/ var + /*<>*/ _iP_=Stdlib_List[19], + /*<>*/ _iQ_= + /*<>*/ caml_call1(_iP_,_iO_); + /*<>*/ return /*<>*/ vbox + ( /*<>*/ caml_call1(_iQ_,l))} + /*<>*/ function vlist_with(opt,_iq_,f) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], bullet=sth; else - var bullet=cst$15; - if(_ip_) - /*<>*/ var - /*<>*/ sth$0=_ip_[1], + var bullet=cst$17; + if(_iq_) + /*<>*/ var + /*<>*/ sth$0=_iq_[1], filter=sth$0; else - /*<>*/ var - /*<>*/ _iq_= + /*<>*/ var + /*<>*/ _ir_= function(param) - { /*<>*/ return 1 /*<>*/ }, - /*<>*/ _ir_=Lwd[1], - filter= /*<>*/ caml_call1(_ir_,_iq_); - /*<>*/ return function(l) - { /*<>*/ function filter_map(acc,f,l) + { /*<>*/ return 1 /*<>*/ }, + /*<>*/ _is_=Lwd[1], + filter= /*<>*/ caml_call1(_is_,_ir_); + /*<>*/ 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 _is_(x) - { /*<>*/ var - /*<>*/ _iF_= - /*<>*/ caml_call1(f,x), - /*<>*/ _iG_=Lwd[3], - /*<>*/ _iH_=0, - /*<>*/ _iI_= - /*<>*/ string$0(_iH_,bullet), - /*<>*/ _iJ_=Nottui[6][28], - /*<>*/ _iK_= - /*<>*/ caml_call1(_iJ_,_iI_); - /*<>*/ function _iL_(_iM_) - { /*<>*/ return caml_call2(_iG_,_iM_,_iK_)} - /*<>*/ return [0, + /*<>*/ return /*<>*/ caml_call1 + (Stdlib_List[9],acc$0)} /*<>*/ } + /*<>*/ function _it_(x) + { /*<>*/ var + /*<>*/ _iG_= + /*<>*/ caml_call1(f,x), + /*<>*/ _iH_=Lwd[3], + /*<>*/ _iI_=0, + /*<>*/ _iJ_= + /*<>*/ string$0(_iI_,bullet), + /*<>*/ _iK_=Nottui[6][28], + /*<>*/ _iL_= + /*<>*/ caml_call1(_iK_,_iJ_); + /*<>*/ function _iM_(_iN_) + { /*<>*/ return caml_call2(_iH_,_iN_,_iL_)} + /*<>*/ return [0, x, - /*<>*/ _iL_(_iF_)] /*<>*/ } - /*<>*/ var - /*<>*/ _it_=Stdlib_List[19], - /*<>*/ _iu_= - /*<>*/ caml_call1(_it_,_is_), - /*<>*/ _iv_=Lwd[30][1], - /*<>*/ l$0= - /*<>*/ caml_call2(_iv_,l,_iu_); - /*<>*/ function _iw_(filter) - { /*<>*/ function _iB_(param) - { /*<>*/ var - /*<>*/ ui=param[2], - /*<>*/ x=param[1]; - /*<>*/ return /*<>*/ caml_call1 + /*<>*/ _iM_(_iG_)] /*<>*/ } + /*<>*/ var + /*<>*/ _iu_=Stdlib_List[19], + /*<>*/ _iv_= + /*<>*/ caml_call1(_iu_,_it_), + /*<>*/ _iw_=Lwd[30][1], + /*<>*/ l$0= + /*<>*/ caml_call2(_iw_,l,_iv_); + /*<>*/ function _ix_(filter) + { /*<>*/ function _iC_(param) + { /*<>*/ var + /*<>*/ ui=param[2], + /*<>*/ x=param[1]; + /*<>*/ return /*<>*/ caml_call1 (filter,x) ?[0,ui] - :0 /*<>*/ } - /*<>*/ /*<>*/ var _iC_=0; - /*<>*/ function _iD_(_iE_) - { /*<>*/ return filter_map(_iC_,_iB_,_iE_)} - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][1],l$0,_iD_) /*<>*/ } - /*<>*/ var - /*<>*/ _ix_=Lwd[30][2], - /*<>*/ l_filter= - /*<>*/ caml_call2(_ix_,filter,_iw_), - /*<>*/ _iy_=Nottui[6][32], - /*<>*/ _iz_=Lwd_utils[2], - /*<>*/ _iA_= - /*<>*/ caml_call1(_iz_,_iy_); - /*<>*/ return /*<>*/ caml_call2 - (Lwd[30][2],l_filter,_iA_) /*<>*/ }} - /*<>*/ function vlist_of_text(opt,_h8_) + :0 /*<>*/ } + /*<>*/ /*<>*/ var _iD_=0; + /*<>*/ function _iE_(_iF_) + { /*<>*/ return filter_map(_iD_,_iC_,_iF_)} + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][1],l$0,_iE_) /*<>*/ } + /*<>*/ var + /*<>*/ _iy_=Lwd[30][2], + /*<>*/ l_filter= + /*<>*/ caml_call2(_iy_,filter,_ix_), + /*<>*/ _iz_=Nottui[6][32], + /*<>*/ _iA_=Lwd_utils[2], + /*<>*/ _iB_= + /*<>*/ caml_call1(_iA_,_iz_); + /*<>*/ return /*<>*/ caml_call2 + (Lwd[30][2],l_filter,_iB_) /*<>*/ }} + /*<>*/ function vlist_of_text(opt,_h9_) { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + /*<>*/ var + /*<>*/ sth=opt[1], focus=sth; else - /*<>*/ var - /*<>*/ _ib_=0, - /*<>*/ _ic_=Nottui[3][1], - focus= /*<>*/ caml_call1(_ic_,_ib_); - /*<>*/ if(_h8_) - /*<>*/ var - /*<>*/ sth$0=_h8_[1], + /*<>*/ var + /*<>*/ _ic_=0, + /*<>*/ _id_=Nottui[3][1], + focus= /*<>*/ caml_call1(_id_,_ic_); + /*<>*/ if(_h9_) + /*<>*/ var + /*<>*/ sth$0=_h9_[1], key_handler=sth$0; else var key_handler= function(param) - { /*<>*/ return -475359645 /*<>*/ }; - /*<>*/ var - /*<>*/ _h9_=Nottui[3][6], - /*<>*/ _h__= - /*<>*/ caml_call1(_h9_,focus), - /*<>*/ _h$_= - /*<>*/ caml_call1(Lwd[4],_h__); - /*<>*/ function _ia_(focus,s) - { /*<>*/ var - /*<>*/ _ie_=10, - /*<>*/ _if_=String[16], - /*<>*/ _ig_= - /*<>*/ caml_call2(_if_,_ie_,s); - /*<>*/ function _ih_(eta) + { /*<>*/ return -475359645 /*<>*/ }; + /*<>*/ var + /*<>*/ _h__=Nottui[3][6], + /*<>*/ _h$_= + /*<>*/ caml_call1(_h__,focus), + /*<>*/ _ia_= + /*<>*/ caml_call1(Lwd[4],_h$_); + /*<>*/ function _ib_(focus,s) + { /*<>*/ var + /*<>*/ _if_=10, + /*<>*/ _ig_=String[16], + /*<>*/ _ih_= + /*<>*/ caml_call2(_ig_,_if_,s); + /*<>*/ function _ii_(eta) { /*<>*/ return string$0(0,eta)} - /*<>*/ var - /*<>*/ _ii_=Stdlib_List[19], - /*<>*/ _ij_= - /*<>*/ caml_call1(_ii_,_ih_), - /*<>*/ _ik_= - /*<>*/ caml_call1(_ij_,_ig_), - /*<>*/ _il_=Nottui[6][35], - /*<>*/ _im_= - /*<>*/ caml_call1(_il_,_ik_), - /*<>*/ _in_=[0,focus], - /*<>*/ _io_=Nottui[6][19]; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ caml_call2(_io_,_in_,key_handler), - _im_) /*<>*/ } - /*<>*/ return function(_id_) - { /*<>*/ return caml_call2(_h$_,_id_,_ia_)}} + /*<>*/ var + /*<>*/ _ij_=Stdlib_List[19], + /*<>*/ _ik_= + /*<>*/ caml_call1(_ij_,_ii_), + /*<>*/ _il_= + /*<>*/ caml_call1(_ik_,_ih_), + /*<>*/ _im_=Nottui[6][35], + /*<>*/ _in_= + /*<>*/ caml_call1(_im_,_il_), + /*<>*/ _io_=[0,focus], + /*<>*/ _ip_=Nottui[6][19]; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ caml_call2(_ip_,_io_,key_handler), + _in_) /*<>*/ } + /*<>*/ return function(_ie_) + { /*<>*/ return caml_call2(_ia_,_ie_,_ib_)}} /*<>*/ function button_of(ui,f) - { /*<>*/ function _h6_(param) - { /*<>*/ if(62119160 === param[1]) - { /*<>*/ /*<>*/ var _h7_=0; - /*<>*/ /*<>*/ caml_call1 - (f,_h7_); - /*<>*/ return 321312668} - /*<>*/ return -475359645 /*<>*/ } - /*<>*/ return /*<>*/ caml_call3 - (Nottui[6][19],0,_h6_,ui) /*<>*/ } + { /*<>*/ function _h7_(param) + { /*<>*/ if(62119160 === param[1]) + { /*<>*/ /*<>*/ var _h8_=0; + /*<>*/ /*<>*/ caml_call1 + (f,_h8_); + /*<>*/ return 321312668} + /*<>*/ return -475359645 /*<>*/ } + /*<>*/ return /*<>*/ caml_call3 + (Nottui[6][19],0,_h7_,ui) /*<>*/ } /*<>*/ function button(opt,s,f) - { /*<>*/ if(opt) - /*<>*/ var - /*<>*/ sth=opt[1], + { /*<>*/ if(opt) + /*<>*/ var + /*<>*/ sth=opt[1], attr=sth; else var attr=Style[15]; - /*<>*/ /*<>*/ var _h5_=[0,attr]; - /*<>*/ return /*<>*/ button_of - ( /*<>*/ string$0(_h5_,s),f) /*<>*/ } + /*<>*/ /*<>*/ var _h6_=[0,attr]; + /*<>*/ return /*<>*/ button_of + ( /*<>*/ string$0(_h6_,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) - ?cst$17 + /*<>*/ caml_string_equal(path,cst$18) + ?cst$19 :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), - /*<>*/ _hS_=Stdlib_Array[11], - /*<>*/ _hT_= - /*<>*/ caml_call1(_hS_,arr), - /*<>*/ _hU_=Stdlib_Filename[4], - /*<>*/ _hV_= - /*<>*/ caml_call1(_hU_,path), - /*<>*/ _hW_=Stdlib_List[19], - /*<>*/ _hX_= - /*<>*/ caml_call1(_hW_,_hV_), - /*<>*/ l= - /*<>*/ caml_call1(_hX_,_hT_); - /*<>*/ if(filter) - /*<>*/ var - /*<>*/ f=filter[1], - /*<>*/ _hY_=Stdlib_List[41], - l$0= /*<>*/ caml_call2(_hY_,f,l); + /*<>*/ _hT_=Stdlib_Array[11], + /*<>*/ _hU_= + /*<>*/ caml_call1(_hT_,arr), + /*<>*/ _hV_=Stdlib_Filename[4], + /*<>*/ _hW_= + /*<>*/ caml_call1(_hV_,path), + /*<>*/ _hX_=Stdlib_List[19], + /*<>*/ _hY_= + /*<>*/ caml_call1(_hX_,_hW_), + /*<>*/ l= + /*<>*/ caml_call1(_hY_,_hU_); + /*<>*/ if(filter) + /*<>*/ var + /*<>*/ f=filter[1], + /*<>*/ _hZ_=Stdlib_List[41], + l$0= /*<>*/ caml_call2(_hZ_,f,l); else var l$0=l; - /*<>*/ var - /*<>*/ _hZ_=String[9], - /*<>*/ _h0_=Stdlib_List[56], - /*<>*/ _h1_= - /*<>*/ caml_call2(_h0_,_hZ_,l$0), - /*<>*/ _h2_=Lwd[1], - /*<>*/ l$1= - /*<>*/ caml_call1(_h2_,_h1_), - /*<>*/ _h3_=1; - /*<>*/ return /*<>*/ caml_call1 - ( /*<>*/ vlist_with - (_fg_,0,function(_h4_){ /*<>*/ return aux(_h3_,_h4_)}), - l$1) /*<>*/ }; - /*<>*/ if(fold) - /*<>*/ var - /*<>*/ _hC_=Stdlib[28], - /*<>*/ _hD_= - /*<>*/ caml_call2(_hC_,path,cst$18), - /*<>*/ _hE_=0, - /*<>*/ _hF_= - /*<>*/ string$0(_hE_,_hD_), - /*<>*/ _hG_=Lwd[1], - /*<>*/ _hH_= - /*<>*/ caml_call1(_hG_,_hF_), - _hI_= /*<>*/ unfoldable(_fh_,_hH_,ui); + /*<>*/ var + /*<>*/ _h0_=String[9], + /*<>*/ _h1_=Stdlib_List[56], + /*<>*/ _h2_= + /*<>*/ caml_call2(_h1_,_h0_,l$0), + /*<>*/ _h3_=Lwd[1], + /*<>*/ l$1= + /*<>*/ caml_call1(_h3_,_h2_), + /*<>*/ _h4_=1; + /*<>*/ return /*<>*/ caml_call1 + ( /*<>*/ vlist_with + (_fh_,0,function(_h5_){ /*<>*/ return aux(_h4_,_h5_)}), + l$1) /*<>*/ }; + /*<>*/ if(fold) + /*<>*/ var + /*<>*/ _hD_=Stdlib[28], + /*<>*/ _hE_= + /*<>*/ caml_call2(_hD_,path,cst$20), + /*<>*/ _hF_=0, + /*<>*/ _hG_= + /*<>*/ string$0(_hF_,_hE_), + /*<>*/ _hH_=Lwd[1], + /*<>*/ _hI_= + /*<>*/ caml_call1(_hH_,_hG_), + _hJ_= /*<>*/ unfoldable(_fi_,_hI_,ui); else - /*<>*/ var - /*<>*/ _hK_=0, - _hI_= /*<>*/ ui(_hK_); - /*<>*/ var _hJ_=_hI_} + /*<>*/ var + /*<>*/ _hL_=0, + _hJ_= /*<>*/ ui(_hL_); + /*<>*/ var _hK_=_hJ_} else - /*<>*/ var - /*<>*/ _hL_= + /*<>*/ var + /*<>*/ _hM_= function(param) - { /*<>*/ return /*<>*/ caml_call1 - (on_select,path) /*<>*/ }, - /*<>*/ _hM_=Style[1][3], - /*<>*/ _hN_=0, - /*<>*/ _hO_=Style[10], - /*<>*/ _hP_= - [0, /*<>*/ caml_call2(_hO_,_hN_,_hM_)], - /*<>*/ _hQ_= - /*<>*/ button(_hP_,path,_hL_), - /*<>*/ _hR_=Lwd[1], - _hJ_= /*<>*/ caml_call1(_hR_,_hQ_); - /*<>*/ return _hJ_} + { /*<>*/ return /*<>*/ caml_call1 + (on_select,path) /*<>*/ }, + /*<>*/ _hN_=Style[1][3], + /*<>*/ _hO_=0, + /*<>*/ _hP_=Style[10], + /*<>*/ _hQ_= + [0, /*<>*/ caml_call2(_hP_,_hO_,_hN_)], + /*<>*/ _hR_= + /*<>*/ button(_hQ_,path,_hM_), + /*<>*/ _hS_=Lwd[1], + _hK_= /*<>*/ caml_call1(_hS_,_hR_); + /*<>*/ return _hK_} catch(e) {e = caml_wrap_exception(e); - /*<>*/ var - /*<>*/ _hq_=0, - /*<>*/ _hr_=Stdlib_Printexc[1], - /*<>*/ _hs_= - /*<>*/ caml_call1(_hr_,e), - /*<>*/ _ht_=0, - /*<>*/ _hu_= - [0, /*<>*/ string$0(_ht_,_hs_),_hq_], - /*<>*/ _hv_=NVG[40][18], - /*<>*/ _hw_=0, - /*<>*/ _hx_=Style[9], - /*<>*/ _hy_= - [0, /*<>*/ caml_call2(_hx_,_hw_,_hv_)], - /*<>*/ _hz_= + /*<>*/ var + /*<>*/ _hr_=0, + /*<>*/ _hs_=Stdlib_Printexc[1], + /*<>*/ _ht_= + /*<>*/ caml_call1(_hs_,e), + /*<>*/ _hu_=0, + /*<>*/ _hv_= + [0, /*<>*/ string$0(_hu_,_ht_),_hr_], + /*<>*/ _hw_=NVG[40][18], + /*<>*/ _hx_=0, + /*<>*/ _hy_=Style[9], + /*<>*/ _hz_= + [0, /*<>*/ caml_call2(_hy_,_hx_,_hw_)], + /*<>*/ _hA_= [0, - /*<>*/ caml_call1 - ( /*<>*/ printf(_hy_,_ff_),path), - _hu_], - /*<>*/ _hA_=Nottui[6][35], - /*<>*/ _hB_= - /*<>*/ caml_call1(_hA_,_hz_); - /*<>*/ return /*<>*/ caml_call1 - (Lwd[1],_hB_)} /*<>*/ } - /*<>*/ /*<>*/ var + /*<>*/ caml_call1 + ( /*<>*/ printf(_hz_,_fg_),path), + _hv_], + /*<>*/ _hB_=Nottui[6][35], + /*<>*/ _hC_= + /*<>*/ caml_call1(_hB_,_hA_); + /*<>*/ return /*<>*/ caml_call1 + (Lwd[1],_hC_)} /*<>*/ } + /*<>*/ /*<>*/ var start= - abs? /*<>*/ runtime.caml_sys_getcwd(0):cst$19; - /*<>*/ return /*<>*/ aux(0,start) /*<>*/ }} + abs? /*<>*/ runtime.caml_sys_getcwd(0):cst$21; + /*<>*/ return /*<>*/ aux(0,start) /*<>*/ }} /*<>*/ function toggle(st,lbl,f) - { /*<>*/ function mk_but(st_v,lbl_v) - { /*<>*/ var - /*<>*/ _hg_=0, - /*<>*/ _hh_=0, - /*<>*/ _hi_= - [0, /*<>*/ string$0(_hh_,cst$20),_hg_], - /*<>*/ _hj_=st_v?cst$21:cst$22, - _hk_=[0,Style[15]], - /*<>*/ _hl_= - [0, /*<>*/ string$0(_hk_,_hj_),_hi_], - /*<>*/ _hm_=0, - /*<>*/ _hn_= + { /*<>*/ function mk_but(st_v,lbl_v) + { /*<>*/ var + /*<>*/ _hh_=0, + /*<>*/ _hi_=0, + /*<>*/ _hj_= + [0, /*<>*/ string$0(_hi_,cst$22),_hh_], + /*<>*/ _hk_=st_v?cst$23:cst$24, + _hl_=[0,Style[15]], + /*<>*/ _hm_= + [0, /*<>*/ string$0(_hl_,_hk_),_hj_], + /*<>*/ _hn_=0, + /*<>*/ _ho_= [0, - /*<>*/ caml_call1 - ( /*<>*/ printf(_hm_,_fi_),lbl_v), - _hl_], - /*<>*/ _ho_=Nottui[6][34], - /*<>*/ lbl= - /*<>*/ caml_call1(_ho_,_hn_); - /*<>*/ return /*<>*/ button_of + /*<>*/ caml_call1 + ( /*<>*/ printf(_hn_,_fj_),lbl_v), + _hm_], + /*<>*/ _hp_=Nottui[6][34], + /*<>*/ lbl= + /*<>*/ caml_call1(_hp_,_ho_); + /*<>*/ return /*<>*/ button_of (lbl, function(param) - { /*<>*/ var - /*<>*/ new_st=1 - st_v, - /*<>*/ _hp_=Lwd[12]; - /*<>*/ /*<>*/ caml_call2 - (_hp_,st,new_st); - /*<>*/ return /*<>*/ caml_call1 - (f,new_st) /*<>*/ }) /*<>*/ } - /*<>*/ var - /*<>*/ _he_=Lwd[11], - /*<>*/ _hf_= - /*<>*/ caml_call1(_he_,st); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],_hf_,lbl,mk_but) /*<>*/ } + { /*<>*/ var + /*<>*/ new_st=1 - st_v, + /*<>*/ _hq_=Lwd[12]; + /*<>*/ /*<>*/ caml_call2 + (_hq_,st,new_st); + /*<>*/ return /*<>*/ caml_call1 + (f,new_st) /*<>*/ }) /*<>*/ } + /*<>*/ var + /*<>*/ _hf_=Lwd[11], + /*<>*/ _hg_= + /*<>*/ caml_call1(_hf_,st); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],_hg_,lbl,mk_but) /*<>*/ } /*<>*/ function toggle$0(lbl,v) - { /*<>*/ /*<>*/ var _hd_=Lwd[12]; - /*<>*/ return /*<>*/ toggle - (v,lbl, /*<>*/ caml_call1(_hd_,v)) /*<>*/ } + { /*<>*/ /*<>*/ var _he_=Lwd[12]; + /*<>*/ return /*<>*/ toggle + (v,lbl, /*<>*/ caml_call1(_he_,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 - /*<>*/ _hc_=Lwd[10], - /*<>*/ st= - /*<>*/ caml_call1(_hc_,init); - /*<>*/ return /*<>*/ toggle - (st,lbl,f) /*<>*/ }} + { /*<>*/ var + /*<>*/ _hd_=Lwd[10], + /*<>*/ st= + /*<>*/ caml_call1(_hd_,init); + /*<>*/ return /*<>*/ toggle + (st,lbl,f) /*<>*/ }} /*<>*/ function adjust_offset(visible,total,off) - { /*<>*/ var - /*<>*/ off$0= + { /*<>*/ var + /*<>*/ off$0= total < off + visible?total - visible:off, - /*<>*/ off$1=off$0 < 0.?0.:off$0; - /*<>*/ return off$1 /*<>*/ } + /*<>*/ 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 /*<>*/ } + { /*<>*/ return cond?x - 10.:x /*<>*/ } /*<>*/ var - /*<>*/ _fj_=0.4, - /*<>*/ _fk_=NVG[40][14], - /*<>*/ scrollbar_bg= - /*<>*/ caml_call1(_fk_,_fj_), - /*<>*/ _fl_=0.7, - /*<>*/ _fm_=NVG[40][14], - /*<>*/ scrollbar_fg= - /*<>*/ caml_call1(_fm_,_fl_), - /*<>*/ scrollbar_click_step=3., - /*<>*/ scrollbar_wheel_step=8.; - /*<>*/ function hscrollbar(visible,total,offset,set) - { /*<>*/ var - /*<>*/ _gB_=offset * visible, - /*<>*/ prefix=_gB_ / total, - /*<>*/ _gC_=total - offset, - /*<>*/ _gD_=_gC_ - visible, - /*<>*/ _gE_=_gD_ * visible, - /*<>*/ suffix=_gE_ / total, - /*<>*/ _gF_=visible - prefix, - /*<>*/ handle=_gF_ - suffix; - /*<>*/ function render(size,color) - { /*<>*/ var - /*<>*/ _g7_=I[5], - /*<>*/ _g8_= - /*<>*/ caml_call2(_g7_,size,scrollbar_width), - /*<>*/ _g9_=0, - /*<>*/ _g__=Style[9], - /*<>*/ _g$_= - /*<>*/ caml_call2(_g__,_g9_,color), - /*<>*/ _ha_=I[6], - /*<>*/ _hb_= - /*<>*/ caml_call2(_ha_,_g$_,_g8_); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_hb_) /*<>*/ } - /*<>*/ function mouse_handler(x,param,_gL_) - { /*<>*/ if(typeof _gL_ === "number") - {if(847852583 === _gL_) - { /*<>*/ if(x < prefix) - { /*<>*/ var - /*<>*/ _gM_=visible / 3., - /*<>*/ _gN_=1., - /*<>*/ _gO_=Stdlib[17], - /*<>*/ _gP_= - /*<>*/ caml_call2(_gO_,_gN_,_gM_), - /*<>*/ _gQ_=offset - _gP_; - /*<>*/ /*<>*/ caml_call1 - (set,_gQ_); - /*<>*/ return 321312668} - /*<>*/ if(prefix + handle < x) - { /*<>*/ var - /*<>*/ _gR_=visible / 3., - /*<>*/ _gS_=1., - /*<>*/ _gT_=Stdlib[17], - /*<>*/ _gU_= - /*<>*/ caml_call2(_gT_,_gS_,_gR_), - /*<>*/ _gV_=offset + _gU_; - /*<>*/ /*<>*/ caml_call1 - (set,_gV_); - /*<>*/ return 321312668} - /*<>*/ /*<>*/ var - _gW_= - function(param,_g6_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + /*<>*/ _fk_=0.4, + /*<>*/ _fl_=NVG[40][14], + /*<>*/ scrollbar_bg= + /*<>*/ caml_call1(_fl_,_fk_), + /*<>*/ _fm_=0.7, + /*<>*/ _fn_=NVG[40][14], + /*<>*/ scrollbar_fg= + /*<>*/ caml_call1(_fn_,_fm_), + /*<>*/ scrollbar_click_step=3., + /*<>*/ scrollbar_wheel_step=8.; + /*<>*/ function hscrollbar(visible,total,offset,set) + { /*<>*/ var + /*<>*/ _gC_=offset * visible, + /*<>*/ prefix=_gC_ / total, + /*<>*/ _gD_=total - offset, + /*<>*/ _gE_=_gD_ - visible, + /*<>*/ _gF_=_gE_ * visible, + /*<>*/ suffix=_gF_ / total, + /*<>*/ _gG_=visible - prefix, + /*<>*/ handle=_gG_ - suffix; + /*<>*/ function render(size,color) + { /*<>*/ var + /*<>*/ _g8_=I[5], + /*<>*/ _g9_= + /*<>*/ caml_call2(_g8_,size,scrollbar_width), + /*<>*/ _g__=0, + /*<>*/ _g$_=Style[9], + /*<>*/ _ha_= + /*<>*/ caml_call2(_g$_,_g__,color), + /*<>*/ _hb_=I[6], + /*<>*/ _hc_= + /*<>*/ caml_call2(_hb_,_ha_,_g9_); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][16],_hc_) /*<>*/ } + /*<>*/ function mouse_handler(x,param,_gM_) + { /*<>*/ if(typeof _gM_ === "number") + {if(847852583 === _gM_) + { /*<>*/ if(x < prefix) + { /*<>*/ var + /*<>*/ _gN_=visible / 3., + /*<>*/ _gO_=1., + /*<>*/ _gP_=Stdlib[17], + /*<>*/ _gQ_= + /*<>*/ caml_call2(_gP_,_gO_,_gN_), + /*<>*/ _gR_=offset - _gQ_; + /*<>*/ /*<>*/ caml_call1 + (set,_gR_); + /*<>*/ return 321312668} + /*<>*/ if(prefix + handle < x) + { /*<>*/ var + /*<>*/ _gS_=visible / 3., + /*<>*/ _gT_=1., + /*<>*/ _gU_=Stdlib[17], + /*<>*/ _gV_= + /*<>*/ caml_call2(_gU_,_gT_,_gS_), + /*<>*/ _gW_=offset + _gV_; + /*<>*/ /*<>*/ caml_call1 + (set,_gW_); + /*<>*/ return 321312668} + /*<>*/ /*<>*/ var + _gX_= + function(param,_g7_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(x$0,param) - { /*<>*/ var - /*<>*/ _g3_=x$0 - x, - /*<>*/ _g4_=_g3_ * total, - /*<>*/ _g5_=_g4_ / visible; - /*<>*/ return /*<>*/ caml_call1 - (set,offset + _g5_) /*<>*/ }, - _gW_]]}} + { /*<>*/ var + /*<>*/ _g4_=x$0 - x, + /*<>*/ _g5_=_g4_ * total, + /*<>*/ _g6_=_g5_ / visible; + /*<>*/ return /*<>*/ caml_call1 + (set,offset + _g6_) /*<>*/ }, + _gX_]]}} else - if(-67548115 === _gL_[1]) - { /*<>*/ var - /*<>*/ dir=_gL_[2], - /*<>*/ dir$0=759637122 <= dir?1.:-1., - /*<>*/ _gX_=visible / 8., - /*<>*/ _gY_=1., - /*<>*/ _gZ_=Stdlib[17], - /*<>*/ _g0_= - /*<>*/ caml_call2(_gZ_,_gY_,_gX_), - /*<>*/ _g1_=dir$0 * _g0_, - /*<>*/ _g2_=offset + _g1_; - /*<>*/ /*<>*/ caml_call1 - (set,_g2_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ var - /*<>*/ symbol=Nottui[6][28], - /*<>*/ _gG_= - /*<>*/ render(suffix,scrollbar_bg), - /*<>*/ _gH_= - /*<>*/ render(handle,scrollbar_fg), - /*<>*/ _gI_= - /*<>*/ render(prefix,scrollbar_bg), - /*<>*/ _gJ_= - /*<>*/ caml_call2(symbol,_gI_,_gH_), - /*<>*/ _gK_= - /*<>*/ caml_call2(symbol,_gJ_,_gG_); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],mouse_handler,_gK_) /*<>*/ } - /*<>*/ function vscrollbar(visible,total,offset,set) - { /*<>*/ var - /*<>*/ _f0_=offset * visible, - /*<>*/ prefix=_f0_ / total, - /*<>*/ _f1_=total - offset, - /*<>*/ _f2_=_f1_ - visible, - /*<>*/ _f3_=_f2_ * visible, - /*<>*/ suffix=_f3_ / total, - /*<>*/ _f4_=visible - prefix, - /*<>*/ handle=_f4_ - suffix; - /*<>*/ function render(size,color) - { /*<>*/ var - /*<>*/ _gu_=1., - /*<>*/ _gv_=32, - /*<>*/ _gw_=0, - /*<>*/ _gx_=Style[9], - /*<>*/ _gy_= - [0, /*<>*/ caml_call2(_gx_,_gw_,color)], - /*<>*/ _gz_=I[26], - /*<>*/ _gA_= - /*<>*/ caml_call4(_gz_,_gy_,_gv_,_gu_,size); - /*<>*/ return /*<>*/ caml_call1 - (Nottui[6][16],_gA_) /*<>*/ } - /*<>*/ function mouse_handler(param,y,_f__) - { /*<>*/ if(typeof _f__ === "number") - {if(847852583 === _f__) - { /*<>*/ if(y < prefix) - { /*<>*/ var - /*<>*/ _f$_=visible / 3., - /*<>*/ _ga_=1., - /*<>*/ _gb_=Stdlib[17], - /*<>*/ _gc_= - /*<>*/ caml_call2(_gb_,_ga_,_f$_), - /*<>*/ _gd_=offset - _gc_; - /*<>*/ /*<>*/ caml_call1 - (set,_gd_); - /*<>*/ return 321312668} - /*<>*/ if(prefix + handle < y) - { /*<>*/ var - /*<>*/ _ge_=visible / 3., - /*<>*/ _gf_=1., - /*<>*/ _gg_=Stdlib[17], - /*<>*/ _gh_= - /*<>*/ caml_call2(_gg_,_gf_,_ge_), - /*<>*/ _gi_=offset + _gh_; - /*<>*/ /*<>*/ caml_call1 - (set,_gi_); - /*<>*/ return 321312668} - /*<>*/ /*<>*/ var - _gj_= - function(param,_gt_) - { /*<>*/ return 0 /*<>*/ }; - /*<>*/ return [0, + if(-67548115 === _gM_[1]) + { /*<>*/ var + /*<>*/ dir=_gM_[2], + /*<>*/ dir$0=759637122 <= dir?1.:-1., + /*<>*/ _gY_=visible / 8., + /*<>*/ _gZ_=1., + /*<>*/ _g0_=Stdlib[17], + /*<>*/ _g1_= + /*<>*/ caml_call2(_g0_,_gZ_,_gY_), + /*<>*/ _g2_=dir$0 * _g1_, + /*<>*/ _g3_=offset + _g2_; + /*<>*/ /*<>*/ caml_call1 + (set,_g3_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ var + /*<>*/ symbol=Nottui[6][28], + /*<>*/ _gH_= + /*<>*/ render(suffix,scrollbar_bg), + /*<>*/ _gI_= + /*<>*/ render(handle,scrollbar_fg), + /*<>*/ _gJ_= + /*<>*/ render(prefix,scrollbar_bg), + /*<>*/ _gK_= + /*<>*/ caml_call2(symbol,_gJ_,_gI_), + /*<>*/ _gL_= + /*<>*/ caml_call2(symbol,_gK_,_gH_); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],mouse_handler,_gL_) /*<>*/ } + /*<>*/ function vscrollbar(visible,total,offset,set) + { /*<>*/ var + /*<>*/ _f1_=offset * visible, + /*<>*/ prefix=_f1_ / total, + /*<>*/ _f2_=total - offset, + /*<>*/ _f3_=_f2_ - visible, + /*<>*/ _f4_=_f3_ * visible, + /*<>*/ suffix=_f4_ / total, + /*<>*/ _f5_=visible - prefix, + /*<>*/ handle=_f5_ - suffix; + /*<>*/ function render(size,color) + { /*<>*/ var + /*<>*/ _gv_=1., + /*<>*/ _gw_=32, + /*<>*/ _gx_=0, + /*<>*/ _gy_=Style[9], + /*<>*/ _gz_= + [0, /*<>*/ caml_call2(_gy_,_gx_,color)], + /*<>*/ _gA_=I[26], + /*<>*/ _gB_= + /*<>*/ caml_call4(_gA_,_gz_,_gw_,_gv_,size); + /*<>*/ return /*<>*/ caml_call1 + (Nottui[6][16],_gB_) /*<>*/ } + /*<>*/ function mouse_handler(param,y,_f$_) + { /*<>*/ if(typeof _f$_ === "number") + {if(847852583 === _f$_) + { /*<>*/ if(y < prefix) + { /*<>*/ var + /*<>*/ _ga_=visible / 3., + /*<>*/ _gb_=1., + /*<>*/ _gc_=Stdlib[17], + /*<>*/ _gd_= + /*<>*/ caml_call2(_gc_,_gb_,_ga_), + /*<>*/ _ge_=offset - _gd_; + /*<>*/ /*<>*/ caml_call1 + (set,_ge_); + /*<>*/ return 321312668} + /*<>*/ if(prefix + handle < y) + { /*<>*/ var + /*<>*/ _gf_=visible / 3., + /*<>*/ _gg_=1., + /*<>*/ _gh_=Stdlib[17], + /*<>*/ _gi_= + /*<>*/ caml_call2(_gh_,_gg_,_gf_), + /*<>*/ _gj_=offset + _gi_; + /*<>*/ /*<>*/ caml_call1 + (set,_gj_); + /*<>*/ return 321312668} + /*<>*/ /*<>*/ var + _gk_= + function(param,_gu_) + { /*<>*/ return 0 /*<>*/ }; + /*<>*/ return [0, 793050092, [0, function(param,y$0) - { /*<>*/ var - /*<>*/ _gq_=y$0 - y, - /*<>*/ _gr_=_gq_ * total, - /*<>*/ _gs_=_gr_ / visible; - /*<>*/ return /*<>*/ caml_call1 - (set,offset + _gs_) /*<>*/ }, - _gj_]]}} + { /*<>*/ var + /*<>*/ _gr_=y$0 - y, + /*<>*/ _gs_=_gr_ * total, + /*<>*/ _gt_=_gs_ / visible; + /*<>*/ return /*<>*/ caml_call1 + (set,offset + _gt_) /*<>*/ }, + _gk_]]}} else - if(-67548115 === _f__[1]) - { /*<>*/ var - /*<>*/ dir=_f__[2], - /*<>*/ dir$0=759637122 <= dir?1.:-1., - /*<>*/ _gk_=visible / 8., - /*<>*/ _gl_=1., - /*<>*/ _gm_=Stdlib[17], - /*<>*/ _gn_= - /*<>*/ caml_call2(_gm_,_gl_,_gk_), - /*<>*/ _go_=dir$0 * _gn_, - /*<>*/ _gp_=offset + _go_; - /*<>*/ /*<>*/ caml_call1 - (set,_gp_); - /*<>*/ return 321312668} - /*<>*/ return -475359645} - /*<>*/ var - /*<>*/ symbol=Nottui[6][29], - /*<>*/ _f5_= - /*<>*/ render(suffix,scrollbar_bg), - /*<>*/ _f6_= - /*<>*/ render(handle,scrollbar_fg), - /*<>*/ _f7_= - /*<>*/ render(prefix,scrollbar_bg), - /*<>*/ _f8_= - /*<>*/ caml_call2(symbol,_f7_,_f6_), - /*<>*/ _f9_= - /*<>*/ caml_call2(symbol,_f8_,_f5_); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][18],mouse_handler,_f9_) /*<>*/ } - /*<>*/ function scrollbox(t) - { /*<>*/ var - /*<>*/ _fu_=Lwd[10], - /*<>*/ state_var= - /*<>*/ caml_call1(_fu_,_fn_); - /*<>*/ function update_size(w,h) - { /*<>*/ var - /*<>*/ _fX_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fX_,state_var), - /*<>*/ _fY_=state[1] != w?1:0, - /*<>*/ _fZ_=_fY_ || (state[2] != h?1:0); - /*<>*/ return _fZ_ - ? /*<>*/ caml_call2 + if(-67548115 === _f$_[1]) + { /*<>*/ var + /*<>*/ dir=_f$_[2], + /*<>*/ dir$0=759637122 <= dir?1.:-1., + /*<>*/ _gl_=visible / 8., + /*<>*/ _gm_=1., + /*<>*/ _gn_=Stdlib[17], + /*<>*/ _go_= + /*<>*/ caml_call2(_gn_,_gm_,_gl_), + /*<>*/ _gp_=dir$0 * _go_, + /*<>*/ _gq_=offset + _gp_; + /*<>*/ /*<>*/ caml_call1 + (set,_gq_); + /*<>*/ return 321312668} + /*<>*/ return -475359645} + /*<>*/ var + /*<>*/ symbol=Nottui[6][29], + /*<>*/ _f6_= + /*<>*/ render(suffix,scrollbar_bg), + /*<>*/ _f7_= + /*<>*/ render(handle,scrollbar_fg), + /*<>*/ _f8_= + /*<>*/ render(prefix,scrollbar_bg), + /*<>*/ _f9_= + /*<>*/ caml_call2(symbol,_f8_,_f7_), + /*<>*/ _f__= + /*<>*/ caml_call2(symbol,_f9_,_f6_); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][18],mouse_handler,_f__) /*<>*/ } + /*<>*/ function scrollbox(t) + { /*<>*/ var + /*<>*/ _fv_=Lwd[10], + /*<>*/ state_var= + /*<>*/ caml_call1(_fv_,_fo_); + /*<>*/ function update_size(w,h) + { /*<>*/ var + /*<>*/ _fY_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fY_,state_var), + /*<>*/ _fZ_=state[1] != w?1:0, + /*<>*/ _f0_=_fZ_ || (state[2] != h?1:0); + /*<>*/ return _f0_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,w,h,state[3],state[4]]) - :_fZ_ /*<>*/ } - /*<>*/ function measure_size(body) - { /*<>*/ var - /*<>*/ _fS_=0, - /*<>*/ _fT_=0, - /*<>*/ _fU_=0, - /*<>*/ _fV_=Nottui[6][25], - /*<>*/ _fW_= - /*<>*/ caml_call8 - (_fV_,_fr_,_fq_,_fp_,_fo_,_fU_,_fT_,_fS_,body); - /*<>*/ return /*<>*/ caml_call2 - (Nottui[6][21],update_size,_fW_) /*<>*/ } - /*<>*/ function compose_bars(body,state) - { /*<>*/ var - /*<>*/ _fy_=Nottui[6][11], - /*<>*/ bh= - /*<>*/ caml_call1(_fy_,body), - /*<>*/ _fz_=Nottui[6][9], - /*<>*/ bw= - /*<>*/ caml_call1(_fz_,body), - /*<>*/ hvisible=state[1] < bw?1:0, - /*<>*/ vvisible=state[2] < bh?1:0, - /*<>*/ hvisible$0= + :_f0_ /*<>*/ } + /*<>*/ function measure_size(body) + { /*<>*/ var + /*<>*/ _fT_=0, + /*<>*/ _fU_=0, + /*<>*/ _fV_=0, + /*<>*/ _fW_=Nottui[6][25], + /*<>*/ _fX_= + /*<>*/ caml_call8 + (_fW_,_fs_,_fr_,_fq_,_fp_,_fV_,_fU_,_fT_,body); + /*<>*/ return /*<>*/ caml_call2 + (Nottui[6][21],update_size,_fX_) /*<>*/ } + /*<>*/ function compose_bars(body,state) + { /*<>*/ var + /*<>*/ _fz_=Nottui[6][11], + /*<>*/ bh= + /*<>*/ caml_call1(_fz_,body), + /*<>*/ _fA_=Nottui[6][9], + /*<>*/ bw= + /*<>*/ caml_call1(_fA_,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), - /*<>*/ _fA_=state[1], - /*<>*/ state_w= - /*<>*/ decr_if(_fA_,vvisible$0), - /*<>*/ _fB_=state[2], - /*<>*/ state_h= - /*<>*/ decr_if(_fB_,hvisible$0), - /*<>*/ _fC_=state[3], - /*<>*/ state_x= - /*<>*/ adjust_offset(state_w,bw,_fC_), - /*<>*/ _fD_=state[4], - /*<>*/ state_y= - /*<>*/ adjust_offset(state_h,bh,_fD_); - /*<>*/ function crop(b) - { /*<>*/ var - /*<>*/ _fQ_=Nottui[6][20], - /*<>*/ _fR_= - /*<>*/ caml_call3(_fQ_,state_x,state_y,b); - /*<>*/ return /*<>*/ caml_call8 + /*<>*/ _fB_=state[1], + /*<>*/ state_w= + /*<>*/ decr_if(_fB_,vvisible$0), + /*<>*/ _fC_=state[2], + /*<>*/ state_h= + /*<>*/ decr_if(_fC_,hvisible$0), + /*<>*/ _fD_=state[3], + /*<>*/ state_x= + /*<>*/ adjust_offset(state_w,bw,_fD_), + /*<>*/ _fE_=state[4], + /*<>*/ state_y= + /*<>*/ adjust_offset(state_h,bh,_fE_); + /*<>*/ function crop(b) + { /*<>*/ var + /*<>*/ _fR_=Nottui[6][20], + /*<>*/ _fS_= + /*<>*/ caml_call3(_fR_,state_x,state_y,b); + /*<>*/ return /*<>*/ caml_call8 (Nottui[6][25], + _fu_, _ft_, - _fs_, [0,scrollbar_width], [0,scrollbar_width], 0, 0, 0, - _fR_) /*<>*/ } - /*<>*/ function set_vscroll(y) - { /*<>*/ var - /*<>*/ _fO_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fO_,state_var), - /*<>*/ _fP_=state[4] != y?1:0; - /*<>*/ return _fP_ - ? /*<>*/ caml_call2 + _fS_) /*<>*/ } + /*<>*/ function set_vscroll(y) + { /*<>*/ var + /*<>*/ _fP_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fP_,state_var), + /*<>*/ _fQ_=state[4] != y?1:0; + /*<>*/ return _fQ_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,state[1],state[2],state[3],y]) - :_fP_ /*<>*/ } - /*<>*/ function set_hscroll(x) - { /*<>*/ var - /*<>*/ _fM_=Lwd[13], - /*<>*/ state= - /*<>*/ caml_call1(_fM_,state_var), - /*<>*/ _fN_=state[3] != x?1:0; - /*<>*/ return _fN_ - ? /*<>*/ caml_call2 + :_fQ_ /*<>*/ } + /*<>*/ function set_hscroll(x) + { /*<>*/ var + /*<>*/ _fN_=Lwd[13], + /*<>*/ state= + /*<>*/ caml_call1(_fN_,state_var), + /*<>*/ _fO_=state[3] != x?1:0; + /*<>*/ return _fO_ + ? /*<>*/ caml_call2 (Lwd[12],state_var,[254,state[1],state[2],x,state[4]]) - :_fN_ /*<>*/ } - /*<>*/ var - /*<>*/ symbol=Nottui[6][29], - /*<>*/ symbol$0=Nottui[6][28]; - /*<>*/ if(hvisible$0) + :_fO_ /*<>*/ } + /*<>*/ var + /*<>*/ symbol=Nottui[6][29], + /*<>*/ symbol$0=Nottui[6][28]; + /*<>*/ if(hvisible$0) {if(vvisible$0) - { /*<>*/ var - /*<>*/ _fE_=Nottui[6][17], - /*<>*/ _fF_= - /*<>*/ caml_call2 - (_fE_,scrollbar_width,scrollbar_width), - /*<>*/ _fG_= - /*<>*/ hscrollbar + { /*<>*/ var + /*<>*/ _fF_=Nottui[6][17], + /*<>*/ _fG_= + /*<>*/ caml_call2 + (_fF_,scrollbar_width,scrollbar_width), + /*<>*/ _fH_= + /*<>*/ hscrollbar (state_w,bw,state_x,set_hscroll), - /*<>*/ _fH_= - /*<>*/ caml_call2(symbol$0,_fG_,_fF_), - /*<>*/ _fI_= - /*<>*/ vscrollbar + /*<>*/ _fI_= + /*<>*/ caml_call2(symbol$0,_fH_,_fG_), + /*<>*/ _fJ_= + /*<>*/ vscrollbar (state_h,bh,state_y,set_vscroll), - /*<>*/ _fJ_= - /*<>*/ crop(body); - /*<>*/ return /*<>*/ caml_call2 + /*<>*/ _fK_= + /*<>*/ crop(body); + /*<>*/ return /*<>*/ caml_call2 (symbol, - /*<>*/ caml_call2(symbol$0,_fJ_,_fI_), - _fH_)} - /*<>*/ /*<>*/ var - _fK_= - /*<>*/ hscrollbar - (state_w,bw,state_x,set_hscroll); - /*<>*/ return /*<>*/ caml_call2 - (symbol, /*<>*/ crop(body),_fK_)} - if(vvisible$0) - { /*<>*/ /*<>*/ var + /*<>*/ caml_call2(symbol$0,_fK_,_fJ_), + _fI_)} + /*<>*/ /*<>*/ var _fL_= - /*<>*/ vscrollbar + /*<>*/ hscrollbar + (state_w,bw,state_x,set_hscroll); + /*<>*/ return /*<>*/ caml_call2 + (symbol, /*<>*/ crop(body),_fL_)} + if(vvisible$0) + { /*<>*/ /*<>*/ var + _fM_= + /*<>*/ vscrollbar (state_h,bh,state_y,set_vscroll); - /*<>*/ return /*<>*/ caml_call2 - (symbol$0, /*<>*/ crop(body),_fL_)} - /*<>*/ return body /*<>*/ } - /*<>*/ function _fv_(ui,size) - { /*<>*/ return /*<>*/ measure_size - ( /*<>*/ compose_bars(ui,size)) /*<>*/ } - /*<>*/ var - /*<>*/ _fw_=Lwd[11], - /*<>*/ _fx_= - /*<>*/ caml_call1(_fw_,state_var); - /*<>*/ return /*<>*/ caml_call3 - (Lwd[4],t,_fx_,_fv_) /*<>*/ } - /*<>*/ var - /*<>*/ Widgets= + /*<>*/ return /*<>*/ caml_call2 + (symbol$0, /*<>*/ crop(body),_fM_)} + /*<>*/ return body /*<>*/ } + /*<>*/ function _fw_(ui,size) + { /*<>*/ return /*<>*/ measure_size + ( /*<>*/ compose_bars(ui,size)) /*<>*/ } + /*<>*/ var + /*<>*/ _fx_=Lwd[11], + /*<>*/ _fy_= + /*<>*/ caml_call1(_fx_,state_var); + /*<>*/ return /*<>*/ caml_call3 + (Lwd[4],t,_fy_,_fw_) /*<>*/ } + /*<>*/ var + /*<>*/ Widgets= [0, string$0, int$0, @@ -573647,12 +573946,15 @@ row_of_cursor, line_of_cursor, cursor_move, - edit_area_of_string, + line_table_of_string, focus_val, find_focus, focus_handle_compare, focused_row_of_table, + to_lwt_lwd, + lwt_lwd_string, edit_area, + node_edit_area, tree_nav, tabs, unfoldable, @@ -573677,7 +573979,7 @@ hscrollbar, vscrollbar, scrollbox], - /*<>*/ Dune_exe_Human= + /*<>*/ Dune_exe_Human= [0, Logs_reporter, Git_af, @@ -573696,9 +573998,9 @@ Nottui, Nottui_lwt, Widgets]; - /*<>*/ /*<>*/ runtime.caml_register_global - (491,Dune_exe_Human,"Dune__exe__Human"); - /*<>*/ return /*<>*/ } + /*<>*/ /*<>*/ runtime.caml_register_global + (500,Dune_exe_Human,"Dune__exe__Human"); + /*<>*/ return /*<>*/ } (globalThis)); @@ -574208,11 +574510,11 @@ _ai_, _ah_) /*<>*/ } /*<>*/ var - /*<>*/ _J_=0, + /*<>*/ _J_=[0,test_tree,0], /*<>*/ _K_=0, - /*<>*/ _L_=Dune_exe_Human[17][35], + /*<>*/ _L_=Dune_exe_Human[17][38], /*<>*/ _M_= - /*<>*/ caml_call3(_L_,_K_,test_tree,_J_); + /*<>*/ caml_call2(_L_,_K_,_J_); /*<>*/ return /*<>*/ caml_call2 (Lwt[33][1],_M_,_I_) /*<>*/ } /*<>*/ var @@ -574249,4 +574551,4 @@ (globalThis)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJib290X2pzLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2J5dGVzX2JvdW5kX2Vycm9yIiwiY2FtbF9ieXRlc191bnNhZmVfZ2V0IiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2NyZWF0ZV9ieXRlcyIsImNhbWxfbWxfYnl0ZXNfbGVuZ3RoIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiQXJyYXkiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsImNhbWxfYmxpdF9zdHJpbmciLCJlIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsIm9rIiwiZmlsZSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmlsZSIsImZkIiwicmVxdWlyZSIsImVyciIsImJ1Zl9vZmZzZXQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJvIiwianNfc3RhdHMiLCJ0b19kaXIiLCJ0YXJnZXQiLCJsaW5rIiwiZmlsZV9raW5kIiwiY2FtbF9nZXRfcm9vdCIsImNhbWxfZmFpbHdpdGgiLCJjYW1sX3Jvb3QiLCJqc29vX21vdW50X3BvaW50IiwicmVzb2x2ZV9mc19kZXZpY2UiLCJjYW1sX3N5c19pc19kaXJlY3RvcnkiLCJjYW1sX3JhaXNlX25vdF9mb3VuZCIsImNhbWxfc3lzX2dldGVudiIsImciLCJ1bmRlZmluZWQiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsIk1sT2JqZWN0VGFibGUiLCJOYWl2ZUxvb2t1cCIsIm9ianMiLCJjYW1sX3N5c19yZW5hbWUiLCJvX3Jvb3QiLCJuX3Jvb3QiLCJjYW1sX2xvZzEwX2Zsb2F0IiwidW5peF91bmxpbmsiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwidW5peF9ybWRpciIsImNhbWxfbWxfcmVmaWxsX2lucHV0IiwiY2hhbiIsInN0ciIsInN0cl9sZW4iLCJjYW1sX21sX2NoYW5uZWxzIiwiY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0IiwiY2hhbmlkIiwiY2FtbF9hcnJheV9ib3VuZF9lcnJvciIsImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lIiwiY2FtbF9nY19taW5vciIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfaW50X2NvbXBhcmUiLCJiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nIiwiYmExIiwiYmExX29mZiIsImJhMiIsImJhMl9vZmYiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJ0bXAiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXkiLCJ1bml4X2dldHRpbWVvZmRheSIsIkRhdGUiLCJjYW1sX211bCIsImNhbWxfaGFzaF9taXhfaW50IiwibnVtX2RpZ2l0c19uYXQiLCJuYXQiLCJjYW1sX2hhc2hfbmF0IiwiY2FtbF9jYWxsX2dlbiIsImFyZ3NMZW4iLCJleHRyYV9hcmdzIiwiYXJndW1lbnRzIiwibmFyZ3MiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX2djX2NvdW50ZXJzIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsInVuaXhfaGFzX3N5bWxpbmsiLCJ1bml0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsInBvczIiLCJzbGljZSIsImJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlcyIsInNyYyIsInNyY19vZmYiLCJkc3QiLCJkc3Rfb2ZmIiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsIkluZmluaXR5IiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJpbnQzMmEiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImV4cCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJkYXRhIiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiTnVtYmVyIiwiY2FtbF9ieXRlc19jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsInoiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0IiwiYXJyIiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImNhcnJ5IiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJib3Jyb3ciLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJjYW1sX2NvbXBhcmUiLCJjYW1sX2ZyZXNoX29vX2lkIiwiY2FtbF9pbnQ2NF90b19mbG9hdCIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwiY2FtbF9vYmpfYmxvY2siLCJjYW1sX2dyX2NsZWFyX2dyYXBoIiwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciIsImJzIiwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCIsIl91bml0IiwibHhvcl9kaWdpdF9uYXQiLCJjYW1sX29ial9hZGRfb2Zmc2V0IiwiY2FtbF9maW5hbF9yZWxlYXNlIiwiY2FtbF9qc190b19hcnJheSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQxNiIsImkxNiIsImNhbWxfc3RyaW5nX3NldDE2IiwiY2FtbF9ieXRlc19zZXQ2NCIsImk2NCIsImNhbWxfaW50NjRfYnN3YXAiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2ZpbGxfc3RyaW5nIiwiY2FtbF9nY19tYWpvciIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYXNlIiwiYmFja3RyayIsInVuaXhfZ2V0dWlkIiwiY2FtbF9zeXNfZmlsZV9leGlzdHMiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9hcnJheV9zdWIiLCJjYW1sX2J5dGVzX2VxdWFsIiwiY2FtbF9ncl9zaXplX3giLCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIiwib3NfdHlwZSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4iLCJjYW1sX2Nvc2hfZmxvYXQiLCJjYW1sX2VwaGVfa2V5X29mZnNldCIsImNhbWxfd2Vha19jaGVjayIsImNhbWxfZXBoZV9jaGVja19rZXkiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwiY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIiwiY2FtbF9sZXNzZXF1YWwiLCJjYW1sX2Fjb3NoX2Zsb2F0IiwiY2FtbF9tbF9mbHVzaCIsIm91dHB1dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF93ZWFrX2dldCIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsIndpbl9jbGVhbnVwIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9zeXNfaXNhdHR5IiwiX2NoYW4iLCJpc19kaWdpdF96ZXJvIiwidW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nIiwiY2FtbF9qc19zZXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwidW5peF9sb2NhbHRpbWUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJjYW1sX3dlYWtfY3JlYXRlIiwiY2FtbF9lcGhlX2NyZWF0ZSIsImNhbWxfanNfdG9fYnl0ZV9zdHJpbmciLCJ1bml4X21rdGltZSIsInRtIiwidG0yIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9oeXBvdF9mbG9hdCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJieXRlczIiLCJiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzIiwiY2FtbF9lcmZjX2Zsb2F0IiwiY2FtbF9ncl9maWxsX3BvbHkiLCJhciIsImNhbWxfZ2NfcXVpY2tfc3RhdCIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzIiwibnRoX2RpZ2l0X25hdCIsImNhbWxfYXJyYXlfYmxpdCIsImNhbWxfZmxvYXRfb2Zfc3RyaW5nIiwibTMiLCJtYW50aXNzYSIsInBhcnNlSW50IiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIiwiY2FtbF9saXN0X3RvX2pzX2FycmF5IiwiY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUiLCJjYW1sX291dHB1dF92YWwiLCJXcml0ZXIiLCJ2YWx1ZSIsImZsYWdzIiwibm9fc2hhcmluZyIsImNsb3N1cmVzIiwiaW50ZXJuX29ial90YWJsZSIsIm1lbW8iLCJleGlzdGluZ19vZmZzZXQiLCJleHRlcm5fcmVjIiwib3BzIiwic3pfMzJfNjQiLCJoZWFkZXJfcG9zIiwib2xkX3BvcyIsInR5cGVfb2ZfdiIsImNhbWxfc3RyaW5nX29mX2FycmF5IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIiwiY2FtbF9yYWlzZV9ub3RfYV9kaXIiLCJjYW1sX3N5c19zeXN0ZW1fY29tbWFuZCIsImNtZCIsInVuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbiIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsInVuaXhfbHN0YXQiLCJ1bml4X2xzdGF0XzY0IiwianNfcHJpbnRfc3Rkb3V0IiwiY2FtbF9jb3B5c2lnbl9mbG9hdCIsImNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSIsImNhbWxfbWQ1X2J5dGVzIiwiYWRkIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsIm1kNSIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9pbnQ2NF9hZGQiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImJpdHMiLCJvbmUiLCJjYW1sX2dyX3NpemVfeSIsImNhbWxfbWxfcG9zX2luIiwiY2FtbF9pbnQ2NF9hbmQiLCJjYW1sX3N5c19jb25zdF93b3JkX3NpemUiLCJjYW1sX3N0ZF9vdXRwdXQiLCJzbGVuIiwianNfcHJpbnRfc3RkZXJyIiwiY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCIsImlkeCIsImluZm8iLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwiTWxTdHJpbmdSZWFkZXIiLCJjYW1sX2Zsb2F0X29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciIsIl9tYWdpYyIsIl9ibG9ja19sZW4iLCJudW1fb2JqZWN0cyIsIl9zaXplXzMyIiwiX3NpemVfNjQiLCJvYmpfY291bnRlciIsImludGVybl9yZWMiLCJoZWFkZXIiLCJleHBlY3RlZF9zaXplIiwiY2FtbF9zdHJpbmdfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJwcmVmaXhfbWF0Y2giLCJvcCIsInNhcmciLCJ1YXJnIiwiZ3JvdXAiLCJFcnJvciIsInJlX3NlYXJjaF9iYWNrd2FyZCIsImNhbWxfanNfZnJvbV9zdHJpbmciLCJjYW1sX2JhX3N1YiIsImNoYW5nZWRfZGltIiwibXVsIiwibmV3X2RpbXMiLCJuZXdfZGF0YSIsImNhbWxfZ2NfZnVsbF9tYWpvciIsImNhbWxfYnl0ZXNfc2V0MzIiLCJpMzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsInN0YXJ0IiwiY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24iLCJoYW5kbGVyIiwiYXRfZXhpdCIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfZXBoZV9jaGVja19kYXRhIiwiY2FtbF9ieXRlc19nZXQxNiIsImNhbWxfb2JqX21ha2VfZm9yd2FyZCIsImNhbWxfanNfZnJvbV9ib29sIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lIiwiY2FtbF9leHAyX2Zsb2F0IiwiY2FtbF9ncl9jbG9zZV9ncmFwaCIsImNhbWxfY3JlYXRlX3N0cmluZyIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfbWQ1X2NoYW4iLCJjaGFuX2xlbiIsImNhbWxfb2JqX2R1cCIsImNhbWxfd2Vha19nZXRfY29weSIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsInN0cmluZyIsImpzc3RyaW5nIiwiaWQiLCJjYW1sX21sX291dHB1dCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImwxIiwibDIiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsImNhbWxfanNfZXhwciIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyIsImNhbWxfZXZlbnRsb2dfcmVzdW1lIiwiY2FtbF9oYXNoX3VuaXZfcGFyYW0iLCJjb3VudCIsImxpbWl0Iiwib2JqIiwiaGFzaF9hY2N1IiwiaGFzaF9hdXgiLCJqc2J5dGVzIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJlbmQiLCJjYW1sX3B1cmVfanNfZXhwciIsImJsaXRfbmF0IiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIiwiY2FtbF9wYXJzZV9kaWdpdCIsImNhbWxfaW50NjRfb2Zfc3RyaW5nIiwiYmFzZTY0IiwidGhyZXNob2xkIiwiY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmciLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9tbF9pbnB1dF9jaGFyIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNhbWxfYmFfZ2V0XzIiLCJ3aW5faGFuZGxlX2ZkIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsIndpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbCIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsImNhbWxfZ3JfYXJjX2F1eCIsImN0eCIsImN4IiwiY3kiLCJyeSIsInJ4Iiwicm90IiwieFBvcyIsInlQb3MiLCJ4UG9zX3ByZXYiLCJ5UG9zX3ByZXYiLCJzcGFjZSIsImRlbHRhIiwiY2FtbF9ncl9maWxsX2FyYyIsImNhbWxfYmFfc2xpY2UiLCJudW1faW5kcyIsInN1Yl9kaW1zIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsImdldDMyIiwiY2FtbF9pbnB1dF92YWx1ZSIsImNhbWxfYmFfa2luZCIsImNhbWxfanNfZnVuX2NhbGwiLCJjYW1sX2djX21ham9yX3NsaWNlIiwid29yayIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsInVuaXhfZ210aW1lIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsInVuaXhfdGltZSIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJyZV9zdHJpbmdfbWF0Y2giLCJCaWdTdHJpbmdSZWFkZXIiLCJjYW1sX2dyX2R1bXBfaW1hZ2UiLCJjYW1sX2JhX2dldF9nZW5lcmljIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmciLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9maWxsX2JpZ3N0cmluZyIsImJ1Zl9vZmYiLCJidWZfbGVuIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfanNfdG9fYm9vbCIsImNhbWxfZ3JfY3JlYXRlX2ltYWdlIiwiY2FtbF9lcGhlX2dldF9rZXlfY29weSIsImNhbWxfbGVzc3RoYW4iLCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IiwiYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZyIsImJhX29mZiIsInN0cl9vZmYiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJiaWdzdHJpbmdhZl9tZW1jaHIiLCJjaHIiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImZzIiwiY2hhbm5lbCIsImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSIsImNhbWxfcm91bmRfZmxvYXQiLCJ1bml4X3N0YXQiLCJ1bml4X3N0YXRfNjQiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IiwiYXJpdHkiLCJjYW1sX2djX21pbm9yX3dvcmRzIiwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2siLCJsYW5kX2RpZ2l0X25hdCIsImNhbWxfaW50NjRfbW9kIiwidW5peF9yZWFkbGluayIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwid2luX3N0YXJ0dXAiLCJjYW1sX2JhX3NldF8zIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmciLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImRpZ2l0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJjYW1sX3N0cmluZ19zZXQ2NCIsImNhbWxfZ3Jfc3RhdGVfY3JlYXRlIiwiY2FudmFzIiwiY29udGV4dCIsImNhbWxfanNfd3JhcF9jYWxsYmFjayIsImNhbWxfZ3JfZHJhd19hcmMiLCJjYW1sX2JhX21hcF9maWxlIiwidmZkIiwic2hhcmVkIiwiY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZSIsImFyZ24iLCJ1bml4X3N5bWxpbmsiLCJzcmNfcm9vdCIsImRzdF9yb290IiwiY2FtbF9iYV9jcmVhdGVfZnJvbSIsImRhdGExIiwiZGF0YTIiLCJqc3R5cCIsImNhbWxfdGFuaF9mbG9hdCIsImNhbWxfZ3JfZHJhd19zdHIiLCJkeCIsImNhbWxfZ3JfZHJhd19zdHJpbmciLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmciLCJjYW1sX21sX3Bvc19pbl82NCIsImNhbWxfZ3JfZHJhd19pbWFnZSIsImltYWdlIiwiY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUiLCJfY2hhbm5lbCIsImNhbWxfc3RyaW5nX3NldCIsImNhbWxfc3lzX3JtZGlyIiwiY2FtbF9tbF9wb3Nfb3V0IiwiY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCIsImNhbWxfYnl0ZXNfbm90ZXF1YWwiLCJjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyIsImNhbWxfanNfb2JqZWN0IiwiY2FtbF9iYV9jcmVhdGUiLCJkaW1zX21sIiwiY2FtbF93ZWFrX2JsaXQiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfYnN3YXAxNiIsImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlIiwiY2FtbF9maW5hbF9yZWdpc3RlciIsImNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZyIsImFsaWdubWVudCIsImNhbWxfZ3JfZHJhd19yZWN0IiwiY2FtbF9zdHJpbmdfZ2V0MTYiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJ1bml4X2dldHB3dWlkIiwiY2FtbF9jb21wYXJlX2JpZ3N0cmluZyIsImJ1ZjEiLCJidWYxX29mZiIsImJ1ZjIiLCJidWYyX29mZiIsImNhbWxfaGFzaF9taXhfc3RyaW5nIiwiY2FtbF9oYXNoIiwic2VlZCIsInF1ZXVlIiwicmQiLCJ3ciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibmVnIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsInVuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJjYW1sX2FycmF5X2NvbmNhdCIsImNhbWxfZ3Jfb3Blbl9ncmFwaCIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9lcGhlX3NldF9kYXRhIiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nIiwiY2FtbF9pbnQ2NF9vciIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwiLCJzZXRfZGlnaXRfbmF0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfc2V0MzIiLCJjYW1sX3BhcnNlX2VuZ2luZSIsInRhYmxlcyIsImVudiIsIkVSUkNPREUiLCJsb29wIiwidGVzdHNoaWZ0Iiwic2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwibjEiLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsInplcm8kNCIsIm9uZSQ0IiwiaSIsImVyYXNlX3JlbCIsInJlc3QiLCJyZXN0JDAiLCJyZXN0JDEiLCJyZXN0JDIiLCJyZXN0JDMiLCJyZXN0JDQiLCJyZXN0JDUiLCJyZXN0JDYiLCJyZXN0JDciLCJ0eSIsInJlc3QkOCIsInR5MSIsInJlc3QkOSIsInJlc3QkMTAiLCJyZXN0JDExIiwicmVzdCQxMiIsInJlc3QkMTMiLCJjb25jYXRfZm10dHkiLCJmbXR0eTEiLCJmbXR0eTIiLCJ0eTIiLCJjb25jYXRfZm10IiwiZm10MSIsImZtdDIiLCJwYWQiLCJwYWQkMCIsInByZWMiLCJwYWQkMSIsImljb252IiwicHJlYyQwIiwicGFkJDIiLCJpY29udiQwIiwicHJlYyQxIiwicGFkJDMiLCJpY29udiQxIiwicHJlYyQyIiwicGFkJDQiLCJpY29udiQyIiwicHJlYyQzIiwicGFkJDUiLCJmY29udiIsInBhZCQ2Iiwic3RyIiwiY2hyIiwiZm10dHkiLCJwYWQkNyIsImZtdHR5JDAiLCJwYWQkOCIsInJlc3QkMTQiLCJyZXN0JDE1IiwicmVzdCQxNiIsImZtdGluZ19saXQiLCJyZXN0JDE3IiwiZm10aW5nX2dlbiIsInJlc3QkMTgiLCJyZXN0JDE5IiwiY2hhcl9zZXQiLCJ3aWR0aF9vcHQiLCJyZXN0JDIwIiwiY291bnRlciIsInJlc3QkMjEiLCJyZXN0JDIyIiwiaWduIiwicmVzdCQyMyIsImYiLCJhcml0eSIsInYiLCJyIiwiY3VyIiwic2VlbiIsIm4iLCJmYWlsd2l0aCIsInMiLCJpbnZhbGlkX2FyZyIsIm1pbiIsIngiLCJ5IiwibWF4IiwiYWJzIiwibG5vdCIsIm1heF9pbnQiLCJtaW5faW50IiwiaW5maW5pdHkiLCJuZWdfaW5maW5pdHkiLCJuYW4iLCJtYXhfZmxvYXQiLCJtaW5fZmxvYXQiLCJlcHNpbG9uIiwiczEiLCJzMiIsImwxIiwibDIiLCJjaGFyX29mX2ludCIsInN0cmluZ19vZl9ib29sIiwiYiIsImJvb2xfb2Zfc3RyaW5nIiwiYm9vbF9vZl9zdHJpbmdfb3B0Iiwic3RyaW5nX29mX2ludCIsImludF9vZl9zdHJpbmdfb3B0IiwidmFsaWRfZmxvYXRfbGV4ZW0iLCJsIiwibG9vcCIsImkkMCIsImkkMSIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInNjYW4iLCJhY2N1IiwiYWNjdSQwIiwicmVzIiwiYmVnIiwibGVuJDIiLCJhY2N1JDEiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvX29mX3JhdyIsImluZm8iLCJzdGFydF9lbnYiLCJvYmoiLCJvZl92YWwiLCJzbG90IiwiaWQiLCJleHRlbnNpb25fY29uc3RydWN0b3IiLCJleHRlbnNpb25fbmFtZSIsImV4dGVuc2lvbl9pZCIsIm1heF9lcGhlX2xlbmd0aCIsImNyZWF0ZSIsImxlbmd0aCIsInJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IiwibyIsIm1zZyIsImdldF9rZXkiLCJnZXRfa2V5X2NvcHkiLCJzZXRfa2V5IiwidW5zZXRfa2V5IiwiY2hlY2tfa2V5IiwiYmxpdF9rZXkiLCJvMSIsIm8yIiwicmFpc2VfdW5kZWZpbmVkIiwiZm9yY2VfbGF6eV9ibG9jayIsImJsayIsImNsb3N1cmUiLCJyZXN1bHQiLCJmb3JjZV92YWxfbGF6eV9ibG9jayIsImZvcmNlIiwibHp2IiwidCIsImZvcmNlX3ZhbCIsInRvX2xhenkiLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcCQwIiwibWFwX3ZhbCIsImVtcHR5IiwicmV0dXJuJDAiLCJjb25zIiwibmV4dCIsImFwcGVuZCQwIiwic2VxMSIsInNlcTIiLCJtYXAkMSIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsInVuZm9sZCIsInUiLCJ1JDAiLCJpc19lbXB0eSIsInhzIiwidW5jb25zIiwieHMkMCIsImxlbmd0aF9hdXgiLCJ4cyQxIiwibGVuZ3RoJDAiLCJpdGVyaV9hdXgiLCJpdGVyaSIsImZvbGRfbGVmdGlfYXV4IiwiZm9sZF9sZWZ0aSIsImZvcl9hbGwiLCJwIiwiZXhpc3RzIiwiZmluZCIsImZpbmRfbWFwIiwiaXRlcjIiLCJ5cyIsInlzJDAiLCJ5cyQxIiwiZm9sZF9sZWZ0MiIsImZvcl9hbGwyIiwiZXhpc3RzMiIsImVxdWFsJDAiLCJlcSIsImNvbXBhcmUkMCIsImNtcCIsImluaXRfYXV4IiwiaiIsImluaXQiLCJyZXBlYXQiLCJmb3JldmVyIiwiY3ljbGVfbm9uZW1wdHkiLCJjeWNsZSIsIml0ZXJhdGUxIiwiaXRlcmF0ZSIsIm1hcGlfYXV4IiwibWFwaSIsInRhaWxfc2NhbiIsInMkMCIsInRha2VfYXV4IiwidGFrZSIsImZvcmNlX2Ryb3AiLCJuJDAiLCJuJDEiLCJkcm9wIiwidGFrZV93aGlsZSIsImRyb3Bfd2hpbGUiLCJub2RlIiwiZ3JvdXAiLCJmcm9tX2xhenkiLCJtZW1vaXplIiwiZmFpbHVyZSIsIm9uY2UiLCJhY3Rpb24iLCJtZW1vaXplJDAiLCJvbmNlJDAiLCJ6aXAiLCJtYXAyIiwiaW50ZXJsZWF2ZSIsInNvcnRlZF9tZXJnZTFyIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZTFsIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsImRpYWdvbmFscyIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwiZXJyX25vdF9zdiIsImVycl9ub3RfbGF0aW4xIiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGhfYXV4JDAiLCJwYXJhbSQxIiwibGVuZ3RoJDEiLCJjb25zJDAiLCJudGgiLCJudGhfYXV4IiwibCQwIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwiaW5pdF90YWlscmVjX2F1eCIsImluaXRfYXV4JDAiLCJybWFwX2YiLCJhMiIsImExIiwicm1hcDJfZiIsInBhaXIiLCJhdXgiLCJ4JDAiLCJwYXJ0IiwicnkiLCJyeCIsInQyIiwiaDIiLCJ0MSIsImgxIiwicmV2X21lcmdlIiwiYWNjdSQyIiwicmV2X21lcmdlX3JldiIsInJldl9zb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInNvcnQiLCJ0bCQwIiwiYWNjdSQzIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwic3Jjb2ZmIiwiZHN0b2ZmIiwic3Jjb2ZmJDAiLCJjcHlsZW4iLCJvZnMxIiwib2ZzMiIsImVuc3VyZV9nZSIsInN1bV9sZW5ndGhzIiwic2VwbGVuIiwidW5zYWZlX2JsaXRzIiwiZHN0Iiwic2VwIiwiaXNfc3BhY2UiLCJhcHBseTEiLCJwcmVmaXgiLCJsZW5fcyIsImxlbl9wcmUiLCJzdWZmaXgiLCJsZW5fc3VmIiwiZGlmZiIsImluZGV4X3JlYyIsImxpbSIsImluZGV4X3JlY19vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4X3JlY19vcHQiLCJyZXNpemUiLCJuZXdfbGVuIiwibmV3X2J1ZiIsImdldCQxIiwiZ2V0JDIiLCJzZXQkMCIsInNldCQxIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8yIiwiYjAiLCJiMSIsInV0Zl84X3VjaGFyXzMiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImdldCIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0IiwibGFzdCQwIiwibGFzdCQxIiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJ1JDEiLCJsbyIsImVuc3VyZV9nZSQwIiwic3VtX2xlbmd0aHMkMCIsInVuc2FmZV9ibGl0cyQwIiwiaXNfc3BhY2UkMCIsImVzY2FwZV9pZl9uZWVkZWQiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInRvbGlzdCIsInJlcyQwIiwicmVzJDEiLCJsaXN0X2xlbmd0aCIsImZpbGwiLCJpbnB1dF9hcnJheSIsImVsdCIsIm91dHB1dF9hcnJheSIsImVsdCQwIiwiYWNjJDIiLCJhMCIsImJpIiwiYWkiLCJuYSIsIm5iIiwibWF4c29uIiwiaTMxIiwidHJpY2tsZWRvd24iLCJ0cmlja2xlIiwiYnViYmxlZG93biIsImJ1YmJsZSIsInRyaWNrbGV1cCIsImZhdGhlciIsImUkMCIsIm1lcmdlIiwic3JjMW9mcyIsInNyYzFsZW4iLCJzcmMyIiwic3JjMm9mcyIsInNyYzJsZW4iLCJkc3RvZnMiLCJzcmMxciIsInNyYzJyIiwiaTEiLCJpMiIsImkxJDAiLCJzMSQwIiwiaTIkMCIsInMyJDAiLCJkJDAiLCJpMiQxIiwiZCQxIiwiczIkMSIsImkxJDEiLCJkJDIiLCJzMSQxIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsIm9mX3Jldl9saXN0IiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsImlzX2Zpbml0ZSIsImlzX2luZmluaXRlIiwiaXNfbmFuIiwicGkiLCJpc19pbnRlZ2VyIiwic3VjYyQwIiwicHJlZCQwIiwiZXF1YWwkMTEiLCJtaW4kMiIsIm1heCQyIiwibWluX21heCIsIm1pbl9udW0iLCJtYXhfbnVtIiwibWluX21heF9udW0iLCJoYXNoJDAiLCJ1bnNhZmVfZmlsbCIsImNoZWNrIiwibWFrZSQyIiwiaW5pdCQ0IiwiYXBwZW5kJDIiLCJlbnN1cmVfZ2UkMSIsInN1bV9sZW5ndGhzJDEiLCJjb25jYXQkMyIsImhsZW4iLCJzdWIkMiIsImNvcHkkMiIsImZpbGwkMSIsImJsaXQkMiIsInNyYyIsInNvZnMiLCJkb2ZzIiwidG9fbGlzdCQyIiwib2ZfbGlzdCQwIiwiaCIsIml0ZXIkNiIsIml0ZXIyJDIiLCJtYXAkOCIsIm1hcDIkMiIsIml0ZXJpJDQiLCJtYXBpJDQiLCJmb2xkX2xlZnQkNCIsImZvbGRfcmlnaHQkMyIsImV4aXN0cyQ0IiwiZm9yX2FsbCQ0IiwibWVtJDEiLCJtZW1faWVlZSIsInNvcnQkMCIsInN0YWJsZV9zb3J0IiwidG9fc2VxJDUiLCJ0b19zZXFpJDIiLCJvZl9yZXZfbGlzdCQwIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwibGV4X3JlZmlsbCIsInJlYWRfZnVuIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2Z1bmN0aW9uIiwib3B0Iiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImNtZCIsImFyZyIsImNtZCQwIiwiYXJnJDAiLCJhcmckMSIsImFyZyQyIiwiY21kJDEiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImV4biIsImN1cnJfY2hhciIsInRvayIsInBlZWtfdmFsIiwic3ltYm9sX3N0YXJ0X3BvcyIsInN0IiwiZW4iLCJzeW1ib2xfZW5kX3BvcyIsInJoc19zdGFydF9wb3MiLCJyaHNfZW5kX3BvcyIsInN5bWJvbF9zdGFydCIsInN5bWJvbF9lbmQiLCJyaHNfc3RhcnQiLCJyaHNfZW5kIiwiaXNfY3VycmVudF9sb29rYWhlYWQiLCJwYXJzZV9lcnJvciIsImhlaWdodCIsImhsIiwiaCQwIiwiaHIiLCJiYWwiLCJsciIsImx2IiwibGwiLCJscnIiLCJscnYiLCJscmwiLCJyciIsInJ2IiwicmwiLCJybHIiLCJybHYiLCJybGwiLCJhZGQiLCJzaW5nbGV0b24iLCJhZGRfbWluX2VsZW1lbnQiLCJhZGRfbWF4X2VsZW1lbnQiLCJyaCIsImxoIiwibWluX2VsdCIsIm1pbl9lbHRfb3B0IiwibWF4X2VsdCIsIm1heF9lbHRfb3B0IiwicmVtb3ZlX21pbl9lbHQiLCJyJDAiLCJzcGxpdCIsInByZXMiLCJwcmVzJDAiLCJtZW0iLCJyZW1vdmUiLCJ1bmlvbiIsInIyIiwicjIkMCIsInIxJDAiLCJpbnRlciIsInNwbGl0X2JpcyIsImRpc2pvaW50IiwiY29uc19lbnVtIiwicyQxIiwiZSQxIiwiY29tcGFyZV9hdXgiLCJlMSQwIiwiZTIkMCIsImUyJDEiLCJlMSQxIiwiZTIkMiIsImUxJDIiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3RfYXV4IiwiZmluZF9maXJzdCIsImZpbmRfZmlyc3Rfb3B0X2F1eCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0X2F1eCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHRfYXV4IiwiZmluZF9sYXN0X29wdCIsImZpbmRfb3B0IiwidHJ5X2pvaW4iLCJ0cnlfY29uY2F0IiwidiQxIiwib2Zfc29ydGVkX2xpc3QiLCJzdWIiLCJsJDMiLCJ4MCIsImwkNCIsIngwJDAiLCJsJDUiLCJ4MCQxIiwibmwiLCJtaWQiLCJsJDIiLCJvZl9saXN0IiwieDQiLCJhZGRfc2VxIiwib2Zfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsIm1pbl9iaW5kaW5nIiwibWluX2JpbmRpbmdfb3B0IiwibWF4X2JpbmRpbmciLCJtYXhfYmluZGluZ19vcHQiLCJyZW1vdmVfbWluX2JpbmRpbmciLCJ1cGRhdGUiLCJkYXRhJDAiLCJtJDAiLCJhZGRfbWluX2JpbmRpbmciLCJrIiwiYWRkX21heF9iaW5kaW5nIiwiY29uY2F0X29yX2pvaW4iLCJkMSIsImQyIiwiZDIkMCIsImQxJDAiLCJkMiQxIiwiZDEkMSIsInB2ZCIsImZ2ZCIsIm0kMSIsIm0xIiwibTIiLCJlcXVhbF9hdXgiLCJiaW5kaW5nc19hdXgiLCJiaW5kaW5ncyIsImNyZWF0ZSQwIiwiY2xlYXIiLCJjb3B5JDMiLCJwdXNoIiwicG9wIiwicG9wX29wdCIsInRvcCIsInRvcF9vcHQiLCJpc19lbXB0eSQwIiwibGVuZ3RoJDIiLCJpdGVyJDciLCJmb2xkJDIiLCJ0b19zZXEkNiIsIm9mX3NlcSQ0IiwiY3JlYXRlJDEiLCJjbGVhciQwIiwiY2VsbCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlJDAiLCJ0YWtlX29wdCIsImNvcHkkNCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsImNlbGwkMCIsImNvcHkkNSIsImlzX2VtcHR5JDEiLCJsZW5ndGgkMyIsIml0ZXIkOCIsIml0ZXIkOSIsImZvbGQkMyIsImZvbGQkNCIsInRyYW5zZmVyIiwicTEiLCJxMiIsInRvX3NlcSQ3IiwiYWRkX3NlcSQwIiwib2Zfc2VxJDUiLCJjb3VudCIsImZpbGxfYnVmZiIsImdldF9kYXRhIiwiZDExIiwiYSQwIiwiYSQxIiwicGVla19kYXRhIiwicGVlayQwIiwianVua19kYXRhIiwianVuayIsIm5nZXRfZGF0YSIsImFsIiwibnBlZWtfZGF0YSIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkMTAiLCJzdHJtIiwiZG9fcmVjIiwiZnJvbSIsIm9mX2xpc3QkMSIsIm9mX3N0cmluZyIsIm9mX2J5dGVzJDAiLCJvZl9jaGFubmVsIiwiaWFwcCIsImljb25zIiwiaXNpbmciLCJsYXBwIiwibGNvbnMiLCJsc2luZyIsInNlbXB0eSIsInNsYXp5IiwiZHVtcF9kYXRhIiwiZHVtcCIsImNyZWF0ZSQyIiwiY29udGVudHMiLCJ0b19ieXRlcyQwIiwic3ViJDMiLCJibGl0JDMiLCJudGgkMCIsImxlbmd0aCQ0IiwiY2xlYXIkMSIsInJlc2V0IiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwicG9zIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwicmVhbGx5X2lucHV0X3VwX3RvIiwiYWxyZWFkeV9yZWFkIiwidG9fcmVhZCIsImFscmVhZHlfcmVhZCQwIiwidG9fcmVhZCQwIiwiYWxyZWFkeV9yZWFkJDEiLCJ0b19yZWFkJDEiLCJ1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8iLCJhZGRfY2hhbm5lbCIsIm91dHB1dF9idWZmZXIiLCJjbG9zaW5nIiwiYWR2YW5jZV90b19jbG9zaW5nIiwib3BlbmluZyIsImFkdmFuY2UiLCJrJDAiLCJrJDEiLCJrJDIiLCJhZHZhbmNlX3RvX25vbl9hbHBoYSIsImZpbmRfaWRlbnQiLCJzdG9wJDAiLCJzdG9wIiwiYWRkX3N1YnN0aXR1dGUiLCJzdWJzdCIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsImN1cnJlbnQiLCJuZXh0X2kiLCJpZGVudCIsInRydW5jYXRlIiwidG9fc2VxJDgiLCJ0b19zZXFpJDMiLCJhZGRfc2VxJDEiLCJvZl9zZXEkNiIsImFkZF9pbnQ4IiwiYWRkX2ludDE2X25lIiwiYWRkX2ludDMyX25lIiwiYWRkX2ludDY0X25lIiwiYWRkX2ludDE2X2xlIiwiYWRkX2ludDE2X2JlIiwiYWRkX2ludDMyX2xlIiwiYWRkX2ludDMyX2JlIiwiYWRkX2ludDY0X2xlIiwiYWRkX2ludDY0X2JlIiwiY3JlYXRlX2NoYXJfc2V0IiwiYWRkX2luX2NoYXJfc2V0Iiwic3RyX2luZCIsIm1hc2siLCJmcmVlemVfY2hhcl9zZXQiLCJyZXZfY2hhcl9zZXQiLCJjaGFyX3NldCQwIiwiaXNfaW5fY2hhcl9zZXQiLCJwYWRfb2ZfcGFkX29wdCIsInBhZF9vcHQiLCJ3aWR0aCIsInByZWNfb2ZfcHJlY19vcHQiLCJwcmVjX29wdCIsIm5kZWMiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwYWRfb3B0JDUiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiY2hhcl9vZl9jb3VudGVyIiwiYnByaW50X2NoYXJfc2V0IiwicHJpbnRfb3V0JDAiLCJwcmludF9maXJzdCIsInByaW50X3NlY29uZCIsInByaW50X2luIiwiaiQwIiwiaiQxIiwicHJpbnRfb3V0IiwicHJpbnRfc3RhcnQiLCJpc19hbG9uZSIsImFmdGVyIiwiYmVmb3JlIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9pbnRfZm10IiwiYnByaW50X2FsdGludF9mbXQiLCJicHJpbnRfZmNvbnZfZmxhZyIsImJwcmludF9mbG9hdF9mbXQiLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJzdWJfZm10dHkiLCJzdWJfZm10dHkkMCIsImludF9vZl9jdXN0b21fYXJpdHkiLCJicHJpbnRfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiZm10JDEiLCJzdHJpbmdfb2ZfZm10Iiwic3ltbSIsInRyYW5zIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZm10dHlfcmVsX2RldCIsImY0IiwiZjIiLCJyZXN0MiQ5IiwicmVzdDIkMTAiLCJyZXN0MiQxMSIsInJlc3QyJDEyIiwicmVzdDIkMTMiLCJkZSIsImVkIiwiYWYiLCJmYSIsImRlJDAiLCJlZCQwIiwiYWYkMCIsImZhJDAiLCJkZSQxIiwiZWQkMSIsImFmJDEiLCJmYSQxIiwiZGUkMiIsImVkJDIiLCJhZiQyIiwiZmEkMiIsImRlJDMiLCJlZCQzIiwiYWYkMyIsImZhJDMiLCJkZSQ0IiwiZWQkNCIsImFmJDQiLCJmYSQ0IiwiZGUkNSIsImVkJDUiLCJhZiQ1IiwiZmEkNSIsImRlJDYiLCJlZCQ2IiwiYWYkNiIsImZhJDYiLCJkZSQ3IiwiZWQkNyIsImFmJDciLCJmYSQ3IiwiZGUkOCIsImVkJDgiLCJhZiQ4IiwiZmEkOCIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwiZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IiwiZm10dHlfb2ZfcGFkZGluZ19mbXR0eSIsImZtdHR5X29mX2N1c3RvbSIsImFyaXR5JDAiLCJmbXR0eV9vZl9mbXQkMCIsImZtdHR5X29mX2ZtdCIsInR5X3Jlc3QiLCJwcmVjX3R5IiwidHlfcmVzdCQwIiwicHJlY190eSQwIiwidHlfcmVzdCQxIiwicHJlY190eSQxIiwidHlfcmVzdCQyIiwicHJlY190eSQyIiwidHlfcmVzdCQzIiwicHJlY190eSQzIiwiZm10dHkkMSIsImZtdHR5JDIiLCJmbXR0eSQzIiwidHkkMCIsImZtdHR5JDQiLCJmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpIiwidHlwZV9mb3JtYXRfZ2VuIiwiZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0Iiwic3ViX2ZtdHR5X3Jlc3QkMCIsImZtdHR5X3Jlc3QkMCIsInN1Yl9mbXR0eV9yZXN0JDEiLCJzdWJfZm10dHlfcmVzdCQyIiwiZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMyIsImZtdCQyIiwic3ViX2ZtdHR5X3Jlc3QkNCIsImZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDUiLCJmbXQkMyIsInN1Yl9mbXR0eV9yZXN0JDYiLCJmbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ3IiwiZm10JDQiLCJzdWJfZm10dHlfcmVzdCQ4IiwiZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkOSIsImZtdCQ1Iiwic3ViX2ZtdHR5X3Jlc3QkMTAiLCJmbXR0eV9yZXN0JDUiLCJzdWJfZm10dHlfcmVzdCQxMSIsImZtdCQ2Iiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJmbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQxMyIsImZtdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkMTQiLCJmbXR0eV9yZXN0JDciLCJzdWIyX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTUiLCJzdWIyX2ZtdHR5JDAiLCJmbXQkOCIsInN1Yl9mbXR0eV9yZXN0JDE2IiwiZm10dHlfcmVzdCQ4Iiwic3ViMl9mbXR0eSQxIiwic3ViMV9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE3Iiwic3ViMl9mbXR0eSQyIiwic3ViMV9mbXR0eSQwIiwiZm10JDkiLCJzdWJfZm10dHlfcmVzdCQxOCIsImZtdHR5X3Jlc3QkOSIsInN1Yl9mbXR0eV9yZXN0JDE5IiwiZm10JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjEiLCJmbXQkMTEiLCJzdWJfZm10dHlfcmVzdCQyMiIsImZtdHR5X3Jlc3QkMTEiLCJzdWJfZm10dHlfcmVzdCQyMyIsImZtdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI0IiwiZm10dHlfcmVzdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI1IiwiZm10JDEzIiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJmbXRfcmVzdCIsImZtdF9yZXN0JDAiLCJmbXRfcmVzdCQxIiwiZm10X3Jlc3QkMiIsImZtdF9yZXN0JDMiLCJmbXRfcmVzdCQ0IiwiZm10dHkkNSIsImZtdF9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10X3Jlc3QkNiIsInByZWMkNSIsInByZWMkNiIsImZtdHR5JDciLCJmbXRfcmVzdCQ3IiwicHJlYyQ3IiwicHJlYyQ4IiwiZm10dHkkOCIsImZtdF9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10X3Jlc3QkOSIsImZtdHR5JDEwIiwiZm10X3Jlc3QkMTAiLCJmbXR0eSQxMSIsImZtdF9yZXN0JDExIiwiZm10dHkkMTIiLCJmbXRfcmVzdCQxMiIsImZtdHR5JDEzIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdF9yZXN0JDE0IiwiZm10dHkkMTUiLCJmbXQkMTUiLCJmbXRfcmVzdCQxNSIsImZtdHR5JDE2IiwiZm10JDE2IiwiZm10X3Jlc3QkMTYiLCJmbXR0eSQxNyIsImZtdCQxNyIsImZtdF9yZXN0JDE3IiwidHlwZV9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X3Jlc3QkMTMiLCJmbXRfcmVzdCQxOCIsImZtdHR5JDE4IiwiZm10JDE4IiwiZm10dHlfcmVzdCQxNCIsImZtdF9yZXN0JDE5IiwiZm10dHkkMTkiLCJmbXQkMTkiLCJmbXR0eV9yZXN0JDE1IiwiZm10X3Jlc3QkMjAiLCJmbXR0eSQyMCIsImZtdCQyMCIsInR5cGVfaWdub3JlZF9wYXJhbSIsImZtdDAiLCJmbXR0eTAiLCJmbXR0eTMiLCJmbXQzIiwiZm10MSQwIiwiZm10dHkyJDAiLCJmbXQyJDAiLCJmbXR0eTMkMCIsImZtdDMkMCIsInR5cGVfaWdub3JlZF9wYXJhbV9vbmUiLCJ0eXBlX2Zvcm1hdCIsInJlY2FzdCIsImZpeF9wYWRkaW5nIiwid2lkdGgkMCIsImZpeF9pbnRfcHJlY2lzaW9uIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2ljb252IiwiZm9ybWF0X29mX2ljb252TCIsImZvcm1hdF9vZl9pY29udmwiLCJmb3JtYXRfb2ZfaWNvbnZuIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJhZGRfZG90X2lmX25lZWRlZCIsImNhbWxfc3BlY2lhbF92YWwiLCJmb3JtYXRfY2FtbF9jaGFyIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9wcmludGYkMCIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiIsIm1ha2VfcGFkZGluZyIsIm1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiIsImFjYyQzIiwiYWNjJDQiLCJrJDMiLCJrYWNjIiwiayQ0IiwibWFrZV9pZ25vcmVkX3BhcmFtJDAiLCJtYWtlX2N1c3RvbSQwIiwibWFrZV9pbnZhbGlkX2FyZyIsIm1ha2VfZnJvbV9mbXR0eSQwIiwibWFrZV9mcm9tX2ZtdHR5IiwibWFrZV9jdXN0b20iLCJtYWtlX2lnbm9yZWRfcGFyYW0iLCJwJDAiLCJwJDEiLCJjb25zdCQwIiwibWFrZV9pcHJpbnRmJDAiLCJtYWtlX2lwcmludGYiLCJmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiIsImtvYyIsInJlc3QkMjQiLCJyZXN0JDI1IiwiZm5fb2ZfY3VzdG9tX2FyaXR5JDAiLCJmbl9vZl9jdXN0b21fYXJpdHkiLCJvdXRwdXRfYWNjIiwicCQyIiwicCQzIiwicCQ0IiwiYnVmcHV0X2FjYyIsInN0cnB1dF9hY2MiLCJmYWlsd2l0aF9tZXNzYWdlIiwib3Blbl9ib3hfb2Zfc3RyaW5nIiwiaW52YWxpZF9ib3giLCJwYXJzZV9zcGFjZXMiLCJwYXJzZV9sd29yZCIsInBhcnNlX2ludCIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0Iiwic2l6ZSIsInBhcnNlX3Bvc2l0aXZlIiwic3RyX2luZCQwIiwic3RyX2luZCQxIiwicGFyc2VfaW50ZWdlciIsIm5leHRfaW5kIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJwY3RfaW5kIiwib3B0aW9uIiwic3ViZm10IiwiY29tcHV0ZV9mbG9hdF9jb252IiwicGx1cyIsInNwYWNlIiwia2luZCIsImNvbXB1dGVfaW50X2NvbnYiLCJwbHVzJDAiLCJzcGFjZSQwIiwiY291bnRlcl9vZl9jaGFyIiwiaXNfaW50X2Jhc2UiLCJzZWFyY2hfc3ViZm9ybWF0X2VuZCIsInN1Yl9lbmQiLCJzdHJfaW5kJDIiLCJzdWJfZW5kJDAiLCJzdHJfaW5kJDMiLCJzdWJfZW5kJDEiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJzdHJfaW5kJDciLCJwYXJzZV9jaGFyX3NldCIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicGFyc2VfY2hhcl9zZXRfc3RhcnQiLCJyZXZlcnNlIiwicmV2ZXJzZSQwIiwicGFyc2VfYWZ0ZXJfYXQiLCJwYXJzZV90YWciLCJwYXJzZSIsInBhcnNlX2dvb2RfYnJlYWsiLCJwYXJzZV9tYWdpY19zaXplIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2ZtdCIsInN1Yl9mb3JtYXQkMCIsImZvcm1hdHRpbmckMCIsImZvcm1hdHRpbmciLCJzdHJfaW5kXzEiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwic3RyX2luZF80Iiwic3RyX2luZF81IiwicGFyc2VfcGFkZGluZyIsIm1pbnVzIiwibmV3X2luZCIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9wcmVjaXNpb24iLCJwYXJzZV9jb252ZXJzaW9uIiwicGFyc2VfbGl0ZXJhbCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzJDAiLCJwYXJzZV9jb252IiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJnZXRfcHJlY19vcHQiLCJmbXRfcmVzdWx0IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiaWdub3JlZCQ5IiwiY2hhcl9mb3JtYXQiLCJzY2FuX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJpZ25vcmVkJDUiLCJpZ25vcmVkJDgiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQxIiwiaWduJDAiLCJwYXJzZV9mb3JtYXQiLCJwYXJzZV9pZ24iLCJwYXJzZV9mbGFncyIsInNldF9mbGFnIiwicmVhZF9mbGFncyIsImJlZ19pbmQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwicHJpbnRfc3BlYyIsImRvYyIsInNwZWMiLCJrZXkiLCJoZWxwX2FjdGlvbiIsImFkZF9oZWxwIiwic3BlY2xpc3QiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsInVzYWdlX3N0cmluZyIsInVzYWdlIiwiYm9vbF9vZl9zdHJpbmdfb3B0JDAiLCJpbnRfb2Zfc3RyaW5nX29wdCQwIiwiZmxvYXRfb2Zfc3RyaW5nX29wdCIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXyIsImFsbG93X2V4cGFuZCIsImFyZ3YiLCJhbm9uZnVuIiwiaW5pdHBvcyIsImNvbnZlcnRfZXJyb3IiLCJwcm9nbmFtZSIsImZvbGxvdyQwIiwia2V5d29yZCIsIm5vX2FyZyQwIiwiZm9sbG93Iiwibm9fYXJnIiwiZ2V0X2FyZyQwIiwiZ2V0X2FyZyIsImNvbnN1bWVfYXJnJDAiLCJjb25zdW1lX2FyZyIsInRyZWF0X2FjdGlvbiQwIiwidHJlYXRfYWN0aW9uIiwiZiQwIiwiZiQxIiwiciQxIiwiZiQyIiwiciQyIiwiZiQzIiwiYXJnJDMiLCJ4JDEiLCJyJDMiLCJhcmckNCIsIngkMiIsInNwZWNzIiwiZiQ0IiwiYXJnJDUiLCJmJDUiLCJmJDYiLCJmJDciLCJhcmckNiIsIm5ld2FyZyIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIiwicGFyc2VfYXJndl9keW5hbWljIiwiY3VycmVudCQwIiwicGFyc2VfYXJndiIsIm1zZyQwIiwibXNnJDEiLCJwYXJzZV9keW5hbWljIiwicGFyc2VfZXhwYW5kIiwic2Vjb25kX3dvcmQiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhZGRfcGFkZGluZyIsImtzZCIsImN1dGNvbCQwIiwic3BhY2VzJDAiLCJjdXRjb2wiLCJrd2RfbGVuIiwic3BhY2VzIiwiYWxpZ24iLCJsaW1pdCIsImNvbXBsZXRlZCIsInRyaW1fY3IiLCJyZWFkX2F1eCIsInRyaW0iLCJmaWxlIiwid29yZHMiLCJzdGFzaCIsIndvcmQiLCJ3b3JkJDAiLCJyZWFkX2FyZyIsInJlYWRfYXJnMCIsIndyaXRlX2F1eCIsImFyZ3MiLCJ3cml0ZV9hcmciLCJ3cml0ZV9hcmcwIiwicHJpbnRlcnMiLCJmaWVsZCIsIm90aGVyX2ZpZWxkcyIsImZpZWxkcyIsInVzZV9wcmludGVycyIsImNvbnYiLCJ0b19zdHJpbmdfZGVmYXVsdCIsImNoYXIkMCIsImxpbmUiLCJjaGFyJDEiLCJsaW5lJDAiLCJmaWxlJDAiLCJjaGFyJDIiLCJsaW5lJDEiLCJmaWxlJDEiLCJjb25zdHJ1Y3RvciIsInRvX3N0cmluZyQ2IiwicHJpbnQiLCJmY3QiLCJjYXRjaCQwIiwicmF3X2JhY2t0cmFjZV9lbnRyaWVzIiwiYnQiLCJjb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJmb3JtYXRfYmFja3RyYWNlX3Nsb3QiLCJpc19yYWlzZSIsInByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJvdXRjaGFuIiwiYmFja3RyYWNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsInJhd19iYWNrdHJhY2UiLCJwcmludF9iYWNrdHJhY2UiLCJiYWNrdHJhY2VfdG9fc3RyaW5nIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwidXNhYmxlX3Nsb3QiLCJleGlzdHNfdXNhYmxlIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsInRyeV9nZXRfcmF3X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMCIsInJhd19iYWNrdHJhY2UkMCIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24kMCIsImNvbnN0JDEiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuIiwid29ya19idCIsInByaW50X3N0YXQiLCJhbGxvY2F0ZWRfYnl0ZXMiLCJtYSIsInBybyIsIm1pIiwiY3JlYXRlX2FsYXJtIiwiZGVsZXRlX2FsYXJtIiwibnVsbF90cmFja2VyIiwic2FtcGxpbmdfcmF0ZSIsInRyYWNrZXIiLCJjYWxsc3RhY2tfc2l6ZSIsInN0cmluZyIsImJ5dGVzIiwic3Vic3RyaW5nIiwic3ViYnl0ZXMiLCJmaWxlbmFtZSIsIm91dHB1dCQwIiwiZGlnZXN0IiwiaW5wdXQkMCIsImNoYXJfaGV4IiwidG9faGV4IiwiZnJvbV9oZXgiLCJkaWdpdCIsImJ5dGUkMCIsIm5ld19zdGF0ZSIsImFzc2lnbiIsInN0MSIsInN0MiIsImZ1bGxfaW5pdCIsInNlZWQiLCJjb21iaW5lIiwiZXh0cmFjdCIsInNlZWQkMCIsIm1ha2UkMyIsIm1ha2Vfc2VsZl9pbml0IiwiY29weSQ2IiwiYml0cyIsImN1cnZhbCIsIm5ld3ZhbCIsIm5ld3ZhbDMwIiwiaW50YXV4IiwiaW50JDAiLCJib3VuZCIsImludDYzYXV4IiwiYnBvcyIsImJwb3MkMCIsImZ1bGxfaW50IiwiaW50MzJhdXgiLCJpbnQzMiIsImludDY0YXV4IiwiaW50NjQiLCJuYXRpdmVpbnQiLCJyYXdmbG9hdCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImNvcHkkNyIsImxlbmd0aCQ1IiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsImluc2VydF9idWNrZXQiLCJjZWxsJDEiLCJuaWR4IiwibWF0Y2giLCJyZXNpemUkMCIsIm9zaXplIiwiaXRlciQxMSIsImRvX2J1Y2tldCIsIm9sZF90cmF2IiwiZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImZvbGQkNSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidG9fc2VxJDkiLCJ0YmxfZGF0YSIsImJ1Y2siLCJidWNrJDAiLCJidWNrJDEiLCJ0b19zZXFfa2V5cyIsInRvX3NlcV92YWx1ZXMiLCJrZXlfaW5kZXgiLCJidWNrZXQiLCJyZW1vdmVfYnVja2V0IiwiZmluZF9yZWMiLCJrMSIsIm5leHQxIiwiazIiLCJuZXh0MiIsImszIiwiZDMiLCJuZXh0MyIsImZpbmRfcmVjX29wdCIsImZpbmRfYWxsIiwiZmluZF9pbl9idWNrZXQiLCJyZXBsYWNlX2J1Y2tldCIsInJlcGxhY2UiLCJtZW1faW5fYnVja2V0IiwicmVwbGFjZV9zZXEiLCJjb3B5Iiwic3oiLCJoYXNoJDEiLCJoYXNoX3BhcmFtIiwic2VlZGVkX2hhc2giLCJhZGQkMCIsImZpbmQkMSIsImZpbmRfb3B0JDEiLCJmaW5kX2FsbCQwIiwibWVtJDIiLCJhZGRfc2VxJDIiLCJvZl9zZXEkNyIsInJlYnVpbGQiLCJ3ZWFrX2NyZWF0ZSIsImxlbmd0aCQ2IiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQkMCIsInNldCQyIiwiZ2V0JDMiLCJnZXRfY29weSIsImNoZWNrJDAiLCJibGl0JDQiLCJmaWxsJDIiLCJhciIsImVtcHR5YnVja2V0IiwiZ2V0X2luZGV4Iiwic3okMCIsInN6JDEiLCJmb2xkX2J1Y2tldCIsIml0ZXJfYnVja2V0IiwiaXRlcl93ZWFrIiwiY291bnRfYnVja2V0IiwibmV4dF9zeiIsInByZXZfc3oiLCJ0ZXN0X3Nocmlua19idWNrZXQiLCJoYnVja2V0IiwicHJldl9sZW4iLCJsaXZlIiwiaiQyIiwibmV3YnVja2V0IiwiYWRkX2F1eCIsInNldHRlciIsImluZGV4IiwiaGFzaGVzIiwibmV3c3oiLCJuZXdoYXNoZXMiLCJvbGRsZW4iLCJuZXd0IiwiYWRkX3dlYWsiLCJvYiIsIm9oIiwib2kiLCJuaSIsImZpbmRfb3IiLCJpZm5vdGZvdW5kIiwiZmluZF9zaGFkb3ciLCJpZmZvdW5kIiwibGVucyIsInRvdGxlbiIsImlkJDAiLCJ1bmtub3duIiwiaXNfa25vd24iLCJwcF9lbnF1ZXVlIiwidG9rZW4iLCJwcF9jbGVhcl9xdWV1ZSIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwicHBfb3V0cHV0X3NwYWNlcyIsInBwX291dHB1dF9pbmRlbnQiLCJmb3JtYXRfcHBfdGV4dCIsInRleHQiLCJmb3JtYXRfc3RyaW5nIiwiYnJlYWtfbmV3X2xpbmUiLCJyZWFsX2luZGVudCIsImJyZWFrX2xpbmUiLCJicmVha19zYW1lX2xpbmUiLCJwcF9mb3JjZV9icmVha19saW5lIiwicHBfc2tpcF90b2tlbiIsImZvcm1hdF9wcF90b2tlbiIsInRhYnMiLCJhZGRfdGFiIiwibHMiLCJ0YWdfbmFtZSIsIm1hcmtlciIsImJyZWFrcyIsImZpdHMiLCJvZmYiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJib3hfdHlwZSQwIiwidGJveCIsInRhZ19uYW1lJDAiLCJtYXJrZXIkMCIsImFkdmFuY2VfbGVmdCIsInBlbmRpbmdfY291bnQiLCJzaXplJDAiLCJlbnF1ZXVlX2FkdmFuY2UiLCJlbnF1ZXVlX3N0cmluZ19hcyIsImVucXVldWVfc3RyaW5nIiwiaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIiwic3RhY2siLCJxdWV1ZV9lbGVtIiwic2V0X3NpemUiLCJsZWZ0X3RvdGFsIiwic2Nhbl9wdXNoIiwiZWxlbSIsInBwX29wZW5fYm94X2dlbiIsImJyX3R5IiwicHBfb3Blbl9zeXNfYm94IiwicHBfY2xvc2VfYm94IiwicHBfb3Blbl9zdGFnIiwicHBfY2xvc2Vfc3RhZyIsInBwX29wZW5fdGFnIiwicHBfY2xvc2VfdGFnIiwicHBfc2V0X3ByaW50X3RhZ3MiLCJwcF9zZXRfbWFya190YWdzIiwicHBfZ2V0X3ByaW50X3RhZ3MiLCJwcF9nZXRfbWFya190YWdzIiwicHBfc2V0X3RhZ3MiLCJwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwY3QiLCJwb3QiLCJtY3QiLCJtb3QiLCJwcF9yaW5pdCIsImNsZWFyX3RhZ19zdGFjayIsInBwX2ZsdXNoX3F1ZXVlIiwicHBfcHJpbnRfYXNfc2l6ZSIsInBwX3ByaW50X2FzIiwiaXNpemUiLCJwcF9wcmludF9zdHJpbmciLCJwcF9wcmludF9ieXRlcyIsInBwX3ByaW50X2ludCIsInBwX3ByaW50X2Zsb2F0IiwicHBfcHJpbnRfYm9vbCIsInBwX3ByaW50X2NoYXIiLCJwcF9vcGVuX2hib3giLCJwcF9vcGVuX3Zib3giLCJwcF9vcGVuX2h2Ym94IiwicHBfb3Blbl9ob3Zib3giLCJwcF9vcGVuX2JveCIsInBwX3ByaW50X25ld2xpbmUiLCJwcF9wcmludF9mbHVzaCIsInBwX2ZvcmNlX25ld2xpbmUiLCJwcF9wcmludF9pZl9uZXdsaW5lIiwicHBfcHJpbnRfY3VzdG9tX2JyZWFrIiwicHBfcHJpbnRfYnJlYWsiLCJwcF9wcmludF9zcGFjZSIsInBwX3ByaW50X2N1dCIsInBwX29wZW5fdGJveCIsInBwX2Nsb3NlX3Rib3giLCJwcF9wcmludF90YnJlYWsiLCJwcF9wcmludF90YWIiLCJwcF9zZXRfdGFiIiwicHBfc2V0X21heF9ib3hlcyIsInBwX2dldF9tYXhfYm94ZXMiLCJwcF9vdmVyX21heF9ib3hlcyIsInBwX3NldF9lbGxpcHNpc190ZXh0IiwicHBfZ2V0X2VsbGlwc2lzX3RleHQiLCJwcF9saW1pdCIsInBwX3NldF9taW5fc3BhY2VfbGVmdCIsInBwX3NldF9tYXhfaW5kZW50IiwicHBfZ2V0X21heF9pbmRlbnQiLCJwcF9zZXRfbWFyZ2luIiwibmV3X21heF9pbmRlbnQiLCJ2YWxpZGF0ZV9nZW9tZXRyeSIsIm1hcmdpbiIsIm1heF9pbmRlbnQiLCJjaGVja19nZW9tZXRyeSIsImdlb21ldHJ5IiwicHBfZ2V0X21hcmdpbiIsInBwX3NldF9mdWxsX2dlb21ldHJ5IiwicHBfc2V0X2dlb21ldHJ5IiwicHBfc2FmZV9zZXRfZ2VvbWV0cnkiLCJwcF9nZXRfZ2VvbWV0cnkiLCJwcF91cGRhdGVfZ2VvbWV0cnkiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJkaXNwbGF5X25ld2xpbmUiLCJibGFua19saW5lIiwiZGlzcGxheV9pbmRlbnQiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIiwiZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnIiwiZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWciLCJkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyIsInBwX21ha2VfZm9ybWF0dGVyIiwicHBfcXVldWUiLCJzeXNfdG9rIiwic2Nhbl9zdGFjayIsInBwX21hcmdpbiIsInBwX21pbl9zcGFjZV9sZWZ0IiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJzeW1ib2xpY19mbHVzaCIsInN5bWJvbGljX25ld2xpbmUiLCJzeW1ib2xpY19zdHJpbmciLCJzeW1ib2xpY19zcGFjZXMiLCJzeW1ib2xpY19pbmRlbnQiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcV9pbiIsInNlcSQxIiwicHBfcHJpbnRfc2VxIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsIm91dHB1dF9hY2MkMCIsImJ0eSIsInAkNSIsInAkNiIsInN0cnB1dF9hY2MkMCIsInNpemUkMSIsImtmcHJpbnRmJDAiLCJpa2ZwcmludGYkMCIsImlmcHJpbnRmJDAiLCJmcHJpbnRmJDAiLCJwcmludGYkMCIsImVwcmludGYkMCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImtwcmludGYiLCJzcHJpbnRmJDAiLCJrYXNwcmludGYiLCJhc3ByaW50ZiIsImZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMiLCJwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJicHJpbnRmJDAiLCJwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJzdHJpbmdpZnkiLCJwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJmdW5zIiwibWFya19vcGVuX3RhZyIsIm1hcmtfY2xvc2VfdGFnIiwicHJpbnRfb3Blbl90YWciLCJwcmludF9jbG9zZV90YWciLCJzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJudWxsX2NoYXIiLCJuZXh0X2NoYXIiLCJpYiIsInBlZWtfY2hhciIsImNoZWNrZWRfcGVla19jaGFyIiwiZW5kX29mX2lucHV0IiwiZW9mIiwiYmVnaW5uaW5nX29mX2lucHV0IiwibmFtZV9vZl9pbnB1dCIsImNoYXJfY291bnQiLCJsaW5lX2NvdW50IiwicmVzZXRfdG9rZW4iLCJpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciIsInRva2VuX3N0cmluZyIsInRva2VuX2J1ZmZlciIsInRva2VuX2NvdW50Iiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImNyZWF0ZSQ0IiwiaW5hbWUiLCJmcm9tX3N0cmluZyQxIiwiZnJvbV9mdW5jdGlvbiQwIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZnJvbV9pY19jbG9zZV9hdF9lbmQiLCJmcm9tX2ljX3JhaXNlX2F0X2VuZCIsInN0ZGliIiwib3Blbl9pbl9maWxlIiwib3Blbl9pbiIsImZyb21fZmlsZSIsImZyb21fZmlsZV9iaW4iLCJmcm9tX2NoYW5uZWwkMCIsImNsb3NlX2luIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21faWMiLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9lbmRfb2ZfaW5wdXQiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoX2VyciIsImNpIiwiY2hhcmFjdGVyX21pc21hdGNoIiwic2tpcF93aGl0ZXMiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19uZXdsaW5lIiwiY2hlY2tfY2hhciIsInRva2VuX2NoYXIiLCJ0b2tlbl9ib29sIiwiaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIiLCJ0b2tlbl9pbnRfbGl0ZXJhbCIsInRva2VuX2ludCIsInRva2VuX2Zsb2F0IiwidG9rZW5fbmF0aXZlaW50IiwidG9rZW5faW50MzIiLCJ0b2tlbl9pbnQ2NCIsInNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIiwid2lkdGgkMiIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3N0YXIiLCJkaWdpdHAiLCJzY2FuX2RpZ2l0cyIsInNjYW5fZGlnaXRfcGx1cyIsImJhc2lzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5fdW5zaWduZWRfaW50Iiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQiLCJzY2FuX2ludF9jb252ZXJzaW9uIiwic2Nhbl9mcmFjdGlvbmFsX3BhcnQiLCJzY2FuX2V4cG9uZW50X3BhcnQiLCJzY2FuX2ludGVnZXJfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQzIiwid2lkdGgkNCIsIndpZHRoJDUiLCJ3aWR0aCQ2Iiwid2lkdGgkMTAiLCJ3aWR0aCQ3Iiwid2lkdGgkOCIsIndpZHRoJDkiLCJzY2FuX2NhbWxfZmxvYXRfcmVzdCIsIndpZHRoX3ByZWNpc2lvbiIsImZyYWNfd2lkdGgiLCJzY2FuX2NhbWxfZmxvYXQiLCJzY2FuX3N0cmluZyIsInN0cCIsInNjYW5fY2hhciIsImNoYXJfZm9yX2JhY2tzbGFzaCIsImRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2RlY2ltYWxfY29kZSIsImMwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUiLCJjaGVja19uZXh0X2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyIsInNjYW5fYmFja3NsYXNoX2NoYXIiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJmaW5kX2NoYXIiLCJmaW5kX3N0YXJ0Iiwic2Nhbl9jYW1sX3N0cmluZyIsImZpbmRfc3RvcCQwIiwic2Nhbl9iYWNrc2xhc2giLCJza2lwX3NwYWNlcyIsInNraXBfbmV3bGluZSIsInNjYW5fYm9vbCIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJmbXQkMjEiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjIiLCJmbXQkMjMiLCJmbXQkMjQiLCJ0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwibWFrZV9zY2FuZiIsInJlYWRlcnMiLCJzY2FuJDAiLCJzdHJfcmVzdCIsInBhZF9wcmVjX3NjYW5mIiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0Iiwic2NhbiQ1Iiwic2NhbiQ2Iiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsImxhYmVsIiwiZWxlbWVudCIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImdldF9tZXRob2RfbGFiZWxzIiwibmFtZXMiLCJzZXRfbWV0aG9kIiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsInNldF9kYXRhIiwic2V0X25leHQiLCJnZXRfa2V5JDAiLCJnZXRfZGF0YSQwIiwiZ2V0X25leHQiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF9rZXlzIiwibG9va3VwX2tleSIsInRhYmxlcyQwIiwidGFibGVzX2RhdGEiLCJuZXh0JDAiLCJsb29rdXBfdGFibGVzIiwicm9vdCIsInJvb3RfZGF0YSIsImdldF9jb25zdCIsImdldF92YXIiLCJnZXRfZW52IiwiZ2V0X21ldGgiLCJzZXRfdmFyIiwiYXBwX2NvbnN0IiwiYXBwX3ZhciIsImFwcF9lbnYiLCJhcHBfbWV0aCIsImFwcF9jb25zdF9jb25zdCIsImFwcF9jb25zdF92YXIiLCJhcHBfY29uc3RfbWV0aCIsImFwcF92YXJfY29uc3QiLCJhcHBfbWV0aF9jb25zdCIsImFwcF9jb25zdF9lbnYiLCJhcHBfZW52X2NvbnN0IiwibWV0aF9hcHBfY29uc3QiLCJtZXRoX2FwcF92YXIiLCJtZXRoX2FwcF9lbnYiLCJtZXRoX2FwcF9tZXRoIiwic2VuZF9jb25zdCIsInNlbmRfdmFyIiwic2VuZF9lbnYiLCJzZW5kX21ldGgiLCJuZXdfY2FjaGUiLCJtZXRob2RfaW1wbCIsImNsbyIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInNldF9tZXRob2RzIiwic3RhdHMkMCIsImluaXRfbW9kX2Jsb2NrIiwiY29tcHMiLCJtb2R1IiwiaW5pdF9tb2RfZmllbGQiLCJzaGFwZSIsImZuJDAiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfZmllbGQiLCJjbCIsInVwZGF0ZV9tb2RfYmxvY2siLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImNvbW1lbnQkMCIsIm1heWJlX25lc3RlZF9jb21tZW50IiwibWF5YmVfZW5kX2NvbW1lbnQiLCJjb21tZW50IiwiZXNjYXBlIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwiZGVjaW1hbF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsIm1heWJlX2NvbW1lbnQiLCJuZXh0X3Rva2VuIiwiaGtleSIsImNsZWFuIiwiY29udGFpbmVyIiwiaGsiLCJuZXdfZCIsImJ1Y2tldF9sZW5ndGhfYWxpdmUiLCJzdGF0c19hbGl2ZSIsIm9ial9vcHQiLCJjcmVhdGUkNSIsImdldF9rZXkkMSIsImdldF9rZXlfY29weSQwIiwic2V0X2tleSQwIiwidW5zZXRfa2V5JDAiLCJjaGVja19rZXkkMCIsImJsaXRfa2V5JDAiLCJnZXRfZGF0YSQxIiwiZ2V0X2RhdGFfY29weSIsInNldF9kYXRhJDAiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsIm1ha2UkNCIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQ1IiwiYWRkJDEiLCJ0ZXN0X2tleSIsInJlbW92ZSQwIiwiZmluZCQyIiwibGVuZ3RoJDciLCJjbGVhciQzIiwiY3JlYXRlJDYiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQyIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMSIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQ2Iiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJtYWtlJDciLCJhZGQkMiIsInRlc3Rfa2V5cyIsInJlbW92ZSQxIiwiZmluZCQzIiwibGVuZ3RoJDgiLCJjbGVhciQ0IiwiY3JlYXRlJDciLCJsZW5ndGgkOSIsImdldF9rZXkkMiIsImdldF9rZXlfY29weSQxIiwic2V0X2tleSQxIiwidW5zZXRfa2V5JDEiLCJjaGVja19rZXkkMSIsImJsaXRfa2V5JDEiLCJnZXRfZGF0YSQzIiwiZ2V0X2RhdGFfY29weSQxIiwic2V0X2RhdGEkMiIsInVuc2V0X2RhdGEkMSIsImNoZWNrX2RhdGEkMSIsImJsaXRfZGF0YSQxIiwibWFrZSQ4IiwicXVlcnkkMSIsImVxdWFsX2FycmF5Iiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX3F1b3RlIiwicXVvdGVxdW90ZSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZmluZF9iZWciLCJmaW5kX2VuZCIsImdlbmVyaWNfZGlybmFtZSIsImludGVybWVkaWF0ZV9zZXAiLCJiYXNlIiwidHJhaWxpbmdfc2VwIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInF1b3RlIiwicXVvdGVfY29tbWFuZCIsImJhc2VuYW1lIiwiZGlybmFtZSIsImlzX2Rpcl9zZXAkMCIsImlzX3JlbGF0aXZlJDAiLCJpc19pbXBsaWNpdCQwIiwiY2hlY2tfc3VmZml4JDAiLCJjaG9wX3N1ZmZpeF9vcHQkMCIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZCIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImhhc19kcml2ZSIsImlzX2xldHRlciIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMCIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY29uY2F0JDQiLCJjaG9wX3N1ZmZpeCIsImV4dGVuc2lvbl9sZW4iLCJpMCIsInNlYXJjaF9kb3QiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJwcm5nJDAiLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsInRyeV9uYW1lIiwiY291bnRlciQxIiwib3Blbl90ZW1wX2ZpbGUiLCJzdGgkMCIsInBlcm1zIiwic3RoJDEiLCJhZGQkNCIsInN1YiQ0IiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJpbnQzMiQxIiwiaW50NjQkMSIsImludCQyIiwibmF0aXZlaW50JDEiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImluaXQkNiIsImxheW91dCIsImRpbXMiLCJkbGVuIiwic2l6ZV9pbl9ieXRlcyIsImNyZWF0ZSQ4IiwiZ2V0JDQiLCJzZXQkMyIsInNpemVfaW5fYnl0ZXMkMCIsIm9mX3ZhbHVlIiwiY3JlYXRlJDkiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImNfaW5pdCIsImZvcnRyYW5faW5pdCIsImluaXQkNyIsIm9mX2FycmF5IiwiYmEiLCJjcmVhdGUkMTAiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImNfaW5pdCQwIiwiZm9ydHJhbl9pbml0JDAiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiY19pbml0JDEiLCJmb3J0cmFuX2luaXQkMSIsImluaXQkOSIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJ3aXRoX29wZW4iLCJvcGVuZnVuIiwid2l0aF9vcGVuX2JpbiIsIndpdGhfb3Blbl90ZXh0Iiwid2l0aF9vcGVuX2dlbiIsInNlZWsiLCJsZW5ndGgkMTEiLCJpbnB1dF9jaGFyJDAiLCJpbnB1dF9ieXRlJDAiLCJpbnB1dF9saW5lJDAiLCJyZWFsbHlfaW5wdXQkMCIsInJlYWxseV9pbnB1dF9zdHJpbmckMCIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMCIsImJ1ZiQxIiwicmVtIiwid2l0aF9vcGVuJDAiLCJ3aXRoX29wZW5fYmluJDAiLCJ3aXRoX29wZW5fdGV4dCQwIiwid2l0aF9vcGVuX2dlbiQwIiwic2VlayQwIiwicG9zJDAiLCJsZW5ndGgkMTIiLCJleG4iLCJtb2R1bGUiLCJnbG9iYWxUaGlzIiwibnVsbCIsInVuZGVmaW5lZCIsImpzb29fZXhwb3J0cyIsImV2ZW50IiwiU3RyaW5nIiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsInN1Y2MkMCIsInByZWQkMCIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90JDAiLCJvZl9zdHJpbmdfb3B0JDAiLCJ0b19zdHJpbmckMCIsImNvbXBhcmUkMCIsImVxdWFsJDAiLCJzcmMkMCIsImhkciIsImRpZ2VzdCIsImtpbmQiLCJsZW5ndGgiLCJzZXJpYWxpemVyIiwidiIsImhkciQwIiwic3RhdGUiLCJnbyIsImNvbnRpbnVlJDAiLCJsZW4iLCJvZmYiLCJzdHIiLCJzdHIkMCIsImN0eCQxIiwiZW1wdHkkMSIsImVtcHR5JDIiLCJkZWZhdWx0JDAiLCJ6ZXJvIiwiY29uc29sZSQwIiwibGV2ZWwiLCJzIiwibWV0aCIsImNvbnNvbGUiLCJiIiwiZmx1c2giLCJwcGYiLCJob29rIiwiY29uc29sZV9yZXBvcnQiLCJzcmMiLCJvdmVyIiwiayIsIm1zZ2YiLCJrJDAiLCJoZWFkZXIiLCJ0YWdzIiwiZm10IiwiaCIsImNvbnNvbGVfcmVwb3J0ZXIiLCJnaXRfYWZfc2NoZW1lIiwiZ2l0X2FmX3BvcnQiLCJnaXRfYWZfaG9zdG5hbWUiLCJwcF9lcnJvciIsIndpdGhfcmVkaXJlY3RzIiwib3B0IiwiZiIsInVyaSIsInN0aCIsIm1heCIsInRibCIsImdvIiwiYm9keSIsInJlc3AiLCJzdGF0dXNfY29kZSIsImdldCIsImhlYWRlcnMiLCJ4IiwiaGVhZGVycyQwIiwicG9zdCIsImJvZHkkMCIsImNvbnRleHQiLCJjdHgiLCJlZG4iLCJrMSIsImN0eCQwIiwiZWRuJDAiLCJrMSQwIiwiY3R4JDEiLCJwcF9lcnJvciQwIiwiZXJyIiwicHBfd3JpdGVfZXJyb3IiLCJ3cml0ZSIsInQiLCJjcyIsIm91dHB1dCIsIm91dHB1dCQwIiwid3JpdGV2IiwiY3NzIiwiciIsInJlYWQiLCJhZHZlcnRpc2VkX3JlZnMiLCJ1cmkkMCIsImNvbnRlbnRzIiwiY2xvc2UiLCJjb25uZWN0IiwiZW5kcG9pbnQiLCJodHRwX3Byb3RvY29sIiwiaHR0cF9lbmRwb2ludCIsImNvbm5lY3QkMCIsImswIiwiZ2l0X3RyYW5zbWlzc2lvbiIsImdpdF9zY2hlbWUiLCJrMiIsImdpdF91cmkiLCJnaXRfaHR0cF9oZWFkZXJzIiwiaGFuZHNoYWtlIiwidXJpMCIsInVyaTEiLCJmbG93IiwiY3R4JDIiLCJzcGVjIiwib2Zfc3RyaW5nIiwic3RyIiwidG9fc3RyaW5nIiwicmVmZXJlbmNlIiwiaGVhZCIsImJhcmUiLCJidWZmZXJzIiwiaW5pdCIsInJvb3QiLCJjb25maWciLCJjb25maWckMCIsImNvbmZpZyQxIiwiY29uZmlnJDIiLCJyZW1vdGUiLCJzeW1ib2wiLCJhIiwiZSIsImZldGNoJDAiLCJkZXB0aCIsImJyYW5jaCIsImluaXQkMCIsInRlc3RfcG9wdWxhdGUiLCJhZGQiLCJwIiwidGVzdF9wdWxsIiwicmVwbyIsInVwc3RyZWFtIiwic3RyaW5nX29mX2NvZGUiLCJjaCIsImkiLCJwcF9jb2RlIiwidiIsInBwX21vZHMiLCJldnRfb2ZfanNrZXkiLCJldnQiLCJzJDAiLCJzJDEiLCJncmF5IiwibGlnaHQiLCJkYXJrIiwiYmxhY2siLCJyZWQiLCJncmVlbiIsInllbGxvdyIsImJsdWUiLCJtYWdlbnRhIiwiY3lhbiIsIndoaXRlIiwibGlnaHRibGFjayIsImxpZ2h0cmVkIiwibGlnaHRncmVlbiIsImxpZ2h0eWVsbG93IiwibGlnaHRibHVlIiwibGlnaHRtYWdlbnRhIiwibGlnaHRjeWFuIiwibGlnaHR3aGl0ZSIsInN5bWJvbCQwIiwicmVwbGFjZSIsInByZXYiLCJuZXh0IiwicHAiLCJidHciLCJidWYiLCJta3N0cmluZyIsInJlcyIsImFkZF9kZWNpbWFsIiwiZDEiLCJkMiIsImQzIiwiYWRkX2NoYXJzIiwiYyIsIm4iLCJzdWIwY3AiLCJsZW4iLCJvZl9jaGFyc19yZXYiLCJicyIsInhzIiwiZXF1YWwkMCIsIm9mX3N0cmluZyQwIiwidG9fc3RyaW5nJDAiLCJvZl91Y2hhcnMiLCJ1Y3MiLCJyZXBsaWNhdGVjIiwidyIsInBwJDAiLCJwcCQxIiwidW5kZXJsaW5lIiwic2l6ZSIsIm1lcmdlJDAiLCJzMiIsInNldCQwIiwidmciLCJyZXBsYWNlJDAiLCJwcCQyIiwiZXF1YWwkMSIsImVtcHR5JDMiLCJkYXJrJDAiLCJzeW1ib2wkMSIsImExIiwiYTIiLCJyZXBsYWNlJDEiLCJmZyIsImJnIiwiZm9udCIsIm1lcmdlJDEiLCJzZXQkMSIsIm1lbnVfbWFpbiIsIm1lbnVfc3ViIiwiY2xpY2thYmxlIiwiY3Vyc29yIiwiZW1wdHkkNCIsImFsbCIsInAyX21heCIsInAxIiwicDIiLCJib3VuZHNfc2VnbWVudCIsImFzY2VuZGVyIiwic2l6ZSQwIiwiYWR2YW5jZSIsInltYXgiLCJ5bWluIiwicGFyYW0kMSIsInQyIiwidDEiLCJ0MiQwIiwidDEkMCIsInAxJDAiLCJwMiQwIiwidDIkMSIsInQxJDEiLCJyaWdodCIsImxlZnQiLCJib3R0b20iLCJ0b3AiLCJ0JDAiLCJwJDAiLCJlbXB0eSQ1Iiwidm9pZCQwIiwiYXR0ciIsImEwIiwic3ltYm9sJDIiLCJzeW1ib2wkMyIsInN5bWJvbCQ0IiwiaGNyb3AiLCJpbWciLCJ2Y3JvcCIsImNyb3AiLCJsIiwic3RoJDAiLCJzdGgkMSIsInN0aCQyIiwiaW1nJDAiLCJocGFkIiwidnBhZCIsInBhZCIsImNvbmNhdG0iLCJ6IiwieHMkMCIsImFjY3VtIiwieHMkMSIsImhjYXQiLCJ2Y2F0IiwiemNhdCIsInRleHQkMCIsInR4Iiwic3RyaW5nIiwidWNoYXJzIiwibGluc3BjbSIsIm0iLCJ0YWJ1bGF0ZSIsIm0kMCIsIm4kMCIsInkiLCJjaGFycyIsImN0b3IiLCJ3JDAiLCJoJDAiLCJsaW5lIiwiY2hhciQwIiwic3RyX29mX2JveCIsImZpbGxfYm94IiwiY29sb3IiLCJwYXRoX2JveCIsIndpZHRoIiwidmNhdCQwIiwiZCIsInBwJDMiLCJjb21wb3NlIiwiYSQwIiwiYSQxIiwiYSQyIiwidCQxIiwiZGltIiwic2VnbWVudF9rZXJuX2NhY2hlIiwic2VnbWVudCIsIm1ldHJpY3MiLCJzeiIsIm5vZGUiLCJ0ZXh0IiwiaTIiLCJpMSIsImkyJDAiLCJpMSQwIiwiaTIkMSIsImkxJDEiLCJwMSQxIiwicDIkMSIsImkkMCIsInAwIiwicDEkMiIsImkkMSIsInAwJDAiLCJwMSQzIiwibWF4aSIsIm1pbmkiLCJtYWtlJDAiLCJlbXB0eSQ2IiwidmFyJDAiLCJzdGF0dXMkMCIsImhhc19mb2N1cyIsImNsb2NrIiwicmVxdWVzdF92YXIiLCJyZXF1ZXN0IiwicmVsZWFzZSIsIm1lcmdlJDIiLCJzMSIsInBwX3ZhciIsInBwX3N0YXR1cyIsIm1ha2UkMSIsInYkMCIsInBwX2RpcmVjdGlvbiIsImRpciIsInBwJDQiLCJnIiwicGFpciIsIm1ha2UkMiIsInNoaWZ0IiwiZnN0Iiwic2l6ZSQxIiwic25kIiwibWF5X2hhbmRsZSIsInBwX21heV9oYW5kbGUiLCJwcF9rZXkiLCJmbGFnc19ub25lIiwiZmxhZ190cmFuc2llbnRfc2Vuc29yIiwiZmxhZ19wZXJtYW5lbnRfc2Vuc29yIiwibGF5b3V0X3NwZWMiLCJsYXlvdXRfd2lkdGgiLCJsYXlvdXRfc3RyZXRjaF93aWR0aCIsImxheW91dF9oZWlnaHQiLCJsYXlvdXRfc3RyZXRjaF9oZWlnaHQiLCJwcF9sYXlvdXRfc3BlYyIsInNoIiwic3ciLCJjYWNoZSIsImluaXQkMiIsImF0b20iLCJzcGFjZSIsIm1vdXNlX2FyZWEiLCJrZXlib2FyZF9hcmVhIiwiZm9jdXMiLCJmb2N1cyQwIiwiZm9jdXMkMSIsInNoaWZ0X2FyZWEiLCJzaXplX3NlbnNvciIsImhhbmRsZXIiLCJ0cmFuc2llbnRfc2Vuc29yIiwiZnJhbWVfc2Vuc29yIiwicGVybWFuZW50X3NlbnNvciIsInByZXBhcmVfZ3Jhdml0eSIsInJlc2l6ZSIsInNoJDAiLCJyZXNpemVfdG8iLCJldmVudF9maWx0ZXIiLCJqb2luX3giLCJqb2luX3kiLCJqb2luX3oiLCJwYWNrX3giLCJwYWNrX3kiLCJwYWNrX3oiLCJoY2F0JDAiLCJ2Y2F0JDEiLCJ6Y2F0JDAiLCJoYXNfZm9jdXMkMCIsInBwJDUiLCJwcF9kZXNjIiwiZGVzYyIsImRlc2MkMCIsImRlc2MkMSIsImRlc2MkMiIsInkkMCIsIngkMCIsIm4kMSIsIm4kMiIsImIkMCIsImIkMSIsIml0ZXIkMCIsInVpIiwidTIiLCJ1MSIsInUiLCJtYWtlJDMiLCJzaXplJDIiLCJzb2x2ZV9mb2N1cyIsImF1eCIsInNwbGl0Iiwic2EiLCJzYiIsInRvdGFsIiwic3RyZXRjaCIsImZsZXgiLCJyYXRpbyIsInBhY2siLCJmaXhlZCIsImcxIiwiZzIiLCJ2MiIsInYxIiwiZ3Jhdml0eSIsInYxJDAiLCJoYXNfdHJhbnNpZW50X3NlbnNvciIsImZsYWdzIiwiaGFzX3Blcm1hbmVudF9zZW5zb3IiLCJ1cGRhdGVfc2Vuc29ycyIsIm94Iiwib3kiLCJveCQwIiwib3kkMCIsInN3JDAiLCJ1aSQwIiwic2gkMSIsInN3JDEiLCJveSQ0Iiwib3gkNCIsInNlbnNvciIsInNlbnNvciQwIiwic2Vuc29yJDEiLCJzZW5zb3IkMiIsInJ3IiwiZHgiLCJyaCIsImR5Iiwib3kkMSIsIm94JDEiLCJzeSIsInN4IiwidCQyIiwib3kkMiIsIm94JDIiLCJidyIsImF3Iiwib3gkMyIsImJoIiwiYWgiLCJveSQzIiwidWkkMSIsInVwZGF0ZV9mb2N1cyIsInRfc2l6ZV9vZl90IiwidF9zaXplX2Rlc2Nfb2ZfdCIsImgkNSIsInckMSIsInYkMSIsInYkMiIsInQkMyIsInYkMyIsInQkNCIsInQkNSIsInYkNCIsInQkNiIsImIkMiIsImIkMyIsImEkMyIsInVwZGF0ZSIsInN0IiwiYnRuIiwiaGFuZGxlIiwiZiQwIiwicmgkMCIsIm9mZnNldHkiLCJyZWxlYXNlX2dyYWIiLCJyZXNpemVfY2FudmFzIiwiaW1hZ2UiLCJyZXNpemVfY2FudmFzMiIsInNhbWVfc2l6ZSIsImRpc3BhdGNoX21vdXNlIiwiZXZlbnQiLCJkcmFnIiwicmVuZGVyX25vZGUiLCJ2eDEiLCJ2eTEiLCJ2eDIiLCJ2eTIiLCJpbWFnZSQwIiwiY2FjaGUkMCIsImltYWdlJDEiLCJ2eCIsInZ5IiwiY2FjaGUkMSIsInZ4JDAiLCJ2eSQwIiwiaW1hZ2UkMiIsImNhIiwiY2IiLCJ2eCQxIiwidnkkMSIsImltYWdlJDMiLCJjYSQwIiwiY2IkMCIsInZ4JDIiLCJ2eSQyIiwiaW1hZ2UkNCIsImNhJDEiLCJjYiQxIiwidngkMyIsInZ5JDMiLCJpbWFnZSQ1IiwidmlldyIsImRpc3BhdGNoX3Jhd19rZXkiLCJrZXkiLCJpdGVyIiwic3QkMCIsInRsIiwic3QkMiIsInN0JDMiLCJzdCQxIiwiZ3JhYl9mb2N1cyIsImRpc3BhdGNoX2ZvY3VzIiwiZGlzcGF0Y2hfa2V5Iiwia2V5JDAiLCJtb2RzIiwia2V5JDEiLCJkaXIkMCIsImRpciQxIiwia2V5JDIiLCJkaXNwYXRjaF9ldmVudCIsIm1vdXNlIiwiY29weV91bnRpbCIsInF1aXQiLCJpbnB1dCIsInF1aXQkMCIsInB1c2giLCJzdHJlYW0iLCJyZXN1bHQiLCJyZW5kZXIiLCJldmVudHMiLCJkb2MiLCJyZW5kZXJlciIsInB1c2hfcmVmcmVzaCIsInJlZnJlc2hfc3RyZWFtIiwiZG9fcXVpdCIsInF1aXQkMSIsImRvX3F1aXQkMCIsImV2ZW50cyQwIiwicmVmcmVzaCIsInByb2Nlc3NfZXZlbnQiLCJzdHJpbmckMCIsImludCQwIiwiYm9vbCIsImZsb2F0JDAiLCJwcmludGYiLCJrcHJpbnRmIiwia2ZtdCIsIndpbmRvd19tYW5hZ2VyIiwiYmFzZSIsIm92ZXJsYXlzIiwiY29tcG9zaXRpb24iLCJjb21wb3NpdGUiLCJ3aW5kb3dfbWFuYWdlcl92aWV3Iiwid20iLCJ3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyIsIm1lbnVfb3ZlcmxheSIsImFyb3VuZCIsInJvdyIsImhfcGFkIiwidl9wYWQiLCJjYXRjaGFsbCIsInNjcm9sbF9zdGVwIiwic2Nyb2xsX2FyZWEiLCJvZmZzZXQiLCJvZmZzZXQkMCIsInNjcm9sbCIsImRfeCIsImRfeSIsInNfeSIsInNfeCIsInNfeCQwIiwic195JDAiLCJmb2N1c19oYW5kbGVyIiwibWFpbl9tZW51X2l0ZW0iLCJvdmVybGF5Iiwib25fY2xpY2siLCJzdWJfbWVudV9pdGVtIiwic3ViX2VudHJ5IiwiaF9wYW5lIiwic3RhdGVfdmFyIiwic3RhdGUiLCJwb3MiLCJsJDAiLCJyJDAiLCJzcGxpdHRlciIsImF0IiwibWF4JDAiLCJwb3MkMCIsInNwbGl0dGVyJDAiLCJ2X3BhbmUiLCJib3QiLCJ0b3AkMCIsImJvdCQwIiwiZXFfdWNfYyIsInVjIiwiZWRpdF9maWVsZCIsIm9uX2NoYW5nZSIsImZvY3VzX2giLCJjb250ZW50Iiwib25fY2hhbmdlJDAiLCJ0ZXh0JDEiLCJwb3MkMSIsImxpbmVfZW1wdHkiLCJsaW5lX21ha2UiLCJsaW5lX2FwcGVuZCIsInRhYmxlIiwiY29weV9saW5lX2N1cnNvciIsInhpIiwieXMiLCJ5aSIsInJvd19vZl9jdXJzb3IiLCJsaW5lX29mX2N1cnNvciIsImN1cnNvcl9tb3ZlIiwiY3Vyc29yX3JvdyIsIm5ld19yb3ciLCJuZXdfbGluZSIsImN1cnNvcl9saW5lIiwiZWRpdF9hcmVhX29mX3N0cmluZyIsImZvY3VzX3ZhbCIsImZpbmRfZm9jdXMiLCJmb2N1c19oYW5kbGVfY29tcGFyZSIsImZvY3VzZWRfcm93X29mX3RhYmxlIiwiZWRpdF9hcmVhIiwiZmlyc3QiLCJyb3dfcHJldiIsImxpbmVfcHJldiIsInN0cl9wcmV2Iiwib2xkX3JvdyIsIm9sZF9saW5lIiwib19zdHIiLCJuX3N0ciIsInRyZWVfbmF2IiwidHJlZSIsInBhdGgiLCJuZXdfbGluZV9mb2N1cyIsImN1cnNvcl9saW5lX2ZvY3VzIiwidHJlZWxpc3QiLCJ0ZSIsImN1cnNvcnZpZXciLCJwdXNoX2N2IiwiY3YiLCJzdGVwIiwiY3Zyb290IiwiY3Vyc29ydmlldyQwIiwidHJlZV92aWV3IiwidGFicyIsImN1ciIsImlkeF9zZWwiLCJ0YWJfYW5ub3QiLCJ0YWJfYmFyIiwidW5mb2xkYWJsZSIsInN1bW1hcnkiLCJmb2xkZWRfYnlfZGVmYXVsdCIsIm9wZW5lZCIsImZvbGRfY29udGVudCIsIm9wIiwic3VtbWFyeSQwIiwiZm9sZCIsInNwZWNfc3VtIiwic3BlY19mb2xkIiwidG9vX2JpZyIsImhib3giLCJ2Ym94IiwiemJveCIsInZsaXN0IiwiYnVsbGV0Iiwidmxpc3Rfd2l0aCIsImZpbHRlciIsImZpbHRlcl9tYXAiLCJhY2MiLCJhY2MkMCIsImwkMSIsImFjYyQxIiwibF9maWx0ZXIiLCJ2bGlzdF9vZl90ZXh0Iiwia2V5X2hhbmRsZXIiLCJidXR0b25fb2YiLCJidXR0b24iLCJmaWxlX3NlbGVjdCIsImFicyIsInBfcmVsIiwiYXJyIiwic3RhcnQiLCJ0b2dnbGUiLCJsYmwiLCJta19idXQiLCJzdF92IiwibGJsX3YiLCJuZXdfc3QiLCJ0b2dnbGUkMCIsInRvZ2dsZSQxIiwiYWRqdXN0X29mZnNldCIsInZpc2libGUiLCJvZmYiLCJvZmYkMCIsIm9mZiQxIiwic2Nyb2xsYmFyX3dpZHRoIiwiZGVjcl9pZiIsImNvbmQiLCJzY3JvbGxiYXJfYmciLCJzY3JvbGxiYXJfZmciLCJzY3JvbGxiYXJfY2xpY2tfc3RlcCIsInNjcm9sbGJhcl93aGVlbF9zdGVwIiwiaHNjcm9sbGJhciIsInNldCIsInByZWZpeCIsInN1ZmZpeCIsIm1vdXNlX2hhbmRsZXIiLCJ2c2Nyb2xsYmFyIiwic2Nyb2xsYm94IiwidXBkYXRlX3NpemUiLCJtZWFzdXJlX3NpemUiLCJjb21wb3NlX2JhcnMiLCJodmlzaWJsZSIsInZ2aXNpYmxlIiwiaHZpc2libGUkMCIsInZ2aXNpYmxlJDAiLCJzdGF0ZV93Iiwic3RhdGVfaCIsInN0YXRlX3giLCJzdGF0ZV95Iiwic2V0X3ZzY3JvbGwiLCJzZXRfaHNjcm9sbCIsInNjYWxlX2NhbnZhcyIsImNhbnZhcyIsIngiLCJkcHIiLCJyZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJ3aWR0aCQwIiwiaGVpZ2h0JDAiLCJ3ZWJnbF9pbml0aWFsaXplIiwiYXR0cnMiLCJjdHgiLCJncmFwaHZfaW5pdGlhbGl6ZSIsIndlYmdsX2N0eCIsInZnIiwicmVxdWVzdF9hbmltYXRpb25fZnJhbWUiLCJzIiwidCIsInRpbWUiLCJyZW5kZXJfc3RyZWFtIiwicmVuZGVyIiwiaSIsImRldmljZV9yYXRpbyIsImdyYXZpdHlfcGFkIiwiZ3Jhdml0eV9jcm9wIiwiYm9keSIsIndtIiwidGVzdF90cmVlIiwidWkiLCJyb290IiwicHVzaF9ldmVudCIsImV2ZW50cyIsImltYWdlcyIsIm9wdCIsInAiLCJtIiwicCQwIiwiZXYiXSwic291cmNlcyI6WyIiLCIvYnVpbHRpbi8raW50NjQuanMiLCIvYnVpbHRpbi8rbWxCeXRlcy5qcyIsIi9idWlsdGluLytmYWlsLmpzIiwiL2J1aWx0aW4vK3N0ZGxpYi5qcyIsIi9idWlsdGluLytmb3JtYXQuanMiLCIvYnVpbHRpbi8raWVlZV83NTQuanMiLCIvYnVpbHRpbi8rZnNfbm9kZS5qcyIsIi9idWlsdGluLytmcy5qcyIsIi9idWlsdGluLyt1bml4LmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytmc19mYWtlLmpzIiwiL2J1aWx0aW4vK25hdC5qcyIsIi9idWlsdGluLytncmFwaGljcy5qcyIsIi9idWlsdGluLyttYXJzaGFsLmpzIiwiL2J1aWx0aW4vK2lvLmpzIiwiL2J1aWx0aW4vK2djLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK2NvbXBhcmUuanMiLCIvaG9tZS9jcWMvLm9wYW0vc3dpdGNoLWdyYXBodi13ZWJnbC1pcm1pbi9saWIvYmlnc3RyaW5nYWYvcnVudGltZS5qcyIsIi9idWlsdGluLytqc2xpYi5qcyIsIi9idWlsdGluLytwYXJzaW5nLmpzIiwiL2J1aWx0aW4vK2ludHMuanMiLCIvYnVpbHRpbi8raGFzaC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8ranNsaWJfanNfb2Zfb2NhbWwuanMiLCIvYnVpbHRpbi8rb2JqLmpzIiwiL2J1aWx0aW4vK2JhY2t0cmFjZS5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rd2Vhay5qcyIsIi9idWlsdGluLyttZDUuanMiLCIvYnVpbHRpbi8rc3RyLmpzIiwiL2hvbWUvY3FjLy5vcGFtL3N3aXRjaC1ncmFwaHYtd2ViZ2wtaXJtaW4vbGliL2NzdHJ1Y3QvY3N0cnVjdC5qcyIsIi91c3IvbGliL29jYW1sL3VjaGFyLm1sIiwiL3Vzci9saWIvb2NhbWwvaW50NjQubWwiLCIvdXNyL2xpYi9vY2FtbC9sZXhpbmcubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxGb3JtYXQubWwiLCIvdXNyL2xpYi9vY2FtbC9wcmludGV4Yy5tbCIsIi91c3IvbGliL29jYW1sL2ZpbGVuYW1lLm1sIiwiL3Vzci9saWIvb2NhbWwvY29tcGxleC5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbEF0b21pYy5tbCIsIi91c3IvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi91c3IvbGliL29jYW1sL3BlcnZhc2l2ZXMubWwiLCIvdXNyL2xpYi9vY2FtbC9yYW5kb20ubWwiLCIvdXNyL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi91c3IvbGliL29jYW1sL2xpc3QubWwiLCIvdXNyL2xpYi9vY2FtbC9pbl9jaGFubmVsLm1sIiwiL3Vzci9saWIvb2NhbWwvb3V0X2NoYW5uZWwubWwiLCIvdXNyL2xpYi9vY2FtbC9laXRoZXIubWwiLCIvdXNyL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvdXNyL2xpYi9vY2FtbC9vYmoubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxMYXp5Lm1sIiwiL3Vzci9saWIvb2NhbWwvbGF6eS5tbCIsIi91c3IvbGliL29jYW1sL3NlcS5tbCIsIi91c3IvbGliL29jYW1sL29wdGlvbi5tbCIsIi91c3IvbGliL29jYW1sL3Jlc3VsdC5tbCIsIi91c3IvbGliL29jYW1sL2Jvb2wubWwiLCIvdXNyL2xpYi9vY2FtbC9jaGFyLm1sIiwiL3Vzci9saWIvb2NhbWwvYnl0ZXMubWwiLCIvdXNyL2xpYi9vY2FtbC9pbnQubWwiLCIvdXNyL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvdXNyL2xpYi9vY2FtbC91bml0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbWFyc2hhbC5tbCIsIi91c3IvbGliL29jYW1sL2FycmF5Lm1sIiwiL3Vzci9saWIvb2NhbWwvaW50MzIubWwiLCIvdXNyL2xpYi9vY2FtbC9wYXJzaW5nLm1sIiwiL3Vzci9saWIvb2NhbWwvc2V0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbWFwLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RhY2subWwiLCIvdXNyL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi91c3IvbGliL29jYW1sL3N0cmVhbS5tbCIsIi91c3IvbGliL29jYW1sL2J1ZmZlci5tbCIsIi91c3IvbGliL29jYW1sL3ByaW50Zi5tbCIsIi91c3IvbGliL29jYW1sL2FyZy5tbCIsIi91c3IvbGliL29jYW1sL2Z1bi5tbCIsIi91c3IvbGliL29jYW1sL2djLm1sIiwiL3Vzci9saWIvb2NhbWwvZGlnZXN0Lm1sIiwiL3Vzci9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi91c3IvbGliL29jYW1sL3dlYWsubWwiLCIvdXNyL2xpYi9vY2FtbC9mb3JtYXQubWwiLCIvdXNyL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi91c3IvbGliL29jYW1sL2NhbGxiYWNrLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsT08ubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvdXNyL2xpYi9vY2FtbC9nZW5sZXgubWwiLCIvdXNyL2xpYi9vY2FtbC9lcGhlbWVyb24ubWwiLCIvdXNyL2xpYi9vY2FtbC9iaWdhcnJheS5tbCIsIiIsIiIsIiIsIi91c3IvbGliL29jYW1sL2ludDMyLm1saSIsIi91c3IvbGliL29jYW1sL3N0cmVhbS5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9odW1hbi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ib290X2pzLm1sIiwiL3Vzci9saWIvb2NhbWwvc3RkX2V4aXQubWwiXSwibWFwcGluZ3MiOiI7O2VBQ0MsU0FBVUE7V0FDRkM7Ozs7S0FDTEM7cUJBQ0U7c0JBQ0M7VUFBc0JGLDhDQUVoQkc7UUFDSEM7bUJBRVIsU0FBU0Q7cUJBQ1AsZ0JBQVcsSUFBUEUsT0FBU0gsUUFBUUk7TUFDckJELG9CQUFvQkE7YUFDYkwsbUNBQ1QsZUFiRDtHQWNDQTs7OzZCQzJORixTQUFTTyxtQkFBbUJDO2dDQUFLLG1DQUFRLG9DQUFZOzhCQ3pMckQsU0FBU0MsZ0JBQWdCQyxFQUFHQztnQ0FDMUIsR0FBR0Q7a0NBQVE7Z0NBQ1gsR0FBSUM7a0NBQVUsa0NBQVE7Z0JBQVNEO2dDQUMvQjtpQ0FBTTtrQ0FBUTtnQ0FDZDtrQ0FBUSwyQkFDTixHQUFJQSxNQUFPRSxLQUFLRDtRQUNoQkQ7a0NBQ0EsR0FBSUE7b0NBQVEsT0FBT0U7UUFDbkJELEtBQUtBO1FBQ0xFO2tDQUNBLEdBQUlBO29DQUFRLDBCQUNWLHVDQUtOOzRCRDdDQSx5QkFBc0I7S0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FCOzs7Ozs7O2V1Qm5XRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2tCS0M7S0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0N3QkFDO0tBQ0FDO0tBQ0FDO0tBSUFDO0tBQ0FDOzs7O0tDekJBQztLQW1IQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ285RU1DO0tBUVFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2xsRmRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDc0VFQztLQUNBQztLQUNBQztLQUNBQzs7OztLQW9DQUM7S0FDQUM7S0FDQUM7S0FDQUM7OztLQW1JQUM7S0FDQUM7S0FDQUM7S0FDQUM7OztLQ3hQRkM7S0FDQUM7S0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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UUFDWnRFO3FDQWVJLFVBREZrRixJQWZLRjs7V0FBS1Y7NENBa0JiOytCQXhCTDs7O2dDQXlCMEI7cUZBQVc7OEJBM0oxQixTS3hRVGUsY0w0YWVsQjtnQ0FBSztrQ0FBSzs7MERBQVZBO2tDQUFnQztnRkFBRzs4QkFwS3pDLFNDN0pUbUIsV0R1VVd4QztnQ0FBSTtlTXpjZk4sT055Y1dNLDRCQUF3Qjs4QkExSzFCLFNDNUpUeUMsYUR1VWFyRjtnQ0FBSTtlTTFjakJzQyxPTjBjYXRDLDRCQUEwQjs4QkEzSzlCLFNDM0pUc0YsWUR1VVl0RjtnQ0FBSTtlTTNjaEJzQyxPTjJjWXRDLDRCQUF5Qjs4QkE1SzVCLFNDMUpUdUYsVUR1VVVqSztnQ0FBeUI7ZU01Y25DZ0gsaUNONGNtQyxjQUF6QmhILDZCQUEwQzs4QkE3SzNDLFNDekpUa0ssWUR1VVloRztnQ0FBeUI7ZU03Y3JDOEMsaUNONmNxQyxVQUF6QjlDLDZCQUE0Qzs4QkE5Sy9DLFNDeEpUaUcsY0R1VWN6RjsrQkFDaEI7UU0vY0VzQyxPTjhjY3RDO2dDQUNRO1FNL2N0QnNDO2dDTitjK0M7ZU0vYy9DQSxpQ04rYzJEOzhCQWhMbEQsU0N2SlRvRDtnQ0R3VW1CO1FNaGRuQnBEO2dDTmdkNEM7ZU1oZDVDQSxpQ05nZHdEOzhCQWpML0MsU0N0SlRxRCxXRDJVVy9DO2dDQUFJO2VNbmRmTCxPTm1kV0ssNEJBQXdCOzhCQXJMMUIsU0NySlRnRCxhRDJVYTVGO2dDQUFJO2VNcGRqQnVDLE9Ob2RhdkMsNEJBQTBCOzhCQXRMOUIsU0NwSlQ2RixZRDJVWTdGO2dDQUFJO2VNcmRoQnVDLE9OcWRZdkMsNEJBQXlCOzhCQXZMNUIsU0NuSlQ4RixVRDJVVXhLO2dDQUF5QjtlTXRkbkNpSCxpQ05zZG1DLGNBQXpCakgsNkJBQTBDOzhCQXhMM0MsU0NsSlR5SyxZRDJVWXZHO2dDQUF5QjtlTXZkckMrQyxpQ051ZHFDLFVBQXpCL0MsNkJBQTRDOzhCQXpML0MsU0NqSlR3RyxjRDJVY2hHOytCQUNoQjtRTXpkRXVDLE9Od2RjdkM7Z0NBQ1E7UU16ZHRCdUM7Z0NOeWQrQztlTXpkL0NBLGlDTnlkMkQ7OEJBM0xsRCxTQ2hKVDBEO2dDRDRVbUI7UU0xZG5CMUQ7Z0NOMGQ0QztlTTFkNUNBLGlDTjBkd0Q7OEJBNUwvQyxTQy9JVDJEO2dDRCtVZTtRTS9kZjVEO2dDTitkZTtlSy9kZkQsZ0NMK2Q2Qzs4QkFoTXBDLFNDOUlUOEQ7Z0NEK1VjOztpQ0FBYTs7Z0NBQWE7OzhCQWpNL0IsU0M3SVRDO2dDRCtVa0I7Z0NBQWlCO29GQUFhOzhCQWxNdkMsU0M1SVRDO2dDRCtVZ0I7O2lDQUFlOztnQ0FBYTs7OEJBbk1uQyxTQzNJVEM7Z0NEK1VvQjtnQ0FBbUI7b0ZBQWE7OEJBcE0zQyxTQ2hGVEM7aUJYNU9MLElVMGhCcUNySTs4QkE5TnZCLFNDNUVUc0k7Z0NEa1RhO09BRitCQztPQUFOMUo7T0FBaEIySjtPQUFONUo7aUNBRUg7NENBRitCMko7aUNBRXRDO3NDQUZnQkM7Z0NBQ2hCO21EQURVNUosS0FBc0JDOzs4QkFRdEI7S0FBaEI0SjtnQ0FBZ0IsS01qZmhCNUQ7OEJOaWZnQixTQ3RUaEI2RCxRRHdUWXBIOytCQUNkOzs7bUNBRW1COzttQ0FDSjt3Q0FOYm1IO21DQU1hO21CQURYRSxhQUNBQztxQkFDQUU7dUNBQ0Y7Ozt1Q0FBRzs7a0JBSERIOzBDQUdxRDs7OztrQkFOM0NySDt3Q0FNK0M7dUJBRnpEc0gscUNBR1M7bUJBRlRFO21DQURXOytDQURYSCxhQUNBQzttQ0FLVTs7WUFYWkgsY0FNRUcsU0FDQUU7bUNBSVUsVUFBVkM7a0NBQVU7K0NBQ2U7OEJBWlgsU0NwVGhCQztnQ0RrVWdCOzs2Q0FkaEJQLCtDQWN5RDs4QkFkekMsU0N2VGhCUSxLRHVVS0M7K0JBQ1A7OytCQUNBO2VBRk9BLGtDQUVTOzZCQUVWO3NEQ3hVSkY7OEJENlVvRDtpQlZqa0J6RDs4QlVpa0J5RDtpQlZqa0J6RDs4QlVpa0J5RDtpQlZqa0J6RDs4QlVpa0J5RDtpQlZqa0J6RDs4QlVpa0J5RDtpQlZqa0J6RDs4QlVpa0J5RDs7OztvQlZqa0J6RDs7Ozs7OzhCVWlrQnlELFNLcFpwREc7aUJmN0tMOzhCVWlrQnlELFNLOWdCcERDO2lCZm5ETDs4QlVpa0J5RCxTQ3JXcERDO2lCWDVOTDs4QlVpa0J5RCxTQ3RXcERDO2lCWDNOTDs4QlVpa0J5RCxTQ3ZXcERDO2lCWDFOTDs4QlVpa0J5RCxTQ3hXcERDO2lCWHpOTDs4QlVpa0J5RCxTQ3pXcERDO2lCWHhOTDs4QlVpa0J5RCxTQzFXcERDO2lCWHZOTDs4QlVpa0J5RCxTQy9XcERDO2lCWGxOTDs4QlVpa0J5RCxTTW5nQnBEQztpQmhCOURMOzhCVWlrQnlELFNDdFhwREM7aUJYM01MOzhCVWlrQnlELFNDdlhwREM7aUJYMU1MOzhCVWlrQnlELFNDeFhwREM7aUJYek1MOzhCVWlrQnlELFNDMVhwREM7aUJYdk1MOzhCVWlrQnlELFNNeGdCcERDO2lCaEJ6REw7OEJVaWtCeUQsU016Z0JwREM7aUJoQnhETDs4QlVpa0J5RCxTTTNnQnBEQztpQmhCdERMOzhCVWlrQnlEOzs7T0M5aUJwRHBJO09BQ0FGOzs7Ozs7Ozs7Ozs7OztPQVNBRztPQUNBRztPQTZCQUM7T0N5Q1FFO09EdkNSQztPQUlBRjtPRWxDQUc7T0FDQUM7T0FDQUM7T0FNQUM7T0FDQUM7T0FDQUM7O09GbUdBSztPQUVBQztPQUVBRztPQURBRDtPQUVBRTtPQUVBQztPRXJHQU07T0FEQUM7T0NRQUM7T0N4QkFHO09DQUFDO09BQ0FDO09MaUlBNkM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FDQUM7T0FFQUU7T0FEQUQ7T0FHQUc7T0FEQUQ7T0toSkF4RDtPQURBQztPQUVBTjtPQXFCQTZGO09BQ0F0RjtPQUNBcUY7T0FFQWhGO09BQ0FGO09BQ0FHO09BQ0FHO09BSkEyRTtPTDhJQUQ7T0FDQXpFO09BQ0F3RTtPQUNBRDtPQUNBRDtPS3ZKQXBFO09BQ0FDO09BU0FrRTtPRC9CQWhFO09BREFDO09BRUFGO09Ka0xBZ0U7T0FDQXBEO09JOUlBVDtPSmdKQU87T0FDQUM7T0FDQW9EO09BQ0FEO09B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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytEQ0NZMndGO3FCQUFPLE1BQU1BLGlCQUF2QjtnRERERjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBO3lCQ0NVQyx1QkFBdUJBLGtCQUFtQkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlRERwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lEQ0NDQTswQ0RERDtzRENDQ0M7MkNEREQsWUNDQ0M7MENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUNDQ0M7NENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvRENDQ0MsNENEREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aURDQ0NDOzZDREREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDcUNDQztLQUdBQztLQUdBQztLQXVDQUM7S0FHQUM7S0FHQUM7S0FHQUM7S0FHQUM7S0FhQUM7S0FxRUFDO0tBS0FDO0tBc0JBQztLQVlBQzt5Q0R2TkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3lEQzJNQ0QsVUF0S0FYOzs7K0NEckNELFdDMk1DVzt3Q0QzTUQ7O3lEQzJNQ0EsVUF0S0FYOzBDRHJDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7eURDMk1DVyxVQXRLQVg7OzsrQ0RyQ0QsV0MyTUNXO3dDRDNNRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0NxQ0NYO09BR0FDO09BR0FDO2lDRDNDRDs7Ozs7O09Da0ZDQztPQUdBQztPQUdBQztPQUdBQztPQUdBQzs7OztPQWFBQzs7Ozs7Ozs7Ozs7OztPQXFFQUM7T0FLQUM7T0FzQkFDO09BWUFDOzs7Ozs7Ozs7Ozs7O2lCRHZORDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ2lxQk9jO0tBaUNFQzs7S0FxbEJBQztLQTRDQUM7Ozs7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MkNBQ2dCRTsrQkFDekIsYUFBd0NDO2lDQUN4Qzs7eUNBTklMO2tDQU1KLE9BTElDO2lDQUtKO3FCRC9GSDtpQ0MrRkc7cUJEL0ZIO2lDQytGRzs7a0NBRUk7a0RBSG9DSTtrQ0FHcEM7aUNBREY7Y0FMRUg7aUNBSUo7a0NBQ0U7a0NBRUE7a0RBTkVDO2tDQU1GOztvQ0FHdUI7Ozs7Z0RBR1N4QjtxQ0FBUzs7cUJBQVRBO2dEQUFlO21DQUh4QjtxQkRyRzVCO29CQ2tGT0Q7cUJBc0JlQztxQ0FBUzs7cUJBQVRBO2dEQUFjOzJDRHhHcEM7bUNDd0dhO2tCQXRCTkQ7O29DQXNCTTs7OzttQ0FEUjtvREFqQkVhLGFBZUFpQixPQU5BRjtrQ0FRRjtvQ0FLRTs7cUJBMUJBNUI7cUJBR0FZO3FCQUNBQzs4QkF1Qk9BLEdBQUttQixJQUFXQyxFQUFFYjtrREFFckIsY0FBZWM7b0RBQ1g7OztxREFDRTs7O2tDQUZTQSxvQkFGSUQsT0FBRWIsNkJBS2Q7a0RBSFA7Ozs7Ozs7O21EQUlTO29FQU5OUCxRQUFnQm9CLEVBQUViO2tEQU1aLGNBQ09jO29EQUNaO2tDQURZQSxvQkFEWkMsK0JBRXVDO2tEQUZsQzsyRUFFbUM7bUJBZmhESixrQ0FnQlE7a0NBZlY7OztrQ0FJRjs7Z0RBYU9LO29DQUNIOztzQ0FDMEI7cUVBRnZCQTtxQ0FFQTtpREFyQktQO29DQXFCTDswREFBbUQ7a0NBZjFEOzs7Ozs7OztvQ0FZYzs7Ozs7Ozs7OztpREFHNkM7K0JBNUIzRDs7OztpQ0FBUztxREFEZ0JIO2dDQUNoQjs2REE0QmtEOzhCQTlCbEQ7Ozs4QkFDVDs7OzhCQURTLHlCQUNUOzs7Ozs4Q0Q3Rkg7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7OEJDa0JTOzs7OytDRGxCVCIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2Zmc2V0XG52YXIgY2FtbF9pbnQ2NF9vZmZzZXQgPSBNYXRoLnBvdygyLCAtMjQpO1xuXG4vL1Byb3ZpZGVzOiBNbEludDY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gTWxJbnQ2NCAobG8sbWksaGkpIHtcbiAgdGhpcy5sbyA9IGxvICYgMHhmZmZmZmY7XG4gIHRoaXMubWkgPSBtaSAmIDB4ZmZmZmZmO1xuICB0aGlzLmhpID0gaGkgJiAweGZmZmY7XG59XG5NbEludDY0LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IFwiX2pcIlxuTWxJbnQ2NC5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG8sdGhpcy5taSx0aGlzLmhpKTtcbn1cblxuTWxJbnQ2NC5wcm90b3R5cGUudWNvbXBhcmUgPSBmdW5jdGlvbiAoeCkge1xuICBpZiAodGhpcy5oaSA+IHguaGkpIHJldHVybiAxO1xuICBpZiAodGhpcy5oaSA8IHguaGkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubWkgPiB4Lm1pKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubWkgPCB4Lm1pKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLmxvID4geC5sbykgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmxvIDwgeC5sbykgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgaGkgPSB0aGlzLmhpIDw8IDE2O1xuICB2YXIgeGhpID0geC5oaSA8PCAxNjtcbiAgaWYgKGhpID4geGhpKSByZXR1cm4gMTtcbiAgaWYgKGhpIDwgeGhpKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLm1pID4geC5taSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLm1pIDwgeC5taSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5sbyA+IHgubG8pIHJldHVybiAxO1xuICBpZiAodGhpcy5sbyA8IHgubG8pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5uZWcgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBsbyA9IC0gdGhpcy5sbztcbiAgdmFyIG1pID0gLSB0aGlzLm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gLSB0aGlzLmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyArIHgubG87XG4gIHZhciBtaSA9IHRoaXMubWkgKyB4Lm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gdGhpcy5oaSArIHguaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5zdWIgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvIC0geC5sbztcbiAgdmFyIG1pID0gdGhpcy5taSAtIHgubWkgKyAobG8gPj4gMjQpO1xuICB2YXIgaGkgPSB0aGlzLmhpIC0geC5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gKiB4LmxvO1xuICB2YXIgbWkgPSAoKGxvICogY2FtbF9pbnQ2NF9vZmZzZXQpIHwgMCkgKyB0aGlzLm1pICogeC5sbyArIHRoaXMubG8gKiB4Lm1pO1xuICB2YXIgaGkgPSAoKG1pICogY2FtbF9pbnQ2NF9vZmZzZXQpIHwgMCkgKyB0aGlzLmhpICogeC5sbyArIHRoaXMubWkgKiB4Lm1pICsgdGhpcy5sbyAqIHguaGk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICh0aGlzLmxvfHRoaXMubWl8dGhpcy5oaSkgPT0gMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmlzTmVnID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKHRoaXMuaGkgPDwgMTYpIDwgMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvICYgeC5sbywgdGhpcy5taSAmIHgubWksIHRoaXMuaGkgJiB4LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLm9yID0gZnVuY3Rpb24gKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG98eC5sbywgdGhpcy5taXx4Lm1pLCB0aGlzLmhpfHguaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24gKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG9eeC5sbywgdGhpcy5taV54Lm1pLCB0aGlzLmhpXnguaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc2hpZnRfbGVmdCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICBpZiAocyA8IDI0KSB7XG4gICAgcmV0dXJuIG5ldyBNbEludDY0ICh0aGlzLmxvIDw8IHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5taSA8PCBzKSB8ICh0aGlzLmxvID4+ICgyNCAtIHMpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmhpIDw8IHMpIHwgKHRoaXMubWkgPj4gKDI0IC0gcykpKTtcbiAgfVxuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG8gPDwgKHMgLSAyNCksXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5taSA8PCAocyAtIDI0KSkgfCAodGhpcy5sbyA+PiAoNDggLSBzKSkpO1xuICByZXR1cm4gbmV3IE1sSW50NjQoMCwgMCwgdGhpcy5sbyA8PCAocyAtIDQ4KSlcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X3JpZ2h0X3Vuc2lnbmVkID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIGlmIChzIDwgMjQpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLmxvID4+IHMpIHwgKHRoaXMubWkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMubWkgPj4gcykgfCAodGhpcy5oaSA8PCAoMjQgLSBzKSksXG4gICAgICAodGhpcy5oaSA+PiBzKSk7XG4gIGlmIChzIDwgNDgpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLm1pID4+IChzIC0gMjQpKSB8ICh0aGlzLmhpIDw8ICg0OCAtIHMpKSxcbiAgICAgICh0aGlzLmhpID4+IChzIC0gMjQpKSxcbiAgICAgIDApO1xuICByZXR1cm4gbmV3IE1sSW50NjQgKHRoaXMuaGkgPj4gKHMgLSA0OCksIDAsIDApO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc2hpZnRfcmlnaHQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgdmFyIGggPSAodGhpcy5oaSA8PCAxNikgPj4gMTY7XG4gIGlmIChzIDwgMjQpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLmxvID4+IHMpIHwgKHRoaXMubWkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMubWkgPj4gcykgfCAoaCA8PCAoMjQgLSBzKSksXG4gICAgICAoKHRoaXMuaGkgPDwgMTYpID4+IHMpID4+PiAxNik7XG4gIHZhciBzaWduID0gKHRoaXMuaGkgPDwgMTYpID4+IDMxO1xuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5taSA+PiAocyAtIDI0KSkgfCAodGhpcy5oaSA8PCAoNDggLSBzKSksXG4gICAgICAodGhpcy5oaSA8PCAxNikgPj4gKHMgLSAyNCkgPj4gMTYsXG4gICAgICBzaWduICYgMHhmZmZmKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0ICgodGhpcy5oaSA8PCAxNikgPj4gKHMgLSAzMiksIHNpZ24sIHNpZ24pO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubHNsMSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5oaSA9ICh0aGlzLmhpIDw8IDEpIHwgKHRoaXMubWkgPj4gMjMpO1xuICB0aGlzLm1pID0gKCh0aGlzLm1pIDw8IDEpIHwgKHRoaXMubG8gPj4gMjMpKSAmIDB4ZmZmZmZmO1xuICB0aGlzLmxvID0gKHRoaXMubG8gPDwgMSkgJiAweGZmZmZmZjtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxzcjEgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubG8gPSAoKHRoaXMubG8gPj4+IDEpIHwgKHRoaXMubWkgPDwgMjMpKSAmIDB4ZmZmZmZmO1xuICB0aGlzLm1pID0gKCh0aGlzLm1pID4+PiAxKSB8ICh0aGlzLmhpIDw8IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5oaSA9IHRoaXMuaGkgPj4+IDE7XG59XG5NbEludDY0LnByb3RvdHlwZS51ZGl2bW9kID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIG9mZnNldCA9IDA7XG4gIHZhciBtb2R1bHVzID0gdGhpcy5jb3B5KCk7XG4gIHZhciBkaXZpc29yID0geC5jb3B5KCk7XG4gIHZhciBxdW90aWVudCA9IG5ldyBNbEludDY0KDAsMCwwKTtcbiAgd2hpbGUgKG1vZHVsdXMudWNvbXBhcmUoZGl2aXNvcikgPiAwKSB7XG4gICAgb2Zmc2V0Kys7XG4gICAgZGl2aXNvci5sc2wxKCk7XG4gIH1cbiAgd2hpbGUgKG9mZnNldCA+PSAwKSB7XG4gICAgb2Zmc2V0IC0tO1xuICAgIHF1b3RpZW50LmxzbDEoKTtcbiAgICBpZiAobW9kdWx1cy51Y29tcGFyZShkaXZpc29yKSA+PSAwKSB7XG4gICAgICBxdW90aWVudC5sbyArKztcbiAgICAgIG1vZHVsdXMgPSBtb2R1bHVzLnN1YihkaXZpc29yKTtcbiAgICB9XG4gICAgZGl2aXNvci5sc3IxKCk7XG4gIH1cbiAgcmV0dXJuIHsgcXVvdGllbnQgOiBxdW90aWVudCwgbW9kdWx1cyA6IG1vZHVsdXMgfTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmRpdiA9IGZ1bmN0aW9uICh5KVxue1xuICB2YXIgeCA9IHRoaXM7XG4gIGlmICh5LmlzWmVybygpKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICB2YXIgc2lnbiA9IHguaGkgXiB5LmhpO1xuICBpZiAoeC5oaSAmIDB4ODAwMCkgeCA9IHgubmVnKCk7XG4gIGlmICh5LmhpICYgMHg4MDAwKSB5ID0geS5uZWcoKTtcbiAgdmFyIHEgPSB4LnVkaXZtb2QoeSkucXVvdGllbnQ7XG4gIGlmIChzaWduICYgMHg4MDAwKSBxID0gcS5uZWcoKTtcbiAgcmV0dXJuIHE7XG59XG5NbEludDY0LnByb3RvdHlwZS5tb2QgPSBmdW5jdGlvbiAoeSlcbntcbiAgdmFyIHggPSB0aGlzO1xuICBpZiAoeS5pc1plcm8oKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgdmFyIHNpZ24gPSB4LmhpO1xuICBpZiAoeC5oaSAmIDB4ODAwMCkgeCA9IHgubmVnKCk7XG4gIGlmICh5LmhpICYgMHg4MDAwKSB5ID0geS5uZWcoKTtcbiAgdmFyIHIgPSB4LnVkaXZtb2QoeSkubW9kdWx1cztcbiAgaWYgKHNpZ24gJiAweDgwMDApIHIgPSByLm5lZygpO1xuICByZXR1cm4gcjtcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvSW50ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sbyB8ICh0aGlzLm1pIDw8IDI0KTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvRmxvYXQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAoKHRoaXMuaGkgPDwgMTYpICogTWF0aC5wb3coMiwgMzIpICsgdGhpcy5taSAqIE1hdGgucG93KDIsIDI0KSkgKyB0aGlzLmxvO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFt0aGlzLmhpID4+IDgsXG4gICAgICAgICAgdGhpcy5oaSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5taSA+PiAxNixcbiAgICAgICAgICAodGhpcy5taSA+PiA4KSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5taSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5sbyA+PiAxNixcbiAgICAgICAgICAodGhpcy5sbyA+PiA4KSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5sbyAmIDB4ZmZdO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubG8zMiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubG8gfCAoKHRoaXMubWkgJiAweGZmKSA8PCAyNCk7XG59XG5NbEludDY0LnByb3RvdHlwZS5oaTMyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKCh0aGlzLm1pID4+PiA4KSAmIDB4ZmZmZikgfCAodGhpcy5oaSA8PCAxNik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdWx0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3VsdCh4LHkpIHsgcmV0dXJuIHgudWNvbXBhcmUoeSkgPCAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY29tcGFyZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9jb21wYXJlKHgseSwgdG90YWwpIHsgcmV0dXJuIHguY29tcGFyZSh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbmVnIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X25lZyAoeCkgeyByZXR1cm4geC5uZWcoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYWRkIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2FkZCAoeCwgeSkgeyByZXR1cm4geC5hZGQoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3N1YiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zdWIgKHgsIHkpIHsgcmV0dXJuIHguc3ViKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9tdWwgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2ludDY0X211bCh4LHkpIHsgcmV0dXJuIHgubXVsKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9pc196ZXJvIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2lzX3plcm8oeCkgeyByZXR1cm4gK3guaXNaZXJvKCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSh4KSB7IHJldHVybiAreC5pc05lZygpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYW5kIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2FuZCAoeCwgeSkgeyByZXR1cm4geC5hbmQoeSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vciAoeCwgeSkgeyByZXR1cm4geC5vcih5KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3hvciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF94b3IgKHgsIHkpIHsgcmV0dXJuIHgueG9yKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X2xlZnQgKHgsIHMpIHsgcmV0dXJuIHguc2hpZnRfbGVmdChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQgKHgsIHMpIHsgcmV0dXJuIHguc2hpZnRfcmlnaHRfdW5zaWduZWQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0ICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X3JpZ2h0KHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9kaXYgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfZGl2ICh4LCB5KSB7IHJldHVybiB4LmRpdih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbW9kIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X21vZCAoeCwgeSkgeyByZXR1cm4geC5tb2QoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2ludDMyIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX2ludDMyICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh4ICYgMHhmZmZmZmYsICh4ID4+IDI0KSAmIDB4ZmZmZmZmLCAoeCA+PiAzMSkgJiAweGZmZmYpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9faW50MzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9faW50MzIgKHgpIHsgcmV0dXJuIHgudG9JbnQoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9fZmxvYXQgKHgpIHsgcmV0dXJuIHgudG9GbG9hdCAoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0LCBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX2Zsb2F0ICh4KSB7XG4gIGlmICh4IDwgMCkgeCA9IE1hdGguY2VpbCh4KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KFxuICAgIHggJiAweGZmZmZmZixcbiAgICBNYXRoLmZsb29yKHggKiBjYW1sX2ludDY0X29mZnNldCkgJiAweGZmZmZmZixcbiAgICBNYXRoLmZsb29yKHggKiBjYW1sX2ludDY0X29mZnNldCAqIGNhbWxfaW50NjRfb2Zmc2V0KSAmIDB4ZmZmZik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZm9ybWF0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSwgY2FtbF9pbnQ2NF9uZWdcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIsIGNhbWxfaW50NjRfdG9faW50MzJcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfaXNfemVybywgY2FtbF9zdHJfcmVwZWF0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2Zvcm1hdCAoZm10LCB4KSB7XG4gIHZhciBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgaWYgKGYuc2lnbmVkY29udiAmJiBjYW1sX2ludDY0X2lzX25lZ2F0aXZlKHgpKSB7XG4gICAgZi5zaWduID0gLTE7IHggPSBjYW1sX2ludDY0X25lZyh4KTtcbiAgfVxuICB2YXIgYnVmZmVyID0gXCJcIjtcbiAgdmFyIHdiYXNlID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihmLmJhc2UpO1xuICB2YXIgY3Z0YmwgPSBcIjAxMjM0NTY3ODlhYmNkZWZcIjtcbiAgZG8ge1xuICAgIHZhciBwID0geC51ZGl2bW9kKHdiYXNlKTtcbiAgICB4ID0gcC5xdW90aWVudDtcbiAgICBidWZmZXIgPSBjdnRibC5jaGFyQXQoY2FtbF9pbnQ2NF90b19pbnQzMihwLm1vZHVsdXMpKSArIGJ1ZmZlcjtcbiAgfSB3aGlsZSAoISBjYW1sX2ludDY0X2lzX3plcm8oeCkpO1xuICBpZiAoZi5wcmVjID49IDApIHtcbiAgICBmLmZpbGxlciA9ICcgJztcbiAgICB2YXIgbiA9IGYucHJlYyAtIGJ1ZmZlci5sZW5ndGg7XG4gICAgaWYgKG4gPiAwKSBidWZmZXIgPSBjYW1sX3N0cl9yZXBlYXQgKG4sICcwJykgKyBidWZmZXI7XG4gIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgYnVmZmVyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSwgY2FtbF9mYWlsd2l0aCwgY2FtbF9wYXJzZV9kaWdpdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiwgY2FtbF9pbnQ2NF91bHRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYWRkLCBjYW1sX2ludDY0X211bCwgY2FtbF9pbnQ2NF9uZWdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCxjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX3N0cmluZyhzKSB7XG4gIHZhciByID0gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKTtcbiAgdmFyIGkgPSByWzBdLCBzaWduID0gclsxXSwgYmFzZSA9IHJbMl07XG4gIHZhciBiYXNlNjQgPSBjYW1sX2ludDY0X29mX2ludDMyKGJhc2UpO1xuICB2YXIgdGhyZXNob2xkID1cbiAgICAgIG5ldyBNbEludDY0KDB4ZmZmZmZmLCAweGZmZmZmZmYsIDB4ZmZmZikudWRpdm1vZChiYXNlNjQpLnF1b3RpZW50O1xuICB2YXIgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gIHZhciBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHZhciByZXMgPSBjYW1sX2ludDY0X29mX2ludDMyKGQpO1xuICBmb3IgKDs7KSB7XG4gICAgaSsrO1xuICAgIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICAgIGlmIChjID09IDk1KSBjb250aW51ZTtcbiAgICBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBicmVhaztcbiAgICAvKiBEZXRlY3Qgb3ZlcmZsb3cgaW4gbXVsdGlwbGljYXRpb24gYmFzZSAqIHJlcyAqL1xuICAgIGlmIChjYW1sX2ludDY0X3VsdCh0aHJlc2hvbGQsIHJlcykpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICAgIGQgPSBjYW1sX2ludDY0X29mX2ludDMyKGQpO1xuICAgIHJlcyA9IGNhbWxfaW50NjRfYWRkKGNhbWxfaW50NjRfbXVsKGJhc2U2NCwgcmVzKSwgZCk7XG4gICAgLyogRGV0ZWN0IG92ZXJmbG93IGluIGFkZGl0aW9uIChiYXNlICogcmVzKSArIGQgKi9cbiAgICBpZiAoY2FtbF9pbnQ2NF91bHQocmVzLCBkKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIH1cbiAgaWYgKGkgIT0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgaWYgKGJhc2UgPT0gMTAgJiYgY2FtbF9pbnQ2NF91bHQobmV3IE1sSW50NjQoMCwgMCwgMHg4MDAwKSwgcmVzKSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgaWYgKHNpZ24gPCAwKSByZXMgPSBjYW1sX2ludDY0X25lZyhyZXMpO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkobG8sIG1pLCBoaSl7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKVxufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKGxvLCBoaSl7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgbG8gJiAweGZmZmZmZixcbiAgICAoKGxvID4+PiAyNCkgJiAweGZmKSB8ICgoaGkgJiAweGZmZmYpIDw8IDgpLFxuICAgIChoaSA+Pj4gMTYpICYgMHhmZmZmKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbG8zMiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9sbzMyKHYpeyByZXR1cm4gdi5sbzMyKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2hpMzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaGkzMih2KXsgcmV0dXJuIHYuaGkzMigpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9ieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9ieXRlcyhhKSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChhWzddIDw8IDAgfCAoYVs2XSA8PCA4KSB8IChhWzVdIDw8IDE2KSxcbiAgICAgICAgICAgICAgICAgICAgIGFbNF0gPDwgMCB8IChhWzNdIDw8IDgpIHwgKGFbMl0gPDwgMTYpLFxuICAgICAgICAgICAgICAgICAgICAgYVsxXSA8PCAwIHwgKGFbMF0gPDwgOCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF90b19ieXRlcyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF90b19ieXRlcyh4KSB7IHJldHVybiB4LnRvQXJyYXkoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaGFzaCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9oYXNoKHYpe1xuICByZXR1cm4gKHYubG8zMigpKSBeICh2LmhpMzIoKSlcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMC0yMDE0IErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIEFuIE9DYW1sIHN0cmluZyBpcyBhbiBvYmplY3Qgd2l0aCB0aHJlZSBmaWVsZHM6XG4vLyAtIHRhZyAndCdcbi8vIC0gbGVuZ3RoICdsJ1xuLy8gLSBjb250ZW50cyAnYydcbi8vXG4vLyBUaGUgY29udGVudHMgb2YgdGhlIHN0cmluZyBjYW4gYmUgZWl0aGVyIGEgSmF2YVNjcmlwdCBhcnJheSBvclxuLy8gYSBKYXZhU2NyaXB0IHN0cmluZy4gVGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZyBjYW4gYmUgbGVzcyB0aGFuIHRoZVxuLy8gbGVuZ3RoIG9mIHRoZSBPQ2FtbCBzdHJpbmcuIEluIHRoaXMgY2FzZSwgcmVtYWluaW5nIGJ5dGVzIGFyZVxuLy8gYXNzdW1lZCB0byBiZSB6ZXJvZXMuIEFycmF5cyBhcmUgbXV0YWJsZSBidXQgY29uc3VtZXMgbW9yZSBtZW1vcnlcbi8vIHRoYW4gc3RyaW5ncy4gQSBjb21tb24gcGF0dGVybiBpcyB0byBzdGFydCBmcm9tIGFuIGVtcHR5IHN0cmluZyBhbmRcbi8vIHByb2dyZXNzaXZlbHkgZmlsbCBpdCBmcm9tIHRoZSBzdGFydC4gUGFydGlhbCBzdHJpbmdzIG1ha2VzIGl0XG4vLyBwb3NzaWJsZSB0byBpbXBsZW1lbnQgdGhpcyBlZmZpY2llbnRseS5cbi8vXG4vLyBXaGVuIGNvbnZlcnRpbmcgdG8gYW5kIGZyb20gVVRGLTE2LCB3ZSBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgdGhlXG4vLyBzdHJpbmcgaXMgY29tcG9zZWQgb25seSBvZiBBU0NJSSBjaGFyYWN0ZXJzIChpbiB3aGljaCBjYXNlLCBub1xuLy8gY29udmVyc2lvbiBuZWVkcyB0byBiZSBwZXJmb3JtZWQpIG9yIG5vdC5cbi8vXG4vLyBUaGUgc3RyaW5nIHRhZyBjYW4gdGh1cyB0YWtlIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuLy8gICBmdWxsIHN0cmluZyAgICAgQllURSB8IFVOS05PV046ICAgICAgMFxuLy8gICAgICAgICAgICAgICAgICAgQllURSB8IEFTQ0lJOiAgICAgICAgOVxuLy8gICAgICAgICAgICAgICAgICAgQllURSB8IE5PVF9BU0NJSTogICAgOFxuLy8gICBzdHJpbmcgcHJlZml4ICAgUEFSVElBTDogICAgICAgICAgICAgMlxuLy8gICBhcnJheSAgICAgICAgICAgQVJSQVk6ICAgICAgICAgICAgICAgNFxuLy9cbi8vIE9uZSBjYW4gdXNlIGJpdCBtYXNraW5nIHRvIGRpc2NyaW1pbmF0ZSB0aGVzZSBkaWZmZXJlbnQgY2FzZXM6XG4vLyAgIGtub3duX2VuY29kaW5nKHgpID0geCY4XG4vLyAgIGlzX2FzY2lpKHgpID0gICAgICAgeCYxXG4vLyAgIGtpbmQoeCkgPSAgICAgICAgICAgeCY2XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9zdHJfcmVwZWF0KG4sIHMpIHtcbiAgaWYobiA9PSAwKSByZXR1cm4gXCJcIjtcbiAgaWYgKHMucmVwZWF0KSB7cmV0dXJuIHMucmVwZWF0KG4pO30gLy8gRUNNQXNjcmlwdCA2IGFuZCBGaXJlZm94IDI0K1xuICB2YXIgciA9IFwiXCIsIGwgPSAwO1xuICBmb3IoOzspIHtcbiAgICBpZiAobiAmIDEpIHIgKz0gcztcbiAgICBuID4+PSAxO1xuICAgIGlmIChuID09IDApIHJldHVybiByO1xuICAgIHMgKz0gcztcbiAgICBsKys7XG4gICAgaWYgKGwgPT0gOSkge1xuICAgICAgcy5zbGljZSgwLDEpOyAvLyBmbGF0dGVuIHRoZSBzdHJpbmdcbiAgICAgIC8vIHRoZW4sIHRoZSBmbGF0dGVuaW5nIG9mIHRoZSB3aG9sZSBzdHJpbmcgd2lsbCBiZSBmYXN0ZXIsXG4gICAgICAvLyBhcyBpdCB3aWxsIGJlIGNvbXBvc2VkIG9mIGxhcmdlciBwaWVjZXNcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG4vL1dlYWtkZWZcbi8vIFByZSBFQ01BU2NyaXB0IDUsIFthcHBseV0gd291bGQgbm90IHN1cHBvcnQgYXJyYXktbGlrZSBvYmplY3QuXG4vLyBJbiBzdWNoIHNldHVwLCBUeXBlZF9hcnJheSB3b3VsZCBiZSBpbXBsZW1lbnRlZCBhcyBwb2x5ZmlsbCwgYW5kIFtmLmFwcGx5XSB3b3VsZFxuLy8gZmFpbCBoZXJlLiBNYXJrIHRoZSBwcmltaXRpdmUgYXMgV2Vha2RlZiwgc28gdGhhdCBwZW9wbGUgY2FuIG92ZXJyaWRlIGl0IGVhc2lseS5cbmZ1bmN0aW9uIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyAoYSwgaSwgbGVuKSB7XG4gIHZhciBmID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbiAgaWYgKGkgPT0gMCAmJiBsZW4gPD0gNDA5NiAmJiBsZW4gPT0gYS5sZW5ndGgpIHJldHVybiBmLmFwcGx5IChudWxsLCBhKTtcbiAgdmFyIHMgPSBcIlwiO1xuICBmb3IgKDsgMCA8IGxlbjsgaSArPSAxMDI0LGxlbi09MTAyNClcbiAgICBzICs9IGYuYXBwbHkgKG51bGwsIGEuc2xpY2UoaSxpICsgTWF0aC5taW4obGVuLCAxMDI0KSkpO1xuICByZXR1cm4gcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF91dGY4X29mX3V0ZjE2XG5mdW5jdGlvbiBjYW1sX3V0Zjhfb2ZfdXRmMTYocykge1xuICBmb3IgKHZhciBiID0gXCJcIiwgdCA9IGIsIGMsIGQsIGkgPSAwLCBsID0gcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChjIDwgMHg4MCkge1xuICAgICAgZm9yICh2YXIgaiA9IGkgKyAxOyAoaiA8IGwpICYmIChjID0gcy5jaGFyQ29kZUF0KGopKSA8IDB4ODA7IGorKyk7XG4gICAgICBpZiAoaiAtIGkgPiA1MTIpIHsgdC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7IGIgKz0gcy5zbGljZShpLCBqKSB9XG4gICAgICBlbHNlIHQgKz0gcy5zbGljZShpLCBqKTtcbiAgICAgIGlmIChqID09IGwpIGJyZWFrO1xuICAgICAgaSA9IGo7XG4gICAgfVxuICAgIGlmIChjIDwgMHg4MDApIHtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGMwIHwgKGMgPj4gNikpO1xuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODAgfCAoYyAmIDB4M2YpKTtcbiAgICB9IGVsc2UgaWYgKGMgPCAweGQ4MDAgfHwgYyA+PSAweGRmZmYpIHtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGUwIHwgKGMgPj4gMTIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gNikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfSBlbHNlIGlmIChjID49IDB4ZGJmZiB8fCBpICsgMSA9PSBsIHx8XG4gICAgICAgICAgICAgICAoZCA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGQgPiAweGRmZmYpIHtcbiAgICAgIC8vIFVubWF0Y2hlZCBzdXJyb2dhdGUgcGFpciwgcmVwbGFjZWQgYnkgXFx1ZmZmZCAocmVwbGFjZW1lbnQgY2hhcmFjdGVyKVxuICAgICAgdCArPSBcIlxceGVmXFx4YmZcXHhiZFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBpKys7XG4gICAgICBjID0gKGMgPDwgMTApICsgZCAtIDB4MzVmZGMwMDtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGYwIHwgKGMgPj4gMTgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gMTIpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8ICgoYyA+PiA2KSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoYyAmIDB4M2YpKTtcbiAgICB9XG4gICAgaWYgKHQubGVuZ3RoID4gMTAyNCkge3Quc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiO31cbiAgfVxuICByZXR1cm4gYit0O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIGNhbWxfdXRmMTZfb2ZfdXRmOChzKSB7XG4gIGZvciAodmFyIGIgPSBcIlwiLCB0ID0gXCJcIiwgYywgYzEsIGMyLCB2LCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYzEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaWYgKGMxIDwgMHg4MCkge1xuICAgICAgZm9yICh2YXIgaiA9IGkgKyAxOyAoaiA8IGwpICYmIChjMSA9IHMuY2hhckNvZGVBdChqKSkgPCAweDgwOyBqKyspO1xuICAgICAgaWYgKGogLSBpID4gNTEyKSB7IHQuc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiOyBiICs9IHMuc2xpY2UoaSwgaikgfVxuICAgICAgZWxzZSB0ICs9IHMuc2xpY2UoaSwgaik7XG4gICAgICBpZiAoaiA9PSBsKSBicmVhaztcbiAgICAgIGkgPSBqO1xuICAgIH1cbiAgICB2ID0gMTtcbiAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSkge1xuICAgICAgYyA9IGMyICsgKGMxIDw8IDYpO1xuICAgICAgaWYgKGMxIDwgMHhlMCkge1xuICAgICAgICB2ID0gYyAtIDB4MzA4MDtcbiAgICAgICAgaWYgKHYgPCAweDgwKSB2ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHYgPSAyO1xuICAgICAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSkge1xuICAgICAgICAgIGMgPSBjMiArIChjIDw8IDYpO1xuICAgICAgICAgIGlmIChjMSA8IDB4ZjApIHtcbiAgICAgICAgICAgIHYgPSBjIC0gMHhlMjA4MDtcbiAgICAgICAgICAgIGlmICgodiA8IDB4ODAwKSB8fCAoKHYgPj0gMHhkN2ZmKSAmJiAodiA8IDB4ZTAwMCkpKSB2ID0gMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdiA9IDM7XG4gICAgICAgICAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSAmJlxuICAgICAgICAgICAgICAgIChjMSA8IDB4ZjUpKSB7XG4gICAgICAgICAgICAgIHYgPSBjMiAtIDB4M2M4MjA4MCArIChjIDw8IDYpO1xuICAgICAgICAgICAgICBpZiAodiA8IDB4MTAwMDAgfHwgdiA+IDB4MTBmZmZmKSB2ID0gMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHYgPCA0KSB7IC8vIEludmFsaWQgc2VxdWVuY2VcbiAgICAgIGkgLT0gdjtcbiAgICAgIHQgKz0gXCJcXHVmZmZkXCI7XG4gICAgfSBlbHNlIGlmICh2ID4gMHhmZmZmKVxuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZDdjMCArICh2ID4+IDEwKSwgMHhkYzAwICsgKHYgJiAweDNGRikpXG4gICAgZWxzZVxuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHYpO1xuICAgIGlmICh0Lmxlbmd0aCA+IDEwMjQpIHt0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjt9XG4gIH1cbiAgcmV0dXJuIGIrdDtcbn1cblxuLy9Qcm92aWRlczoganNvb19pc19hc2NpaVxuZnVuY3Rpb24ganNvb19pc19hc2NpaSAocykge1xuICAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIGdldHMgYmV0dGVyIGF0IGFyb3VuZCB0aGlzIHBvaW50IGZvciBhbGwgYnJvd3NlcnNcbiAgaWYgKHMubGVuZ3RoIDwgMjQpIHtcbiAgICAvLyBTcGlkZXJtb25rZXkgZ2V0cyBtdWNoIHNsb3dlciB3aGVuIHMubGVuZ3RoID49IDI0IChvbiA2NCBiaXQgYXJjaHMpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSBpZiAocy5jaGFyQ29kZUF0KGkpID4gMTI3KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZVxuICAgIHJldHVybiAhL1teXFx4MDAtXFx4N2ZdLy50ZXN0KHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHN3aXRjaCAocy50ICYgNikge1xuICBkZWZhdWx0OiAvKiBQQVJUSUFMICovXG4gICAgaWYgKGkgPj0gcy5jLmxlbmd0aCkgcmV0dXJuIDA7XG4gIGNhc2UgMDogLyogQllURVMgKi9cbiAgICByZXR1cm4gcy5jLmNoYXJDb2RlQXQoaSk7XG4gIGNhc2UgNDogLyogQVJSQVkgKi9cbiAgICByZXR1cm4gcy5jW2ldXG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSwgYykge1xuICAvLyBUaGUgT0NhbWwgY29tcGlsZXIgdXNlcyBDaGFyLnVuc2FmZV9jaHIgb24gaW50ZWdlcnMgbGFyZ2VyIHRoYW4gMjU1IVxuICBjICY9IDB4ZmY7XG4gIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykge1xuICAgIGlmIChpID09IHMuYy5sZW5ndGgpIHtcbiAgICAgIHMuYyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlIChjKTtcbiAgICAgIGlmIChpICsgMSA9PSBzLmwpIHMudCA9IDA7IC8qQllURVMgfCBVTktPV04qL1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheSAocyk7XG4gIH1cbiAgcy5jW2ldID0gYztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcImluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldCAocywgaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDE2KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSAxKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDEpO1xuICByZXR1cm4gKGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCwgY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQxNihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMSkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKTtcbiAgcmV0dXJuIChiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ2V0MzIocyxpKSB7XG4gIGlmIChpID4+PiAwID49IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSAtIDMpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMSksXG4gICAgICBiMyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAyKSxcbiAgICAgIGI0ID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDMpO1xuICByZXR1cm4gKGI0IDw8IDI0IHwgYjMgPDwgMTYgfCBiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0MzIocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDMpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMSksXG4gICAgICBiMyA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDIpLFxuICAgICAgYjQgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAzKTtcbiAgcmV0dXJuIChiNCA8PCAyNCB8IGIzIDw8IDE2IHwgYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDY0KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSA3KSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IG5ldyBBcnJheSg4KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKyl7XG4gICAgYVs3IC0gal0gPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgaik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCwgY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQ2NChzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gNykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IG5ldyBBcnJheSg4KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKyl7XG4gICAgYVs3IC0gal0gPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyBqKTtcbiAgfVxuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQgKHMsIGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0IChzLCBpLCBjKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldCAocywgaSwgYykge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldDE2KHMsaSxpMTYpe1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAxKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMiA9IDB4RkYgJiBpMTYgPj4gOCxcbiAgICAgIGIxID0gMHhGRiAmIGkxNjtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMCwgYjEpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAxLCBiMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDE2KHMsaSxpMTYpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0MTZcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDE2XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQxNihzLGksaTE2KXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0MTYocyxpLGkxNik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQzMihzLGksaTMyKXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjQgPSAweEZGICYgaTMyID4+IDI0LFxuICAgICAgYjMgPSAweEZGICYgaTMyID4+IDE2LFxuICAgICAgYjIgPSAweEZGICYgaTMyID4+IDgsXG4gICAgICBiMSA9IDB4RkYgJiBpMzI7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDAsIGIxKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMSwgYjIpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAyLCBiMyk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDMsIGI0KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MzIocyxpLGkzMil7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXQzMlwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfc2V0MzJcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDMyKHMsaSxpMzIpe1xuICByZXR1cm4gY2FtbF9ieXRlc19zZXQzMihzLGksaTMyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldDY0KHMsaSxpNjQpe1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSA3KSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBhID0gY2FtbF9pbnQ2NF90b19ieXRlcyhpNjQpO1xuICBmb3IodmFyIGogPSAwOyBqIDwgODsgaisrKSB7XG4gICAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgNyAtIGosIGFbal0pO1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDY0KHMsaSxpNjQpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0NjRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDY0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQ2NChzLGksaTY0KXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0NjQocyxpLGk2NCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0IChzLCBpLCBjKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpLCBjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGY4X29mX3V0ZjE2LCBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIChzKSB7XG4gIHZhciB0YWcgPSA5IC8qIEJZVEVTIHwgQVNDSUkgKi87XG4gIGlmICghanNvb19pc19hc2NpaShzKSlcbiAgICB0YWcgPSA4IC8qIEJZVEVTIHwgTk9UX0FTQ0lJICovLCBzID0gY2FtbF91dGY4X29mX3V0ZjE2KHMpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXModGFnLCBzLCBzLmxlbmd0aCk7XG59XG5cblxuLy9Qcm92aWRlczogTWxCeXRlc1xuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcywganNvb19pc19hc2NpaSwgY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBNbEJ5dGVzICh0YWcsIGNvbnRlbnRzLCBsZW5ndGgpIHtcbiAgdGhpcy50PXRhZzsgdGhpcy5jPWNvbnRlbnRzOyB0aGlzLmw9bGVuZ3RoO1xufVxuTWxCeXRlcy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpe1xuICBzd2l0Y2ggKHRoaXMudCkge1xuICBjYXNlIDk6IC8qQllURVMgfCBBU0NJSSovXG4gICAgcmV0dXJuIHRoaXMuYztcbiAgZGVmYXVsdDpcbiAgICBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHRoaXMpO1xuICBjYXNlIDA6IC8qQllURVMgfCBVTktPV04qL1xuICAgIGlmIChqc29vX2lzX2FzY2lpKHRoaXMuYykpIHtcbiAgICAgIHRoaXMudCA9IDk7IC8qQllURVMgfCBBU0NJSSovXG4gICAgICByZXR1cm4gdGhpcy5jO1xuICAgIH1cbiAgICB0aGlzLnQgPSA4OyAvKkJZVEVTIHwgTk9UX0FTQ0lJKi9cbiAgY2FzZSA4OiAvKkJZVEVTIHwgTk9UX0FTQ0lJKi9cbiAgICByZXR1cm4gdGhpcy5jO1xuICB9XG59O1xuTWxCeXRlcy5wcm90b3R5cGUudG9VdGYxNiA9IGZ1bmN0aW9uICgpe1xuICB2YXIgciA9IHRoaXMudG9TdHJpbmcoKTtcbiAgaWYodGhpcy50ID09IDkpIHJldHVybiByXG4gIHJldHVybiBjYW1sX3V0ZjE2X29mX3V0Zjgocik7XG59XG5NbEJ5dGVzLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uICgpe1xuICB2YXIgY29udGVudCA9IHRoaXMudCA9PSA0ID8gdGhpcy5jLnNsaWNlKCkgOiB0aGlzLmM7XG4gIHJldHVybiBuZXcgTWxCeXRlcyh0aGlzLnQsY29udGVudCx0aGlzLmwpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cl9yZXBlYXQsIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyAocykge1xuICAvKiBBc3N1bWVzIG5vdCBCWVRFUyAqL1xuICBpZiAocy50ID09IDIgLyogUEFSVElBTCAqLylcbiAgICBzLmMgKz0gY2FtbF9zdHJfcmVwZWF0KHMubCAtIHMuYy5sZW5ndGgsICdcXDAnKVxuICBlbHNlXG4gICAgcy5jID0gY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIChzLmMsIDAsIHMuYy5sZW5ndGgpO1xuICBzLnQgPSAwOyAvKkJZVEVTIHwgVU5LT1dOKi9cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkgKHMpIHtcbiAgLyogQXNzdW1lcyBub3QgQVJSQVkgKi9cbiAgaWYoZ2xvYmFsVGhpcy5VaW50OEFycmF5KSB7XG4gICAgdmFyIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KHMubCk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGEgPSBuZXcgQXJyYXkocy5sKTtcbiAgfVxuICB2YXIgYiA9IHMuYywgbCA9IGIubGVuZ3RoLCBpID0gMDtcbiAgZm9yICg7IGkgPCBsOyBpKyspIGFbaV0gPSBiLmNoYXJDb2RlQXQoaSk7XG4gIGZvciAobCA9IHMubDsgaSA8IGw7IGkrKykgYVtpXSA9IDA7XG4gIHMuYyA9IGE7XG4gIHMudCA9IDQ7IC8qIEFSUkFZICovXG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X29mX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9hcnJheV9vZl9ieXRlcyAocykge1xuICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzKTtcbiAgcmV0dXJuIHMuYztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9vZl9zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfb2Zfc3RyaW5nIChzKSB7XG4gIHZhciBsID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgdmFyIGkgPSAwO1xuICBmb3IgKDsgaSA8IGw7IGkrKykgYVtpXSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocyxpKTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9zdHJpbmcobGVuKSB7XG4gIGlmKGxlbiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0cmluZy5jcmVhdGVcIik7XG4gIHJldHVybiBuZXcgTWxCeXRlcyhsZW4/Mjo5LFwiXCIsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9jcmVhdGVfc3RyaW5nKGxlbikge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHJpbmcuY3JlYXRlXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9ieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlcyxjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX2J5dGVzKGxlbikge1xuICBpZiAobGVuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQnl0ZXMuY3JlYXRlXCIpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXMobGVuPzI6OSxcIlwiLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2FycmF5IChhKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhhLDAsYS5sZW5ndGgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9hcnJheSAoYSkge1xuICByZXR1cm4gbmV3IE1sQnl0ZXMoNCxhLGEubGVuZ3RoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19jb21wYXJlIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfY29tcGFyZShzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDwgczIuYyk/LTE6KHMxLmMgPiBzMi5jKT8xOjA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19lcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2VxdWFsKHMxLCBzMikge1xuICBpZihzMSA9PT0gczIpIHJldHVybiAxO1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPT0gczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19lcXVhbFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbm90ZXF1YWwoczEsIHMyKSB7IHJldHVybiAxLWNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMik7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2VxdWFsXG5mdW5jdGlvbiBjYW1sX2J5dGVzX25vdGVxdWFsKHMxLCBzMikgeyByZXR1cm4gMS1jYW1sX2J5dGVzX2VxdWFsKHMxLCBzMik7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19sZXNzZXF1YWwgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8PSBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW4gbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19sZXNzdGhhbihzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDwgczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMyLHMxKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMixzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19sZXNzdGhhblxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ3JlYXRlcnRoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMiwgczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzdGhhbihzMiwgczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbGxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyX3JlcGVhdCwgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2ZpbGxfYnl0ZXMocywgaSwgbCwgYykge1xuICBpZiAobCA+IDApIHtcbiAgICBpZiAoaSA9PSAwICYmIChsID49IHMubCB8fCAocy50ID09IDIgLyogUEFSVElBTCAqLyAmJiBsID49IHMuYy5sZW5ndGgpKSkge1xuICAgICAgaWYgKGMgPT0gMCkge1xuICAgICAgICBzLmMgPSBcIlwiO1xuICAgICAgICBzLnQgPSAyOyAvKiBQQVJUSUFMICovXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzLmMgPSBjYW1sX3N0cl9yZXBlYXQgKGwsIFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICAgICAgICBzLnQgPSAobCA9PSBzLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkocyk7XG4gICAgICBmb3IgKGwgKz0gaTsgaSA8IGw7IGkrKykgcy5jW2ldID0gYztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmlsbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfZmlsbF9ieXRlc1xudmFyIGNhbWxfZmlsbF9zdHJpbmcgPSBjYW1sX2ZpbGxfYnl0ZXNcblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMsIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9ibGl0X2J5dGVzKHMxLCBpMSwgczIsIGkyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgaWYgKChpMiA9PSAwKSAmJlxuICAgICAgKGxlbiA+PSBzMi5sIHx8IChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBsZW4gPj0gczIuYy5sZW5ndGgpKSkge1xuICAgIHMyLmMgPSAoczEudCA9PSA0IC8qIEFSUkFZICovKT9cbiAgICAgIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhzMS5jLCBpMSwgbGVuKTpcbiAgICAgIChpMSA9PSAwICYmIHMxLmMubGVuZ3RoID09IGxlbik/czEuYzpzMS5jLnN1YnN0cihpMSwgbGVuKTtcbiAgICBzMi50ID0gKHMyLmMubGVuZ3RoID09IHMyLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgfSBlbHNlIGlmIChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBpMiA9PSBzMi5jLmxlbmd0aCkge1xuICAgIHMyLmMgKz0gKHMxLnQgPT0gNCAvKiBBUlJBWSAqLyk/XG4gICAgICBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoczEuYywgaTEsIGxlbik6XG4gICAgICAoaTEgPT0gMCAmJiBzMS5jLmxlbmd0aCA9PSBsZW4pP3MxLmM6czEuYy5zdWJzdHIoaTEsIGxlbik7XG4gICAgczIudCA9IChzMi5jLmxlbmd0aCA9PSBzMi5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gIH0gZWxzZSB7XG4gICAgaWYgKHMyLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMyKTtcbiAgICB2YXIgYzEgPSBzMS5jLCBjMiA9IHMyLmM7XG4gICAgaWYgKHMxLnQgPT0gNCAvKiBBUlJBWSAqLykge1xuICAgICAgaWYgKGkyIDw9IGkxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsID0gTWF0aC5taW4gKGxlbiwgYzEubGVuZ3RoIC0gaTEpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIGMyIFtpMiArIGldID0gYzEuY2hhckNvZGVBdChpMSArIGkpO1xuICAgICAgZm9yICg7IGkgPCBsZW47IGkrKykgYzIgW2kyICsgaV0gPSAwO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ibGl0X3N0cmluZyhhLGIsYyxkLGUpIHtcbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGEpLGIsYyxkLGUpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19sZW5ndGgocykgeyByZXR1cm4gcy5sIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHJldHVybiBzLmNoYXJDb2RlQXQoaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBzLmxlbmd0aFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiAoczEgPCBzMik/LTE6KHMxID4gczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDw9IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDwgczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykge1xuICAocy50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocy5jKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh4KSB7IHJldHVybiB4IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHgpIHsgcmV0dXJuIHggfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGYxNl9vZl91dGY4XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpIHtcbiAgaWYoanNvb19pc19hc2NpaShzKSlcbiAgICByZXR1cm4gcztcbiAgcmV0dXJuIGNhbWxfdXRmMTZfb2ZfdXRmOChzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGY4X29mX3V0ZjE2LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIGlmIChqc29vX2lzX2FzY2lpKHMpKVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpXG4gIGVsc2UgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF91dGY4X29mX3V0ZjE2KHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMocykgeyByZXR1cm4gbmV3IE1sQnl0ZXMoMCxzLHMubGVuZ3RoKTsgfVxuXG5cbi8vIFRoZSBzZWN0aW9uIGJlbG93IHNob3VsZCBiZSB1c2VkIHdoZW4gdXNlLWpzLXN0cmluZz1mYWxzZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldChzLGksYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBjYW1sX21sX2J5dGVzX2xlbmd0aChzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2NvbXBhcmVcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2NvbXBhcmUoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2VxdWFsXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19lcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfZXF1YWwoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzZXF1YWxcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzdGhhblxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzdGhhblxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykgeyByZXR1cm4gcyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7IHJldHVybiBzIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIHsgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpIHtcbiAgKHMudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIHJldHVybiBzLmMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpe1xuICByZXR1cm4gcy50b1V0ZjE2KClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nKHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2lzX21sX2J5dGVzKHMpIHtcbiAgcmV0dXJuIChzIGluc3RhbmNlb2YgTWxCeXRlcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19jb250ZW50KHMpIHtcbiAgc3dpdGNoIChzLnQgJiA2KSB7XG4gIGRlZmF1bHQ6IC8qIFBBUlRJQUwgKi9cbiAgICBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYztcbiAgY2FzZSA0OlxuICAgIHJldHVybiBzLmNcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19pc19hc2NpaVxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiAodHlwZW9mIHMgPT09IFwic3RyaW5nXCIgJiYgIS9bXlxceDAwLVxceGZmXS8udGVzdChzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2lzX21sX2J5dGVzKHMpO1xufVxuXG4vLyBUaGUgZnVuY3Rpb25zIGJlbG93IGFyZSBkZXByZWNhdGVkXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcocykgeyByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9uZXdfc3RyaW5nIChzKSB7IHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdG9fanNfc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfdG9fanNfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc190b19zdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHMpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9SYWlzZSBleGNlcHRpb25cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9jb25zdGFudCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JhaXNlX2NvbnN0YW50ICh0YWcpIHsgdGhyb3cgdGFnOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmV0dXJuX2V4bl9jb25zdGFudCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JldHVybl9leG5fY29uc3RhbnQgKHRhZykgeyByZXR1cm4gdGFnOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9hcmcgKHRhZywgYXJnKSB7IHRocm93IFswLCB0YWcsIGFyZ107IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX2FyZ3MgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9hcmdzICh0YWcsIGFyZ3MpIHsgdGhyb3cgWzAsIHRhZ10uY29uY2F0KGFyZ3MpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKHRhZywgbXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9hcmcgKHRhZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhtc2cpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mYWlsd2l0aCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZhaWx3aXRoIChtc2cpIHtcbiAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSlcbiAgICBjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmU9WzI0OCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiRmFpbHVyZVwiKSwtM107XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlLCBtc2cpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2ludmFsaWRfYXJndW1lbnQgKG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuSW52YWxpZF9hcmd1bWVudCwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5FbmRfb2ZfZmlsZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuRGl2aXNpb25fYnlfemVybyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9mb3VuZCAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5Ob3RfZm91bmQpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxfZ2VuIChjb25zdCwgc2hhbGxvdylcbi8vV2Vha2RlZlxuZnVuY3Rpb24gY2FtbF9jYWxsX2dlbihmLCBhcmdzKSB7XG4gIGlmKGYuZnVuKVxuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYuZnVuLCBhcmdzKTtcbiAgLy9GSVhNRSwgY2FuIGhhcHBlbiB3aXRoIHRvbyBtYW55IGFyZ3VtZW50c1xuICBpZih0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gZjtcbiAgdmFyIG4gPSBmLmxlbmd0aCB8IDA7XG4gIGlmKG4gPT09IDApIHJldHVybiBmLmFwcGx5KG51bGwsYXJncyk7XG4gIHZhciBhcmdzTGVuID0gYXJncy5sZW5ndGggfCAwO1xuICB2YXIgZCA9IG4gLSBhcmdzTGVuIHwgMDtcbiAgaWYgKGQgPT0gMClcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTtcbiAgZWxzZSBpZiAoZCA8IDApIHtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLmFwcGx5KG51bGwsYXJncy5zbGljZSgwLG4pKSxhcmdzLnNsaWNlKG4pKTtcbiAgfVxuICBlbHNlIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCl7XG4gICAgICB2YXIgZXh0cmFfYXJncyA9IChhcmd1bWVudHMubGVuZ3RoID09IDApPzE6YXJndW1lbnRzLmxlbmd0aDtcbiAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzLmxlbmd0aCtleHRyYV9hcmdzKTtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApIG5hcmdzW2FyZ3MubGVuZ3RoK2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgbmFyZ3MpXG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmFtZWRfdmFsdWVzXG52YXIgY2FtbF9uYW1lZF92YWx1ZXMgPSB7fTtcblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZSAoY29uc3QsY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZShubSx2KSB7XG4gIGNhbWxfbmFtZWRfdmFsdWVzW2NhbWxfanNieXRlc19vZl9zdHJpbmcobm0pXSA9IHY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hbWVkX3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlc1xuZnVuY3Rpb24gY2FtbF9uYW1lZF92YWx1ZShubSkge1xuICByZXR1cm4gY2FtbF9uYW1lZF92YWx1ZXNbbm1dXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbnZhciBjYW1sX2dsb2JhbF9kYXRhID0gWzBdO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX2dsb2JhbCAoY29uc3QsIHNoYWxsb3csIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9nbG9iYWwgKG4sIHYsIG5hbWVfb3B0KSB7XG4gIGlmKG5hbWVfb3B0ICYmIGdsb2JhbFRoaXMudG9wbGV2ZWxSZWxvYylcbiAgICBuID0gZ2xvYmFsVGhpcy50b3BsZXZlbFJlbG9jKG5hbWVfb3B0KTtcbiAgY2FtbF9nbG9iYWxfZGF0YVtuICsgMV0gPSB2O1xuICBpZihuYW1lX29wdCkgY2FtbF9nbG9iYWxfZGF0YVtuYW1lX29wdF0gPSB2O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9nbG9iYWxfZGF0YSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2dldF9nbG9iYWxfZGF0YSAoKSB7IHJldHVybiBjYW1sX2dsb2JhbF9kYXRhOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfcHJpbnRhYmxlIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfaXNfcHJpbnRhYmxlKGMpIHsgcmV0dXJuICsoYyA+IDMxICYmIGMgPCAxMjcpOyB9XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEZvcm1hdFxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2Zvcm1hdFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3BhcnNlX2Zvcm1hdCAoZm10KSB7XG4gIGZtdCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KTtcbiAgdmFyIGxlbiA9IGZtdC5sZW5ndGg7XG4gIGlmIChsZW4gPiAzMSkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZm9ybWF0X2ludDogZm9ybWF0IHRvbyBsb25nXCIpO1xuICB2YXIgZiA9XG4gICAgICB7IGp1c3RpZnk6JysnLCBzaWduc3R5bGU6Jy0nLCBmaWxsZXI6JyAnLCBhbHRlcm5hdGU6ZmFsc2UsXG4gICAgICAgIGJhc2U6MCwgc2lnbmVkY29udjpmYWxzZSwgd2lkdGg6MCwgdXBwZXJjYXNlOmZhbHNlLFxuICAgICAgICBzaWduOjEsIHByZWM6LTEsIGNvbnY6J2YnIH07XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGZtdC5jaGFyQXQoaSk7XG4gICAgc3dpdGNoIChjKSB7XG4gICAgY2FzZSAnLSc6XG4gICAgICBmLmp1c3RpZnkgPSAnLSc7IGJyZWFrO1xuICAgIGNhc2UgJysnOiBjYXNlICcgJzpcbiAgICAgIGYuc2lnbnN0eWxlID0gYzsgYnJlYWs7XG4gICAgY2FzZSAnMCc6XG4gICAgICBmLmZpbGxlciA9ICcwJzsgYnJlYWs7XG4gICAgY2FzZSAnIyc6XG4gICAgICBmLmFsdGVybmF0ZSA9IHRydWU7IGJyZWFrO1xuICAgIGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOiBjYXNlICc1JzpcbiAgICBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzpcbiAgICAgIGYud2lkdGggPSAwO1xuICAgICAgd2hpbGUgKGM9Zm10LmNoYXJDb2RlQXQoaSkgLSA0OCwgYyA+PSAwICYmIGMgPD0gOSkge1xuICAgICAgICBmLndpZHRoID0gZi53aWR0aCAqIDEwICsgYzsgaSsrXG4gICAgICB9XG4gICAgICBpLS07XG4gICAgICBicmVhaztcbiAgICBjYXNlICcuJzpcbiAgICAgIGYucHJlYyA9IDA7XG4gICAgICBpKys7XG4gICAgICB3aGlsZSAoYz1mbXQuY2hhckNvZGVBdChpKSAtIDQ4LCBjID49IDAgJiYgYyA8PSA5KSB7XG4gICAgICAgIGYucHJlYyA9IGYucHJlYyAqIDEwICsgYzsgaSsrXG4gICAgICB9XG4gICAgICBpLS07XG4gICAgY2FzZSAnZCc6IGNhc2UgJ2knOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlICd1JzpcbiAgICAgIGYuYmFzZSA9IDEwOyBicmVhaztcbiAgICBjYXNlICd4JzpcbiAgICAgIGYuYmFzZSA9IDE2OyBicmVhaztcbiAgICBjYXNlICdYJzpcbiAgICAgIGYuYmFzZSA9IDE2OyBmLnVwcGVyY2FzZSA9IHRydWU7IGJyZWFrO1xuICAgIGNhc2UgJ28nOlxuICAgICAgZi5iYXNlID0gODsgYnJlYWs7XG4gICAgY2FzZSAnZSc6IGNhc2UgJ2YnOiBjYXNlICdnJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IGYuY29udiA9IGM7IGJyZWFrO1xuICAgIGNhc2UgJ0UnOiBjYXNlICdGJzogY2FzZSAnRyc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyBmLnVwcGVyY2FzZSA9IHRydWU7XG4gICAgICBmLmNvbnYgPSBjLnRvTG93ZXJDYXNlICgpOyBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcmF3YnVmZmVyKSB7XG4gIGlmIChmLnVwcGVyY2FzZSkgcmF3YnVmZmVyID0gcmF3YnVmZmVyLnRvVXBwZXJDYXNlKCk7XG4gIHZhciBsZW4gPSByYXdidWZmZXIubGVuZ3RoO1xuICAvKiBBZGp1c3QgbGVuIHRvIHJlZmxlY3QgYWRkaXRpb25hbCBjaGFycyAoc2lnbiwgZXRjKSAqL1xuICBpZiAoZi5zaWduZWRjb252ICYmIChmLnNpZ24gPCAwIHx8IGYuc2lnbnN0eWxlICE9ICctJykpIGxlbisrO1xuICBpZiAoZi5hbHRlcm5hdGUpIHtcbiAgICBpZiAoZi5iYXNlID09IDgpIGxlbiArPSAxO1xuICAgIGlmIChmLmJhc2UgPT0gMTYpIGxlbiArPSAyO1xuICB9XG4gIC8qIERvIHRoZSBmb3JtYXR0aW5nICovXG4gIHZhciBidWZmZXIgPSBcIlwiO1xuICBpZiAoZi5qdXN0aWZ5ID09ICcrJyAmJiBmLmZpbGxlciA9PSAnICcpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcgJztcbiAgaWYgKGYuc2lnbmVkY29udikge1xuICAgIGlmIChmLnNpZ24gPCAwKSBidWZmZXIgKz0gJy0nO1xuICAgIGVsc2UgaWYgKGYuc2lnbnN0eWxlICE9ICctJykgYnVmZmVyICs9IGYuc2lnbnN0eWxlO1xuICB9XG4gIGlmIChmLmFsdGVybmF0ZSAmJiBmLmJhc2UgPT0gOCkgYnVmZmVyICs9ICcwJztcbiAgaWYgKGYuYWx0ZXJuYXRlICYmIGYuYmFzZSA9PSAxNikgYnVmZmVyICs9IFwiMHhcIjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnKycgJiYgZi5maWxsZXIgPT0gJzAnKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnMCc7XG4gIGJ1ZmZlciArPSByYXdidWZmZXI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJy0nKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnICc7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGJ1ZmZlcik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczoganNvb19mbG9vcl9sb2cyXG52YXIgbG9nMl9vayA9IE1hdGgubG9nMiAmJiBNYXRoLmxvZzIoMS4xMjM1NTgyMDkyODg5NDc0RSszMDcpID09IDEwMjBcbmZ1bmN0aW9uIGpzb29fZmxvb3JfbG9nMih4KSB7XG4gIGlmKGxvZzJfb2spIHJldHVybiBNYXRoLmZsb29yKE1hdGgubG9nMih4KSlcbiAgdmFyIGkgPSAwO1xuICBpZiAoeCA9PSAwKSByZXR1cm4gLUluZmluaXR5O1xuICBpZih4Pj0xKSB7d2hpbGUgKHg+PTIpIHt4Lz0yOyBpKyt9IH1cbiAgZWxzZSB7d2hpbGUgKHggPCAxKSB7eCo9MjsgaS0tfSB9O1xuICByZXR1cm4gaTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzIsIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpXG5mdW5jdGlvbiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKHgpIHtcbiAgaWYgKCFpc0Zpbml0ZSh4KSkge1xuICAgIGlmIChpc05hTih4KSlcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgxLCAwLCAweDdmZjApO1xuICAgIGlmICh4ID4gMClcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgwLCAwLCAweDdmZjApXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDAsIDAsIDB4ZmZmMClcbiAgfVxuICB2YXIgc2lnbiA9ICh4PT0wICYmIDEveCA9PSAtSW5maW5pdHkpPzB4ODAwMDooeD49MCk/MDoweDgwMDA7XG4gIGlmIChzaWduKSB4ID0gLXg7XG4gIC8vIEludDY0LmJpdHNfb2ZfZmxvYXQgMS4xMjM1NTgyMDkyODg5NDc0RSszMDcgPSAweDdmYjAwMDAwMDAwMDAwMDBMXG4gIC8vIHVzaW5nIE1hdGguTE9HMkUqTWF0aC5sb2coeCkgaW4gcGxhY2Ugb2YgTWF0aC5sb2cyIHJlc3VsdCBpbiBwcmVjaXNpb24gbG9zdFxuICB2YXIgZXhwID0ganNvb19mbG9vcl9sb2cyKHgpICsgMTAyMztcbiAgaWYgKGV4cCA8PSAwKSB7XG4gICAgZXhwID0gMDtcbiAgICB4IC89IE1hdGgucG93KDIsLTEwMjYpO1xuICB9IGVsc2Uge1xuICAgIHggLz0gTWF0aC5wb3coMixleHAtMTAyNyk7XG4gICAgaWYgKHggPCAxNikge1xuICAgICAgeCAqPSAyOyBleHAgLT0xOyB9XG4gICAgaWYgKGV4cCA9PSAwKSB7XG4gICAgICB4IC89IDI7IH1cbiAgfVxuICB2YXIgayA9IE1hdGgucG93KDIsMjQpO1xuICB2YXIgcjMgPSB4fDA7XG4gIHggPSAoeCAtIHIzKSAqIGs7XG4gIHZhciByMiA9IHh8MDtcbiAgeCA9ICh4IC0gcjIpICogaztcbiAgdmFyIHIxID0geHwwO1xuICByMyA9IChyMyAmMHhmKSB8IHNpZ24gfCBleHAgPDwgNDtcbiAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKHIxLCByMiwgcjMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMlxuZnVuY3Rpb24gY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0ICh4KSB7XG4gIHZhciBmbG9hdDMyYSA9IG5ldyBnbG9iYWxUaGlzLkZsb2F0MzJBcnJheSgxKTtcbiAgZmxvYXQzMmFbMF0gPSB4O1xuICB2YXIgaW50MzJhID0gbmV3IGdsb2JhbFRoaXMuSW50MzJBcnJheShmbG9hdDMyYS5idWZmZXIpO1xuICByZXR1cm4gaW50MzJhWzBdIHwgMDtcbn1cblxuLy9GUCBsaXRlcmFscyBjYW4gYmUgd3JpdHRlbiB1c2luZyB0aGUgaGV4YWRlY2ltYWxcbi8vbm90YXRpb24gMHg8bWFudGlzc2EgaW4gaGV4PnA8ZXhwb25lbnQ+IGZyb20gSVNPIEM5OS5cbi8vaHR0cHM6Ly9naXRodWIuY29tL2RhbmtvZ2FpL2pzLWhleGZsb2F0L2Jsb2IvbWFzdGVyL2hleGZsb2F0LmpzXG4vL1Byb3ZpZGVzOiBjYW1sX2hleHN0cmluZ19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcsIGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQgKHgsIHByZWMsIHN0eWxlKSB7XG4gIGlmICghaXNGaW5pdGUoeCkpIHtcbiAgICBpZiAoaXNOYU4oeCkpIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhcIm5hblwiKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKCh4ID4gMCk/XCJpbmZpbml0eVwiOlwiLWluZmluaXR5XCIpO1xuICB9XG4gIHZhciBzaWduID0gKHg9PTAgJiYgMS94ID09IC1JbmZpbml0eSk/MTooeD49MCk/MDoxO1xuICBpZihzaWduKSB4ID0gLXg7XG4gIHZhciBleHAgPSAwO1xuICBpZiAoeCA9PSAwKSB7IH1cbiAgZWxzZSBpZiAoeCA8IDEpIHtcbiAgICB3aGlsZSAoeCA8IDEgJiYgZXhwID4gLTEwMjIpICB7IHggKj0gMjsgZXhwLS0gfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlICh4ID49IDIpIHsgeCAvPSAyOyBleHArKyB9XG4gIH1cbiAgdmFyIGV4cF9zaWduID0gZXhwIDwgMCA/ICcnIDogJysnO1xuICB2YXIgc2lnbl9zdHIgPSAnJztcbiAgaWYgKHNpZ24pIHNpZ25fc3RyID0gJy0nXG4gIGVsc2Uge1xuICAgIHN3aXRjaChzdHlsZSl7XG4gICAgY2FzZSA0MyAvKiAnKycgKi86IHNpZ25fc3RyID0gJysnOyBicmVhaztcbiAgICBjYXNlIDMyIC8qICcgJyAqLzogc2lnbl9zdHIgPSAnICc7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAocHJlYyA+PSAwICYmIHByZWMgPCAxMykge1xuICAgIC8qIElmIGEgcHJlY2lzaW9uIGlzIGdpdmVuLCBhbmQgaXMgc21hbGwsIHJvdW5kIG1hbnRpc3NhIGFjY29yZGluZ2x5ICovXG4gICAgdmFyIGNzdCA9IE1hdGgucG93KDIscHJlYyAqIDQpO1xuICAgIHggPSBNYXRoLnJvdW5kKHggKiBjc3QpIC8gY3N0O1xuICB9XG4gIHZhciB4X3N0ciA9IHgudG9TdHJpbmcoMTYpO1xuICBpZihwcmVjID49IDApe1xuICAgIHZhciBpZHggPSB4X3N0ci5pbmRleE9mKCcuJyk7XG4gICAgaWYoaWR4PDApIHtcbiAgICAgIHhfc3RyICs9ICcuJyArIGNhbWxfc3RyX3JlcGVhdChwcmVjLCAnMCcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhciBzaXplID0gaWR4KzErcHJlYztcbiAgICAgIGlmKHhfc3RyLmxlbmd0aCA8IHNpemUpXG4gICAgICAgIHhfc3RyICs9IGNhbWxfc3RyX3JlcGVhdChzaXplIC0geF9zdHIubGVuZ3RoLCAnMCcpO1xuICAgICAgZWxzZVxuICAgICAgICB4X3N0ciA9IHhfc3RyLnN1YnN0cigwLHNpemUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHNpZ25fc3RyICsgJzB4JyArIHhfc3RyICsgJ3AnICsgZXhwX3NpZ24gKyBleHAudG9TdHJpbmcoMTApKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgKHgpIHtcbiAgdmFyIGxvID0geC5sbztcbiAgdmFyIG1pID0geC5taTtcbiAgdmFyIGhpID0geC5oaTtcbiAgdmFyIGV4cCA9IChoaSAmIDB4N2ZmZikgPj4gNDtcbiAgaWYgKGV4cCA9PSAyMDQ3KSB7XG4gICAgaWYgKChsb3xtaXwoaGkmMHhmKSkgPT0gMClcbiAgICAgIHJldHVybiAoaGkgJiAweDgwMDApPygtSW5maW5pdHkpOkluZmluaXR5O1xuICAgIGVsc2VcbiAgICAgIHJldHVybiBOYU47XG4gIH1cbiAgdmFyIGsgPSBNYXRoLnBvdygyLC0yNCk7XG4gIHZhciByZXMgPSAobG8qayttaSkqaysoaGkmMHhmKTtcbiAgaWYgKGV4cCA+IDApIHtcbiAgICByZXMgKz0gMTY7XG4gICAgcmVzICo9IE1hdGgucG93KDIsZXhwLTEwMjcpO1xuICB9IGVsc2VcbiAgICByZXMgKj0gTWF0aC5wb3coMiwtMTAyNik7XG4gIGlmIChoaSAmIDB4ODAwMCkgcmVzID0gLSByZXM7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV4dGFmdGVyX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9pbnQ2NF9hZGQsIGNhbWxfaW50NjRfc3ViLGNhbWxfaW50NjRfb2ZfaW50MzJcbmZ1bmN0aW9uIGNhbWxfbmV4dGFmdGVyX2Zsb2F0ICh4LHkpIHtcbiAgaWYoaXNOYU4oeCkgfHwgaXNOYU4oeSkpIHJldHVybiBOYU47XG4gIGlmKHg9PXkpIHJldHVybiB5O1xuICBpZih4PT0wKXtcbiAgICBpZih5IDwgMClcbiAgICAgIHJldHVybiAtTWF0aC5wb3coMiwgLTEwNzQpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIE1hdGgucG93KDIsIC0xMDc0KVxuICB9XG4gIHZhciBiaXRzID0gY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KHgpO1xuICB2YXIgb25lID0gY2FtbF9pbnQ2NF9vZl9pbnQzMigxKTtcbiAgaWYgKCh4PHkpID09ICh4PjApKVxuICAgIGJpdHMgPSBjYW1sX2ludDY0X2FkZChiaXRzLCBvbmUpXG4gIGVsc2VcbiAgICBiaXRzID0gY2FtbF9pbnQ2NF9zdWIoYml0cywgb25lKVxuICByZXR1cm4gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGJpdHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RydW5jX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX3RydW5jX2Zsb2F0KHgpe1xuICByZXR1cm4gTWF0aC50cnVuYyh4KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMgKHgpIHtcbiAgdmFyIGludDMyYSA9IG5ldyBnbG9iYWxUaGlzLkludDMyQXJyYXkoMSk7XG4gIGludDMyYVswXSA9IHg7XG4gIHZhciBmbG9hdDMyYSA9IG5ldyBnbG9iYWxUaGlzLkZsb2F0MzJBcnJheShpbnQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGZsb2F0MzJhWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NsYXNzaWZ5X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NsYXNzaWZ5X2Zsb2F0ICh4KSB7XG4gIGlmIChpc0Zpbml0ZSAoeCkpIHtcbiAgICBpZiAoTWF0aC5hYnMoeCkgPj0gMi4yMjUwNzM4NTg1MDcyMDE0ZS0zMDgpIHJldHVybiAwO1xuICAgIGlmICh4ICE9IDApIHJldHVybiAxO1xuICAgIHJldHVybiAyO1xuICB9XG4gIHJldHVybiBpc05hTih4KT80OjM7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX21vZGZfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbW9kZl9mbG9hdCAoeCkge1xuICBpZiAoaXNGaW5pdGUgKHgpKSB7XG4gICAgdmFyIG5lZyA9ICgxL3gpIDwgMDtcbiAgICB4ID0gTWF0aC5hYnMoeCk7XG4gICAgdmFyIGkgPSBNYXRoLmZsb29yICh4KTtcbiAgICB2YXIgZiA9IHggLSBpO1xuICAgIGlmIChuZWcpIHsgaSA9IC1pOyBmID0gLWY7IH1cbiAgICByZXR1cm4gWzAsIGYsIGldO1xuICB9XG4gIGlmIChpc05hTiAoeCkpIHJldHVybiBbMCwgTmFOLCBOYU5dO1xuICByZXR1cm4gWzAsIDEveCwgeF07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2xkZXhwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xkZXhwX2Zsb2F0ICh4LGV4cCkge1xuICBleHAgfD0gMDtcbiAgaWYgKGV4cCA+IDEwMjMpIHtcbiAgICBleHAgLT0gMTAyMztcbiAgICB4ICo9IE1hdGgucG93KDIsIDEwMjMpO1xuICAgIGlmIChleHAgPiAxMDIzKSB7ICAvLyBpbiBjYXNlIHggaXMgc3Vibm9ybWFsXG4gICAgICBleHAgLT0gMTAyMztcbiAgICAgIHggKj0gTWF0aC5wb3coMiwgMTAyMyk7XG4gICAgfVxuICB9XG4gIGlmIChleHAgPCAtMTAyMykge1xuICAgIGV4cCArPSAxMDIzO1xuICAgIHggKj0gTWF0aC5wb3coMiwgLTEwMjMpO1xuICB9XG4gIHggKj0gTWF0aC5wb3coMiwgZXhwKTtcbiAgcmV0dXJuIHg7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ZyZXhwX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzJcbmZ1bmN0aW9uIGNhbWxfZnJleHBfZmxvYXQgKHgpIHtcbiAgaWYgKCh4ID09IDApIHx8ICFpc0Zpbml0ZSh4KSkgcmV0dXJuIFswLCB4LCAwXTtcbiAgdmFyIG5lZyA9IHggPCAwO1xuICBpZiAobmVnKSB4ID0gLSB4O1xuICB2YXIgZXhwID0gTWF0aC5tYXgoLTEwMjMsIGpzb29fZmxvb3JfbG9nMih4KSArIDEpO1xuICB4ICo9IE1hdGgucG93KDIsLWV4cCk7XG4gIHdoaWxlICh4IDwgMC41KSB7XG4gICAgeCAqPSAyO1xuICAgIGV4cC0tO1xuICB9XG4gIHdoaWxlICh4ID49IDEpIHtcbiAgICB4ICo9IDAuNTtcbiAgICBleHArKztcbiAgfVxuICBpZiAobmVnKSB4ID0gLSB4O1xuICByZXR1cm4gWzAsIHgsIGV4cF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfY29tcGFyZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9mbG9hdF9jb21wYXJlICh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSByZXR1cm4gMDtcbiAgaWYgKHggPCB5KSByZXR1cm4gLTE7XG4gIGlmICh4ID4geSkgcmV0dXJuIDE7XG4gIGlmICh4ID09PSB4KSByZXR1cm4gMTtcbiAgaWYgKHkgPT09IHkpIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29weXNpZ25fZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29weXNpZ25fZmxvYXQgKHgsIHkpIHtcbiAgaWYgKHkgPT0gMCkgeSA9IDEgLyB5O1xuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHJldHVybiAoeSA8IDApPygteCk6eDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zaWduYml0X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3NpZ25iaXRfZmxvYXQoeCkge1xuICBpZiAoeCA9PSAwKSB4ID0gMSAvIHg7XG4gIHJldHVybiAoeCA8IDApPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9leHBtMV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9leHBtMV9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5leHBtMSh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9leHAyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2V4cDJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5wb3coMiwgeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMXBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMXBfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cxcCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cyKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2h5cG90X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2h5cG90X2Zsb2F0ICh4LCB5KSB7IHJldHVybiBNYXRoLmh5cG90KHgsIHkpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzEwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzEwX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmxvZzEwKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Nvc2hfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29zaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Fjb3NoX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Fjb3NoX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFjb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3NpbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc2luaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5zaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2FzaW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2FzaW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFzaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3RhbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfdGFuaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC50YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2F0YW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2F0YW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmF0YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3JvdW5kX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3JvdW5kX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnJvdW5kKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2NicnRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY2JydF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jYnJ0KHgpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXJmX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2VyZl9mbG9hdCh4KSB7XG4gIHZhciBhMSA9IDAuMjU0ODI5NTkyO1xuICB2YXIgYTIgPSAtMC4yODQ0OTY3MzY7XG4gIHZhciBhMyA9IDEuNDIxNDEzNzQxO1xuICB2YXIgYTQgPSAtMS40NTMxNTIwMjc7XG4gIHZhciBhNSA9IDEuMDYxNDA1NDI5O1xuICB2YXIgcCA9IDAuMzI3NTkxMTtcblxuICB2YXIgc2lnbiA9IDE7XG4gIGlmICh4IDwgMCkge1xuICAgIHNpZ24gPSAtMTtcbiAgfVxuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHZhciB0ID0gMS4wIC8gKDEuMCArIHAgKiB4KTtcbiAgdmFyIHkgPSAxLjAgLSAoKCgoYTUgKiB0ICsgYTQpICogdCArIGEzKSAqIHQgKyBhMikgKiB0ICsgYTEpICogdCAqIE1hdGguZXhwKC14ICogeCk7XG5cbiAgcmV0dXJuIHNpZ24gKiB5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VyZmNfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfZXJmX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2VyZmNfZmxvYXQoeCkge1xuICByZXR1cm4gMSAtIGNhbWxfZXJmX2Zsb2F0KHgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZm1hX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZtYV9mbG9hdCh4LCB5LCB6KSB7XG4gIHZhciBTUExJVCA9IE1hdGgucG93KDIsIDI3KSArIDE7XG4gIHZhciBNSU5fVkFMVUUgPSBNYXRoLnBvdygyLCAtMTAyMik7XG4gIHZhciBFUFNJTE9OID0gTWF0aC5wb3coMiwgLTUyKTtcbiAgdmFyIEMgPSA0MTY7XG4gIHZhciBBID0gTWF0aC5wb3coMiwgK0MpO1xuICB2YXIgQiA9IE1hdGgucG93KDIsIC1DKTtcblxuICBmdW5jdGlvbiBtdWx0aXBseSAoYSwgYikge1xuICAgIHZhciBhdCA9IFNQTElUICogYTtcbiAgICB2YXIgYWhpID0gYXQgLSAoYXQgLSBhKTtcbiAgICB2YXIgYWxvID0gYSAtIGFoaTtcbiAgICB2YXIgYnQgPSBTUExJVCAqIGI7XG4gICAgdmFyIGJoaSA9IGJ0IC0gKGJ0IC0gYik7XG4gICAgdmFyIGJsbyA9IGIgLSBiaGk7XG4gICAgdmFyIHAgPSBhICogYjtcbiAgICB2YXIgZSA9ICgoYWhpICogYmhpIC0gcCkgKyBhaGkgKiBibG8gKyBhbG8gKiBiaGkpICsgYWxvICogYmxvO1xuICAgIHJldHVybiB7XG4gICAgICBwOiBwLFxuICAgICAgZTogZVxuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRkIChhLCBiKSB7XG4gICAgdmFyIHMgPSBhICsgYjtcbiAgICB2YXIgdiA9IHMgLSBhO1xuICAgIHZhciBlID0gKGEgLSAocyAtIHYpKSArIChiIC0gdik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHM6IHMsXG4gICAgICBlOiBlXG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGp1c3QgKHgsIHkpIHtcbiAgICByZXR1cm4geCAhPT0gMCAmJiB5ICE9PSAwICYmIFNQTElUICogeCAtIChTUExJVCAqIHggLSB4KSA9PT0geCA/IHggKiAoMSArICh4IDwgMCA/IC0xIDogKzEpICogKHkgPCAwID8gLTEgOiArMSkgKiBFUFNJTE9OKSA6IHg7XG4gIH07XG5cbiAgaWYgKHggPT09IDAgfHwgeCAhPT0geCB8fCB4ID09PSArMSAvIDAgfHwgeCA9PT0gLTEgLyAwIHx8XG4gICAgICB5ID09PSAwIHx8IHkgIT09IHkgfHwgeSA9PT0gKzEgLyAwIHx8IHkgPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB4ICogeSArIHo7XG4gIH1cbiAgaWYgKHogPT09IDApIHtcbiAgICByZXR1cm4geCAqIHk7XG4gIH1cbiAgaWYgKHogIT09IHogfHwgeiA9PT0gKzEgLyAwIHx8IHogPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB6O1xuICB9XG5cbiAgdmFyIHNjYWxlID0gMTtcbiAgd2hpbGUgKE1hdGguYWJzKHgpID4gQSkge1xuICAgIHNjYWxlICo9IEE7XG4gICAgeCAqPSBCO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA+IEEpIHtcbiAgICBzY2FsZSAqPSBBO1xuICAgIHkgKj0gQjtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDEgLyAwKSB7XG4gICAgcmV0dXJuIHggKiB5ICogc2NhbGU7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHgpIDwgQikge1xuICAgIHNjYWxlICo9IEI7XG4gICAgeCAqPSBBO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA8IEIpIHtcbiAgICBzY2FsZSAqPSBCO1xuICAgIHkgKj0gQTtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDApIHtcbiAgICByZXR1cm4gejtcbiAgfVxuXG4gIHZhciB4cyA9IHg7XG4gIHZhciB5cyA9IHk7XG4gIHZhciB6cyA9IHogLyBzY2FsZTtcblxuICBpZiAoTWF0aC5hYnMoenMpID4gTWF0aC5hYnMoeHMgKiB5cykgKiA0IC8gRVBTSUxPTikge1xuICAgIHJldHVybiB6O1xuICB9XG4gIGlmIChNYXRoLmFicyh6cykgPCBNYXRoLmFicyh4cyAqIHlzKSAqIEVQU0lMT04gLyA0ICogRVBTSUxPTiAvIDQpIHtcbiAgICB6cyA9ICh6IDwgMCA/IC0xIDogKzEpICogTUlOX1ZBTFVFO1xuICB9XG5cbiAgdmFyIHh5ID0gbXVsdGlwbHkoeHMsIHlzKTtcbiAgdmFyIHMgPSBhZGQoeHkucCwgenMpO1xuICB2YXIgdSA9IGFkZCh4eS5lLCBzLmUpO1xuICB2YXIgaSA9IGFkZChzLnMsIHUucyk7XG5cbiAgdmFyIGYgPSBpLnMgKyBhZGp1c3QoaS5lLCB1LmUpO1xuICBpZiAoZiA9PT0gMCkge1xuICAgIHJldHVybiBmO1xuICB9XG5cbiAgdmFyIGZzID0gZiAqIHNjYWxlO1xuICBpZiAoTWF0aC5hYnMoZnMpID4gTUlOX1ZBTFVFKSB7XG4gICAgcmV0dXJuIGZzO1xuICB9XG5cbiAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGVyZSB3YXMgZXh0cmEgcm91bmRpbmcgZm9yIGEgZGVub3JtYWxpemVkIHZhbHVlLlxuICByZXR1cm4gZnMgKyBhZGp1c3QoZiAtIGZzIC8gc2NhbGUsIGkuZSkgKiBzY2FsZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9mbG9hdCAoZm10LCB4KSB7XG4gIGZ1bmN0aW9uIHRvRml4ZWQoeCxkcCkge1xuICAgIGlmIChNYXRoLmFicyh4KSA8IDEuMCkge1xuICAgICAgcmV0dXJuIHgudG9GaXhlZChkcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlID0gcGFyc2VJbnQoeC50b1N0cmluZygpLnNwbGl0KCcrJylbMV0pO1xuICAgICAgaWYgKGUgPiAyMCkge1xuICAgICAgICBlIC09IDIwO1xuICAgICAgICB4IC89IE1hdGgucG93KDEwLGUpO1xuICAgICAgICB4ICs9IChuZXcgQXJyYXkoZSsxKSkuam9pbignMCcpO1xuICAgICAgICBpZihkcCA+IDApIHtcbiAgICAgICAgICB4ID0geCArICcuJyArIChuZXcgQXJyYXkoZHArMSkpLmpvaW4oJzAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICAgIGVsc2UgcmV0dXJuIHgudG9GaXhlZChkcClcbiAgICB9XG4gIH1cbiAgdmFyIHMsIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICB2YXIgcHJlYyA9IChmLnByZWMgPCAwKT82OmYucHJlYztcbiAgaWYgKHggPCAwIHx8ICh4ID09IDAgJiYgMS94ID09IC1JbmZpbml0eSkpIHsgZi5zaWduID0gLTE7IHggPSAteDsgfVxuICBpZiAoaXNOYU4oeCkpIHsgcyA9IFwibmFuXCI7IGYuZmlsbGVyID0gJyAnOyB9XG4gIGVsc2UgaWYgKCFpc0Zpbml0ZSh4KSkgeyBzID0gXCJpbmZcIjsgZi5maWxsZXIgPSAnICc7IH1cbiAgZWxzZVxuICAgIHN3aXRjaCAoZi5jb252KSB7XG4gICAgY2FzZSAnZSc6XG4gICAgICB2YXIgcyA9IHgudG9FeHBvbmVudGlhbChwcmVjKTtcbiAgICAgIC8vIGV4cG9uZW50IHNob3VsZCBiZSBhdCBsZWFzdCB0d28gZGlnaXRzXG4gICAgICB2YXIgaSA9IHMubGVuZ3RoO1xuICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgIHMgPSBzLnNsaWNlICgwLCBpIC0gMSkgKyAnMCcgKyBzLnNsaWNlIChpIC0gMSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmJzpcbiAgICAgIHMgPSB0b0ZpeGVkKHgsIHByZWMpOyBicmVhaztcbiAgICBjYXNlICdnJzpcbiAgICAgIHByZWMgPSBwcmVjP3ByZWM6MTtcbiAgICAgIHMgPSB4LnRvRXhwb25lbnRpYWwocHJlYyAtIDEpO1xuICAgICAgdmFyIGogPSBzLmluZGV4T2YoJ2UnKTtcbiAgICAgIHZhciBleHAgPSArcy5zbGljZShqICsgMSk7XG4gICAgICBpZiAoZXhwIDwgLTQgfHwgeCA+PSAxZTIxIHx8IHgudG9GaXhlZCgwKS5sZW5ndGggPiBwcmVjKSB7XG4gICAgICAgIC8vIHJlbW92ZSB0cmFpbGluZyB6ZXJvZXNcbiAgICAgICAgdmFyIGkgPSBqIC0gMTsgd2hpbGUgKHMuY2hhckF0KGkpID09ICcwJykgaS0tO1xuICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gJy4nKSBpLS07XG4gICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKSArIHMuc2xpY2Uoaik7XG4gICAgICAgIGkgPSBzLmxlbmd0aDtcbiAgICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgICAgcyA9IHMuc2xpY2UgKDAsIGkgLSAxKSArICcwJyArIHMuc2xpY2UgKGkgLSAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcCA9IHByZWM7XG4gICAgICAgIGlmIChleHAgPCAwKSB7IHAgLT0gZXhwICsgMTsgcyA9IHgudG9GaXhlZChwKTsgfVxuICAgICAgICBlbHNlIHdoaWxlIChzID0geC50b0ZpeGVkKHApLCBzLmxlbmd0aCA+IHByZWMgKyAxKSBwLS07XG4gICAgICAgIGlmIChwKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHplcm9lc1xuICAgICAgICAgIHZhciBpID0gcy5sZW5ndGggLSAxOyB3aGlsZSAocy5jaGFyQXQoaSkgPT0gJzAnKSBpLS07XG4gICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09ICcuJykgaS0tO1xuICAgICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9vZl9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9mbG9hdF9vZl9zdHJpbmcocykge1xuICB2YXIgcmVzO1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKVxuICByZXMgPSArcztcbiAgaWYgKChzLmxlbmd0aCA+IDApICYmIChyZXMgPT09IHJlcykpIHJldHVybiByZXM7XG4gIHMgPSBzLnJlcGxhY2UoL18vZyxcIlwiKTtcbiAgcmVzID0gK3M7XG4gIGlmICgoKHMubGVuZ3RoID4gMCkgJiYgKHJlcyA9PT0gcmVzKSkgfHwgL15bKy1dP25hbiQvaS50ZXN0KHMpKSByZXR1cm4gcmVzO1xuICB2YXIgbSA9IC9eICooWystXT8pMHgoWzAtOWEtZl0rKVxcLj8oWzAtOWEtZl0qKShwKFsrLV0/WzAtOV0rKSk/L2kuZXhlYyhzKTtcbiAgLy8gICAgICAgICAgMSAgICAgICAgMiAgICAgICAgICAgICAzICAgICAgICAgICA1XG4gIGlmKG0pe1xuICAgIHZhciBtMyA9IG1bM10ucmVwbGFjZSgvMCskLywnJyk7XG4gICAgdmFyIG1hbnRpc3NhID0gcGFyc2VJbnQobVsxXSArIG1bMl0gKyBtMywgMTYpO1xuICAgIHZhciBleHBvbmVudCA9IChtWzVdfDApIC0gNCptMy5sZW5ndGg7XG4gICAgcmVzID0gbWFudGlzc2EgKiBNYXRoLnBvdygyLCBleHBvbmVudCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBpZigvXlxcKz9pbmYoaW5pdHkpPyQvaS50ZXN0KHMpKSByZXR1cm4gSW5maW5pdHk7XG4gIGlmKC9eLWluZihpbml0eSk/JC9pLnRlc3QocykpIHJldHVybiAtSW5maW5pdHk7XG4gIGNhbWxfZmFpbHdpdGgoXCJmbG9hdF9vZl9zdHJpbmdcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gZnNfbm9kZV9zdXBwb3J0ZWQgKCkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MgIT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzLnZlcnNpb25zICE9PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ucy5ub2RlICE9PSAndW5kZWZpbmVkJylcbn1cbi8vUHJvdmlkZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBmc19ub2RlX3N1cHBvcnRlZCAoKSB7XG4gIHJldHVybiBmYWxzZVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sTm9kZURldmljZVxuLy9SZXF1aXJlczogTWxOb2RlRmlsZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG5mdW5jdGlvbiBNbE5vZGVEZXZpY2Uocm9vdCkge1xuICB0aGlzLmZzID0gcmVxdWlyZSgnZnMnKTtcbiAgdGhpcy5yb290ID0gcm9vdDtcbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubm0gPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiAodGhpcy5yb290ICsgbmFtZSk7XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmV4aXN0cyA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5leGlzdHNTeW5jKHRoaXMubm0obmFtZSkpPzE6MDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLCBtb2RlLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5ta2RpclN5bmModGhpcy5ubShuYW1lKSx7bW9kZTptb2RlfSk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ybWRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJtZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRkaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMucmVhZGRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpLmlzRGlyZWN0b3J5KCk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBiID0gdGhpcy5mcy5leGlzdHNTeW5jKHRoaXMubm0obmFtZSkpPzE6MDtcbiAgICB0aGlzLmZzLnVubGlua1N5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIGI7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIGNvbnN0cyA9IHJlcXVpcmUoJ2NvbnN0YW50cycpO1xuICB2YXIgcmVzID0gMDtcbiAgZm9yKHZhciBrZXkgaW4gZil7XG4gICAgc3dpdGNoKGtleSl7XG4gICAgY2FzZSBcInJkb25seVwiICA6IHJlcyB8PSBjb25zdHMuT19SRE9OTFk7IGJyZWFrO1xuICAgIGNhc2UgXCJ3cm9ubHlcIiAgOiByZXMgfD0gY29uc3RzLk9fV1JPTkxZOyBicmVhaztcbiAgICBjYXNlIFwiYXBwZW5kXCIgIDpcbiAgICAgIHJlcyB8PSBjb25zdHMuT19XUk9OTFkgfCBjb25zdHMuT19BUFBFTkQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3JlYXRlXCIgICA6IHJlcyB8PSBjb25zdHMuT19DUkVBVDsgICAgYnJlYWs7XG4gICAgY2FzZSBcInRydW5jYXRlXCIgOiByZXMgfD0gY29uc3RzLk9fVFJVTkM7ICAgIGJyZWFrO1xuICAgIGNhc2UgXCJleGNsXCIgICAgIDogcmVzIHw9IGNvbnN0cy5PX0VYQ0w7ICAgICBicmVhaztcbiAgICBjYXNlIFwiYmluYXJ5XCIgICA6IHJlcyB8PSBjb25zdHMuT19CSU5BUlk7ICAgYnJlYWs7XG4gICAgY2FzZSBcInRleHRcIiAgICAgOiByZXMgfD0gY29uc3RzLk9fVEVYVDsgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJub25ibG9ja1wiIDogcmVzIHw9IGNvbnN0cy5PX05PTkJMT0NLOyBicmVhaztcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICB2YXIgZmQgPSB0aGlzLmZzLm9wZW5TeW5jKHRoaXMubm0obmFtZSksIHJlcyk7XG4gICAgcmV0dXJuIG5ldyBNbE5vZGVGaWxlKGZkKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuXG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlbmFtZSA9IGZ1bmN0aW9uKG8sIG4sIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJlbmFtZVN5bmModGhpcy5ubShvKSwgdGhpcy5ubShuKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3RhdCA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIganNfc3RhdHMgPSB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiB0aGlzLnN0YXRzX2Zyb21fanMoanNfc3RhdHMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmxzdGF0ID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBqc19zdGF0cyA9IHRoaXMuZnMubHN0YXRTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiB0aGlzLnN0YXRzX2Zyb21fanMoanNfc3RhdHMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN5bWxpbmsgPSBmdW5jdGlvbih0b19kaXIsIHRhcmdldCwgcGF0aCwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMuc3ltbGlua1N5bmModGhpcy5ubSh0YXJnZXQpLCB0aGlzLm5tKHBhdGgpLCB0b19kaXIgPyAnZGlyJyA6ICdmaWxlJyk7XG4gICAgcmV0dXJuIDA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVhZGxpbmsgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGxpbmsgPSB0aGlzLmZzLnJlYWRsaW5rU3luYyh0aGlzLm5tKG5hbWUpLCAndXRmOCcpO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhsaW5rKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yYWlzZV9ub2RlanNfZXJyb3IgPSBmdW5jdGlvbihlcnIsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKFwiVW5peC5Vbml4X2Vycm9yXCIpO1xuICBpZiAocmFpc2VfdW5peCAmJiB1bml4X2Vycm9yKSB7XG4gICAgdmFyIGFyZ3MgPSBtYWtlX3VuaXhfZXJyX2FyZ3MoZXJyLmNvZGUsIGVyci5zeXNjYWxsLCBlcnIucGF0aCwgZXJyLmVycm5vKTtcbiAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3RhdHNfZnJvbV9qcyA9IGZ1bmN0aW9uKGpzX3N0YXRzKSB7XG4gIC8qID09PVVuaXguZmlsZV9raW5kPT09XG4gICAqIHR5cGUgZmlsZV9raW5kID1cbiAgICogICAgIFNfUkVHICAgICAgICAgICAgICAgICAgICAgICAoKiogUmVndWxhciBmaWxlICopXG4gICAqICAgfCBTX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCoqIERpcmVjdG9yeSAqKVxuICAgKiAgIHwgU19DSFIgICAgICAgICAgICAgICAgICAgICAgICgqKiBDaGFyYWN0ZXIgZGV2aWNlICopXG4gICAqICAgfCBTX0JMSyAgICAgICAgICAgICAgICAgICAgICAgKCoqIEJsb2NrIGRldmljZSAqKVxuICAgKiAgIHwgU19MTksgICAgICAgICAgICAgICAgICAgICAgICgqKiBTeW1ib2xpYyBsaW5rICopXG4gICAqICAgfCBTX0ZJRk8gICAgICAgICAgICAgICAgICAgICAgKCoqIE5hbWVkIHBpcGUgKilcbiAgICogICB8IFNfU09DSyAgICAgICAgICAgICAgICAgICAgICAoKiogU29ja2V0ICopXG4gICAqL1xuICB2YXIgZmlsZV9raW5kO1xuICBpZiAoanNfc3RhdHMuaXNGaWxlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAwO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICBmaWxlX2tpbmQgPSAxO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQ2hhcmFjdGVyRGV2aWNlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAyO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQmxvY2tEZXZpY2UoKSkge1xuICAgIGZpbGVfa2luZCA9IDM7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgIGZpbGVfa2luZCA9IDQ7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNGSUZPKCkpIHtcbiAgICBmaWxlX2tpbmQgPSA1O1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzU29ja2V0KCkpIHtcbiAgICBmaWxlX2tpbmQgPSA2O1xuICB9XG4gIC8qID09PVVuaXguc3RhdHM9PT1cbiAgICogdHlwZSBzdGF0cyA9XG4gICAqICB7IHN0X2RldiA6IGludDsgICAgICAgICAgICAgICAoKiogRGV2aWNlIG51bWJlciAqKVxuICAgKiAgICBzdF9pbm8gOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIElub2RlIG51bWJlciAqKVxuICAgKiAgICBzdF9raW5kIDogZmlsZV9raW5kOyAgICAgICAgKCoqIEtpbmQgb2YgdGhlIGZpbGUgKilcbiAgICogICAgc3RfcGVybSA6IGZpbGVfcGVybTsgICAgICAgICgqKiBBY2Nlc3MgcmlnaHRzICopXG4gICAqICAgIHN0X25saW5rIDogaW50OyAgICAgICAgICAgICAoKiogTnVtYmVyIG9mIGxpbmtzICopXG4gICAqICAgIHN0X3VpZCA6IGludDsgICAgICAgICAgICAgICAoKiogVXNlciBpZCBvZiB0aGUgb3duZXIgKilcbiAgICogICAgc3RfZ2lkIDogaW50OyAgICAgICAgICAgICAgICgqKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwICopXG4gICAqICAgIHN0X3JkZXYgOiBpbnQ7ICAgICAgICAgICAgICAoKiogRGV2aWNlIElEIChpZiBzcGVjaWFsIGZpbGUpICopXG4gICAqICAgIHN0X3NpemUgOiBpbnQ7ICAgICAgICAgICAgICAoKiogU2l6ZSBpbiBieXRlcyAqKVxuICAgKiAgICBzdF9hdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3QgYWNjZXNzIHRpbWUgKilcbiAgICogICAgc3RfbXRpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IG1vZGlmaWNhdGlvbiB0aW1lICopXG4gICAqICAgIHN0X2N0aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUgKilcbiAgICogIH1cbiAgICovXG4gIHJldHVybiBCTE9DSyhcbiAgICAwLFxuICAgIGpzX3N0YXRzLmRldixcbiAgICBqc19zdGF0cy5pbm8sXG4gICAgZmlsZV9raW5kLFxuICAgIGpzX3N0YXRzLm1vZGUsXG4gICAganNfc3RhdHMubmxpbmssXG4gICAganNfc3RhdHMudWlkLFxuICAgIGpzX3N0YXRzLmdpZCxcbiAgICBqc19zdGF0cy5yZGV2LFxuICAgIGpzX3N0YXRzLnNpemUsXG4gICAganNfc3RhdHMuYXRpbWVNcyxcbiAgICBqc19zdGF0cy5tdGltZU1zLFxuICAgIGpzX3N0YXRzLmN0aW1lTXNcbiAgKTtcbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZURldmljZVxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZURldmljZSgpIHtcbn1cblxuLy9Qcm92aWRlczogTWxOb2RlRmlsZVxuLy9SZXF1aXJlczogTWxGaWxlLCBjYW1sX2FycmF5X29mX3N0cmluZywgY2FtbF9hcnJheV9vZl9ieXRlcywgY2FtbF9ieXRlc19zZXQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBNbE5vZGVGaWxlKGZkKXtcbiAgdGhpcy5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gIHRoaXMuZmQgPSBmZDtcbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcblxuTWxOb2RlRmlsZS5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB0cnkge1xuICAgIHRoaXMuZnMuZnRydW5jYXRlU3luYyh0aGlzLmZkLGxlbnwwKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5mc3RhdFN5bmModGhpcy5mZCkuc2l6ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYsYnVmX29mZnNldCxsZW4pe1xuICB2YXIgYSA9IGNhbWxfYXJyYXlfb2Zfc3RyaW5nKGJ1Zik7XG4gIGlmKCEgKGEgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkpKVxuICAgIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KGEpO1xuICB2YXIgYnVmZmVyID0gZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShhKTtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLndyaXRlU3luYyh0aGlzLmZkLCBidWZmZXIsIGJ1Zl9vZmZzZXQsIGxlbiwgb2Zmc2V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG4gIHJldHVybiAwO1xufVxuTWxOb2RlRmlsZS5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKG9mZnNldCxidWYsYnVmX29mZnNldCxsZW4pe1xuICB2YXIgYSA9IGNhbWxfYXJyYXlfb2ZfYnl0ZXMoYnVmKTtcbiAgaWYoISAoYSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuVWludDhBcnJheSkpXG4gICAgYSA9IG5ldyBnbG9iYWxUaGlzLlVpbnQ4QXJyYXkoYSk7XG4gIHZhciBidWZmZXIgPSBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGEpO1xuICB0cnkge1xuICAgIHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYnVmZmVyLCBidWZfb2Zmc2V0LCBsZW4sIG9mZnNldCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIGNhbWxfYnl0ZXNfc2V0KGJ1ZixidWZfb2Zmc2V0ICsgaSxidWZmZXJbYnVmX29mZnNldCtpXSk7XG4gIH1cbiAgcmV0dXJuIDBcbn1cbk1sTm9kZUZpbGUucHJvdG90eXBlLnJlYWRfb25lID0gZnVuY3Rpb24ob2Zmc2V0KXtcbiAgdmFyIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KDEpO1xuICB2YXIgYnVmZmVyID0gZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShhKTtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJlYWRTeW5jKHRoaXMuZmQsIGJ1ZmZlciwgMCwgMSwgb2Zmc2V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG4gIHJldHVybiBidWZmZXJbMF07XG59XG5NbE5vZGVGaWxlLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCl7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5jbG9zZVN5bmModGhpcy5mZCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuXG5NbE5vZGVGaWxlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZUZpbGU7XG5cbi8vUHJvdmlkZXM6IE1sTm9kZUZpbGVcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZUZpbGUoKXtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gRHVtbXkgZmlsZXN5c3RlbVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX3RyYWlsaW5nX3NsYXNoKG5hbWUpe1xuICByZXR1cm4gKG5hbWUuc2xpY2UoLTEpICE9PSBcIi9cIikgPyAobmFtZSArIFwiL1wiKSA6IG5hbWU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3VycmVudF9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfdHJhaWxpbmdfc2xhc2gsIGZzX25vZGVfc3VwcG9ydGVkXG5pZihmc19ub2RlX3N1cHBvcnRlZCAoKSAmJiBnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmN3ZClcbiAgdmFyIGNhbWxfY3VycmVudF9kaXIgPSBnbG9iYWxUaGlzLnByb2Nlc3MuY3dkKCkucmVwbGFjZSgvXFxcXC9nLCcvJyk7XG5lbHNlXG4gIHZhciBjYW1sX2N1cnJlbnRfZGlyID0gIFwiL3N0YXRpY1wiO1xuY2FtbF9jdXJyZW50X2RpciA9IGNhbWxfdHJhaWxpbmdfc2xhc2goY2FtbF9jdXJyZW50X2Rpcik7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X3Jvb3Rcbi8vUmVxdWlyZXM6IHBhdGhfaXNfYWJzb2x1dGVcbmZ1bmN0aW9uIGNhbWxfZ2V0X3Jvb3QocGF0aCl7XG4gIHZhciB4ID0gcGF0aF9pc19hYnNvbHV0ZShwYXRoKTtcbiAgaWYgKCF4KSByZXR1cm47XG4gIHJldHVybiB4WzBdICsgXCIvXCJ9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcm9vdFxuLy9SZXF1aXJlczogY2FtbF9nZXRfcm9vdCwgY2FtbF9jdXJyZW50X2RpciwgY2FtbF9mYWlsd2l0aFxudmFyIGNhbWxfcm9vdCA9IGNhbWxfZ2V0X3Jvb3QoY2FtbF9jdXJyZW50X2RpcikgfHwgY2FtbF9mYWlsd2l0aChcInVuYWJsZSB0byBjb21wdXRlIGNhbWxfcm9vdFwiKTtcblxuXG4vL1Byb3ZpZGVzOiBNbEZpbGVcbmZ1bmN0aW9uIE1sRmlsZSgpeyAgfVxuXG4vL1Byb3ZpZGVzOiBwYXRoX2lzX2Fic29sdXRlXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gbWFrZV9wYXRoX2lzX2Fic29sdXRlKCkge1xuICBmdW5jdGlvbiBwb3NpeChwYXRoKSB7XG4gICAgaWYgKHBhdGguY2hhckF0KDApID09PSAnLycpIHJldHVybiBbXCJcIiwgcGF0aC5zdWJzdHJpbmcoMSldO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdpbjMyKHBhdGgpIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9iM2ZjYzI0NWZiMjU1Mzk5MDllZjFkNWVhYTAxZGJmOTJlMTY4NjMzL2xpYi9wYXRoLmpzI0w1NlxuICAgIHZhciBzcGxpdERldmljZVJlID0gL14oW2EtekEtWl06fFtcXFxcL117Mn1bXlxcXFwvXStbXFxcXC9dK1teXFxcXC9dKyk/KFtcXFxcL10pPyhbXFxzXFxTXSo/KSQvO1xuICAgIHZhciByZXN1bHQgPSBzcGxpdERldmljZVJlLmV4ZWMocGF0aCk7XG4gICAgdmFyIGRldmljZSA9IHJlc3VsdFsxXSB8fCAnJztcbiAgICB2YXIgaXNVbmMgPSBCb29sZWFuKGRldmljZSAmJiBkZXZpY2UuY2hhckF0KDEpICE9PSAnOicpO1xuXG4gICAgLy8gVU5DIHBhdGhzIGFyZSBhbHdheXMgYWJzb2x1dGVcbiAgICBpZiAoQm9vbGVhbihyZXN1bHRbMl0gfHwgaXNVbmMpKSB7XG4gICAgICB2YXIgcm9vdCA9IChyZXN1bHRbMV0gfHwgJycpO1xuICAgICAgdmFyIHNlcCA9IChyZXN1bHRbMl0gfHwgJycpO1xuICAgICAgcmV0dXJuIFtyb290LCBwYXRoLnN1YnN0cmluZyhyb290Lmxlbmd0aCArIHNlcC5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQgKCkgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyB3aW4zMiA6IHBvc2l4O1xuICB9XG4gIGVsc2UgcmV0dXJuIHBvc2l4XG59XG52YXIgcGF0aF9pc19hYnNvbHV0ZSA9IG1ha2VfcGF0aF9pc19hYnNvbHV0ZSgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfcGF0aFxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpclxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcsIHBhdGhfaXNfYWJzb2x1dGVcbmZ1bmN0aW9uIGNhbWxfbWFrZV9wYXRoIChuYW1lKSB7XG4gIG5hbWU9Y2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSk7XG4gIGlmKCAhcGF0aF9pc19hYnNvbHV0ZShuYW1lKSApXG4gICAgbmFtZSA9IGNhbWxfY3VycmVudF9kaXIgKyBuYW1lO1xuICB2YXIgY29tcDAgPSBwYXRoX2lzX2Fic29sdXRlKG5hbWUpO1xuICB2YXIgY29tcCA9IGNvbXAwWzFdLnNwbGl0KFwiL1wiKTtcbiAgdmFyIG5jb21wID0gW11cbiAgZm9yKHZhciBpID0gMDsgaTxjb21wLmxlbmd0aDsgaSsrKXtcbiAgICBzd2l0Y2goY29tcFtpXSl7XG4gICAgY2FzZSBcIi4uXCI6IGlmKG5jb21wLmxlbmd0aD4xKSBuY29tcC5wb3AoKTsgYnJlYWs7XG4gICAgY2FzZSBcIi5cIjogYnJlYWs7XG4gICAgZGVmYXVsdDogbmNvbXAucHVzaChjb21wW2ldKTticmVha1xuICAgIH1cbiAgfVxuICBuY29tcC51bnNoaWZ0KGNvbXAwWzBdKTtcbiAgbmNvbXAub3JpZyA9IG5hbWU7XG4gIHJldHVybiBuY29tcDtcbn1cblxuLy9Qcm92aWRlczpqc29vX21vdW50X3BvaW50XG4vL1JlcXVpcmVzOiBNbEZha2VEZXZpY2UsIE1sTm9kZURldmljZSwgY2FtbF9yb290LCBmc19ub2RlX3N1cHBvcnRlZFxudmFyIGpzb29fbW91bnRfcG9pbnQgPSBbXVxuaWYgKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOmNhbWxfcm9vdCxkZXZpY2U6bmV3IE1sTm9kZURldmljZShjYW1sX3Jvb3QpfSk7XG59IGVsc2Uge1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6Y2FtbF9yb290LGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKGNhbWxfcm9vdCl9KTtcbn1cbmpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpcIi9zdGF0aWMvXCIsIGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKFwiL3N0YXRpYy9cIil9KTtcblxuLy9Qcm92aWRlczpjYW1sX2xpc3RfbW91bnRfcG9pbnRcbi8vUmVxdWlyZXM6IGpzb29fbW91bnRfcG9pbnQsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGlzdF9tb3VudF9wb2ludCgpe1xuICB2YXIgcHJldiA9IDBcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspe1xuICAgIHZhciBvbGQgPSBwcmV2O1xuICAgIHByZXYgPSBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhqc29vX21vdW50X3BvaW50W2ldLnBhdGgpLCBvbGRdXG4gIH1cbiAgcmV0dXJuIHByZXY7XG59XG5cbi8vUHJvdmlkZXM6IHJlc29sdmVfZnNfZGV2aWNlXG4vL1JlcXVpcmVzOiBjYW1sX21ha2VfcGF0aCwganNvb19tb3VudF9wb2ludCwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfZ2V0X3Jvb3QsIE1sTm9kZURldmljZSwgY2FtbF90cmFpbGluZ19zbGFzaCwgZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IHBhdGguam9pbihcIi9cIik7XG4gIHZhciBuYW1lX3NsYXNoID0gY2FtbF90cmFpbGluZ19zbGFzaChuYW1lKTtcbiAgdmFyIHJlcztcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbSA9IGpzb29fbW91bnRfcG9pbnRbaV07XG4gICAgaWYobmFtZV9zbGFzaC5zZWFyY2gobS5wYXRoKSA9PSAwXG4gICAgICAgJiYgKCFyZXMgfHwgcmVzLnBhdGgubGVuZ3RoIDwgbS5wYXRoLmxlbmd0aCkpXG4gICAgICByZXMgPSB7cGF0aDptLnBhdGgsZGV2aWNlOm0uZGV2aWNlLHJlc3Q6bmFtZS5zdWJzdHJpbmcobS5wYXRoLmxlbmd0aCxuYW1lLmxlbmd0aCl9O1xuICB9XG4gIGlmKCAhcmVzICYmIGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICB2YXIgcm9vdCA9IGNhbWxfZ2V0X3Jvb3QobmFtZSk7XG4gICAgaWYgKHJvb3QgJiYgcm9vdC5tYXRjaCgvXlthLXpBLVpdOlxcLyQvKSl7XG4gICAgICB2YXIgbSA9IHtwYXRoOnJvb3QsZGV2aWNlOm5ldyBNbE5vZGVEZXZpY2Uocm9vdCl9O1xuICAgICAganNvb19tb3VudF9wb2ludC5wdXNoKG0pO1xuICAgICAgcmVzID0ge3BhdGg6bS5wYXRoLGRldmljZTptLmRldmljZSxyZXN0Om5hbWUuc3Vic3RyaW5nKG0ucGF0aC5sZW5ndGgsbmFtZS5sZW5ndGgpfTtcbiAgICB9XG4gIH1cbiAgaWYoIHJlcyApIHJldHVybiByZXM7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwibm8gZGV2aWNlIGZvdW5kIGZvciBcIiArIG5hbWVfc2xhc2gpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21vdW50X2F1dG9sb2FkXG4vL1JlcXVpcmVzOiBNbEZha2VEZXZpY2UsIGNhbWxfbWFrZV9wYXRoLCBqc29vX21vdW50X3BvaW50LCBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX21vdW50X2F1dG9sb2FkKG5hbWUsZil7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gY2FtbF90cmFpbGluZ19zbGFzaChwYXRoLmpvaW4oXCIvXCIpKTtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOm5hbWUsZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UobmFtZSxmKX0pXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VubW91bnRcbi8vUmVxdWlyZXM6IGpzb29fbW91bnRfcG9pbnQsIGNhbWxfbWFrZV9wYXRoLCBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX3VubW91bnQobmFtZSl7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gY2FtbF90cmFpbGluZ19zbGFzaChwYXRoLmpvaW4oXCIvXCIpKTtcbiAgdmFyIGlkeCA9IC0xO1xuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKylcbiAgICBpZihqc29vX21vdW50X3BvaW50W2ldLnBhdGggPT0gbmFtZSkgaWR4ID0gaTtcbiAgaWYoaWR4ID4gLTEpIGpzb29fbW91bnRfcG9pbnQuc3BsaWNlKGlkeCwxKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0Y3dkXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N5c19nZXRjd2QoKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfY3VycmVudF9kaXIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jaGRpclxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpciwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3RyYWlsaW5nX3NsYXNoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19jaGRpcihkaXIpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShkaXIpO1xuICBpZihyb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KSkge1xuICAgIGlmKHJvb3QucmVzdCkgY2FtbF9jdXJyZW50X2RpciA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocm9vdC5wYXRoICsgcm9vdC5yZXN0KTtcbiAgICBlbHNlIGNhbWxfY3VycmVudF9kaXIgPSByb290LnBhdGg7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhkaXIpKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKG5hbWUpe1xuICBjYW1sX3JhaXNlX3N5c19lcnJvciAobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vdF9hX2RpclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm90X2FfZGlyKG5hbWUpe1xuICBjYW1sX3JhaXNlX3N5c19lcnJvciAobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2ZpbGVfZXhpc3RzXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfZmlsZV9leGlzdHMgKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZWFkX2RpcmVjdG9yeVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfYV9kaXIsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19yZWFkX2RpcmVjdG9yeShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGEgPSByb290LmRldmljZS5yZWFkZGlyKHJvb3QucmVzdCk7XG4gIHZhciBsID0gbmV3IEFycmF5KGEubGVuZ3RoICsgMSk7XG4gIGxbMF0gPSAwO1xuICBmb3IodmFyIGk9MDtpPGEubGVuZ3RoO2krKylcbiAgICBsW2krMV0gPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGFbaV0pO1xuICByZXR1cm4gbDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVtb3ZlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlbW92ZShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIG9rID0gcm9vdC5kZXZpY2UudW5saW5rKHJvb3QucmVzdCk7XG4gIGlmKG9rID09IDApIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfaXNfZGlyZWN0b3J5XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfaXNfZGlyZWN0b3J5KG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgYSA9IHJvb3QuZGV2aWNlLmlzX2Rpcihyb290LnJlc3QpO1xuICByZXR1cm4gYT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlbmFtZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlbmFtZShvLG4pe1xuICB2YXIgb19yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uobyk7XG4gIHZhciBuX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuKTtcbiAgaWYob19yb290LmRldmljZSAhPSBuX3Jvb3QuZGV2aWNlKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N5c19yZW5hbWU6IGNhbm5vdCBtb3ZlIGZpbGUgYmV0d2VlbiB0d28gZmlsZXN5c3RlbVwiKTtcbiAgaWYoIW9fcm9vdC5kZXZpY2UucmVuYW1lKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N5c19yZW5hbWU6IG5vIGltcGxlbWVudGVkXCIpO1xuICBvX3Jvb3QuZGV2aWNlLnJlbmFtZShvX3Jvb3QucmVzdCwgbl9yb290LnJlc3QpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19ta2RpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3N5c19ta2RpcihuYW1lLCBwZXJtKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcm9vdC5kZXZpY2UubWtkaXIocm9vdC5yZXN0LHBlcm0pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcm1kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV9ub3RfYV9kaXJcbmZ1bmN0aW9uIGNhbWxfc3lzX3JtZGlyKG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByb290LmRldmljZS5ybWRpcihyb290LnJlc3QpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9tYXBfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9iYV9tYXBfZmlsZSh2ZmQsIGtpbmQsIGxheW91dCwgc2hhcmVkLCBkaW1zLCBwb3MpIHtcbiAgLy8gdmFyIGRhdGEgPSBjYW1sX2dsb2JhbF9kYXRhLmZkc1t2ZmRdO1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9iYV9tYXBfZmlsZSBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbWFwX2ZpbGVfYnl0ZWNvZGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfbWFwX2ZpbGVcbmZ1bmN0aW9uIGNhbWxfYmFfbWFwX2ZpbGVfYnl0ZWNvZGUoYXJndixhcmduKXtcbiAgcmV0dXJuIGNhbWxfYmFfbWFwX2ZpbGUoYXJndlswXSxhcmd2WzFdLGFyZ3ZbMl0sYXJndlszXSxhcmd2WzRdLGFyZ3ZbNV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX2NyZWF0ZV9maWxlX2V4dGVyblxuZnVuY3Rpb24ganNvb19jcmVhdGVfZmlsZV9leHRlcm4obmFtZSxjb250ZW50KXtcbiAgaWYoZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlKVxuICAgIGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpO1xuICBlbHNlIHtcbiAgICBpZighZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCkgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCA9IFtdO1xuICAgIGdsb2JhbFRoaXMuY2FtbF9mc190bXAucHVzaCh7bmFtZTpuYW1lLGNvbnRlbnQ6Y29udGVudH0pO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZzX2luaXRcbi8vUmVxdWlyZXM6IGpzb29fY3JlYXRlX2ZpbGVcbmZ1bmN0aW9uIGNhbWxfZnNfaW5pdCAoKXtcbiAgdmFyIHRtcD1nbG9iYWxUaGlzLmNhbWxfZnNfdG1wXG4gIGlmKHRtcCl7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKyl7XG4gICAgICBqc29vX2NyZWF0ZV9maWxlKHRtcFtpXS5uYW1lLHRtcFtpXS5jb250ZW50KTtcbiAgICB9XG4gIH1cbiAgZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlID0ganNvb19jcmVhdGVfZmlsZTtcbiAgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCA9IFtdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmKCEgcm9vdC5kZXZpY2UucmVnaXN0ZXIpIGNhbWxfZmFpbHdpdGgoXCJjYW5ub3QgcmVnaXN0ZXIgZmlsZVwiKTtcbiAgcm9vdC5kZXZpY2UucmVnaXN0ZXIocm9vdC5yZXN0LGNvbnRlbnQpO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBqc29vX2NyZWF0ZV9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9maWxlLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBqc29vX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCkge1xuICB2YXIgbmFtZSA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSk7XG4gIHZhciBjb250ZW50ID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjb250ZW50KTtcbiAgcmV0dXJuIGNhbWxfY3JlYXRlX2ZpbGUobmFtZSwgY29udGVudCk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9yZWFkX2ZpbGVfY29udGVudFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVhZF9maWxlX2NvbnRlbnQgKG5hbWUpIHtcbiAgdmFyIG5hbWUgPSAodHlwZW9mIG5hbWUgPT0gXCJzdHJpbmdcIik/Y2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKTpuYW1lO1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZihyb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KSkge1xuICAgIHZhciBmaWxlID0gcm9vdC5kZXZpY2Uub3Blbihyb290LnJlc3Qse3Jkb25seToxfSk7XG4gICAgdmFyIGxlbiAgPSBmaWxlLmxlbmd0aCgpO1xuICAgIHZhciBidWYgID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKTtcbiAgICBmaWxlLnJlYWQoMCxidWYsMCxsZW4pO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9ieXRlcyhidWYpXG4gIH1cbiAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSk7XG59XG4iLCIvL1Byb3ZpZGVzOiB1bml4X2dldHRpbWVvZmRheVxuZnVuY3Rpb24gdW5peF9nZXR0aW1lb2ZkYXkgKCkge1xuICByZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDA7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfdGltZVxuLy9SZXF1aXJlczogdW5peF9nZXR0aW1lb2ZkYXlcbmZ1bmN0aW9uIHVuaXhfdGltZSAoKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKHVuaXhfZ2V0dGltZW9mZGF5ICgpKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9nbXRpbWVcbmZ1bmN0aW9uIHVuaXhfZ210aW1lICh0KSB7XG4gIHZhciBkID0gbmV3IERhdGUgKHQgKiAxMDAwKTtcbiAgdmFyIGRfbnVtID0gZC5nZXRUaW1lKCk7XG4gIHZhciBqYW51YXJ5Zmlyc3QgPSAobmV3IERhdGUoRGF0ZS5VVEMoZC5nZXRVVENGdWxsWWVhcigpLCAwLCAxKSkpLmdldFRpbWUoKTtcbiAgdmFyIGRveSA9IE1hdGguZmxvb3IoKGRfbnVtIC0gamFudWFyeWZpcnN0KSAvIDg2NDAwMDAwKTtcbiAgcmV0dXJuIEJMT0NLKDAsIGQuZ2V0VVRDU2Vjb25kcygpLCBkLmdldFVUQ01pbnV0ZXMoKSwgZC5nZXRVVENIb3VycygpLFxuICAgICAgICAgICAgICAgZC5nZXRVVENEYXRlKCksIGQuZ2V0VVRDTW9udGgoKSwgZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCxcbiAgICAgICAgICAgICAgIGQuZ2V0VVRDRGF5KCksIGRveSxcbiAgICAgICAgICAgICAgIGZhbHNlIHwgMCAvKiBmb3IgVVRDIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpcyBmYWxzZSAqLylcbn1cblxuLy9Qcm92aWRlczogdW5peF9sb2NhbHRpbWVcbmZ1bmN0aW9uIHVuaXhfbG9jYWx0aW1lICh0KSB7XG4gIHZhciBkID0gbmV3IERhdGUgKHQgKiAxMDAwKTtcbiAgdmFyIGRfbnVtID0gZC5nZXRUaW1lKCk7XG4gIHZhciBqYW51YXJ5Zmlyc3QgPSAobmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCAxKSkuZ2V0VGltZSgpO1xuICB2YXIgZG95ID0gTWF0aC5mbG9vcigoZF9udW0gLSBqYW51YXJ5Zmlyc3QpIC8gODY0MDAwMDApO1xuICB2YXIgamFuID0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgdmFyIGp1bCA9IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgNiwgMSk7XG4gIHZhciBzdGRUaW1lem9uZU9mZnNldCA9IE1hdGgubWF4KGphbi5nZXRUaW1lem9uZU9mZnNldCgpLCBqdWwuZ2V0VGltZXpvbmVPZmZzZXQoKSk7XG4gIHJldHVybiBCTE9DSygwLCBkLmdldFNlY29uZHMoKSwgZC5nZXRNaW51dGVzKCksIGQuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgICAgIGQuZ2V0RGF0ZSgpLCBkLmdldE1vbnRoKCksIGQuZ2V0RnVsbFllYXIoKSAtIDE5MDAsXG4gICAgICAgICAgICAgICBkLmdldERheSgpLCBkb3ksXG4gICAgICAgICAgICAgICAoZC5nZXRUaW1lem9uZU9mZnNldCgpIDwgc3RkVGltZXpvbmVPZmZzZXQpIHwgMCAvKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUgIGZpZWxkLiAqLylcbn1cblxuLy9Qcm92aWRlczogdW5peF9ta3RpbWVcbi8vUmVxdWlyZXM6IHVuaXhfbG9jYWx0aW1lXG5mdW5jdGlvbiB1bml4X21rdGltZSh0bSl7XG4gIHZhciBkID0gKG5ldyBEYXRlKHRtWzZdKzE5MDAsdG1bNV0sdG1bNF0sdG1bM10sdG1bMl0sdG1bMV0pKS5nZXRUaW1lKCk7XG4gIHZhciB0ID0gTWF0aC5mbG9vcihkIC8gMTAwMCk7XG4gIHZhciB0bTIgPSB1bml4X2xvY2FsdGltZSh0KTtcbiAgcmV0dXJuIEJMT0NLKDAsdCx0bTIpO1xufVxuXG4vL1Byb3ZpZGVzOiB3aW5fc3RhcnR1cCBjb25zdFxuZnVuY3Rpb24gd2luX3N0YXJ0dXAoKSB7fVxuXG4vL1Byb3ZpZGVzOiB3aW5fY2xlYW51cCBjb25zdFxuZnVuY3Rpb24gd2luX2NsZWFudXAoKSB7fVxuXG4vL1Byb3ZpZGVzOiB3aW5faGFuZGxlX2ZkIGNvbnN0XG5mdW5jdGlvbiB3aW5faGFuZGxlX2ZkKHgpIHtyZXR1cm4geDt9XG5cbi8vUHJvdmlkZXM6IHVuaXhfaXNhdHR5XG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gdW5peF9pc2F0dHkoZmlsZURlc2NyaXB0b3IpIHtcbiAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgIHZhciB0dHkgPSByZXF1aXJlKCd0dHknKTtcbiAgICByZXR1cm4gdHR5LmlzYXR0eShmaWxlRGVzY3JpcHRvcik/MTowO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IG1ha2VfdW5peF9lcnJfYXJnc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbnZhciB1bml4X2Vycm9yID0gW1xuICAvKiA9PT1Vbml4LmVycm9yPT09XG4gICAqXG4gICAqIFRoaXMgYXJyYXkgaXMgaW4gb3JkZXIgb2YgdGhlIHZhcmlhbnQgaW4gT0NhbWxcbiAgICovXG4gIFwiRTJCSUdcIiwgXCJFQUNDRVNcIiwgXCJFQUdBSU5cIiwgXCJFQkFERlwiLCBcIkVCVVNZXCIsIFwiRUNISUxEXCIsIFwiRURFQURMS1wiLCBcIkVET01cIixcbiAgXCJFRVhJU1RcIiwgXCJFRkFVTFRcIiwgXCJFRkJJR1wiLCBcIkVJTlRSXCIsIFwiRUlOVkFMXCIsIFwiRUlPXCIsIFwiRUlTRElSXCIsIFwiRU1GSUxFXCIsXG4gIFwiRU1MSU5LXCIsIFwiRU5BTUVUT09MT05HXCIsIFwiRU5GSUxFXCIsIFwiRU5PREVWXCIsIFwiRU5PRU5UXCIsIFwiRU5PRVhFQ1wiLCBcIkVOT0xDS1wiLFxuICBcIkVOT01FTVwiLCBcIkVOT1NQQ1wiLCBcIkVOT1NZU1wiLCBcIkVOT1RESVJcIiwgXCJFTk9URU1QVFlcIiwgXCJFTk9UVFlcIiwgXCJFTlhJT1wiLFxuICBcIkVQRVJNXCIsIFwiRVBJUEVcIiwgXCJFUkFOR0VcIiwgXCJFUk9GU1wiLCBcIkVTUElQRVwiLCBcIkVTUkNIXCIsIFwiRVhERVZcIiwgXCJFV09VTERCTE9DS1wiLFxuICBcIkVJTlBST0dSRVNTXCIsIFwiRUFMUkVBRFlcIiwgXCJFTk9UU09DS1wiLCBcIkVERVNUQUREUlJFUVwiLCBcIkVNU0dTSVpFXCIsXG4gIFwiRVBST1RPVFlQRVwiLCBcIkVOT1BST1RPT1BUXCIsIFwiRVBST1RPTk9TVVBQT1JUXCIsIFwiRVNPQ0tUTk9TVVBQT1JUXCIsXG4gIFwiRU9QTk9UU1VQUFwiLCBcIkVQRk5PU1VQUE9SVFwiLCBcIkVBRk5PU1VQUE9SVFwiLCBcIkVBRERSSU5VU0VcIiwgXCJFQUREUk5PVEFWQUlMXCIsXG4gIFwiRU5FVERPV05cIiwgXCJFTkVUVU5SRUFDSFwiLCBcIkVORVRSRVNFVFwiLCBcIkVDT05OQUJPUlRFRFwiLCBcIkVDT05OUkVTRVRcIiwgXCJFTk9CVUZTXCIsXG4gIFwiRUlTQ09OTlwiLCBcIkVOT1RDT05OXCIsIFwiRVNIVVRET1dOXCIsIFwiRVRPT01BTllSRUZTXCIsIFwiRVRJTUVET1VUXCIsIFwiRUNPTk5SRUZVU0VEXCIsXG4gIFwiRUhPU1RET1dOXCIsIFwiRUhPU1RVTlJFQUNIXCIsIFwiRUxPT1BcIiwgXCJFT1ZFUkZMT1dcIlxuXTtcbmZ1bmN0aW9uIG1ha2VfdW5peF9lcnJfYXJncyhjb2RlLCBzeXNjYWxsLCBwYXRoLCBlcnJubykge1xuICB2YXIgdmFyaWFudCA9IHVuaXhfZXJyb3IuaW5kZXhPZihjb2RlKTtcbiAgaWYgKHZhcmlhbnQgPCAwKSB7XG4gICAgLy8gRGVmYXVsdCBpZiB1bmRlZmluZWRcbiAgICBpZiAoZXJybm8gPT0gbnVsbCkge1xuICAgICAgZXJybm8gPSAtOTk5OVxuICAgIH1cbiAgICAvLyBJZiBub25lIG9mIHRoZSBhYm92ZSB2YXJpYW50cywgZmFsbGJhY2sgdG8gRVVOS05PV05FUlIoaW50KVxuICAgIHZhcmlhbnQgPSBCTE9DSygwLCBlcnJubyk7XG4gIH1cbiAgdmFyIGFyZ3MgPSBbXG4gICAgdmFyaWFudCxcbiAgICBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhzeXNjYWxsIHx8IFwiXCIpLFxuICAgIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHBhdGggfHwgXCJcIilcbiAgXTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfc3RhdFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2Uuc3RhdCkge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJ1bml4X3N0YXQ6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2Uuc3RhdChyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfc3RhdF82NFxuLy9SZXF1aXJlczogdW5peF9zdGF0XG52YXIgdW5peF9zdGF0XzY0ID0gdW5peF9zdGF0O1xuXG4vL1Byb3ZpZGVzOiB1bml4X2xzdGF0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9sc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UubHN0YXQpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9sc3RhdDogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5sc3RhdChyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfbHN0YXRfNjRcbi8vUmVxdWlyZXM6IHVuaXhfbHN0YXRcbnZhciB1bml4X2xzdGF0XzY0ID0gdW5peF9sc3RhdDtcblxuLy9Qcm92aWRlczogdW5peF9ta2RpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfbWtkaXIobmFtZSwgcGVybSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLm1rZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfbWtkaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UubWtkaXIocm9vdC5yZXN0LCBwZXJtLCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3JtZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gdW5peF9ybWRpcihuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2Uucm1kaXIpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9ybWRpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5ybWRpcihyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfc3ltbGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfc3ltbGluayh0b19kaXIsIHNyYywgZHN0KSB7XG4gIHZhciBzcmNfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKHNyYyk7XG4gIHZhciBkc3Rfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKGRzdCk7XG4gIGlmKHNyY19yb290LmRldmljZSAhPSBkc3Rfcm9vdC5kZXZpY2UpXG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfc3ltbGluazogY2Fubm90IHN5bWxpbmsgYmV0d2VlbiB0d28gZmlsZXN5c3RlbXNcIik7XG4gIGlmICghc3JjX3Jvb3QuZGV2aWNlLnN5bWxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF9zeW1saW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHNyY19yb290LmRldmljZS5zeW1saW5rKHRvX2Rpciwgc3JjX3Jvb3QucmVzdCwgZHN0X3Jvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9yZWFkbGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfcmVhZGxpbmsobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnJlYWRsaW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcInVuaXhfcmVhZGxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UucmVhZGxpbmsocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiB1bml4X3VubGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIHVuaXhfdW5saW5rKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS51bmxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwidW5peF91bmxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UudW5saW5rKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogdW5peF9nZXR1aWRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG5mdW5jdGlvbiB1bml4X2dldHVpZCh1bml0KSB7XG4gIGlmKGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuZ2V0dWlkKXtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5wcm9jZXNzLmdldHVpZCgpO1xuICB9XG4gIGNhbWxfcmFpc2Vfbm90X2ZvdW5kKCk7XG59XG5cbi8vUHJvdmlkZXM6IHVuaXhfZ2V0cHd1aWRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG5mdW5jdGlvbiB1bml4X2dldHB3dWlkKHVuaXQpIHtcbiAgY2FtbF9yYWlzZV9ub3RfZm91bmQoKVxufVxuXG4vL1Byb3ZpZGVzOiB1bml4X2hhc19zeW1saW5rXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gdW5peF9oYXNfc3ltbGluayh1bml0KSB7XG4gIHJldHVybiBmc19ub2RlX3N1cHBvcnRlZCgpPzE6MFxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBTeXNcblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuU3lzX2Vycm9yLCBtc2cpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19leGl0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfc3lzX2V4aXQgKGNvZGUpIHtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICBpZihnLnF1aXQpIGcucXVpdChjb2RlKTtcbiAgLy9ub2RlanNcbiAgaWYoZy5wcm9jZXNzICYmIGcucHJvY2Vzcy5leGl0KVxuICAgIGcucHJvY2Vzcy5leGl0KGNvZGUpO1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJGdW5jdGlvbiAnZXhpdCcgbm90IGltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uKGV4bil7XG4gIHN3aXRjaChleG5bMl0pIHtcbiAgY2FzZSAtODogLy8gTWF0Y2hfZmFpbHVyZVxuICBjYXNlIC0xMTogLy8gQXNzZXJ0X2ZhaWx1cmVcbiAgY2FzZSAtMTI6IC8vIFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlXG4gICAgcmV0dXJuIDE7XG4gIGRlZmF1bHQ6XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfZXhjZXB0aW9uXG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9leGNlcHRpb24oZXhuKXtcbiAgdmFyIHIgPSBcIlwiO1xuICBpZihleG5bMF0gPT0gMCkge1xuICAgIHIgKz0gZXhuWzFdWzFdO1xuICAgIGlmKGV4bi5sZW5ndGggPT0gMyAmJiBleG5bMl1bMF0gPT0gMCAmJiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uKGV4blsxXSkpIHtcblxuICAgICAgdmFyIGJ1Y2tldCA9IGV4blsyXTtcbiAgICAgIHZhciBzdGFydCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzdGFydCA9IDJcbiAgICAgIHZhciBidWNrZXQgPSBleG47XG4gICAgfVxuICAgIHIgKz0gXCIoXCI7XG4gICAgZm9yKHZhciBpID0gc3RhcnQ7IGkgPCBidWNrZXQubGVuZ3RoOyBpICsrKXtcbiAgICAgIGlmKGkgPiBzdGFydCkgcis9XCIsIFwiO1xuICAgICAgdmFyIHYgPSBidWNrZXRbaV1cbiAgICAgIGlmKHR5cGVvZiB2ID09IFwibnVtYmVyXCIpXG4gICAgICAgIHIrPSB2LnRvU3RyaW5nKCk7XG4gICAgICBlbHNlIGlmKHYgaW5zdGFuY2VvZiBNbEJ5dGVzKXtcbiAgICAgICAgcis9ICdcIicgKyB2LnRvU3RyaW5nKCkgKyAnXCInO1xuICAgICAgfVxuICAgICAgZWxzZSBpZih0eXBlb2YgdiA9PSBcInN0cmluZ1wiKXtcbiAgICAgICAgcis9ICdcIicgKyB2LnRvU3RyaW5nKCkgKyAnXCInO1xuICAgICAgfVxuICAgICAgZWxzZSByICs9IFwiX1wiO1xuICAgIH1cbiAgICByICs9IFwiKVwiXG4gIH0gZWxzZSBpZiAoZXhuWzBdID09IDI0OCl7XG4gICAgciArPSBleG5bMV1cbiAgfVxuICByZXR1cm4gclxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvblxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9mb3JtYXRfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihlcnIpe1xuICBpZihlcnIgaW5zdGFuY2VvZiBBcnJheSAmJiAoZXJyWzBdID09IDAgfHwgZXJyWzBdID09IDI0OCkpIHtcbiAgICB2YXIgaGFuZGxlciA9IGNhbWxfbmFtZWRfdmFsdWUoXCJQcmludGV4Yy5oYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXCIpO1xuICAgIGlmKGhhbmRsZXIpIGhhbmRsZXIoZXJyLGZhbHNlKTtcbiAgICBlbHNlIHtcbiAgICAgIHZhciBtc2cgPSBjYW1sX2Zvcm1hdF9leGNlcHRpb24oZXJyKTtcbiAgICAgIHZhciBhdF9leGl0ID0gY2FtbF9uYW1lZF92YWx1ZShcIlBlcnZhc2l2ZXMuZG9fYXRfZXhpdFwiKTtcbiAgICAgIGlmKGF0X2V4aXQpIHsgYXRfZXhpdCgwKSB9XG4gICAgICBnbG9iYWxUaGlzLmNvbnNvbGUuZXJyb3IoXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uIFwiICsgbXNnICsgXCJcXG5cIik7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IGVyclxuICB9XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zZXRfc3RhdGljX2VudlxuZnVuY3Rpb24gY2FtbF9zZXRfc3RhdGljX2VudihrLHYpe1xuICBpZighZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnYpXG4gICAgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnYgPSB7fVxuICBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltrXSA9IHY7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0ZW52IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldGVudiAobmFtZSkge1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIHZhciBuID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSk7XG4gIC8vbm9kZWpzIGVudlxuICBpZihnLnByb2Nlc3NcbiAgICAgJiYgZy5wcm9jZXNzLmVudlxuICAgICAmJiBnLnByb2Nlc3MuZW52W25dICE9IHVuZGVmaW5lZClcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoZy5wcm9jZXNzLmVudltuXSk7XG4gIGlmKGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52XG4gICAgICYmIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W25dKVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltuXSlcbiAgY2FtbF9yYWlzZV9ub3RfZm91bmQgKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3Vuc2FmZV9nZXRlbnZcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2dldGVudlxuZnVuY3Rpb24gY2FtbF9zeXNfdW5zYWZlX2dldGVudihuYW1lKXtcbiAgcmV0dXJuIGNhbWxfc3lzX2dldGVudiAobmFtZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJndlxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbnZhciBjYW1sX2FyZ3YgPSAoKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICB2YXIgbWFpbiA9IFwiYS5vdXRcIjtcbiAgdmFyIGFyZ3MgPSBbXVxuXG4gIGlmKGcucHJvY2Vzc1xuICAgICAmJiBnLnByb2Nlc3MuYXJndlxuICAgICAmJiBnLnByb2Nlc3MuYXJndi5sZW5ndGggPiAxKSB7XG4gICAgdmFyIGFyZ3YgPSBnLnByb2Nlc3MuYXJndlxuICAgIC8vbm9kZWpzXG4gICAgbWFpbiA9IGFyZ3ZbMV07XG4gICAgYXJncyA9IGFyZ3Yuc2xpY2UoMik7XG4gIH1cblxuICB2YXIgcCA9IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKG1haW4pO1xuICB2YXIgYXJnczIgPSBbMCwgcF07XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKVxuICAgIGFyZ3MyLnB1c2goY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoYXJnc1tpXSkpO1xuICByZXR1cm4gYXJnczI7XG59KSgpKVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG52YXIgY2FtbF9leGVjdXRhYmxlX25hbWUgPSBjYW1sX2FyZ3ZbMV1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0X2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0X2FyZ3YgKGEpIHtcbiAgcmV0dXJuIFswLCBjYW1sX2FyZ3ZbMV0sIGNhbWxfYXJndl07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfYXJndiAoYSkge1xuICByZXR1cm4gY2FtbF9hcmd2O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19tb2RpZnlfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19tb2RpZnlfYXJndihhcmcpe1xuICBjYW1sX2FyZ3YgPSBhcmc7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19leGVjdXRhYmxlX25hbWUgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfZXhlY3V0YWJsZV9uYW1lXG5mdW5jdGlvbiBjYW1sX3N5c19leGVjdXRhYmxlX25hbWUoYSl7XG4gIHJldHVybiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kKGNtZCl7XG4gIHZhciBjbWQgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhjbWQpO1xuICBpZiAodHlwZW9mIHJlcXVpcmUgIT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpXG4gICAgICAmJiByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJykuZXhlY1N5bmMpIHtcbiAgICB0cnkge3JlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKS5leGVjU3luYyhjbWQse3N0ZGlvOiAnaW5oZXJpdCd9KTsgcmV0dXJuIDB9XG4gICAgY2F0Y2ggKGUpIHtyZXR1cm4gMX1cbiAgfVxuICBlbHNlIHJldHVybiAxMjc7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3RpbWUgbXV0YWJsZVxudmFyIGNhbWxfaW5pdGlhbF90aW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAqIDAuMDAxO1xuZnVuY3Rpb24gY2FtbF9zeXNfdGltZSAoKSB7XG4gIHZhciBub3cgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICByZXR1cm4gbm93ICogMC4wMDEgLSBjYW1sX2luaXRpYWxfdGltZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdGltZV9pbmNsdWRlX2NoaWxkcmVuXG4vL1JlcXVpcmVzOiBjYW1sX3N5c190aW1lXG5mdW5jdGlvbiBjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4oYikge1xuICByZXR1cm4gY2FtbF9zeXNfdGltZSgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yYW5kb21fc2VlZCBtdXRhYmxlXG4vL1RoZSBmdW5jdGlvbiBuZWVkcyB0byByZXR1cm4gYW4gYXJyYXkgc2luY2UgT0NhbWwgNC4wLi4uXG5mdW5jdGlvbiBjYW1sX3N5c19yYW5kb21fc2VlZCAoKSB7XG4gIGlmKGdsb2JhbFRoaXMuY3J5cHRvKSB7XG4gICAgaWYodHlwZW9mIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyA9PT0gJ2Z1bmN0aW9uJyl7XG4gICAgICAvLyBXZWJicm93c2Vyc1xuICAgICAgdmFyIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50MzJBcnJheSgxKTtcbiAgICAgIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKTtcbiAgICAgIHJldHVybiBbMCxhWzBdXTtcbiAgICB9IGVsc2UgaWYoZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tQnl0ZXMgPT09ICdmdW5jdGlvbicpe1xuICAgICAgLy8gTm9kZWpzXG4gICAgICB2YXIgYnVmZiA9IGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbUJ5dGVzKDQpO1xuICAgICAgdmFyIGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50MzJBcnJheShidWZmKTtcbiAgICAgIHJldHVybiBbMCxhWzBdXTtcbiAgICB9XG4gIH1cbiAgdmFyIG5vdyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gIHZhciB4ID0gbm93XjB4ZmZmZmZmZmYqTWF0aC5yYW5kb20oKTtcbiAgcmV0dXJuIFswLHhdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF93b3JkX3NpemUgKCkgeyByZXR1cm4gMzI7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfaW50X3NpemUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2ludF9zaXplICgpIHsgcmV0dXJuIDMyOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X21heF93b3NpemUgY29uc3Rcbi8vIG1heF9pbnQgLyA0IHNvIHRoYXQgdGhlIGZvbGxvd2luZyBkb2VzIG5vdCBvdmVyZmxvd1xuLy9sZXQgbWF4X3N0cmluZ19sZW5ndGggPSB3b3JkX3NpemUgLyA4ICogbWF4X2FycmF5X2xlbmd0aCAtIDE7O1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfbWF4X3dvc2l6ZSAoKSB7IHJldHVybiAoMHg3RkZGRkZGRi80KSB8IDA7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXggKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIlVuaXhcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIgY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiAoKSB7IHJldHVybiBvc190eXBlID09IFwiV2luMzJcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luIGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJDeWd3aW5cIiA/IDEgOiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlICgpIHtcbiAgcmV0dXJuIFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwianNfb2Zfb2NhbWxcIildO1xufVxuXG4vL1Byb3ZpZGVzOiBvc190eXBlXG52YXIgb3NfdHlwZSA9IChnbG9iYWxUaGlzLnByb2Nlc3MgJiZcbiAgICAgICAgICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSAmJlxuICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtID09IFwid2luMzJcIikgPyBcIkN5Z3dpblwiIDogXCJVbml4XCI7XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0X2NvbmZpZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0X2NvbmZpZyAoKSB7XG4gIHJldHVybiBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhvc190eXBlKSwgMzIsIDBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc2F0dHlcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzYXR0eShfY2hhbikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3ZhcmlhbnRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV92YXJpYW50KF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3BhcmFtZXRlcnNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9wYXJhbWV0ZXJzKF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlcigpe3JldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiB1bml4X2luZXRfYWRkcl9vZl9zdHJpbmdcbmZ1bmN0aW9uIHVuaXhfaW5ldF9hZGRyX29mX3N0cmluZyAoKSB7cmV0dXJuIDA7fVxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG52YXIgY2FtbF9ydW50aW1lX3dhcm5pbmdzID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9tbF9lbmFibGVfcnVudGltZV93YXJuaW5nc1xuLy9SZXF1aXJlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG5mdW5jdGlvbiBjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIChib29sKSB7XG4gIGNhbWxfcnVudGltZV93YXJuaW5ncyA9IGJvb2w7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZFxuLy9SZXF1aXJlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG5mdW5jdGlvbiBjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCAoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfcnVudGltZV93YXJuaW5ncztcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NwYWNldGltZV9lbmFibGVkIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfc3BhY2V0aW1lX2VuYWJsZWQoX3VuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZChfdW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUoX2NoYW5uZWwpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSgpIHtcbiAgY2FtbF9mYWlsd2l0aChcIlNwYWNldGltZSBwcm9maWxpbmcgb25seSB3b3JrcyBmb3IgbmF0aXZlIGNvZGVcIik7XG59XG5cbi8vQWx3YXlzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlcigpIHtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICBpZihnLnByb2Nlc3MgJiYgZy5wcm9jZXNzLm9uKSB7XG4gICAgZy5wcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIGZ1bmN0aW9uIChlcnIsIG9yaWdpbikge1xuICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXJyKTtcbiAgICAgIGcucHJvY2Vzcy5leGl0ICgyKTtcbiAgICB9KVxuICB9XG4gIGVsc2UgaWYoZy5hZGRFdmVudExpc3RlbmVyKXtcbiAgICBnLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgaWYoZXZlbnQuZXJyb3Ipe1xuICAgICAgICBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihldmVudC5lcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbmNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIoKTtcbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IE1sRmFrZURldmljZVxuLy9SZXF1aXJlczogTWxGYWtlRmlsZSwgY2FtbF9jcmVhdGVfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfYXJyYXksIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2J5dGVzX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX3dpdGhfYXJncywgY2FtbF9uYW1lZF92YWx1ZXNcbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJnc1xuZnVuY3Rpb24gTWxGYWtlRGV2aWNlIChyb290LCBmKSB7XG4gIHRoaXMuY29udGVudD17fTtcbiAgdGhpcy5yb290ID0gcm9vdDtcbiAgdGhpcy5sb29rdXBGdW4gPSBmO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ubSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuICh0aGlzLnJvb3QgKyBuYW1lKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuY3JlYXRlX2Rpcl9pZl9uZWVkZWQgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBjb21wID0gbmFtZS5zcGxpdChcIi9cIik7XG4gIHZhciByZXMgPSBcIlwiO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgY29tcC5sZW5ndGggLSAxOyBpKyspe1xuICAgIHJlcyArPSBjb21wW2ldICsgXCIvXCI7XG4gICAgaWYodGhpcy5jb250ZW50W3Jlc10pIGNvbnRpbnVlO1xuICAgIHRoaXMuY29udGVudFtyZXNdID0gU3ltYm9sKFwiZGlyZWN0b3J5XCIpO1xuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnNsYXNoID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiAvXFwvJC8udGVzdChuYW1lKT9uYW1lOihuYW1lICsgXCIvXCIpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5sb29rdXAgPSBmdW5jdGlvbihuYW1lKSB7XG4gIGlmKCF0aGlzLmNvbnRlbnRbbmFtZV0gJiYgdGhpcy5sb29rdXBGdW4pIHtcbiAgICB2YXIgcmVzID0gdGhpcy5sb29rdXBGdW4oY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh0aGlzLnJvb3QpLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpKTtcbiAgICBpZihyZXMgIT09IDApIHtcbiAgICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgICB0aGlzLmNvbnRlbnRbbmFtZV09bmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9zdHJpbmcocmVzWzFdKSk7XG4gICAgfVxuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmV4aXN0cyA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgLy8gVGhlIHJvb3Qgb2YgdGhlIGRldmljZSBleGlzdHNcbiAgaWYobmFtZSA9PSBcIlwiKSByZXR1cm4gMTtcbiAgLy8gQ2hlY2sgaWYgYSBkaXJlY3RvcnkgZXhpc3RzXG4gIHZhciBuYW1lX3NsYXNoID0gdGhpcy5zbGFzaChuYW1lKTtcbiAgaWYodGhpcy5jb250ZW50W25hbWVfc2xhc2hdKSByZXR1cm4gMTtcbiAgLy8gQ2hlY2sgaWYgYSBmaWxlIGV4aXN0c1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgcmV0dXJuIHRoaXMuY29udGVudFtuYW1lXT8xOjA7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm1rZGlyID0gZnVuY3Rpb24obmFtZSxtb2RlLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gcmFpc2VfdW5peCAmJiBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgaWYodGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUVYSVNUXCIsIFwibWtkaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogRmlsZSBleGlzdHNcIik7XG4gICAgfVxuICB9XG4gIHZhciBwYXJlbnQgPSAvXiguKilcXC9bXi9dKy8uZXhlYyhuYW1lKTtcbiAgcGFyZW50ID0gKHBhcmVudCAmJiBwYXJlbnRbMV0pIHx8ICcnO1xuICBpZighdGhpcy5leGlzdHMocGFyZW50KSl7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT0VOVFwiLCBcIm1rZGlyXCIsIHRoaXMubm0ocGFyZW50KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHBhcmVudCArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBpZighdGhpcy5pc19kaXIocGFyZW50KSl7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RESVJcIiwgXCJta2RpclwiLCB0aGlzLm5tKHBhcmVudCkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihwYXJlbnQgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKHRoaXMuc2xhc2gobmFtZSkpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ybWRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICB2YXIgbmFtZV9zbGFzaCA9IChuYW1lID09IFwiXCIpP1wiXCI6KHRoaXMuc2xhc2gobmFtZSkpO1xuICB2YXIgciA9IG5ldyBSZWdFeHAoXCJeXCIgKyBuYW1lX3NsYXNoICsgXCIoW14vXSspXCIpO1xuICBpZighdGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PRU5UXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RESVJcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGZvcih2YXIgbiBpbiB0aGlzLmNvbnRlbnQpIHtcbiAgICBpZihuLm1hdGNoKHIpKSB7XG4gICAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URU1QVFlcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCI6IERpcmVjdG9yeSBub3QgZW1wdHlcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGRlbGV0ZSB0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF07XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJlYWRkaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBuYW1lX3NsYXNoID0gKG5hbWUgPT0gXCJcIik/XCJcIjoodGhpcy5zbGFzaChuYW1lKSk7XG4gIGlmKCF0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgfVxuICBpZighdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgfVxuICB2YXIgciA9IG5ldyBSZWdFeHAoXCJeXCIgKyBuYW1lX3NsYXNoICsgXCIoW14vXSspXCIpO1xuICB2YXIgc2VlbiA9IHt9XG4gIHZhciBhID0gW107XG4gIGZvcih2YXIgbiBpbiB0aGlzLmNvbnRlbnQpIHtcbiAgICB2YXIgbSA9IG4ubWF0Y2gocik7XG4gICAgaWYobSAmJiAhc2VlblttWzFdXSkge3NlZW5bbVsxXV0gPSB0cnVlOyBhLnB1c2gobVsxXSl9XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmlzX2RpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYobmFtZSA9PSBcIlwiKSAgcmV0dXJuIHRydWU7XG4gIHZhciBuYW1lX3NsYXNoID0gdGhpcy5zbGFzaChuYW1lKTtcbiAgcmV0dXJuIHRoaXMuY29udGVudFtuYW1lX3NsYXNoXT8xOjA7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnVubGluayA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIG9rID0gdGhpcy5jb250ZW50W25hbWVdP3RydWU6ZmFsc2U7XG4gIGRlbGV0ZSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIHJldHVybiBvaztcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYpIHtcbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgaWYgKHRoaXMuY29udGVudFtuYW1lXSkge1xuICAgIGlmICh0aGlzLmlzX2RpcihuYW1lKSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogaXMgYSBkaXJlY3RvcnlcIik7XG4gICAgaWYgKGYuY3JlYXRlICYmIGYuZXhjbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgICB2YXIgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgICBpZihmLnRydW5jYXRlKSBmaWxlLnRydW5jYXRlKCk7XG4gICAgcmV0dXJuIGZpbGU7XG4gIH0gZWxzZSBpZiAoZi5jcmVhdGUpIHtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVdO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlICh0aGlzLm5tKG5hbWUpKTtcbiAgfVxufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJlZ2lzdGVyPSBmdW5jdGlvbiAobmFtZSxjb250ZW50KXtcbiAgdmFyIGZpbGU7XG4gIGlmKHRoaXMuY29udGVudFtuYW1lXSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgaWYoY2FtbF9pc19tbF9ieXRlcyhjb250ZW50KSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY29udGVudCk7XG4gIGlmKGNhbWxfaXNfbWxfc3RyaW5nKGNvbnRlbnQpKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhjb250ZW50KSk7XG4gIGVsc2UgaWYoY29udGVudCBpbnN0YW5jZW9mIEFycmF5KVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX2FycmF5KGNvbnRlbnQpKTtcbiAgZWxzZSBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIilcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9qc2J5dGVzKGNvbnRlbnQpKTtcbiAgZWxzZSBpZihjb250ZW50LnRvU3RyaW5nKSB7XG4gICAgdmFyIGJ5dGVzID0gY2FtbF9ieXRlc19vZl9zdHJpbmcoY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoY29udGVudC50b1N0cmluZygpKSk7XG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGJ5dGVzKTtcbiAgfVxuICBpZihmaWxlKXtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IGZpbGU7XG4gIH1cbiAgZWxzZSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiByZWdpc3RlcmluZyBmaWxlIHdpdGggaW52YWxpZCBjb250ZW50IHR5cGVcIik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbEZha2VEZXZpY2VcblxuLy9Qcm92aWRlczogTWxGYWtlRmlsZVxuLy9SZXF1aXJlczogTWxGaWxlXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ibGl0X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19nZXRcbmZ1bmN0aW9uIE1sRmFrZUZpbGUoY29udGVudCl7XG4gIHRoaXMuZGF0YSA9IGNvbnRlbnQ7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZSA9IG5ldyBNbEZpbGUgKCk7XG5NbEZha2VGaWxlLnByb3RvdHlwZS50cnVuY2F0ZSA9IGZ1bmN0aW9uKGxlbil7XG4gIHZhciBvbGQgPSB0aGlzLmRhdGE7XG4gIHRoaXMuZGF0YSA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbnwwKTtcbiAgY2FtbF9ibGl0X2J5dGVzKG9sZCwgMCwgdGhpcy5kYXRhLCAwLCBsZW4pO1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gY2FtbF9tbF9ieXRlc19sZW5ndGgodGhpcy5kYXRhKTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24ob2Zmc2V0LGJ1Zixwb3MsbGVuKXtcbiAgdmFyIGNsZW4gPSB0aGlzLmxlbmd0aCgpO1xuICBpZihvZmZzZXQgKyBsZW4gPj0gY2xlbikge1xuICAgIHZhciBuZXdfc3RyID0gY2FtbF9jcmVhdGVfYnl0ZXMob2Zmc2V0ICsgbGVuKTtcbiAgICB2YXIgb2xkX2RhdGEgPSB0aGlzLmRhdGE7XG4gICAgdGhpcy5kYXRhID0gbmV3X3N0cjtcbiAgICBjYW1sX2JsaXRfYnl0ZXMob2xkX2RhdGEsIDAsIHRoaXMuZGF0YSwgMCwgY2xlbik7XG4gIH1cbiAgY2FtbF9ibGl0X3N0cmluZyhidWYsIHBvcywgdGhpcy5kYXRhLCBvZmZzZXQsIGxlbik7XG4gIHJldHVybiAwXG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGJ1Zixwb3MsbGVuKXtcbiAgdmFyIGNsZW4gPSB0aGlzLmxlbmd0aCgpO1xuICBjYW1sX2JsaXRfYnl0ZXModGhpcy5kYXRhLCBvZmZzZXQsIGJ1ZiwgcG9zLCBsZW4pO1xuICByZXR1cm4gMFxufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUucmVhZF9vbmUgPSBmdW5jdGlvbihvZmZzZXQpe1xuICByZXR1cm4gY2FtbF9ieXRlc19nZXQodGhpcy5kYXRhLCBvZmZzZXQpO1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbigpe1xuXG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sRmFrZUZpbGVcbiIsIi8vUHJvdmlkZXM6IGluaXRpYWxpemVfbmF0XG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IHNlcmlhbGl6ZV9uYXQsIGRlc2VyaWFsaXplX25hdCwgY2FtbF9oYXNoX25hdFxuZnVuY3Rpb24gaW5pdGlhbGl6ZV9uYXQoKSB7XG4gIGNhbWxfY3VzdG9tX29wc1tcIl9uYXRcIl0gPVxuICAgIHsgZGVzZXJpYWxpemUgOiBkZXNlcmlhbGl6ZV9uYXQsXG4gICAgICBzZXJpYWxpemUgOiBzZXJpYWxpemVfbmF0LFxuICAgICAgaGFzaCA6IGNhbWxfaGFzaF9uYXRcbiAgICB9XG59XG5cbi8vUHJvdmlkZXM6IE1sTmF0XG5mdW5jdGlvbiBNbE5hdCh4KXtcbiAgdGhpcy5kYXRhID0gbmV3IGdsb2JhbFRoaXMuSW50MzJBcnJheSh4KTtcbiAgLy8gbGVuZ3RoX25hdCBpc24ndCBleHRlcm5hbCwgc28gd2UgaGF2ZSB0byBtYWtlIHRoZSBPYmouc2l6ZVxuICAvLyB3b3JrIG91dCByaWdodC4gVGhlICsyIHRvIGFycmF5IGxlbmd0aCBzZWVtcyB0byB3b3JrLlxuICB0aGlzLmxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGggKyAyXG59XG5cbk1sTmF0LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IFwiX25hdFwiO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbmF0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludCwgbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9uYXQoeCkge1xuICB2YXIgbGVuID0gbnVtX2RpZ2l0c19uYXQoeCwgMCwgeC5kYXRhLmxlbmd0aCk7XG4gIHZhciBoID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB4LmRhdGFbaV0pO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG5cbi8vUHJvdmlkZXM6IG5hdF9vZl9hcnJheVxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIG5hdF9vZl9hcnJheShsKXtcbiAgcmV0dXJuIG5ldyBNbE5hdChsKTtcbn1cblxuLy9Qcm92aWRlczogY3JlYXRlX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGNyZWF0ZV9uYXQoc2l6ZSkge1xuICB2YXIgYXJyID0gbmV3IE1sTmF0KHNpemUpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgYXJyLmRhdGFbaV0gPSAtMTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfdG9femVyb19uYXRcbmZ1bmN0aW9uIHNldF90b196ZXJvX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdC5kYXRhW29mcytpXSA9IDA7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGJsaXRfbmF0XG5mdW5jdGlvbiBibGl0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSBuYXQyLmRhdGFbb2ZzMitpXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdFxuZnVuY3Rpb24gc2V0X2RpZ2l0X25hdChuYXQsIG9mcywgZGlnaXQpIHtcbiAgbmF0LmRhdGFbb2ZzXSA9IGRpZ2l0O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbnRoX2RpZ2l0X25hdFxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdChuYXQsIG9mcykge1xuICByZXR1cm4gbmF0LmRhdGFbb2ZzXTtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdF9uYXRpdmVcbmZ1bmN0aW9uIHNldF9kaWdpdF9uYXRfbmF0aXZlKG5hdCwgb2ZzLCBkaWdpdCkge1xuICBuYXQuZGF0YVtvZnNdID0gZGlnaXQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBudGhfZGlnaXRfbmF0X25hdGl2ZVxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdF9uYXRpdmUobmF0LCBvZnMpIHtcbiAgcmV0dXJuIG5hdC5kYXRhW29mc107XG59XG5cbi8vUHJvdmlkZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBudW1fZGlnaXRzX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYobmF0LmRhdGFbb2ZzK2ldICE9IDApIHJldHVybiBpKzE7XG4gIH1cbiAgcmV0dXJuIDE7IC8vIDAgY291bnRzIGFzIDEgZGlnaXRcbn1cblxuLy9Qcm92aWRlczogbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0XG5mdW5jdGlvbiBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQobmF0LCBvZnMpIHtcbiAgdmFyIGEgPSBuYXQuZGF0YVtvZnNdO1xuICB2YXIgYiA9IDA7XG4gIGlmKGEgJiAweEZGRkYwMDAwKSB7IGIgKz0xNjsgYSA+Pj49MTY7IH1cbiAgaWYoYSAmIDB4RkYwMCkgICAgIHsgYiArPSA4OyBhID4+Pj0gODsgfVxuICBpZihhICYgMHhGMCkgICAgICAgeyBiICs9IDQ7IGEgPj4+PSA0OyB9XG4gIGlmKGEgJiAxMikgICAgICAgICB7IGIgKz0gMjsgYSA+Pj49IDI7IH1cbiAgaWYoYSAmIDIpICAgICAgICAgIHsgYiArPSAxOyBhID4+Pj0gMTsgfVxuICBpZihhICYgMSkgICAgICAgICAgeyBiICs9IDE7IH1cbiAgcmV0dXJuIDMyIC0gYjtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfaW50XG5mdW5jdGlvbiBpc19kaWdpdF9pbnQobmF0LCBvZnMpIHtcbiAgaWYgKG5hdC5kYXRhW29mc10gPj0gMCkgcmV0dXJuIDFcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X3plcm9cbmZ1bmN0aW9uIGlzX2RpZ2l0X3plcm8obmF0LCBvZnMpIHtcbiAgaWYobmF0LmRhdGFbb2ZzXSA9PSAwKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X29kZFxuZnVuY3Rpb24gaXNfZGlnaXRfb2RkKG5hdCwgb2ZzKSB7XG4gIGlmKG5hdC5kYXRhW29mc10gJiAxKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGluY3JfbmF0XG5mdW5jdGlvbiBpbmNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0LmRhdGFbb2ZzK2ldID4+PiAwKSArIGNhcnJ5O1xuICAgIG5hdC5kYXRhW29mcytpXSA9ICh4IHwgMCk7XG4gICAgaWYoeCA9PSAoeCA+Pj4gMCkpIHtcbiAgICAgIGNhcnJ5ID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYXJyeTtcbn1cblxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBhZGRfbmF0XG4vL1JlcXVpcmVzOiBpbmNyX25hdFxuZnVuY3Rpb24gYWRkX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4ID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSArIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKyBjYXJyeTtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHhcbiAgICBpZih4ID09ICh4ID4+PiAwKSkge1xuICAgICAgY2FycnkgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmNyX25hdChuYXQxLCBvZnMxK2xlbjIsIGxlbjEtbGVuMiwgY2FycnkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wbGVtZW50X25hdFxuZnVuY3Rpb24gY29tcGxlbWVudF9uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAoLTEgPj4+IDApIC0gKG5hdC5kYXRhW29mcytpXSA+Pj4gMCk7XG4gIH1cbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vUHJvdmlkZXM6IGRlY3JfbmF0XG5mdW5jdGlvbiBkZWNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgYm9ycm93ID0gKGNhcnJ5X2luID09IDEpID8gMCA6IDE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciB4ID0gKG5hdC5kYXRhW29mcytpXSA+Pj4wKSAtIGJvcnJvdztcbiAgICBuYXQuZGF0YVtvZnMraV0gPSB4O1xuICAgIGlmICh4ID49IDApIHtcbiAgICAgIGJvcnJvdyA9IDA7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChib3Jyb3cgPT0gMSkgPyAwIDogMTtcbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogc3ViX25hdFxuLy9SZXF1aXJlczogZGVjcl9uYXRcbmZ1bmN0aW9uIHN1Yl9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgY2FycnlfaW4pIHtcbiAgdmFyIGJvcnJvdyA9IChjYXJyeV9pbiA9PSAxKSA/IDAgOiAxO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApIC0gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAtIGJvcnJvdztcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHg7XG4gICAgaWYgKHggPj0gMCkge1xuICAgICAgYm9ycm93ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlY3JfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCAoYm9ycm93PT0xKT8wOjEpO1xufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzW29mczNdXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IG11bHRfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBhZGRfbmF0LCBuYXRfb2ZfYXJyYXlcbmZ1bmN0aW9uIG11bHRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgdmFyIGEgPSAobmF0My5kYXRhW29mczNdID4+PiAwKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4MSA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgKyAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApICogKGEgJiAweDAwMDBGRkZGKSArIGNhcnJ5O1xuICAgIHZhciB4MiA9IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKiAoYSA+Pj4gMTYpO1xuICAgIGNhcnJ5ID0gTWF0aC5mbG9vcih4Mi82NTUzNik7XG4gICAgdmFyIHgzID0geDEgKyAoeDIgJSA2NTUzNikgKiA2NTUzNjtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHgzO1xuICAgIGNhcnJ5ICs9IE1hdGguZmxvb3IoeDMvNDI5NDk2NzI5Nik7XG4gIH1cblxuICBpZihsZW4yIDwgbGVuMSAmJiBjYXJyeSkge1xuICAgIHJldHVybiBhZGRfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCBuYXRfb2ZfYXJyYXkoW2NhcnJ5XSksIDAsIDEsIDApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjYXJyeTtcbiAgfVxufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzXG4vLyBsZW4xID49IGxlbjIgKyBsZW4zLlxuLy9Qcm92aWRlczogbXVsdF9uYXRcbi8vUmVxdWlyZXM6IG11bHRfZGlnaXRfbmF0XG5mdW5jdGlvbiBtdWx0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzLCBsZW4zKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4zOyBpKyspIHtcbiAgICBjYXJyeSArPSBtdWx0X2RpZ2l0X25hdChuYXQxLCBvZnMxK2ksIGxlbjEtaSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMytpKTtcbiAgfVxuICByZXR1cm4gY2Fycnk7XG59XG5cbi8vIG5hdDEgPSAyICogbmF0MSArIG5hdDIgKiBuYXQyXG4vLyBsZW4xID49IDIgKiBsZW4yXG4vL1Byb3ZpZGVzOiBzcXVhcmVfbmF0XG4vL1JlcXVpcmVzOiBtdWx0X25hdCwgYWRkX25hdFxuZnVuY3Rpb24gc3F1YXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGNhcnJ5ICs9IGFkZF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0MSwgb2ZzMSwgbGVuMSwgMCk7XG4gIGNhcnJ5ICs9IG11bHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpO1xuICByZXR1cm4gY2Fycnk7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9sZWZ0X25hdFxuZnVuY3Rpb24gc2hpZnRfbGVmdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbmJpdHMpIHtcbiAgaWYobmJpdHMgPT0gMCkge1xuICAgIG5hdDIuZGF0YVtvZnMyXSA9IDA7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIHdyYXAgPSAwO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgdmFyIGEgPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPDwgbmJpdHMpIHwgd3JhcDtcbiAgICB3cmFwID0gYSA+Pj4gKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vLyBBc3N1bWluZyBjID4gYSwgcmV0dXJucyBbcXVvdGllbnQsIHJlbWFpbmRlcl0gb2YgKGE8PDMyICsgYikvY1xuLy9Qcm92aWRlczogZGl2X2hlbHBlclxuZnVuY3Rpb24gZGl2X2hlbHBlcihhLCBiLCBjKSB7XG4gIHZhciB4ID0gYSAqIDY1NTM2ICsgKGI+Pj4xNik7XG4gIHZhciB5ID0gTWF0aC5mbG9vcih4L2MpICogNjU1MzY7XG4gIHZhciB6ID0gKHggJSBjKSAqIDY1NTM2O1xuICB2YXIgdyA9IHogKyAoYiAmIDB4MDAwMEZGRkYpO1xuICByZXR1cm4gW3kgKyBNYXRoLmZsb29yKHcvYyksIHcgJSBjXTtcbn1cblxuLy8gbmF0MVtvZnMxK2xlbl0gPCBuYXQyW29mczJdXG4vL1Byb3ZpZGVzOiBkaXZfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBkaXZfaGVscGVyXG5mdW5jdGlvbiBkaXZfZGlnaXRfbmF0KG5hdHEsIG9mc3EsIG5hdHIsIG9mc3IsIG5hdDEsIG9mczEsIGxlbiwgbmF0Miwgb2ZzMikge1xuICB2YXIgcmVtID0gKG5hdDEuZGF0YVtvZnMxK2xlbi0xXSA+Pj4wKTtcbiAgLy8gbmF0cVtvZnNxK2xlbi0xXSBpcyBndWFyYW50ZWVkIHRvIGJlIHplcm8gKGR1ZSB0byB0aGUgTVNEIHJlcXVpcmVtZW50KSxcbiAgLy8gYW5kIHNob3VsZCBub3QgYmUgd3JpdHRlbiB0by5cbiAgZm9yKHZhciBpID0gbGVuLTI7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIHggPSBkaXZfaGVscGVyKHJlbSwgKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDIuZGF0YVtvZnMyXSA+Pj4gMCkpO1xuICAgIG5hdHEuZGF0YVtvZnNxK2ldID0geFswXTtcbiAgICByZW0gPSB4WzFdO1xuICB9XG4gIG5hdHIuZGF0YVtvZnNyXSA9IHJlbTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vIG5hdDFbbmF0MjpdIDo9IG5hdDEgLyBuYXQyXG4vLyBuYXQxWzpuYXQyXSA6PSBuYXQxICUgbmF0MlxuLy8gbGVuMSA+IGxlbjIsIG5hdDJbb2ZzMitsZW4yLTFdID4gbmF0MVtvZnMxK2xlbjEtMV1cbi8vUHJvdmlkZXM6IGRpdl9uYXRcbi8vUmVxdWlyZXM6IGRpdl9kaWdpdF9uYXQsIGRpdl9oZWxwZXIsIG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCwgc2hpZnRfbGVmdF9uYXQsIHNoaWZ0X3JpZ2h0X25hdCwgY3JlYXRlX25hdCwgc2V0X3RvX3plcm9fbmF0LCBtdWx0X2RpZ2l0X25hdCwgc3ViX25hdCwgY29tcGFyZV9uYXQsIG5hdF9vZl9hcnJheVxuZnVuY3Rpb24gZGl2X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIGlmKGxlbjIgPT0gMSkge1xuICAgIGRpdl9kaWdpdF9uYXQobmF0MSwgb2ZzMSsxLCBuYXQxLCBvZnMxLCBuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyKTtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzID0gbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0KG5hdDIsIG9mczIrbGVuMi0xKTtcbiAgc2hpZnRfbGVmdF9uYXQobmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpO1xuICBzaGlmdF9sZWZ0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7XG5cbiAgdmFyIGQgPSAobmF0Mi5kYXRhW29mczIrbGVuMi0xXSA+Pj4gMCkgKyAxO1xuICB2YXIgYSA9IGNyZWF0ZV9uYXQobGVuMisxKTtcbiAgZm9yICh2YXIgaSA9IGxlbjEgLSAxOyBpID49IGxlbjI7IGktLSkge1xuICAgIC8vIERlY2VudCBsb3dlciBib3VuZCBvbiBxdW9cbiAgICB2YXIgcXVvID0gZCA9PSA0Mjk0OTY3Mjk2ID8gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA6IGRpdl9oZWxwZXIoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDEuZGF0YVtvZnMxK2ktMV0gPj4+MCksIGQpWzBdO1xuICAgIHNldF90b196ZXJvX25hdChhLCAwLCBsZW4yKzEpO1xuICAgIG11bHRfZGlnaXRfbmF0KGEsIDAsIGxlbjIrMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFtxdW9dKSwgMCk7XG4gICAgc3ViX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMisxLCBhLCAwLCBsZW4yKzEsIDEpO1xuXG4gICAgd2hpbGUgKG5hdDEuZGF0YVtvZnMxK2ldICE9IDAgfHwgY29tcGFyZV9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpID49IDApIHtcbiAgICAgIHF1byA9IHF1byArIDE7XG4gICAgICBzdWJfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yKzEsIG5hdDIsIG9mczIsIGxlbjIsIDEpO1xuICAgIH1cblxuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gcXVvO1xuICB9XG5cbiAgc2hpZnRfcmlnaHRfbmF0KG5hdDEsIG9mczEsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTsgLy8gc2hpZnQgcmVtYWluZGVyXG4gIHNoaWZ0X3JpZ2h0X25hdChuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7IC8vIHJlc3RvcmVcbiAgcmV0dXJuIDA7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9yaWdodF9uYXRcbmZ1bmN0aW9uIHNoaWZ0X3JpZ2h0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBuYml0cykge1xuICBpZihuYml0cyA9PSAwKSB7XG4gICAgbmF0Mi5kYXRhW29mczJdID0gMDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgd3JhcCA9IDA7XG4gIGZvcih2YXIgaSA9IGxlbjEtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgYSA9IG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPj4+IG5iaXRzKSB8IHdyYXA7XG4gICAgd3JhcCA9IGEgPDwgKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfZGlnaXRzX25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA+IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIDE7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA8IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRcbi8vUmVxdWlyZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjb21wYXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBhID0gbnVtX2RpZ2l0c19uYXQobmF0MSwgb2ZzMSwgbGVuMSk7XG4gIHZhciBiID0gbnVtX2RpZ2l0c19uYXQobmF0Miwgb2ZzMiwgbGVuMik7XG4gIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgZm9yKHZhciBpID0gbGVuMSAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgPiAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApKSByZXR1cm4gMTtcbiAgICBpZiAoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA8IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkpIHJldHVybiAtMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRfcmVhbFxuLy9SZXF1aXJlczogY29tcGFyZV9uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfbmF0X3JlYWwobmF0MSxuYXQyKXtcbiAgcmV0dXJuIGNvbXBhcmVfbmF0KG5hdDEsMCxuYXQxLmRhdGEubGVuZ3RoLG5hdDIsMCxuYXQyLmRhdGEubGVuZ3RoKTtcbn1cblxuLy9Qcm92aWRlczogbGFuZF9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxhbmRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdICY9IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGxvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxvcl9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gfD0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbHhvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGx4b3JfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdIF49IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogc2VyaWFsaXplX25hdFxuZnVuY3Rpb24gc2VyaWFsaXplX25hdCh3cml0ZXIsIG5hdCwgc3ope1xuICB2YXIgbGVuID0gbmF0LmRhdGEubGVuZ3RoO1xuICB3cml0ZXIud3JpdGUoMzIsIGxlbik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgd3JpdGVyLndyaXRlKDMyLCBuYXQuZGF0YVtpXSk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICBzelsxXSA9IGxlbiAqIDg7XG59XG5cbi8vUHJvdmlkZXM6IGRlc2VyaWFsaXplX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGRlc2VyaWFsaXplX25hdChyZWFkZXIsIHN6KXtcbiAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIHZhciBuYXQgPSBuZXcgTWxOYXQobGVuKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBuYXQuZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICByZXR1cm4gbmF0O1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZVxudmFyIGNhbWxfZ3Jfc3RhdGU7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2dldCgpIHtcbiAgaWYoY2FtbF9ncl9zdGF0ZSkge1xuICAgIHJldHVybiBjYW1sX2dyX3N0YXRlO1xuICB9XG4gIHRocm93IFswLGNhbWxfbmFtZWRfdmFsdWUoXCJHcmFwaGljcy5HcmFwaGljX2ZhaWx1cmVcIiksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJOb3QgaW5pdGlhbGl6ZWRcIildXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX3NldFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZSxjYW1sX2dyX3N0YXRlX2luaXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfc2V0KGN0eCkge1xuICBjYW1sX2dyX3N0YXRlPWN0eDtcbiAgY2FtbF9ncl9zdGF0ZV9pbml0KClcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfb3Blbl9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9vcGVuX2dyYXBoKGluZm8pe1xuICB2YXIgZyA9IGdsb2JhbFRoaXM7XG4gIHZhciBpbmZvID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoaW5mbyk7XG4gIGZ1bmN0aW9uIGdldChuYW1lKXtcbiAgICB2YXIgcmVzID0gaW5mby5tYXRjaChcIihefCwpICpcIituYW1lK1wiICo9ICooW2EtekEtWjAtOV9dKykgKigsfCQpXCIpO1xuICAgIGlmKHJlcykgcmV0dXJuIHJlc1syXTtcbiAgfVxuICB2YXIgc3BlY3MgPSBbXTtcbiAgaWYoIShpbmZvPT1cIlwiKSkgc3BlY3MucHVzaChpbmZvKTtcbiAgdmFyIHRhcmdldCA9IGdldChcInRhcmdldFwiKTtcbiAgaWYoIXRhcmdldCkgdGFyZ2V0PVwiXCI7XG4gIHZhciBzdGF0dXMgPSBnZXQoXCJzdGF0dXNcIik7XG4gIGlmKCFzdGF0dXMpIHNwZWNzLnB1c2goXCJzdGF0dXM9MVwiKVxuXG4gIHZhciB3ID0gZ2V0KFwid2lkdGhcIik7XG4gIHcgPSB3P3BhcnNlSW50KHcpOjIwMDtcbiAgc3BlY3MucHVzaChcIndpZHRoPVwiK3cpO1xuXG4gIHZhciBoID0gZ2V0KFwiaGVpZ2h0XCIpO1xuICBoID0gaD9wYXJzZUludChoKToyMDA7XG4gIHNwZWNzLnB1c2goXCJoZWlnaHQ9XCIraCk7XG5cbiAgdmFyIHdpbiA9IGcub3BlbihcImFib3V0OmJsYW5rXCIsdGFyZ2V0LHNwZWNzLmpvaW4oXCIsXCIpKTtcbiAgaWYoIXdpbikge2NhbWxfZmFpbHdpdGgoXCJHcmFwaGljcy5vcGVuX2dyYXBoOiBjYW5ub3Qgb3BlbiB0aGUgd2luZG93XCIpfVxuICB2YXIgZG9jID0gd2luLmRvY3VtZW50O1xuICB2YXIgY2FudmFzID0gZG9jLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gIGNhbnZhcy53aWR0aCA9IHc7XG4gIGNhbnZhcy5oZWlnaHQgPSBoO1xuICB2YXIgY3R4ID0gY2FtbF9ncl9zdGF0ZV9jcmVhdGUoY2FudmFzLHcsaCk7XG4gIGN0eC5zZXRfdGl0bGUgPSBmdW5jdGlvbiAodGl0bGUpIHtcbiAgICBkb2MudGl0bGUgPSB0aXRsZTtcbiAgfTtcbiAgY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KTtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgYm9keS5zdHlsZS5tYXJnaW4gPSBcIjBweFwiO1xuICBib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2luaXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X2NvbG9yLGNhbWxfZ3JfbW92ZXRvLGNhbWxfZ3JfcmVzaXplX3dpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfbGluZV93aWR0aCxjYW1sX2dyX3NldF90ZXh0X3NpemUsY2FtbF9ncl9zZXRfZm9udFxuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2luaXQoKXtcbiAgY2FtbF9ncl9tb3ZldG8oY2FtbF9ncl9zdGF0ZS54LGNhbWxfZ3Jfc3RhdGUueSk7XG4gIGNhbWxfZ3JfcmVzaXplX3dpbmRvdyhjYW1sX2dyX3N0YXRlLndpZHRoLGNhbWxfZ3Jfc3RhdGUuaGVpZ2h0KTtcbiAgY2FtbF9ncl9zZXRfbGluZV93aWR0aChjYW1sX2dyX3N0YXRlLmxpbmVfd2lkdGgpO1xuICBjYW1sX2dyX3NldF90ZXh0X3NpemUoY2FtbF9ncl9zdGF0ZS50ZXh0X3NpemUpO1xuICBjYW1sX2dyX3NldF9mb250KGNhbWxfZ3Jfc3RhdGUuZm9udCk7XG4gIGNhbWxfZ3Jfc2V0X2NvbG9yKGNhbWxfZ3Jfc3RhdGUuY29sb3IpO1xuICBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUoY2FtbF9ncl9zdGF0ZS50aXRsZSk7XG4gIC8vY2FtbF9ncl9yZXNpemVfd2luZG93IG1pZ2h0IHJlc2V0IHNvbWUgY2FudmFzJyBwcm9wZXJ0aWVzXG4gIGNhbWxfZ3Jfc3RhdGUuY29udGV4dC50ZXh0QmFzZWxpbmUgPSAnYm90dG9tJztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfY3JlYXRlKGNhbnZhcyx3LGgpe1xuICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjYW52YXMgOiBjYW52YXMsXG4gICAgeCA6IDAsXG4gICAgeSA6IDAsXG4gICAgd2lkdGggOiB3LFxuICAgIGhlaWdodCA6IGgsXG4gICAgbGluZV93aWR0aCA6IDEsXG4gICAgZm9udCA6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJmaXhlZFwiKSxcbiAgICB0ZXh0X3NpemUgOiAyNixcbiAgICBjb2xvciA6IDB4MDAwMDAwLFxuICAgIHRpdGxlIDogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKVxuICB9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RvY19vZl9zdGF0ZVxuZnVuY3Rpb24gY2FtbF9ncl9kb2Nfb2Zfc3RhdGUoc3RhdGUpIHtcbiAgaWYoc3RhdGUuY2FudmFzLm93bmVyRG9jdW1lbnQpXG4gICAgcmV0dXJuIHN0YXRlLmNhbnZhcy5vd25lckRvY3VtZW50O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9ncmFwaCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY2FudmFzLndpZHRoID0gMDtcbiAgcy5jYW52YXMuaGVpZ2h0ID0gMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUobmFtZSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy50aXRsZSA9IG5hbWU7XG4gIHZhciBqc25hbWUgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYocy5zZXRfdGl0bGUpIHMuc2V0X3RpdGxlKGpzbmFtZSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3codyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpXG4gIHMud2lkdGggPSB3O1xuICBzLmhlaWdodCA9IGg7XG4gIHMuY2FudmFzLndpZHRoID0gdztcbiAgcy5jYW52YXMuaGVpZ2h0ID0gaDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xlYXJfZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2NsZWFyX2dyYXBoKCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jYW52YXMud2lkdGggPSBzLndpZHRoO1xuICBzLmNhbnZhcy5oZWlnaHQgPSBzLmhlaWdodDtcbiAgLy8gIHMuY29udGV4dC5zdHJva2VSZWN0ICgwLiwgMC4sIHMud2lkdGgsIHMuaGVpZ2h0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV94XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3goKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy53aWR0aDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5oZWlnaHQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfY29sb3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9jb2xvcihjb2xvcil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgZnVuY3Rpb24gY29udmVydChudW1iZXIpIHtcbiAgICB2YXIgc3RyID0gJycgKyBudW1iZXIudG9TdHJpbmcoMTYpO1xuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgMikgc3RyID0gJzAnICsgc3RyO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgdmFyXG4gIHIgPSAoY29sb3IgPj4gMTYpICYgMHhmZixcbiAgZyA9IChjb2xvciA+PiA4KSAgJiAweGZmLFxuICBiID0gKGNvbG9yID4+IDApICAmIDB4ZmY7XG4gIHMuY29sb3I9Y29sb3I7XG4gIHZhciBjX3N0ciA9ICcjJyArIGNvbnZlcnQocikgKyBjb252ZXJ0KGcpICsgY29udmVydChiKTtcbiAgcy5jb250ZXh0LmZpbGxTdHlsZSA9ICAgY19zdHI7XG4gIHMuY29udGV4dC5zdHJva2VTdHlsZSA9IGNfc3RyO1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcGxvdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcGxvdCh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbT1zLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKDEsMSk7XG4gIHZhciBkID0gaW0uZGF0YTtcbiAgdmFyIGNvbG9yID0gcy5jb2xvcjtcbiAgZFswXSA9IChjb2xvciA+PiAxNikgJiAweGZmOyAvL3JcbiAgZFsxXSA9IChjb2xvciA+PiA4KSAgJiAweGZmLCAvL2dcbiAgZFsyXSA9IChjb2xvciA+PiAwKSAgJiAweGZmOyAvL2JcbiAgZFszXSA9IDB4RkY7IC8vYVxuICBzLng9eDtcbiAgcy55PXk7XG4gIHMuY29udGV4dC5wdXRJbWFnZURhdGEoaW0seCxzLmhlaWdodCAtIHkpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9wb2ludF9jb2xvclxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcG9pbnRfY29sb3IoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW09cy5jb250ZXh0LmdldEltYWdlRGF0YSh4LHMuaGVpZ2h0IC0geSwxLDEpO1xuICB2YXIgZCA9IGltLmRhdGE7XG4gIHJldHVybiAoZFswXSA8PCAxNikgKyAoZFsxXSA8PCA4KSArIGRbMl07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21vdmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbW92ZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy54PXg7XG4gIHMueT15O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jdXJyZW50X3hcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2N1cnJlbnRfeCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLnhcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3VycmVudF95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jdXJyZW50X3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy55XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2xpbmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbGluZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBzLmNvbnRleHQubW92ZVRvKHMueCxzLmhlaWdodCAtIHMueSk7XG4gIHMuY29udGV4dC5saW5lVG8oeCxzLmhlaWdodCAtIHkpO1xuICBzLmNvbnRleHQuc3Ryb2tlKCk7XG4gIHMueD14O1xuICBzLnk9eTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5zdHJva2VSZWN0KHgscy5oZWlnaHQgLSB5LHcsLWgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2FyY19hdXgoY3R4LGN4LGN5LHJ5LHJ4LGExLGEyKXtcbiAgd2hpbGUoYTE+YTIpIGEyKz0zNjA7XG4gIGExIC89IDE4MDtcbiAgYTIgLz0gMTgwO1xuICB2YXIgcm90ID0gMCx4UG9zLHlQb3MseFBvc19wcmV2LHlQb3NfcHJldjtcbiAgdmFyIHNwYWNlID0gMjtcbiAgdmFyIG51bSA9ICgoKGEyIC0gYTEpICogTWF0aC5QSSAqICgocngrcnkpLzIpKSAvIHNwYWNlKSB8IDA7XG4gIHZhciBkZWx0YSA9IChhMiAtIGExKSAqIE1hdGguUEkgLyBudW07XG4gIHZhciBpID0gYTEgKiBNYXRoLlBJO1xuICBmb3IgKHZhciBqPTA7ajw9bnVtO2orKyl7XG4gICAgeFBvcyA9IGN4IC0gKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5zaW4ocm90ICogTWF0aC5QSSkgKyAocnkgKiBNYXRoLmNvcyhpKSkgKiBNYXRoLmNvcyhyb3QgKiBNYXRoLlBJKTtcbiAgICB4UG9zID0geFBvcy50b0ZpeGVkKDIpO1xuICAgIHlQb3MgPSBjeSArIChyeSAqIE1hdGguY29zKGkpKSAqIE1hdGguc2luKHJvdCAqIE1hdGguUEkpICsgKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5jb3Mocm90ICogTWF0aC5QSSk7XG4gICAgeVBvcyA9IHlQb3MudG9GaXhlZCgyKTtcbiAgICBpZiAoaj09MCkge1xuICAgICAgY3R4Lm1vdmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9IGVsc2UgaWYgKHhQb3NfcHJldiE9eFBvcyB8fCB5UG9zX3ByZXYhPXlQb3Mpe1xuICAgICAgY3R4LmxpbmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9XG4gICAgeFBvc19wcmV2PXhQb3M7XG4gICAgeVBvc19wcmV2PXlQb3M7XG4gICAgaS09IGRlbHRhOy8vY2N3XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5zdHJva2UoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9saW5lX3dpZHRoKHcpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMubGluZV93aWR0aCA9IHc7XG4gIHMuY29udGV4dC5saW5lV2lkdGggPSB3XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5maWxsUmVjdCh4LHMuaGVpZ2h0IC0geSx3LC1oKTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcG9seVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9wb2x5KGFyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIHMuY29udGV4dC5tb3ZlVG8oYXJbMV1bMV0scy5oZWlnaHQgLSBhclsxXVsyXSk7XG4gIGZvcih2YXIgaSA9IDI7IGkgPCBhci5sZW5ndGg7IGkrKylcbiAgICBzLmNvbnRleHQubGluZVRvKGFyW2ldWzFdLHMuaGVpZ2h0IC0gYXJbaV1bMl0pO1xuICBzLmNvbnRleHQubGluZVRvKGFyWzFdWzFdLHMuaGVpZ2h0IC0gYXJbMV1bMl0pO1xuICBzLmNvbnRleHQuZmlsbCgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5maWxsKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfc3RyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3N0cihzdHIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBtID0gcy5jb250ZXh0Lm1lYXN1cmVUZXh0KHN0cik7XG4gIHZhciBkeCA9IG0ud2lkdGg7XG4gIHMuY29udGV4dC5maWxsVGV4dChzdHIscy54LHMuaGVpZ2h0IC0gcy55KTtcbiAgcy54ICs9IGR4IHwgMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX2RyYXdfc3RyXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfY2hhcihjKXtcbiAgY2FtbF9ncl9kcmF3X3N0cihTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfZ3JfZHJhd19zdHJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfc3RyaW5nKHN0cil7XG4gIGNhbWxfZ3JfZHJhd19zdHIoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoc3RyKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9mb250XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2ZvbnQoZil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5mb250ID0gZjtcbiAgcy5jb250ZXh0LmZvbnQgPSBzLnRleHRfc2l6ZSArIFwicHggXCIgKyBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzLmZvbnQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZShzaXplKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLnRleHRfc2l6ZSA9IHNpemU7XG4gIHMuY29udGV4dC5mb250ID0gcy50ZXh0X3NpemUgKyBcInB4IFwiICsgY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocy5mb250KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3JfdGV4dF9zaXplKHR4dCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIHcgPSBzLmNvbnRleHQubWVhc3VyZVRleHQoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcodHh0KSkud2lkdGg7XG4gIHJldHVybiBbMCx3LHMudGV4dF9zaXplXTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21ha2VfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX21ha2VfaW1hZ2UoYXJyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaCA9IGFyci5sZW5ndGggLSAxIDtcbiAgdmFyIHcgPSBhcnJbMV0ubGVuZ3RoIC0gMTtcbiAgdmFyIGltID0gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh3LGgpO1xuICBmb3IodmFyIGk9MDtpPGg7aSsrKXtcbiAgICBmb3IodmFyIGo9MDtqPHc7aisrKXtcbiAgICAgIHZhciBjID0gYXJyW2krMV1baisxXTtcbiAgICAgIHZhciBvID0gaSoodyo0KSArIChqICogNCk7XG4gICAgICBpZihjID09IC0xKSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgMV0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAyXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gYyA+PiAxNiAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDFdID0gYyA+PiAgOCAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDJdID0gYyA+PiAgMCAmIDBYZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMHhmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGltXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2R1bXBfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2R1bXBfaW1hZ2UoaW0pe1xuICB2YXIgZGF0YSA9IFswXVxuICBmb3IodmFyIGk9MDsgaTxpbS5oZWlnaHQ7aSsrKXtcbiAgICBkYXRhW2krMV0gPSBbMF1cbiAgICBmb3IodmFyIGo9MDsgajxpbS53aWR0aDtqKyspe1xuICAgICAgdmFyIG8gPSBpKihpbS53aWR0aCo0KSArIChqICogNCksXG4gICAgICAgICAgciA9IGltLmRhdGFbbyswXSxcbiAgICAgICAgICBnID0gaW0uZGF0YVtvKzFdLFxuICAgICAgICAgIGIgPSBpbS5kYXRhW28rMl07XG4gICAgICBkYXRhW2krMV1baisxXSA9IChyIDw8IDE2KSArIChnIDw8IDgpICsgYlxuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgaWYoIWltLmltYWdlKSB7XG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gcy53aWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gcy5oZWlnaHQ7XG4gICAgY2FudmFzLmdldENvbnRleHQoXCIyZFwiKS5wdXRJbWFnZURhdGEoaW0sMCwwKTtcbiAgICB2YXIgaW1hZ2UgPSBuZXcgZ2xvYmFsVGhpcy5JbWFnZSgpO1xuICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHMuY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UseCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHkpO1xuICAgICAgaW0uaW1hZ2UgPSBpbWFnZTtcbiAgICB9XG4gICAgaW1hZ2Uuc3JjID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKTtcbiAgfSBlbHNlIHtcbiAgICBzLmNvbnRleHQuZHJhd0ltYWdlKGltLmltYWdlLHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3JlYXRlX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jcmVhdGVfaW1hZ2UoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh4LHkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9ibGl0X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9ibGl0X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltMiA9IHMuY29udGV4dC5nZXRJbWFnZURhdGEoeCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHksaW0ud2lkdGgsaW0uaGVpZ2h0KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbTIuZGF0YS5sZW5ndGg7IGkrPTQpe1xuICAgIGltLmRhdGFbaV0gPSBpbTIuZGF0YVtpXTtcbiAgICBpbS5kYXRhW2krMV0gPSBpbTIuZGF0YVtpKzFdO1xuICAgIGltLmRhdGFbaSsyXSA9IGltMi5kYXRhW2krMl07XG4gICAgaW0uZGF0YVtpKzNdID0gaW0yLmRhdGFbaSszXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2lnaW9faGFuZGxlclxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19oYW5kbGVyKCl7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpZ2lvX3NpZ25hbFxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19zaWduYWwoKXtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfd2FpdF9ldmVudFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93YWl0X2V2ZW50KF9ldmwpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93YWl0X2V2ZW50IG5vdCBJbXBsZW1lbnRlZDogdXNlIEdyYXBoaWNzX2pzIGluc3RlYWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3luY2hyb25pemVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3luY2hyb25pemUgKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9zeW5jaHJvbml6ZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3JlbWVtYmVyX21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfcmVtZW1iZXJfbW9kZSAoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3JlbWVtYmVyX21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kaXNwbGF5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfZGlzcGxheV9tb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9kaXNwbGF5X21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3dpbmRvd19pZFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93aW5kb3dfaWQoYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93aW5kb3dfaWQgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX29wZW5fc3Vid2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fc3Vid2luZG93KGEsYixjLGQpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX3N1YndpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3coYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9jb25zdGFudHNcbnZhciBjYW1sX21hcnNoYWxfY29uc3RhbnRzID0ge1xuICBQUkVGSVhfU01BTExfQkxPQ0s6ICAgICAgICAgMHg4MCxcbiAgUFJFRklYX1NNQUxMX0lOVDogICAgICAgICAgIDB4NDAsXG4gIFBSRUZJWF9TTUFMTF9TVFJJTkc6ICAgICAgICAweDIwLFxuICBDT0RFX0lOVDg6ICAgICAgICAgICAgICAgICAgMHgwMCxcbiAgQ09ERV9JTlQxNjogICAgICAgICAgICAgICAgIDB4MDEsXG4gIENPREVfSU5UMzI6ICAgICAgICAgICAgICAgICAweDAyLFxuICBDT0RFX0lOVDY0OiAgICAgICAgICAgICAgICAgMHgwMyxcbiAgQ09ERV9TSEFSRUQ4OiAgICAgICAgICAgICAgIDB4MDQsXG4gIENPREVfU0hBUkVEMTY6ICAgICAgICAgICAgICAweDA1LFxuICBDT0RFX1NIQVJFRDMyOiAgICAgICAgICAgICAgMHgwNixcbiAgQ09ERV9CTE9DSzMyOiAgICAgICAgICAgICAgIDB4MDgsXG4gIENPREVfQkxPQ0s2NDogICAgICAgICAgICAgICAweDEzLFxuICBDT0RFX1NUUklORzg6ICAgICAgICAgICAgICAgMHgwOSxcbiAgQ09ERV9TVFJJTkczMjogICAgICAgICAgICAgIDB4MEEsXG4gIENPREVfRE9VQkxFX0JJRzogICAgICAgICAgICAweDBCLFxuICBDT0RFX0RPVUJMRV9MSVRUTEU6ICAgICAgICAgMHgwQyxcbiAgQ09ERV9ET1VCTEVfQVJSQVk4X0JJRzogICAgIDB4MEQsXG4gIENPREVfRE9VQkxFX0FSUkFZOF9MSVRUTEU6ICAweDBFLFxuICBDT0RFX0RPVUJMRV9BUlJBWTMyX0JJRzogICAgMHgwRixcbiAgQ09ERV9ET1VCTEVfQVJSQVkzMl9MSVRUTEU6IDB4MDcsXG4gIENPREVfQ09ERVBPSU5URVI6ICAgICAgICAgICAweDEwLFxuICBDT0RFX0lORklYUE9JTlRFUjogICAgICAgICAgMHgxMSxcbiAgQ09ERV9DVVNUT006ICAgICAgICAgICAgICAgIDB4MTIsXG4gIENPREVfQ1VTVE9NX0xFTjogICAgICAgICAgICAweDE4LFxuICBDT0RFX0NVU1RPTV9GSVhFRDogICAgICAgICAgMHgxOVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sU3RyaW5nUmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBNbFN0cmluZ1JlYWRlciAocywgaSkgeyB0aGlzLnMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpOyB0aGlzLmkgPSBpOyB9XG5NbFN0cmluZ1JlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKyk7IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKykgPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkgKyAxKVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCAyNCA+PiAxNikgfCBzLmNoYXJDb2RlQXQoaSArIDEpO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChzLmNoYXJDb2RlQXQoaSkgPDwgMjQpIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAocy5jaGFyQ29kZUF0KGkrMikgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSszKSkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDI0KSB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCAxNikgfFxuICAgICAgKHMuY2hhckNvZGVBdChpKzIpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkrMyk7XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXModGhpcy5zLnN1YnN0cmluZyhpLCBpICsgbGVuKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogQmlnU3RyaW5nUmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheSwgY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gQmlnU3RyaW5nUmVhZGVyIChicywgaSkgeyB0aGlzLnMgPSBiczsgdGhpcy5pID0gaTsgfVxuQmlnU3RyaW5nUmVhZGVyLnByb3RvdHlwZSA9IHtcbiAgcmVhZDh1OmZ1bmN0aW9uICgpIHsgcmV0dXJuIGNhbWxfYmFfZ2V0XzEodGhpcy5zLHRoaXMuaSsrKTsgfSxcbiAgcmVhZDhzOmZ1bmN0aW9uICgpIHsgcmV0dXJuIGNhbWxfYmFfZ2V0XzEodGhpcy5zLHRoaXMuaSsrKSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgPDwgOCkgfCBjYW1sX2JhX2dldF8xKHMsaSArIDEpXG4gIH0sXG4gIHJlYWQxNnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpIDw8IDI0ID4+IDE2KSB8IGNhbWxfYmFfZ2V0XzEocyxpICsgMSk7XG4gIH0sXG4gIHJlYWQzMnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoKGNhbWxfYmFfZ2V0XzEocyxpKSAgIDw8IDI0KSB8IChjYW1sX2JhX2dldF8xKHMsaSsxKSA8PCAxNikgfFxuICAgICAgICAgICAgKGNhbWxfYmFfZ2V0XzEocyxpKzIpIDw8IDgpICB8IGNhbWxfYmFfZ2V0XzEocyxpKzMpICAgICAgICAgKSA+Pj4gMDtcbiAgfSxcbiAgcmVhZDMyczpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgICA8PCAyNCkgfCAoY2FtbF9iYV9nZXRfMShzLGkrMSkgPDwgMTYpIHxcbiAgICAgIChjYW1sX2JhX2dldF8xKHMsaSsyKSA8PCA4KSAgfCBjYW1sX2JhX2dldF8xKHMsaSszKTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdmFyIGFyciA9IG5ldyBBcnJheShsZW4pXG4gICAgZm9yKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKXtcbiAgICAgIGFycltqXSA9IGNhbWxfYmFfZ2V0XzEodGhpcy5zLCBpK2opO1xuICAgIH1cbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShhcnIpO1xuICB9XG59XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKGEpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyAoY2FtbF9pbnQ2NF9vZl9ieXRlcyAoYSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IE1sU3RyaW5nUmVhZGVyLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nKHMsb2ZzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgTWxTdHJpbmdSZWFkZXIgKHMsIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogTWxTdHJpbmdSZWFkZXIsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMocyxvZnMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBNbFN0cmluZ1JlYWRlciAoY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocyksIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gIHNpemVbMF0gPSA4O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyAodCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tYXJzaGFsKHdyaXRlciwgdiwgc2l6ZXMpIHtcbiAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzICh2KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHdyaXRlci53cml0ZSAoOCwgYltpXSk7XG4gIHNpemVzWzBdID0gODsgc2l6ZXNbMV0gPSA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX3VubWFyc2hhbFxuZnVuY3Rpb24gY2FtbF9pbnQzMl91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc2l6ZVswXSA9IDQ7XG4gIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc3dpdGNoIChyZWFkZXIucmVhZDh1ICgpKSB7XG4gIGNhc2UgMTpcbiAgICBzaXplWzBdID0gNDtcbiAgICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG4gIGNhc2UgMjpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IG5hdGl2ZSBpbnRlZ2VyIHZhbHVlIHRvbyBsYXJnZVwiKTtcbiAgZGVmYXVsdDogY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbGwtZm9ybWVkIG5hdGl2ZSBpbnRlZ2VyXCIpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF91bm1hcnNoYWwsIGNhbWxfaW50NjRfbWFyc2hhbCwgY2FtbF9pbnQ2NF9jb21wYXJlLCBjYW1sX2ludDY0X2hhc2hcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfdW5tYXJzaGFsLCBjYW1sX25hdGl2ZWludF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfYmFfc2VyaWFsaXplLCBjYW1sX2JhX2Rlc2VyaWFsaXplLCBjYW1sX2JhX2NvbXBhcmUsIGNhbWxfYmFfaGFzaFxudmFyIGNhbWxfY3VzdG9tX29wcyA9XG4gICAge1wiX2pcIjoge1xuICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX2ludDY0X3VubWFyc2hhbCxcbiAgICAgIHNlcmlhbGl6ZSAgOiBjYW1sX2ludDY0X21hcnNoYWwsXG4gICAgICBmaXhlZF9sZW5ndGggOiA4LFxuICAgICAgY29tcGFyZSA6IGNhbWxfaW50NjRfY29tcGFyZSxcbiAgICAgIGhhc2ggOiBjYW1sX2ludDY0X2hhc2hcbiAgICB9LFxuICAgICBcIl9pXCI6IHtcbiAgICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfaW50MzJfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX25cIjoge1xuICAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX2JpZ2FycmF5XCI6e1xuICAgICAgIGRlc2VyaWFsaXplIDogKGZ1bmN0aW9uIChyZWFkZXIsIHN6KSB7cmV0dXJuIGNhbWxfYmFfZGVzZXJpYWxpemUgKHJlYWRlcixzeixcIl9iaWdhcnJheVwiKX0pLFxuICAgICAgIHNlcmlhbGl6ZSA6IGNhbWxfYmFfc2VyaWFsaXplLFxuICAgICAgIGNvbXBhcmUgOiBjYW1sX2JhX2NvbXBhcmUsXG4gICAgICAgaGFzaDogY2FtbF9iYV9oYXNoLFxuICAgICB9LFxuICAgICBcIl9iaWdhcnIwMlwiOntcbiAgICAgICBkZXNlcmlhbGl6ZSA6IChmdW5jdGlvbiAocmVhZGVyLCBzeikge3JldHVybiBjYW1sX2JhX2Rlc2VyaWFsaXplIChyZWFkZXIsc3osXCJfYmlnYXJyMDJcIil9KSxcbiAgICAgICBzZXJpYWxpemUgOiBjYW1sX2JhX3NlcmlhbGl6ZSxcbiAgICAgICBjb21wYXJlIDogY2FtbF9iYV9jb21wYXJlLFxuICAgICAgIGhhc2g6IGNhbWxfYmFfaGFzaCxcbiAgICAgfVxuICAgIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcblxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcykge1xuICB2YXIgX21hZ2ljID0gcmVhZGVyLnJlYWQzMnUgKClcbiAgdmFyIF9ibG9ja19sZW4gPSByZWFkZXIucmVhZDMydSAoKTtcbiAgdmFyIG51bV9vYmplY3RzID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gIHZhciBfc2l6ZV8zMiA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICB2YXIgX3NpemVfNjQgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgdmFyIHN0YWNrID0gW107XG4gIHZhciBpbnRlcm5fb2JqX3RhYmxlID0gKG51bV9vYmplY3RzID4gMCk/W106bnVsbDtcbiAgdmFyIG9ial9jb3VudGVyID0gMDtcbiAgZnVuY3Rpb24gaW50ZXJuX3JlYyAoKSB7XG4gICAgdmFyIGNvZGUgPSByZWFkZXIucmVhZDh1ICgpO1xuICAgIGlmIChjb2RlID49IDB4NDAgLypjc3QuUFJFRklYX1NNQUxMX0lOVCovKSB7XG4gICAgICBpZiAoY29kZSA+PSAweDgwIC8qY3N0LlBSRUZJWF9TTUFMTF9CTE9DSyovKSB7XG4gICAgICAgIHZhciB0YWcgPSBjb2RlICYgMHhGO1xuICAgICAgICB2YXIgc2l6ZSA9IChjb2RlID4+IDQpICYgMHg3O1xuICAgICAgICB2YXIgdiA9IFt0YWddO1xuICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gdjtcbiAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZVxuICAgICAgICByZXR1cm4gKGNvZGUgJiAweDNGKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvZGUgPj0gMHgyMC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcgKi8pIHtcbiAgICAgICAgdmFyIGxlbiA9IGNvZGUgJiAweDFGO1xuICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoKGNvZGUpIHtcbiAgICAgICAgY2FzZSAweDAwOiAvL2NzdC5DT0RFX0lOVDg6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkOHMgKCk7XG4gICAgICAgIGNhc2UgMHgwMTogLy9jc3QuQ09ERV9JTlQxNjpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQxNnMgKCk7XG4gICAgICAgIGNhc2UgMHgwMjogLy9jc3QuQ09ERV9JTlQzMjpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG4gICAgICAgIGNhc2UgMHgwMzogLy9jc3QuQ09ERV9JTlQ2NDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGludGVnZXIgdG9vIGxhcmdlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MDQ6IC8vY3N0LkNPREVfU0hBUkVEODpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlciAtIG9mZnNldF07XG4gICAgICAgIGNhc2UgMHgwNTogLy9jc3QuQ09ERV9TSEFSRUQxNjpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQxNnUgKCk7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIgLSBvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDY6IC8vY3N0LkNPREVfU0hBUkVEMzI6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyIC0gb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA4OiAvL2NzdC5DT0RFX0JMT0NLMzI6XG4gICAgICAgICAgdmFyIGhlYWRlciA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgIHZhciB0YWcgPSBoZWFkZXIgJiAweEZGO1xuICAgICAgICAgIHZhciBzaXplID0gaGVhZGVyID4+IDEwO1xuICAgICAgICAgIHZhciB2ID0gW3RhZ107XG4gICAgICAgICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIHY7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgxMzogLy9jc3QuQ09ERV9CTE9DSzY0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGRhdGEgYmxvY2sgdG9vIGxhcmdlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MDk6IC8vY3N0LkNPREVfU1RSSU5HODpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEE6IC8vY3N0LkNPREVfU1RSSU5HMzI6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQzogLy9jc3QuQ09ERV9ET1VCTEVfTElUVExFOlxuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgODtpKyspIHRbNyAtIGldID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICB2YXIgdiA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBCOiAvL2NzdC5DT0RFX0RPVUJMRV9CSUc6XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCA4O2krKykgdFtpXSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgdmFyIHYgPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRTogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVk4X0xJVFRMRTpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbNyAtIGpdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdltpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBEOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWThfQklHOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHYgW2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MDc6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZMzJfTElUVExFOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbNyAtIGpdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdltpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBGOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWTMyX0JJRzpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2IFtpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDEwOiAvL2NzdC5DT0RFX0NPREVQT0lOVEVSOlxuICAgICAgICBjYXNlIDB4MTE6IC8vY3N0LkNPREVfSU5GSVhQT0lOVEVSOlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGNvZGUgcG9pbnRlclwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDEyOiAvL2NzdC5DT0RFX0NVU1RPTTpcbiAgICAgICAgY2FzZSAweDE4OiAvL2NzdC5DT0RFX0NVU1RPTV9MRU46XG4gICAgICAgIGNhc2UgMHgxOTogLy9jc3QuQ09ERV9DVVNUT01fRklYRUQ6XG4gICAgICAgICAgdmFyIGMsIHMgPSBcIlwiO1xuICAgICAgICAgIHdoaWxlICgoYyA9IHJlYWRlci5yZWFkOHUgKCkpICE9IDApIHMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSAoYyk7XG4gICAgICAgICAgdmFyIG9wcyA9IGNhbWxfY3VzdG9tX29wc1tzXTtcbiAgICAgICAgICB2YXIgZXhwZWN0ZWRfc2l6ZTtcbiAgICAgICAgICBpZighb3BzKVxuICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB1bmtub3duIGN1c3RvbSBibG9jayBpZGVudGlmaWVyXCIpO1xuICAgICAgICAgIHN3aXRjaChjb2RlKXtcbiAgICAgICAgICBjYXNlIDB4MTI6IC8vIGNzdC5DT0RFX0NVU1RPTSAoZGVwcmVjYXRlZClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMHgxOTogLy8gY3N0LkNPREVfQ1VTVE9NX0ZJWEVEXG4gICAgICAgICAgICBpZighb3BzLmZpeGVkX2xlbmd0aClcbiAgICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBleHBlY3RlZCBhIGZpeGVkLXNpemUgY3VzdG9tIGJsb2NrXCIpO1xuICAgICAgICAgICAgZXhwZWN0ZWRfc2l6ZSA9IG9wcy5maXhlZF9sZW5ndGg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDB4MTg6IC8vIGNzdC5DT0RFX0NVU1RPTV9MRU5cbiAgICAgICAgICAgIGV4cGVjdGVkX3NpemUgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICAgIC8vIFNraXAgc2l6ZTY0XG4gICAgICAgICAgICByZWFkZXIucmVhZDMycygpOyByZWFkZXIucmVhZDMycygpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvbGRfcG9zID0gcmVhZGVyLmk7XG4gICAgICAgICAgdmFyIHNpemUgPSBbMF07XG4gICAgICAgICAgdmFyIHYgPSBvcHMuZGVzZXJpYWxpemUocmVhZGVyLCBzaXplKTtcbiAgICAgICAgICBpZihleHBlY3RlZF9zaXplICE9IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICBpZihleHBlY3RlZF9zaXplICE9IHNpemVbMF0pXG4gICAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaW5jb3JyZWN0IGxlbmd0aCBvZiBzZXJpYWxpemVkIGN1c3RvbSBibG9ja1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGlsbC1mb3JtZWQgbWVzc2FnZVwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgcmVzID0gaW50ZXJuX3JlYyAoKTtcbiAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgc2l6ZSA9IHN0YWNrLnBvcCgpO1xuICAgIHZhciB2ID0gc3RhY2sucG9wKCk7XG4gICAgdmFyIGQgPSB2Lmxlbmd0aDtcbiAgICBpZiAoZCA8IHNpemUpIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgdltkXSA9IGludGVybl9yZWMgKCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBvZnMhPVwibnVtYmVyXCIpIG9mc1swXSA9IHJlYWRlci5pO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfZGF0YV9zaXplIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuZnVuY3Rpb24gY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSAocywgb2ZzKSB7XG4gIGZ1bmN0aW9uIGdldDMyKHMsaSkge1xuICAgIHJldHVybiAoY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsIGkpIDw8IDI0KSB8XG4gICAgICAoY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsIGkgKyAxKSA8PCAxNikgfFxuICAgICAgKGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLCBpICsgMikgPDwgOCkgfFxuICAgICAgY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsIGkgKyAzKTtcbiAgfVxuICBpZiAoZ2V0MzIocywgb2ZzKSAhPSAoMHg4NDk1QTZCRXwwKSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiTWFyc2hhbC5kYXRhX3NpemU6IGJhZCBvYmplY3RcIik7XG4gIHJldHVybiAoZ2V0MzIocywgb2ZzICsgNCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBNbE9iamVjdFRhYmxlXG52YXIgTWxPYmplY3RUYWJsZTtcbmlmICh0eXBlb2YgZ2xvYmFsVGhpcy5XZWFrTWFwID09PSAndW5kZWZpbmVkJykge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgLyogcG9seWZpbGwgKHVzaW5nIGxpbmVhciBzZWFyY2gpICovXG4gICAgZnVuY3Rpb24gTmFpdmVMb29rdXAob2JqcykgeyB0aGlzLm9ianMgPSBvYmpzOyB9XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYmpzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLm9ianNbaV0gPT09IHYpIHJldHVybiBpO1xuICAgICAgfVxuICAgIH07XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKCkge1xuICAgICAgLy8gRG8gbm90aGluZyBoZXJlLiBbTWxPYmplY3RUYWJsZS5zdG9yZV0gd2lsbCBwdXNoIHRvIFt0aGlzLm9ianNdIGRpcmVjdGx5LlxuICAgIH07XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICAgIHRoaXMub2JqcyA9IFtdOyB0aGlzLmxvb2t1cCA9IG5ldyBOYWl2ZUxvb2t1cCh0aGlzLm9ianMpO1xuICAgIH07XG4gIH0oKTtcbn1cbmVsc2Uge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICB0aGlzLm9ianMgPSBbXTsgdGhpcy5sb29rdXAgPSBuZXcgZ2xvYmFsVGhpcy5XZWFrTWFwKCk7XG4gIH07XG59XG5cbk1sT2JqZWN0VGFibGUucHJvdG90eXBlLnN0b3JlID0gZnVuY3Rpb24odikge1xuICB0aGlzLmxvb2t1cC5zZXQodiwgdGhpcy5vYmpzLmxlbmd0aCk7XG4gIHRoaXMub2Jqcy5wdXNoKHYpO1xufVxuXG5NbE9iamVjdFRhYmxlLnByb3RvdHlwZS5yZWNhbGwgPSBmdW5jdGlvbih2KSB7XG4gIHZhciBpID0gdGhpcy5sb29rdXAuZ2V0KHYpO1xuICByZXR1cm4gKGkgPT09IHVuZGVmaW5lZClcbiAgICA/IHVuZGVmaW5lZCA6IHRoaXMub2Jqcy5sZW5ndGggLSBpOyAgIC8qIGluZGV4IGlzIHJlbGF0aXZlICovXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlXG4vL1ZlcnNpb246ID49IDQuMDhcbnZhciBjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSA9IGZhbHNlXG5cbi8vUHJvdmlkZXM6IGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlXG4vL1ZlcnNpb246IDwgNC4wOFxudmFyIGNhbWxfbGVnYWN5X2N1c3RvbV9jb2RlID0gdHJ1ZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdFxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogTWxPYmplY3RUYWJsZSwgY2FtbF9saXN0X3RvX2pzX2FycmF5LCBjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSwgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xudmFyIGNhbWxfb3V0cHV0X3ZhbCA9IGZ1bmN0aW9uICgpe1xuICBmdW5jdGlvbiBXcml0ZXIgKCkgeyB0aGlzLmNodW5rID0gW107IH1cbiAgV3JpdGVyLnByb3RvdHlwZSA9IHtcbiAgICBjaHVua19pZHg6MjAsIGJsb2NrX2xlbjowLCBvYmpfY291bnRlcjowLCBzaXplXzMyOjAsIHNpemVfNjQ6MCxcbiAgICB3cml0ZTpmdW5jdGlvbiAoc2l6ZSwgdmFsdWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX2F0OmZ1bmN0aW9uIChwb3MsIHNpemUsIHZhbHVlKSB7XG4gICAgICB2YXIgcG9zID0gcG9zO1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbcG9zKytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX2NvZGU6ZnVuY3Rpb24gKHNpemUsIGNvZGUsIHZhbHVlKSB7XG4gICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gY29kZTtcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX3NoYXJlZDpmdW5jdGlvbiAob2Zmc2V0KSB7XG4gICAgICBpZiAob2Zmc2V0IDwgKDEgPDwgOCkpIHRoaXMud3JpdGVfY29kZSg4LCAweDA0IC8qY3N0LkNPREVfU0hBUkVEOCovLCBvZmZzZXQpO1xuICAgICAgZWxzZSBpZiAob2Zmc2V0IDwgKDEgPDwgMTYpKSB0aGlzLndyaXRlX2NvZGUoMTYsIDB4MDUgLypjc3QuQ09ERV9TSEFSRUQxNiovLCBvZmZzZXQpO1xuICAgICAgZWxzZSB0aGlzLndyaXRlX2NvZGUoMzIsIDB4MDYgLypjc3QuQ09ERV9TSEFSRUQzMiovLCBvZmZzZXQpO1xuICAgIH0sXG4gICAgcG9zOmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuY2h1bmtfaWR4IH0sXG4gICAgZmluYWxpemU6ZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5ibG9ja19sZW4gPSB0aGlzLmNodW5rX2lkeCAtIDIwO1xuICAgICAgdGhpcy5jaHVua19pZHggPSAwO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIDB4ODQ5NUE2QkUpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuYmxvY2tfbGVuKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLm9ial9jb3VudGVyKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLnNpemVfMzIpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuc2l6ZV82NCk7XG4gICAgICByZXR1cm4gdGhpcy5jaHVuaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICh2LCBmbGFncykge1xuICAgIGZsYWdzID0gY2FtbF9saXN0X3RvX2pzX2FycmF5KGZsYWdzKTtcblxuICAgIHZhciBub19zaGFyaW5nID0gKGZsYWdzLmluZGV4T2YoMCAvKk1hcnNoYWwuTm9fc2hhcmluZyovKSAhPT0gLTEpLFxuICAgICAgICBjbG9zdXJlcyA9ICAoZmxhZ3MuaW5kZXhPZigxIC8qTWFyc2hhbC5DbG9zdXJlcyovKSAhPT0gLTEpO1xuICAgIC8qIE1hcnNoYWwuQ29tcGF0XzMyIGlzIHJlZHVuZGFudCBzaW5jZSBpbnRlZ2VycyBhcmUgMzItYml0IGFueXdheSAqL1xuXG4gICAgaWYgKGNsb3N1cmVzKVxuICAgICAgZ2xvYmFsVGhpcy5jb25zb2xlLndhcm4oXCJpbiBjYW1sX291dHB1dF92YWw6IGZsYWcgTWFyc2hhbC5DbG9zdXJlcyBpcyBub3Qgc3VwcG9ydGVkLlwiKTtcblxuICAgIHZhciB3cml0ZXIgPSBuZXcgV3JpdGVyICgpO1xuICAgIHZhciBzdGFjayA9IFtdO1xuICAgIHZhciBpbnRlcm5fb2JqX3RhYmxlID0gbm9fc2hhcmluZyA/IG51bGwgOiBuZXcgTWxPYmplY3RUYWJsZSgpO1xuXG4gICAgZnVuY3Rpb24gbWVtbyh2KSB7XG4gICAgICBpZiAobm9fc2hhcmluZykgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIGV4aXN0aW5nX29mZnNldCA9IGludGVybl9vYmpfdGFibGUucmVjYWxsKHYpO1xuICAgICAgaWYgKGV4aXN0aW5nX29mZnNldCkgeyB3cml0ZXIud3JpdGVfc2hhcmVkKGV4aXN0aW5nX29mZnNldCk7IHJldHVybiB0cnVlOyB9XG4gICAgICBlbHNlIHsgaW50ZXJuX29ial90YWJsZS5zdG9yZSh2KTsgcmV0dXJuIGZhbHNlOyB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZXJuX3JlYyAodikge1xuICAgICAgaWYgKHYuY2FtbF9jdXN0b20pIHtcbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIG5hbWUgPSB2LmNhbWxfY3VzdG9tO1xuICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW25hbWVdO1xuICAgICAgICB2YXIgc3pfMzJfNjQgPSBbMCwwXTtcbiAgICAgICAgaWYoIW9wcy5zZXJpYWxpemUpXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQ3VzdG9tKVwiKTtcbiAgICAgICAgaWYoY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUpIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTIgLypjc3QuQ09ERV9DVVNUT00qLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICB9IGVsc2UgaWYob3BzLmZpeGVkX2xlbmd0aCA9PSB1bmRlZmluZWQpe1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxOCAvKmNzdC5DT0RFX0NVU1RPTV9MRU4qLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgaGVhZGVyX3BvcyA9IHdyaXRlci5wb3MgKCk7XG4gICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcywgMzIsIHN6XzMyXzY0WzBdKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcyArIDQsIDMyLCAwKTsgLy8gemVyb1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zICsgOCwgMzIsIHN6XzMyXzY0WzFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTkgLypjc3QuQ09ERV9DVVNUT01fRklYRUQqLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgb2xkX3BvcyA9IHdyaXRlci5wb3MoKTtcbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICAgIGlmIChvcHMuZml4ZWRfbGVuZ3RoICE9IHdyaXRlci5wb3MoKSAtIG9sZF9wb3MpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBpbmNvcnJlY3QgZml4ZWQgc2l6ZXMgc3BlY2lmaWVkIGJ5IFwiICsgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMiArICgoc3pfMzJfNjRbMF0gKyAzKSA+PiAyKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMiArICgoc3pfMzJfNjRbMV0gKyA3KSA+PiAzKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSAmJiB2WzBdID09PSAodlswXXwwKSkge1xuICAgICAgICBpZiAodlswXSA9PSAyNTEpIHtcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQWJzdHJhY3QpXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2Lmxlbmd0aCA+IDEgJiYgbWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICBpZiAodlswXSA8IDE2ICYmIHYubGVuZ3RoIC0gMSA8IDgpXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDgwIC8qY3N0LlBSRUZJWF9TTUFMTF9CTE9DSyovICsgdlswXSArICgodi5sZW5ndGggLSAxKTw8NCkpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDggLypjc3QuQ09ERV9CTE9DSzMyKi8sICgodi5sZW5ndGgtMSkgPDwgMTApIHwgdlswXSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IHYubGVuZ3RoO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSB2Lmxlbmd0aDtcbiAgICAgICAgaWYgKHYubGVuZ3RoID4gMSkgc3RhY2sucHVzaCAodiwgMSk7XG4gICAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXModikpIHtcbiAgICAgICAgaWYoIShjYW1sX2lzX21sX2J5dGVzKGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIikpKSkge1xuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IFtCeXRlcy50XSBjYW5ub3Qgc2FmZWx5IGJlIG1hcnNoYWxlZCB3aXRoIFstLWVuYWJsZSB1c2UtanMtc3RyaW5nXVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICB2YXIgbGVuID0gY2FtbF9tbF9ieXRlc19sZW5ndGgodik7XG4gICAgICAgIGlmIChsZW4gPCAweDIwKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgyMCAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HKi8gKyBsZW4pO1xuICAgICAgICBlbHNlIGlmIChsZW4gPCAweDEwMClcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoOCwgMHgwOS8qY3N0LkNPREVfU1RSSU5HOCovLCBsZW4pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDMyLCAweDBBIC8qY3N0LkNPREVfU1RSSU5HMzIqLywgbGVuKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IGxlbjtpKyspXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcodikpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCh2KTtcbiAgICAgICAgaWYgKGxlbiA8IDB4MjApXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDIwIC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcqLyArIGxlbik7XG4gICAgICAgIGVsc2UgaWYgKGxlbiA8IDB4MTAwKVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICg4LCAweDA5Lypjc3QuQ09ERV9TVFJJTkc4Ki8sIGxlbik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoMzIsIDB4MEEgLypjc3QuQ09ERV9TVFJJTkczMiovLCBsZW4pO1xuICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgbGVuO2krKylcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2ICE9ICh2fDApKXtcbiAgICAgICAgICB2YXIgdHlwZV9vZl92ID0gdHlwZW9mIHY7XG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBJZiBhIGZsb2F0IGhhcHBlbnMgdG8gYmUgYW4gaW50ZWdlciBpdCBpcyBzZXJpYWxpemVkIGFzIGFuIGludGVnZXJcbiAgICAgICAgICAvLyAoSnNfb2Zfb2NhbWwgY2Fubm90IHRlbGwgd2hldGhlciB0aGUgdHlwZSBvZiBhbiBpbnRlZ2VyIG51bWJlciBpc1xuICAgICAgICAgIC8vIGZsb2F0IG9yIGludGVnZXIuKSBUaGlzIGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBjcmFzaGVzIHdoZW5cbiAgICAgICAgICAvLyB1bm1hcnNoYWxsaW5nIHVzaW5nIHRoZSBzdGFuZGFyZCBydW50aW1lLiBJdCBzZWVtcyBiZXR0ZXIgdG9cbiAgICAgICAgICAvLyBzeXN0ZW1hdGljYWxseSBmYWlsIG9uIG1hcnNoYWxsaW5nLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gICAgICAgICAgaWYodHlwZV9vZl92ICE9IFwibnVtYmVyXCIpXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKFwiK3R5cGVfb2ZfditcIilcIik7XG4gICAgICAgICAgLy8gICAgICAgICAgdmFyIHQgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh2KSk7XG4gICAgICAgICAgLy8gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDBCIC8qY3N0LkNPREVfRE9VQkxFX0JJRyovKTtcbiAgICAgICAgICAvLyAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpPDg7IGkrKyl7d3JpdGVyLndyaXRlKDgsdFtpXSl9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodiA+PSAwICYmIHYgPCAweDQwKSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAwWDQwIC8qY3N0LlBSRUZJWF9TTUFMTF9JTlQqLyArIHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2ID49IC0oMSA8PCA3KSAmJiB2IDwgKDEgPDwgNykpXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSg4LCAweDAwIC8qY3N0LkNPREVfSU5UOCovLCB2KTtcbiAgICAgICAgICBlbHNlIGlmICh2ID49IC0oMSA8PCAxNSkgJiYgdiA8ICgxIDw8IDE1KSlcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDE2LCAweDAxIC8qY3N0LkNPREVfSU5UMTYqLywgdik7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDIgLypjc3QuQ09ERV9JTlQzMiovLCB2KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5fcmVjICh2KTtcbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGkgPSBzdGFjay5wb3AgKCk7XG4gICAgICB2YXIgdiA9IHN0YWNrLnBvcCAoKTtcbiAgICAgIGlmIChpICsgMSA8IHYubGVuZ3RoKSBzdGFjay5wdXNoICh2LCBpICsgMSk7XG4gICAgICBleHRlcm5fcmVjICh2W2ldKTtcbiAgICB9XG4gICAgaWYgKGludGVybl9vYmpfdGFibGUpIHdyaXRlci5vYmpfY291bnRlciA9IGludGVybl9vYmpfdGFibGUub2Jqcy5sZW5ndGg7XG4gICAgd3JpdGVyLmZpbmFsaXplKCk7XG4gICAgcmV0dXJuIHdyaXRlci5jaHVuaztcbiAgfVxufSAoKTtcblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyAodiwgZmxhZ3MpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9ieXRlc19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMgKHYsIGZsYWdzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX2JsaXRfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlciAocywgb2ZzLCBsZW4sIHYsIGZsYWdzKSB7XG4gIHZhciB0ID0gY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncyk7XG4gIGlmICh0Lmxlbmd0aCA+IGxlbikgY2FtbF9mYWlsd2l0aCAoXCJNYXJzaGFsLnRvX2J1ZmZlcjogYnVmZmVyIG92ZXJmbG93XCIpO1xuICBjYW1sX2JsaXRfYnl0ZXModCwgMCwgcywgb2ZzLCB0Lmxlbmd0aCk7XG4gIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBJb1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jbG9zZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9zeXNfY2xvc2UoZmQpIHtcbiAgZGVsZXRlIGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2ZkXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RkX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX3N0ZF9vdXRwdXQoY2hhbmlkLHMpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIHN0ciA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocyk7XG4gIHZhciBzbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHN0cik7XG4gIGNoYW4uZmlsZS53cml0ZShjaGFuLm9mZnNldCwgc3RyLCAwLCBzbGVuKTtcbiAgY2hhbi5vZmZzZXQgKz0gc2xlbjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX29wZW5cbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX2dsb2JhbF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcyxNbEZha2VGaWxlXG4vL1JlcXVpcmVzOiBqc19wcmludF9zdGRlcnIsIGpzX3ByaW50X3N0ZG91dFxuLy9SZXF1aXJlczogY2FtbF9zdGRfb3V0cHV0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfb3Blbl9pbnRlcm5hbChpZHgsb3V0cHV0LGZpbGUsZmxhZ3MpIHtcbiAgaWYoY2FtbF9nbG9iYWxfZGF0YS5mZHMgPT09IHVuZGVmaW5lZCkgY2FtbF9nbG9iYWxfZGF0YS5mZHMgPSBuZXcgQXJyYXkoKTtcbiAgZmxhZ3M9ZmxhZ3M/ZmxhZ3M6e307XG4gIHZhciBpbmZvID0ge307XG4gIGluZm8uZmlsZSA9IGZpbGU7XG4gIGluZm8ub2Zmc2V0ID0gZmxhZ3MuYXBwZW5kP2ZpbGUubGVuZ3RoKCk6MDtcbiAgaW5mby5mbGFncyA9IGZsYWdzO1xuICBpbmZvLm91dHB1dCA9IG91dHB1dDtcbiAgY2FtbF9nbG9iYWxfZGF0YS5mZHNbaWR4XSA9IGluZm87XG4gIGlmKCFjYW1sX2dsb2JhbF9kYXRhLmZkX2xhc3RfaWR4IHx8IGlkeCA+IGNhbWxfZ2xvYmFsX2RhdGEuZmRfbGFzdF9pZHgpXG4gICAgY2FtbF9nbG9iYWxfZGF0YS5mZF9sYXN0X2lkeCA9IGlkeDtcbiAgcmV0dXJuIGlkeDtcbn1cbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW4gKG5hbWUsIGZsYWdzLCBfcGVybXMpIHtcbiAgdmFyIGYgPSB7fTtcbiAgd2hpbGUoZmxhZ3Mpe1xuICAgIHN3aXRjaChmbGFnc1sxXSl7XG4gICAgY2FzZSAwOiBmLnJkb25seSA9IDE7YnJlYWs7XG4gICAgY2FzZSAxOiBmLndyb25seSA9IDE7YnJlYWs7XG4gICAgY2FzZSAyOiBmLmFwcGVuZCA9IDE7YnJlYWs7XG4gICAgY2FzZSAzOiBmLmNyZWF0ZSA9IDE7YnJlYWs7XG4gICAgY2FzZSA0OiBmLnRydW5jYXRlID0gMTticmVhaztcbiAgICBjYXNlIDU6IGYuZXhjbCA9IDE7IGJyZWFrO1xuICAgIGNhc2UgNjogZi5iaW5hcnkgPSAxO2JyZWFrO1xuICAgIGNhc2UgNzogZi50ZXh0ID0gMTticmVhaztcbiAgICBjYXNlIDg6IGYubm9uYmxvY2sgPSAxO2JyZWFrO1xuICAgIH1cbiAgICBmbGFncz1mbGFnc1syXTtcbiAgfVxuICBpZihmLnJkb25seSAmJiBmLndyb25seSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3Jkb25seSBhbmQgT3Blbl93cm9ubHkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICBpZihmLnRleHQgJiYgZi5iaW5hcnkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl90ZXh0IGFuZCBPcGVuX2JpbmFyeSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBmaWxlID0gcm9vdC5kZXZpY2Uub3Blbihyb290LnJlc3QsZik7XG4gIHZhciBpZHggPSBjYW1sX2dsb2JhbF9kYXRhLmZkX2xhc3RfaWR4P2NhbWxfZ2xvYmFsX2RhdGEuZmRfbGFzdF9pZHg6MDtcbiAgcmV0dXJuIGNhbWxfc3lzX29wZW5faW50ZXJuYWwgKGlkeCsxLGNhbWxfc3RkX291dHB1dCxmaWxlLGYpO1xufVxuY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCgwLGNhbWxfc3RkX291dHB1dCwgbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpKTsgLy9zdGRpblxuY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCgxLGpzX3ByaW50X3N0ZG91dCwgbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpKTsgLy9zdGRvdXRcbmNhbWxfc3lzX29wZW5faW50ZXJuYWwoMixqc19wcmludF9zdGRlcnIsIG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKSk7IC8vc3RkZXJyXG5cblxuLy8gb2NhbWwgQ2hhbm5lbHNcblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX25hbWUoKSB7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbHNcbnZhciBjYW1sX21sX2NoYW5uZWxzID0gbmV3IEFycmF5KCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3Rcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QgKCkge1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgYyA9IDA7IGMgPCBjYW1sX21sX2NoYW5uZWxzLmxlbmd0aDsgYysrKXtcbiAgICBpZihjYW1sX21sX2NoYW5uZWxzW2NdICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3BlbmVkICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3V0KVxuICAgICAgbD1bMCxjYW1sX21sX2NoYW5uZWxzW2NdLmZkLGxdO1xuICB9XG4gIHJldHVybiBsO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9nbG9iYWxfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCAoZmQpIHtcbiAgdmFyIGRhdGEgPSBjYW1sX2dsb2JhbF9kYXRhLmZkc1tmZF07XG4gIGlmKGRhdGEuZmxhZ3MucmRvbmx5KSBjYW1sX3JhaXNlX3N5c19lcnJvcihcImZkIFwiKyBmZCArIFwiIGlzIHJlYWRvbmx5XCIpO1xuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmRhdGEuZmlsZSxcbiAgICBvZmZzZXQ6ZGF0YS5vZmZzZXQsXG4gICAgZmQ6ZmQsXG4gICAgb3BlbmVkOnRydWUsXG4gICAgb3V0OnRydWUsXG4gICAgYnVmZmVyOlwiXCJcbiAgfTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFubmVsLmZkXT1jaGFubmVsO1xuICByZXR1cm4gY2hhbm5lbC5mZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW5cbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsY2FtbF9zeXNfb3BlbixjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWQsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiAoZmQpICB7XG4gIHZhciBkYXRhID0gY2FtbF9nbG9iYWxfZGF0YS5mZHNbZmRdO1xuICBpZihkYXRhLmZsYWdzLndyb25seSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJmZCBcIisgZmQgKyBcIiBpcyB3cml0ZW9ubHlcIik7XG4gIHZhciByZWZpbGwgPSBudWxsO1xuICBpZihmZCA9PSAwICYmIGZzX25vZGVfc3VwcG9ydGVkKCkpe1xuICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgcmVmaWxsID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGZzLnJlYWRGaWxlU3luYygwLCAndXRmOCcpKX07XG4gIH1cbiAgdmFyIGNoYW5uZWwgPSB7XG4gICAgZmlsZTpkYXRhLmZpbGUsXG4gICAgb2Zmc2V0OmRhdGEub2Zmc2V0LFxuICAgIGZkOmZkLFxuICAgIG9wZW5lZDp0cnVlLFxuICAgIG91dDogZmFsc2UsXG4gICAgcmVmaWxsOnJlZmlsbFxuICB9O1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5uZWwuZmRdPWNoYW5uZWw7XG4gIHJldHVybiBjaGFubmVsLmZkO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvcihjaGFuaWQpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4uZmQ7XG59XG5cbi8vUHJvdmlkZXM6IHdpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbFxuLy9SZXF1aXJlczogY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3JcbnZhciB3aW5fZmlsZWRlc2NyX29mX2NoYW5uZWwgPSBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvclxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9iaW5hcnlfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfYmluYXJ5X21vZGUoY2hhbmlkLG1vZGUpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIGRhdGEgPSBjYW1sX2dsb2JhbF9kYXRhLmZkc1tjaGFuLmZkXTtcbiAgZGF0YS5mbGFncy50ZXh0ID0gIW1vZGVcbiAgZGF0YS5mbGFncy5iaW5hcnkgPSBtb2RlXG4gIHJldHVybiAwO1xufVxuXG4vL0lucHV0IGZyb20gaW5fY2hhbm5lbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2Nsb3NlX2NoYW5uZWxcbi8vUmVxdWlyZXM6IGNhbWxfbWxfZmx1c2gsIGNhbWxfbWxfY2hhbm5lbHNcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2Nsb3NlXG5mdW5jdGlvbiBjYW1sX21sX2Nsb3NlX2NoYW5uZWwgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICBjaGFuLm9wZW5lZCA9IGZhbHNlO1xuICBjaGFuLmZpbGUuY2xvc2UoKTtcbiAgY2FtbF9zeXNfY2xvc2UoY2hhbi5mZClcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2NoYW5uZWxfc2l6ZShjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLmZpbGUubGVuZ3RoKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfY2hhbm5lbF9zaXplXzY0KGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQoY2hhbi5maWxlLmxlbmd0aCAoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX291dHB1dChjaGFuaWQsZikge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2FtbF9nbG9iYWxfZGF0YS5mZHNbY2hhbi5mZF0ub3V0cHV0ID0gZjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbChjaGFuaWQsZikge1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ucmVmaWxsID0gZjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcmVmaWxsX2lucHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfbWxfcmVmaWxsX2lucHV0IChjaGFuKSB7XG4gIHZhciBzdHIgPSBjaGFuLnJlZmlsbCgpO1xuICB2YXIgc3RyX2xlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzdHIpO1xuICBpZiAoc3RyX2xlbiA9PSAwKSBjaGFuLnJlZmlsbCA9IG51bGw7XG4gIGNoYW4uZmlsZS53cml0ZShjaGFuLmZpbGUubGVuZ3RoKCksIHN0ciwgMCwgc3RyX2xlbik7XG4gIHJldHVybiBzdHJfbGVuO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX21heV9yZWZpbGxfaW5wdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfcmVmaWxsX2lucHV0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX21heV9yZWZpbGxfaW5wdXQgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYgKGNoYW4ucmVmaWxsID09IG51bGwpIHJldHVybjtcbiAgaWYgKGNoYW4uZmlsZS5sZW5ndGgoKSAhPSBjaGFuLm9mZnNldCkgcmV0dXJuO1xuICBjYW1sX21sX3JlZmlsbF9pbnB1dCAoY2hhbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfcmVmaWxsX2lucHV0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0IChjaGFuaWQsIHMsIGksIGwpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBsMiA9IGNoYW4uZmlsZS5sZW5ndGgoKSAtIGNoYW4ub2Zmc2V0O1xuICBpZiAobDIgPT0gMCAmJiBjaGFuLnJlZmlsbCAhPSBudWxsKSBsMiA9IGNhbWxfbWxfcmVmaWxsX2lucHV0KGNoYW4pO1xuICBpZiAobDIgPCBsKSBsID0gbDI7XG4gIGNoYW4uZmlsZS5yZWFkKGNoYW4ub2Zmc2V0LCBzLCBpLCBsKTtcbiAgY2hhbi5vZmZzZXQgKz0gbDtcbiAgcmV0dXJuIGw7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcywgY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWUgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcblxuICB2YXIgYnVmID0gY2FtbF9jcmVhdGVfYnl0ZXMoOCk7XG4gIGNoYW4uZmlsZS5yZWFkKGNoYW4ub2Zmc2V0LGJ1ZiwwLDgpO1xuXG4gIC8vIEhlYWRlciBpcyAyMCBieXRlc1xuICB2YXIgbGVuID0gY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSAoYnVmLCAwKSArIDIwO1xuXG4gIHZhciBidWYgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pO1xuICBjaGFuLmZpbGUucmVhZChjaGFuLm9mZnNldCxidWYsMCxsZW4pO1xuXG4gIHZhciBvZmZzZXQgPSBbMF07XG4gIHZhciByZXMgPSBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMoYnVmLCBvZmZzZXQpO1xuICBjaGFuLm9mZnNldCA9IGNoYW4ub2Zmc2V0ICsgb2Zmc2V0WzBdO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9jaGFyIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dChjaGFuaWQpO1xuICBpZiAoY2hhbi5vZmZzZXQgPj0gY2hhbi5maWxlLmxlbmd0aCgpKVxuICAgIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgdmFyIHJlcyA9IGNoYW4uZmlsZS5yZWFkX29uZShjaGFuLm9mZnNldCk7XG4gIGNoYW4ub2Zmc2V0Kys7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfaW50XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX21sX3JlZmlsbF9pbnB1dCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9pbnQgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIGZpbGUgPSBjaGFuLmZpbGU7XG4gIHdoaWxlICgoY2hhbi5vZmZzZXQgKyAzKSA+PSBmaWxlLmxlbmd0aCgpKSB7XG4gICAgdmFyIGwgPSBjYW1sX21sX3JlZmlsbF9pbnB1dChjaGFuKTtcbiAgICBpZiAobCA9PSAwKSBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIH1cbiAgdmFyIG8gPSBjaGFuLm9mZnNldDtcbiAgdmFyIHIgPShmaWxlLnJlYWRfb25lKG8gICkgPDwgMjQpXG4gICAgICB8ICAoZmlsZS5yZWFkX29uZShvKzEpIDw8IDE2KVxuICAgICAgfCAgKGZpbGUucmVhZF9vbmUobysyKSA8PCA4KVxuICAgICAgfCAgKGZpbGUucmVhZF9vbmUobyszKSk7XG4gIGNoYW4ub2Zmc2V0Kz00O1xuICByZXR1cm4gcjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX2luXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luKGNoYW5pZCxwb3Mpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYgKGNoYW4ucmVmaWxsICE9IG51bGwpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiSWxsZWdhbCBzZWVrXCIpO1xuICBjaGFuLm9mZnNldCA9IHBvcztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19pbl82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19mbG9hdCwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19pbl82NChjaGFuaWQscG9zKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmIChjaGFuLnJlZmlsbCAhPSBudWxsKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIklsbGVnYWwgc2Vla1wiKTtcbiAgY2hhbi5vZmZzZXQgPSBjYW1sX2ludDY0X3RvX2Zsb2F0KHBvcyk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19pblxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9wb3NfaW4oY2hhbmlkKSB7cmV0dXJuIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXR9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX2luXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19pbl82NChjaGFuaWQpIHtyZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdChjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ub2Zmc2V0KX1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmVcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUoY2hhbmlkKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNhbWxfbWxfbWF5X3JlZmlsbF9pbnB1dChjaGFuaWQpO1xuICB2YXIgcCA9IGNoYW4ub2Zmc2V0O1xuICB2YXIgbGVuID0gY2hhbi5maWxlLmxlbmd0aCgpO1xuICBpZihwID49IGxlbikgeyByZXR1cm4gMDt9XG4gIHdoaWxlKHRydWUpIHtcbiAgICBpZihwID49IGxlbikgcmV0dXJuIC0gKHAgLSBjaGFuLm9mZnNldCk7XG4gICAgaWYoY2hhbi5maWxlLnJlYWRfb25lKHApID09IDEwKSByZXR1cm4gcCAtIGNoYW4ub2Zmc2V0ICsgMTtcbiAgICBwKys7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9mbHVzaFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYoISBjaGFuLm9wZW5lZCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJDYW5ub3QgZmx1c2ggYSBjbG9zZWQgY2hhbm5lbFwiKTtcbiAgaWYoIWNoYW4uYnVmZmVyIHx8IGNoYW4uYnVmZmVyID09IFwiXCIpIHJldHVybiAwO1xuICBpZihjaGFuLmZkXG4gICAgICYmIGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2NoYW4uZmRdXG4gICAgICYmIGNhbWxfZ2xvYmFsX2RhdGEuZmRzW2NoYW4uZmRdLm91dHB1dCkge1xuICAgIHZhciBvdXRwdXQgPSBjYW1sX2dsb2JhbF9kYXRhLmZkc1tjaGFuLmZkXS5vdXRwdXQ7XG4gICAgc3dpdGNoKG91dHB1dC5sZW5ndGgpe1xuICAgIGNhc2UgMjogb3V0cHV0KGNoYW5pZCxjaGFuLmJ1ZmZlcik7YnJlYWs7XG4gICAgZGVmYXVsdDogb3V0cHV0KGNoYW4uYnVmZmVyKVxuICAgIH07XG4gIH1cbiAgY2hhbi5idWZmZXIgPSBcIlwiO1xuICByZXR1cm4gMDtcbn1cblxuLy9vdXRwdXQgdG8gb3V0X2NoYW5uZWxcblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfZmx1c2gsY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfYnl0ZXMoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZighIGNoYW4ub3BlbmVkKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIkNhbm5vdCBvdXRwdXQgdG8gYSBjbG9zZWQgY2hhbm5lbFwiKTtcbiAgdmFyIGJ5dGVzO1xuICBpZihvZmZzZXQgPT0gMCAmJiBjYW1sX21sX2J5dGVzX2xlbmd0aChidWZmZXIpID09IGxlbilcbiAgICBieXRlcyA9IGJ1ZmZlcjtcbiAgZWxzZSB7XG4gICAgYnl0ZXMgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pO1xuICAgIGNhbWxfYmxpdF9ieXRlcyhidWZmZXIsb2Zmc2V0LGJ5dGVzLDAsbGVuKTtcbiAgfVxuICB2YXIgc3RyaW5nID0gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMoYnl0ZXMpO1xuICB2YXIganNzdHJpbmcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHN0cmluZyk7XG4gIHZhciBpZCA9IGpzc3RyaW5nLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICBpZihpZCA8IDApXG4gICAgY2hhbi5idWZmZXIrPWpzc3RyaW5nO1xuICBlbHNlIHtcbiAgICBjaGFuLmJ1ZmZlcis9anNzdHJpbmcuc3Vic3RyKDAsaWQrMSk7XG4gICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICBjaGFuLmJ1ZmZlciArPSBqc3N0cmluZy5zdWJzdHIoaWQrMSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dF9ieXRlcywgY2FtbF9ieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxidWZmZXIsb2Zmc2V0LGxlbil7XG4gIHJldHVybiBjYW1sX21sX291dHB1dF9ieXRlcyhjaGFuaWQsY2FtbF9ieXRlc19vZl9zdHJpbmcoYnVmZmVyKSxvZmZzZXQsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfY2hhclxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2NoYXIgKGNoYW5pZCxjKSB7XG4gIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCwxKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcsIGNhbWxfbWxfb3V0cHV0LGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWUgKGNoYW5pZCx2LGZsYWdzKSB7XG4gIHZhciBzID0gY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nKHYsIGZsYWdzKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCxjYW1sX21sX3N0cmluZ19sZW5ndGgocykpO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfb3V0KGNoYW5pZCxwb3Mpe1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXQgPSBwb3M7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfb3V0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0LCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfb3V0XzY0KGNoYW5pZCxwb3Mpe1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5vZmZzZXQgPSBjYW1sX2ludDY0X3RvX2Zsb2F0KHBvcyk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX291dChjaGFuaWQpIHtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICByZXR1cm4gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19vdXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsIGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX291dF82NChjaGFuaWQpIHtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdCAoY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLm9mZnNldCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2ludFxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9pbnQgKGNoYW5pZCxpKSB7XG4gIHZhciBhcnIgPSBbKGk+PjI0KSAmIDB4RkYsKGk+PjE2KSAmIDB4RkYsKGk+PjgpICYgMHhGRixpICYgMHhGRiBdO1xuICB2YXIgcyA9IGNhbWxfc3RyaW5nX29mX2FycmF5KGFycik7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsNCk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaXNfYnVmZmVyZWRcbmZ1bmN0aW9uIGNhbWxfbWxfaXNfYnVmZmVyZWQoYykgeyByZXR1cm4gMSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2J1ZmZlcmVkXG5mdW5jdGlvbiBjYW1sX21sX3NldF9idWZmZXJlZChjLHYpIHsgcmV0dXJuIDAgfVxuIiwiXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWlub3JcbmZ1bmN0aW9uIGNhbWxfZ2NfbWlub3IoKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX21ham9yXG5mdW5jdGlvbiBjYW1sX2djX21ham9yKCl7IHJldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9nY19mdWxsX21ham9yXG5mdW5jdGlvbiBjYW1sX2djX2Z1bGxfbWFqb3IoKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2NvbXBhY3Rpb25cbmZ1bmN0aW9uIGNhbWxfZ2NfY29tcGFjdGlvbigpeyByZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfY291bnRlcnNcbmZ1bmN0aW9uIGNhbWxfZ2NfY291bnRlcnMoKSB7IHJldHVybiBbMjU0LDAsMCwwXSB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX3F1aWNrX3N0YXRcbmZ1bmN0aW9uIGNhbWxfZ2NfcXVpY2tfc3RhdCgpe1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ2Nfc3RhdFxuZnVuY3Rpb24gY2FtbF9nY19zdGF0KCkge1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9nY19zZXRcbmZ1bmN0aW9uIGNhbWxfZ2Nfc2V0KF9jb250cm9sKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX2dldFxuZnVuY3Rpb24gY2FtbF9nY19nZXQoKXtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMF1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3NldFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3NldChfY29udHJvbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWdpc3RlciBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWdpc3RlciAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVsZWFzZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWxlYXNlICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0YXJ0XG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc3RhcnQocmF0ZSxzdGFja19zaXplLHRyYWNrZXIpe1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0b3BcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zdG9wKHVuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcmVzdW1lXG5mdW5jdGlvbiBjYW1sX2V2ZW50bG9nX3Jlc3VtZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcGF1c2VcbmZ1bmN0aW9uIGNhbWxfZXZlbnRsb2dfcGF1c2UodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnRcbmZ1bmN0aW9uIGNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudCh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWFqb3Jfc2xpY2VcbmZ1bmN0aW9uIGNhbWxfZ2NfbWFqb3Jfc2xpY2Uod29yaykgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21pbm9yX3dvcmRzXG5mdW5jdGlvbiBjYW1sX2djX21pbm9yX3dvcmRzKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWlub3JfZnJlZVxuZnVuY3Rpb24gY2FtbF9nZXRfbWlub3JfZnJlZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21ham9yX2J1Y2tldFxuZnVuY3Rpb24gY2FtbF9nZXRfbWFqb3JfYnVja2V0KG4pIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWFqb3JfY3JlZGl0XG5mdW5jdGlvbiBjYW1sX2dldF9tYWpvcl9jcmVkaXQobikgeyByZXR1cm4gMDsgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmQsIEFuZHkgUmF5XG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4vL1xuLy8gQmlnYXJyYXkuXG4vL1xuLy8gLSBhbGwgYmlnYXJyYXkgdHlwZXMgaW5jbHVkaW5nIEludDY0IGFuZCBDb21wbGV4LlxuLy8gLSBmb3J0cmFuICsgYyBsYXlvdXRzXG4vLyAtIHN1Yi9zbGljZS9yZXNoYXBlXG4vLyAtIHJldGFpbiBmYXN0IHBhdGggZm9yIDFkIGFycmF5IGFjY2Vzc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2luaXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYmFfaW5pdCgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSB7XG4gIHZhciBuX2RpbXMgPSBkaW1zLmxlbmd0aDtcbiAgdmFyIHNpemUgPSAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5fZGltczsgaSsrKSB7XG4gICAgaWYgKGRpbXNbaV0gPCAwKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiBuZWdhdGl2ZSBkaW1lbnNpb25cIik7XG4gICAgc2l6ZSA9IHNpemUgKiBkaW1zW2ldO1xuICB9XG4gIHJldHVybiBzaXplO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpe1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgNzogY2FzZSAxMDogY2FzZSAxMTogcmV0dXJuIDI7XG4gIGRlZmF1bHQ6IHJldHVybiAxO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSl7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgdmFyIHZpZXc7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSAwOiAgdmlldyA9IGcuRmxvYXQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxOiAgdmlldyA9IGcuRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAyOiAgdmlldyA9IGcuSW50OEFycmF5OyBicmVhaztcbiAgY2FzZSAzOiAgdmlldyA9IGcuVWludDhBcnJheTsgYnJlYWs7XG4gIGNhc2UgNDogIHZpZXcgPSBnLkludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDU6ICB2aWV3ID0gZy5VaW50MTZBcnJheTsgYnJlYWs7XG4gIGNhc2UgNjogIHZpZXcgPSBnLkludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDc6ICB2aWV3ID0gZy5JbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA4OiAgdmlldyA9IGcuSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgOTogIHZpZXcgPSBnLkludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDEwOiB2aWV3ID0gZy5GbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDExOiB2aWV3ID0gZy5GbG9hdDY0QXJyYXk7IGJyZWFrO1xuICBjYXNlIDEyOiB2aWV3ID0gZy5VaW50OEFycmF5OyBicmVhaztcbiAgfVxuICBpZiAoIXZpZXcpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmNyZWF0ZTogdW5zdXBwb3J0ZWQga2luZFwiKTtcbiAgdmFyIGRhdGEgPSBuZXcgdmlldyhzaXplICogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKSk7XG4gIHJldHVybiBkYXRhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1ZlcnNpb246IDwgNC4xMVxudmFyIGNhbWxfYmFfY3VzdG9tX25hbWUgPSBcIl9iaWdhcnJheVwiXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vVmVyc2lvbjogPj0gNC4xMVxudmFyIGNhbWxfYmFfY3VzdG9tX25hbWUgPSBcIl9iaWdhcnIwMlwiXG5cbi8vUHJvdmlkZXM6IE1sX0JpZ2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpLCBjYW1sX2ludDY0X2hpMzIsIGNhbWxfaW50NjRfbG8zMlxuZnVuY3Rpb24gTWxfQmlnYXJyYXkgKGtpbmQsIGxheW91dCwgZGltcywgYnVmZmVyKSB7XG5cbiAgdGhpcy5raW5kICAgPSBraW5kIDtcbiAgdGhpcy5sYXlvdXQgPSBsYXlvdXQ7XG4gIHRoaXMuZGltcyAgID0gZGltcztcbiAgdGhpcy5kYXRhID0gYnVmZmVyO1xufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBjYW1sX2JhX2N1c3RvbV9uYW1lO1xuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUub2Zmc2V0ID0gZnVuY3Rpb24gKGFyZykge1xuICB2YXIgb2ZzID0gMDtcbiAgaWYodHlwZW9mIGFyZyA9PT0gXCJudW1iZXJcIikgYXJnID0gW2FyZ107XG4gIGlmICghIChhcmcgaW5zdGFuY2VvZiBBcnJheSkpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImJpZ2FycmF5LmpzOiBpbnZhbGlkIG9mZnNldFwiKTtcbiAgaWYgKHRoaXMuZGltcy5sZW5ndGggIT0gYXJnLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5nZXQvc2V0OiBiYWQgbnVtYmVyIG9mIGRpbWVuc2lvbnNcIik7XG4gIGlmKHRoaXMubGF5b3V0ID09IDAgLyogY19sYXlvdXQgKi8pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGltcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFyZ1tpXSA8IDAgfHwgYXJnW2ldID49IHRoaXMuZGltc1tpXSlcbiAgICAgICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICAgICAgb2ZzID0gKG9mcyAqIHRoaXMuZGltc1tpXSkgKyBhcmdbaV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmRpbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmIChhcmdbaV0gPCAxIHx8IGFyZ1tpXSA+IHRoaXMuZGltc1tpXSl7XG4gICAgICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIG9mcyA9IChvZnMgKiB0aGlzLmRpbXNbaV0pICsgKGFyZ1tpXSAtIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2ZzO1xufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG9mcykge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdmFyIGwgPSB0aGlzLmRhdGFbb2ZzICogMiArIDBdO1xuICAgIHZhciBoID0gdGhpcy5kYXRhW29mcyAqIDIgKyAxXTtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkobCxoKTtcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHZhciByID0gdGhpcy5kYXRhW29mcyAqIDIgKyAwXTtcbiAgICB2YXIgaSA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMV07XG4gICAgcmV0dXJuIFsyNTQsIHIsIGldO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiB0aGlzLmRhdGFbb2ZzXVxuICB9XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAob2ZzLHYpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMF0gPSBjYW1sX2ludDY0X2xvMzIodik7XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAxXSA9IGNhbWxfaW50NjRfaGkzMih2KTtcbiAgICBicmVhaztcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMF0gPSB2WzFdO1xuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMV0gPSB2WzJdO1xuICAgIGJyZWFrO1xuICBkZWZhdWx0OlxuICAgIHRoaXMuZGF0YVtvZnNdID0gdjtcbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMFxufVxuXG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gKHYpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHZhciBhID0gY2FtbF9pbnQ2NF9sbzMyKHYpO1xuICAgIHZhciBiID0gY2FtbF9pbnQ2NF9oaTMyKHYpO1xuICAgIGlmKGEgPT0gYil7XG4gICAgICB0aGlzLmRhdGEuZmlsbChhKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3IodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHRoaXMuZGF0YVtpXSA9IChpJTIgPT0gMCkgPyBhIDogYjtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB2YXIgaW0gPSB2WzFdO1xuICAgIHZhciByZSA9IHZbMl07XG4gICAgaWYoaW0gPT0gcmUpe1xuICAgICAgdGhpcy5kYXRhLmZpbGwoaW0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5kYXRhW2ldID0gKGklMiA9PSAwKSA/IGltIDogcmU7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBkZWZhdWx0OlxuICAgIHRoaXMuZGF0YS5maWxsKHYpO1xuICAgIGJyZWFrO1xuICB9XG59XG5cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAoYiwgdG90YWwpIHtcbiAgaWYgKHRoaXMubGF5b3V0ICE9IGIubGF5b3V0IHx8IHRoaXMua2luZCAhPSBiLmtpbmQpIHtcbiAgICB2YXIgazEgPSB0aGlzLmtpbmQgfCAodGhpcy5sYXlvdXQgPDwgOCk7XG4gICAgdmFyIGsyID0gICAgYi5raW5kIHwgKGIubGF5b3V0IDw8IDgpO1xuICAgIHJldHVybiBrMiAtIGsxO1xuICB9XG4gIGlmICh0aGlzLmRpbXMubGVuZ3RoICE9IGIuZGltcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gYi5kaW1zLmxlbmd0aCAtIHRoaXMuZGltcy5sZW5ndGg7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgaWYgKHRoaXMuZGltc1tpXSAhPSBiLmRpbXNbaV0pXG4gICAgICByZXR1cm4gKHRoaXMuZGltc1tpXSA8IGIuZGltc1tpXSkgPyAtMSA6IDE7XG4gIHN3aXRjaCAodGhpcy5raW5kKSB7XG4gIGNhc2UgMDpcbiAgY2FzZSAxOlxuICBjYXNlIDEwOlxuICBjYXNlIDExOlxuICAgIC8vIEZsb2F0c1xuICAgIHZhciB4LCB5O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB4ID0gdGhpcy5kYXRhW2ldO1xuICAgICAgeSA9IGIuZGF0YVtpXTtcbiAgICAgIGlmICh4IDwgeSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHggPiB5KVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGlmICh4ICE9IHkpIHtcbiAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgaWYgKHggPT0geCkgcmV0dXJuIDE7XG4gICAgICAgIGlmICh5ID09IHkpIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSs9Mikge1xuICAgICAgLy8gQ2hlY2sgaGlnaGVzdCBiaXRzIGZpcnN0XG4gICAgICBpZiAodGhpcy5kYXRhW2krMV0gPCBiLmRhdGFbaSsxXSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHRoaXMuZGF0YVtpKzFdID4gYi5kYXRhW2krMV0pXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgaWYgKCh0aGlzLmRhdGFbaV0gPj4+IDApIDwgKGIuZGF0YVtpXSA+Pj4gMCkpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICgodGhpcy5kYXRhW2ldID4+PiAwKSA+IChiLmRhdGFbaV0gPj4+IDApKVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMjpcbiAgY2FzZSAzOlxuICBjYXNlIDQ6XG4gIGNhc2UgNTpcbiAgY2FzZSA2OlxuICBjYXNlIDg6XG4gIGNhc2UgOTpcbiAgY2FzZSAxMjpcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZGF0YVtpXSA8IGIuZGF0YVtpXSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHRoaXMuZGF0YVtpXSA+IGIuZGF0YVtpXSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBNbF9CaWdhcnJheV9jXzFfMVxuLy9SZXF1aXJlczogTWxfQmlnYXJyYXksIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gTWxfQmlnYXJyYXlfY18xXzEoa2luZCwgbGF5b3V0LCBkaW1zLCBidWZmZXIpIHtcbiAgdGhpcy5raW5kICAgPSBraW5kIDtcbiAgdGhpcy5sYXlvdXQgPSBsYXlvdXQ7XG4gIHRoaXMuZGltcyAgID0gZGltcztcbiAgdGhpcy5kYXRhICAgPSBidWZmZXI7XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZSA9IG5ldyBNbF9CaWdhcnJheSgpXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUub2Zmc2V0ID0gZnVuY3Rpb24gKGFyZykge1xuICBpZih0eXBlb2YgYXJnICE9PSBcIm51bWJlclwiKXtcbiAgICBpZigoYXJnIGluc3RhbmNlb2YgQXJyYXkpICYmIGFyZy5sZW5ndGggPT0gMSlcbiAgICAgIGFyZyA9IGFyZ1swXTtcbiAgICBlbHNlIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIk1sX0JpZ2FycmF5X2NfMV8xLm9mZnNldFwiKTtcbiAgfVxuICBpZiAoYXJnIDwgMCB8fCBhcmcgPj0gdGhpcy5kaW1zWzBdKVxuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFyZztcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChvZnMpIHtcbiAgcmV0dXJuIHRoaXMuZGF0YVtvZnNdO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKG9mcyx2KSB7XG4gIHRoaXMuZGF0YVtvZnNdID0gdjtcbiAgcmV0dXJuIDBcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodikge1xuICB0aGlzLmRhdGEuZmlsbCh2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jb21wYXJlXG5mdW5jdGlvbiBjYW1sX2JhX2NvbXBhcmUoYSxiLHRvdGFsKXtcbiAgcmV0dXJuIGEuY29tcGFyZShiLHRvdGFsKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbi8vUmVxdWlyZXM6IE1sX0JpZ2FycmF5LCBNbF9CaWdhcnJheV9jXzFfMSwgY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKXtcbiAgdmFyIHNpemVfcGVyX2VsZW1lbnQgPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpO1xuICBpZihjYW1sX2JhX2dldF9zaXplKGRpbXMpICogc2l6ZV9wZXJfZWxlbWVudCAhPSBkYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImxlbmd0aCBkb2Vzbid0IG1hdGNoIGRpbXNcIik7XG4gIH1cbiAgaWYobGF5b3V0ID09IDAgJiYgLy8gY19sYXlvdXRcbiAgICAgZGltcy5sZW5ndGggPT0gMSAmJiAvLyBBcnJheTFcbiAgICAgc2l6ZV9wZXJfZWxlbWVudCA9PSAxKSAvLyAxLXRvLTEgbWFwcGluZ1xuICAgIHJldHVybiBuZXcgTWxfQmlnYXJyYXlfY18xXzEoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbiAgcmV0dXJuIG5ldyBNbF9CaWdhcnJheShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuXG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlKGtpbmQsIGxheW91dCwgZGltc19tbCkge1xuICB2YXIgZGltcyA9IGNhbWxfanNfZnJvbV9hcnJheShkaW1zX21sKTtcbiAgdmFyIGRhdGEgPSBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGNhbWxfYmFfY2hhbmdlX2xheW91dChiYSwgbGF5b3V0KSB7XG4gIGlmKGJhLmxheW91dCA9PSBsYXlvdXQpIHJldHVybiBiYTtcbiAgdmFyIG5ld19kaW1zID0gW11cbiAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIG5ld19kaW1zW2ldID0gYmEuZGltc1tiYS5kaW1zLmxlbmd0aCAtIGkgLSAxXTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBsYXlvdXQsIG5ld19kaW1zLCBiYS5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9raW5kXG5mdW5jdGlvbiBjYW1sX2JhX2tpbmQoYmEpIHtcbiAgcmV0dXJuIGJhLmtpbmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbGF5b3V0XG5mdW5jdGlvbiBjYW1sX2JhX2xheW91dChiYSkge1xuICByZXR1cm4gYmEubGF5b3V0O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX251bV9kaW1zXG5mdW5jdGlvbiBjYW1sX2JhX251bV9kaW1zKGJhKSB7XG4gIHJldHVybiBiYS5kaW1zLmxlbmd0aDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1cbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9kaW0oYmEsIGkpIHtcbiAgaWYgKGkgPCAwIHx8IGkgPj0gYmEuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuZGltXCIpO1xuICByZXR1cm4gYmEuZGltc1tpXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fMVxuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzEoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fMlxuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzIoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fM1xuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzMoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfZ2VuZXJpY1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9nZW5lcmljKGJhLCBpKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoY2FtbF9qc19mcm9tX2FycmF5KGkpKTtcbiAgcmV0dXJuIGJhLmdldChvZnMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDE2KGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMSA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcyArIDEpO1xuICByZXR1cm4gKGIxIHwgKGIyIDw8IDgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQzMihiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDMgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyswKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcysxKTtcbiAgdmFyIGIzID0gYmEuZ2V0KG9mcysyKTtcbiAgdmFyIGI0ID0gYmEuZ2V0KG9mcyszKTtcbiAgcmV0dXJuICggKGIxIDw8IDApICB8XG4gICAgICAgICAgIChiMiA8PCA4KSAgfFxuICAgICAgICAgICAoYjMgPDwgMTYpIHxcbiAgICAgICAgICAgKGI0IDw8IDI0KSApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDY0KGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgNyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKzApO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzKzEpO1xuICB2YXIgYjMgPSBiYS5nZXQob2ZzKzIpO1xuICB2YXIgYjQgPSBiYS5nZXQob2ZzKzMpO1xuICB2YXIgYjUgPSBiYS5nZXQob2ZzKzQpO1xuICB2YXIgYjYgPSBiYS5nZXQob2ZzKzUpO1xuICB2YXIgYjcgPSBiYS5nZXQob2ZzKzYpO1xuICB2YXIgYjggPSBiYS5nZXQob2ZzKzcpO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhbYjgsYjcsYjYsYjUsYjQsYjMsYjIsYjFdKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMShiYSwgaTApIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoaTApKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfMlxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMihiYSwgaTAsIGkxKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KFtpMCxpMV0pKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfM1xuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMyhiYSwgaTAsIGkxLCBpMikge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChbaTAsaTEsaTJdKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0X2dlbmVyaWNcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfZ2VuZXJpYyhiYSwgaSwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KGNhbWxfanNfZnJvbV9hcnJheShpKSksIHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDE2KGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMSA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBiYS5zZXQob2ZzKzAsICB2ICAgICAgICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzEsICh2ID4+PiA4KSAmIDB4ZmYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQzMlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQzMihiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDMgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYmEuc2V0KG9mcyswLCAgdiAgICAgICAgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMSwgKHYgPj4+IDgpICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzIsICh2ID4+PiAxNikgJiAweGZmKTtcbiAgYmEuc2V0KG9mcyszLCAodiA+Pj4gMjQpICYgMHhmZik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDY0KGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgNyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgdiA9IGNhbWxfaW50NjRfdG9fYnl0ZXModik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCA4OyBpKyspIGJhLnNldChvZnMraSwgdls3LWldKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfMVxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMShiYSwgaTAsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChpMCksIHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8yXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8yKGJhLCBpMCwgaTEsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChbaTAsaTFdKSwgdik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8zXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8zKGJhLCBpMCwgaTEsIGkyLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoW2kwLGkxLGkyXSksIHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9maWxsXG5mdW5jdGlvbiBjYW1sX2JhX2ZpbGwoYmEsIHYpIHtcbiAgYmEuZmlsbCh2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2JsaXQoc3JjLCBkc3QpIHtcbiAgaWYgKGRzdC5kaW1zLmxlbmd0aCAhPSBzcmMuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuYmxpdDogZGltZW5zaW9uIG1pc21hdGNoXCIpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGRzdC5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIGlmIChkc3QuZGltc1tpXSAhPSBzcmMuZGltc1tpXSlcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmJsaXQ6IGRpbWVuc2lvbiBtaXNtYXRjaFwiKTtcbiAgZHN0LmRhdGEuc2V0KHNyYy5kYXRhKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc3ViXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9zdWIoYmEsIG9mcywgbGVuKSB7XG4gIHZhciBjaGFuZ2VkX2RpbTtcbiAgdmFyIG11bCA9IDE7XG4gIGlmIChiYS5sYXlvdXQgPT0gMCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICAgIG11bCA9IG11bCAqIGJhLmRpbXNbaV07XG4gICAgY2hhbmdlZF9kaW0gPSAwO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgKGJhLmRpbXMubGVuZ3RoIC0gMSk7IGkrKylcbiAgICAgIG11bCA9IG11bCAqIGJhLmRpbXNbaV07XG4gICAgY2hhbmdlZF9kaW0gPSBiYS5kaW1zLmxlbmd0aCAtIDE7XG4gICAgb2ZzID0gb2ZzIC0gMTtcbiAgfVxuICBpZiAob2ZzIDwgMCB8fCBsZW4gPCAwIHx8IChvZnMgKyBsZW4pID4gYmEuZGltc1tjaGFuZ2VkX2RpbV0pe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnN1YjogYmFkIHN1Yi1hcnJheVwiKTtcbiAgfVxuICB2YXIgbmV3X2RpbXMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIG5ld19kaW1zW2ldID0gYmEuZGltc1tpXTtcbiAgbmV3X2RpbXNbY2hhbmdlZF9kaW1dID0gbGVuO1xuICBtdWwgKj0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChiYS5raW5kKTtcbiAgdmFyIG5ld19kYXRhID0gYmEuZGF0YS5zdWJhcnJheShvZnMgKiBtdWwsIChvZnMgKyBsZW4pICogbXVsKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIG5ld19kaW1zLCBuZXdfZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2xpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfc2xpY2UoYmEsIHZpbmQpIHtcbiAgdmluZCA9IGNhbWxfanNfZnJvbV9hcnJheSh2aW5kKTtcbiAgdmFyIG51bV9pbmRzID0gdmluZC5sZW5ndGg7XG4gIHZhciBpbmRleCA9IFtdO1xuICB2YXIgc3ViX2RpbXMgPSBbXTtcbiAgdmFyIG9mcztcblxuICBpZiAobnVtX2luZHMgPiBiYS5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5zbGljZTogdG9vIG1hbnkgaW5kaWNlc1wiKTtcblxuICAvLyBDb21wdXRlIG9mZnNldCBhbmQgY2hlY2sgYm91bmRzXG4gIGlmIChiYS5sYXlvdXQgPT0gMCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2ldID0gdmluZFtpXTtcbiAgICBmb3IgKDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgICBpbmRleFtpXSA9IDA7XG4gICAgc3ViX2RpbXMgPSBiYS5kaW1zLnNsaWNlKG51bV9pbmRzKTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzICsgaV0gPSB2aW5kW2ldO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGggLSBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSAxO1xuICAgIHN1Yl9kaW1zID0gYmEuZGltcy5zbGljZSgwLCBiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzKTtcbiAgfVxuICBvZnMgPSBiYS5vZmZzZXQoaW5kZXgpO1xuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoc3ViX2RpbXMpO1xuICB2YXIgc2l6ZV9wZXJfZWxlbWVudCA9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoYmEua2luZCk7XG4gIHZhciBuZXdfZGF0YSA9IGJhLmRhdGEuc3ViYXJyYXkob2ZzICogc2l6ZV9wZXJfZWxlbWVudCwgKG9mcyArIHNpemUpICogc2l6ZV9wZXJfZWxlbWVudCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBzdWJfZGltcywgbmV3X2RhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3Jlc2hhcGVcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfYmFfZ2V0X3NpemVcbmZ1bmN0aW9uIGNhbWxfYmFfcmVzaGFwZShiYSwgdmluZCkge1xuICB2aW5kID0gY2FtbF9qc19mcm9tX2FycmF5KHZpbmQpO1xuICB2YXIgbmV3X2RpbSA9IFtdO1xuICB2YXIgbnVtX2RpbXMgPSB2aW5kLmxlbmd0aDtcblxuICBpZiAobnVtX2RpbXMgPCAwIHx8IG51bV9kaW1zID4gMTYpe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IGJhZCBudW1iZXIgb2YgZGltZW5zaW9uc1wiKTtcbiAgfVxuICB2YXIgbnVtX2VsdHMgPSAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIHtcbiAgICBuZXdfZGltW2ldID0gdmluZFtpXTtcbiAgICBpZiAobmV3X2RpbVtpXSA8IDApXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBuZWdhdGl2ZSBkaW1lbnNpb25cIik7XG4gICAgbnVtX2VsdHMgPSBudW1fZWx0cyAqIG5ld19kaW1baV07XG4gIH1cblxuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoYmEuZGltcyk7XG4gIC8vIENoZWNrIHRoYXQgc2l6ZXMgYWdyZWVcbiAgaWYgKG51bV9lbHRzICE9IHNpemUpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogc2l6ZSBtaXNtYXRjaFwiKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIG5ld19kaW0sIGJhLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NlcmlhbGl6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2ludDY0X3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfYmFfc2VyaWFsaXplKHdyaXRlciwgYmEsIHN6KSB7XG4gIHdyaXRlci53cml0ZSgzMiwgYmEuZGltcy5sZW5ndGgpO1xuICB3cml0ZXIud3JpdGUoMzIsIChiYS5raW5kIHwgKGJhLmxheW91dCA8PCA4KSkpO1xuICBpZihiYS5jYW1sX2N1c3RvbSA9PSBcIl9iaWdhcnIwMlwiKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZihiYS5kaW1zW2ldIDwgMHhmZmZmKVxuICAgICAgICB3cml0ZXIud3JpdGUoMTYsIGJhLmRpbXNbaV0pO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHdyaXRlci53cml0ZSgxNiwgMHhmZmZmKTtcbiAgICAgICAgd3JpdGVyLndyaXRlKDMyLCAwKTtcbiAgICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kaW1zW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIGVsc2VcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykgd3JpdGVyLndyaXRlKDMyLGJhLmRpbXNbaV0pXG4gIHN3aXRjaChiYS5raW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSg4LCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMTYsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIHdyaXRlci53cml0ZSg4LDApO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6ICAvLyBJbnQzMkFycmF5IChpbnQ2NClcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGJhLmdldChpKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoYmEuZ2V0KGkpKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGJhLmdldChpKSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGIpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBqID0gYmEuZ2V0KGkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoalsxXSkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoalsyXSkpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBjb21wbGV4ID0gYmEuZ2V0KGkpO1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChjb21wbGV4WzFdKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoY29tcGxleFsyXSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHN6WzBdID0gKDQgKyBiYS5kaW1zLmxlbmd0aCkgKiA0O1xuICBzelsxXSA9ICg0ICsgYmEuZGltcy5sZW5ndGgpICogODtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kZXNlcmlhbGl6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzLCBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c1xuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG5mdW5jdGlvbiBjYW1sX2JhX2Rlc2VyaWFsaXplKHJlYWRlciwgc3osIG5hbWUpe1xuICB2YXIgbnVtX2RpbXMgPSByZWFkZXIucmVhZDMycygpO1xuICBpZiAobnVtX2RpbXMgPCAwIHx8IG51bV9kaW1zID4gMTYpXG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB3cm9uZyBudW1iZXIgb2YgYmlnYXJyYXkgZGltZW5zaW9uc1wiKTtcbiAgdmFyIHRhZyA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIHZhciBraW5kID0gdGFnICYgMHhmZlxuICB2YXIgbGF5b3V0ID0gKHRhZyA+PiA4KSAmIDE7XG4gIHZhciBkaW1zID0gW11cbiAgaWYobmFtZSA9PSBcIl9iaWdhcnIwMlwiKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykge1xuICAgICAgdmFyIHNpemVfZGltID0gcmVhZGVyLnJlYWQxNnUoKTtcbiAgICAgIGlmKHNpemVfZGltID09IDB4ZmZmZil7XG4gICAgICAgIHZhciBzaXplX2RpbV9oaSA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgIHZhciBzaXplX2RpbV9sbyA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgIGlmKHNpemVfZGltX2hpICE9IDApXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBiaWdhcnJheSBkaW1lbnNpb24gb3ZlcmZsb3cgaW4gMzJiaXRcIik7XG4gICAgICAgIHNpemVfZGltID0gc2l6ZV9kaW1fbG87XG4gICAgICB9XG4gICAgICBkaW1zLnB1c2goc2l6ZV9kaW0pO1xuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykgZGltcy5wdXNoKHJlYWRlci5yZWFkMzJ1KCkpO1xuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoZGltcyk7XG4gIHZhciBkYXRhID0gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIHNpemUpO1xuICB2YXIgYmEgPSBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkOHMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQxNnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQxNnUoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICB2YXIgc2l4dHkgPSByZWFkZXIucmVhZDh1KCk7XG4gICAgaWYoc2l4dHkpIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogY2Fubm90IHJlYWQgYmlnYXJyYXkgd2l0aCA2NC1iaXQgT0NhbWwgaW50c1wiKTtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OiAvLyAoaW50NjQpXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGludDY0ID0gY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KTtcbiAgICAgIGJhLnNldChpLGludDY0KTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBmID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgYmEuc2V0KGksZik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIHZhciBmID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgYmEuc2V0KGksZik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIHZhciByZSA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIHZhciBpbSA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIGJhLnNldChpLFsyNTQscmUsaW1dKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciByZSA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBpbSA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGJhLnNldChpLFsyNTQscmUsaW1dKTtcbiAgICB9XG4gICAgYnJlYWtcbiAgfVxuICBzelswXSA9ICg0ICsgbnVtX2RpbXMpICogNDtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xufVxuXG4vL0RlcHJlY2F0ZWRcbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX2Zyb21cbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV9mcm9tKGRhdGExLCBkYXRhMiwganN0eXAsIGtpbmQsIGxheW91dCwgZGltcyl7XG4gIGlmKGRhdGEyIHx8IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCkgPT0gMil7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iYV9jcmVhdGVfZnJvbTogdXNlIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcIik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGExKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9oYXNoIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2hhc2hfbWl4X2ludCwgY2FtbF9oYXNoX21peF9mbG9hdFxuZnVuY3Rpb24gY2FtbF9iYV9oYXNoKGJhKXtcbiAgdmFyIG51bV9lbHRzID0gY2FtbF9iYV9nZXRfc2l6ZShiYS5kaW1zKTtcbiAgdmFyIGggPSAwO1xuICBzd2l0Y2goYmEua2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBpZihudW1fZWx0cyA+IDI1NikgbnVtX2VsdHMgPSAyNTY7XG4gICAgdmFyIHcgPSAwLCBpID0wO1xuICAgIGZvcihpID0gMDsgaSArIDQgPD0gYmEuZGF0YS5sZW5ndGg7IGkrPTQpe1xuICAgICAgdyA9IGJhLmRhdGFbaSswXSB8IChiYS5kYXRhW2krMV0gPDwgOCkgfCAoYmEuZGF0YVtpKzJdIDw8IDE2KSB8IChiYS5kYXRhW2krM10gPDwgMjQpO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsdyk7XG4gICAgfVxuICAgIHcgPSAwO1xuICAgIHN3aXRjaCAobnVtX2VsdHMgJiAzKSB7XG4gICAgY2FzZSAzOiB3ICA9IGJhLmRhdGFbaSsyXSA8PCAxNjsgICAgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlIDI6IHcgfD0gYmEuZGF0YVtpKzFdIDw8IDg7ICAgICAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgMTogdyB8PSBiYS5kYXRhW2krMF07XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgaWYobnVtX2VsdHMgPiAxMjgpIG51bV9lbHRzID0gMTI4O1xuICAgIHZhciB3ID0gMCwgaSA9MDtcbiAgICBmb3IoaSA9IDA7IGkgKyAyIDw9IGJhLmRhdGEubGVuZ3RoOyBpKz0yKXtcbiAgICAgIHcgPSBiYS5kYXRhW2krMF0gfCAoYmEuZGF0YVtpKzFdIDw8IDE2KTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLHcpO1xuICAgIH1cbiAgICBpZiAoKG51bV9lbHRzICYgMSkgIT0gMClcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDc6ICAvLyBJbnQzMkFycmF5IChpbnQ2NClcbiAgICBpZiAobnVtX2VsdHMgPiAzMikgbnVtX2VsdHMgPSAzMjtcbiAgICBudW1fZWx0cyAqPSAyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBudW1fZWx0cyAqPTI7IC8qIGZhbGx0aHJvdWdoICovXG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIG51bV9lbHRzICo9MjsgLyogZmFsbHRocm91Z2ggKi9cbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgaWYgKG51bV9lbHRzID4gMzIpIG51bV9lbHRzID0gMzI7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV90b190eXBlZF9hcnJheSBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2JhX3RvX3R5cGVkX2FycmF5KGJhKXtcbiAgcmV0dXJuIGJhLmRhdGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSh0YSl7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgdmFyIGtpbmQ7XG4gIGlmICh0YSBpbnN0YW5jZW9mIGcuRmxvYXQzMkFycmF5KSBraW5kID0gMDtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLkZsb2F0NjRBcnJheSkga2luZCA9IDE7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5JbnQ4QXJyYXkpIGtpbmQgPSAyO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuVWludDhBcnJheSkga2luZCA9IDM7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgZy5JbnQxNkFycmF5KSBraW5kID0gNDtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLlVpbnQxNkFycmF5KSBraW5kID0gNTtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBnLkludDMyQXJyYXkpIGtpbmQgPSA2O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIGcuVWludDMyQXJyYXkpIGtpbmQgPSA2O1xuICBlbHNlIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheTogdW5zdXBwb3J0ZWQga2luZFwiKTtcbiAgcmV0dXJuIGtpbmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5KHRhKXtcbiAgdmFyIGtpbmQgPSBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkodGEpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfdGFnKGEpe1xuICBpZiAodHlwZW9mIGEgPT09IFwibnVtYmVyXCIpIHJldHVybiAxMDAwOyAvLyBpbnRfdGFnICh3ZSB1c2UgaXQgZm9yIGFsbCBudW1iZXJzKVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKGEpKSByZXR1cm4gMjUyOyAvLyBzdHJpbmdfdGFnXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKGEpKSByZXR1cm4gMTI1MjsgLy8gb2NhbWwgc3RyaW5nIChpZiBkaWZmZXJlbnQgZnJvbSBieXRlcylcbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIEFycmF5ICYmIGFbMF0gPT09IChhWzBdPj4+MCkgJiYgYVswXSA8PSAyNTUpIHtcbiAgICAvLyBMb29rIGxpa2UgYW4gb2NhbWwgYmxvY2tcbiAgICB2YXIgdGFnID0gYVswXSB8IDA7XG4gICAgLy8gaWdub3JlIGRvdWJsZV9hcnJheV90YWcgYmVjYXVzZSB3ZSBjYW5ub3QgYWNjdXJhdGVseSBzZXRcbiAgICAvLyB0aGlzIHRhZyB3aGVuIHdlIGNyZWF0ZSBhbiBhcnJheSBvZiBmbG9hdC5cbiAgICByZXR1cm4gKHRhZyA9PSAyNTQpPzA6dGFnXG4gIH1cbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIFN0cmluZykgcmV0dXJuIDEyNTIwOyAvLyBqYXZhc2NyaXB0IHN0cmluZywgbGlrZSBzdHJpbmdfdGFnICgyNTIpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpIHJldHVybiAxMjUyMDsgLy8gamF2YXNjcmlwdCBzdHJpbmcsIGxpa2Ugc3RyaW5nX3RhZyAoMjUyKVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgTnVtYmVyKSByZXR1cm4gMTAwMDsgLy8gaW50X3RhZyAod2UgdXNlIGl0IGZvciBhbGwgbnVtYmVycylcbiAgZWxzZSBpZiAoYSAmJiBhLmNhbWxfY3VzdG9tKSByZXR1cm4gMTI1NTsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKGEgJiYgYS5jb21wYXJlKSByZXR1cm4gMTI1NjsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIDEyNDc7IC8vIGxpa2UgY2xvc3VyZV90YWcgKDI0NylcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJzeW1ib2xcIikgcmV0dXJuIDEyNTE7XG4gIHJldHVybiAxMDAxOyAvL291dF9vZl9oZWFwX3RhZ1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGEpe1xuICByZXR1cm4gY2FtbF9jdXN0b21fb3BzW2EuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1thLmNhbWxfY3VzdG9tXS5jb21wYXJlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbVxuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKG51bSwgY3VzdG9tLCBzd2FwLCB0b3RhbCkge1xuICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShjdXN0b20pO1xuICBpZihjb21wKSB7XG4gICAgdmFyIHggPSAoc3dhcCA+IDApP2NvbXAoY3VzdG9tLG51bSx0b3RhbCk6Y29tcChudW0sY3VzdG9tLHRvdGFsKTtcbiAgICBpZih0b3RhbCAmJiB4ICE9IHgpIHJldHVybiBzd2FwOyAvLyB0b3RhbCAmJiBuYW5cbiAgICBpZigreCAhPSAreCkgcmV0dXJuICt4OyAvLyBuYW5cbiAgICBpZigoeCB8IDApICE9IDApIHJldHVybiAoeCB8IDApOyAvLyAhbmFuXG4gIH1cbiAgcmV0dXJuIHN3YXBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbCAoY29uc3QsIGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfaW50X2NvbXBhcmUsIGNhbWxfc3RyaW5nX2NvbXBhcmUsIGNhbWxfYnl0ZXNfY29tcGFyZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20sIGNhbWxfY29tcGFyZV92YWxfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWwgKGEsIGIsIHRvdGFsKSB7XG4gIHZhciBzdGFjayA9IFtdO1xuICBmb3IoOzspIHtcbiAgICBpZiAoISh0b3RhbCAmJiBhID09PSBiKSkge1xuICAgICAgdmFyIHRhZ19hID0gY2FtbF9jb21wYXJlX3ZhbF90YWcoYSk7XG4gICAgICAvLyBmb3J3YXJkX3RhZyA/XG4gICAgICBpZih0YWdfYSA9PSAyNTApIHsgYSA9IGFbMV07IGNvbnRpbnVlIH1cblxuICAgICAgdmFyIHRhZ19iID0gY2FtbF9jb21wYXJlX3ZhbF90YWcoYik7XG4gICAgICAvLyBmb3J3YXJkX3RhZyA/XG4gICAgICBpZih0YWdfYiA9PSAyNTApIHsgYiA9IGJbMV07IGNvbnRpbnVlIH1cblxuICAgICAgLy8gdGFncyBhcmUgZGlmZmVyZW50XG4gICAgICBpZih0YWdfYSAhPT0gdGFnX2IpIHtcbiAgICAgICAgaWYodGFnX2EgPT0gMTAwMCkge1xuICAgICAgICAgIGlmKHRhZ19iID09IDEyNTUpIHsgLy9pbW1lZGlhdGUgY2FuIGNvbXBhcmUgYWdhaW5zdCBjdXN0b21cbiAgICAgICAgICAgIHJldHVybiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20oYSwgYiwgLTEsIHRvdGFsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYodGFnX2IgPT0gMTAwMCkge1xuICAgICAgICAgIGlmKHRhZ19hID09IDEyNTUpIHsgLy9pbW1lZGlhdGUgY2FuIGNvbXBhcmUgYWdhaW5zdCBjdXN0b21cbiAgICAgICAgICAgIHJldHVybiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20oYiwgYSwgMSwgdG90YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGFnX2EgPCB0YWdfYik/LTE6MTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCh0YWdfYSl7XG4gICAgICAgIC8vIDI0NjogTGF6eV90YWcgaGFuZGxlZCBiZWxsb3dcbiAgICAgIGNhc2UgMjQ3OiAvLyBDbG9zdXJlX3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI0ODogLy8gT2JqZWN0XG4gICAgICAgIHZhciB4ID0gY2FtbF9pbnRfY29tcGFyZShhWzJdLCBiWzJdKTtcbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNDk6IC8vIEluZml4XG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjUwOiAvLyBGb3J3YXJkIHRhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuLCBoYW5kbGVkIGFib3ZlXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRm9yd2FyZF90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUxOiAvL0Fic3RyYWN0XG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBhYnN0cmFjdCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MjogLy8gT0NhbWwgYnl0ZXNcbiAgICAgICAgaWYgKGEgIT09IGIpIHtcbiAgICAgICAgICB2YXIgeCA9IGNhbWxfYnl0ZXNfY29tcGFyZShhLCBiKTtcbiAgICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MzogLy8gRG91YmxlX3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRG91YmxlX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTQ6IC8vIERvdWJsZV9hcnJheV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlbiwgaGFuZGxlZCBhYm92ZVxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IERvdWJsZV9hcnJheV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNTU6IC8vIEN1c3RvbV90YWdcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBDdXN0b21fdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNDc6IC8vIEZ1bmN0aW9uXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjU1OiAvLyBDdXN0b21cbiAgICAgICAgdmFyIGNvbXAgPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYSk7XG4gICAgICAgIGlmKGNvbXAgIT0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGIpKXtcbiAgICAgICAgICByZXR1cm4gKGEuY2FtbF9jdXN0b208Yi5jYW1sX2N1c3RvbSk/LTE6MTtcbiAgICAgICAgfVxuICAgICAgICBpZighY29tcClcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBhYnN0cmFjdCB2YWx1ZVwiKTtcbiAgICAgICAgdmFyIHggPSBjb21wKGEsYix0b3RhbCk7XG4gICAgICAgIGlmKHggIT0geCl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIFVOT1JERVJFRFxuICAgICAgICAgIHJldHVybiB0b3RhbD8tMTp4O1xuICAgICAgICB9XG4gICAgICAgIGlmKHggIT09ICh4fDApKXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjU2OiAvLyBjb21wYXJlIGZ1bmN0aW9uXG4gICAgICAgIHZhciB4ID0gYS5jb21wYXJlKGIsdG90YWwpO1xuICAgICAgICBpZih4ICE9IHgpIHsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgVU5PUkRFUkVEXG4gICAgICAgICAgcmV0dXJuIHRvdGFsPy0xOng7XG4gICAgICAgIH1cbiAgICAgICAgaWYoeCAhPT0gKHh8MCkpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCByZXR1cm4gdmFsdWVcbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEwMDA6IC8vIE51bWJlclxuICAgICAgICBhID0gK2E7XG4gICAgICAgIGIgPSArYjtcbiAgICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChhICE9IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIGlmIChhID09IGEpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChiID09IGIpIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTAwMTogLy8gVGhlIHJlc3RcbiAgICAgICAgLy8gSGVyZSB3ZSBjYW4gYmUgaW4gdGhlIGZvbGxvd2luZyBjYXNlczpcbiAgICAgICAgLy8gMS4gSmF2YVNjcmlwdCBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy8gMi4gSmF2YVNjcmlwdCBvYmplY3QgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy8gMy4gSmF2YVNjcmlwdCBvYmplY3QgdGhhbiBjYW5ub3QgYmUgY29lcmNlZCB0byBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy9cbiAgICAgICAgLy8gKDMpIHdpbGwgcmFpc2UgYSBbVHlwZUVycm9yXVxuICAgICAgICAvLyAoMikgd2lsbCBjb2VyY2UgdG8gcHJpbWl0aXZlIHR5cGVzIHVzaW5nIFt2YWx1ZU9mXSBvciBbdG9TdHJpbmddXG4gICAgICAgIC8vICgyKSBhbmQgKDMpLCBhZnRlciBldmVudHVhbCBjb2VyY2lvblxuICAgICAgICAvLyAtIGlmIGEgYW5kIGIgYXJlIHN0cmluZ3MsIGFwcGx5IGxleGljb2dyYXBoaWMgY29tcGFyaXNvblxuICAgICAgICAvLyAtIGlmIGEgb3IgYiBhcmUgbm90IHN0cmluZ3MsIGNvbnZlcnQgYSBhbmQgYiB0byBudW1iZXJcbiAgICAgICAgLy8gICBhbmQgYXBwbHkgc3RhbmRhcmQgY29tcGFyaXNvblxuICAgICAgICAvL1xuICAgICAgICAvLyBFeGNlcHRpb246IGAhPWAgd2lsbCBub3QgY29lcmNlL2NvbnZlcnQgaWYgYm90aCBhIGFuZCBiIGFyZSBvYmplY3RzXG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICBpZiAoYSAhPSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICBpZiAoYSA9PSBhKSByZXR1cm4gMTtcbiAgICAgICAgICBpZiAoYiA9PSBiKSByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTE6IC8vIEphdmFTY3JpcHQgU3ltYm9sLCBubyBvcmRlcmluZy5cbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTI6IC8vIG9jYW1sIHN0cmluZ3NcbiAgICAgICAgdmFyIGEgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGEpO1xuICAgICAgICB2YXIgYiA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoYik7XG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MjA6IC8vIGphdmFzY3JpcHQgc3RyaW5nc1xuICAgICAgICB2YXIgYSA9IGEudG9TdHJpbmcoKTtcbiAgICAgICAgdmFyIGIgPSBiLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjQ2OiAvLyBMYXp5X3RhZ1xuICAgICAgY2FzZSAyNTQ6IC8vIERvdWJsZV9hcnJheVxuICAgICAgZGVmYXVsdDogLy8gQmxvY2sgd2l0aCBvdGhlciB0YWdcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gKGEubGVuZ3RoIDwgYi5sZW5ndGgpPy0xOjE7XG4gICAgICAgIGlmIChhLmxlbmd0aCA+IDEpIHN0YWNrLnB1c2goYSwgYiwgMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3RhY2subGVuZ3RoID09IDApIHJldHVybiAwO1xuICAgIHZhciBpID0gc3RhY2sucG9wKCk7XG4gICAgYiA9IHN0YWNrLnBvcCgpO1xuICAgIGEgPSBzdGFjay5wb3AoKTtcbiAgICBpZiAoaSArIDEgPCBhLmxlbmd0aCkgc3RhY2sucHVzaChhLCBiLCBpICsgMSk7XG4gICAgYSA9IGFbaV07XG4gICAgYiA9IGJbaV07XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9jb21wYXJlIChhLCBiKSB7IHJldHVybiBjYW1sX2NvbXBhcmVfdmFsIChhLCBiLCB0cnVlKTsgfVxuLy9Qcm92aWRlczogY2FtbF9pbnRfY29tcGFyZSBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2ludF9jb21wYXJlIChhLCBiKSB7XG4gIGlmIChhIDwgYikgcmV0dXJuICgtMSk7IGlmIChhID09IGIpIHJldHVybiAwOyByZXR1cm4gMTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9lcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPT0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ub3RlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgIT0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JlYXRlcmVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZ3JlYXRlcmVxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA+PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ncmVhdGVydGhhbiBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2dyZWF0ZXJ0aGFuICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA+IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xlc3NlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2xlc3NlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPD0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbGVzc3RoYW4gbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9sZXNzdGhhbiAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPCAwKTsgfVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ29weXJpZ2h0IChjKSAyMDE3IEluaGFiaXRlZCBUeXBlIExMQy5cblxuICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cbiAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnNcbiAgICBhcmUgbWV0OlxuXG4gICAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG5cbiAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGVcbiAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG4gICAgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgaGlzIGNvbnRyaWJ1dG9yc1xuICAgICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZVxuICAgICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxuXG4gICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1NcbiAgICBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICAgIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAgICBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1JcbiAgICBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMXG4gICAgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFNcbiAgICBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTilcbiAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsXG4gICAgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOXG4gICAgQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFXG4gICAgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzXG5mdW5jdGlvbiBiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzKHNyYywgc3JjX29mZiwgZHN0LCBkc3Rfb2ZmLCBsZW4pIHtcbiAgcmV0dXJuIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMoc3JjLHNyY19vZmYsZHN0LGRzdF9vZmYsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfYmxpdF90b19iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nKHNyYywgc3JjX29mZiwgZHN0LCBkc3Rfb2ZmLCBsZW4pIHtcbiAgcmV0dXJuIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmEoc3JjLCBzcmNfb2ZmLCBkc3QsIGRzdF9vZmYsIGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmFcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlcyhzcmMsIHNyY19vZmYsIGRzdCwgZHN0X29mZiwgbGVuKSB7XG4gIHJldHVybiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYShzcmMsIHNyY19vZmYsIGRzdCwgZHN0X29mZiwgbGVuKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfbWVtY21wX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMSwgY2FtbF9pbnRfY29tcGFyZVxuZnVuY3Rpb24gYmlnc3RyaW5nYWZfbWVtY21wX2JpZ3N0cmluZyhiYTEsIGJhMV9vZmYsIGJhMiwgYmEyX29mZiwgbGVuKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGNhbWxfaW50X2NvbXBhcmUoY2FtbF9iYV9nZXRfMShiYTEsIGJhMV9vZmYgKyBpKSwgY2FtbF9iYV9nZXRfMShiYTIsIGJhMl9vZmYgKyBpKSk7XG4gICAgaWYgKGMgIT0gMCkgcmV0dXJuIGNcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMSwgY2FtbF9pbnRfY29tcGFyZSwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuZnVuY3Rpb24gYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZyhiYSwgYmFfb2ZmLCBzdHIsIHN0cl9vZmYsIGxlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGMgPSBjYW1sX2ludF9jb21wYXJlKGNhbWxfYmFfZ2V0XzEoYmEsIGJhX29mZiArIGkpLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHN0ciwgc3RyX29mZiArIGkpKTtcbiAgICBpZiAoYyAhPSAwKSByZXR1cm4gY1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdhZl9tZW1jaHJcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGJpZ3N0cmluZ2FmX21lbWNocihiYSwgYmFfb2ZmLCBjaHIsIGxlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGNhbWxfYmFfZ2V0XzEoYmEsIGJhX29mZiArIGkpID09IGNocikge1xuICAgICAgcmV0dXJuIChiYV9vZmYgKyBpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgbGlicmFyeVxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEpzbGliXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfcHVyZV9leHByIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX3B1cmVfZXhwciAoZikgeyByZXR1cm4gZigpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfc2V0IChtdXRhYmxlLCBjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3NldChvLGYsdikgeyBvW2ZdPXY7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2dldCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2dldChvLGYpIHsgcmV0dXJuIG9bZl07IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZGVsZXRlIChtdXRhYmxlLCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZGVsZXRlKG8sZikgeyBkZWxldGUgb1tmXTsgcmV0dXJuIDB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaW5zdGFuY2VvZiAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19pbnN0YW5jZW9mKG8sYykgeyByZXR1cm4gKG8gaW5zdGFuY2VvZiBjKSA/IDEgOiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdHlwZW9mIChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdHlwZW9mKG8pIHsgcmV0dXJuIHR5cGVvZiBvOyB9XG5cbi8vUHJvdmlkZXM6Y2FtbF90cmFtcG9saW5lXG5mdW5jdGlvbiBjYW1sX3RyYW1wb2xpbmUocmVzKSB7XG4gIHZhciBjID0gMTtcbiAgd2hpbGUocmVzICYmIHJlcy5qb29fdHJhbXApe1xuICAgIHJlcyA9IHJlcy5qb29fdHJhbXAuYXBwbHkobnVsbCwgcmVzLmpvb19hcmdzKTtcbiAgICBjKys7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczpjYW1sX3RyYW1wb2xpbmVfcmV0dXJuXG5mdW5jdGlvbiBjYW1sX3RyYW1wb2xpbmVfcmV0dXJuKGYsYXJncykge1xuICByZXR1cm4ge2pvb190cmFtcDpmLGpvb19hcmdzOmFyZ3N9O1xufVxuXG4vL1Byb3ZpZGVzOiBqc19wcmludF9zdGRvdXQgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBqc19wcmludF9zdGRvdXQocykge1xuICB2YXIgcyA9IGNhbWxfdXRmMTZfb2ZfdXRmOChzKTtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICBpZiAoZy5wcm9jZXNzICYmIGcucHJvY2Vzcy5zdGRvdXQgJiYgZy5wcm9jZXNzLnN0ZG91dC53cml0ZSkge1xuICAgIGcucHJvY2Vzcy5zdGRvdXQud3JpdGUocylcbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgb3V0cHV0IHRoZSBsYXN0IFxcbiBpZiBwcmVzZW50XG4gICAgLy8gYXMgY29uc29sZSBsb2dnaW5nIGRpc3BsYXkgYSBuZXdsaW5lIGF0IHRoZSBlbmRcbiAgICBpZihzLmNoYXJDb2RlQXQocy5sZW5ndGggLSAxKSA9PSAxMClcbiAgICAgIHMgPSBzLnN1YnN0cigwLHMubGVuZ3RoIC0gMSApO1xuICAgIHZhciB2ID0gZy5jb25zb2xlO1xuICAgIHYgICYmIHYubG9nICYmIHYubG9nKHMpO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBqc19wcmludF9zdGRlcnIgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBqc19wcmludF9zdGRlcnIocykge1xuICB2YXIgcyA9IGNhbWxfdXRmMTZfb2ZfdXRmOChzKTtcbiAgdmFyIGcgPSBnbG9iYWxUaGlzO1xuICBpZiAoZy5wcm9jZXNzICYmIGcucHJvY2Vzcy5zdGRvdXQgJiYgZy5wcm9jZXNzLnN0ZG91dC53cml0ZSkge1xuICAgIGcucHJvY2Vzcy5zdGRlcnIud3JpdGUocylcbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgb3V0cHV0IHRoZSBsYXN0IFxcbiBpZiBwcmVzZW50XG4gICAgLy8gYXMgY29uc29sZSBsb2dnaW5nIGRpc3BsYXkgYSBuZXdsaW5lIGF0IHRoZSBlbmRcbiAgICBpZihzLmNoYXJDb2RlQXQocy5sZW5ndGggLSAxKSA9PSAxMClcbiAgICAgIHMgPSBzLnN1YnN0cigwLHMubGVuZ3RoIC0gMSApO1xuICAgIHZhciB2ID0gZy5jb25zb2xlO1xuICAgIHYgJiYgdi5lcnJvciAmJiB2LmVycm9yKHMpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfanNcbmZ1bmN0aW9uIGNhbWxfaXNfanMoKSB7XG4gIHJldHVybiAxO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dyYXBfZXhjZXB0aW9uIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcsY2FtbF9uYW1lZF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9yZXR1cm5fZXhuX2NvbnN0YW50XG5mdW5jdGlvbiBjYW1sX3dyYXBfZXhjZXB0aW9uKGUpIHtcbiAgaWYoZSBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gZTtcbiAgLy9TdGFja19vdmVyZmxvdzogY2hyb21lLCBzYWZhcmlcbiAgaWYoZ2xvYmFsVGhpcy5SYW5nZUVycm9yXG4gICAgICYmIGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLlJhbmdlRXJyb3JcbiAgICAgJiYgZS5tZXNzYWdlXG4gICAgICYmIGUubWVzc2FnZS5tYXRjaCgvbWF4aW11bSBjYWxsIHN0YWNrL2kpKVxuICAgIHJldHVybiBjYW1sX3JldHVybl9leG5fY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5TdGFja19vdmVyZmxvdyk7XG4gIC8vU3RhY2tfb3ZlcmZsb3c6IGZpcmVmb3hcbiAgaWYoZ2xvYmFsVGhpcy5JbnRlcm5hbEVycm9yXG4gICAgICYmIGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkludGVybmFsRXJyb3JcbiAgICAgJiYgZS5tZXNzYWdlXG4gICAgICYmIGUubWVzc2FnZS5tYXRjaCgvdG9vIG11Y2ggcmVjdXJzaW9uL2kpKVxuICAgIHJldHVybiBjYW1sX3JldHVybl9leG5fY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5TdGFja19vdmVyZmxvdyk7XG4gIC8vV3JhcCBFcnJvciBpbiBKcy5FcnJvciBleGNlcHRpb25cbiAgaWYoZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRXJyb3IgJiYgY2FtbF9uYW1lZF92YWx1ZShcImpzRXJyb3JcIikpXG4gICAgcmV0dXJuIFswLGNhbWxfbmFtZWRfdmFsdWUoXCJqc0Vycm9yXCIpLGVdO1xuICAvL2ZhbGxiYWNrOiB3cmFwcGVkIGluIEZhaWx1cmVcbiAgcmV0dXJuIFswLGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSxjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoU3RyaW5nKGUpKV07XG59XG5cbi8vIEV4cGVyaW1lbnRhbFxuLy9Qcm92aWRlczogY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlKGV4biwgZm9yY2UpIHtcbiAgLy9uZXZlciByZXJhaXNlIGZvciBjb25zdGFudCBleG5cbiAgaWYoIWV4bi5qc19lcnJvciB8fCBmb3JjZSB8fCBleG5bMF0gPT0gMjQ4KSBleG4uanNfZXJyb3IgPSBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIkpzIGV4Y2VwdGlvbiBjb250YWluaW5nIGJhY2t0cmFjZVwiKTtcbiAgcmV0dXJuIGV4bjtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBbMCwgZXhuLmpzX2Vycm9yXTsgfVxuICByZXR1cm4gMDtcbn1cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9ib29sKHgpIHsgcmV0dXJuICEheDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc190b19ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYm9vbCh4KSB7IHJldHVybiAreDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9mbG9hdCh4KSB7IHJldHVybiB4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fZmxvYXQoeCkgeyByZXR1cm4geDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fYXJyYXkgbXV0YWJsZSAoc2hhbGxvdylcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9hcnJheShhKSB7XG4gIHJldHVybiBhLnNsaWNlKDEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc190b19hcnJheSBtdXRhYmxlIChzaGFsbG93KVxuZnVuY3Rpb24gY2FtbF9qc190b19hcnJheShhKSB7XG4gIHZhciBsZW4gPSBhLmxlbmd0aDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKzEpO1xuICBiWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxsZW47aSsrKSBiW2krMV0gPSBhW2ldO1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9saXN0X29mX2pzX2FycmF5IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfbGlzdF9vZl9qc19hcnJheShhKXtcbiAgdmFyIGwgPSAwO1xuICBmb3IodmFyIGk9YS5sZW5ndGggLSAxOyBpPj0wOyBpLS0pe1xuICAgIHZhciBlID0gYVtpXTtcbiAgICBsID0gWzAsZSxsXTtcbiAgfVxuICByZXR1cm4gbFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xpc3RfdG9fanNfYXJyYXkgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9saXN0X3RvX2pzX2FycmF5KGwpe1xuICB2YXIgYSA9IFtdO1xuICBmb3IoOyBsICE9PSAwOyBsID0gbFsyXSkge1xuICAgIGEucHVzaChsWzFdKTtcbiAgfVxuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc192YXIgbXV0YWJsZSAoY29uc3QpXG4vL1JlcXVpcmVzOiBqc19wcmludF9zdGRlcnJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX3Zhcih4KSB7XG4gIHZhciB4ID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoeCk7XG4gIC8vQ2hlY2tzIHRoYXQgeCBoYXMgdGhlIGZvcm0gaWRlbnRbLmlkZW50XSpcbiAgaWYoIXgubWF0Y2goL15bYS16QS1aXyRdW2EtekEtWl8kMC05XSooXFwuW2EtekEtWl8kXVthLXpBLVpfJDAtOV0qKSokLykpe1xuICAgIGpzX3ByaW50X3N0ZGVycihcImNhbWxfanNfdmFyOiBcXFwiXCIgKyB4ICsgXCJcXFwiIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgdmFyaWFibGUuIGNvbnRpbnVpbmcgLi5cIik7XG4gICAgLy9nbG9iYWxUaGlzLmNvbnNvbGUuZXJyb3IoXCJKcy5VbnNhZmUuZXZhbF9zdHJpbmdcIilcbiAgfVxuICByZXR1cm4gZXZhbCh4KTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfY2FsbCAoY29uc3QsIG11dGFibGUsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfY2FsbChmLCBvLCBhcmdzKSB7IHJldHVybiBmLmFwcGx5KG8sIGNhbWxfanNfZnJvbV9hcnJheShhcmdzKSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnVuX2NhbGwgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX2Z1bl9jYWxsKGYsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDE6IHJldHVybiBmKCk7XG4gIGNhc2UgMjogcmV0dXJuIGYgKGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBmIChhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIGNhc2UgODogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdLGFbN10pO1xuICB9XG4gIHJldHVybiBmLmFwcGx5KG51bGwsIGNhbWxfanNfZnJvbV9hcnJheShhKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX21ldGhfY2FsbCAobXV0YWJsZSwgY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX21ldGhfY2FsbChvLCBmLCBhcmdzKSB7XG4gIHJldHVybiBvW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGYpXS5hcHBseShvLCBjYW1sX2pzX2Zyb21fYXJyYXkoYXJncykpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19uZXcgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX25ldyhjLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAxOiByZXR1cm4gbmV3IGM7XG4gIGNhc2UgMjogcmV0dXJuIG5ldyBjIChhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIGNhc2UgODogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSxhWzddKTtcbiAgfVxuICBmdW5jdGlvbiBGKCkgeyByZXR1cm4gYy5hcHBseSh0aGlzLCBjYW1sX2pzX2Zyb21fYXJyYXkoYSkpOyB9XG4gIEYucHJvdG90eXBlID0gYy5wcm90b3R5cGU7XG4gIHJldHVybiBuZXcgRjtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfb2pzX25ld19hcnIgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX29qc19uZXdfYXJyKGMsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDA6IHJldHVybiBuZXcgYztcbiAgY2FzZSAxOiByZXR1cm4gbmV3IGMgKGFbMF0pO1xuICBjYXNlIDI6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICB9XG4gIGZ1bmN0aW9uIEYoKSB7IHJldHVybiBjLmFwcGx5KHRoaXMsIGEpOyB9XG4gIEYucHJvdG90eXBlID0gYy5wcm90b3R5cGU7XG4gIHJldHVybiBuZXcgRjtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFjayBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2soZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGlmKGxlbiA+IDApe1xuICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBhcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgW3VuZGVmaW5lZF0pO1xuICAgIH1cbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBbYXJnc10pO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0KGFyaXR5LCBmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGlmKG4gPT0gYXJpdHkgJiYgZi5sZW5ndGggPT0gYXJpdHkpIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJpdHkpO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoLCBhcml0eSlcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpO1xuICB9O1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2sgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2soZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbiArIDEpO1xuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLGFyZ3MpO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZixbdGhpcyxhcmdzXSk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0KGFyaXR5LCBmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJpdHkgKyAxKTtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aCwgYXJpdHkpXG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpO1xuICB9O1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZShmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuICsgMSk7XG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3MpOyB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2VxdWFscyBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2VxdWFscyAoeCwgeSkgeyByZXR1cm4gKyh4ID09IHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXZhbF9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXZhbF9zdHJpbmcgKHMpIHtyZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2V4cHIgKGNvbnN0KVxuLy9SZXF1aXJlczoganNfcHJpbnRfc3RkZXJyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19leHByKHMpIHtcbiAganNfcHJpbnRfc3RkZXJyKFwiY2FtbF9qc19leHByOiBmYWxsYmFjayB0byBydW50aW1lIGV2YWx1YXRpb25cXG5cIik7XG4gIHJldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcHVyZV9qc19leHByIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGpzX3ByaW50X3N0ZGVyclxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcHVyZV9qc19leHByIChzKXtcbiAganNfcHJpbnRfc3RkZXJyKFwiY2FtbF9wdXJlX2pzX2V4cHI6IGZhbGxiYWNrIHRvIHJ1bnRpbWUgZXZhbHVhdGlvblxcblwiKTtcbiAgcmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9qc19vYmplY3QgKG9iamVjdF9saXRlcmFsKVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfb2JqZWN0IChhKSB7XG4gIHZhciBvID0ge307XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwID0gYVtpXTtcbiAgICBvW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHBbMV0pXSA9IHBbMl07XG4gIH1cbiAgcmV0dXJuIG87XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdGl2ZSBDYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICovXG4vKiAgZW4gQXV0b21hdGlxdWUuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkICAgICovXG4vKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpdGggICAgICovXG4vKiAgdGhlIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgLi4vTElDRU5TRS4gICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qICRJZDogcGFyc2luZy5jIDg5ODMgMjAwOC0wOC0wNiAwOTozODoyNVogeGxlcm95ICQgKi9cblxuLyogVGhlIFBEQSBhdXRvbWF0b24gZm9yIHBhcnNlcnMgZ2VuZXJhdGVkIGJ5IGNhbWx5YWNjICovXG5cbi8qIFRoZSBwdXNoZG93biBhdXRvbWF0YSAqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9sZXhfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZW5naW5lKHRhYmxlcywgZW52LCBjbWQsIGFyZylcbntcbiAgdmFyIEVSUkNPREUgPSAyNTY7XG5cbiAgLy92YXIgU1RBUlQgPSAwO1xuICAvL3ZhciBUT0tFTl9SRUFEID0gMTtcbiAgLy92YXIgU1RBQ0tTX0dST1dOXzEgPSAyO1xuICAvL3ZhciBTVEFDS1NfR1JPV05fMiA9IDM7XG4gIC8vdmFyIFNFTUFOVElDX0FDVElPTl9DT01QVVRFRCA9IDQ7XG4gIC8vdmFyIEVSUk9SX0RFVEVDVEVEID0gNTtcbiAgdmFyIGxvb3AgPSA2O1xuICB2YXIgdGVzdHNoaWZ0ID0gNztcbiAgdmFyIHNoaWZ0ID0gODtcbiAgdmFyIHNoaWZ0X3JlY292ZXIgPSA5O1xuICB2YXIgcmVkdWNlID0gMTA7XG5cbiAgdmFyIFJFQURfVE9LRU4gPSAwO1xuICB2YXIgUkFJU0VfUEFSU0VfRVJST1IgPSAxO1xuICB2YXIgR1JPV19TVEFDS1NfMSA9IDI7XG4gIHZhciBHUk9XX1NUQUNLU18yID0gMztcbiAgdmFyIENPTVBVVEVfU0VNQU5USUNfQUNUSU9OID0gNDtcbiAgdmFyIENBTExfRVJST1JfRlVOQ1RJT04gPSA1O1xuXG4gIHZhciBlbnZfc19zdGFjayA9IDE7XG4gIHZhciBlbnZfdl9zdGFjayA9IDI7XG4gIHZhciBlbnZfc3ltYl9zdGFydF9zdGFjayA9IDM7XG4gIHZhciBlbnZfc3ltYl9lbmRfc3RhY2sgPSA0O1xuICB2YXIgZW52X3N0YWNrc2l6ZSA9IDU7XG4gIHZhciBlbnZfc3RhY2tiYXNlID0gNjtcbiAgdmFyIGVudl9jdXJyX2NoYXIgPSA3O1xuICB2YXIgZW52X2x2YWwgPSA4O1xuICB2YXIgZW52X3N5bWJfc3RhcnQgPSA5O1xuICB2YXIgZW52X3N5bWJfZW5kID0gMTA7XG4gIHZhciBlbnZfYXNwID0gMTE7XG4gIHZhciBlbnZfcnVsZV9sZW4gPSAxMjtcbiAgdmFyIGVudl9ydWxlX251bWJlciA9IDEzO1xuICB2YXIgZW52X3NwID0gMTQ7XG4gIHZhciBlbnZfc3RhdGUgPSAxNTtcbiAgdmFyIGVudl9lcnJmbGFnID0gMTY7XG5cbiAgLy8gdmFyIF90YmxfYWN0aW9ucyA9IDE7XG4gIHZhciB0YmxfdHJhbnNsX2NvbnN0ID0gMjtcbiAgdmFyIHRibF90cmFuc2xfYmxvY2sgPSAzO1xuICB2YXIgdGJsX2xocyA9IDQ7XG4gIHZhciB0YmxfbGVuID0gNTtcbiAgdmFyIHRibF9kZWZyZWQgPSA2O1xuICB2YXIgdGJsX2Rnb3RvID0gNztcbiAgdmFyIHRibF9zaW5kZXggPSA4O1xuICB2YXIgdGJsX3JpbmRleCA9IDk7XG4gIHZhciB0YmxfZ2luZGV4ID0gMTA7XG4gIHZhciB0YmxfdGFibGVzaXplID0gMTE7XG4gIHZhciB0YmxfdGFibGUgPSAxMjtcbiAgdmFyIHRibF9jaGVjayA9IDEzO1xuICAvLyB2YXIgX3RibF9lcnJvcl9mdW5jdGlvbiA9IDE0O1xuICAvLyB2YXIgX3RibF9uYW1lc19jb25zdCA9IDE1O1xuICAvLyB2YXIgX3RibF9uYW1lc19ibG9jayA9IDE2O1xuXG4gIGlmICghdGFibGVzLmRnb3RvKSB7XG4gICAgdGFibGVzLmRlZnJlZCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2RlZnJlZF0pO1xuICAgIHRhYmxlcy5zaW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9zaW5kZXhdKTtcbiAgICB0YWJsZXMuY2hlY2sgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfY2hlY2tdKTtcbiAgICB0YWJsZXMucmluZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfcmluZGV4XSk7XG4gICAgdGFibGVzLnRhYmxlICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3RhYmxlXSk7XG4gICAgdGFibGVzLmxlbiAgICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2xlbl0pO1xuICAgIHRhYmxlcy5saHMgICAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9saHNdKTtcbiAgICB0YWJsZXMuZ2luZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZ2luZGV4XSk7XG4gICAgdGFibGVzLmRnb3RvICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2Rnb3RvXSk7XG4gIH1cblxuICB2YXIgcmVzID0gMCwgbiwgbjEsIG4yLCBzdGF0ZTE7XG5cbiAgLy8gUkVTVE9SRVxuICB2YXIgc3AgPSBlbnZbZW52X3NwXTtcbiAgdmFyIHN0YXRlID0gZW52W2Vudl9zdGF0ZV07XG4gIHZhciBlcnJmbGFnID0gZW52W2Vudl9lcnJmbGFnXTtcblxuICBleGl0OmZvciAoOzspIHtcbiAgICBzd2l0Y2goY21kKSB7XG4gICAgY2FzZSAwOi8vU1RBUlQ6XG4gICAgICBzdGF0ZSA9IDA7XG4gICAgICBlcnJmbGFnID0gMDtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuXG4gICAgY2FzZSA2Oi8vbG9vcDpcbiAgICAgIG4gPSB0YWJsZXMuZGVmcmVkW3N0YXRlXTtcbiAgICAgIGlmIChuICE9IDApIHsgY21kID0gcmVkdWNlOyBicmVhazsgfVxuICAgICAgaWYgKGVudltlbnZfY3Vycl9jaGFyXSA+PSAwKSB7IGNtZCA9IHRlc3RzaGlmdDsgYnJlYWs7IH1cbiAgICAgIHJlcyA9IFJFQURfVE9LRU47XG4gICAgICBicmVhayBleGl0O1xuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIGxleGVyIGFuZCB1cGRhdGVzICovXG4gICAgICAvKiBzeW1iX3N0YXJ0IGFuZCBzeW1iX2VuZCAqL1xuICAgIGNhc2UgMTovL1RPS0VOX1JFQUQ6XG4gICAgICBpZiAoYXJnIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gdGFibGVzW3RibF90cmFuc2xfYmxvY2tdW2FyZ1swXSArIDFdO1xuICAgICAgICBlbnZbZW52X2x2YWxdID0gYXJnWzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gdGFibGVzW3RibF90cmFuc2xfY29uc3RdW2FyZyArIDFdO1xuICAgICAgICBlbnZbZW52X2x2YWxdID0gMDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuXG4gICAgY2FzZSA3Oi8vdGVzdHNoaWZ0OlxuICAgICAgbjEgPSB0YWJsZXMuc2luZGV4W3N0YXRlXTtcbiAgICAgIG4yID0gbjEgKyBlbnZbZW52X2N1cnJfY2hhcl07XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gZW52W2Vudl9jdXJyX2NoYXJdKSB7XG4gICAgICAgIGNtZCA9IHNoaWZ0OyBicmVhaztcbiAgICAgIH1cbiAgICAgIG4xID0gdGFibGVzLnJpbmRleFtzdGF0ZV07XG4gICAgICBuMiA9IG4xICsgZW52W2Vudl9jdXJyX2NoYXJdO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IGVudltlbnZfY3Vycl9jaGFyXSkge1xuICAgICAgICBuID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgICAgY21kID0gcmVkdWNlOyBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJmbGFnIDw9IDApIHtcbiAgICAgICAgcmVzID0gQ0FMTF9FUlJPUl9GVU5DVElPTjtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIGVycm9yIGZ1bmN0aW9uICovXG4gICAgY2FzZSA1Oi8vRVJST1JfREVURUNURUQ6XG4gICAgICBpZiAoZXJyZmxhZyA8IDMpIHtcbiAgICAgICAgZXJyZmxhZyA9IDM7XG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICBzdGF0ZTEgPSBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV07XG4gICAgICAgICAgbjEgPSB0YWJsZXMuc2luZGV4W3N0YXRlMV07XG4gICAgICAgICAgbjIgPSBuMSArIEVSUkNPREU7XG4gICAgICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBFUlJDT0RFKSB7XG4gICAgICAgICAgICBjbWQgPSBzaGlmdF9yZWNvdmVyOyBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNwIDw9IGVudltlbnZfc3RhY2tiYXNlXSkgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SO1xuICAgICAgICAgICAgLyogVGhlIE1MIGNvZGUgcmFpc2VzIFBhcnNlX2Vycm9yICovXG4gICAgICAgICAgICBzcC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVudltlbnZfY3Vycl9jaGFyXSA9PSAwKSByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgICAgIC8qIFRoZSBNTCBjb2RlIHJhaXNlcyBQYXJzZV9lcnJvciAqL1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSAtMTtcbiAgICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDg6Ly9zaGlmdDpcbiAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IC0xO1xuICAgICAgaWYgKGVycmZsYWcgPiAwKSBlcnJmbGFnLS07XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDk6Ly9zaGlmdF9yZWNvdmVyOlxuICAgICAgc3RhdGUgPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgc3ArKztcbiAgICAgIGlmIChzcCA+PSBlbnZbZW52X3N0YWNrc2l6ZV0pIHtcbiAgICAgICAgcmVzID0gR1JPV19TVEFDS1NfMTtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgcmVzaXplcyB0aGUgc3RhY2tzICovXG4gICAgY2FzZSAyOi8vU1RBQ0tTX0dST1dOXzE6XG4gICAgICBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV0gPSBzdGF0ZTtcbiAgICAgIGVudltlbnZfdl9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfbHZhbF07XG4gICAgICBlbnZbZW52X3N5bWJfc3RhcnRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfc3RhcnRdO1xuICAgICAgZW52W2Vudl9zeW1iX2VuZF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRdO1xuICAgICAgY21kID0gbG9vcDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAxMDovL3JlZHVjZTpcbiAgICAgIHZhciBtID0gdGFibGVzLmxlbltuXTtcbiAgICAgIGVudltlbnZfYXNwXSA9IHNwO1xuICAgICAgZW52W2Vudl9ydWxlX251bWJlcl0gPSBuO1xuICAgICAgZW52W2Vudl9ydWxlX2xlbl0gPSBtO1xuICAgICAgc3AgPSBzcCAtIG0gKyAxO1xuICAgICAgbSA9IHRhYmxlcy5saHNbbl07XG4gICAgICBzdGF0ZTEgPSBlbnZbZW52X3Nfc3RhY2tdW3NwXTtcbiAgICAgIG4xID0gdGFibGVzLmdpbmRleFttXTtcbiAgICAgIG4yID0gbjEgKyBzdGF0ZTE7XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gc3RhdGUxKVxuICAgICAgICBzdGF0ZSA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICBlbHNlXG4gICAgICAgIHN0YXRlID0gdGFibGVzLmRnb3RvW21dO1xuICAgICAgaWYgKHNwID49IGVudltlbnZfc3RhY2tzaXplXSkge1xuICAgICAgICByZXMgPSBHUk9XX1NUQUNLU18yO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSByZXNpemVzIHRoZSBzdGFja3MgKi9cbiAgICBjYXNlIDM6Ly9TVEFDS1NfR1JPV05fMjpcbiAgICAgIHJlcyA9IENPTVBVVEVfU0VNQU5USUNfQUNUSU9OO1xuICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBzZW1hbnRpYyBhY3Rpb24gKi9cbiAgICBjYXNlIDQ6Ly9TRU1BTlRJQ19BQ1RJT05fQ09NUFVURUQ6XG4gICAgICBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV0gPSBzdGF0ZTtcbiAgICAgIGVudltlbnZfdl9zdGFja11bc3AgKyAxXSA9IGFyZztcbiAgICAgIHZhciBhc3AgPSBlbnZbZW52X2FzcF07XG4gICAgICBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF9zdGFja11bYXNwICsgMV07XG4gICAgICBpZiAoc3AgPiBhc3ApIHtcbiAgICAgICAgLyogVGhpcyBpcyBhbiBlcHNpbG9uIHByb2R1Y3Rpb24uIFRha2Ugc3ltYl9zdGFydCBlcXVhbCB0byBzeW1iX2VuZC4gKi9cbiAgICAgICAgZW52W2Vudl9zeW1iX3N0YXJ0X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF9zdGFja11bYXNwICsgMV07XG4gICAgICB9XG4gICAgICBjbWQgPSBsb29wOyBicmVhaztcbiAgICAgIC8qIFNob3VsZCBub3QgaGFwcGVuICovXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjtcbiAgICB9XG4gIH1cbiAgLy8gU0FWRVxuICBlbnZbZW52X3NwXSA9IHNwO1xuICBlbnZbZW52X3N0YXRlXSA9IHN0YXRlO1xuICBlbnZbZW52X2VycmZsYWddID0gZXJyZmxhZztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zZXRfcGFyc2VyX3RyYWNlIGNvbnN0XG4vL0R1bW15IGZ1bmN0aW9uIVxuZnVuY3Rpb24gY2FtbF9zZXRfcGFyc2VyX3RyYWNlKCkgeyByZXR1cm4gMDsgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfaW50IGNvbnN0IChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZywgY2FtbF9zdHJfcmVwZWF0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9pbnQoZm10LCBpKSB7XG4gIGlmIChjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCkgPT0gXCIlZFwiKSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiK2kpO1xuICB2YXIgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIGlmIChpIDwgMCkgeyBpZiAoZi5zaWduZWRjb252KSB7IGYuc2lnbiA9IC0xOyBpID0gLWk7IH0gZWxzZSBpID4+Pj0gMDsgfVxuICB2YXIgcyA9IGkudG9TdHJpbmcoZi5iYXNlKTtcbiAgaWYgKGYucHJlYyA+PSAwKSB7XG4gICAgZi5maWxsZXIgPSAnICc7XG4gICAgdmFyIG4gPSBmLnByZWMgLSBzLmxlbmd0aDtcbiAgICBpZiAobiA+IDApIHMgPSBjYW1sX3N0cl9yZXBlYXQgKG4sICcwJykgKyBzO1xuICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2Vcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKSB7XG4gIHZhciBpID0gMCwgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpLCBiYXNlID0gMTAsIHNpZ24gPSAxO1xuICBpZiAobGVuID4gMCkge1xuICAgIHN3aXRjaCAoY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLGkpKSB7XG4gICAgY2FzZSA0NTogaSsrOyBzaWduID0gLTE7IGJyZWFrO1xuICAgIGNhc2UgNDM6IGkrKzsgc2lnbiA9IDE7IGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoaSArIDEgPCBsZW4gJiYgY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKSA9PSA0OClcbiAgICBzd2l0Y2ggKGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSArIDEpKSB7XG4gICAgY2FzZSAxMjA6IGNhc2UgODg6IGJhc2UgPSAxNjsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlIDExMTogY2FzZSA3OTogYmFzZSA9ICA4OyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgIDk4OiBjYXNlIDY2OiBiYXNlID0gIDI7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAxMTc6IGNhc2UgODU6IGkgKz0gMjsgYnJlYWs7XG4gICAgfVxuICByZXR1cm4gW2ksIHNpZ24sIGJhc2VdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2RpZ2l0XG5mdW5jdGlvbiBjYW1sX3BhcnNlX2RpZ2l0KGMpIHtcbiAgaWYgKGMgPj0gNDggJiYgYyA8PSA1NykgIHJldHVybiBjIC0gNDg7XG4gIGlmIChjID49IDY1ICYmIGMgPD0gOTApICByZXR1cm4gYyAtIDU1O1xuICBpZiAoYyA+PSA5NyAmJiBjIDw9IDEyMikgcmV0dXJuIGMgLSA4NztcbiAgcmV0dXJuIC0xO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludF9vZl9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UsIGNhbWxfcGFyc2VfZGlnaXQsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfaW50X29mX3N0cmluZyAocykge1xuICB2YXIgciA9IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocyk7XG4gIHZhciBpID0gclswXSwgc2lnbiA9IHJbMV0sIGJhc2UgPSByWzJdO1xuICB2YXIgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpO1xuICB2YXIgdGhyZXNob2xkID0gLTEgPj4+IDA7XG4gIHZhciBjID0gKGkgPCBsZW4pP2NhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk6MDtcbiAgdmFyIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgdmFyIHJlcyA9IGQ7XG4gIGZvciAoaSsrO2k8bGVuO2krKykge1xuICAgIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICAgIGlmIChjID09IDk1KSBjb250aW51ZTtcbiAgICBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBicmVhaztcbiAgICByZXMgPSBiYXNlICogcmVzICsgZDtcbiAgICBpZiAocmVzID4gdGhyZXNob2xkKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgfVxuICBpZiAoaSAhPSBsZW4pIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICAvLyBGb3IgYmFzZSBkaWZmZXJlbnQgZnJvbSAxMCwgd2UgZXhwZWN0IGFuIHVuc2lnbmVkIHJlcHJlc2VudGF0aW9uLFxuICAvLyBoZW5jZSBhbnkgdmFsdWUgb2YgJ3JlcycgKGxlc3MgdGhhbiAndGhyZXNob2xkJykgaXMgYWNjZXB0YWJsZS5cbiAgLy8gQnV0IHdlIGhhdmUgdG8gY29udmVydCB0aGUgcmVzdWx0IGJhY2sgdG8gYSBzaWduZWQgaW50ZWdlci5cbiAgcmVzID0gc2lnbiAqIHJlcztcbiAgaWYgKChiYXNlID09IDEwKSAmJiAoKHJlcyB8IDApICE9IHJlcykpXG4gICAgLyogU2lnbmVkIHJlcHJlc2VudGF0aW9uIGV4cGVjdGVkLCBhbGxvdyAtMl4obmJpdHMtMSkgdG8gMl4obmJpdHMtMSkgLSAxICovXG4gICAgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHJldHVybiByZXMgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX211bCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tdWwoYSxiKXtcbiAgcmV0dXJuIE1hdGguaW11bChhLGIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2RpdlxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gY2FtbF9kaXYoeCx5KSB7XG4gIGlmICh5ID09IDApIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHJldHVybiAoeC95KXwwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21vZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gY2FtbF9tb2QoeCx5KSB7XG4gIGlmICh5ID09IDApIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHJldHVybiB4JXk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnN3YXAxNlxuZnVuY3Rpb24gY2FtbF9ic3dhcDE2KHgpIHtcbiAgcmV0dXJuICgoKCh4ICYgMHgwMEZGKSA8PCA4KSB8XG4gICAgICAgICAgICgoeCAmIDB4RkYwMCkgPj4gOCkpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfYnN3YXBcbmZ1bmN0aW9uIGNhbWxfaW50MzJfYnN3YXAoeCkge1xuICByZXR1cm4gKCgoeCAmIDB4MDAwMDAwRkYpIDw8IDI0KSB8XG4gICAgICAgICAgKCh4ICYgMHgwMDAwRkYwMCkgPDwgOCkgfFxuICAgICAgICAgICgoeCAmIDB4MDBGRjAwMDApID4+PiA4KSB8XG4gICAgICAgICAgKCh4ICYgMHhGRjAwMDAwMCkgPj4+IDI0KSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Jzd2FwXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X2Jzd2FwKHgpIHtcbiAgdmFyIHkgPSBjYW1sX2ludDY0X3RvX2J5dGVzKHgpO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhbeVs3XSwgeVs2XSwgeVs1XSwgeVs0XSwgeVszXSwgeVsyXSwgeVsxXSwgeVswXV0pO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBIYXNodGJsXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF91bml2X3BhcmFtIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9oYXNoX3VuaXZfcGFyYW0gKGNvdW50LCBsaW1pdCwgb2JqKSB7XG4gIHZhciBoYXNoX2FjY3UgPSAwO1xuICBmdW5jdGlvbiBoYXNoX2F1eCAob2JqKSB7XG4gICAgbGltaXQgLS07XG4gICAgaWYgKGNvdW50IDwgMCB8fCBsaW1pdCA8IDApIHJldHVybjtcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXkgJiYgb2JqWzBdID09PSAob2JqWzBdfDApKSB7XG4gICAgICBzd2l0Y2ggKG9ialswXSkge1xuICAgICAgY2FzZSAyNDg6XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBjb3VudCAtLTtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgb2JqWzJdKSB8IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTA6XG4gICAgICAgIC8vIEZvcndhcmRcbiAgICAgICAgbGltaXQrKzsgaGFzaF9hdXgob2JqKTsgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb3VudCAtLTtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgb2JqWzBdKSB8IDA7XG4gICAgICAgIGZvciAodmFyIGkgPSBvYmoubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgaGFzaF9hdXggKG9ialtpXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKG9iaikpIHtcbiAgICAgIGNvdW50IC0tO1xuICAgICAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQob2JqKTtcbiAgICAgIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKSB7XG5cdGZvciAodmFyIGIgPSBjb250ZW50LCBsID0gYi5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgICAgfSBlbHNlIHsgLyogQVJSQVkgKi9cbiAgICAgICAgZm9yICh2YXIgYSA9IGNvbnRlbnQsIGwgPSBhLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYVtpXSkgfCAwO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcob2JqKSkge1xuICAgICAgdmFyIGpzYnl0ZXMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG9iaik7XG4gICAgICBmb3IgKHZhciBiID0ganNieXRlcywgbCA9IGpzYnl0ZXMubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBmb3IgKHZhciBiID0gb2JqLCBsID0gb2JqLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgIH0gZWxzZSBpZiAob2JqID09PSAob2JqfDApKSB7XG4gICAgICAvLyBJbnRlZ2VyXG4gICAgICBjb3VudCAtLTtcbiAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIG9iaikgfCAwO1xuICAgIH0gZWxzZSBpZiAob2JqID09PSArb2JqKSB7XG4gICAgICAvLyBGbG9hdFxuICAgICAgY291bnQtLTtcbiAgICAgIHZhciBwID0gY2FtbF9pbnQ2NF90b19ieXRlcyAoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0IChvYmopKTtcbiAgICAgIGZvciAodmFyIGkgPSA3OyBpID49IDA7IGktLSkgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgcFtpXSkgfCAwO1xuICAgIH0gZWxzZSBpZihvYmogJiYgb2JqLmNhbWxfY3VzdG9tKSB7XG4gICAgICBpZihjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXS5oYXNoKSB7XG4gICAgICAgIHZhciBoID0gY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0uaGFzaChvYmopIHwgMDtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgaCkgfCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBoYXNoX2F1eCAob2JqKTtcbiAgcmV0dXJuIGhhc2hfYWNjdSAmIDB4M0ZGRkZGRkY7XG59XG5cbi8vZnVuY3Rpb24gUk9UTDMyKHgsbikgeyByZXR1cm4gKCh4IDw8IG4pIHwgKHggPj4+ICgzMi1uKSkpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ludFxuLy9SZXF1aXJlczogY2FtbF9tdWxcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfaW50KGgsZCkge1xuICBkID0gY2FtbF9tdWwoZCwgMHhjYzllMmQ1MXwwKTtcbiAgZCA9ICgoZCA8PCAxNSkgfCAoZCA+Pj4gKDMyLTE1KSkpOyAvLyBST1RMMzIoZCwgMTUpO1xuICBkID0gY2FtbF9tdWwoZCwgMHgxYjg3MzU5Myk7XG4gIGggXj0gZDtcbiAgaCA9ICgoaCA8PCAxMykgfCAoaCA+Pj4gKDMyLTEzKSkpOyAgIC8vUk9UTDMyKGgsIDEzKTtcbiAgcmV0dXJuICgoKGggKyAoaCA8PCAyKSl8MCkgKyAoMHhlNjU0NmI2NHwwKSl8MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9maW5hbFxuLy9SZXF1aXJlczogY2FtbF9tdWxcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfZmluYWwoaCkge1xuICBoIF49IGggPj4+IDE2O1xuICBoID0gY2FtbF9tdWwgKGgsIDB4ODVlYmNhNmJ8MCk7XG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPSBjYW1sX211bCAoaCwgMHhjMmIyYWUzNXwwKTtcbiAgaCBePSBoID4+PiAxNjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfZmxvYXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9oYXNoX21peF9pbnQ2NFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9mbG9hdCAoaCwgdjApIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfaW50NjQoaCwgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0ICh2MCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9pbnQ2NFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfbG8zMiwgY2FtbF9pbnQ2NF9oaTMyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ludDY0IChoLCB2KSB7XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBjYW1sX2ludDY0X2xvMzIodikpO1xuICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgY2FtbF9pbnQ2NF9oaTMyKHYpKTtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBzKSB7XG4gIHZhciBsZW4gPSBzLmxlbmd0aCwgaSwgdztcbiAgZm9yIChpID0gMDsgaSArIDQgPD0gbGVuOyBpICs9IDQpIHtcbiAgICB3ID0gcy5jaGFyQ29kZUF0KGkpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCA4KVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMikgPDwgMTYpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSszKSA8PCAyNCk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICB9XG4gIHcgPSAwO1xuICBzd2l0Y2ggKGxlbiAmIDMpIHtcbiAgY2FzZSAzOiB3ICA9IHMuY2hhckNvZGVBdChpKzIpIDw8IDE2O1xuICBjYXNlIDI6IHcgfD0gcy5jaGFyQ29kZUF0KGkrMSkgPDwgODtcbiAgY2FzZSAxOlxuICAgIHcgfD0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgZGVmYXVsdDpcbiAgfVxuICBoIF49IGxlbjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCwgcykge1xuICB2YXIgbGVuID0gcy5sZW5ndGgsIGksIHc7XG4gIGZvciAoaSA9IDA7IGkgKyA0IDw9IGxlbjsgaSArPSA0KSB7XG4gICAgdyA9IHNbaV1cbiAgICAgIHwgKHNbaSsxXSA8PCA4KVxuICAgICAgfCAoc1tpKzJdIDw8IDE2KVxuICAgICAgfCAoc1tpKzNdIDw8IDI0KTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIH1cbiAgdyA9IDA7XG4gIHN3aXRjaCAobGVuICYgMykge1xuICBjYXNlIDM6IHcgID0gc1tpKzJdIDw8IDE2O1xuICBjYXNlIDI6IHcgfD0gc1tpKzFdIDw8IDg7XG4gIGNhc2UgMTogdyB8PSBzW2ldO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgZGVmYXVsdDpcbiAgfVxuICBoIF49IGxlbjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9ieXRlcyhoLCB2KSB7XG4gIHZhciBjb250ZW50ID0gY2FtbF9tbF9ieXRlc19jb250ZW50KHYpO1xuICBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIilcbiAgICByZXR1cm4gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIGNvbnRlbnQpXG4gIGVsc2UgLyogQVJSQVkgKi9cbiAgICByZXR1cm4gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCwgY29udGVudCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfc3RyaW5nKGgsIHYpIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHYpKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2ggbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50LCBjYW1sX2hhc2hfbWl4X2ZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2Zsb2F0LCBjYW1sX2hhc2hfbWl4X3N0cmluZywgY2FtbF9oYXNoX21peF9ieXRlcywgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaGFzaCAoY291bnQsIGxpbWl0LCBzZWVkLCBvYmopIHtcbiAgdmFyIHF1ZXVlLCByZCwgd3IsIHN6LCBudW0sIGgsIHYsIGksIGxlbjtcbiAgc3ogPSBsaW1pdDtcbiAgaWYgKHN6IDwgMCB8fCBzeiA+IDI1Nikgc3ogPSAyNTY7XG4gIG51bSA9IGNvdW50O1xuICBoID0gc2VlZDtcbiAgcXVldWUgPSBbb2JqXTsgcmQgPSAwOyB3ciA9IDE7XG4gIHdoaWxlIChyZCA8IHdyICYmIG51bSA+IDApIHtcbiAgICB2ID0gcXVldWVbcmQrK107XG4gICAgaWYgKHYgJiYgdi5jYW1sX2N1c3RvbSl7XG4gICAgICBpZihjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dLmhhc2gpIHtcbiAgICAgICAgdmFyIGhoID0gY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dLmhhc2godik7XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludCAoaCwgaGgpO1xuICAgICAgICBudW0gLS07XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSAmJiB2WzBdID09PSAodlswXXwwKSkge1xuICAgICAgc3dpdGNoICh2WzBdKSB7XG4gICAgICBjYXNlIDI0ODpcbiAgICAgICAgLy8gT2JqZWN0XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB2WzJdKTtcbiAgICAgICAgbnVtLS07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTA6XG4gICAgICAgIC8vIEZvcndhcmRcbiAgICAgICAgcXVldWVbLS1yZF0gPSB2WzFdO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHZhciB0YWcgPSAoKHYubGVuZ3RoIC0gMSkgPDwgMTApIHwgdlswXTtcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHRhZyk7XG4gICAgICAgIGZvciAoaSA9IDEsIGxlbiA9IHYubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBpZiAod3IgPj0gc3opIGJyZWFrO1xuICAgICAgICAgIHF1ZXVlW3dyKytdID0gdltpXTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXModikpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2J5dGVzKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcodikpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X3N0cmluZyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodiA9PT0gKHZ8MCkpIHtcbiAgICAgIC8vIEludGVnZXJcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB2K3YrMSk7XG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHYgPT09ICt2KSB7XG4gICAgICAvLyBGbG9hdFxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCx2KTtcbiAgICAgIG51bS0tO1xuICAgIH1cbiAgfVxuICBoID0gY2FtbF9oYXNoX21peF9maW5hbChoKTtcbiAgcmV0dXJuIGggJiAweDNGRkZGRkZGO1xufVxuIiwiLy8vLy8vLy8vIEJJR1NUUklOR1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYmlnc3RyaW5nKGgsIGJzKSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLGJzLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIG11dGFibGVcbmZ1bmN0aW9uIGJpZ3N0cmluZ190b19hcnJheV9idWZmZXIoYnMpIHtcbiAgcmV0dXJuIGJzLmRhdGEuYnVmZmVyXG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ190b190eXBlZF9hcnJheSBtdXRhYmxlXG5mdW5jdGlvbiBiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkoYnMpIHtcbiAgcmV0dXJuIGJzLmRhdGFcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXIoYWIpIHtcbiAgdmFyIHRhID0gbmV3IGdsb2JhbFRoaXMuVWludDhBcnJheShhYik7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoMTIsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheShiYSkge1xuICB2YXIgdGEgPSBuZXcgZ2xvYmFsVGhpcy5VaW50OEFycmF5KGJhLmJ1ZmZlciwgYmEuYnl0ZU9mZnNldCwgYmEubGVuZ3RoICogYmEuQllURVNfUEVSX0VMRU1FTlQpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKDEyLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19tZW1jbXBcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX21lbWNtcChzMSwgcG9zMSwgczIsIHBvczIsIGxlbil7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYSA9IGNhbWxfYmFfZ2V0XzEoczEscG9zMSArIGkpO1xuICAgIHZhciBiID0gY2FtbF9iYV9nZXRfMShzMixwb3MyICsgaSk7XG4gICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhKGJhMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTEua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMxID0gYmExLm9mZnNldChwb3MxKTtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihvZnMxICsgbGVuID4gYmExLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGJhMS5kYXRhLnN1YmFycmF5KG9mczEsb2ZzMStsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2UscG9zMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhKHN0cjEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihwb3MxICsgbGVuID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHN0cjEpKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gY2FtbF9hcnJheV9vZl9zdHJpbmcoc3RyMSkuc2xpY2UocG9zMSxwb3MxICsgbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLG9mczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfYXJyYXlfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhKHN0cjEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihwb3MxICsgbGVuID4gY2FtbF9tbF9ieXRlc19sZW5ndGgoc3RyMSkpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBjYW1sX2FycmF5X29mX2J5dGVzKHN0cjEpLnNsaWNlKHBvczEscG9zMSArIGxlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxvZnMyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzKGJhMSwgcG9zMSwgYnl0ZXMyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTEua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMSA9IGJhMS5vZmZzZXQocG9zMSk7XG4gIGlmKG9mczEgKyBsZW4gPiBiYTEuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihwb3MyICsgbGVuID4gY2FtbF9tbF9ieXRlc19sZW5ndGgoYnl0ZXMyKSl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGJhMS5kYXRhLnNsaWNlKG9mczEsIG9mczErbGVuKTtcbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoc2xpY2UpLCAwLCBieXRlczIsIHBvczIsIGxlbik7XG4gIHJldHVybiAwXG59XG4iLCIvLyBKc19vZl9vY2FtbCBsaWJyYXJ5XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSnNsaWI6IGNvZGUgc3BlY2lmaWMgdG8gSnNfb2Zfb2NhbWxcblxuLy9Qcm92aWRlczogY2FtbF9qc19vbl9pZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19vbl9pZSAoKSB7XG4gIHZhciB1YSA9XG4gICAgICBnbG9iYWxUaGlzLm5hdmlnYXRvcj9nbG9iYWxUaGlzLm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtcbiAgcmV0dXJuIHVhLmluZGV4T2YoXCJNU0lFXCIpICE9IC0xICYmIHVhLmluZGV4T2YoXCJPcGVyYVwiKSAhPSAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2h0bWxfZXNjYXBlIGNvbnN0IChjb25zdClcbnZhciBjYW1sX2pzX3JlZ2V4cHMgPSB7IGFtcDovJi9nLCBsdDovPC9nLCBxdW90Oi9cXFwiL2csIGFsbDovWyY8XFxcIl0vIH07XG5mdW5jdGlvbiBjYW1sX2pzX2h0bWxfZXNjYXBlIChzKSB7XG4gIGlmICghY2FtbF9qc19yZWdleHBzLmFsbC50ZXN0KHMpKSByZXR1cm4gcztcbiAgcmV0dXJuIHMucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMuYW1wLCBcIiZhbXA7XCIpXG4gICAgLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLmx0LCBcIiZsdDtcIilcbiAgICAucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMucXVvdCwgXCImcXVvdDtcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaHRtbF9lbnRpdGllc1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9qc19odG1sX2VudGl0aWVzKHMpIHtcbiAgdmFyIGVudGl0eSA9IC9eJiM/WzAtOWEtekEtWl0rOyQvXG4gIGlmKHMubWF0Y2goZW50aXR5KSlcbiAge1xuICAgIHZhciBzdHIsIHRlbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgdGVtcC5pbm5lckhUTUw9IHM7XG4gICAgc3RyPSB0ZW1wLnRleHRDb250ZW50IHx8IHRlbXAuaW5uZXJUZXh0O1xuICAgIHRlbXA9bnVsbDtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGVsc2Uge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJJbnZhbGlkIGVudGl0eSBcIiArIHMpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZ2V0X2NvbnNvbGUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfanNfZ2V0X2NvbnNvbGUgKCkge1xuICB2YXIgYyA9IGdsb2JhbFRoaXMuY29uc29sZT9nbG9iYWxUaGlzLmNvbnNvbGU6e307XG4gIHZhciBtID0gW1wibG9nXCIsIFwiZGVidWdcIiwgXCJpbmZvXCIsIFwid2FyblwiLCBcImVycm9yXCIsIFwiYXNzZXJ0XCIsIFwiZGlyXCIsIFwiZGlyeG1sXCIsXG4gICAgICAgICAgIFwidHJhY2VcIiwgXCJncm91cFwiLCBcImdyb3VwQ29sbGFwc2VkXCIsIFwiZ3JvdXBFbmRcIiwgXCJ0aW1lXCIsIFwidGltZUVuZFwiXTtcbiAgZnVuY3Rpb24gZiAoKSB7fVxuICBmb3IgKHZhciBpID0gMDsgaSA8IG0ubGVuZ3RoOyBpKyspIGlmICghY1ttW2ldXSkgY1ttW2ldXT1mO1xuICByZXR1cm4gYztcbn1cblxuLy9Qcm92aWRlczogY2FtbF94bWxodHRwcmVxdWVzdF9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vV2Vha2RlZlxuZnVuY3Rpb24gY2FtbF94bWxodHRwcmVxdWVzdF9jcmVhdGUodW5pdCl7XG4gIHZhciBnID0gZ2xvYmFsVGhpcztcbiAgaWYodHlwZW9mIGcuWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnLlhNTEh0dHBSZXF1ZXN0IH0gY2F0Y2ggKGUpIHsgfTtcbiAgfVxuICBpZih0eXBlb2YgZy5hY3RpdmVYT2JqZWN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7IHJldHVybiBuZXcgZy5hY3RpdmVYT2JqZWN0KFwiTXN4bWwyLlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGcuYWN0aXZlWE9iamVjdChcIk1zeG1sMy5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnLmFjdGl2ZVhPYmplY3QoXCJNaWNyb3NvZnQuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICB9XG4gIGNhbWxfZmFpbHdpdGgoXCJDYW5ub3QgY3JlYXRlIGEgWE1MSHR0cFJlcXVlc3RcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBleG4uanNfZXJyb3I7IH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VwZGF0ZV9kdW1teVxuZnVuY3Rpb24gY2FtbF91cGRhdGVfZHVtbXkgKHgsIHkpIHtcbiAgaWYoIHR5cGVvZiB5PT09XCJmdW5jdGlvblwiICkgeyB4LmZ1biA9IHk7IHJldHVybiAwOyB9XG4gIGlmKCB5LmZ1biApIHsgeC5mdW4gPSB5LmZ1bjsgcmV0dXJuIDA7IH1cbiAgdmFyIGkgPSB5Lmxlbmd0aDsgd2hpbGUgKGktLSkgeFtpXSA9IHlbaV07IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9pc19ibG9jayBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9pc19ibG9jayAoeCkgeyByZXR1cm4gKyh4IGluc3RhbmNlb2YgQXJyYXkpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX2lzX21sX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9vYmpfdGFnICh4KSB7XG4gIGlmICgoeCBpbnN0YW5jZW9mIEFycmF5KSAmJiB4WzBdID09ICh4WzBdID4+PiAwKSlcbiAgICByZXR1cm4geFswXVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHgpKVxuICAgIHJldHVybiAyNTJcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcoeCkpXG4gICAgcmV0dXJuIDI1MlxuICBlbHNlIGlmICgoeCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fCB0eXBlb2YgeCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgcmV0dXJuIDI0N1xuICBlbHNlIGlmICh4ICYmIHguY2FtbF9jdXN0b20pXG4gICAgcmV0dXJuIDI1NVxuICBlbHNlXG4gICAgcmV0dXJuIDEwMDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfc2V0X3RhZyAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9zZXRfdGFnICh4LCB0YWcpIHsgeFswXSA9IHRhZzsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2Jsb2NrIGNvbnN0IChjb25zdCxjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2Jsb2NrICh0YWcsIHNpemUpIHtcbiAgdmFyIG8gPSBuZXcgQXJyYXkoc2l6ZSsxKTtcbiAgb1swXT10YWc7XG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IHNpemU7IGkrKykgb1tpXSA9IDA7XG4gIHJldHVybiBvO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial93aXRoX3RhZ1xuZnVuY3Rpb24gY2FtbF9vYmpfd2l0aF90YWcodGFnLHgpIHtcbiAgdmFyIGwgPSB4Lmxlbmd0aDtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSB0YWc7XG4gIGZvcih2YXIgaSA9IDE7IGkgPCBsOyBpKysgKSBhW2ldID0geFtpXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2R1cCBtdXRhYmxlIChjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2R1cCAoeCkge1xuICB2YXIgbCA9IHgubGVuZ3RoO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGw7IGkrKyApIGFbaV0gPSB4W2ldO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdHJ1bmNhdGUgKG11dGFibGUsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX29ial90cnVuY2F0ZSAoeCwgcykge1xuICBpZiAoczw9MCB8fCBzICsgMSA+IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJPYmoudHJ1bmNhdGVcIik7XG4gIGlmICh4Lmxlbmd0aCAhPSBzICsgMSkgeC5sZW5ndGggPSBzICsgMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX21ha2VfZm9yd2FyZFxuZnVuY3Rpb24gY2FtbF9vYmpfbWFrZV9mb3J3YXJkIChiLHYpIHtcbiAgYlswXT0yNTA7XG4gIGJbMV09djtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X21ha2VfZm9yd2FyZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2xhenlfbWFrZV9mb3J3YXJkICh2KSB7IHJldHVybiBbMjUwLCB2XTsgfVxuXG4vLy8vLy8vLy8vLy8vIENhbWxpbnRlcm5hbE9PXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9wdWJsaWNfbWV0aG9kIGNvbnN0XG52YXIgY2FtbF9tZXRob2RfY2FjaGUgPSBbXTtcbmZ1bmN0aW9uIGNhbWxfZ2V0X3B1YmxpY19tZXRob2QgKG9iaiwgdGFnLCBjYWNoZWlkKSB7XG4gIHZhciBtZXRocyA9IG9ialsxXTtcbiAgdmFyIG9mcyA9IGNhbWxfbWV0aG9kX2NhY2hlW2NhY2hlaWRdO1xuICBpZiAob2ZzID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGlzIG5vdCBzcGFyc2VcbiAgICBmb3IgKHZhciBpID0gY2FtbF9tZXRob2RfY2FjaGUubGVuZ3RoOyBpIDwgY2FjaGVpZDsgaSsrKVxuICAgICAgY2FtbF9tZXRob2RfY2FjaGVbaV0gPSAwO1xuICB9IGVsc2UgaWYgKG1ldGhzW29mc10gPT09IHRhZykge1xuICAgIHJldHVybiBtZXRoc1tvZnMgLSAxXTtcbiAgfVxuICB2YXIgbGkgPSAzLCBoaSA9IG1ldGhzWzFdICogMiArIDEsIG1pO1xuICB3aGlsZSAobGkgPCBoaSkge1xuICAgIG1pID0gKChsaStoaSkgPj4gMSkgfCAxO1xuICAgIGlmICh0YWcgPCBtZXRoc1ttaSsxXSkgaGkgPSBtaS0yO1xuICAgIGVsc2UgbGkgPSBtaTtcbiAgfVxuICBjYW1sX21ldGhvZF9jYWNoZVtjYWNoZWlkXSA9IGxpICsgMTtcbiAgLyogcmV0dXJuIDAgaWYgdGFnIGlzIG5vdCB0aGVyZSAqL1xuICByZXR1cm4gKHRhZyA9PSBtZXRoc1tsaSsxXSA/IG1ldGhzW2xpXSA6IDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29vX2xhc3RfaWRcbnZhciBjYW1sX29vX2xhc3RfaWQgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9vb19pZFxuLy9SZXF1aXJlczogY2FtbF9vb19sYXN0X2lkXG5mdW5jdGlvbiBjYW1sX3NldF9vb19pZCAoYikge1xuICBiWzJdPWNhbWxfb29fbGFzdF9pZCsrO1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mcmVzaF9vb19pZCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9vb19sYXN0X2lkXG5mdW5jdGlvbiBjYW1sX2ZyZXNoX29vX2lkKCkge1xuICByZXR1cm4gY2FtbF9vb19sYXN0X2lkKys7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3Jhd19maWVsZFxuZnVuY3Rpb24gY2FtbF9vYmpfcmF3X2ZpZWxkKG8saSkgeyByZXR1cm4gb1tpKzFdIH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfc2V0X3Jhd19maWVsZFxuZnVuY3Rpb24gY2FtbF9vYmpfc2V0X3Jhd19maWVsZChvLGksdikgeyByZXR1cm4gb1tpKzFdID0gdiB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3JlYWNoYWJsZV93b3Jkc1xuZnVuY3Rpb24gY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzKG8pIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfYWRkX29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9vYmpfYWRkX29mZnNldCh2LG9mZnNldCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiT2JqLmFkZF9vZmZzZXQgaXMgbm90IHN1cHBvcnRlZFwiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2JhY2t0cmFjZV9zdGF0dXMgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UgKCkgeyByZXR1cm4gWzBdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfcmVjb3JkX2JhY2t0cmFjZSAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UgKCkgeyByZXR1cm4gWzBdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCgpIHsgcmV0dXJuIDAgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZV9zbG90OiBpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfcmVzdG9yZV9yYXdfYmFja3RyYWNlKGV4biwgYnQpIHsgcmV0dXJuIDAgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2sgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrICgpIHsgcmV0dXJuIFswXTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90KCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XCIpO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RpdmUgQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAqL1xuLyogIGVuIEF1dG9tYXRpcXVlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCAgICAqL1xuLyogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aXRoICAgICAqL1xuLyogIHRoZSBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIC4uL0xJQ0VOU0UuICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiAkSWQ6IGxleGluZy5jIDYwNDUgMjAwNC0wMS0wMSAxNjo0Mjo0M1ogZG9saWdleiAkICovXG5cbi8qIFRoZSB0YWJsZS1kcml2ZW4gYXV0b21hdG9uIGZvciBsZXhlcnMgZ2VuZXJhdGVkIGJ5IGNhbWxsZXguICovXG5cbi8vUHJvdmlkZXM6IGNhbWxfbGV4X2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2xleF9hcnJheShzKSB7XG4gIHMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpO1xuICB2YXIgbCA9IHMubGVuZ3RoIC8gMjtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgIGFbaV0gPSAocy5jaGFyQ29kZUF0KDIgKiBpKSB8IChzLmNoYXJDb2RlQXQoMiAqIGkgKyAxKSA8PCA4KSkgPDwgMTYgPj4gMTY7XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xleF9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfbGV4X2FycmF5LCBjYW1sX2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xleF9lbmdpbmUodGJsLCBzdGFydF9zdGF0ZSwgbGV4YnVmKSB7XG4gIHZhciBsZXhfYnVmZmVyID0gMjtcbiAgdmFyIGxleF9idWZmZXJfbGVuID0gMztcbiAgdmFyIGxleF9zdGFydF9wb3MgPSA1O1xuICB2YXIgbGV4X2N1cnJfcG9zID0gNjtcbiAgdmFyIGxleF9sYXN0X3BvcyA9IDc7XG4gIHZhciBsZXhfbGFzdF9hY3Rpb24gPSA4O1xuICB2YXIgbGV4X2VvZl9yZWFjaGVkID0gOTtcbiAgdmFyIGxleF9iYXNlID0gMTtcbiAgdmFyIGxleF9iYWNrdHJrID0gMjtcbiAgdmFyIGxleF9kZWZhdWx0ID0gMztcbiAgdmFyIGxleF90cmFucyA9IDQ7XG4gIHZhciBsZXhfY2hlY2sgPSA1O1xuXG4gIGlmICghdGJsLmxleF9kZWZhdWx0KSB7XG4gICAgdGJsLmxleF9iYXNlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV0pO1xuICAgIHRibC5sZXhfYmFja3RyayA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtdKTtcbiAgICB0YmwubGV4X2NoZWNrID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja10pO1xuICAgIHRibC5sZXhfdHJhbnMgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0ID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF0pO1xuICB9XG5cbiAgdmFyIGMsIHN0YXRlID0gc3RhcnRfc3RhdGU7XG5cbiAgdmFyIGJ1ZmZlciA9IGNhbWxfYXJyYXlfb2ZfYnl0ZXMobGV4YnVmW2xleF9idWZmZXJdKTtcblxuICBpZiAoc3RhdGUgPj0gMCkge1xuICAgIC8qIEZpcnN0IGVudHJ5ICovXG4gICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X3N0YXJ0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IC0xO1xuICB9IGVsc2Uge1xuICAgIC8qIFJlZW50cnkgYWZ0ZXIgcmVmaWxsICovXG4gICAgc3RhdGUgPSAtc3RhdGUgLSAxO1xuICB9XG4gIGZvcig7Oykge1xuICAgIC8qIExvb2t1cCBiYXNlIGFkZHJlc3Mgb3IgYWN0aW9uIG51bWJlciBmb3IgY3VycmVudCBzdGF0ZSAqL1xuICAgIHZhciBiYXNlID0gdGJsLmxleF9iYXNlW3N0YXRlXTtcbiAgICBpZiAoYmFzZSA8IDApIHJldHVybiAtYmFzZS0xO1xuICAgIC8qIFNlZSBpZiBpdCdzIGEgYmFja3RyYWNrIHBvaW50ICovXG4gICAgdmFyIGJhY2t0cmsgPSB0YmwubGV4X2JhY2t0cmtbc3RhdGVdO1xuICAgIGlmIChiYWNrdHJrID49IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IGJhY2t0cms7XG4gICAgfVxuICAgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgcmVmaWxsICovXG4gICAgaWYgKGxleGJ1ZltsZXhfY3Vycl9wb3NdID49IGxleGJ1ZltsZXhfYnVmZmVyX2xlbl0pe1xuICAgICAgaWYgKGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID09IDApXG4gICAgICAgIHJldHVybiAtc3RhdGUgLSAxO1xuICAgICAgZWxzZVxuICAgICAgICBjID0gMjU2O1xuICAgIH1lbHNle1xuICAgICAgLyogUmVhZCBuZXh0IGlucHV0IGNoYXIgKi9cbiAgICAgIGMgPSBidWZmZXJbbGV4YnVmW2xleF9jdXJyX3Bvc11dO1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gKys7XG4gICAgfVxuICAgIC8qIERldGVybWluZSBuZXh0IHN0YXRlICovXG4gICAgaWYgKHRibC5sZXhfY2hlY2tbYmFzZSArIGNdID09IHN0YXRlKVxuICAgICAgc3RhdGUgPSB0YmwubGV4X3RyYW5zW2Jhc2UgKyBjXTtcbiAgICBlbHNlXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfZGVmYXVsdFtzdGF0ZV07XG4gICAgLyogSWYgbm8gdHJhbnNpdGlvbiBvbiB0aGlzIGNoYXIsIHJldHVybiB0byBsYXN0IGJhY2t0cmFjayBwb2ludCAqL1xuICAgIGlmIChzdGF0ZSA8IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdID0gbGV4YnVmW2xleF9sYXN0X3Bvc107XG4gICAgICBpZiAobGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPT0gLTEpXG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJsZXhpbmc6IGVtcHR5IHRva2VuXCIpO1xuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gbGV4YnVmW2xleF9sYXN0X2FjdGlvbl07XG4gICAgfWVsc2V7XG4gICAgICAvKiBFcmFzZSB0aGUgRU9GIGNvbmRpdGlvbiBvbmx5IGlmIHRoZSBFT0YgcHNldWRvLWNoYXJhY3RlciB3YXNcbiAgICAgICAgIGNvbnN1bWVkIGJ5IHRoZSBhdXRvbWF0b24gKGkuZS4gdGhlcmUgd2FzIG5vIGJhY2t0cmFjayBhYm92ZSlcbiAgICAgICovXG4gICAgICBpZiAoYyA9PSAyNTYpIGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID0gMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTmV3IGxleGVyIGVuZ2luZSwgd2l0aCBtZW1vcnkgb2YgcG9zaXRpb25zICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX25ld19sZXhfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2xleF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9sZXhfcnVuX21lbShzLCBpLCBtZW0sIGN1cnJfcG9zKSB7XG4gIGZvciAoOzspIHtcbiAgICB2YXIgZHN0ID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKGRzdCA9PSAweGZmKSByZXR1cm47XG4gICAgdmFyIHNyYyA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChzcmMgPT0gMHhmZilcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBjdXJyX3BvcztcbiAgICBlbHNlXG4gICAgICBtZW0gW2RzdCArIDFdID0gbWVtIFtzcmMgKyAxXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW1sX2xleF9ydW5fdGFnKHMsIGksIG1lbSkge1xuICBmb3IgKDs7KSB7XG4gICAgdmFyIGRzdCA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChkc3QgPT0gMHhmZikgcmV0dXJuIDtcbiAgICB2YXIgc3JjID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKHNyYyA9PSAweGZmKVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IC0xO1xuICAgIGVsc2VcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBtZW0gW3NyYyArIDFdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbWxfbmV3X2xleF9lbmdpbmUodGJsLCBzdGFydF9zdGF0ZSwgbGV4YnVmKSB7XG4gIHZhciBsZXhfYnVmZmVyID0gMjtcbiAgdmFyIGxleF9idWZmZXJfbGVuID0gMztcbiAgdmFyIGxleF9zdGFydF9wb3MgPSA1O1xuICB2YXIgbGV4X2N1cnJfcG9zID0gNjtcbiAgdmFyIGxleF9sYXN0X3BvcyA9IDc7XG4gIHZhciBsZXhfbGFzdF9hY3Rpb24gPSA4O1xuICB2YXIgbGV4X2VvZl9yZWFjaGVkID0gOTtcbiAgdmFyIGxleF9tZW0gPSAxMDtcbiAgdmFyIGxleF9iYXNlID0gMTtcbiAgdmFyIGxleF9iYWNrdHJrID0gMjtcbiAgdmFyIGxleF9kZWZhdWx0ID0gMztcbiAgdmFyIGxleF90cmFucyA9IDQ7XG4gIHZhciBsZXhfY2hlY2sgPSA1O1xuICB2YXIgbGV4X2Jhc2VfY29kZSA9IDY7XG4gIHZhciBsZXhfYmFja3Rya19jb2RlID0gNztcbiAgdmFyIGxleF9kZWZhdWx0X2NvZGUgPSA4O1xuICB2YXIgbGV4X3RyYW5zX2NvZGUgPSA5O1xuICB2YXIgbGV4X2NoZWNrX2NvZGUgPSAxMDtcbiAgdmFyIGxleF9jb2RlID0gMTE7XG5cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHQpIHtcbiAgICB0YmwubGV4X2Jhc2UgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya10pO1xuICAgIHRibC5sZXhfY2hlY2sgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrXSk7XG4gICAgdGJsLmxleF90cmFucyA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNdKTtcbiAgICB0YmwubGV4X2RlZmF1bHQgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0XSk7XG4gIH1cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHRfY29kZSkge1xuICAgIHRibC5sZXhfYmFzZV9jb2RlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV9jb2RlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrX2NvZGUgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrX2NvZGVdKTtcbiAgICB0YmwubGV4X2NoZWNrX2NvZGUgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrX2NvZGVdKTtcbiAgICB0YmwubGV4X3RyYW5zX2NvZGUgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zX2NvZGVdKTtcbiAgICB0YmwubGV4X2RlZmF1bHRfY29kZSA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRfY29kZV0pO1xuICB9XG4gIGlmICh0YmwubGV4X2NvZGUgPT0gbnVsbCkgdGJsLmxleF9jb2RlID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyh0YmxbbGV4X2NvZGVdKTtcblxuICB2YXIgYywgc3RhdGUgPSBzdGFydF9zdGF0ZTtcblxuICB2YXIgYnVmZmVyID0gY2FtbF9hcnJheV9vZl9ieXRlcyhsZXhidWZbbGV4X2J1ZmZlcl0pO1xuXG4gIGlmIChzdGF0ZSA+PSAwKSB7XG4gICAgLyogRmlyc3QgZW50cnkgKi9cbiAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfc3RhcnRfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgLyogUmVlbnRyeSBhZnRlciByZWZpbGwgKi9cbiAgICBzdGF0ZSA9IC1zdGF0ZSAtIDE7XG4gIH1cbiAgZm9yKDs7KSB7XG4gICAgLyogTG9va3VwIGJhc2UgYWRkcmVzcyBvciBhY3Rpb24gbnVtYmVyIGZvciBjdXJyZW50IHN0YXRlICovXG4gICAgdmFyIGJhc2UgPSB0YmwubGV4X2Jhc2Vbc3RhdGVdO1xuICAgIGlmIChiYXNlIDwgMCkge1xuICAgICAgdmFyIHBjX29mZiA9IHRibC5sZXhfYmFzZV9jb2RlW3N0YXRlXTtcbiAgICAgIGNhbWxfbGV4X3J1bl90YWcodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSk7XG4gICAgICByZXR1cm4gLWJhc2UtMTtcbiAgICB9XG4gICAgLyogU2VlIGlmIGl0J3MgYSBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICB2YXIgYmFja3RyayA9IHRibC5sZXhfYmFja3Rya1tzdGF0ZV07XG4gICAgaWYgKGJhY2t0cmsgPj0gMCkge1xuICAgICAgdmFyIHBjX29mZiA9IHRibC5sZXhfYmFja3Rya19jb2RlW3N0YXRlXTtcbiAgICAgIGNhbWxfbGV4X3J1bl90YWcodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSk7XG4gICAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSBiYWNrdHJrO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgd2UgbmVlZCBhIHJlZmlsbCAqL1xuICAgIGlmIChsZXhidWZbbGV4X2N1cnJfcG9zXSA+PSBsZXhidWZbbGV4X2J1ZmZlcl9sZW5dKXtcbiAgICAgIGlmIChsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9PSAwKVxuICAgICAgICByZXR1cm4gLXN0YXRlIC0gMTtcbiAgICAgIGVsc2VcbiAgICAgICAgYyA9IDI1NjtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIFJlYWQgbmV4dCBpbnB1dCBjaGFyICovXG4gICAgICBjID0gYnVmZmVyW2xleGJ1ZltsZXhfY3Vycl9wb3NdXTtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdICsrO1xuICAgIH1cbiAgICAvKiBEZXRlcm1pbmUgbmV4dCBzdGF0ZSAqL1xuICAgIHZhciBwc3RhdGUgPSBzdGF0ZSA7XG4gICAgaWYgKHRibC5sZXhfY2hlY2tbYmFzZSArIGNdID09IHN0YXRlKVxuICAgICAgc3RhdGUgPSB0YmwubGV4X3RyYW5zW2Jhc2UgKyBjXTtcbiAgICBlbHNlXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfZGVmYXVsdFtzdGF0ZV07XG4gICAgLyogSWYgbm8gdHJhbnNpdGlvbiBvbiB0aGlzIGNoYXIsIHJldHVybiB0byBsYXN0IGJhY2t0cmFjayBwb2ludCAqL1xuICAgIGlmIChzdGF0ZSA8IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdID0gbGV4YnVmW2xleF9sYXN0X3Bvc107XG4gICAgICBpZiAobGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPT0gLTEpXG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJsZXhpbmc6IGVtcHR5IHRva2VuXCIpO1xuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gbGV4YnVmW2xleF9sYXN0X2FjdGlvbl07XG4gICAgfWVsc2V7XG4gICAgICAvKiBJZiBzb21lIHRyYW5zaXRpb24sIGdldCBhbmQgcGVyZm9ybSBtZW1vcnkgbW92ZXMgKi9cbiAgICAgIHZhciBiYXNlX2NvZGUgPSB0YmwubGV4X2Jhc2VfY29kZVtwc3RhdGVdLCBwY19vZmY7XG4gICAgICBpZiAodGJsLmxleF9jaGVja19jb2RlW2Jhc2VfY29kZSArIGNdID09IHBzdGF0ZSlcbiAgICAgICAgcGNfb2ZmID0gdGJsLmxleF90cmFuc19jb2RlW2Jhc2VfY29kZSArIGNdO1xuICAgICAgZWxzZVxuICAgICAgICBwY19vZmYgPSB0YmwubGV4X2RlZmF1bHRfY29kZVtwc3RhdGVdO1xuICAgICAgaWYgKHBjX29mZiA+IDApXG4gICAgICAgIGNhbWxfbGV4X3J1bl9tZW1cbiAgICAgICh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dLCBsZXhidWZbbGV4X2N1cnJfcG9zXSk7XG4gICAgICAvKiBFcmFzZSB0aGUgRU9GIGNvbmRpdGlvbiBvbmx5IGlmIHRoZSBFT0YgcHNldWRvLWNoYXJhY3RlciB3YXNcbiAgICAgICAgIGNvbnN1bWVkIGJ5IHRoZSBhdXRvbWF0b24gKGkuZS4gdGhlcmUgd2FzIG5vIGJhY2t0cmFjayBhYm92ZSlcbiAgICAgICovXG4gICAgICBpZiAoYyA9PSAyNTYpIGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID0gMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gQXJyYXlcblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9zdWIgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9zdWIgKGEsIGksIGxlbikge1xuICB2YXIgYTIgPSBuZXcgQXJyYXkobGVuKzEpO1xuICBhMlswXT0wO1xuICBmb3IodmFyIGkyID0gMSwgaTE9IGkrMTsgaTIgPD0gbGVuOyBpMisrLGkxKysgKXtcbiAgICBhMltpMl09YVtpMV07XG4gIH1cbiAgcmV0dXJuIGEyO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2FwcGVuZCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X2FwcGVuZChhMSwgYTIpIHtcbiAgdmFyIGwxID0gYTEubGVuZ3RoLCBsMiA9IGEyLmxlbmd0aDtcbiAgdmFyIGwgPSBsMStsMi0xXG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBhWzBdID0gMDtcbiAgdmFyIGkgPSAxLGogPSAxO1xuICBmb3IoO2k8bDE7aSsrKSBhW2ldPWExW2ldO1xuICBmb3IoO2k8bDtpKyssaisrKSBhW2ldPWEyW2pdO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9jb25jYXQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9jb25jYXQobCkge1xuICB2YXIgYSA9IFswXTtcbiAgd2hpbGUgKGwgIT09IDApIHtcbiAgICB2YXIgYiA9IGxbMV07XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBiLmxlbmd0aDsgaSsrKSBhLnB1c2goYltpXSk7XG4gICAgbCA9IGxbMl07XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYmxpdFxuZnVuY3Rpb24gY2FtbF9hcnJheV9ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgaWYgKGkyIDw9IGkxKSB7XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gbGVuOyBqKyspIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGogPSBsZW47IGogPj0gMTsgai0tKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRhcnJheV9ibGl0XG5mdW5jdGlvbiBjYW1sX2Zsb2F0YXJyYXlfYmxpdChhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIGlmIChpMiA8PSBpMSkge1xuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IGxlbjsgaisrKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBqID0gbGVuOyBqID49IDE7IGotLSkgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH07XG4gIHJldHVybiAwO1xufVxuXG4vLy8vLy8vLy8vLy8vIFBlcnZhc2l2ZVxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9zZXQgKG11dGFibGUsIGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfc2V0IChhcnJheSwgaW5kZXgsIG5ld3ZhbCkge1xuICBpZiAoKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGFycmF5Lmxlbmd0aCAtIDEpKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGFycmF5W2luZGV4KzFdPW5ld3ZhbDsgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfZ2V0IG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfZ2V0IChhcnJheSwgaW5kZXgpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXlbaW5kZXgrMV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfZmlsbFxuZnVuY3Rpb24gY2FtbF9hcnJheV9maWxsKGFycmF5LCBvZnMsIGxlbiwgdil7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgYXJyYXlbb2ZzK2krMV0gPSB2O1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoZWNrX2JvdW5kIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2NoZWNrX2JvdW5kIChhcnJheSwgaW5kZXgpIHtcbiAgaWYgKGluZGV4ID4+PiAwID49IGFycmF5Lmxlbmd0aCAtIDEpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFycmF5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfdmVjdCBjb25zdCAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9tYWtlX3ZlY3QgKGxlbiwgaW5pdCkge1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IGluaXQ7XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfZmxvYXRfdmVjdCBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX21ha2VfZmxvYXRfdmVjdChsZW4pe1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MjU0O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gMDtcbiAgcmV0dXJuIGJcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRhcnJheV9jcmVhdGUgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9mbG9hdGFycmF5X2NyZWF0ZShsZW4pe1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MjU0O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gMDtcbiAgcmV0dXJuIGJcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBXZWFrIEFQSSwgYnV0IHdpdGhvdXQgdGhlIHdlYWsgc2VtYW50aWNzXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG52YXIgY2FtbF9lcGhlX2tleV9vZmZzZXQgPSAzXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxudmFyIGNhbWxfZXBoZV9kYXRhX29mZnNldCA9IDJcblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF93ZWFrX2NyZWF0ZSAobikge1xuICBpZiAobiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmNyZWF0ZVwiKTtcbiAgdmFyIHggPSBbMjUxLFwiY2FtbF9lcGhlX2xpc3RfaGVhZFwiXTtcbiAgeC5sZW5ndGggPSBjYW1sX2VwaGVfa2V5X29mZnNldCArIG47XG4gIHJldHVybiB4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3dlYWtfc2V0KHgsIGksIHYpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLnNldFwiKTtcbiAgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldID0gdjtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3dlYWtfZ2V0KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmdldF9rZXlcIik7XG4gIHJldHVybiAoeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgXT09PXVuZGVmaW5lZCk/MDp4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfZ2V0X2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19nZXQsY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX2R1cCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3dlYWtfZ2V0X2NvcHkoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuZ2V0X2NvcHlcIik7XG4gIHZhciB5ID0gY2FtbF93ZWFrX2dldCh4LCBpKTtcbiAgaWYgKHkgPT09IDApIHJldHVybiB5O1xuICB2YXIgeiA9IHlbMV07XG4gIGlmICh6IGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBbMCwgY2FtbF9vYmpfZHVwKHopXTtcbiAgcmV0dXJuIHk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19jaGVjayBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF93ZWFrX2NoZWNrKHgsIGkpIHtcbiAgaWYoeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldIT09dW5kZWZpbmVkICYmIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSAhPT0wKVxuICAgIHJldHVybiAxO1xuICBlbHNlXG4gICAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JsaXRcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX3dlYWtfYmxpdChhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIC8vIG1pbnVzIG9uZSBiZWNhdXNlIGNhbWxfYXJyYXlfYmxpdCB3b3JrcyBvbiBvY2FtbCBhcnJheVxuICBjYW1sX2FycmF5X2JsaXQoYTEsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaTEgLSAxLFxuICAgICAgICAgICAgICAgICAgYTIsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaTIgLSAxLFxuICAgICAgICAgICAgICAgICAgbGVuKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19jcmVhdGVcbnZhciBjYW1sX2VwaGVfY3JlYXRlID0gY2FtbF93ZWFrX2NyZWF0ZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19ibGl0XG52YXIgY2FtbF9lcGhlX2JsaXRfa2V5ID0gY2FtbF93ZWFrX2JsaXRcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19nZXRcbnZhciBjYW1sX2VwaGVfZ2V0X2tleSA9IGNhbWxfd2Vha19nZXRcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9rZXlfY29weVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2dldF9jb3B5XG52YXIgY2FtbF9lcGhlX2dldF9rZXlfY29weSA9IGNhbWxfd2Vha19nZXRfY29weVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY2hlY2tfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfY2hlY2tcbnZhciBjYW1sX2VwaGVfY2hlY2tfa2V5ID0gY2FtbF93ZWFrX2NoZWNrXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9zZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfc2V0X2tleSh4LCBpLCB2KSB7XG4gIHJldHVybiBjYW1sX3dlYWtfc2V0KHgsIGksIFswLCB2XSlcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3Vuc2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX3NldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3Vuc2V0X2tleSh4LCBpKSB7XG4gIHJldHVybiBjYW1sX3dlYWtfc2V0KHgsIGksIDApXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9ibGl0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2JsaXRfZGF0YShzcmMsIGRzdCl7XG4gIGRzdFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID0gc3JjW2NhbWxfZXBoZV9kYXRhX29mZnNldF07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9kYXRhKHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiBbMCwgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9kYXRhX2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwXG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gWzAsIGNhbWxfb2JqX2R1cCh4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0pXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3NldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9zZXRfZGF0YSh4LCBkYXRhKXtcbiAgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID0gZGF0YTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV91bnNldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV91bnNldF9kYXRhKHgsIGRhdGEpe1xuICB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSB1bmRlZmluZWQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY2hlY2tfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfY2hlY2tfZGF0YSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gMTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2NoYW5cbi8vUmVxdWlyZXM6IGNhbWxfbWQ1X3N0cmluZywgY2FtbF9zdHJpbmdfb2ZfYXJyYXksY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSwgY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX21kNV9jaGFuKGNoYW5pZCxsZW4pe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIGNoYW5fbGVuID0gY2hhbi5maWxlLmxlbmd0aCgpO1xuICBpZihsZW48MCkgbGVuID0gY2hhbl9sZW4gLSBjaGFuLm9mZnNldDtcbiAgaWYoY2hhbi5vZmZzZXQgKyBsZW4gPiBjaGFuX2xlbikgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB2YXIgYnVmID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKTtcbiAgY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsYnVmLDAsbGVuKTtcbiAgcmV0dXJuIGNhbWxfbWQ1X3N0cmluZyhjYW1sX3N0cmluZ19vZl9ieXRlcyhidWYpLDAsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX3N0cmluZywgY2FtbF9tZDVfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWQ1X3N0cmluZyhzLCBvZnMsIGxlbikge1xuICByZXR1cm4gY2FtbF9tZDVfYnl0ZXMoY2FtbF9ieXRlc19vZl9zdHJpbmcocyksb2ZzLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheSwgY2FtbF9tbF9ieXRlc19jb250ZW50XG52YXIgY2FtbF9tZDVfYnl0ZXMgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGFkZCAoeCwgeSkgeyByZXR1cm4gKHggKyB5KSB8IDA7IH1cbiAgZnVuY3Rpb24geHgocSxhLGIseCxzLHQpIHtcbiAgICBhID0gYWRkKGFkZChhLCBxKSwgYWRkKHgsIHQpKTtcbiAgICByZXR1cm4gYWRkKChhIDw8IHMpIHwgKGEgPj4+ICgzMiAtIHMpKSwgYik7XG4gIH1cbiAgZnVuY3Rpb24gZmYoYSxiLGMsZCx4LHMsdCkge1xuICAgIHJldHVybiB4eCgoYiAmIGMpIHwgKCh+YikgJiBkKSwgYSwgYiwgeCwgcywgdCk7XG4gIH1cbiAgZnVuY3Rpb24gZ2coYSxiLGMsZCx4LHMsdCkge1xuICAgIHJldHVybiB4eCgoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gIH1cbiAgZnVuY3Rpb24gaGgoYSxiLGMsZCx4LHMsdCkgeyByZXR1cm4geHgoYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTsgfVxuICBmdW5jdGlvbiBpaShhLGIsYyxkLHgscyx0KSB7IHJldHVybiB4eChjIF4gKGIgfCAofmQpKSwgYSwgYiwgeCwgcywgdCk7IH1cblxuICBmdW5jdGlvbiBtZDUoYnVmZmVyLCBsZW5ndGgpIHtcbiAgICB2YXIgaSA9IGxlbmd0aDtcbiAgICBidWZmZXJbaSA+PiAyXSB8PSAweDgwIDw8ICg4ICogKGkgJiAzKSk7XG4gICAgZm9yIChpID0gKGkgJiB+MHgzKSArIDg7KGkgJiAweDNGKSA8IDYwIDtpICs9IDQpXG4gICAgICBidWZmZXJbKGkgPj4gMikgLSAxXSA9IDA7XG4gICAgYnVmZmVyWyhpID4+IDIpIC0xXSA9IGxlbmd0aCA8PCAzO1xuICAgIGJ1ZmZlcltpID4+IDJdID0gKGxlbmd0aCA+PiAyOSkgJiAweDFGRkZGRkZGO1xuXG4gICAgdmFyIHcgPSBbMHg2NzQ1MjMwMSwgMHhFRkNEQUI4OSwgMHg5OEJBRENGRSwgMHgxMDMyNTQ3Nl07XG5cbiAgICBmb3IoaSA9IDA7IGkgPCBidWZmZXIubGVuZ3RoOyBpICs9IDE2KSB7XG4gICAgICB2YXIgYSA9IHdbMF0sIGIgPSB3WzFdLCBjID0gd1syXSwgZCA9IHdbM107XG5cbiAgICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbaSsgMF0sIDcsIDB4RDc2QUE0NzgpO1xuICAgICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyAxXSwgMTIsIDB4RThDN0I3NTYpO1xuICAgICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyAyXSwgMTcsIDB4MjQyMDcwREIpO1xuICAgICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyAzXSwgMjIsIDB4QzFCRENFRUUpO1xuICAgICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA0XSwgNywgMHhGNTdDMEZBRik7XG4gICAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyW2krIDVdLCAxMiwgMHg0Nzg3QzYyQSk7XG4gICAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyW2krIDZdLCAxNywgMHhBODMwNDYxMyk7XG4gICAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyW2krIDddLCAyMiwgMHhGRDQ2OTUwMSk7XG4gICAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyW2krIDhdLCA3LCAweDY5ODA5OEQ4KTtcbiAgICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbaSsgOV0sIDEyLCAweDhCNDRGN0FGKTtcbiAgICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbaSsxMF0sIDE3LCAweEZGRkY1QkIxKTtcbiAgICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbaSsxMV0sIDIyLCAweDg5NUNEN0JFKTtcbiAgICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbaSsxMl0sIDcsIDB4NkI5MDExMjIpO1xuICAgICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzEzXSwgMTIsIDB4RkQ5ODcxOTMpO1xuICAgICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzE0XSwgMTcsIDB4QTY3OTQzOEUpO1xuICAgICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzE1XSwgMjIsIDB4NDlCNDA4MjEpO1xuXG4gICAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyW2krIDFdLCA1LCAweEY2MUUyNTYyKTtcbiAgICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbaSsgNl0sIDksIDB4QzA0MEIzNDApO1xuICAgICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKzExXSwgMTQsIDB4MjY1RTVBNTEpO1xuICAgICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKyAwXSwgMjAsIDB4RTlCNkM3QUEpO1xuICAgICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA1XSwgNSwgMHhENjJGMTA1RCk7XG4gICAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyW2krMTBdLCA5LCAweDAyNDQxNDUzKTtcbiAgICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbaSsxNV0sIDE0LCAweEQ4QTFFNjgxKTtcbiAgICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbaSsgNF0sIDIwLCAweEU3RDNGQkM4KTtcbiAgICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbaSsgOV0sIDUsIDB4MjFFMUNERTYpO1xuICAgICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzE0XSwgOSwgMHhDMzM3MDdENik7XG4gICAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyW2krIDNdLCAxNCwgMHhGNEQ1MEQ4Nyk7XG4gICAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyW2krIDhdLCAyMCwgMHg0NTVBMTRFRCk7XG4gICAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyW2krMTNdLCA1LCAweEE5RTNFOTA1KTtcbiAgICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbaSsgMl0sIDksIDB4RkNFRkEzRjgpO1xuICAgICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyA3XSwgMTQsIDB4Njc2RjAyRDkpO1xuICAgICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzEyXSwgMjAsIDB4OEQyQTRDOEEpO1xuXG4gICAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyW2krIDVdLCA0LCAweEZGRkEzOTQyKTtcbiAgICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbaSsgOF0sIDExLCAweDg3NzFGNjgxKTtcbiAgICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbaSsxMV0sIDE2LCAweDZEOUQ2MTIyKTtcbiAgICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbaSsxNF0sIDIzLCAweEZERTUzODBDKTtcbiAgICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbaSsgMV0sIDQsIDB4QTRCRUVBNDQpO1xuICAgICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKyA0XSwgMTEsIDB4NEJERUNGQTkpO1xuICAgICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyA3XSwgMTYsIDB4RjZCQjRCNjApO1xuICAgICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzEwXSwgMjMsIDB4QkVCRkJDNzApO1xuICAgICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKzEzXSwgNCwgMHgyODlCN0VDNik7XG4gICAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyW2krIDBdLCAxMSwgMHhFQUExMjdGQSk7XG4gICAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyW2krIDNdLCAxNiwgMHhENEVGMzA4NSk7XG4gICAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyW2krIDZdLCAyMywgMHgwNDg4MUQwNSk7XG4gICAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyW2krIDldLCA0LCAweEQ5RDREMDM5KTtcbiAgICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbaSsxMl0sIDExLCAweEU2REI5OUU1KTtcbiAgICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbaSsxNV0sIDE2LCAweDFGQTI3Q0Y4KTtcbiAgICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbaSsgMl0sIDIzLCAweEM0QUM1NjY1KTtcblxuICAgICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyAwXSwgNiwgMHhGNDI5MjI0NCk7XG4gICAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyW2krIDddLCAxMCwgMHg0MzJBRkY5Nyk7XG4gICAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyW2krMTRdLCAxNSwgMHhBQjk0MjNBNyk7XG4gICAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyW2krIDVdLCAyMSwgMHhGQzkzQTAzOSk7XG4gICAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyW2krMTJdLCA2LCAweDY1NUI1OUMzKTtcbiAgICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbaSsgM10sIDEwLCAweDhGMENDQzkyKTtcbiAgICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbaSsxMF0sIDE1LCAweEZGRUZGNDdEKTtcbiAgICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbaSsgMV0sIDIxLCAweDg1ODQ1REQxKTtcbiAgICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbaSsgOF0sIDYsIDB4NkZBODdFNEYpO1xuICAgICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlcltpKzE1XSwgMTAsIDB4RkUyQ0U2RTApO1xuICAgICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlcltpKyA2XSwgMTUsIDB4QTMwMTQzMTQpO1xuICAgICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlcltpKzEzXSwgMjEsIDB4NEUwODExQTEpO1xuICAgICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlcltpKyA0XSwgNiwgMHhGNzUzN0U4Mik7XG4gICAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyW2krMTFdLCAxMCwgMHhCRDNBRjIzNSk7XG4gICAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyW2krIDJdLCAxNSwgMHgyQUQ3RDJCQik7XG4gICAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyW2krIDldLCAyMSwgMHhFQjg2RDM5MSk7XG5cbiAgICAgIHdbMF0gPSBhZGQoYSwgd1swXSk7XG4gICAgICB3WzFdID0gYWRkKGIsIHdbMV0pO1xuICAgICAgd1syXSA9IGFkZChjLCB3WzJdKTtcbiAgICAgIHdbM10gPSBhZGQoZCwgd1szXSk7XG4gICAgfVxuXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoMTYpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA0OyBqKyspXG4gICAgICAgIHRbaSAqIDQgKyBqXSA9ICh3W2ldID4+ICg4ICogaikpICYgMHhGRjtcbiAgICByZXR1cm4gdDtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAocywgb2ZzLCBsZW4pIHtcbiAgICAvLyBGSVg6IG1heWJlIHdlIHNob3VsZCBwZXJmb3JtIHRoZSBjb21wdXRhdGlvbiBieSBjaHVuayBvZiA2NCBieXRlc1xuICAgIC8vIGFzIGluIGh0dHA6Ly93d3cubXllcnNkYWlseS5vcmcvam9zZXBoL2phdmFzY3JpcHQvbWQ1LmpzXG4gICAgdmFyIGJ1ZiA9IFtdO1xuICAgIHZhciBjb250ZW50ID0gY2FtbF9tbF9ieXRlc19jb250ZW50KHMpO1xuICAgIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKXtcbiAgICAgIHZhciBiID0gY29udGVudDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKz00KSB7XG4gICAgICAgIHZhciBqID0gaSArIG9mcztcbiAgICAgICAgYnVmW2k+PjJdID1cbiAgICAgICAgICBiLmNoYXJDb2RlQXQoaikgfCAoYi5jaGFyQ29kZUF0KGorMSkgPDwgOCkgfFxuICAgICAgICAgIChiLmNoYXJDb2RlQXQoaisyKSA8PCAxNikgfCAoYi5jaGFyQ29kZUF0KGorMykgPDwgMjQpO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBsZW47IGkrKykgYnVmW2k+PjJdIHw9IGIuY2hhckNvZGVBdChpICsgb2ZzKSA8PCAoOCAqIChpICYgMykpO1xuICAgIH0gZWxzZSB7IC8qIEFSUkFZICovXG4gICAgICB2YXIgYSA9IGNvbnRlbnQ7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSs9NCkge1xuICAgICAgICB2YXIgaiA9IGkgKyBvZnM7XG4gICAgICAgIGJ1ZltpPj4yXSA9IGFbal0gfCAoYVtqKzFdIDw8IDgpIHwgKGFbaisyXSA8PCAxNikgfCAoYVtqKzNdIDw8IDI0KTtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIGJ1ZltpPj4yXSB8PSBhW2kgKyBvZnNdIDw8ICg4ICogKGkgJiAzKSk7XG4gICAgfVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShtZDUoYnVmLCBsZW4pKTtcbiAgfVxufSAoKTtcbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAyMCAtIEh1Z28gSGV1emFyZFxuLy8gQ29weXJpZ2h0IChDKSAyMDIwIC0gU2hhY2hhciBJdHpoYWt5XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvYmxvYi80LjA3L290aGVybGlicy9zdHIvc3Ryc3R1YnMuY1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2pzY29xL2pzY29xL2Jsb2IvdjguMTEvY29xLWpzL2pzX3N0dWIvc3RyLmpzXG5cbi8vUHJvdmlkZXM6IHJlX21hdGNoXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19nZXRcblxudmFyIHJlX21hdGNoID0gZnVuY3Rpb24oKXtcbiAgdmFyIHJlX3dvcmRfbGV0dGVycyA9IFtcbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweDAwLTB4MUY6IG5vbmUgKi9cbiAgICAweDAwLCAweDAwLCAweEZGLCAweDAzLCAgICAgICAvKiAweDIwLTB4M0Y6IGRpZ2l0cyAwLTkgKi9cbiAgICAweEZFLCAweEZGLCAweEZGLCAweDg3LCAgICAgICAvKiAweDQwLTB4NUY6IEEgdG8gWiwgXyAqL1xuICAgIDB4RkUsIDB4RkYsIDB4RkYsIDB4MDcsICAgICAgIC8qIDB4NjAtMHg3RjogYSB0byB6ICovXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHg4MC0weDlGOiBub25lICovXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHhBMC0weEJGOiBub25lICovXG4gICAgMHhGRiwgMHhGRiwgMHg3RiwgMHhGRiwgICAgICAgLyogMHhDMC0weERGOiBMYXRpbi0xIGFjY2VudGVkIHVwcGVyY2FzZSAqL1xuICAgIDB4RkYsIDB4RkYsIDB4N0YsIDB4RkYgICAgICAgIC8qIDB4RTAtMHhGRjogTGF0aW4tMSBhY2NlbnRlZCBsb3dlcmNhc2UgKi9cbiAgXTtcblxuICB2YXIgb3Bjb2RlcyA9IHtcbiAgICBDSEFSOiAwLCBDSEFSTk9STTogMSwgU1RSSU5HOiAyLCBTVFJJTkdOT1JNOiAzLCBDSEFSQ0xBU1M6IDQsXG4gICAgQk9MOiA1LCBFT0w6IDYsIFdPUkRCT1VOREFSWTogNyxcbiAgICBCRUdHUk9VUDogOCwgRU5ER1JPVVA6IDksIFJFRkdST1VQOiAxMCxcbiAgICBBQ0NFUFQ6IDExLFxuICAgIFNJTVBMRU9QVDogMTIsIFNJTVBMRVNUQVI6IDEzLCBTSU1QTEVQTFVTOiAxNCxcbiAgICBHT1RPOiAxNSwgUFVTSEJBQ0s6IDE2LCBTRVRNQVJLOiAxNyxcbiAgICBDSEVDS1BST0dSRVNTOiAxOFxuICB9O1xuXG4gIGZ1bmN0aW9uIGlzX3dvcmRfbGV0dGVyKGMpIHtcbiAgICByZXR1cm4gKHJlX3dvcmRfbGV0dGVyc1sgIChjID4+IDMpXSA+PiAoYyAmIDcpKSAmIDE7XG4gIH1cblxuICBmdW5jdGlvbiBpbl9iaXRzZXQocyxpKSB7XG4gICAgcmV0dXJuIChjYW1sX3N0cmluZ19nZXQocywoaSA+PiAzKSkgPj4gKGkgJiA3KSkgJiAxO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVfbWF0Y2hfaW1wbChyZSwgcywgcG9zLCBwYXJ0aWFsKSB7XG5cbiAgICB2YXIgcHJvZyAgICAgICAgICA9IGNhbWxfanNfZnJvbV9hcnJheShyZVsxXSksXG4gICAgICAgIGNwb29sICAgICAgICAgPSBjYW1sX2pzX2Zyb21fYXJyYXkocmVbMl0pLFxuICAgICAgICBub3JtdGFibGUgICAgID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhyZVszXSksXG4gICAgICAgIG51bWdyb3VwcyAgICAgPSByZVs0XSB8IDAsXG4gICAgICAgIG51bXJlZ2lzdGVycyAgPSByZVs1XSB8IDAsXG4gICAgICAgIHN0YXJ0Y2hhcnMgICAgPSByZVs2XSB8IDA7XG5cbiAgICB2YXIgcyA9IGNhbWxfYXJyYXlfb2Zfc3RyaW5nKHMpO1xuXG4gICAgdmFyIHBjID0gMCxcbiAgICAgICAgcXVpdCA9IGZhbHNlLFxuICAgICAgICBzdGFjayA9IFtdLFxuICAgICAgICBncm91cHMgPSBuZXcgQXJyYXkobnVtZ3JvdXBzKSxcbiAgICAgICAgcmVfcmVnaXN0ZXIgPSBuZXcgQXJyYXkobnVtcmVnaXN0ZXJzKTtcblxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspe1xuICAgICAgZ3JvdXBzW2ldID0ge3N0YXJ0OiAtMSwgZW5kOi0xfVxuICAgIH1cbiAgICBncm91cHNbMF0uc3RhcnQgPSBwb3M7XG5cbiAgICB2YXIgYmFja3RyYWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgICAgICB2YXIgaXRlbSA9IHN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoaXRlbS51bmRvKSB7XG4gICAgICAgICAgaXRlbS51bmRvLm9ialtpdGVtLnVuZG8ucHJvcF0gPSBpdGVtLnVuZG8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihpdGVtLnBvcykge1xuICAgICAgICAgIHBjID0gaXRlbS5wb3MucGM7XG4gICAgICAgICAgcG9zID0gaXRlbS5wb3MudHh0O1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcXVpdCA9IHRydWU7XG4gICAgfTtcblxuICAgIHZhciBwdXNoID0gZnVuY3Rpb24oaXRlbSkgeyBzdGFjay5wdXNoKGl0ZW0pOyB9O1xuXG4gICAgdmFyIGFjY2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGdyb3Vwc1swXS5lbmQgPSBwb3M7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KDEgKyBncm91cHMubGVuZ3RoKjIpO1xuICAgICAgcmVzdWx0WzBdID0gMDsgLy8gdGFnXG4gICAgICBmb3IodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIGcgPSBncm91cHNbaV07XG4gICAgICAgIGlmKGcuc3RhcnQgPCAwIHx8IGcuZW5kIDwgMCkge1xuICAgICAgICAgIGcuc3RhcnQgPSBnLmVuZCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFsyKmkgKyAxIF0gPSBnLnN0YXJ0O1xuICAgICAgICByZXN1bHRbMippICsgMSArIDEgXSA9IGcuZW5kO1xuICAgICAgfTtcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9O1xuXG4gICAgdmFyIHByZWZpeF9tYXRjaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmKHBhcnRpYWwpIHJldHVybiBhY2NlcHQgKCk7XG4gICAgICBlbHNlIGJhY2t0cmFjayAoKTtcbiAgICB9XG5cbiAgICAvKiBNYWluIERGQSBpbnRlcnByZXRlciBsb29wICovXG4gICAgd2hpbGUgKCFxdWl0KSB7XG4gICAgICB2YXIgb3AgPSBwcm9nW3BjXSAmIDB4ZmYsXG4gICAgICAgICAgc2FyZyA9IHByb2dbcGNdID4+IDgsXG4gICAgICAgICAgdWFyZyA9IHNhcmcgJiAweGZmLFxuICAgICAgICAgIGMgPSBzW3Bvc10sXG4gICAgICAgICAgZ3JvdXA7XG5cbiAgICAgIHBjKys7XG5cbiAgICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChjID09PSB1YXJnKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUk5PUk06XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKG5vcm10YWJsZS5jaGFyQ29kZUF0KGMpID09PSB1YXJnKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU1RSSU5HOlxuICAgICAgICBmb3IgKHZhciBhcmcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGNwb29sW3VhcmddKSwgaSA9IDA7IGkgPCBhcmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYgKGMgPT09IGFyZy5jaGFyQ29kZUF0KGkpKVxuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIGVsc2UgeyBiYWNrdHJhY2soKTsgYnJlYWs7IH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TVFJJTkdOT1JNOlxuICAgICAgICBmb3IgKHZhciBhcmcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGNwb29sW3VhcmddKSwgaSA9IDA7IGkgPCBhcmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYgKG5vcm10YWJsZS5jaGFyQ29kZUF0KGMpID09PSBhcmcuY2hhckNvZGVBdChpKSlcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICBlbHNlIHsgYmFja3RyYWNrKCk7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUkNMQVNTOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQk9MOlxuICAgICAgICBpZihwb3MgPiAwICYmIHNbcG9zIC0gMV0gIT0gMTAgLyogXFxuICovKSB7YmFja3RyYWNrKCl9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkVPTDpcbiAgICAgICAgaWYocG9zIDwgcy5sZW5ndGggJiYgc1twb3NdICE9IDEwIC8qIFxcbiAqLykge2JhY2t0cmFjaygpfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5XT1JEQk9VTkRBUlk6XG4gICAgICAgIGlmKHBvcyA9PSAwKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbMF0pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2soKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwb3MgPT09IHMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1twb3MgLSAxXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjayAoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzW3BvcyAtIDFdKSAhPSBpc193b3JkX2xldHRlcihzW3Bvc10pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2sgKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQkVHR1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOmdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDonc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdyb3VwLnN0YXJ0fX0pO1xuICAgICAgICBncm91cC5zdGFydCA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuRU5ER1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOiBncm91cCxcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6J2VuZCcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZ3JvdXAuZW5kfX0pO1xuICAgICAgICBncm91cC5lbmQgPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlJFRkdST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgaWYoZ3JvdXAuc3RhcnQgPCAwIHx8IGdyb3VwLmVuZCA8IDApIHtiYWNrdHJhY2sgKCk7IGJyZWFrfVxuICAgICAgICBmb3IgKHZhciBpID0gZ3JvdXAuc3RhcnQ7IGkgPCBncm91cC5lbmQ7IGkrKyl7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmKHNbaV0gIT0gc1twb3NdKSB7YmFja3RyYWNrICgpOyBicmVha31cbiAgICAgICAgICBwb3MrKztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVPUFQ6XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSBwb3MrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFU1RBUjpcbiAgICAgICAgd2hpbGUgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpXG4gICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVQTFVTOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSB7XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIH0gd2hpbGUgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkFDQ0VQVDpcbiAgICAgICAgcmV0dXJuIGFjY2VwdCgpO1xuICAgICAgY2FzZSBvcGNvZGVzLkdPVE86XG4gICAgICAgIHBjID0gcGMgKyBzYXJnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5QVVNIQkFDSzpcbiAgICAgICAgcHVzaCh7cG9zOiB7cGM6IHBjICsgc2FyZywgdHh0OiBwb3N9fSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNFVE1BUks6XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6cmVfcmVnaXN0ZXIsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOiB1YXJnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlX3JlZ2lzdGVyW3VhcmddfX0pO1xuICAgICAgICByZV9yZWdpc3Rlclt1YXJnXSA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hFQ0tQUk9HUkVTUzpcbiAgICAgICAgaWYgKHJlX3JlZ2lzdGVyW3VhcmddID09PSBwb3MpIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYnl0ZWNvZGVcIik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHJlX21hdGNoX2ltcGw7XG59KCk7XG5cblxuLy9Qcm92aWRlczogcmVfc2VhcmNoX2ZvcndhcmRcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc2VhcmNoX2ZvcndhcmQocmUsIHMsIHBvcykge1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc2VhcmNoX2ZvcndhcmRcIilcbiAgd2hpbGUgKHBvcyA8PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpIHtcbiAgICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICBwb3MrKztcbiAgfVxuXG4gIHJldHVybiBbMF07ICAvKiBbfHxdIDogaW50IGFycmF5ICovXG59XG5cbi8vUHJvdmlkZXM6IHJlX3NlYXJjaF9iYWNrd2FyZFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zZWFyY2hfYmFja3dhcmQocmUsIHMsIHBvcykge1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc2VhcmNoX2JhY2t3YXJkXCIpXG4gIHdoaWxlIChwb3MgPj0gMCkge1xuICAgIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgIHBvcy0tO1xuICB9XG5cbiAgcmV0dXJuIFswXTsgIC8qIFt8fF0gOiBpbnQgYXJyYXkgKi9cbn1cblxuXG4vL1Byb3ZpZGVzOiByZV9zdHJpbmdfbWF0Y2hcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc3RyaW5nX21hdGNoKHJlLHMscG9zKXtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnN0cmluZ19tYXRjaFwiKVxuICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gIGlmIChyZXMpIHJldHVybiByZXM7XG4gIGVsc2UgcmV0dXJuIFswXTtcbn1cblxuLy9Qcm92aWRlczogcmVfcGFydGlhbF9tYXRjaFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9wYXJ0aWFsX21hdGNoKHJlLHMscG9zKXtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnBhcnRpYWxfbWF0Y2hcIilcbiAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDEpO1xuICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICBlbHNlIHJldHVybiBbMF07XG59XG5cbi8vUHJvdmlkZXM6IHJlX3JlcGxhY2VtZW50X3RleHRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vLyBleHRlcm5hbCByZV9yZXBsYWNlbWVudF90ZXh0OiBzdHJpbmcgLT4gaW50IGFycmF5IC0+IHN0cmluZyAtPiBzdHJpbmdcbmZ1bmN0aW9uIHJlX3JlcGxhY2VtZW50X3RleHQocmVwbCxncm91cHMsb3JpZykge1xuICB2YXIgcmVwbCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocmVwbCk7XG4gIHZhciBsZW4gPSByZXBsLmxlbmd0aDtcbiAgdmFyIG9yaWcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG9yaWcpO1xuICB2YXIgcmVzID0gXCJcIjsgLy9yZXN1bHRcbiAgdmFyIG4gPSAwOyAvLyBjdXJyZW50IHBvc2l0aW9uXG4gIHZhciBjdXI7IC8vY3VycmVudCBjaGFyXG4gIHZhciBzdGFydCwgZW5kLCBjO1xuICB3aGlsZShuIDwgbGVuKXtcbiAgICBjdXIgPSByZXBsLmNoYXJBdChuKyspO1xuICAgIGlmKGN1ciAhPSAnXFxcXCcpe1xuICAgICAgcmVzICs9IGN1cjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZihuID09IGxlbikgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiBpbGxlZ2FsIGJhY2tzbGFzaCBzZXF1ZW5jZVwiKTtcbiAgICAgIGN1ciA9IHJlcGwuY2hhckF0KG4rKyk7XG4gICAgICBzd2l0Y2goY3VyKXtcbiAgICAgIGNhc2UgJ1xcXFwnOlxuICAgICAgICByZXMgKz0gY3VyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzpcbiAgICAgIGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzpcbiAgICAgICAgYyA9ICtjdXI7XG4gICAgICAgIGlmIChjKjIgPj0gZ3JvdXBzLmxlbmd0aCAtIDEgKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogcmVmZXJlbmNlIHRvIHVubWF0Y2hlZCBncm91cFwiICk7XG4gICAgICAgIHN0YXJ0ID0gY2FtbF9hcnJheV9nZXQoZ3JvdXBzLGMqMik7XG4gICAgICAgIGVuZCA9IGNhbWxfYXJyYXlfZ2V0KGdyb3VwcywgYyoyICsxKTtcbiAgICAgICAgaWYgKHN0YXJ0ID09IC0xKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogcmVmZXJlbmNlIHRvIHVubWF0Y2hlZCBncm91cFwiKTtcbiAgICAgICAgcmVzKz1vcmlnLnNsaWNlKHN0YXJ0LGVuZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzICs9ICgnXFxcXCcgICsgY3VyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocmVzKTsgfVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNSBDaXRyaXggSW5jXG4gKlxuICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG4gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlXG4gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4gKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfYmlnc3RyaW5nX3RvX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYVxudmFyIGNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fYmlnc3RyaW5nID0gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfYmlnc3RyaW5nX3RvX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlc1xudmFyIGNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fc3RyaW5nID0gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfc3RyaW5nX3RvX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmFcbnZhciBjYW1sX2JsaXRfc3RyaW5nX3RvX2JpZ3N0cmluZyA9IGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhXG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV9iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaW50X2NvbXBhcmUsIGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV9iaWdzdHJpbmcoYnVmMSwgYnVmMV9vZmYsIGJ1ZjIsIGJ1ZjJfb2ZmLCBsZW4pIHtcbiAgdmFyIGksIHI7XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHIgPSBjYW1sX2ludF9jb21wYXJlKGNhbWxfYmFfZ2V0XzEoYnVmMSwgYnVmMV9vZmYgKyBpKSwgY2FtbF9iYV9nZXRfMShidWYyLCBidWYyX29mZiArIGkpKTtcbiAgICBpZiAociAhPSAwKSByZXR1cm4gcjtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maWxsX2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9iYV9zZXRfMVxuZnVuY3Rpb24gY2FtbF9maWxsX2JpZ3N0cmluZyhidWYsIGJ1Zl9vZmYsIGJ1Zl9sZW4sIHYpIHtcbiAgdmFyIGk7XG4gIGZvciAoaSA9IDA7IGkgPCBidWZfbGVuOyBpKyspIHtcbiAgICBjYW1sX2JhX3NldF8xKGJ1ZiwgYnVmX29mZiArIGksIHYpO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoZWNrX2FsaWdubWVudF9iaWdzdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZyhidWYsIG9mcywgYWxpZ25tZW50KSB7XG4gIHJldHVybiB0cnVlOyAvLyBGSVhNRTogTm8gY29uY2VwdCBvZiBhIGZpeGVkIGJ1ZmZlciBhZGRyZXNzP1xufVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICBEYW5pZWwgQy4gQnVlbnpsaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5cbmxldCBlcnJfbm9fcHJlZCA9IFwiVSswMDAwIGhhcyBubyBwcmVkZWNlc3NvclwiXG5sZXQgZXJyX25vX3N1Y2MgPSBcIlUrMTBGRkZGIGhhcyBubyBzdWNjZXNzb3JcIlxubGV0IGVycl9ub3Rfc3YgaSA9IGZvcm1hdF9pbnQgXCIlWFwiIGkgXiBcIiBpcyBub3QgYW4gVW5pY29kZSBzY2FsYXIgdmFsdWVcIlxubGV0IGVycl9ub3RfbGF0aW4xIHUgPSBcIlUrXCIgXiBmb3JtYXRfaW50IFwiJTA0WFwiIHUgXiBcIiBpcyBub3QgYSBsYXRpbjEgY2hhcmFjdGVyXCJcblxudHlwZSB0ID0gaW50XG5cbmxldCBtaW4gPSAweDAwMDBcbmxldCBtYXggPSAweDEwRkZGRlxubGV0IGxvX2JvdW5kID0gMHhEN0ZGXG5sZXQgaGlfYm91bmQgPSAweEUwMDBcblxubGV0IGJvbSA9IDB4RkVGRlxubGV0IHJlcCA9IDB4RkZGRFxuXG5sZXQgc3VjYyB1ID1cbiAgaWYgdSA9IGxvX2JvdW5kIHRoZW4gaGlfYm91bmQgZWxzZVxuICBpZiB1ID0gbWF4IHRoZW4gaW52YWxpZF9hcmcgZXJyX25vX3N1Y2MgZWxzZVxuICB1ICsgMVxuXG5sZXQgcHJlZCB1ID1cbiAgaWYgdSA9IGhpX2JvdW5kIHRoZW4gbG9fYm91bmQgZWxzZVxuICBpZiB1ID0gbWluIHRoZW4gaW52YWxpZF9hcmcgZXJyX25vX3ByZWQgZWxzZVxuICB1IC0gMVxuXG5sZXQgaXNfdmFsaWQgaSA9IChtaW4gPD0gaSAmJiBpIDw9IGxvX2JvdW5kKSB8fCAoaGlfYm91bmQgPD0gaSAmJiBpIDw9IG1heClcbmxldCBvZl9pbnQgaSA9IGlmIGlzX3ZhbGlkIGkgdGhlbiBpIGVsc2UgaW52YWxpZF9hcmcgKGVycl9ub3Rfc3YgaSlcbmV4dGVybmFsIHVuc2FmZV9vZl9pbnQgOiBpbnQgLT4gdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHRvX2ludCA6IHQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgaXNfY2hhciB1ID0gdSA8IDI1NlxubGV0IG9mX2NoYXIgYyA9IENoYXIuY29kZSBjXG5sZXQgdG9fY2hhciB1ID1cbiAgaWYgdSA+IDI1NSB0aGVuIGludmFsaWRfYXJnIChlcnJfbm90X2xhdGluMSB1KSBlbHNlXG4gIENoYXIudW5zYWZlX2NociB1XG5cbmxldCB1bnNhZmVfdG9fY2hhciA9IENoYXIudW5zYWZlX2NoclxuXG5sZXQgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBpbnQgLT4gaW50IC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5sZXQgaGFzaCA9IHRvX2ludFxuXG4oKiBVVEYgY29kZWNzIHRvb2xzICopXG5cbnR5cGUgdXRmX2RlY29kZSA9IGludFxuKCogVGhpcyBpcyBhbiBpbnQgWzB4RFVVVVVVVV0gZGVjb21wb3NlZCBhcyBmb2xsb3dzOlxuICAgLSBbRF0gaXMgZm91ciBiaXRzIGZvciBkZWNvZGUgaW5mb3JtYXRpb24sIHRoZSBoaWdoZXN0IGJpdCBpcyBzZXQgaWYgdGhlXG4gICAgIGRlY29kZSBpcyB2YWxpZC4gVGhlIHRocmVlIGxvd2VyIGJpdHMgaW5kaWNhdGUgdGhlIG51bWJlciBvZiBlbGVtZW50c1xuICAgICBmcm9tIHRoZSBzb3VyY2UgdGhhdCB3ZXJlIGNvbnN1bWVkIGJ5IHRoZSBkZWNvZGUuXG4gICAtIFtVVVVVVVVdIGlzIHRoZSBkZWNvZGVkIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBVbmljb2RlIHJlcGxhY2VtZW50XG4gICAgIGNoYXJhY3RlciBVK0ZGRkQgaWYgZm9yIGludmFsaWQgZGVjb2Rlcy4gKilcblxubGV0IHZhbGlkX2JpdCA9IDI3XG5sZXQgZGVjb2RlX2JpdHMgPSAyNFxuXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9pc192YWxpZCBkID0gKGQgbHNyIHZhbGlkX2JpdCkgPSAxXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9sZW5ndGggZCA9IChkIGxzciBkZWNvZGVfYml0cykgbGFuZCAwYjExMVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfdWNoYXIgZCA9IHVuc2FmZV9vZl9pbnQgKGQgbGFuZCAweEZGRkZGRilcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlIG4gdSA9ICgoOCBsb3IgbikgbHNsIGRlY29kZV9iaXRzKSBsb3IgKHRvX2ludCB1KVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfaW52YWxpZCBuID0gKG4gbHNsIGRlY29kZV9iaXRzKSBsb3IgcmVwXG5cbmxldCB1dGZfOF9ieXRlX2xlbmd0aCB1ID0gbWF0Y2ggdG9faW50IHUgd2l0aFxufCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG58IHUgd2hlbiB1IDw9IDB4MDA3RiAtPiAxXG58IHUgd2hlbiB1IDw9IDB4MDdGRiAtPiAyXG58IHUgd2hlbiB1IDw9IDB4RkZGRiAtPiAzXG58IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+IDRcbnwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IHV0Zl8xNl9ieXRlX2xlbmd0aCB1ID0gbWF0Y2ggdG9faW50IHUgd2l0aFxufCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG58IHUgd2hlbiB1IDw9IDB4RkZGRiAtPiAyXG58IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+IDRcbnwgXyAtPiBhc3NlcnQgZmFsc2VcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtJbnQ2NF06IDY0LWJpdCBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWcgOiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X25lZ1wiXG5leHRlcm5hbCBhZGQgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2FkZFwiXG5leHRlcm5hbCBzdWIgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X3N1YlwiXG5leHRlcm5hbCBtdWwgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X211bFwiXG5leHRlcm5hbCBkaXYgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2RpdlwiXG5leHRlcm5hbCByZW0gOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X21vZFwiXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2FuZFwiXG5leHRlcm5hbCBsb2dvciA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfb3JcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfbHNyXCJcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQgOiBpbnQ2NCAtPiBpbnQgPSBcIiVpbnQ2NF90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9vZl9mbG9hdFwiIFwiY2FtbF9pbnQ2NF9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfdG9fZmxvYXRcIiBcImNhbWxfaW50NjRfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBvZl9pbnQzMiA6IGludDMyIC0+IGludDY0ID0gXCIlaW50NjRfb2ZfaW50MzJcIlxuZXh0ZXJuYWwgdG9faW50MzIgOiBpbnQ2NCAtPiBpbnQzMiA9IFwiJWludDY0X3RvX2ludDMyXCJcbmV4dGVybmFsIG9mX25hdGl2ZWludCA6IG5hdGl2ZWludCAtPiBpbnQ2NCA9IFwiJWludDY0X29mX25hdGl2ZWludFwiXG5leHRlcm5hbCB0b19uYXRpdmVpbnQgOiBpbnQ2NCAtPiBuYXRpdmVpbnQgPSBcIiVpbnQ2NF90b19uYXRpdmVpbnRcIlxuXG5sZXQgemVybyA9IDBMXG5sZXQgb25lID0gMUxcbmxldCBtaW51c19vbmUgPSAtMUxcbmxldCBzdWNjIG4gPSBhZGQgbiAxTFxubGV0IHByZWQgbiA9IHN1YiBuIDFMXG5sZXQgYWJzIG4gPSBpZiBuID49IDBMIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgbWluX2ludCA9IDB4ODAwMDAwMDAwMDAwMDAwMExcbmxldCBtYXhfaW50ID0gMHg3RkZGRkZGRkZGRkZGRkZGTFxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xTClcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gIGZ1biBuIC0+XG4gICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IGludDY0IC0+IHN0cmluZyA9IFwiY2FtbF9pbnQ2NF9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQ2NCA9IFwiY2FtbF9pbnQ2NF9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuXG5cbmV4dGVybmFsIGJpdHNfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0XCIgXCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG50eXBlIHQgPSBpbnQ2NFxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBsZXhlcnMgZ2VuZXJhdGVkIGJ5IGNhbWxsZXggKilcblxudHlwZSBwb3NpdGlvbiA9IHtcbiAgcG9zX2ZuYW1lIDogc3RyaW5nO1xuICBwb3NfbG51bSA6IGludDtcbiAgcG9zX2JvbCA6IGludDtcbiAgcG9zX2NudW0gOiBpbnQ7XG59XG5cbmxldCBkdW1teV9wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMDtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gLTE7XG59XG5cbnR5cGUgbGV4YnVmID1cbiAgeyByZWZpbGxfYnVmZiA6IGxleGJ1ZiAtPiB1bml0O1xuICAgIG11dGFibGUgbGV4X2J1ZmZlciA6IGJ5dGVzO1xuICAgIG11dGFibGUgbGV4X2J1ZmZlcl9sZW4gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfYWJzX3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9hY3Rpb24gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfZW9mX3JlYWNoZWQgOiBib29sO1xuICAgIG11dGFibGUgbGV4X21lbSA6IGludCBhcnJheTtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wIDogcG9zaXRpb247XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wIDogcG9zaXRpb247XG4gIH1cblxudHlwZSBsZXhfdGFibGVzID1cbiAgeyBsZXhfYmFzZTogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHQ6IHN0cmluZztcbiAgICBsZXhfdHJhbnM6IHN0cmluZztcbiAgICBsZXhfY2hlY2s6IHN0cmluZztcbiAgICBsZXhfYmFzZV9jb2RlIDogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHRfY29kZSA6IHN0cmluZztcbiAgICBsZXhfdHJhbnNfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY2hlY2tfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY29kZTogc3RyaW5nO31cblxuZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuZXh0ZXJuYWwgY19uZXdfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX25ld19sZXhfZW5naW5lXCJcblxubGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgaWYgcmVzdWx0ID49IDAgJiYgYnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zIHRoZW4gYmVnaW5cbiAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgZW5kO1xuICByZXN1bHRcblxuXG5sZXQgbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gIGlmIHJlc3VsdCA+PSAwICYmIGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3BvcyB0aGVuIGJlZ2luXG4gICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gIGVuZDtcbiAgcmVzdWx0XG5cbmxldCBsZXhfcmVmaWxsIHJlYWRfZnVuIGF1eF9idWZmZXIgbGV4YnVmID1cbiAgbGV0IHJlYWQgPVxuICAgIHJlYWRfZnVuIGF1eF9idWZmZXIgKEJ5dGVzLmxlbmd0aCBhdXhfYnVmZmVyKSBpblxuICBsZXQgbiA9XG4gICAgaWYgcmVhZCA+IDBcbiAgICB0aGVuIHJlYWRcbiAgICBlbHNlIChsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWU7IDApIGluXG4gICgqIEN1cnJlbnQgc3RhdGUgb2YgdGhlIGJ1ZmZlcjpcbiAgICAgICAgPC0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tPlxuICAgICAgICB8ICBqdW5rIHwgICAgICB2YWxpZCBkYXRhICAgICB8ICAganVuayAgICB8XG4gICAgICAgIF4gICAgICAgXiAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgIF5cbiAgICAgICAgMCAgICBzdGFydF9wb3MgICAgICAgICAgICAgYnVmZmVyX2VuZCAgICBCeXRlcy5sZW5ndGggYnVmZmVyXG4gICopXG4gIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiArIG4gPiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIgdGhlbiBiZWdpblxuICAgICgqIFRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuXG4gICAgICAgPD0gQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyXG4gICAgdGhlbiBiZWdpblxuICAgICAgKCogQnV0IHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpZiB3ZSByZWNsYWltIHRoZSBqdW5rIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgICAgIG9mIHRoZSBidWZmZXIgKilcbiAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3NcbiAgICAgICAgICAgICAgICAgIGxleGJ1Zi5sZXhfYnVmZmVyIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcylcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgKCogV2UgbXVzdCBncm93IHRoZSBidWZmZXIuICBEb3VibGluZyBpdHMgc2l6ZSB3aWxsIHByb3ZpZGUgZW5vdWdoXG4gICAgICAgICBzcGFjZSBzaW5jZSBuIDw9IFN0cmluZy5sZW5ndGggYXV4X2J1ZmZlciA8PSBTdHJpbmcubGVuZ3RoIGJ1ZmZlci5cbiAgICAgICAgIFdhdGNoIG91dCBmb3Igc3RyaW5nIGxlbmd0aCBvdmVyZmxvdywgdGhvdWdoLiAqKVxuICAgICAgbGV0IG5ld2xlbiA9XG4gICAgICAgIEludC5taW4gKDIgKiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuID4gbmV3bGVuXG4gICAgICB0aGVuIGZhaWx3aXRoIFwiTGV4aW5nLmxleF9yZWZpbGw6IGNhbm5vdCBncm93IGJ1ZmZlclwiO1xuICAgICAgbGV0IG5ld2J1ZiA9IEJ5dGVzLmNyZWF0ZSBuZXdsZW4gaW5cbiAgICAgICgqIENvcHkgdGhlIHZhbGlkIGRhdGEgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV3IGJ1ZmZlciAqKVxuICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3Bvc1xuICAgICAgICAgICAgICAgICAgbmV3YnVmIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3Bvcyk7XG4gICAgICBsZXhidWYubGV4X2J1ZmZlciA8LSBuZXdidWZcbiAgICBlbmQ7XG4gICAgKCogUmVhbGxvY2F0aW9uIG9yIG5vdCwgd2UgaGF2ZSBzaGlmdGVkIHRoZSBkYXRhIGxlZnQgYnlcbiAgICAgICBzdGFydF9wb3MgY2hhcmFjdGVyczsgdXBkYXRlIHRoZSBwb3NpdGlvbnMgKilcbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIHM7XG4gICAgbGV4YnVmLmxleF9jdXJyX3BvcyA8LSBsZXhidWYubGV4X2N1cnJfcG9zIC0gcztcbiAgICBsZXhidWYubGV4X3N0YXJ0X3BvcyA8LSAwO1xuICAgIGxleGJ1Zi5sZXhfbGFzdF9wb3MgPC0gbGV4YnVmLmxleF9sYXN0X3BvcyAtIHM7XG4gICAgbGV4YnVmLmxleF9idWZmZXJfbGVuIDwtIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIHMgO1xuICAgIGxldCB0ID0gbGV4YnVmLmxleF9tZW0gaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIHQtMSBkb1xuICAgICAgbGV0IHYgPSB0LihpKSBpblxuICAgICAgaWYgdiA+PSAwIHRoZW5cbiAgICAgICAgdC4oaSkgPC0gdi1zXG4gICAgZG9uZVxuICBlbmQ7XG4gICgqIFRoZXJlIGlzIG5vdyBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gIEJ5dGVzLmJsaXQgYXV4X2J1ZmZlciAwIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiBuO1xuICBsZXhidWYubGV4X2J1ZmZlcl9sZW4gPC0gbGV4YnVmLmxleF9idWZmZXJfbGVuICsgblxuXG5sZXQgemVyb19wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMTtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gMDtcbn1cblxubGV0IGZyb21fZnVuY3Rpb24gPyh3aXRoX3Bvc2l0aW9ucyA9IHRydWUpIGYgPVxuICB7IHJlZmlsbF9idWZmID0gbGV4X3JlZmlsbCBmIChCeXRlcy5jcmVhdGUgNTEyKTtcbiAgICBsZXhfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDEwMjQ7XG4gICAgbGV4X2J1ZmZlcl9sZW4gPSAwO1xuICAgIGxleF9hYnNfcG9zID0gMDtcbiAgICBsZXhfc3RhcnRfcG9zID0gMDtcbiAgICBsZXhfY3Vycl9wb3MgPSAwO1xuICAgIGxleF9sYXN0X3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfYWN0aW9uID0gMDtcbiAgICBsZXhfbWVtID0gW3x8XTtcbiAgICBsZXhfZW9mX3JlYWNoZWQgPSBmYWxzZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IGZyb21fY2hhbm5lbCA/d2l0aF9wb3NpdGlvbnMgaWMgPVxuICBmcm9tX2Z1bmN0aW9uID93aXRoX3Bvc2l0aW9ucyAoZnVuIGJ1ZiBuIC0+IGlucHV0IGljIGJ1ZiAwIG4pXG5cbmxldCBmcm9tX3N0cmluZyA/KHdpdGhfcG9zaXRpb25zID0gdHJ1ZSkgcyA9XG4gIHsgcmVmaWxsX2J1ZmYgPSAoZnVuIGxleGJ1ZiAtPiBsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWUpO1xuICAgIGxleF9idWZmZXIgPSBCeXRlcy5vZl9zdHJpbmcgczsgKCogaGF2ZSB0byBtYWtlIGEgY29weSBmb3IgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB1bnNhZmUtc3RyaW5nIG1vZGUgKilcbiAgICBsZXhfYnVmZmVyX2xlbiA9IFN0cmluZy5sZW5ndGggcztcbiAgICBsZXhfYWJzX3BvcyA9IDA7XG4gICAgbGV4X3N0YXJ0X3BvcyA9IDA7XG4gICAgbGV4X2N1cnJfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9wb3MgPSAwO1xuICAgIGxleF9sYXN0X2FjdGlvbiA9IDA7XG4gICAgbGV4X21lbSA9IFt8fF07XG4gICAgbGV4X2VvZl9yZWFjaGVkID0gdHJ1ZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IHNldF9wb3NpdGlvbiBsZXhidWYgcG9zaXRpb24gPVxuICBsZXhidWYubGV4X2N1cnJfcCAgPC0ge3Bvc2l0aW9uIHdpdGggcG9zX2ZuYW1lID0gbGV4YnVmLmxleF9jdXJyX3AucG9zX2ZuYW1lfTtcbiAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIHBvc2l0aW9uLnBvc19jbnVtXG5cbmxldCBzZXRfZmlsZW5hbWUgbGV4YnVmIGZuYW1lID1cbiAgbGV4YnVmLmxleF9jdXJyX3AgPC0ge2xleGJ1Zi5sZXhfY3Vycl9wIHdpdGggcG9zX2ZuYW1lID0gZm5hbWV9XG5cbmxldCB3aXRoX3Bvc2l0aW9ucyBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3NcblxubGV0IGxleGVtZSBsZXhidWYgPVxuICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gIEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbmxldCBzdWJfbGV4ZW1lIGxleGJ1ZiBpMSBpMiA9XG4gIGxldCBsZW4gPSBpMi1pMSBpblxuICBCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGkxIGxlblxuXG5sZXQgc3ViX2xleGVtZV9vcHQgbGV4YnVmIGkxIGkyID1cbiAgaWYgaTEgPj0gMCB0aGVuIGJlZ2luXG4gICAgbGV0IGxlbiA9IGkyLWkxIGluXG4gICAgU29tZSAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBpMSBsZW4pXG4gIGVuZCBlbHNlIGJlZ2luXG4gICAgTm9uZVxuICBlbmRcblxubGV0IHN1Yl9sZXhlbWVfY2hhciBsZXhidWYgaSA9IEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciBpXG5cbmxldCBzdWJfbGV4ZW1lX2NoYXJfb3B0IGxleGJ1ZiBpID1cbiAgaWYgaSA+PSAwIHRoZW5cbiAgICBTb21lIChCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgaSlcbiAgZWxzZVxuICAgIE5vbmVcblxuXG5sZXQgbGV4ZW1lX2NoYXIgbGV4YnVmIGkgPVxuICBCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgKGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgaSlcblxubGV0IGxleGVtZV9zdGFydCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3AucG9zX2NudW1cbmxldCBsZXhlbWVfZW5kIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wLnBvc19jbnVtXG5cbmxldCBsZXhlbWVfc3RhcnRfcCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3BcbmxldCBsZXhlbWVfZW5kX3AgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3BcblxubGV0IG5ld19saW5lIGxleGJ1ZiA9XG4gIGxldCBsY3AgPSBsZXhidWYubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsZXhidWYubGV4X2N1cnJfcCA8LVxuICAgICAgeyBsY3Agd2l0aFxuICAgICAgICBwb3NfbG51bSA9IGxjcC5wb3NfbG51bSArIDE7XG4gICAgICAgIHBvc19ib2wgPSBsY3AucG9zX2NudW07XG4gICAgICB9XG5cblxuXG4oKiBEaXNjYXJkIGRhdGEgbGVmdCBpbiBsZXhlciBidWZmZXIuICopXG5cbmxldCBmbHVzaF9pbnB1dCBsYiA9XG4gIGxiLmxleF9jdXJyX3BvcyA8LSAwO1xuICBsYi5sZXhfYWJzX3BvcyA8LSAwO1xuICBsZXQgbGNwID0gbGIubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsYi5sZXhfY3Vycl9wIDwtIHt6ZXJvX3BvcyB3aXRoIHBvc19mbmFtZSA9IGxjcC5wb3NfZm5hbWV9O1xuICBsYi5sZXhfYnVmZmVyX2xlbiA8LSAwO1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgIEJlbm9pdCBWYXVnb24sIEVOU1RBICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAoKiBUb29scyB0byBtYW5pcHVsYXRlIHNjYW5uaW5nIHNldCBvZiBjaGFycyAoc2VlICVbLi4uXSkgKilcblxudHlwZSBtdXRhYmxlX2NoYXJfc2V0ID0gYnl0ZXNcblxuKCogQ3JlYXRlIGEgZnJlc2gsIGVtcHR5LCBtdXRhYmxlIGNoYXIgc2V0LiAqKVxubGV0IGNyZWF0ZV9jaGFyX3NldCAoKSA9IEJ5dGVzLm1ha2UgMzIgJ1xcMDAwJ1xuXG4oKiBBZGQgYSBjaGFyIGluIGEgbXV0YWJsZSBjaGFyIHNldC4gKilcbmxldCBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyA9XG4gIGxldCBpbmQgPSBpbnRfb2ZfY2hhciBjIGluXG4gIGxldCBzdHJfaW5kID0gaW5kIGxzciAzIGFuZCBtYXNrID0gMSBsc2wgKGluZCBsYW5kIDBiMTExKSBpblxuICBCeXRlcy5zZXQgY2hhcl9zZXQgc3RyX2luZFxuICAgIChjaGFyX29mX2ludCAoaW50X29mX2NoYXIgKEJ5dGVzLmdldCBjaGFyX3NldCBzdHJfaW5kKSBsb3IgbWFzaykpXG5cbmxldCBmcmVlemVfY2hhcl9zZXQgY2hhcl9zZXQgPVxuICBCeXRlcy50b19zdHJpbmcgY2hhcl9zZXRcblxuKCogQ29tcHV0ZSB0aGUgY29tcGxlbWVudCBvZiBhIGNoYXIgc2V0LiAqKVxubGV0IHJldl9jaGFyX3NldCBjaGFyX3NldCA9XG4gIGxldCBjaGFyX3NldCcgPSBjcmVhdGVfY2hhcl9zZXQgKCkgaW5cbiAgZm9yIGkgPSAwIHRvIDMxIGRvXG4gICAgQnl0ZXMuc2V0IGNoYXJfc2V0JyBpXG4gICAgICAoY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIChTdHJpbmcuZ2V0IGNoYXJfc2V0IGkpIGx4b3IgMHhGRikpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGNoYXJfc2V0J1xuXG4oKiBSZXR1cm4gdHJ1ZSBpZiBhIGBjJyBpcyBpbiBgY2hhcl9zZXQnLiAqKVxubGV0IGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgPVxuICBsZXQgaW5kID0gaW50X29mX2NoYXIgYyBpblxuICBsZXQgc3RyX2luZCA9IGluZCBsc3IgMyBhbmQgbWFzayA9IDEgbHNsIChpbmQgbGFuZCAwYjExMSkgaW5cbiAgKGludF9vZl9jaGFyIChTdHJpbmcuZ2V0IGNoYXJfc2V0IHN0cl9pbmQpIGxhbmQgbWFzaykgPD4gMFxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCogSWdub3JlZCBwYXJhbSBjb252ZXJzaW9uICopXG5cbigqIEdBRFQgdXNlZCB0byBhYnN0cmFjdCBhbiBleGlzdGVudGlhbCB0eXBlIHBhcmFtZXRlci4gKilcbigqIFNlZSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYXJhbV9mb3JtYXRfZWJiID0gUGFyYW1fZm9ybWF0X0VCQiA6XG4gICAgKCd4IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYXJhbV9mb3JtYXRfZWJiXG5cbigqIENvbXB1dGUgYSBwYWRkaW5nIGFzc29jaWF0ZWQgdG8gYSBwYWRfb3B0aW9uIChzZWUgXCIlXzQyZFwiKS4gKilcbmxldCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBOb19wYWRkaW5nXG4gIHwgU29tZSB3aWR0aCAtPiBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKVxuXG4oKiBDb21wdXRlIGEgcHJlY2lzaW9uIGFzc29jaWF0ZWQgdG8gYSBwcmVjX29wdGlvbiAoc2VlIFwiJV8uNDJmXCIpLiAqKVxubGV0IHByZWNfb2ZfcHJlY19vcHQgcHJlY19vcHQgPSBtYXRjaCBwcmVjX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBOb19wcmVjaXNpb25cbiAgfCBTb21lIG5kZWMgLT4gTGl0X3ByZWNpc2lvbiBuZGVjXG5cbigqIFR1cm4gYW4gaWdub3JlZCBwYXJhbSBpbnRvIGl0cyBlcXVpdmFsZW50IG5vdC1pZ25vcmVkIGZvcm1hdCBub2RlLiAqKVxuKCogVXNlZCBmb3IgZm9ybWF0IHByZXR0eS1wcmludGluZyBhbmQgU2NhbmYuICopXG5sZXQgcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IDogdHlwZSBhIGIgYyBkIGUgZiB4IHkgLlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBpZ25vcmVkIC0+ICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYXJhbV9mb3JtYXRfZWJiID1cbmZ1biBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2hhciBmbXQpXG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChDYW1sX2NoYXIgZm10KVxuICB8IElnbm9yZWRfc3RyaW5nIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTdHJpbmcgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKEludCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2ludDMyIChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoSW50MzIgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChOYXRpdmVpbnQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQ2NCAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEludDY0IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfZmxvYXQgKHBhZF9vcHQsIHByZWNfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChGbG9hdCAoKEZsb2F0X2ZsYWdfLCBGbG9hdF9mKSxcbiAgICAgICAgICAgICAgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgcHJlY19vZl9wcmVjX29wdCBwcmVjX29wdCwgZm10KSlcbiAgfCBJZ25vcmVkX2Jvb2wgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKEJvb2wgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgZm10KSlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHkpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIGZtdCkpXG4gIHwgSWdub3JlZF9yZWFkZXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChSZWFkZXIgZm10KVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXQpKVxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10KSlcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9uZXh0X2NoYXIgZm10KVxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUeXBlcyAqKVxuXG50eXBlICgnYiwgJ2MpIGFjY19mb3JtYXR0aW5nX2dlbiA9XG4gIHwgQWNjX29wZW5fdGFnIG9mICgnYiwgJ2MpIGFjY1xuICB8IEFjY19vcGVuX2JveCBvZiAoJ2IsICdjKSBhY2NcblxuKCogUmV2ZXJzZWQgbGlzdCBvZiBwcmludGluZyBhdG9tcy4gKilcbigqIFVzZWQgdG8gYWNjdW11bGF0ZSBwcmludGYgYXJndW1lbnRzLiAqKVxuYW5kICgnYiwgJ2MpIGFjYyA9XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IG9mICgnYiwgJ2MpIGFjYyAqIGZvcm1hdHRpbmdfbGl0XG4gICAgICAoKiBTcGVjaWFsIGZtdHRpbmcgKGJveCkgKilcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gb2YgKCdiLCAnYykgYWNjICogKCdiLCAnYykgYWNjX2Zvcm1hdHRpbmdfZ2VuXG4gICAgICAoKiBTcGVjaWFsIGZtdHRpbmcgKGJveCkgKilcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nICAgICAoKiBMaXRlcmFsIHN0cmluZyAqKVxuICB8IEFjY19jaGFyX2xpdGVyYWwgICBvZiAoJ2IsICdjKSBhY2MgKiBjaGFyICAgICAgICgqIExpdGVyYWwgY2hhciAqKVxuICB8IEFjY19kYXRhX3N0cmluZyAgICBvZiAoJ2IsICdjKSBhY2MgKiBzdHJpbmcgICAgICgqIEdlbmVyYXRlZCBzdHJpbmcgKilcbiAgfCBBY2NfZGF0YV9jaGFyICAgICAgb2YgKCdiLCAnYykgYWNjICogY2hhciAgICAgICAoKiBHZW5lcmF0ZWQgY2hhciAqKVxuICB8IEFjY19kZWxheSAgICAgICAgICBvZiAoJ2IsICdjKSBhY2MgKiAoJ2IgLT4gJ2MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBEZWxheWVkIHByaW50aW5nICglYSwgJXQpICopXG4gIHwgQWNjX2ZsdXNoICAgICAgICAgIG9mICgnYiwgJ2MpIGFjYyAgICAgICAgICAgICAgKCogRmx1c2ggKilcbiAgfCBBY2NfaW52YWxpZF9hcmcgICAgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nXG4gICAgICAoKiBSYWlzZSBJbnZhbGlkX2FyZ3VtZW50IG1zZyAqKVxuICB8IEVuZF9vZl9hY2NcblxuKCogTGlzdCBvZiBoZXRlcm9nZW5lb3VzIHZhbHVlcy4gKilcbigqIFVzZWQgdG8gYWNjdW11bGF0ZSBzY2FuZiBjYWxsYmFjayBhcmd1bWVudHMuICopXG50eXBlICgnYSwgJ2IpIGhldGVyX2xpc3QgPVxuICB8IENvbnMgOiAnYyAqICgnYSwgJ2IpIGhldGVyX2xpc3QgLT4gKCdjIC0+ICdhLCAnYikgaGV0ZXJfbGlzdFxuICB8IE5pbCA6ICgnYiwgJ2IpIGhldGVyX2xpc3RcblxuKCogRXhpc3RlbnRpYWwgQmxhY2sgQm94ZXMuICopXG4oKiBVc2VkIHRvIGFic3RyYWN0IHNvbWUgZXhpc3RlbnRpYWwgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nIGFuZCBhbiBmbXR0eS4gKilcbigqIFNlZSB0aGUgdHlwZV9wYWRkaW5nIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkZGluZ19mbXR0eV9lYmIgPSBQYWRkaW5nX2ZtdHR5X0VCQiA6XG4gICAgICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZGRpbmdfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcsIGEgcHJlY2lzaW9uIGFuZCBhbiBmbXR0eS4gKilcbigqIFNlZSB0aGUgdHlwZV9wYWRwcmVjIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkcHJlY19mbXR0eV9lYmIgPSBQYWRwcmVjX2ZtdHR5X0VCQiA6XG4gICAgICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksICd6KSBwcmVjaXNpb24gKiAoJ3osICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZHByZWNfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcgYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3BhZGRpbmdfZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdlLCAnZikgcGFkZGluZ19mbXRfZWJiID0gUGFkZGluZ19mbXRfRUJCIDpcbiAgICAgKF8sICd4IC0+ICdhKSBwYWRkaW5nICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2UsICdmKSBwYWRkaW5nX2ZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcHJlY2lzaW9uIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wcmVjaXNpb25fZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdlLCAnZikgcHJlY2lzaW9uX2ZtdF9lYmIgPSBQcmVjaXNpb25fZm10X0VCQiA6XG4gICAgIChfLCAneCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2UsICdmKSBwcmVjaXNpb25fZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcGFkcHJlY19mbXRfZWJiIGFuZCBwYXJzZV9mb3JtYXQgZnVuY3Rpb25zLiAqKVxudHlwZSAoJ3AsICdiLCAnYywgJ2UsICdmKSBwYWRwcmVjX2ZtdF9lYmIgPSBQYWRwcmVjX2ZtdF9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAncCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3AsICdiLCAnYywgJ2UsICdmKSBwYWRwcmVjX2ZtdF9lYmJcblxuKCogQWJzdHJhY3QgdGhlICdhIGFuZCAnZCBwYXJhbWV0ZXJzIG9mIGFuIGZtdC4gKilcbigqIE91dHB1dCB0eXBlIG9mIHRoZSBmb3JtYXQgcGFyc2luZyBmdW5jdGlvbi4gKilcbnR5cGUgKCdiLCAnYywgJ2UsICdmKSBmbXRfZWJiID0gRm10X0VCQiA6XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCdiLCAnYywgJ2UsICdmKSBmbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhbiBmbXR0eSBhbmQgYW4gZm10LiAqKVxuKCogU2VlIHRoZSB0eXBlX2Zvcm1hdF9nZW4gZnVuY3Rpb24uICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRfZm10dHlfZWJiID0gRm10X2ZtdHR5X0VCQiA6XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ3ksICd4KSBmbXQgKlxuICAgICAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGFuIGZtdHR5IGFuZCBhbiBmbXQuICopXG4oKiBTZWUgdGhlIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfZm10X2ViYiA9IEZtdHR5X2ZtdF9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgZm10dHkgKlxuICAgICAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10X2ZtdHR5X2ViYiAtPlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfZm10X2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgZm10dHkgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIGZvcm1hdCB0eXBlcy4gKilcbnR5cGUgZm10dHlfZWJiID0gRm10dHlfRUJCIDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+IGZtdHR5X2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgcGFkZGluZyB0eXBlIHBhcmFtZXRlcnMuICopXG4oKiBVc2VkIHRvIGNvbXBhcmUgcGFkZGluZ3MuICopXG50eXBlIHBhZGRpbmdfZWJiID0gUGFkZGluZ19FQkIgOiAoJ2EsICdiKSBwYWRkaW5nIC0+IHBhZGRpbmdfZWJiXG5cbigqIEFic3RyYWN0IGFsbCBwcmVjaXNpb24gdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIHByZWNpc2lvbnMuICopXG50eXBlIHByZWNpc2lvbl9lYmIgPSBQcmVjaXNpb25fRUJCIDogKCdhLCAnYikgcHJlY2lzaW9uIC0+IHByZWNpc2lvbl9lYmJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBDb25zdGFudHMgKilcblxuKCogRGVmYXVsdCBwcmVjaXNpb24gZm9yIGZsb2F0IHByaW50aW5nLiAqKVxubGV0IGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252ID1cbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRyB8IEZsb2F0X2ggfCBGbG9hdF9IXG4gIHwgRmxvYXRfQ0YgLT4gLTZcbiAgKCogRm9yICVoICVIIGFuZCAlI0YgZm9ybWF0cywgYSBuZWdhdGl2ZSBwcmVjaXNpb24gbWVhbnMgXCJhcyBtYW55IGRpZ2l0cyBhc1xuICAgICBuZWNlc3NhcnlcIi4gIEZvciB0aGUgb3RoZXIgRlAgZm9ybWF0cywgd2UgdGFrZSB0aGUgYWJzb2x1dGUgdmFsdWVcbiAgICAgb2YgdGhlIHByZWNpc2lvbiwgaGVuY2UgNiBkaWdpdHMgYnkgZGVmYXVsdC4gKilcbiAgfCBGbG9hdF9GIC0+IDEyXG4gICgqIERlZmF1bHQgcHJlY2lzaW9uIGZvciBPQ2FtbCBmbG9hdCBwcmludGluZyAoJUYpLiAqKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEV4dGVybmFscyAqKVxuXG5leHRlcm5hbCBmb3JtYXRfZmxvYXQ6IHN0cmluZyAtPiBmbG9hdCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfZm9ybWF0X2Zsb2F0XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQ6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuZXh0ZXJuYWwgZm9ybWF0X2ludDMyOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5leHRlcm5hbCBmb3JtYXRfbmF0aXZlaW50OiBzdHJpbmcgLT4gbmF0aXZlaW50IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9uYXRpdmVpbnRfZm9ybWF0XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQ2NDogc3RyaW5nIC0+IGludDY0IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9pbnQ2NF9mb3JtYXRcIlxuZXh0ZXJuYWwgaGV4c3RyaW5nX29mX2Zsb2F0OiBmbG9hdCAtPiBpbnQgLT4gY2hhciAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0XCJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICgqIFRvb2xzIHRvIHByZXR0eS1wcmludCBmb3JtYXRzICopXG5cbigqIFR5cGUgb2YgZXh0ZW5zaWJsZSBjaGFyYWN0ZXIgYnVmZmVycy4gKilcbnR5cGUgYnVmZmVyID0ge1xuICBtdXRhYmxlIGluZCA6IGludDtcbiAgbXV0YWJsZSBieXRlcyA6IGJ5dGVzO1xufVxuXG4oKiBDcmVhdGUgYSBmcmVzaCBidWZmZXIuICopXG5sZXQgYnVmZmVyX2NyZWF0ZSBpbml0X3NpemUgPSB7IGluZCA9IDA7IGJ5dGVzID0gQnl0ZXMuY3JlYXRlIGluaXRfc2l6ZSB9XG5cbigqIENoZWNrIHNpemUgb2YgdGhlIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiBuZWVkZWQuICopXG5sZXQgYnVmZmVyX2NoZWNrX3NpemUgYnVmIG92ZXJoZWFkID1cbiAgbGV0IGxlbiA9IEJ5dGVzLmxlbmd0aCBidWYuYnl0ZXMgaW5cbiAgbGV0IG1pbl9sZW4gPSBidWYuaW5kICsgb3ZlcmhlYWQgaW5cbiAgaWYgbWluX2xlbiA+IGxlbiB0aGVuIChcbiAgICBsZXQgbmV3X2xlbiA9IEludC5tYXggKGxlbiAqIDIpIG1pbl9sZW4gaW5cbiAgICBsZXQgbmV3X3N0ciA9IEJ5dGVzLmNyZWF0ZSBuZXdfbGVuIGluXG4gICAgQnl0ZXMuYmxpdCBidWYuYnl0ZXMgMCBuZXdfc3RyIDAgbGVuO1xuICAgIGJ1Zi5ieXRlcyA8LSBuZXdfc3RyO1xuICApXG5cbigqIEFkZCB0aGUgY2hhcmFjdGVyIGBjJyB0byB0aGUgYnVmZmVyIGBidWYnLiAqKVxubGV0IGJ1ZmZlcl9hZGRfY2hhciBidWYgYyA9XG4gIGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiAxO1xuICBCeXRlcy5zZXQgYnVmLmJ5dGVzIGJ1Zi5pbmQgYztcbiAgYnVmLmluZCA8LSBidWYuaW5kICsgMVxuXG4oKiBBZGQgdGhlIHN0cmluZyBgcycgdG8gdGhlIGJ1ZmZlciBgYnVmJy4gKilcbmxldCBidWZmZXJfYWRkX3N0cmluZyBidWYgcyA9XG4gIGxldCBzdHJfbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiBzdHJfbGVuO1xuICBTdHJpbmcuYmxpdCBzIDAgYnVmLmJ5dGVzIGJ1Zi5pbmQgc3RyX2xlbjtcbiAgYnVmLmluZCA8LSBidWYuaW5kICsgc3RyX2xlblxuXG4oKiBHZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGJ1ZmZlci4gKilcbmxldCBidWZmZXJfY29udGVudHMgYnVmID1cbiAgQnl0ZXMuc3ViX3N0cmluZyBidWYuYnl0ZXMgMCBidWYuaW5kXG5cbigqKiopXG5cbigqIENvbnZlcnQgYW4gaW50ZWdlciBjb252ZXJzaW9uIHRvIGNoYXIuICopXG5sZXQgY2hhcl9vZl9pY29udiBpY29udiA9IG1hdGNoIGljb252IHdpdGhcbiAgfCBJbnRfZCB8IEludF9wZCB8IEludF9zZCB8IEludF9DZCAtPiAnZCcgfCBJbnRfaSB8IEludF9waSB8IEludF9zaVxuICB8IEludF9DaSAtPiAnaScgfCBJbnRfeCB8IEludF9DeCAtPiAneCcgfCBJbnRfWCB8IEludF9DWCAtPiAnWCcgfCBJbnRfb1xuICB8IEludF9DbyAtPiAnbycgfCBJbnRfdSB8IEludF9DdSAtPiAndSdcblxuKCogQ29udmVydCBhIGZsb2F0IGNvbnZlcnNpb24gdG8gY2hhci4gKilcbigqIGBjRicgd2lsbCBiZSAnRicgZm9yIGRpc3BsYXlpbmcgZm9ybWF0IGFuZCAnZycgdG8gY2FsbCBsaWJjIHByaW50ZiAqKVxubGV0IGNoYXJfb2ZfZmNvbnYgPyhjRj0nRicpIGZjb252ID0gbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9mIC0+ICdmJyB8IEZsb2F0X2UgLT4gJ2UnXG4gIHwgRmxvYXRfRSAtPiAnRScgfCBGbG9hdF9nIC0+ICdnJ1xuICB8IEZsb2F0X0cgLT4gJ0cnIHwgRmxvYXRfRiAtPiBjRlxuICB8IEZsb2F0X2ggLT4gJ2gnIHwgRmxvYXRfSCAtPiAnSCdcbiAgfCBGbG9hdF9DRiAtPiAnRidcblxuXG4oKiBDb252ZXJ0IGEgc2Nhbm5pbmcgY291bnRlciB0byBjaGFyLiAqKVxubGV0IGNoYXJfb2ZfY291bnRlciBjb3VudGVyID0gbWF0Y2ggY291bnRlciB3aXRoXG4gIHwgTGluZV9jb3VudGVyICAtPiAnbCdcbiAgfCBDaGFyX2NvdW50ZXIgIC0+ICduJ1xuICB8IFRva2VuX2NvdW50ZXIgLT4gJ04nXG5cbigqKiopXG5cbigqIFByaW50IGEgY2hhcl9zZXQgaW4gYSBidWZmZXIgd2l0aCB0aGUgT0NhbWwgZm9ybWF0IGxleGljYWwgY29udmVudGlvbi4gKilcbmxldCBicHJpbnRfY2hhcl9zZXQgYnVmIGNoYXJfc2V0ID1cbiAgbGV0IHJlYyBwcmludF9zdGFydCBzZXQgPVxuICAgIGxldCBpc19hbG9uZSBjID1cbiAgICAgIGxldCBiZWZvcmUsIGFmdGVyID0gQ2hhci4oY2hyIChjb2RlIGMgLSAxKSwgY2hyIChjb2RlIGMgKyAxKSkgaW5cbiAgICAgIGlzX2luX2NoYXJfc2V0IHNldCBjXG4gICAgICAmJiBub3QgKGlzX2luX2NoYXJfc2V0IHNldCBiZWZvcmUgJiYgaXNfaW5fY2hhcl9zZXQgc2V0IGFmdGVyKSBpblxuICAgIGlmIGlzX2Fsb25lICddJyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ10nO1xuICAgIHByaW50X291dCBzZXQgMTtcbiAgICBpZiBpc19hbG9uZSAnLScgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICctJztcbiAgYW5kIHByaW50X291dCBzZXQgaSA9XG4gICAgaWYgaSA8IDI1NiB0aGVuXG4gICAgICBpZiBpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IGkpIHRoZW4gcHJpbnRfZmlyc3Qgc2V0IGlcbiAgICAgIGVsc2UgcHJpbnRfb3V0IHNldCAoaSArIDEpXG4gIGFuZCBwcmludF9maXJzdCBzZXQgaSA9XG4gICAgbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgfCAnXFwyNTUnIC0+IHByaW50X2NoYXIgYnVmIDI1NTtcbiAgICB8ICddJyB8ICctJyAtPiBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgfCBfIC0+IHByaW50X3NlY29uZCBzZXQgKGkgKyAxKTtcbiAgYW5kIHByaW50X3NlY29uZCBzZXQgaSA9XG4gICAgaWYgaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBpKSB0aGVuXG4gICAgICBtYXRjaCBjaGFyX29mX2ludCBpIHdpdGhcbiAgICAgIHwgJ1xcMjU1JyAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAyNTQ7XG4gICAgICAgIHByaW50X2NoYXIgYnVmIDI1NTtcbiAgICAgIHwgJ10nIHwgJy0nIHdoZW4gbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IChpICsgMSkpKSAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgICBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgICB8IF8gd2hlbiBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgKGkgKyAxKSkpIC0+XG4gICAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICAgIHByaW50X2NoYXIgYnVmIGk7XG4gICAgICAgIHByaW50X291dCBzZXQgKGkgKyAyKTtcbiAgICAgIHwgXyAtPlxuICAgICAgICBwcmludF9pbiBzZXQgKGkgLSAxKSAoaSArIDIpO1xuICAgIGVsc2UgKFxuICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgIHByaW50X291dCBzZXQgKGkgKyAxKTtcbiAgICApXG4gIGFuZCBwcmludF9pbiBzZXQgaSBqID1cbiAgICBpZiBqID0gMjU2IHx8IG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBqKSkgdGhlbiAoXG4gICAgICBwcmludF9jaGFyIGJ1ZiBpO1xuICAgICAgcHJpbnRfY2hhciBidWYgKGludF9vZl9jaGFyICctJyk7XG4gICAgICBwcmludF9jaGFyIGJ1ZiAoaiAtIDEpO1xuICAgICAgaWYgaiA8IDI1NiB0aGVuIHByaW50X291dCBzZXQgKGogKyAxKTtcbiAgICApIGVsc2VcbiAgICAgIHByaW50X2luIHNldCBpIChqICsgMSk7XG4gIGFuZCBwcmludF9jaGFyIGJ1ZiBpID0gbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgfCAnJScgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICAgIHwgJ0AnIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICdAJztcbiAgICB8IGMgICAtPiBidWZmZXJfYWRkX2NoYXIgYnVmIGM7XG4gIGluXG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ1snO1xuICBwcmludF9zdGFydCAoXG4gICAgaWYgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgJ1xcMDAwJ1xuICAgIHRoZW4gKCBidWZmZXJfYWRkX2NoYXIgYnVmICdeJzsgcmV2X2NoYXJfc2V0IGNoYXJfc2V0IClcbiAgICBlbHNlIGNoYXJfc2V0XG4gICk7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ10nXG5cbigqKiopXG5cbigqIFByaW50IGEgcGFkdHkgaW4gYSBidWZmZXIgd2l0aCB0aGUgZm9ybWF0LWxpa2Ugc3ludGF4LiAqKVxubGV0IGJwcmludF9wYWR0eSBidWYgcGFkdHkgPSBtYXRjaCBwYWR0eSB3aXRoXG4gIHwgTGVmdCAgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLSdcbiAgfCBSaWdodCAtPiAoKVxuICB8IFplcm9zIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJzAnXG5cbigqIFByaW50IHRoZSAnXycgb2YgYW4gaWdub3JlZCBmbGFnIGlmIG5lZWRlZC4gKilcbmxldCBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZyA9XG4gIGlmIGlnbl9mbGFnIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXydcblxuKCoqKilcblxubGV0IGJwcmludF9wYWRfb3B0IGJ1ZiBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgd2lkdGggLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIHdpZHRoKVxuXG4oKioqKVxuXG4oKiBQcmludCBwYWRkaW5nIGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcGFkZGluZyA6IHR5cGUgYSBiIC4gYnVmZmVyIC0+IChhLCBiKSBwYWRkaW5nIC0+IHVuaXQgPVxuZnVuIGJ1ZiBwYWQgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nIC0+ICgpXG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCBuKSAtPlxuICAgIGJwcmludF9wYWR0eSBidWYgcGFkdHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIG4pO1xuICB8IEFyZ19wYWRkaW5nIHBhZHR5IC0+XG4gICAgYnByaW50X3BhZHR5IGJ1ZiBwYWR0eTtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcqJ1xuXG4oKiBQcmludCBwcmVjaXNpb24gaW4gYSBidWZmZXIgd2l0aCB0aGUgZm9ybWF0LWxpa2Ugc3ludGF4LiAqKVxubGV0IGJwcmludF9wcmVjaXNpb24gOiB0eXBlIGEgYiAuIGJ1ZmZlciAtPiAoYSwgYikgcHJlY2lzaW9uIC0+IHVuaXQgPVxuICBmdW4gYnVmIHByZWMgLT4gbWF0Y2ggcHJlYyB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uIC0+ICgpXG4gIHwgTGl0X3ByZWNpc2lvbiBuIC0+XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLic7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIG4pO1xuICB8IEFyZ19wcmVjaXNpb24gLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIuKlwiXG5cbigqKiopXG5cbigqIFByaW50IHRoZSBvcHRpb25hbCAnKycsICcgJyBvciAnIycgYXNzb2NpYXRlZCB0byBhbiBpbnQgY29udmVyc2lvbi4gKilcbmxldCBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnYgPSBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X3BkIHwgSW50X3BpIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJysnXG4gIHwgSW50X3NkIHwgSW50X3NpIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyAnXG4gIHwgSW50X0N4IHwgSW50X0NYIHwgSW50X0NvIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcjJ1xuICB8IEludF9kIHwgSW50X2kgfCBJbnRfeCB8IEludF9YIHwgSW50X28gfCBJbnRfdSAtPiAoKVxuXG4oKiBQcmludCBhbiBjb21wbGV0ZSBpbnQgZm9ybWF0IGluIGEgYnVmZmVyIChleDogXCIlMy4qZFwiKS4gKilcbmxldCBicHJpbnRfaW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9pY29udiBpY29udilcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0IGZvcm1hdCBpbiBhIGJ1ZmZlci4gKilcbmxldCBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgYyA9XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252O1xuICBicHJpbnRfcGFkZGluZyBidWYgcGFkO1xuICBicHJpbnRfcHJlY2lzaW9uIGJ1ZiBwcmVjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIGM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpXG5cbigqKiopXG5cbigqIFByaW50IHRoZSBvcHRpb25hbCAnKycsICcgJyBhbmQvb3IgJyMnIGFzc29jaWF0ZWQgdG8gYSBmbG9hdCBjb252ZXJzaW9uLiAqKVxubGV0IGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udiA9XG4gIGJlZ2luIG1hdGNoIGZzdCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZmxhZ19wIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJysnXG4gIHwgRmxvYXRfZmxhZ19zIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyAnXG4gIHwgRmxvYXRfZmxhZ18gLT4gKCkgZW5kO1xuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X0NGIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyMnXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0dcbiAgfCBGbG9hdF9GIHwgRmxvYXRfaCB8IEZsb2F0X0ggLT4gKClcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmbG9hdCBmb3JtYXQgaW4gYSBidWZmZXIgKGV4OiBcIiUrKi4zZlwiKS4gKilcbmxldCBicHJpbnRfZmxvYXRfZm10IGJ1ZiBpZ25fZmxhZyBmY29udiBwYWQgcHJlYyA9XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgYnByaW50X2Zjb252X2ZsYWcgYnVmIGZjb252O1xuICBicHJpbnRfcGFkZGluZyBidWYgcGFkO1xuICBicHJpbnRfcHJlY2lzaW9uIGJ1ZiBwcmVjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2Zjb252IGZjb252KVxuXG4oKiBDb21wdXRlIHRoZSBsaXRlcmFsIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIEZvcm1hdHRpbmdfbGl0LiAqKVxuKCogVXNlZCBieSBQcmludGYgYW5kIFNjYW5mIHdoZXJlIGZvcm1hdHRpbmcgaXMgbm90IGludGVycHJldGVkLiAqKVxubGV0IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmb3JtYXR0aW5nX2xpdCA9IG1hdGNoIGZvcm1hdHRpbmdfbGl0IHdpdGhcbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAtPiBcIkBdXCJcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAtPiBcIkB9XCJcbiAgfCBCcmVhayAoc3RyLCBfLCBfKSAgICAtPiBzdHJcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAtPiBcIkA/XCJcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAtPiBcIkBcXG5cIlxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgIC0+IFwiQC5cIlxuICB8IE1hZ2ljX3NpemUgKHN0ciwgXykgIC0+IHN0clxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgIC0+IFwiQEBcIlxuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgIC0+IFwiQCVcIlxuICB8IFNjYW5faW5kaWMgYyAtPiBcIkBcIiBeIChTdHJpbmcubWFrZSAxIGMpXG5cbigqKiopXG5cbigqIFByaW50IGEgbGl0ZXJhbCBjaGFyIGluIGEgYnVmZmVyLCBlc2NhcGUgJyUnIGJ5IFwiJSVcIi4gKilcbmxldCBicHJpbnRfY2hhcl9saXRlcmFsIGJ1ZiBjaHIgPSBtYXRjaCBjaHIgd2l0aFxuICB8ICclJyAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlJVwiXG4gIHwgXyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmIGNoclxuXG4oKiBQcmludCBhIGxpdGVyYWwgc3RyaW5nIGluIGEgYnVmZmVyLCBlc2NhcGUgYWxsICclJyBieSBcIiUlXCIuICopXG5sZXQgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBzdHIgPVxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzdHIgLSAxIGRvXG4gICAgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgc3RyLltpXVxuICBkb25lXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBwcmV0dHktcHJpbnRpbmcgKilcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmb3JtYXQgdHlwZSAoYW4gZm10dHkpIGluIGEgYnVmZmVyLiAqKVxubGV0IHJlYyBicHJpbnRfZm10dHkgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCBpIGogayBsIC5cbiAgICBidWZmZXIgLT4gKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwpIGZtdHR5X3JlbCAtPiB1bml0ID1cbmZ1biBidWYgZm10dHkgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVjXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXNcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnRfdHkgcmVzdCAgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlaVwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEludDMyX3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVsaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJW5pXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnQ2NF90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlTGlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEZsb2F0X3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVmXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQm9vbF90eSByZXN0ICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJUJcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBBbHBoYV90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlYVwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFRoZXRhX3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiV0XCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQW55X3R5IHJlc3QgICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJT9cIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBSZWFkZXJfdHkgcmVzdCAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlclwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVfclwiO1xuICAgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IEZvcm1hdF9hcmdfdHkgKHN1Yl9mbXR0eSwgcmVzdCkgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIle1wiOyBicHJpbnRfZm10dHkgYnVmIHN1Yl9mbXR0eTtcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlfVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgRm9ybWF0X3N1YnN0X3R5IChzdWJfZm10dHksIF8sIHJlc3QpIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJShcIjsgYnByaW50X2ZtdHR5IGJ1ZiBzdWJfZm10dHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuXG4gIHwgRW5kX29mX2ZtdHR5IC0+ICgpXG5cbigqKiopXG5cbmxldCByZWMgaW50X29mX2N1c3RvbV9hcml0eSA6IHR5cGUgYSBiIGMgLlxuICAoYSwgYiwgYykgY3VzdG9tX2FyaXR5IC0+IGludCA9XG4gIGZ1bmN0aW9uXG4gIHwgQ3VzdG9tX3plcm8gLT4gMFxuICB8IEN1c3RvbV9zdWNjIHggLT4gMSArIGludF9vZl9jdXN0b21fYXJpdHkgeFxuXG4oKiBQcmludCBhIGNvbXBsZXRlIGZvcm1hdCBpbiBhIGJ1ZmZlci4gKilcbmxldCBicHJpbnRfZm10IGJ1ZiBmbXQgPVxuICBsZXQgcmVjIGZtdGl0ZXIgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gYm9vbCAtPiB1bml0ID1cbiAgZnVuIGZtdCBpZ25fZmxhZyAtPiBtYXRjaCBmbXQgd2l0aFxuICAgIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkZGluZyBidWYgcGFkOyBidWZmZXJfYWRkX2NoYXIgYnVmICdzJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkZGluZyBidWYgcGFkOyBidWZmZXJfYWRkX2NoYXIgYnVmICdTJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcblxuICAgIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2ludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgJ2wnO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICduJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICdMJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2Zsb2F0X2ZtdCBidWYgaWduX2ZsYWcgZmNvbnYgcGFkIHByZWM7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IENoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnYyc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdDJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQic7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBBbHBoYSByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdhJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgVGhldGEgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAndCc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpIC0+XG4gICAgICBmb3IgX2kgPSAxIHRvIGludF9vZl9jdXN0b21fYXJpdHkgYXJpdHkgZG9cbiAgICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICc/JztcbiAgICAgIGRvbmU7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBSZWFkZXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAncic7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZsdXNoIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUhXCI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG5cbiAgICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIHN0cjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcbiAgICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgICAgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgY2hyO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRfb3B0IGJ1ZiBwYWRfb3B0OyBidWZmZXJfYWRkX2NoYXIgYnVmICd7JztcbiAgICAgIGJwcmludF9mbXR0eSBidWYgZm10dHk7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICd9JztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKCc7XG4gICAgICBicHJpbnRfZm10dHkgYnVmIGZtdHR5OyBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKSc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgd2lkdGhfb3B0OyBicHJpbnRfY2hhcl9zZXQgYnVmIGNoYXJfc2V0O1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfY291bnRlciBjb3VudGVyKTtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgXCIwY1wiOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICAgIGxldCBQYXJhbV9mb3JtYXRfRUJCIGZtdCcgPSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3QgaW5cbiAgICAgIGZtdGl0ZXIgZm10JyB0cnVlO1xuXG4gICAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgKHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0KTtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggZm10aW5nX2dlbiB3aXRoXG4gICAgICB8IE9wZW5fdGFnIChGb3JtYXQgKF8sIHN0cikpIC0+XG4gICAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIkB7XCI7IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzdHJcbiAgICAgIHwgT3Blbl9ib3ggKEZvcm1hdCAoXywgc3RyKSkgLT5cbiAgICAgICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiQFtcIjsgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHN0clxuICAgICAgZW5kO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBFbmRfb2ZfZm9ybWF0IC0+ICgpXG5cbiAgaW4gZm10aXRlciBmbXQgZmFsc2VcblxuKCoqKilcblxuKCogQ29udmVydCBhIGZvcm1hdCB0byBzdHJpbmcuICopXG5sZXQgc3RyaW5nX29mX2ZtdCBmbXQgPVxuICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICBicHJpbnRfZm10IGJ1ZiBmbXQ7XG4gIGJ1ZmZlcl9jb250ZW50cyBidWZcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVHlwZSBleHRyYWN0aW9uICopXG5cbnR5cGUgKF8sIF8pIGVxID0gUmVmbCA6ICgnYSwgJ2EpIGVxXG5cbigqIEludmFyaWFudDogdGhpcyBmdW5jdGlvbiBpcyB0aGUgaWRlbnRpdHkgb24gdmFsdWVzLlxuXG4gICBJbiBwYXJ0aWN1bGFyLCBpZiAodHkxLCB0eTIpIGhhdmUgZXF1YWwgdmFsdWVzLCB0aGVuXG4gICAodHJhbnMgKHN5bW0gdHkxKSB0eTIpIHJlc3BlY3RzIHRoZSAndHJhbnMnIHByZWNvbmRpdGlvbi4gKilcbmxldCByZWMgc3ltbSA6IHR5cGUgYTEgYjEgYzEgZDEgZTEgZjEgYTIgYjIgYzIgZDIgZTIgZjIgLlxuICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4tPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMixcbiAgICBhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXR0eV9yZWxcbj0gZnVuY3Rpb25cbiAgfCBDaGFyX3R5IHJlc3QgLT4gQ2hhcl90eSAoc3ltbSByZXN0KVxuICB8IEludF90eSByZXN0IC0+IEludF90eSAoc3ltbSByZXN0KVxuICB8IEludDMyX3R5IHJlc3QgLT4gSW50MzJfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnQ2NF90eSByZXN0IC0+IEludDY0X3R5IChzeW1tIHJlc3QpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT4gTmF0aXZlaW50X3R5IChzeW1tIHJlc3QpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPiBGbG9hdF90eSAoc3ltbSByZXN0KVxuICB8IEJvb2xfdHkgcmVzdCAtPiBCb29sX3R5IChzeW1tIHJlc3QpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT4gU3RyaW5nX3R5IChzeW1tIHJlc3QpXG4gIHwgVGhldGFfdHkgcmVzdCAtPiBUaGV0YV90eSAoc3ltbSByZXN0KVxuICB8IEFscGhhX3R5IHJlc3QgLT4gQWxwaGFfdHkgKHN5bW0gcmVzdClcbiAgfCBBbnlfdHkgcmVzdCAtPiBBbnlfdHkgKHN5bW0gcmVzdClcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPiBSZWFkZXJfdHkgKHN5bW0gcmVzdClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+IElnbm9yZWRfcmVhZGVyX3R5IChzeW1tIHJlc3QpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIHN5bW0gcmVzdClcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkyLCB0eTEsIHN5bW0gcmVzdClcbiAgfCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG5cbmxldCByZWMgZm10dHlfcmVsX2RldCA6IHR5cGUgYTEgYiBjIGQxIGUxIGYxIGEyIGQyIGUyIGYyIC5cbiAgKGExLCBiLCBjLCBkMSwgZTEsIGYxLFxuICAgYTIsIGIsIGMsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbCAtPlxuICAgICgoZjEsIGYyKSBlcSAtPiAoYTEsIGEyKSBlcSlcbiAgKiAoKGExLCBhMikgZXEgLT4gKGYxLCBmMikgZXEpXG4gICogKChlMSwgZTIpIGVxIC0+IChkMSwgZDIpIGVxKVxuICAqICgoZDEsIGQyKSBlcSAtPiAoZTEsIGUyKSBlcSlcbj0gZnVuY3Rpb25cbiAgfCBFbmRfb2ZfZm10dHkgLT5cbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbClcbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZWQgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBkZSBSZWZsIGluIFJlZmwpXG4gIHwgRm9ybWF0X2FyZ190eSAoX3R5LCByZXN0KSAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgbGV0IGFnLCBnYSwgZGosIGpkID0gZm10dHlfcmVsX2RldCB0eSBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gbGV0IFJlZmwgPSBhZyBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGdhIFJlZmwgaW4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gbGV0IFJlZmwgPSBkaiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGpkIFJlZmwgaW4gbGV0IFJlZmwgPSBkZSBSZWZsIGluIFJlZmwpXG5cbigqIFByZWNvbmRpdGlvbjogd2UgYXNzdW1lIHRoYXQgdGhlIHR3byBmbXR0eV9yZWwgYXJndW1lbnRzIGhhdmUgZXF1YWxcbiAgIHZhbHVlcyAoYXQgcG9zc2libHkgZGlzdGluY3QgdHlwZXMpOyB0aGlzIGludmFyaWFudCBjb21lcyBmcm9tIHRoZSB3YXlcbiAgIGZtdHR5X3JlbCB3aXRuZXNzZXMgYXJlIHByb2R1Y2VkIGJ5IHRoZSB0eXBlLWNoZWNrZXJcblxuICAgVGhlIGNvZGUgYmVsb3cgdXNlcyAoYXNzZXJ0IGZhbHNlKSB3aGVuIHRoaXMgYXNzdW1wdGlvbiBpcyBicm9rZW4uIFRoZVxuICAgY29kZSBwYXR0ZXJuIGlzIHRoZSBmb2xsb3dpbmc6XG5cbiAgICAgfCBGb28geCwgRm9vIHkgLT5cbiAgICAgICAoKiBjYXNlIHdoZXJlIGluZGVlZCBib3RoIHZhbHVlc1xuICAgICAgICAgIHN0YXJ0IHdpdGggY29uc3RydWN0b3IgRm9vICopXG4gICAgIHwgRm9vIF8sIF9cbiAgICAgfCBfLCBGb28gXyAtPlxuICAgICAgICgqIGRpZmZlcmVudCBoZWFkIGNvbnN0cnVjdG9yczogYnJva2VuIHByZWNvbmRpdGlvbiAqKVxuICAgICAgIGFzc2VydCBmYWxzZVxuKilcbmFuZCB0cmFucyA6IHR5cGVcbiAgYTEgYjEgYzEgZDEgZTEgZjFcbiAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgYTMgYjMgYzMgZDMgZTMgZjNcbi5cbiAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIsXG4gICAgYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHlfcmVsXG4tPiAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXR0eV9yZWxcbj0gZnVuIHR5MSB0eTIgLT4gbWF0Y2ggdHkxLCB0eTIgd2l0aFxuICB8IENoYXJfdHkgcmVzdDEsIENoYXJfdHkgcmVzdDIgLT4gQ2hhcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgU3RyaW5nX3R5IHJlc3QxLCBTdHJpbmdfdHkgcmVzdDIgLT4gU3RyaW5nX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBCb29sX3R5IHJlc3QxLCBCb29sX3R5IHJlc3QyIC0+IEJvb2xfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludF90eSByZXN0MSwgSW50X3R5IHJlc3QyIC0+IEludF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50MzJfdHkgcmVzdDEsIEludDMyX3R5IHJlc3QyIC0+IEludDMyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnQ2NF90eSByZXN0MSwgSW50NjRfdHkgcmVzdDIgLT4gSW50NjRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IE5hdGl2ZWludF90eSByZXN0MSwgTmF0aXZlaW50X3R5IHJlc3QyIC0+IE5hdGl2ZWludF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRmxvYXRfdHkgcmVzdDEsIEZsb2F0X3R5IHJlc3QyIC0+IEZsb2F0X3R5ICh0cmFucyByZXN0MSByZXN0MilcblxuICB8IEFscGhhX3R5IHJlc3QxLCBBbHBoYV90eSByZXN0MiAtPiBBbHBoYV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQWxwaGFfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBBbHBoYV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgVGhldGFfdHkgcmVzdDEsIFRoZXRhX3R5IHJlc3QyIC0+IFRoZXRhX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBUaGV0YV90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIFRoZXRhX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBBbnlfdHkgcmVzdDEsIEFueV90eSByZXN0MiAtPiBBbnlfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEFueV90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEFueV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgUmVhZGVyX3R5IHJlc3QxLCBSZWFkZXJfdHkgcmVzdDIgLT4gUmVhZGVyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBSZWFkZXJfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBSZWFkZXJfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QxLCBJZ25vcmVkX3JlYWRlcl90eSByZXN0MiAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIElnbm9yZWRfcmVhZGVyX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBGb3JtYXRfYXJnX3R5ICh0eTEsIHJlc3QxKSwgRm9ybWF0X2FyZ190eSAodHkyLCByZXN0MikgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0cmFucyB0eTEgdHkyLCB0cmFucyByZXN0MSByZXN0MilcbiAgfCBGb3JtYXRfYXJnX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgRm9ybWF0X2FyZ190eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTExLCB0eTEyLCByZXN0MSksXG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTIxLCB0eTIyLCByZXN0MikgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEyKSB0eTIxIGluXG4gICAgbGV0IF8sIGYyLCBfLCBmNCA9IGZtdHR5X3JlbF9kZXQgdHkgaW5cbiAgICBsZXQgUmVmbCA9IGYyIFJlZmwgaW5cbiAgICBsZXQgUmVmbCA9IGY0IFJlZmwgaW5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MTEsIHR5MjIsIHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZvcm1hdF9zdWJzdF90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEZvcm1hdF9zdWJzdF90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRW5kX29mX2ZtdHR5LCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG4gIHwgRW5kX29mX2ZtdHR5LCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEVuZF9vZl9mbXR0eSAtPiBhc3NlcnQgZmFsc2VcblxubGV0IHJlYyBmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm9ybWF0dGluZ19nZW4gLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGZvcm1hdHRpbmdfZ2VuIC0+IG1hdGNoIGZvcm1hdHRpbmdfZ2VuIHdpdGhcbiAgfCBPcGVuX3RhZyAoRm9ybWF0IChmbXQsIF8pKSAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgT3Blbl9ib3ggKEZvcm1hdCAoZm10LCBfKSkgLT4gZm10dHlfb2ZfZm10IGZtdFxuXG4oKiBFeHRyYWN0IHRoZSB0eXBlIHJlcHJlc2VudGF0aW9uIChhbiBmbXR0eSkgb2YgYSBmb3JtYXQuICopXG5hbmQgZm10dHlfb2ZfZm10IDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBmbXR0eSAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgKFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgKFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuXG4gIHwgSW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEludF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBJbnQzMiAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnQzMl90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBOYXRpdmVpbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoTmF0aXZlaW50X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IEludDY0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEludDY0X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IEZsb2F0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEZsb2F0X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuXG4gIHwgQ2hhciByZXN0ICAgICAgICAgICAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgICAgICAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQm9vbCAocGFkLCByZXN0KSAgICAgICAgICAgLT5cbiAgICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChCb29sX3R5IChmbXR0eV9vZl9mbXQgcmVzdCkpXG4gIHwgQWxwaGEgcmVzdCAgICAgICAgICAgICAgICAgLT4gQWxwaGFfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFRoZXRhIHJlc3QgICAgICAgICAgICAgICAgIC0+IFRoZXRhX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAgICAtPiBmbXR0eV9vZl9jdXN0b20gYXJpdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFJlYWRlciByZXN0ICAgICAgICAgICAgICAgIC0+IFJlYWRlcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG5cbiAgfCBGb3JtYXRfYXJnIChfLCB0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0IChfLCB0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5LCB0eSwgZm10dHlfb2ZfZm10IHJlc3QpXG5cbiAgfCBGbHVzaCByZXN0ICAgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAgICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpIC0+IFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT4gSW50X3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBTY2FuX25leHRfY2hhciByZXN0ICAgICAgICAtPiBDaGFyX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpICAtPiBmbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdFxuICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIHJlc3QpICAtPlxuICAgIGNvbmNhdF9mbXR0eSAoZm10dHlfb2ZfZm9ybWF0dGluZ19nZW4gZm10aW5nX2dlbikgKGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRW5kX29mX2Zvcm1hdCAgICAgICAgICAgICAgLT4gRW5kX29mX2ZtdHR5XG5cbmFuZCBmbXR0eV9vZl9jdXN0b20gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gIChhLCB4LCB5KSBjdXN0b21fYXJpdHkgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICh5LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gYXJpdHkgZm10dHkgLT4gbWF0Y2ggYXJpdHkgd2l0aFxuICB8IEN1c3RvbV96ZXJvIC0+IGZtdHR5XG4gIHwgQ3VzdG9tX3N1Y2MgYXJpdHkgLT4gQW55X3R5IChmbXR0eV9vZl9jdXN0b20gYXJpdHkgZm10dHkpXG5cbigqIEV4dHJhY3QgdGhlIGZtdHR5IG9mIGFuIGlnbm9yZWQgcGFyYW1ldGVyIGZvbGxvd2VkIGJ5IHRoZSByZXN0IG9mXG4gICB0aGUgZm9ybWF0LiAqKVxuYW5kIGZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBpZ25vcmVkIC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gY29uY2F0X2ZtdHR5IGZtdHR5IChmbXR0eV9vZl9mbXQgZm10KVxuICB8IElnbm9yZWRfcmVhZGVyICAgICAgICAgICAgICAgICAgLT4gSWdub3JlZF9yZWFkZXJfdHkgKGZtdHR5X29mX2ZtdCBmbXQpXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG5cbigqIEFkZCBhbiBJbnRfdHkgbm9kZSBpZiBwYWRkaW5nIGlzIHRha2VuIGFzIGFuIGV4dHJhIGFyZ3VtZW50IChleDogXCIlKnNcIikuICopXG5hbmQgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSA6IHR5cGUgeCBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIGEpIHBhZGRpbmcgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+ICh4LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG4gIGZ1biBwYWQgZm10dHkgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgICAgLT4gZm10dHlcbiAgICB8IExpdF9wYWRkaW5nIF8gLT4gZm10dHlcbiAgICB8IEFyZ19wYWRkaW5nIF8gLT4gSW50X3R5IGZtdHR5XG5cbigqIEFkZCBhbiBJbnRfdHkgbm9kZSBpZiBwcmVjaXNpb24gaXMgdGFrZW4gYXMgYW4gZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUuKmZcIikuKilcbmFuZCBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgOiB0eXBlIHggYSBiIGMgZCBlIGYgLlxuICAgICh4LCBhKSBwcmVjaXNpb24gLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+ICh4LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG4gIGZ1biBwcmVjIGZtdHR5IC0+IG1hdGNoIHByZWMgd2l0aFxuICAgIHwgTm9fcHJlY2lzaW9uICAgIC0+IGZtdHR5XG4gICAgfCBMaXRfcHJlY2lzaW9uIF8gLT4gZm10dHlcbiAgICB8IEFyZ19wcmVjaXNpb24gICAtPiBJbnRfdHkgZm10dHlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgdHlwaW5nICopXG5cbigqIEV4Y2VwdGlvbiByYWlzZWQgd2hlbiBhIGZvcm1hdCBkb2VzIG5vdCBtYXRjaCBhIGdpdmVuIGZvcm1hdCB0eXBlLiAqKVxuZXhjZXB0aW9uIFR5cGVfbWlzbWF0Y2hcblxuKCogVHlwZSBhIHBhZGRpbmcuICopXG4oKiBUYWtlIGFuIEludF90eSBmcm9tIHRoZSBmbXR0eSBpZiB0aGUgaW50ZWdlciBzaG91bGQgYmUga2VwdCBhcyBhcmd1bWVudC4gKilcbigqIFJhaXNlIFR5cGVfbWlzbWF0Y2ggaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IHR5cGVfcGFkZGluZyA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYWRkaW5nX2ZtdHR5X2ViYiA9XG5mdW4gcGFkIGZtdHR5IC0+IG1hdGNoIHBhZCwgZm10dHkgd2l0aFxuICB8IE5vX3BhZGRpbmcsIF8gLT4gUGFkZGluZ19mbXR0eV9FQkIgKE5vX3BhZGRpbmcsIGZtdHR5KVxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIF8gLT4gUGFkZGluZ19mbXR0eV9FQkIgKExpdF9wYWRkaW5nIChwYWR0eSx3KSxmbXR0eSlcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgSW50X3R5IHJlc3QgLT4gUGFkZGluZ19mbXR0eV9FQkIgKEFyZ19wYWRkaW5nIHBhZHR5LHJlc3QpXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIENvbnZlcnQgYSAodXBhZGRpbmcsIHVwcmVjaXNpb24pIHRvIGEgKHBhZGRpbmcsIHByZWNpc2lvbikuICopXG4oKiBUYWtlIG9uZSBvciB0d28gSW50X3R5IGZyb20gdGhlIGZtdHR5IGlmIG5lZWRlZC4gKilcbigqIFJhaXNlIFR5cGVfbWlzbWF0Y2ggaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IHR5cGVfcGFkcHJlYyA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IHogLlxuICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeikgcHJlY2lzaW9uIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYWRwcmVjX2ZtdHR5X2ViYiA9XG5mdW4gcGFkIHByZWMgZm10dHkgLT4gbWF0Y2ggcHJlYywgdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIE5vX3ByZWNpc2lvbiwgcmVzdClcbiAgfCBMaXRfcHJlY2lzaW9uIHAsIFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIHJlc3QpIC0+XG4gICAgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgTGl0X3ByZWNpc2lvbiBwLCByZXN0KVxuICB8IEFyZ19wcmVjaXNpb24sIFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIEludF90eSByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIEFyZ19wcmVjaXNpb24sIHJlc3QpXG4gIHwgXywgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuKCogVHlwZSBhIGZvcm1hdCBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG4oKiBJZiB0eXBpbmcgc3VjY2VlZCwgZ2VuZXJhdGUgYSBjb3B5IG9mIHRoZSBmb3JtYXQgd2l0aCB0aGUgc2FtZVxuICAgIHR5cGUgcGFyYW1ldGVycyBhcyB0aGUgZm10dHkuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCByZWMgdHlwZV9mb3JtYXQgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjIgIC5cbiAgICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdFxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdFxuPSBmdW4gZm10IGZtdHR5IC0+IG1hdGNoIHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkgd2l0aFxuICB8IEZtdF9mbXR0eV9FQkIgKGZtdCcsIEVuZF9vZl9mbXR0eSkgLT4gZm10J1xuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG5hbmQgdHlwZV9mb3JtYXRfZ2VuIDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRfZm10dHlfZWJiXG49IGZ1biBmbXQgZm10dHkgLT4gbWF0Y2ggZm10LCBmbXR0eSB3aXRoXG4gIHwgQ2hhciBmbXRfcmVzdCwgQ2hhcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENoYXIgZm10JywgZm10dHknKVxuICB8IENhbWxfY2hhciBmbXRfcmVzdCwgQ2hhcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENhbWxfY2hhciBmbXQnLCBmbXR0eScpXG4gIHwgU3RyaW5nIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBTdHJpbmdfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKFN0cmluZyAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBTdHJpbmdfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKENhbWxfc3RyaW5nIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50MzJfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEludDMyIChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgTmF0aXZlaW50X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludDY0X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgRmxvYXRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEJvb2wgKHBhZCwgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZGRpbmcgcGFkIGZtdHR5IHdpdGhcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIEJvb2xfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEJvb2wgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBGbHVzaCBmbXRfcmVzdCwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGbHVzaCBmbXQnLCBmbXR0eScpXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU3RyaW5nX2xpdGVyYWwgKHN0ciwgZm10JyksIGZtdHR5JylcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENoYXJfbGl0ZXJhbCAoY2hyLCBmbXQnKSwgZm10dHknKVxuXG4gIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5LCBmbXRfcmVzdCksXG4gICAgRm9ybWF0X2FyZ190eSAoc3ViX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgc3ViX2ZtdHR5IDw+IEZtdHR5X0VCQiBzdWJfZm10dHknIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5JywgZm10JyksIGZtdHR5JylcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAoc3ViX2ZtdHR5MSwgX3N1Yl9mbXR0eTIsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWJfZm10dHkxKSB0aGVuXG4gICAgICByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID1cbiAgICAgIHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCAoZXJhc2VfcmVsIGZtdHR5X3Jlc3QpXG4gICAgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eTEsIGZtdCcpLCBmbXR0eScpXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBBbHBoYSBmbXRfcmVzdCwgQWxwaGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChBbHBoYSBmbXQnLCBmbXR0eScpXG4gIHwgVGhldGEgZm10X3Jlc3QsIFRoZXRhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoVGhldGEgZm10JywgZm10dHknKVxuXG4gICgqIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXQnKSwgZm10dHknKVxuICB8IEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nX2dlbiwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgdHlwZV9mb3JtYXR0aW5nX2dlbiBmb3JtYXR0aW5nX2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0XG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IFJlYWRlciBmbXRfcmVzdCwgUmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoUmVhZGVyIGZtdCcsIGZtdHR5JylcbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXRfcmVzdCksIFN0cmluZ190eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGZtdCcpLCBmbXR0eScpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpLCBJbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXQnKSwgZm10dHknKVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICB0eXBlX2lnbm9yZWRfcGFyYW0gaWduIHJlc3QgZm10dHlfcmVzdFxuXG4gIHwgRW5kX29mX2Zvcm1hdCwgZm10dHlfcmVzdCAtPiBGbXRfZm10dHlfRUJCIChFbmRfb2ZfZm9ybWF0LCBmbXR0eV9yZXN0KVxuXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbmFuZCB0eXBlX2Zvcm1hdHRpbmdfZ2VuIDogdHlwZSBhMSBhMyBiMSBiMyBjMSBjMyBkMSBkMyBlMSBlMiBlMyBmMSBmMiBmMyAuXG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZvcm1hdHRpbmdfZ2VuIC0+XG4gICAgKGYxLCBiMSwgYzEsIGUxLCBlMiwgZjIpIGZtdCAtPlxuICAgIChhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXR0eSAtPlxuICAgIChhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXRfZm10dHlfZWJiID1cbmZ1biBmb3JtYXR0aW5nX2dlbiBmbXQwIGZtdHR5MCAtPiBtYXRjaCBmb3JtYXR0aW5nX2dlbiB3aXRoXG4gIHwgT3Blbl90YWcgKEZvcm1hdCAoZm10MSwgc3RyKSkgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MiwgZm10dHkyKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQxIGZtdHR5MCBpblxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQzLCBmbXR0eTMpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDAgZm10dHkyIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdDIsIHN0cikpLCBmbXQzKSwgZm10dHkzKVxuICB8IE9wZW5fYm94IChGb3JtYXQgKGZtdDEsIHN0cikpIC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDIsIGZtdHR5MikgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MSBmbXR0eTAgaW5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MywgZm10dHkzKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQwIGZtdHR5MiBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQyLCBzdHIpKSwgZm10MyksIGZtdHR5MylcblxuKCogVHlwZSBhbiBJZ25vcmVkX3BhcmFtIG5vZGUgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuYW5kIHR5cGVfaWdub3JlZF9wYXJhbSA6IHR5cGUgcCBxIHggeSB6IHQgdSB2IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgeSwgeiwgdCwgcSwgcCkgaWdub3JlZCAtPlxuICAgIChwLCB5LCB6LCBxLCB1LCB2KSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10X2ZtdHR5X2ViYiA9XG5mdW4gaWduIGZtdCBmbXR0eSAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50IF8gICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50MzIgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfbmF0aXZlaW50IF8gICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50NjQgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZmxvYXQgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5KSAtPlxuICAgIHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgKElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5KSkgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eSkgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5JywgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSkgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5IGZtdCBmbXR0eSBpblxuICAgIEZtdF9mbXR0eV9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHknKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQnKSxcbiAgICAgICAgICAgICAgICAgICBmbXR0eScpXG4gIHwgSWdub3JlZF9yZWFkZXIgLT4gKFxuICAgIG1hdGNoIGZtdHR5IHdpdGhcbiAgICB8IElnbm9yZWRfcmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX3JlYWRlciwgZm10JyksIGZtdHR5JylcbiAgICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG5cbmFuZCB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIDogdHlwZSBhMSBhMiBiMSBiMiBjMSBjMiBkMSBkMiBlMSBlMiBmMSBmMiAuXG4gICAgKGEyLCBiMiwgYzIsIGQyLCBkMiwgYTIpIGlnbm9yZWQgLT5cbiAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10IC0+XG4gICAgKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5IC0+XG4gICAgKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdF9mbXR0eV9lYmJcbj0gZnVuIGlnbiBmbXQgZm10dHkgLT5cbiAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5IGluXG4gIEZtdF9mbXR0eV9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbiwgZm10JyksIGZtdHR5JylcblxuKCogVHlwaW5nIG9mIHRoZSBjb21wbGV4IGNhc2U6IFwiJV8oLi4uJSlcIi4gKilcbmFuZCB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiA6IHR5cGUgdyB4IHkgeiBwIHMgdCB1IGEgYiBjIGQgZSBmIC5cbiAgICAodywgeCwgeSwgeiwgcywgcCkgZm10dHkgLT5cbiAgICAocCwgeCwgeSwgcywgdCwgdSkgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eV9mbXRfZWJiID1cbmZ1biBzdWJfZm10dHkgZm10IGZtdHR5IC0+IG1hdGNoIHN1Yl9mbXR0eSwgZm10dHkgd2l0aFxuICB8IENoYXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQ2hhcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgU3RyaW5nX3R5IHN1Yl9mbXR0eV9yZXN0LCBTdHJpbmdfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoU3RyaW5nX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJbnRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEludDMyX3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnQzMl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJbnQzMl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgTmF0aXZlaW50X3R5IHN1Yl9mbXR0eV9yZXN0LCBOYXRpdmVpbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoTmF0aXZlaW50X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnQ2NF90eSBzdWJfZm10dHlfcmVzdCwgSW50NjRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50NjRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEZsb2F0X3R5IHN1Yl9mbXR0eV9yZXN0LCBGbG9hdF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGbG9hdF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgQm9vbF90eSBzdWJfZm10dHlfcmVzdCwgQm9vbF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChCb29sX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBBbHBoYV90eSBzdWJfZm10dHlfcmVzdCwgQWxwaGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQWxwaGFfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFRoZXRhX3R5IHN1Yl9mbXR0eV9yZXN0LCBUaGV0YV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChUaGV0YV90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgUmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0LCBSZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoUmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBzdWJfZm10dHlfcmVzdCwgSWdub3JlZF9yZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSWdub3JlZF9yZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuXG4gIHwgRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eSwgc3ViX2ZtdHR5X3Jlc3QpLFxuICAgIEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHknLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiBzdWIyX2ZtdHR5IDw+IEZtdHR5X0VCQiBzdWIyX2ZtdHR5JyB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5Jywgc3ViX2ZtdHR5X3Jlc3QnKSwgZm10JylcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHksICBzdWIyX2ZtdHR5LCAgc3ViX2ZtdHR5X3Jlc3QpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAoc3ViMV9mbXR0eScsIHN1YjJfZm10dHknLCBmbXR0eV9yZXN0KSAtPlxuICAgICgqIFRPRE8gZGVmaW5lIEZtdHR5X3JlbF9FQkIgdG8gcmVtb3ZlIHRob3NlIGVyYXNlX3JlbCAqKVxuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjFfZm10dHkpIDw+IEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjFfZm10dHknKVxuICAgIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIyX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIyX2ZtdHR5JylcbiAgICB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IHN1Yl9mbXR0eScgPSB0cmFucyAoc3ltbSBzdWIxX2ZtdHR5Jykgc3ViMl9mbXR0eScgaW5cbiAgICBsZXQgXywgZjIsIF8sIGY0ID0gZm10dHlfcmVsX2RldCBzdWJfZm10dHknIGluXG4gICAgbGV0IFJlZmwgPSBmMiBSZWZsIGluXG4gICAgbGV0IFJlZmwgPSBmNCBSZWZsIGluXG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gKGVyYXNlX3JlbCBzdWJfZm10dHlfcmVzdCkgZm10IGZtdHR5X3Jlc3RcbiAgICBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEZvcm1hdF9zdWJzdF90eSAoc3ViMV9mbXR0eScsIHN1YjJfZm10dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltbSBzdWJfZm10dHlfcmVzdCcpLFxuICAgICAgICAgICAgICAgICAgIGZtdCcpXG4gIHwgRW5kX29mX2ZtdHR5LCBmbXR0eSAtPlxuICAgIEZtdHR5X2ZtdF9FQkIgKEVuZF9vZl9mbXR0eSwgdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSlcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuKCogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBgcmVjYXN0YCBpcyBhIGJpdCBkaXNhcHBvaW50aW5nLiBUaGVcbiAgIGludmFyaWFudCBwcm92aWRlZCBieSB0aGUgdHlwZSBhcmUgdmVyeSBzdHJvbmc6IHRoZSBpbnB1dCBmb3JtYXQnc1xuICAgdHlwZSBpcyBpbiByZWxhdGlvbiB0byB0aGUgb3V0cHV0IHR5cGUncyBhcyB3aXRuZXNzZWQgYnkgdGhlXG4gICBmbXR0eV9yZWwgYXJndW1lbnQuIE9uZSB3b3VsZCBhdCBmaXJzdCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBiZVxuICAgdG90YWwsIGFuZCBpbXBsZW1lbnRhYmxlIGJ5IGV4aGF1c3RpdmUgcGF0dGVybiBtYXRjaGluZy4gSW5zdGVhZCxcbiAgIHdlIHJldXNlIHRoZSBoaWdobHkgcGFydGlhbCBhbmQgbXVjaCBsZXNzIHdlbGwtZGVmaW5lZCBmdW5jdGlvblxuICAgYHR5cGVfZm9ybWF0YCB0aGF0IGhhcyBsb3N0IGFsbCBrbm93bGVkZ2Ugb2YgdGhlIGNvcnJlc3BvbmRlbmNlXG4gICBiZXR3ZWVuIHRoZSBhcmd1bWVudCdzIHR5cGVzLlxuXG4gICBCZXNpZGVzIHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiByZXVzZXMgYSBsb3Qgb2YgdGhlXG4gICBgdHlwZV9mb3JtYXRgIGxvZ2ljIChlZy46IHNlZWluZyBJbnRfdHkgaW4gdGhlIGZtdHR5IHBhcmFtZXRlciBkb2VzXG4gICBub3QgbGV0IHlvdSBtYXRjaCBvbiBJbnQgb25seSwgYXMgeW91IG1heSBpbiBmYWN0IGhhdmUgRmxvYXRcbiAgIChBcmdfcGFkZGluZywgLi4uKSAoXCIlLipkXCIpIGJlZ2lubmluZyB3aXRoIGFuIEludF90eSksIGl0IGlzIGFsc29cbiAgIGEgcGFydGlhbCBmdW5jdGlvbiwgYmVjYXVzZSB0aGUgdHlwaW5nIGluZm9ybWF0aW9uIGluIGEgZm9ybWF0IGlzXG4gICBub3QgcXVpdGUgZW5vdWdoIHRvIHJlY29uc3RydWN0IGl0IHVuYW1iaWd1b3VzbHkuIEZvciBleGFtcGxlLCB0aGVcbiAgIGZvcm1hdCB0eXBlcyBvZiBcIiVkJV9yXCIgYW5kIFwiJV9yJWRcIiBoYXZlIHRoZSBzYW1lIGZvcm1hdDZcbiAgIHBhcmFtZXRlcnMsIGJ1dCB0aGV5IGFyZSBub3QgYXQgYWxsIGV4Y2hhbmdlYWJsZSwgYW5kIHB1dHRpbmcgb25lXG4gICBpbiBwbGFjZSBvZiB0aGUgb3RoZXIgbXVzdCByZXN1bHQgaW4gYSBkeW5hbWljIGZhaWx1cmUuXG5cbiAgIEdpdmVuIHRoYXQ6XG4gICAtIHdlJ2QgaGF2ZSB0byBkdXBsaWNhdGUgYSBsb3Qgb2Ygbm9uLXRyaXZpYWwgdHlwaW5nIGxvZ2ljIGZyb20gdHlwZV9mb3JtYXRcbiAgIC0gdGhpcyB3b3VsZG4ndCBldmVuIGVsaW1pbmF0ZSAoYWxsKSB0aGUgZHluYW1pYyBmYWlsdXJlc1xuICAgd2UgZGVjaWRlZCB0byBqdXN0IHJldXNlIHR5cGVfZm9ybWF0IGRpcmVjdGx5IGZvciBub3cuXG4qKVxubGV0IHJlY2FzdCA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMlxuICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdFxuPSBmdW4gZm10IGZtdHR5IC0+XG4gIHR5cGVfZm9ybWF0IGZtdCAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUHJpbnRpbmcgdG9vbHMgKilcblxuKCogQWRkIHBhZGRpbmcgc3BhY2VzIGFyb3VuZCBhIHN0cmluZy4gKilcbmxldCBmaXhfcGFkZGluZyBwYWR0eSB3aWR0aCBzdHIgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHdpZHRoLCBwYWR0eSA9XG4gICAgYWJzIHdpZHRoLFxuICAgICgqIHdoaWxlIGxpdGVyYWwgcGFkZGluZyB3aWR0aHMgYXJlIGFsd2F5cyBub24tbmVnYXRpdmUsXG4gICAgICAgZHluYW1pY2FsbHktc2V0IHdpZHRocyAoQXJnX3BhZGRpbmcsIGVnLiAlKmQpIG1heSBiZSBuZWdhdGl2ZTtcbiAgICAgICB3ZSBpbnRlcnByZXQgdGhvc2UgYXMgc3BlY2lmeWluZyBhIHBhZGRpbmctdG8tdGhlLWxlZnQ7IHRoaXNcbiAgICAgICBtZWFucyB0aGF0ICcwJyBtYXkgZ2V0IGRyb3BwZWQgZXZlbiBpZiBpdCB3YXMgZXhwbGljaXRseSBzZXQsXG4gICAgICAgYnV0OlxuICAgICAgIC0gdGhpcyBpcyB3aGF0IHRoZSBsZWdhY3kgaW1wbGVtZW50YXRpb24gZG9lcywgYW5kXG4gICAgICAgICB3ZSBwcmVzZXJ2ZSBjb21wYXRpYmlsaXR5IGlmIHBvc3NpYmxlXG4gICAgICAgLSB3ZSBjb3VsZCBvbmx5IHNpZ25hbCB0aGlzIGlzc3VlIGJ5IGZhaWxpbmcgYXQgcnVudGltZSxcbiAgICAgICAgIHdoaWNoIGlzIG5vdCB2ZXJ5IG5pY2UuLi4gKilcbiAgICBpZiB3aWR0aCA8IDAgdGhlbiBMZWZ0IGVsc2UgcGFkdHkgaW5cbiAgaWYgd2lkdGggPD0gbGVuIHRoZW4gc3RyIGVsc2VcbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSB3aWR0aCAoaWYgcGFkdHkgPSBaZXJvcyB0aGVuICcwJyBlbHNlICcgJykgaW5cbiAgICBiZWdpbiBtYXRjaCBwYWR0eSB3aXRoXG4gICAgfCBMZWZ0ICAtPiBTdHJpbmcuYmxpdCBzdHIgMCByZXMgMCBsZW5cbiAgICB8IFJpZ2h0IC0+IFN0cmluZy5ibGl0IHN0ciAwIHJlcyAod2lkdGggLSBsZW4pIGxlblxuICAgIHwgWmVyb3Mgd2hlbiBsZW4gPiAwICYmIChzdHIuWzBdID0gJysnIHx8IHN0ci5bMF0gPSAnLScgfHwgc3RyLlswXSA9ICcgJykgLT5cbiAgICAgIEJ5dGVzLnNldCByZXMgMCBzdHIuWzBdO1xuICAgICAgU3RyaW5nLmJsaXQgc3RyIDEgcmVzICh3aWR0aCAtIGxlbiArIDEpIChsZW4gLSAxKVxuICAgIHwgWmVyb3Mgd2hlbiBsZW4gPiAxICYmIHN0ci5bMF0gPSAnMCcgJiYgKHN0ci5bMV0gPSAneCcgfHwgc3RyLlsxXSA9ICdYJykgLT5cbiAgICAgIEJ5dGVzLnNldCByZXMgMSBzdHIuWzFdO1xuICAgICAgU3RyaW5nLmJsaXQgc3RyIDIgcmVzICh3aWR0aCAtIGxlbiArIDIpIChsZW4gLSAyKVxuICAgIHwgWmVyb3MgLT5cbiAgICAgIFN0cmluZy5ibGl0IHN0ciAwIHJlcyAod2lkdGggLSBsZW4pIGxlblxuICAgIGVuZDtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBBZGQgJzAnIHBhZGRpbmcgdG8gaW50LCBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0IHN0cmluZyByZXByZXNlbnRhdGlvbi4gKilcbmxldCBmaXhfaW50X3ByZWNpc2lvbiBwcmVjIHN0ciA9XG4gIGxldCBwcmVjID0gYWJzIHByZWMgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIG1hdGNoIHN0ci5bMF0gd2l0aFxuICB8ICgnKycgfCAnLScgfCAnICcpIGFzIGMgd2hlbiBwcmVjICsgMSA+IGxlbiAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIChwcmVjICsgMSkgJzAnIGluXG4gICAgQnl0ZXMuc2V0IHJlcyAwIGM7XG4gICAgU3RyaW5nLmJsaXQgc3RyIDEgcmVzIChwcmVjIC0gbGVuICsgMikgKGxlbiAtIDEpO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgJzAnIHdoZW4gcHJlYyArIDIgPiBsZW4gJiYgbGVuID4gMSAmJiAoc3RyLlsxXSA9ICd4JyB8fCBzdHIuWzFdID0gJ1gnKSAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIChwcmVjICsgMikgJzAnIGluXG4gICAgQnl0ZXMuc2V0IHJlcyAxIHN0ci5bMV07XG4gICAgU3RyaW5nLmJsaXQgc3RyIDIgcmVzIChwcmVjIC0gbGVuICsgNCkgKGxlbiAtIDIpO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgJzAnIC4uICc5JyB8ICdhJyAuLiAnZicgfCAnQScgLi4gJ0YnIHdoZW4gcHJlYyA+IGxlbiAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIHByZWMgJzAnIGluXG4gICAgU3RyaW5nLmJsaXQgc3RyIDAgcmVzIChwcmVjIC0gbGVuKSBsZW47XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcbiAgfCBfIC0+XG4gICAgc3RyXG5cbigqIEVzY2FwZSBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIE9DYW1sIGxleGluZyBjb252ZW50aW9uLiAqKVxubGV0IHN0cmluZ190b19jYW1sX3N0cmluZyBzdHIgPVxuICBsZXQgc3RyID0gU3RyaW5nLmVzY2FwZWQgc3RyIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKGwgKyAyKSAnXFxcIicgaW5cbiAgU3RyaW5nLnVuc2FmZV9ibGl0IHN0ciAwIHJlcyAxIGw7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG5cbigqIEdlbmVyYXRlIHRoZSBmb3JtYXRfaW50L2ludDMyL25hdGl2ZWludC9pbnQ2NCBmaXJzdCBhcmd1bWVudFxuICAgZnJvbSBhbiBpbnRfY29udi4gKilcbmxldCBmb3JtYXRfb2ZfaWNvbnYgPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJWRcIiB8IEludF9wZCAtPiBcIiUrZFwiIHwgSW50X3NkIC0+IFwiJSBkXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVpXCIgfCBJbnRfcGkgLT4gXCIlK2lcIiB8IEludF9zaSAtPiBcIiUgaVwiXG4gIHwgSW50X3ggLT4gXCIleFwiIHwgSW50X0N4IC0+IFwiJSN4XCJcbiAgfCBJbnRfWCAtPiBcIiVYXCIgfCBJbnRfQ1ggLT4gXCIlI1hcIlxuICB8IEludF9vIC0+IFwiJW9cIiB8IEludF9DbyAtPiBcIiUjb1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIldVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZMID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVMZFwiIHwgSW50X3BkIC0+IFwiJStMZFwiIHwgSW50X3NkIC0+IFwiJSBMZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlTGlcIiB8IEludF9waSAtPiBcIiUrTGlcIiB8IEludF9zaSAtPiBcIiUgTGlcIlxuICB8IEludF94IC0+IFwiJUx4XCIgfCBJbnRfQ3ggLT4gXCIlI0x4XCJcbiAgfCBJbnRfWCAtPiBcIiVMWFwiIHwgSW50X0NYIC0+IFwiJSNMWFwiXG4gIHwgSW50X28gLT4gXCIlTG9cIiB8IEludF9DbyAtPiBcIiUjTG9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJUx1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udmwgPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJWxkXCIgfCBJbnRfcGQgLT4gXCIlK2xkXCIgfCBJbnRfc2QgLT4gXCIlIGxkXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVsaVwiIHwgSW50X3BpIC0+IFwiJStsaVwiIHwgSW50X3NpIC0+IFwiJSBsaVwiXG4gIHwgSW50X3ggLT4gXCIlbHhcIiB8IEludF9DeCAtPiBcIiUjbHhcIlxuICB8IEludF9YIC0+IFwiJWxYXCIgfCBJbnRfQ1ggLT4gXCIlI2xYXCJcbiAgfCBJbnRfbyAtPiBcIiVsb1wiIHwgSW50X0NvIC0+IFwiJSNsb1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlbHVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252biA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlbmRcIiB8IEludF9wZCAtPiBcIiUrbmRcIiB8IEludF9zZCAtPiBcIiUgbmRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJW5pXCIgfCBJbnRfcGkgLT4gXCIlK25pXCIgfCBJbnRfc2kgLT4gXCIlIG5pXCJcbiAgfCBJbnRfeCAtPiBcIiVueFwiIHwgSW50X0N4IC0+IFwiJSNueFwiXG4gIHwgSW50X1ggLT4gXCIlblhcIiB8IEludF9DWCAtPiBcIiUjblhcIlxuICB8IEludF9vIC0+IFwiJW5vXCIgfCBJbnRfQ28gLT4gXCIlI25vXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVudVwiXG5cbigqIEdlbmVyYXRlIHRoZSBmb3JtYXRfZmxvYXQgZmlyc3QgYXJndW1lbnQgZnJvbSBhIGZsb2F0X2NvbnYuICopXG5sZXQgZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMgPVxuICAgIGxldCBwcmVjID0gYWJzIHByZWMgaW5cbiAgICBsZXQgc3ltYiA9IGNoYXJfb2ZfZmNvbnYgfmNGOidnJyBmY29udiBpblxuICAgIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gICAgYnByaW50X2Zjb252X2ZsYWcgYnVmIGZjb252O1xuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy4nO1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBwcmVjKTtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmIHN5bWI7XG4gICAgYnVmZmVyX2NvbnRlbnRzIGJ1ZlxuXG5sZXQgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgcyA9XG4gIG1hdGNoIGljb252IHdpdGhcbiAgfCBJbnRfQ2QgfCBJbnRfQ2kgfCBJbnRfQ3UgLT5cbiAgICBsZXQgZGlnaXRzID1cbiAgICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICAgIG1hdGNoIFN0cmluZy51bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICAgIHwgJzAnLi4nOScgLT4gaW5jciBuXG4gICAgICAgIHwgXyAtPiAoKVxuICAgICAgZG9uZTtcbiAgICAgICFuXG4gICAgaW5cbiAgICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIChTdHJpbmcubGVuZ3RoIHMgKyAoZGlnaXRzIC0gMSkgLyAzKSBpblxuICAgIGxldCBwb3MgPSByZWYgMCBpblxuICAgIGxldCBwdXQgYyA9IEJ5dGVzLnNldCBidWYgIXBvcyBjOyBpbmNyIHBvcyBpblxuICAgIGxldCBsZWZ0ID0gcmVmICgoZGlnaXRzIC0gMSkgbW9kIDMgKyAxKSBpblxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgfCAnMCcuLic5JyBhcyBjIC0+XG4gICAgICAgICAgaWYgIWxlZnQgPSAwIHRoZW4gKHB1dCAnXyc7IGxlZnQgOj0gMyk7IGRlY3IgbGVmdDsgcHV0IGNcbiAgICAgIHwgYyAtPiBwdXQgY1xuICAgIGRvbmU7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBidWZcbiAgfCBfIC0+IHNcblxuKCogQ29udmVydCBhbiBpbnRlZ2VyIHRvIGEgc3RyaW5nIGFjY29yZGluZyB0byBhIGNvbnZlcnNpb24uICopXG5sZXQgY29udmVydF9pbnQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50IChmb3JtYXRfb2ZfaWNvbnYgaWNvbnYpIG4pXG5sZXQgY29udmVydF9pbnQzMiBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9pbnQzMiAoZm9ybWF0X29mX2ljb252bCBpY29udikgbilcbmxldCBjb252ZXJ0X25hdGl2ZWludCBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9uYXRpdmVpbnQgKGZvcm1hdF9vZl9pY29udm4gaWNvbnYpIG4pXG5sZXQgY29udmVydF9pbnQ2NCBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9pbnQ2NCAoZm9ybWF0X29mX2ljb252TCBpY29udikgbilcblxuKCogQ29udmVydCBhIGZsb2F0IHRvIHN0cmluZy4gKilcbigqIEZpeCBzcGVjaWFsIGNhc2Ugb2YgXCJPQ2FtbCBmbG9hdCBmb3JtYXRcIi4gKilcbmxldCBjb252ZXJ0X2Zsb2F0IGZjb252IHByZWMgeCA9XG4gIGxldCBoZXggKCkgPVxuICAgIGxldCBzaWduID1cbiAgICAgIG1hdGNoIGZzdCBmY29udiB3aXRoXG4gICAgICB8IEZsb2F0X2ZsYWdfcCAtPiAnKydcbiAgICAgIHwgRmxvYXRfZmxhZ19zIC0+ICcgJ1xuICAgICAgfCBfIC0+ICctJyBpblxuICAgIGhleHN0cmluZ19vZl9mbG9hdCB4IHByZWMgc2lnbiBpblxuICBsZXQgYWRkX2RvdF9pZl9uZWVkZWQgc3RyID1cbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgICBsZXQgcmVjIGlzX3ZhbGlkIGkgPVxuICAgICAgaWYgaSA9IGxlbiB0aGVuIGZhbHNlIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltpXSB3aXRoXG4gICAgICAgIHwgJy4nIHwgJ2UnIHwgJ0UnIC0+IHRydWVcbiAgICAgICAgfCBfIC0+IGlzX3ZhbGlkIChpICsgMSkgaW5cbiAgICBpZiBpc192YWxpZCAwIHRoZW4gc3RyIGVsc2Ugc3RyIF4gXCIuXCIgaW5cbiAgbGV0IGNhbWxfc3BlY2lhbF92YWwgc3RyID0gbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgfCBGUF9ub3JtYWwgfCBGUF9zdWJub3JtYWwgfCBGUF96ZXJvIC0+IHN0clxuICAgIHwgRlBfaW5maW5pdGUgLT4gaWYgeCA8IDAuMCB0aGVuIFwibmVnX2luZmluaXR5XCIgZWxzZSBcImluZmluaXR5XCJcbiAgICB8IEZQX25hbiAtPiBcIm5hblwiIGluXG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfaCAtPiBoZXggKClcbiAgfCBGbG9hdF9IIC0+IFN0cmluZy51cHBlcmNhc2VfYXNjaWkgKGhleCAoKSlcbiAgfCBGbG9hdF9DRiAtPiBjYW1sX3NwZWNpYWxfdmFsIChoZXggKCkpXG4gIHwgRmxvYXRfRiAtPlxuICAgIGxldCBzdHIgPSBmb3JtYXRfZmxvYXQgKGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjKSB4IGluXG4gICAgY2FtbF9zcGVjaWFsX3ZhbCAoYWRkX2RvdF9pZl9uZWVkZWQgc3RyKVxuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HIC0+XG4gICAgZm9ybWF0X2Zsb2F0IChmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYykgeFxuXG4oKiBDb252ZXJ0IGEgY2hhciB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIE9DYW1sIGxleGljYWwgY29udmVudGlvbi4gKilcbmxldCBmb3JtYXRfY2FtbF9jaGFyIGMgPVxuICBsZXQgc3RyID0gQ2hhci5lc2NhcGVkIGMgaW5cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgcmVzID0gQnl0ZXMubWFrZSAobCArIDIpICdcXCcnIGluXG4gIFN0cmluZy51bnNhZmVfYmxpdCBzdHIgMCByZXMgMSBsO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBDb252ZXJ0IGEgZm9ybWF0IHR5cGUgdG8gc3RyaW5nICopXG5sZXQgc3RyaW5nX29mX2ZtdHR5IGZtdHR5ID1cbiAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTtcbiAgYnVmZmVyX2NvbnRlbnRzIGJ1ZlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgKCogR2VuZXJpYyBwcmludGluZyBmdW5jdGlvbiAqKVxuXG4oKiBNYWtlIGEgZ2VuZXJpYyBwcmludGluZyBmdW5jdGlvbi4gKilcbigqIFVzZWQgdG8gZ2VuZXJhdGUgUHJpbnRmIGFuZCBGb3JtYXQgcHJpbnRpbmcgZnVuY3Rpb25zLiAqKVxuKCogUGFyYW1ldGVyczpcbiAgICAgazogYSBjb250aW51YXRpb24gZmluYWxseSBhcHBsaWVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtIGFuZCB0aGUgYWNjdW11bGF0b3IuXG4gICAgIG86IHRoZSBvdXRwdXQgc3RyZWFtIChzZWUgaywgJWEgYW5kICV0KS5cbiAgICAgYWNjOiByZXYgbGlzdCBvZiBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzaCwgZm9ybWF0dGluZywgLi4uKS5cbiAgICAgZm10OiB0aGUgZm9ybWF0LiAqKVxubGV0IHJlYyBtYWtlX3ByaW50ZiA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IENoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX2NoYXIgKGFjYywgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZm9ybWF0X2NhbWxfY2hhciBjKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBtYWtlX3BhZGRpbmcgayBhY2MgcmVzdCBwYWQgKGZ1biBzdHIgLT4gc3RyKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIHN0cmluZ190b19jYW1sX3N0cmluZ1xuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfaW50IGljb252XG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludDMyIGljb252XG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9uYXRpdmVpbnQgaWNvbnZcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfaW50NjQgaWNvbnZcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2Zsb2F0X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgZmNvbnZcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIHN0cmluZ19vZl9ib29sXG4gIHwgQWxwaGEgcmVzdCAtPlxuICAgIGZ1biBmIHggLT4gbWFrZV9wcmludGYgayAoQWNjX2RlbGF5IChhY2MsIGZ1biBvIC0+IGYgbyB4KSkgcmVzdFxuICB8IFRoZXRhIHJlc3QgLT5cbiAgICBmdW4gZiAtPiBtYWtlX3ByaW50ZiBrIChBY2NfZGVsYXkgKGFjYywgZikpIHJlc3RcbiAgfCBDdXN0b20gKGFyaXR5LCBmLCByZXN0KSAtPlxuICAgIG1ha2VfY3VzdG9tIGsgYWNjIHJlc3QgYXJpdHkgKGYgKCkpXG4gIHwgUmVhZGVyIF8gLT5cbiAgICAoKiBUaGlzIGNhc2UgaXMgaW1wb3NzaWJsZSwgYnkgdHlwaW5nIG9mIGZvcm1hdHMuICopXG4gICAgKCogSW5kZWVkLCBzaW5jZSBwcmludGYgYW5kIGNvLiB0YWtlIGEgZm9ybWF0NCBhcyBhcmd1bWVudCwgdGhlICdkIGFuZCAnZVxuICAgICAgIHR5cGUgcGFyYW1ldGVycyBvZiBmbXQgYXJlIG9idmlvdXNseSBlcXVhbHMuIFRoZSBSZWFkZXIgaXMgdGhlXG4gICAgICAgb25seSBjb25zdHJ1Y3RvciB3aGljaCB0b3VjaCAnZCBhbmQgJ2UgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBmb3JtYXRcbiAgICAgICB0eXBlLCBpdCBhZGRzIGFuICgtPikgdG8gdGhlICdkIHBhcmFtZXRlcnMuIENvbnNlcXVlbnRseSwgYSBmb3JtYXQ0XG4gICAgICAgY2Fubm90IGNvbnRhaW4gYSBSZWFkZXIgbm9kZSwgZXhjZXB0IGluIHRoZSBzdWItZm9ybWF0IGFzc29jaWF0ZWQgdG9cbiAgICAgICBhbiAley4uLiV9LiBJdCdzIG5vdCBhIHByb2JsZW0gYmVjYXVzZSBtYWtlX3ByaW50ZiBkbyBub3QgY2FsbFxuICAgICAgIGl0c2VsZiByZWN1cnNpdmVseSBvbiB0aGUgc3ViLWZvcm1hdCBhc3NvY2lhdGVkIHRvICV7Li4uJX0uICopXG4gICAgYXNzZXJ0IGZhbHNlXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mbHVzaCBhY2MpIHJlc3RcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX3N0cmluZ19saXRlcmFsIChhY2MsIHN0cikpIHJlc3RcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfY2hhcl9saXRlcmFsIChhY2MsIGNocikpIHJlc3RcblxuICB8IEZvcm1hdF9hcmcgKF8sIHN1Yl9mbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSBzdHJpbmdfb2ZfZm10dHkgc3ViX2ZtdHR5IGluXG4gICAgKGZ1biBzdHIgLT5cbiAgICAgIGlnbm9yZSBzdHI7XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgdHkpKSByZXN0KVxuICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpIC0+XG4gICAgZnVuIChGb3JtYXQgKGZtdCwgXykpIC0+IG1ha2VfcHJpbnRmIGsgYWNjXG4gICAgICAoY29uY2F0X2ZtdCAocmVjYXN0IGZtdCBmbXR0eSkgcmVzdClcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpIC0+XG4gICAgbGV0IG5ld19hY2MgPSBBY2NfaW52YWxpZF9hcmcgKGFjYywgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVbXCIpIGluXG4gICAgZnVuIF8gLT4gbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAtPlxuICAgICgqIFRoaXMgY2FzZSBzaG91bGQgYmUgcmVmdXNlZCBmb3IgUHJpbnRmLiAqKVxuICAgICgqIEFjY2VwdGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqKVxuICAgICgqIEludGVycHJldCAlbCwgJW4gYW5kICVMIGFzICV1LiAqKVxuICAgIGZ1biBuIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmb3JtYXRfaW50IFwiJXVcIiBuKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfY2hhciAoYWNjLCBjKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgbWFrZV9pZ25vcmVkX3BhcmFtIGsgYWNjIGlnbiByZXN0XG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19saXQgKGFjYywgZm10aW5nX2xpdCkpIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGxldCBrJyBrYWNjID1cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mb3JtYXR0aW5nX2dlbiAoYWNjLCBBY2Nfb3Blbl90YWcga2FjYykpIHJlc3QgaW5cbiAgICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdCdcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGxldCBrJyBrYWNjID1cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mb3JtYXR0aW5nX2dlbiAoYWNjLCBBY2Nfb3Blbl9ib3gga2FjYykpIHJlc3QgaW5cbiAgICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdCdcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBrIGFjY1xuXG4oKiBEZWxheSB0aGUgZXJyb3IgKEludmFsaWRfYXJndW1lbnQgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVfXCIpLiAqKVxuKCogR2VuZXJhdGUgZnVuY3Rpb25zIHRvIHRha2UgcmVtYWluaW5nIGFyZ3VtZW50cyAoYWZ0ZXIgdGhlIFwiJV9cIikuICopXG5hbmQgbWFrZV9pZ25vcmVkX3BhcmFtIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT4gYSA9XG5mdW4gayBhY2MgaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQzMiAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mbG9hdCAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKF8sIGZtdHR5KSAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgZm10dHkgZm10XG4gIHwgSWdub3JlZF9yZWFkZXIgICAgICAgICAgICAgICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcblxuXG4oKiBTcGVjaWFsIGNhc2Ugb2YgcHJpbnRmIFwiJV8oXCIuICopXG5hbmQgbWFrZV9mcm9tX2ZtdHR5IDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgZm10dHkgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdHR5IGZtdCAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgQ2hhcl90eSByZXN0ICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50X3R5IHJlc3QgICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50MzJfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgRmxvYXRfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQm9vbF90eSByZXN0ICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBUaGV0YV90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBSZWFkZXJfdHkgXyAgICAgICAgICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBfICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBGb3JtYXRfYXJnX3R5IChfLCByZXN0KSAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBFbmRfb2ZfZm10dHkgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxKSB0eTIgaW5cbiAgICBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgKGNvbmNhdF9mbXR0eSB0eSByZXN0KSBmbXRcblxuKCogSW5zZXJ0IGFuIEFjY19pbnZhbGlkX2FyZyBpbiB0aGUgYWNjdW11bGF0b3IgYW5kIGNvbnRpbnVlIHRvIGdlbmVyYXRlXG4gICBjbG9zdXJlcyB0byBnZXQgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMuICopXG5hbmQgbWFrZV9pbnZhbGlkX2FyZyA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdCAtPlxuICBtYWtlX3ByaW50ZiBrIChBY2NfaW52YWxpZF9hcmcgKGFjYywgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVfXCIpKSBmbXRcblxuKCogRml4IHBhZGRpbmcsIHRha2UgaXQgYXMgYW4gZXh0cmEgaW50ZWdlciBhcmd1bWVudCBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9wYWRkaW5nIDogdHlwZSB4IHogYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHogLT4gYSkgcGFkZGluZyAtPiAoeiAtPiBzdHJpbmcpIC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCB0cmFucyAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgdHJhbnMgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHdpZHRoKSAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmaXhfcGFkZGluZyBwYWR0eSB3aWR0aCAodHJhbnMgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHkgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyBmbXRcblxuKCogRml4IHBhZGRpbmcgYW5kIHByZWNpc2lvbiBmb3IgaW50LCBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0LiAqKVxuKCogVGFrZSBvbmUgb3IgdHdvIGV4dHJhIGludGVnZXIgYXJndW1lbnRzIGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiA6IHR5cGUgeCB5IHogYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+IChpbnRfY29udiAtPiB6IC0+IHN0cmluZykgLT5cbiAgICBpbnRfY29udiAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgcHJlYyB0cmFucyBpY29udiAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICB8IE5vX3BhZGRpbmcsIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gdHJhbnMgaWNvbnYgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuXG4oKiBDb252ZXJ0IGEgZmxvYXQsIGZpeCBwYWRkaW5nIGFuZCBwcmVjaXNpb24gaWYgbmVlZGVkLiAqKVxuKCogVGFrZSB0aGUgZmxvYXQgYXJndW1lbnQgYW5kIG9uZSBvciB0d28gZXh0cmEgaW50ZWdlciBhcmd1bWVudHMgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfZmxvYXRfcGFkZGluZ19wcmVjaXNpb24gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgZmxvYXQgLT4gYSkgcHJlY2lzaW9uIC0+IGZsb2F0X2NvbnYgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHByZWMgZmNvbnYgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiBwIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBsZXQgc3RyJyA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgc3RyIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyJykpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBsZXQgc3RyJyA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgc3RyIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyJykpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbmFuZCBtYWtlX2N1c3RvbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gIChhLCB4LCB5KSBjdXN0b21fYXJpdHkgLT4geCAtPiB5ID1cbiAgZnVuIGsgYWNjIHJlc3QgYXJpdHkgZiAtPiBtYXRjaCBhcml0eSB3aXRoXG4gIHwgQ3VzdG9tX3plcm8gLT4gbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIGYpKSByZXN0XG4gIHwgQ3VzdG9tX3N1Y2MgYXJpdHkgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbWFrZV9jdXN0b20gayBhY2MgcmVzdCBhcml0eSAoZiB4KVxuXG5sZXQgY29uc3QgeCBfID0geFxuXG5sZXQgcmVjIG1ha2VfaXByaW50ZiA6IHR5cGUgYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPiBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuICBmdW4gayBvIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICAgIHwgQ2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChOb19wYWRkaW5nLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChMaXRfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBDYW1sX3N0cmluZyAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfc3RyaW5nIChMaXRfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9zdHJpbmcgKEFyZ19wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IEludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgSW50MzIgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IE5hdGl2ZWludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgSW50NjQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEZsb2F0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBCb29sIChOb19wYWRkaW5nLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQm9vbCAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEJvb2wgKEFyZ19wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IEFscGhhIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgVGhldGEgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfY3VzdG9tX2FyaXR5IGsgbyByZXN0IGFyaXR5XG4gICAgfCBSZWFkZXIgXyAtPlxuICAgICAgICAoKiBUaGlzIGNhc2UgaXMgaW1wb3NzaWJsZSwgYnkgdHlwaW5nIG9mIGZvcm1hdHMuICBTZWUgdGhlXG4gICAgICAgICAgIG5vdGUgaW4gdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBmb3IgbWFrZV9wcmludGYuICopXG4gICAgICAgIGFzc2VydCBmYWxzZVxuICAgIHwgRmx1c2ggcmVzdCAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBGb3JtYXRfYXJnIChfLCBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgRm9ybWF0X3N1YnN0IChfLCBmbXR0eSwgcmVzdCkgLT5cbiAgICAgICAgZnVuIChGb3JtYXQgKGZtdCwgXykpIC0+XG4gICAgICAgICAgbWFrZV9pcHJpbnRmIGsgb1xuICAgICAgICAgICAgKGNvbmNhdF9mbXQgKHJlY2FzdCBmbXQgZm10dHkpIHJlc3QpXG4gICAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pZ25vcmVkX3BhcmFtIChmdW4gXyAtPiBrIG8pIChFbmRfb2ZfYWNjKSBpZ24gcmVzdFxuICAgIHwgRm9ybWF0dGluZ19saXQgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIChmdW4ga29jIC0+IG1ha2VfaXByaW50ZiBrIGtvYyByZXN0KSBvIGZtdCdcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiAoZnVuIGtvYyAtPiBtYWtlX2lwcmludGYgayBrb2MgcmVzdCkgbyBmbXQnXG4gICAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgICAgIGsgb1xuYW5kIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIDpcbiAgdHlwZSB4IHkgeiBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+IHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+IHggPVxuICBmdW4gayBvIGZtdCBwYWQgcHJlYyAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICAgIHwgTm9fcGFkZGluZyAgICwgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IE5vX3BhZGRpbmcgICAsIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBOb19wYWRkaW5nICAgLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTGl0X3BhZGRpbmcgXywgTGl0X3ByZWNpc2lvbiBfIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IExpdF9wYWRkaW5nIF8sIEFyZ19wcmVjaXNpb24gICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIEFyZ19wcmVjaXNpb24gICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpKVxuYW5kIGZuX29mX2N1c3RvbV9hcml0eSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT5cbiAgc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IHkgPVxuICBmdW4gayBvIGZtdCAtPiBmdW5jdGlvblxuICAgIHwgQ3VzdG9tX3plcm8gLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyBmbXRcbiAgICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+XG4gICAgICAgIGNvbnN0IChmbl9vZl9jdXN0b21fYXJpdHkgayBvIGZtdCBhcml0eSlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQ29udGludWF0aW9ucyBmb3IgbWFrZV9wcmludGYgKilcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhbiBvdXRwdXRfc3RyZWFtLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgb3V0cHV0X2FjYyBvIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIFwiQHtcIjsgb3V0cHV0X2FjYyBvIGFjYyc7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIFwiQFtcIjsgb3V0cHV0X2FjYyBvIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X2NoYXIgbyBjXG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBmIG9cbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IGZsdXNoIG9cbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gb3V0cHV0X2FjYyBvIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhIGJ1ZmZlci4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIGJ1ZnB1dF9hY2MgYiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgcztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQHtcIjsgYnVmcHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkBbXCI7IGJ1ZnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgc1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX2NoYXIgYiBjXG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBmIGJcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gYnVmcHV0X2FjYyBiIHA7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IGJ1ZnB1dF9hY2MgYiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBEaWZmZXIgZnJvbSBidWZwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiAlYSBhbmQgJXQuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBzdHJwdXRfYWNjIGIgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkB7XCI7IHN0cnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAW1wiOyBzdHJwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiAoZiAoKSlcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gc3RycHV0X2FjYyBiIHA7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IHN0cnB1dF9hY2MgYiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEVycm9yIG1hbmFnZW1lbnQgKilcblxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBwcmV0dHktcHJpbnRlZCBlcnJvciBtZXNzYWdlLiAqKVxubGV0IGZhaWx3aXRoX21lc3NhZ2UgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAyNTYgaW5cbiAgbGV0IGsgYWNjID0gc3RycHV0X2FjYyBidWYgYWNjOyBmYWlsd2l0aCAoQnVmZmVyLmNvbnRlbnRzIGJ1ZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdHRpbmcgdG9vbHMgKilcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhbiBvcGVuIGJsb2NrIGRlc2NyaXB0aW9uIChpbmRlbnQsIGJsb2NrX3R5cGUpICopXG5sZXQgb3Blbl9ib3hfb2Zfc3RyaW5nIHN0ciA9XG4gIGlmIHN0ciA9IFwiXCIgdGhlbiAoMCwgUHBfYm94KSBlbHNlXG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gICAgbGV0IGludmFsaWRfYm94ICgpID0gZmFpbHdpdGhfbWVzc2FnZSBcImludmFsaWQgYm94IGRlc2NyaXB0aW9uICVTXCIgc3RyIGluXG4gICAgbGV0IHJlYyBwYXJzZV9zcGFjZXMgaSA9XG4gICAgICBpZiBpID0gbGVuIHRoZW4gaSBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5baV0gd2l0aFxuICAgICAgICB8ICcgJyB8ICdcXHQnIC0+IHBhcnNlX3NwYWNlcyAoaSArIDEpXG4gICAgICAgIHwgXyAtPiBpXG4gICAgYW5kIHBhcnNlX2x3b3JkIGkgaiA9XG4gICAgICBpZiBqID0gbGVuIHRoZW4gaiBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5bal0gd2l0aFxuICAgICAgICB8ICdhJyAuLiAneicgLT4gcGFyc2VfbHdvcmQgaSAoaiArIDEpXG4gICAgICAgIHwgXyAtPiBqXG4gICAgYW5kIHBhcnNlX2ludCBpIGogPVxuICAgICAgaWYgaiA9IGxlbiB0aGVuIGogZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2pdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IHBhcnNlX2ludCBpIChqICsgMSlcbiAgICAgICAgfCBfIC0+IGogaW5cbiAgICBsZXQgd3N0YXJ0ID0gcGFyc2Vfc3BhY2VzIDAgaW5cbiAgICBsZXQgd2VuZCA9IHBhcnNlX2x3b3JkIHdzdGFydCB3c3RhcnQgaW5cbiAgICBsZXQgYm94X25hbWUgPSBTdHJpbmcuc3ViIHN0ciB3c3RhcnQgKHdlbmQgLSB3c3RhcnQpIGluXG4gICAgbGV0IG5zdGFydCA9IHBhcnNlX3NwYWNlcyB3ZW5kIGluXG4gICAgbGV0IG5lbmQgPSBwYXJzZV9pbnQgbnN0YXJ0IG5zdGFydCBpblxuICAgIGxldCBpbmRlbnQgPVxuICAgICAgaWYgbnN0YXJ0ID0gbmVuZCB0aGVuIDAgZWxzZVxuICAgICAgICB0cnkgaW50X29mX3N0cmluZyAoU3RyaW5nLnN1YiBzdHIgbnN0YXJ0IChuZW5kIC0gbnN0YXJ0KSlcbiAgICAgICAgd2l0aCBGYWlsdXJlIF8gLT4gaW52YWxpZF9ib3ggKCkgaW5cbiAgICBsZXQgZXhwX2VuZCA9IHBhcnNlX3NwYWNlcyBuZW5kIGluXG4gICAgaWYgZXhwX2VuZCA8PiBsZW4gdGhlbiBpbnZhbGlkX2JveCAoKTtcbiAgICBsZXQgYm94X3R5cGUgPSBtYXRjaCBib3hfbmFtZSB3aXRoXG4gICAgICB8IFwiXCIgfCBcImJcIiAtPiBQcF9ib3hcbiAgICAgIHwgXCJoXCIgICAgICAtPiBQcF9oYm94XG4gICAgICB8IFwidlwiICAgICAgLT4gUHBfdmJveFxuICAgICAgfCBcImh2XCIgICAgIC0+IFBwX2h2Ym94XG4gICAgICB8IFwiaG92XCIgICAgLT4gUHBfaG92Ym94XG4gICAgICB8IF8gICAgICAgIC0+IGludmFsaWRfYm94ICgpIGluXG4gICAgKGluZGVudCwgYm94X3R5cGUpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUGFyc2luZyB0b29scyAqKVxuXG4oKiBDcmVhdGUgYSBwYWRkaW5nX2ZtdF9lYmIgZnJvbSBhIHBhZGRpbmcgYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcGFkZGluZyB0byBkaXNqb2luIHRoZSB0eXBlIHBhcmFtZXRlcnMgb2YgYXJndW1lbnQgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3BhZGRpbmdfZm10X2ViYiA6IHR5cGUgeCB5IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgICAoXywgXywgXywgXywgXykgcGFkZGluZ19mbXRfZWJiID1cbmZ1biBwYWQgZm10IC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAgICAgICAgIC0+IFBhZGRpbmdfZm10X0VCQiAoTm9fcGFkZGluZywgZm10KVxuICB8IExpdF9wYWRkaW5nIChzLCB3KSAtPiBQYWRkaW5nX2ZtdF9FQkIgKExpdF9wYWRkaW5nIChzLCB3KSwgZm10KVxuICB8IEFyZ19wYWRkaW5nIHMgICAgICAtPiBQYWRkaW5nX2ZtdF9FQkIgKEFyZ19wYWRkaW5nIHMsIGZtdClcblxuKCogQ3JlYXRlIGEgcHJlY2lzaW9uX2ZtdF9lYmIgZnJvbSBhIHByZWNpc2lvbiBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwcmVjaXNpb24gdG8gZGlzam9pbiB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50IGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wcmVjaXNpb25fZm10X2ViYiA6IHR5cGUgeCB5IC5cbiAgICAoeCwgeSkgcHJlY2lzaW9uIC0+IChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAgIChfLCBfLCBfLCBfLCBfKSBwcmVjaXNpb25fZm10X2ViYiA9XG5mdW4gcHJlYyBmbXQgLT4gbWF0Y2ggcHJlYyB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uICAgIC0+IFByZWNpc2lvbl9mbXRfRUJCIChOb19wcmVjaXNpb24sIGZtdClcbiAgfCBMaXRfcHJlY2lzaW9uIHAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKExpdF9wcmVjaXNpb24gcCwgZm10KVxuICB8IEFyZ19wcmVjaXNpb24gICAtPiBQcmVjaXNpb25fZm10X0VCQiAoQXJnX3ByZWNpc2lvbiwgZm10KVxuXG4oKiBDcmVhdGUgYSBwYWRwcmVjX2ZtdF9lYmIgZnJvbSBhIHBhZGRpbmcsIGEgcHJlY2lzaW9uIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHBhZGRpbmcgYW5kIHRoZSBwcmVjaXNpb24gdG8gZGlzam9pbiB0eXBlIHBhcmFtZXRlcnMgb2YgYXJndW1lbnRzXG4gICBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcGFkcHJlY19mbXRfZWJiIDogdHlwZSB4IHkgeiB0IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoeiwgdCkgcHJlY2lzaW9uIC0+XG4gICAgKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgIChfLCBfLCBfLCBfLCBfKSBwYWRwcmVjX2ZtdF9lYmIgPVxuZnVuIHBhZCBwcmVjIGZtdCAtPlxuICBsZXQgUHJlY2lzaW9uX2ZtdF9FQkIgKHByZWMsIGZtdCcpID0gbWFrZV9wcmVjaXNpb25fZm10X2ViYiBwcmVjIGZtdCBpblxuICBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgICAgICAgICAtPiBQYWRwcmVjX2ZtdF9FQkIgKE5vX3BhZGRpbmcsIHByZWMsIGZtdCcpXG4gIHwgTGl0X3BhZGRpbmcgKHMsIHcpIC0+IFBhZHByZWNfZm10X0VCQiAoTGl0X3BhZGRpbmcgKHMsIHcpLCBwcmVjLCBmbXQnKVxuICB8IEFyZ19wYWRkaW5nIHMgICAgICAtPiBQYWRwcmVjX2ZtdF9FQkIgKEFyZ19wYWRkaW5nIHMsIHByZWMsIGZtdCcpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBwYXJzaW5nICopXG5cbigqIFBhcnNlIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGZvcm1hdCBhbmQgY3JlYXRlIGEgZm10X2ViYi4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSBpbiBjYXNlIG9mIGludmFsaWQgZm9ybWF0LiAqKVxubGV0IGZtdF9lYmJfb2Zfc3RyaW5nID9sZWdhY3lfYmVoYXZpb3Igc3RyID1cbiAgKCogUGFyYW1ldGVycyBuYW1pbmcgY29udmVudGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gbGl0X3N0YXJ0OiBzdGFydCBvZiB0aGUgbGl0ZXJhbCBzZXF1ZW5jZS4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBzdHJfaW5kOiBjdXJyZW50IGluZGV4IGluIHRoZSBzdHJpbmcuICAgICAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIGVuZF9pbmQ6IGVuZCBvZiB0aGUgY3VycmVudCAoc3ViLSlmb3JtYXQuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gcGN0X2luZDogaW5kZXggb2YgdGhlICclJyBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAgICAgICopXG4gICgqICAgLSB6ZXJvOiAgaXMgdGhlICcwJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIG1pbnVzOiBpcyB0aGUgJy0nIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gcGx1czogIGlzIHRoZSAnKycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBoYXNoOiAgaXMgdGhlICcjJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHNwYWNlOiBpcyB0aGUgJyAnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gaWduOiAgIGlzIHRoZSAnXycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBwYWQ6IHBhZGRpbmcgb2YgdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHByZWM6IHByZWNpc2lvbiBvZiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gc3ltYjogY2hhciByZXByZXNlbnRpbmcgdGhlIGNvbnZlcnNpb24gKCdjJywgJ3MnLCAnZCcsIC4uLikuICopXG4gICgqICAgLSBjaGFyX3NldDogc2V0IG9mIGNoYXJhY3RlcnMgYXMgYml0bWFwIChzZWUgc2NhbmYgJVsuLi5dKS4gICAgKilcblxuICBsZXQgbGVnYWN5X2JlaGF2aW9yID0gbWF0Y2ggbGVnYWN5X2JlaGF2aW9yIHdpdGhcbiAgICB8IFNvbWUgZmxhZyAtPiBmbGFnXG4gICAgfCBOb25lIC0+IHRydWVcbiAgKCogIFdoZW4gdGhpcyBmbGFnIGlzIGVuYWJsZWQsIHRoZSBmb3JtYXQgcGFyc2VyIHRyaWVzIHRvIGJlaGF2ZSBhc1xuICAgICAgdGhlIDw0LjAyIGltcGxlbWVudGF0aW9ucywgaW4gcGFydGljdWxhciBpdCBpZ25vcmVzIG1vc3QgYmVuaW5lXG4gICAgICBub25zZW5zaWNhbCBmb3JtYXQuIFdoZW4gdGhlIGZsYWcgaXMgZGlzYWJsZWQsIGl0IHdpbGwgcmVqZWN0IGFueVxuICAgICAgZm9ybWF0IHRoYXQgaXMgbm90IGFjY2VwdGVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uLlxuXG4gICAgICBBIHR5cGljYWwgZXhhbXBsZSB3b3VsZCBiZSBcIiUrIGRcIjogc3BlY2lmeWluZyBib3RoICcrJyAoaWYgdGhlXG4gICAgICBudW1iZXIgaXMgcG9zaXRpdmUsIHBhZCB3aXRoIGEgJysnIHRvIGdldCB0aGUgc2FtZSB3aWR0aCBhc1xuICAgICAgbmVnYXRpdmUgbnVtYmVycykgYW5kICcgJyAoaWYgdGhlIG51bWJlciBpcyBwb3NpdGl2ZSwgcGFkIHdpdGhcbiAgICAgIGEgc3BhY2UpIGRvZXMgbm90IG1ha2Ugc2Vuc2UsIGJ1dCB0aGUgbGVnYWN5ICg8IDQuMDIpXG4gICAgICBpbXBsZW1lbnRhdGlvbiB3YXMgaGFwcHkgdG8ganVzdCBpZ25vcmUgdGhlIHNwYWNlLlxuICAqKVxuICBpblxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZS4gKilcbiAgbGV0IGludmFsaWRfZm9ybWF0X21lc3NhZ2Ugc3RyX2luZCBtc2cgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsICVzXCJcbiAgICAgIHN0ciBzdHJfaW5kIG1zZ1xuICBpblxuXG4gICgqIFVzZWQgd2hlbiB0aGUgZW5kIG9mIHRoZSBmb3JtYXQgKG9yIHRoZSBjdXJyZW50IHN1Yi1mb3JtYXQpIHdhcyBlbmNvdW50ZXJlZFxuICAgICAgdW5leHBlY3RlZGx5LiAqKVxuICBsZXQgdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQgPVxuICAgIGludmFsaWRfZm9ybWF0X21lc3NhZ2UgZW5kX2luZFxuICAgICAgXCJ1bmV4cGVjdGVkIGVuZCBvZiBmb3JtYXRcIlxuICBpblxuXG4gICgqIFVzZWQgZm9yICUwYzogbm8gb3RoZXIgd2lkdGhzIGFyZSBpbXBsZW1lbnRlZCAqKVxuICBsZXQgaW52YWxpZF9ub25udWxsX2NoYXJfd2lkdGggc3RyX2luZCA9XG4gICAgaW52YWxpZF9mb3JtYXRfbWVzc2FnZSBzdHJfaW5kXG4gICAgICBcIm5vbi16ZXJvIHdpZHRocyBhcmUgdW5zdXBwb3J0ZWQgZm9yICVjIGNvbnZlcnNpb25zXCJcbiAgaW5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGFuIG9wdGlvbiBkZXBlbmRlbmN5XG4gICAgIHByb2JsZW0uICopXG4gIGxldCBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IHN0cl9pbmQgYyBzID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAnJWMnIHdpdGhvdXQgJXNcIlxuICAgICAgc3RyIHN0cl9pbmQgYyBzXG4gIGluXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGFuIHVuZXhwZWN0ZWRcbiAgICAgY2hhcmFjdGVyLiAqKVxuICBsZXQgZXhwZWN0ZWRfY2hhcmFjdGVyIHN0cl9pbmQgZXhwZWN0ZWQgcmVhZCA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAlcyBleHBlY3RlZCwgcmVhZCAlQ1wiXG4gICAgICBzdHIgc3RyX2luZCBleHBlY3RlZCByZWFkXG4gIGluXG5cbiAgKCogUGFyc2UgdGhlIHN0cmluZyBmcm9tIGJlZ19pbmQgKGluY2x1ZGVkKSB0byBlbmRfaW5kIChleGNsdWRlZCkuICopXG4gIGxldCByZWMgcGFyc2UgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gYmVnX2luZCBlbmRfaW5kIC0+IHBhcnNlX2xpdGVyYWwgYmVnX2luZCBiZWdfaW5kIGVuZF9pbmRcblxuICAoKiBSZWFkIGxpdGVyYWwgY2hhcmFjdGVycyB1cCB0byAnJScgb3IgJ0AnIHNwZWNpYWwgY2hhcmFjdGVycy4gKilcbiAgYW5kIHBhcnNlX2xpdGVyYWwgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGxpdF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIEVuZF9vZl9mb3JtYXQgZWxzZVxuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlX2Zvcm1hdCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgYWRkX2xpdGVyYWwgbGl0X3N0YXJ0IHN0cl9pbmQgZm10X3Jlc3RcbiAgICAgIHwgJ0AnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2VfYWZ0ZXJfYXQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIGZtdF9yZXN0XG4gICAgICB8IF8gLT5cbiAgICAgICAgcGFyc2VfbGl0ZXJhbCBsaXRfc3RhcnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG5cbiAgKCogUGFyc2UgYSBmb3JtYXQgYWZ0ZXIgJyUnICopXG4gIGFuZCBwYXJzZV9mb3JtYXQgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBlbmRfaW5kIC0+IHBhcnNlX2lnbiBwY3RfaW5kIChwY3RfaW5kICsgMSkgZW5kX2luZFxuXG4gIGFuZCBwYXJzZV9pZ24gOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ18nIC0+IHBhcnNlX2ZsYWdzIHBjdF9pbmQgKHN0cl9pbmQrMSkgZW5kX2luZCB0cnVlXG4gICAgICB8IF8gLT4gcGFyc2VfZmxhZ3MgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgZmFsc2VcblxuICBhbmQgcGFyc2VfZmxhZ3MgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmJcbiAgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgaWduIC0+XG4gICAgbGV0IHplcm8gPSByZWYgZmFsc2UgYW5kIG1pbnVzID0gcmVmIGZhbHNlXG4gICAgYW5kIHBsdXMgPSByZWYgZmFsc2UgYW5kIHNwYWNlID0gcmVmIGZhbHNlXG4gICAgYW5kIGhhc2ggPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgc2V0X2ZsYWcgc3RyX2luZCBmbGFnID1cbiAgICAgICgqIGluIGxlZ2FjeSBtb2RlLCBkdXBsaWNhdGUgZmxhZ3MgYXJlIGFjY2VwdGVkICopXG4gICAgICBpZiAhZmxhZyAmJiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIGR1cGxpY2F0ZSBmbGFnICVDXCJcbiAgICAgICAgICBzdHIgc3RyX2luZCBzdHIuW3N0cl9pbmRdO1xuICAgICAgZmxhZyA6PSB0cnVlO1xuICAgIGluXG4gICAgbGV0IHJlYyByZWFkX2ZsYWdzIHN0cl9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnMCcgLT4gc2V0X2ZsYWcgc3RyX2luZCB6ZXJvOyAgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICctJyAtPiBzZXRfZmxhZyBzdHJfaW5kIG1pbnVzOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJysnIC0+IHNldF9mbGFnIHN0cl9pbmQgcGx1czsgIHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnIycgLT4gc2V0X2ZsYWcgc3RyX2luZCBoYXNoOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJyAnIC0+IHNldF9mbGFnIHN0cl9pbmQgc3BhY2U7IHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCBfIC0+XG4gICAgICAgIHBhcnNlX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmRcbiAgICAgICAgICAhemVybyAhbWludXMgIXBsdXMgIWhhc2ggIXNwYWNlIGlnblxuICAgICAgZW5kXG4gICAgaW5cbiAgICByZWFkX2ZsYWdzIHN0cl9pbmRcblxuICAoKiBUcnkgdG8gcmVhZCBhIGRpZ2l0YWwgb3IgYSAnKicgcGFkZGluZy4gKilcbiAgYW5kIHBhcnNlX3BhZGRpbmcgOiB0eXBlIGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCB6ZXJvIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYWR0eSA9IG1hdGNoIHplcm8sIG1pbnVzIHdpdGhcbiAgICAgIHwgZmFsc2UsIGZhbHNlIC0+IFJpZ2h0XG4gICAgICB8IGZhbHNlLCB0cnVlICAtPiBMZWZ0XG4gICAgICB8ICB0cnVlLCBmYWxzZSAtPiBaZXJvc1xuICAgICAgfCAgdHJ1ZSwgdHJ1ZSAgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gTGVmdFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnLScgXCIwXCIgaW5cbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT5cbiAgICAgIGxldCBuZXdfaW5kLCB3aWR0aCA9IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwIGluXG4gICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgbmV3X2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgKExpdF9wYWRkaW5nIChwYWR0eSwgd2lkdGgpKVxuICAgIHwgJyonIC0+XG4gICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZVxuICAgICAgICBpZ24gKEFyZ19wYWRkaW5nIHBhZHR5KVxuICAgIHwgXyAtPlxuICAgICAgYmVnaW4gbWF0Y2ggcGFkdHkgd2l0aFxuICAgICAgfCBMZWZ0ICAtPlxuICAgICAgICBpZiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgICBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IChzdHJfaW5kIC0gMSkgJy0nIFwicGFkZGluZ1wiO1xuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBOb19wYWRkaW5nXG4gICAgICB8IFplcm9zIC0+XG4gICAgICAgICAoKiBhICcwJyBwYWRkaW5nIGluZGljYXRpb24gbm90IGZvbGxvd2VkIGJ5IGFueXRoaW5nIHNob3VsZFxuICAgICAgICAgICBiZSBpbnRlcnByZXRlZCBhcyBhIFJpZ2h0IHBhZGRpbmcgb2Ygd2lkdGggMC4gVGhpcyBpcyB1c2VkXG4gICAgICAgICAgIGJ5IHNjYW5uaW5nIGNvbnZlcnNpb25zICUwcyBhbmQgJTBjICopXG4gICAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIChMaXRfcGFkZGluZyAoUmlnaHQsIDApKVxuICAgICAgfCBSaWdodCAtPlxuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBOb19wYWRkaW5nXG4gICAgICBlbmRcblxuICAoKiBJcyBwcmVjaXNpb24gZGVmaW5lZD8gKilcbiAgYW5kIHBhcnNlX2FmdGVyX3BhZGRpbmcgOiB0eXBlIHggZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgXykgcGFkZGluZyAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnLicgLT5cbiAgICAgIHBhcnNlX3ByZWNpc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIHBhZFxuICAgIHwgc3ltYiAtPlxuICAgICAgcGFyc2VfY29udmVyc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZFxuICAgICAgICBOb19wcmVjaXNpb24gcGFkIHN5bWJcblxuICAoKiBSZWFkIHRoZSBkaWdpdGFsIG9yICcqJyBwcmVjaXNpb24uICopXG4gIGFuZCBwYXJzZV9wcmVjaXNpb24gOiB0eXBlIHggZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgXykgcGFkZGluZyAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbGV0IHBhcnNlX2xpdGVyYWwgbWludXMgc3RyX2luZCA9XG4gICAgICBsZXQgbmV3X2luZCwgcHJlYyA9IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwIGluXG4gICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCBuZXdfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICBwYWQgKExpdF9wcmVjaXNpb24gcHJlYykgaW5cbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT4gcGFyc2VfbGl0ZXJhbCBtaW51cyBzdHJfaW5kXG4gICAgfCAoJysnIHwgJy0nKSBhcyBzeW1iIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+XG4gICAgICAoKiBMZWdhY3kgbW9kZSB3b3VsZCBhY2NlcHQgYW5kIGlnbm9yZSAnKycgb3IgJy0nIGJlZm9yZSB0aGVcbiAgICAgICAgIGludGVnZXIgZGVzY3JpYmluZyB0aGUgZGVzaXJlZCBwcmVjaXNpb247IG5vdGUgdGhhdCB0aGlzXG4gICAgICAgICBjYW5ub3QgaGFwcGVuIGZvciBwYWRkaW5nIHdpZHRoLCBhcyAnKycgYW5kICctJyBhbHJlYWR5IGhhdmVcbiAgICAgICAgIGEgc2VtYW50aWNzIHRoZXJlLlxuXG4gICAgICAgICBUaGF0IHNhaWQsIHRoZSBpZGVhIChzdXBwb3J0ZWQgYnkgdGhpcyB0d2VhaykgdGhhdCB3aWR0aCBhbmRcbiAgICAgICAgIHByZWNpc2lvbiBsaXRlcmFscyBhcmUgXCJpbnRlZ2VyIGxpdGVyYWxzXCIgaW4gdGhlIE9DYW1sIHNlbnNlIGlzXG4gICAgICAgICBzdGlsbCBibGF0YW50bHkgd3JvbmcsIGFzIDEyM180NTYgb3IgMHhGRiBhcmUgcmVqZWN0ZWQuICopXG4gICAgICBwYXJzZV9saXRlcmFsIChtaW51cyB8fCBzeW1iID0gJy0nKSAoc3RyX2luZCArIDEpXG4gICAgfCAnKicgLT5cbiAgICAgIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2VcbiAgICAgICAgaWduIHBhZCBBcmdfcHJlY2lzaW9uXG4gICAgfCBfIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICAoKiBub3RlIHRoYXQgbGVnYWN5IGltcGxlbWVudGF0aW9uIGRpZCBub3QgaWdub3JlICcuJyB3aXRob3V0XG4gICAgICAgICAgIGEgbnVtYmVyIChhcyBpdCBkb2VzIGZvciBwYWRkaW5nIGluZGljYXRpb25zKSwgYnV0XG4gICAgICAgICAgIGludGVycHJldHMgaXQgYXMgJy4wJyAqKVxuICAgICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIHBhZCAoTGl0X3ByZWNpc2lvbiAwKVxuICAgICAgZWxzZVxuICAgICAgICBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IChzdHJfaW5kIC0gMSkgJy4nIFwicHJlY2lzaW9uXCJcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgY29udmVyc2lvbi4gKilcbiAgYW5kIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiA6IHR5cGUgeCB5IHogdCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+XG4gICAgICAgICh4LCB5KSBwYWRkaW5nIC0+ICh6LCB0KSBwcmVjaXNpb24gLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgcHJlYyAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbGV0IHBhcnNlX2NvbnYgKHR5cGUgdSkgKHR5cGUgdikgKHBhZHByZWMgOiAodSwgdikgcGFkZGluZykgPVxuICAgICAgcGFyc2VfY29udmVyc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZFxuICAgICAgICBwcmVjIHBhZHByZWMgc3RyLltzdHJfaW5kXSBpblxuICAgICgqIGluIGxlZ2FjeSBtb2RlLCBzb21lIGZvcm1hdHMgKCVzIGFuZCAlUykgYWNjZXB0IGEgd2VpcmQgbWl4IG9mXG4gICAgICAgcGFkZGluZyBhbmQgcHJlY2lzaW9uLCB3aGljaCBpcyBtZXJnZWQgYXMgYSBzaW5nbGUgcGFkZGluZ1xuICAgICAgIGluZm9ybWF0aW9uLiBGb3IgZXhhbXBsZSwgaW4gJS4xMHMgdGhlIHByZWNpc2lvbiBpcyBpbXBsaWNpdGx5XG4gICAgICAgdW5kZXJzdG9vZCBhcyBwYWRkaW5nICUxMHMsIGJ1dCB0aGUgbGVmdC1wYWRkaW5nIGNvbXBvbmVudCBtYXlcbiAgICAgICBiZSBzcGVjaWZpZWQgZWl0aGVyIGFzIGEgbGVmdCBwYWRkaW5nIG9yIGEgbmVnYXRpdmUgcHJlY2lzaW9uOlxuICAgICAgICUtLjNzIGFuZCAlLi0zcyBhcmUgZXF1aXZhbGVudCB0byAlLTNzICopXG4gICAgbWF0Y2ggcGFkIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgLT4gKFxuICAgICAgbWF0Y2ggbWludXMsIHByZWMgd2l0aFxuICAgICAgICB8IF8sIE5vX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IE5vX3BhZGRpbmdcbiAgICAgICAgfCBmYWxzZSwgTGl0X3ByZWNpc2lvbiBuIC0+IHBhcnNlX2NvbnYgKExpdF9wYWRkaW5nIChSaWdodCwgbikpXG4gICAgICAgIHwgdHJ1ZSwgTGl0X3ByZWNpc2lvbiBuIC0+IHBhcnNlX2NvbnYgKExpdF9wYWRkaW5nIChMZWZ0LCBuKSlcbiAgICAgICAgfCBmYWxzZSwgQXJnX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IChBcmdfcGFkZGluZyBSaWdodClcbiAgICAgICAgfCB0cnVlLCBBcmdfcHJlY2lzaW9uIC0+IHBhcnNlX2NvbnYgKEFyZ19wYWRkaW5nIExlZnQpXG4gICAgKVxuICAgIHwgcGFkIC0+IHBhcnNlX2NvbnYgcGFkXG5cbiAgKCogQ2FzZSBhbmFseXNpcyBvbiBjb252ZXJzaW9uLiAqKVxuICBhbmQgcGFyc2VfY29udmVyc2lvbiA6IHR5cGUgeCB5IHogdCB1IHYgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gKHgsIHkpIHBhZGRpbmcgLT5cbiAgICAgICAgKHosIHQpIHByZWNpc2lvbiAtPiAodSwgdikgcGFkZGluZyAtPiBjaGFyIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIHByZWMgcGFkcHJlYyBzeW1iIC0+XG4gICAgKCogRmxhZ3MgdXNlZCB0byBjaGVjayBvcHRpb24gdXNhZ2VzL2NvbXBhdGliaWxpdGllcy4gKilcbiAgICBsZXQgcGx1c191c2VkICA9IHJlZiBmYWxzZSBhbmQgaGFzaF91c2VkID0gcmVmIGZhbHNlXG4gICAgYW5kIHNwYWNlX3VzZWQgPSByZWYgZmFsc2UgYW5kIGlnbl91c2VkICAgPSByZWYgZmFsc2VcbiAgICBhbmQgcGFkX3VzZWQgICA9IHJlZiBmYWxzZSBhbmQgcHJlY191c2VkICA9IHJlZiBmYWxzZSBpblxuXG4gICAgKCogQWNjZXNzIHRvIG9wdGlvbnMsIHVwZGF0ZSBmbGFncy4gKilcbiAgICBsZXQgZ2V0X3BsdXMgICAgKCkgPSBwbHVzX3VzZWQgIDo9IHRydWU7IHBsdXNcbiAgICBhbmQgZ2V0X2hhc2ggICAoKSA9IGhhc2hfdXNlZCA6PSB0cnVlOyBoYXNoXG4gICAgYW5kIGdldF9zcGFjZSAgICgpID0gc3BhY2VfdXNlZCA6PSB0cnVlOyBzcGFjZVxuICAgIGFuZCBnZXRfaWduICAgICAoKSA9IGlnbl91c2VkICAgOj0gdHJ1ZTsgaWduXG4gICAgYW5kIGdldF9wYWQgICAgICgpID0gcGFkX3VzZWQgICA6PSB0cnVlOyBwYWRcbiAgICBhbmQgZ2V0X3ByZWMgICAgKCkgPSBwcmVjX3VzZWQgIDo9IHRydWU7IHByZWNcbiAgICBhbmQgZ2V0X3BhZHByZWMgKCkgPSBwYWRfdXNlZCAgIDo9IHRydWU7IHBhZHByZWMgaW5cblxuICAgIGxldCBnZXRfaW50X3BhZCAoKSA6ICh4LHkpIHBhZGRpbmcgPVxuICAgICAgKCogJTUuM2QgaXMgYWNjZXB0ZWQgYW5kIG1lYW5pbmdmdWw6IHBhZCB0byBsZW5ndGggNSB3aXRoXG4gICAgICAgICBzcGFjZXMsIGJ1dCBmaXJzdCBwYWQgd2l0aCB6ZXJvcyB1cHRvIGxlbmd0aCAzICgwLXBhZGRpbmdcbiAgICAgICAgIGlzIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBcInByZWNpc2lvblwiIGZvciBpbnRlZ2VyIGZvcm1hdHMpLlxuXG4gICAgICAgICAlMDUuM2QgaXMgcmVkdW5kYW50OiBwYWQgdG8gbGVuZ3RoIDUgKndpdGggemVyb3MqLCBidXRcbiAgICAgICAgIGZpcnN0IHBhZCB3aXRoIHplcm9zLi4uIFRvIGFkZCBpbnN1bHQgdG8gdGhlIGluanVyeSwgdGhlXG4gICAgICAgICBsZWdhY3kgaW1wbGVtZW50YXRpb24gaWdub3JlcyB0aGUgMC1wYWRkaW5nIGluZGljYXRpb24gYW5kXG4gICAgICAgICBkb2VzIHRoZSA1IHBhZGRpbmcgd2l0aCBzcGFjZXMgaW5zdGVhZC4gV2UgcmV1c2UgdGhpc1xuICAgICAgICAgaW50ZXJwcmV0YXRpb24gZm9yIGNvbXBhdGliaWxpdHksIGJ1dCBzdGF0aWNhbGx5IHJlamVjdCB0aGlzXG4gICAgICAgICBmb3JtYXQgd2hlbiB0aGUgbGVnYWN5IG1vZGUgaXMgZGlzYWJsZWQsIHRvIHByb3RlY3Qgc3RyaWN0XG4gICAgICAgICB1c2VycyBmcm9tIHRoaXMgY29ybmVyIGNhc2UuICopXG4gICAgICAgbWF0Y2ggZ2V0X3BhZCAoKSwgZ2V0X3ByZWMgKCkgd2l0aFxuICAgICAgICAgfCBwYWQsIE5vX3ByZWNpc2lvbiAtPiBwYWRcbiAgICAgICAgIHwgTm9fcGFkZGluZywgXyAgICAgLT4gTm9fcGFkZGluZ1xuICAgICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIG4pLCBfIC0+XG4gICAgICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExpdF9wYWRkaW5nIChSaWdodCwgbilcbiAgICAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJzAnIFwicHJlY2lzaW9uXCJcbiAgICAgICAgIHwgQXJnX3BhZGRpbmcgWmVyb3MsIF8gLT5cbiAgICAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gQXJnX3BhZGRpbmcgUmlnaHRcbiAgICAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJzAnIFwicHJlY2lzaW9uXCJcbiAgICAgICAgIHwgTGl0X3BhZGRpbmcgXyBhcyBwYWQsIF8gLT4gcGFkXG4gICAgICAgICB8IEFyZ19wYWRkaW5nIF8gYXMgcGFkLCBfIC0+IHBhZCBpblxuXG4gICAgKCogQ2hlY2sgdGhhdCBwYWR0eSA8PiBaZXJvcy4gKilcbiAgICBsZXQgY2hlY2tfbm9fMCBzeW1iICh0eXBlIGEgYikgKHBhZCA6IChhLCBiKSBwYWRkaW5nKSA6IChhLGIpIHBhZGRpbmcgPVxuICAgICAgbWF0Y2ggcGFkIHdpdGhcbiAgICAgIHwgTm9fcGFkZGluZyAtPiBwYWRcbiAgICAgIHwgTGl0X3BhZGRpbmcgKChMZWZ0IHwgUmlnaHQpLCBfKSAtPiBwYWRcbiAgICAgIHwgQXJnX3BhZGRpbmcgKExlZnQgfCBSaWdodCkgLT4gcGFkXG4gICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExpdF9wYWRkaW5nIChSaWdodCwgd2lkdGgpXG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCIwXCJcbiAgICAgIHwgQXJnX3BhZGRpbmcgWmVyb3MgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gQXJnX3BhZGRpbmcgUmlnaHRcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIjBcIlxuICAgIGluXG5cbiAgICAoKiBHZXQgcGFkZGluZyBhcyBhIHBhZF9vcHRpb24gKHNlZSBcIiVfXCIsIFwiJXtcIiwgXCIlKFwiIGFuZCBcIiVbXCIpLlxuICAgICAgIChubyBuZWVkIGZvciBsZWdhY3kgbW9kZSB0d2Vha2luZywgdGhvc2Ugd2VyZSByZWplY3RlZCBieSB0aGVcbiAgICAgICBsZWdhY3kgcGFyc2VyIGFzIHdlbGwpICopXG4gICAgbGV0IG9wdF9vZl9wYWQgYyAodHlwZSBhKSAodHlwZSBiKSAocGFkIDogKGEsIGIpIHBhZGRpbmcpID0gbWF0Y2ggcGFkIHdpdGhcbiAgICAgIHwgTm9fcGFkZGluZyAtPiBOb25lXG4gICAgICB8IExpdF9wYWRkaW5nIChSaWdodCwgd2lkdGgpIC0+IFNvbWUgd2lkdGhcbiAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gU29tZSB3aWR0aFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJzAnXCJcbiAgICAgIHwgTGl0X3BhZGRpbmcgKExlZnQsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBTb21lIHdpZHRoXG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIGMgXCInLSdcIlxuICAgICAgfCBBcmdfcGFkZGluZyBfIC0+IGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJyonXCJcbiAgICBpblxuICAgIGxldCBnZXRfcGFkX29wdCBjID0gb3B0X29mX3BhZCBjIChnZXRfcGFkICgpKSBpblxuICAgIGxldCBnZXRfcGFkcHJlY19vcHQgYyA9IG9wdF9vZl9wYWQgYyAoZ2V0X3BhZHByZWMgKCkpIGluXG5cbiAgICAoKiBHZXQgcHJlY2lzaW9uIGFzIGEgcHJlY19vcHRpb24gKHNlZSBcIiVfZlwiKS5cbiAgICAgICAobm8gbmVlZCBmb3IgbGVnYWN5IG1vZGUgdHdlYWtpbmcsIHRob3NlIHdlcmUgcmVqZWN0ZWQgYnkgdGhlXG4gICAgICAgbGVnYWN5IHBhcnNlciBhcyB3ZWxsKSAqKVxuICAgIGxldCBnZXRfcHJlY19vcHQgKCkgPSBtYXRjaCBnZXRfcHJlYyAoKSB3aXRoXG4gICAgICB8IE5vX3ByZWNpc2lvbiAgICAgICAtPiBOb25lXG4gICAgICB8IExpdF9wcmVjaXNpb24gbmRlYyAtPiBTb21lIG5kZWNcbiAgICAgIHwgQXJnX3ByZWNpc2lvbiAgICAgIC0+IGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnXycgXCInKidcIlxuICAgIGluXG5cbiAgICBsZXQgZm10X3Jlc3VsdCA9IG1hdGNoIHN5bWIgd2l0aFxuICAgIHwgJywnIC0+XG4gICAgICBwYXJzZSBzdHJfaW5kIGVuZF9pbmRcbiAgICB8ICdjJyAtPlxuICAgICAgbGV0IGNoYXJfZm9ybWF0IGZtdF9yZXN0ID0gKCogJWMgKilcbiAgICAgICAgaWYgZ2V0X2lnbiAoKVxuICAgICAgICB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfY2hhciwgZm10X3Jlc3QpKVxuICAgICAgICBlbHNlIEZtdF9FQkIgKENoYXIgZm10X3Jlc3QpXG4gICAgICBpblxuICAgICAgbGV0IHNjYW5fZm9ybWF0IGZtdF9yZXN0ID0gKCogJTBjICopXG4gICAgICAgIGlmIGdldF9pZ24gKClcbiAgICAgICAgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX3NjYW5fbmV4dF9jaGFyLCBmbXRfcmVzdCkpXG4gICAgICAgIGVsc2UgRm10X0VCQiAoU2Nhbl9uZXh0X2NoYXIgZm10X3Jlc3QpXG4gICAgICBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGJlZ2luIG1hdGNoIGdldF9wYWRfb3B0ICdjJyB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBjaGFyX2Zvcm1hdCBmbXRfcmVzdFxuICAgICAgICB8IFNvbWUgMCAtPiBzY2FuX2Zvcm1hdCBmbXRfcmVzdFxuICAgICAgICB8IFNvbWUgX24gLT5cbiAgICAgICAgICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvclxuICAgICAgICAgICB0aGVuIGludmFsaWRfbm9ubnVsbF9jaGFyX3dpZHRoIHN0cl9pbmRcbiAgICAgICAgICAgZWxzZSAoKiBsZWdhY3kgaWdub3JlcyAlYyB3aWR0aHMgKikgY2hhcl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgIGVuZFxuICAgIHwgJ0MnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfY2FtbF9jaGFyLGZtdF9yZXN0KSlcbiAgICAgIGVsc2UgRm10X0VCQiAoQ2FtbF9jaGFyIGZtdF9yZXN0KVxuICAgIHwgJ3MnIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3N0cmluZyAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoU3RyaW5nIChwYWQnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ1MnIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2NhbWxfc3RyaW5nIChnZXRfcGFkcHJlY19vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRkaW5nX2ZtdF9FQkIgKHBhZCcsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkZGluZ19mbXRfZWJiIHBhZCBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChDYW1sX3N0cmluZyAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdkJyB8ICdpJyB8ICd4JyB8ICdYJyB8ICdvJyB8ICd1JyAtPlxuICAgICAgbGV0IGljb252ID0gY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgKGdldF9wbHVzICgpKSAoZ2V0X2hhc2ggKCkpXG4gICAgICAgIChnZXRfc3BhY2UgKCkpIHN5bWIgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ04nIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IGNvdW50ZXIgPSBUb2tlbl9jb3VudGVyIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSlcbiAgICB8ICdsJyB8ICduJyB8ICdMJyB3aGVuIHN0cl9pbmQ9ZW5kX2luZCB8fCBub3QgKGlzX2ludF9iYXNlIHN0ci5bc3RyX2luZF0pIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IGNvdW50ZXIgPSBjb3VudGVyX29mX2NoYXIgc3ltYiBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCkpXG4gICAgfCAnbCcgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAgIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludDMyIChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoSW50MzIgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICduJyAtPlxuICAgICAgbGV0IGljb252ID1cbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIChzdHJfaW5kICsgMSkgKGdldF9wbHVzICgpKVxuICAgICAgICAgIChnZXRfaGFzaCAoKSkgKGdldF9zcGFjZSAoKSkgc3RyLltzdHJfaW5kXSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfbmF0aXZlaW50IChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoTmF0aXZlaW50IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnTCcgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAgIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludDY0IChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoSW50NjQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdmJyB8ICdlJyB8ICdFJyB8ICdnJyB8ICdHJyB8ICdGJyB8ICdoJyB8ICdIJyAtPlxuICAgICAgbGV0IGZjb252ID1cbiAgICAgICAgY29tcHV0ZV9mbG9hdF9jb252IHBjdF9pbmQgc3RyX2luZFxuICAgICAgICAgIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKSAoZ2V0X3NwYWNlICgpKSBzeW1iIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9mbG9hdCAoZ2V0X3BhZF9vcHQgJ18nLCBnZXRfcHJlY19vcHQgKCkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEZsb2F0IChmY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnYicgfCAnQicgLT5cbiAgICAgIGxldCBwYWQgPSBjaGVja19ub18wIHN5bWIgKGdldF9wYWRwcmVjICgpKSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfYm9vbCAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoQm9vbCAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdhJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEFscGhhIGZtdF9yZXN0KVxuICAgIHwgJ3QnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoVGhldGEgZm10X3Jlc3QpXG4gICAgfCAncicgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9yZWFkZXIsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2UgRm10X0VCQiAoUmVhZGVyIGZtdF9yZXN0KVxuICAgIHwgJyEnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRmx1c2ggZm10X3Jlc3QpXG4gICAgfCAoJyUnIHwgJ0AnKSBhcyBjIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoQ2hhcl9saXRlcmFsIChjLCBmbXRfcmVzdCkpXG4gICAgfCAneycgLT5cbiAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgc3RyX2luZCBlbmRfaW5kICd9JyBpblxuICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgc3ViX2VuZCBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3ViX2VuZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgIGxldCBzdWJfZm10dHkgPSBmbXR0eV9vZl9mbXQgc3ViX2ZtdCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9mb3JtYXRfYXJnIChnZXRfcGFkX29wdCAnXycsIHN1Yl9mbXR0eSkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChGb3JtYXRfYXJnIChnZXRfcGFkX29wdCAneycsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpKVxuICAgIHwgJygnIC0+XG4gICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCAnKScgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCBzdWJfZW5kIGluXG4gICAgICBsZXQgc3ViX2ZtdHR5ID0gZm10dHlfb2ZfZm10IHN1Yl9mbXQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZm9ybWF0X3N1YnN0IChnZXRfcGFkX29wdCAnXycsIHN1Yl9mbXR0eSkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChGb3JtYXRfc3Vic3QgKGdldF9wYWRfb3B0ICcoJywgc3ViX2ZtdHR5LCBmbXRfcmVzdCkpXG4gICAgfCAnWycgLT5cbiAgICAgIGxldCBuZXh0X2luZCwgY2hhcl9zZXQgPSBwYXJzZV9jaGFyX3NldCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2NoYXJfc2V0IChnZXRfcGFkX29wdCAnXycsIGNoYXJfc2V0KSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKFNjYW5fY2hhcl9zZXQgKGdldF9wYWRfb3B0ICdbJywgY2hhcl9zZXQsIGZtdF9yZXN0KSlcbiAgICB8ICctJyB8ICcrJyB8ICcjJyB8ICcgJyB8ICdfJyAtPlxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgZmxhZyAlQyBpcyBvbmx5IGFsbG93ZWQgYWZ0ZXIgdGhlICclJScsIGJlZm9yZSBwYWRkaW5nIGFuZCBwcmVjaXNpb25cIlxuICAgICAgICBzdHIgcGN0X2luZCBzeW1iXG4gICAgfCBfIC0+XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIFxcXG4gICAgICAgICBpbnZhbGlkIGNvbnZlcnNpb24gXFxcIiUlJWNcXFwiXCIgc3RyIChzdHJfaW5kIC0gMSkgc3ltYlxuICAgIGluXG4gICAgKCogQ2hlY2sgZm9yIHVudXNlZCBvcHRpb25zLCBhbmQgcmVqZWN0IHRoZW0gYXMgaW5jb21wYXRpYmxlLlxuXG4gICAgICAgU3VjaCBjaGVja3MgbmVlZCB0byBiZSBkaXNhYmxlZCBpbiBsZWdhY3kgbW9kZSwgYXMgdGhlIGxlZ2FjeVxuICAgICAgIHBhcnNlciBzaWxlbnRseSBpZ25vcmVkIGluY29tcGF0aWJsZSBmbGFncy4gKilcbiAgICBpZiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW4gYmVnaW5cbiAgICBpZiBub3QgIXBsdXNfdXNlZCAmJiBwbHVzIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJysnXCI7XG4gICAgaWYgbm90ICFoYXNoX3VzZWQgJiYgaGFzaCB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicjJ1wiO1xuICAgIGlmIG5vdCAhc3BhY2VfdXNlZCAmJiBzcGFjZSB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicgJ1wiO1xuICAgIGlmIG5vdCAhcGFkX3VzZWQgICYmIFBhZGRpbmdfRUJCIHBhZCA8PiBQYWRkaW5nX0VCQiBOb19wYWRkaW5nIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiYHBhZGRpbmcnXCI7XG4gICAgaWYgbm90ICFwcmVjX3VzZWQgJiYgUHJlY2lzaW9uX0VCQiBwcmVjIDw+IFByZWNpc2lvbl9FQkIgTm9fcHJlY2lzaW9uIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAoaWYgaWduIHRoZW4gJ18nIGVsc2Ugc3ltYilcbiAgICAgICAgXCJgcHJlY2lzaW9uJ1wiO1xuICAgIGlmIGlnbiAmJiBwbHVzIHRoZW4gaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICdfJyBcIicrJ1wiO1xuICAgIGVuZDtcbiAgICAoKiB0aGlzIGxhc3QgdGVzdCBtdXN0IG5vdCBiZSBkaXNhYmxlZCBpbiBsZWdhY3kgbW9kZSxcbiAgICAgICBhcyBpZ25vcmluZyBpdCB3b3VsZCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHR5cGluZ1xuICAgICAgIHRoYW4gd2hhdCB0aGUgbGVnYWN5IHBhcnNlciB1c2VkICopXG4gICAgaWYgbm90ICFpZ25fdXNlZCAmJiBpZ24gdGhlblxuICAgICAgYmVnaW4gbWF0Y2ggc3ltYiB3aXRoXG4gICAgICAgICgqIGFyZ3VtZW50LWxlc3MgZm9ybWF0cyBjYW4gc2FmZWx5IGJlIGlnbm9yZWQgaW4gbGVnYWN5IG1vZGUgKilcbiAgICAgICAgfCAoJ0AnIHwgJyUnIHwgJyEnIHwgJywnKSB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPiAoKVxuICAgICAgICB8IF8gLT5cbiAgICAgICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIidfJ1wiXG4gICAgICBlbmQ7XG4gICAgZm10X3Jlc3VsdFxuXG4gICgqIFBhcnNlIGZvcm1hdHRpbmcgaW5mb3JtYXRpb24gKGFmdGVyICdAJykuICopXG4gIGFuZCBwYXJzZV9hZnRlcl9hdCA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoJ0AnLCBFbmRfb2ZfZm9ybWF0KSlcbiAgICBlbHNlXG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ1snIC0+XG4gICAgICAgIHBhcnNlX3RhZyBmYWxzZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChDbG9zZV9ib3gsIGZtdF9yZXN0KSlcbiAgICAgIHwgJ3snIC0+XG4gICAgICAgIHBhcnNlX3RhZyB0cnVlIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnfScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKENsb3NlX3RhZywgZm10X3Jlc3QpKVxuICAgICAgfCAnLCcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEJyZWFrIChcIkAsXCIsIDAsIDApLCBmbXRfcmVzdCkpXG4gICAgICB8ICcgJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQnJlYWsgKFwiQCBcIiwgMSwgMCksIGZtdF9yZXN0KSlcbiAgICAgIHwgJzsnIC0+XG4gICAgICAgIHBhcnNlX2dvb2RfYnJlYWsgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICc/JyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRkZsdXNoLCBmbXRfcmVzdCkpXG4gICAgICB8ICdcXG4nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChGb3JjZV9uZXdsaW5lLCBmbXRfcmVzdCkpXG4gICAgICB8ICcuJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRmx1c2hfbmV3bGluZSwgZm10X3Jlc3QpKVxuICAgICAgfCAnPCcgLT5cbiAgICAgICAgcGFyc2VfbWFnaWNfc2l6ZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ0AnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChFc2NhcGVkX2F0LCBmbXRfcmVzdCkpXG4gICAgICB8ICclJyB3aGVuIHN0cl9pbmQgKyAxIDwgZW5kX2luZCAmJiBzdHIuW3N0cl9pbmQgKyAxXSA9ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMikgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRXNjYXBlZF9wZXJjZW50LCBmbXRfcmVzdCkpXG4gICAgICB8ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKCdAJywgZm10X3Jlc3QpKVxuICAgICAgfCBjIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChTY2FuX2luZGljIGMsIGZtdF9yZXN0KSlcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgb3B0aW9uYWwgPG5hbWU+IGFmdGVyIFwiQHtcIiBvciBcIkBbXCIuICopXG4gIGFuZCBwYXJzZV90YWcgOiB0eXBlIGUgZiAuIGJvb2wgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBpc19vcGVuX3RhZyBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICB0cnlcbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICc8JyAtPlxuICAgICAgICBsZXQgaW5kID0gU3RyaW5nLmluZGV4X2Zyb20gc3RyIChzdHJfaW5kICsgMSkgJz4nIGluXG4gICAgICAgIGlmIGluZCA+PSBlbmRfaW5kIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICBsZXQgc3ViX3N0ciA9IFN0cmluZy5zdWIgc3RyIHN0cl9pbmQgKGluZCAtIHN0cl9pbmQgKyAxKSBpblxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChpbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIChpbmQgKyAxKSBpblxuICAgICAgICBsZXQgc3ViX2Zvcm1hdCA9IEZvcm1hdCAoc3ViX2ZtdCwgc3ViX3N0cikgaW5cbiAgICAgICAgbGV0IGZvcm1hdHRpbmcgPVxuICAgICAgICAgIGlmIGlzX29wZW5fdGFnIHRoZW4gT3Blbl90YWcgc3ViX2Zvcm1hdCBlbHNlIE9wZW5fYm94IHN1Yl9mb3JtYXQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmcsIGZtdF9yZXN0KSlcbiAgICAgIHwgXyAtPlxuICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBzdWJfZm9ybWF0ID0gRm9ybWF0IChFbmRfb2ZfZm9ybWF0LCBcIlwiKSBpblxuICAgICAgbGV0IGZvcm1hdHRpbmcgPVxuICAgICAgICBpZiBpc19vcGVuX3RhZyB0aGVuIE9wZW5fdGFnIHN1Yl9mb3JtYXQgZWxzZSBPcGVuX2JveCBzdWJfZm9ybWF0IGluXG4gICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZywgZm10X3Jlc3QpKVxuXG4gICgqIFRyeSB0byByZWFkIHRoZSBvcHRpb25hbCA8d2lkdGggb2Zmc2V0PiBhZnRlciBcIkA7XCIuICopXG4gIGFuZCBwYXJzZV9nb29kX2JyZWFrIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGxldCBuZXh0X2luZCwgZm9ybWF0dGluZ19saXQgPVxuICAgICAgdHJ5XG4gICAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHx8IHN0ci5bc3RyX2luZF0gPD4gJzwnIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICBsZXQgc3RyX2luZF8xID0gcGFyc2Vfc3BhY2VzIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBtYXRjaCBzdHIuW3N0cl9pbmRfMV0gd2l0aFxuICAgICAgICB8ICcwJyAuLiAnOScgfCAnLScgLT4gKFxuICAgICAgICAgIGxldCBzdHJfaW5kXzIsIHdpZHRoID0gcGFyc2VfaW50ZWdlciBzdHJfaW5kXzEgZW5kX2luZCBpblxuICAgICAgICAgICAgbGV0IHN0cl9pbmRfMyA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzIgZW5kX2luZCBpblxuICAgICAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzNdIHdpdGhcbiAgICAgICAgICAgICAgfCAnPicgLT5cbiAgICAgICAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kLTIpIChzdHJfaW5kXzMtc3RyX2luZCszKSBpblxuICAgICAgICAgICAgICAgIHN0cl9pbmRfMyArIDEsIEJyZWFrIChzLCB3aWR0aCwgMClcbiAgICAgICAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+XG4gICAgICAgICAgICAgICAgbGV0IHN0cl9pbmRfNCwgb2Zmc2V0ID0gcGFyc2VfaW50ZWdlciBzdHJfaW5kXzMgZW5kX2luZCBpblxuICAgICAgICAgICAgICAgIGxldCBzdHJfaW5kXzUgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF80IGVuZF9pbmQgaW5cbiAgICAgICAgICAgICAgICBpZiBzdHIuW3N0cl9pbmRfNV0gPD4gJz4nIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICAgICAgICAgIGxldCBzID0gU3RyaW5nLnN1YiBzdHIgKHN0cl9pbmQtMikgKHN0cl9pbmRfNS1zdHJfaW5kKzMpIGluXG4gICAgICAgICAgICAgICAgc3RyX2luZF81ICsgMSwgQnJlYWsgKHMsIHdpZHRoLCBvZmZzZXQpXG4gICAgICAgICAgICAgIHwgXyAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgKVxuICAgICAgICB8IF8gLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB3aXRoIE5vdF9mb3VuZCB8IEZhaWx1cmUgXyAtPlxuICAgICAgICBzdHJfaW5kLCBCcmVhayAoXCJAO1wiLCAxLCAwKVxuICAgIGluXG4gICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBuZXh0X2luZCBlbmRfaW5kIGluXG4gICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCkpXG5cbiAgKCogUGFyc2UgdGhlIHNpemUgaW4gYSA8bj4uICopXG4gIGFuZCBwYXJzZV9tYWdpY19zaXplIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIG1hdGNoXG4gICAgICB0cnlcbiAgICAgICAgbGV0IHN0cl9pbmRfMSA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzFdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+XG4gICAgICAgICAgbGV0IHN0cl9pbmRfMiwgc2l6ZSA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8xIGVuZF9pbmQgaW5cbiAgICAgICAgICBsZXQgc3RyX2luZF8zID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfMiBlbmRfaW5kIGluXG4gICAgICAgICAgaWYgc3RyLltzdHJfaW5kXzNdIDw+ICc+JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kIC0gMikgKHN0cl9pbmRfMyAtIHN0cl9pbmQgKyAzKSBpblxuICAgICAgICAgIFNvbWUgKHN0cl9pbmRfMyArIDEsIE1hZ2ljX3NpemUgKHMsIHNpemUpKVxuICAgICAgICB8IF8gLT4gTm9uZVxuICAgICAgd2l0aCBOb3RfZm91bmQgfCBGYWlsdXJlIF8gLT5cbiAgICAgICAgTm9uZVxuICAgIHdpdGhcbiAgICB8IFNvbWUgKG5leHRfaW5kLCBmb3JtYXR0aW5nX2xpdCkgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCkpXG4gICAgfCBOb25lIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKFNjYW5faW5kaWMgJzwnLCBmbXRfcmVzdCkpXG5cbiAgKCogUGFyc2UgYW5kIGNvbnN0cnVjdCBhIGNoYXIgc2V0LiAqKVxuICBhbmQgcGFyc2VfY2hhcl9zZXQgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuXG4gICAgbGV0IGNoYXJfc2V0ID0gY3JlYXRlX2NoYXJfc2V0ICgpIGluXG4gICAgbGV0IGFkZF9jaGFyIGMgPVxuICAgICAgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IGM7XG4gICAgaW5cbiAgICBsZXQgYWRkX3JhbmdlIGMgYycgPVxuICAgICAgZm9yIGkgPSBpbnRfb2ZfY2hhciBjIHRvIGludF9vZl9jaGFyIGMnIGRvXG4gICAgICAgIGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCAoY2hhcl9vZl9pbnQgaSk7XG4gICAgICBkb25lO1xuICAgIGluXG5cbiAgICBsZXQgZmFpbF9zaW5nbGVfcGVyY2VudCBzdHJfaW5kID1cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogJyUlJyBhbG9uZSBpcyBub3QgYWNjZXB0ZWQgaW4gY2hhcmFjdGVyIHNldHMsIFxcXG4gICAgICAgICB1c2UgJSUlJSBpbnN0ZWFkIGF0IHBvc2l0aW9uICVkLlwiIHN0ciBzdHJfaW5kXG4gICAgaW5cblxuICAgICgqIFBhcnNlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBjaGFyIHNldC4gKilcbiAgICBsZXQgcmVjIHBhcnNlX2NoYXJfc2V0X3N0YXJ0IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbGV0IGMgPSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG5cbiAgICAoKiBQYXJzZSB0aGUgY29udGVudCBvZiBhIGNoYXIgc2V0IHVudGlsIHRoZSBmaXJzdCAnXScuICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgc3RyX2luZCBlbmRfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICctJyAtPlxuICAgICAgICBhZGRfY2hhciAnLSc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8IGMgLT5cbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICAgKCogVGVzdCBmb3IgcmFuZ2UgaW4gY2hhciBzZXQuICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgYWRkX2NoYXIgYztcbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJy0nIC0+XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX21pbnVzIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG4gICAgICB8ICgnJScgfCAnQCcpIGFzIGMnIHdoZW4gYyA9ICclJyAtPlxuICAgICAgICBhZGRfY2hhciBjJztcbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfY29udGVudCAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgYycgLT5cbiAgICAgICAgaWYgYyA9ICclJyB0aGVuIGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZDtcbiAgICAgICAgKCogbm90ZSB0aGF0ICdAJyBhbG9uZSBpcyBhY2NlcHRlZCwgYXMgZG9uZSBieSB0aGUgbGVnYWN5XG4gICAgICAgICAgIGltcGxlbWVudGF0aW9uOyB0aGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpY2FsbHkgcmVxdWlyZXMgJUBcbiAgICAgICAgICAgc28gd2UgY291bGQgd2FybiBvbiB0aGF0ICopXG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGMnXG5cbiAgICAoKiBNYW5hZ2UgcmFuZ2UgaW4gY2hhciBzZXQgKGV4Y2VwdCBpZiB0aGUgJy0nIHRoZSBsYXN0IGNoYXIgYmVmb3JlICddJykgKilcbiAgICBhbmQgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgYWRkX2NoYXIgYztcbiAgICAgICAgYWRkX2NoYXIgJy0nO1xuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnJScgLT5cbiAgICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDFdIHdpdGhcbiAgICAgICAgICB8ICgnJScgfCAnQCcpIGFzIGMnIC0+XG4gICAgICAgICAgICBhZGRfcmFuZ2UgYyBjJztcbiAgICAgICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kXG4gICAgICAgICAgfCBfIC0+IGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZFxuICAgICAgICBlbmRcbiAgICAgIHwgYycgLT5cbiAgICAgICAgYWRkX3JhbmdlIGMgYyc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgaW5cbiAgICBsZXQgc3RyX2luZCwgcmV2ZXJzZSA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICAgIHwgJ14nIC0+IHN0cl9pbmQgKyAxLCB0cnVlXG4gICAgICAgIHwgXyAtPiBzdHJfaW5kLCBmYWxzZSBpblxuICAgIGxldCBuZXh0X2luZCA9IHBhcnNlX2NoYXJfc2V0X3N0YXJ0IHN0cl9pbmQgZW5kX2luZCBpblxuICAgIGxldCBjaGFyX3NldCA9IGZyZWV6ZV9jaGFyX3NldCBjaGFyX3NldCBpblxuICAgIG5leHRfaW5kLCAoaWYgcmV2ZXJzZSB0aGVuIHJldl9jaGFyX3NldCBjaGFyX3NldCBlbHNlIGNoYXJfc2V0KVxuXG4gICgqIENvbnN1bWUgYWxsIG5leHQgc3BhY2VzLCByYWlzZSBhbiBGYWlsdXJlIGlmIGVuZF9pbmQgaXMgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX3NwYWNlcyBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgaWYgc3RyLltzdHJfaW5kXSA9ICcgJyB0aGVuIHBhcnNlX3NwYWNlcyAoc3RyX2luZCArIDEpIGVuZF9pbmQgZWxzZSBzdHJfaW5kXG5cbiAgKCogUmVhZCBhIHBvc2l0aXZlIGludGVnZXIgZnJvbSB0aGUgc3RyaW5nLCByYWlzZSBhIEZhaWx1cmUgaWYgZW5kX2luZCBpc1xuICAgICByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIGFjYyA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBhY2MgKiAxMCArIChpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnKSBpblxuICAgICAgaWYgbmV3X2FjYyA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBpbnRlZ2VyICVkIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGltaXQgJWRcIlxuICAgICAgICAgIHN0ciBuZXdfYWNjIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgICAgZWxzZVxuICAgICAgICBwYXJzZV9wb3NpdGl2ZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgbmV3X2FjY1xuICAgIHwgXyAtPiBzdHJfaW5kLCBhY2NcblxuICAoKiBSZWFkIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgaW50ZWdlciBmcm9tIHRoZSBzdHJpbmcsIHJhaXNlIGEgRmFpbHVyZVxuICAgICBpZiBlbmRfaW5kIGlzIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9pbnRlZ2VyIHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT4gcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIDBcbiAgICB8ICctJyAtPiAoXG4gICAgICBpZiBzdHJfaW5kICsgMSA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZCArIDFdIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyAtPlxuICAgICAgICBsZXQgbmV4dF9pbmQsIG4gPSBwYXJzZV9wb3NpdGl2ZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgMCBpblxuICAgICAgICBuZXh0X2luZCwgLW5cbiAgICAgIHwgYyAtPlxuICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImRpZ2l0XCIgY1xuICAgIClcbiAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgKCogQWRkIGEgbGl0ZXJhbCB0byBhIGZvcm1hdCBmcm9tIGEgbGl0ZXJhbCBjaGFyYWN0ZXIgc3ViLXNlcXVlbmNlLiAqKVxuICBhbmQgYWRkX2xpdGVyYWwgOiB0eXBlIGEgZCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiAoYSwgXywgXywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBsaXRfc3RhcnQgc3RyX2luZCBmbXQgLT4gbWF0Y2ggc3RyX2luZCAtIGxpdF9zdGFydCB3aXRoXG4gICAgfCAwICAgIC0+IEZtdF9FQkIgZm10XG4gICAgfCAxICAgIC0+IEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoc3RyLltsaXRfc3RhcnRdLCBmbXQpKVxuICAgIHwgc2l6ZSAtPiBGbXRfRUJCIChTdHJpbmdfbGl0ZXJhbCAoU3RyaW5nLnN1YiBzdHIgbGl0X3N0YXJ0IHNpemUsIGZtdCkpXG5cbiAgKCogU2VhcmNoIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc3ViLWZvcm1hdFxuICAgICAoaS5lLiB0aGUgY29ycmVzcG9uZGluZyBcIiV9XCIgb3IgXCIlKVwiKSAqKVxuICBhbmQgc2VhcmNoX3N1YmZvcm1hdF9lbmQgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogdW5jbG9zZWQgc3ViLWZvcm1hdCwgXFxcbiAgICAgICAgIGV4cGVjdGVkIFxcXCIlJSVjXFxcIiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkXCIgc3RyIGMgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICclJyAtPlxuICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBpZiBzdHIuW3N0cl9pbmQgKyAxXSA9IGMgdGhlbiAoKiBFbmQgb2YgZm9ybWF0IGZvdW5kICopIHN0cl9pbmQgZWxzZVxuICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICAgIHwgJ18nIC0+XG4gICAgICAgICAgKCogU2VhcmNoIGZvciBcIiVfKFwiIG9yIFwiJV97XCIuICopXG4gICAgICAgICAgaWYgc3RyX2luZCArIDIgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMl0gd2l0aFxuICAgICAgICAgIHwgJ3snIC0+XG4gICAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCAnfScgaW5cbiAgICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgICAgfCAnKCcgLT5cbiAgICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAzKSBlbmRfaW5kICcpJyBpblxuICAgICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgICB8IF8gLT4gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAzKSBlbmRfaW5kIGNcbiAgICAgICAgICBlbmRcbiAgICAgICAgfCAneycgLT5cbiAgICAgICAgICAoKiAley4uLiV9IHN1Yi1mb3JtYXQgZm91bmQuICopXG4gICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDIpIGVuZF9pbmQgJ30nIGluXG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgfCAnKCcgLT5cbiAgICAgICAgICAoKiAlKC4uLiUpIHN1Yi1mb3JtYXQgZm91bmQuICopXG4gICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDIpIGVuZF9pbmQgJyknIGluXG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgfCAnfScgLT5cbiAgICAgICAgICAoKiBFcnJvcjogJSguLi4lfS4gKilcbiAgICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImNoYXJhY3RlciAnKSdcIiAnfSdcbiAgICAgICAgfCAnKScgLT5cbiAgICAgICAgICAoKiBFcnJvcjogJXsuLi4lKS4gKilcbiAgICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImNoYXJhY3RlciAnfSdcIiAnKSdcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgZW5kXG4gICAgfCBfIC0+IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG5cbiAgKCogQ2hlY2sgaWYgc3ltYiBpcyBhIHZhbGlkIGludCBjb252ZXJzaW9uIGFmdGVyIFwiJWxcIiwgXCIlblwiIG9yIFwiJUxcIiAqKVxuICBhbmQgaXNfaW50X2Jhc2Ugc3ltYiA9IG1hdGNoIHN5bWIgd2l0aFxuICAgIHwgJ2QnIHwgJ2knIHwgJ3gnIHwgJ1gnIHwgJ28nIHwgJ3UnIC0+IHRydWVcbiAgICB8IF8gLT4gZmFsc2VcblxuICAoKiBDb252ZXJ0IGEgY2hhciAobCwgbiBvciBMKSB0byBpdHMgYXNzb2NpYXRlZCBjb3VudGVyLiAqKVxuICBhbmQgY291bnRlcl9vZl9jaGFyIHN5bWIgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICdsJyAtPiBMaW5lX2NvdW50ZXIgIHwgJ24nIC0+IENoYXJfY291bnRlclxuICAgIHwgJ0wnIC0+IFRva2VuX2NvdW50ZXIgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIENvbnZlcnQgKHBsdXMsIHN5bWIpIHRvIGl0cyBhc3NvY2lhdGVkIGludF9jb252LiAqKVxuICBhbmQgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIHNwYWNlIHN5bWIgPVxuICAgIG1hdGNoIHBsdXMsIGhhc2gsIHNwYWNlLCBzeW1iIHdpdGhcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdkJyAtPiBJbnRfZCAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnaScgLT4gSW50X2lcbiAgICB8IGZhbHNlLCBmYWxzZSwgIHRydWUsICdkJyAtPiBJbnRfc2QgfCBmYWxzZSwgZmFsc2UsICB0cnVlLCAnaScgLT4gSW50X3NpXG4gICAgfCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAnZCcgLT4gSW50X3BkIHwgIHRydWUsIGZhbHNlLCBmYWxzZSwgJ2knIC0+IEludF9waVxuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ3gnIC0+IEludF94ICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdYJyAtPiBJbnRfWFxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ3gnIC0+IEludF9DeCB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdYJyAtPiBJbnRfQ1hcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdvJyAtPiBJbnRfb1xuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ28nIC0+IEludF9Db1xuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ3UnIC0+IEludF91XG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnZCcgLT4gSW50X0NkXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnaScgLT4gSW50X0NpXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAndScgLT4gSW50X0N1XG4gICAgfCBfLCB0cnVlLCBfLCAneCcgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0N4XG4gICAgfCBfLCB0cnVlLCBfLCAnWCcgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0NYXG4gICAgfCBfLCB0cnVlLCBfLCAnbycgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0NvXG4gICAgfCBfLCB0cnVlLCBfLCAoJ2QnIHwgJ2knIHwgJ3UnKSAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgZmFsc2Ugc3BhY2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicjJ1wiXG4gICAgfCB0cnVlLCBfLCB0cnVlLCBfIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICAoKiBwbHVzIGFuZCBzcGFjZTogbGVnYWN5IGltcGxlbWVudGF0aW9uIHByZWZlcnMgcGx1cyAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggZmFsc2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJyAnIFwiJysnXCJcbiAgICB8IGZhbHNlLCBfLCB0cnVlLCBfICAgIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIGZhbHNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInICdcIlxuICAgIHwgdHJ1ZSwgXywgZmFsc2UsIF8gICAgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBmYWxzZSBoYXNoIHNwYWNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInKydcIlxuICAgIHwgZmFsc2UsIF8sIGZhbHNlLCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIENvbnZlcnQgKHBsdXMsIHNwYWNlLCBzeW1iKSB0byBpdHMgYXNzb2NpYXRlZCBmbG9hdF9jb252LiAqKVxuICBhbmQgY29tcHV0ZV9mbG9hdF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggc3BhY2Ugc3ltYiA9XG4gICAgbGV0IGZsYWcgPSBtYXRjaCBwbHVzLCBzcGFjZSB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UgLT4gRmxvYXRfZmxhZ19cbiAgICB8IGZhbHNlLCAgdHJ1ZSAtPiBGbG9hdF9mbGFnX3NcbiAgICB8ICB0cnVlLCBmYWxzZSAtPiBGbG9hdF9mbGFnX3BcbiAgICB8ICB0cnVlLCAgdHJ1ZSAtPlxuICAgICAgKCogcGx1cyBhbmQgc3BhY2U6IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBwcmVmZXJzIHBsdXMgKilcbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEZsb2F0X2ZsYWdfcFxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJyAnIFwiJysnXCIgaW5cbiAgICBsZXQga2luZCA9IG1hdGNoIGhhc2gsIHN5bWIgd2l0aFxuICAgIHwgXywgJ2YnIC0+IEZsb2F0X2ZcbiAgICB8IF8sICdlJyAtPiBGbG9hdF9lXG4gICAgfCBfLCAnRScgLT4gRmxvYXRfRVxuICAgIHwgXywgJ2cnIC0+IEZsb2F0X2dcbiAgICB8IF8sICdHJyAtPiBGbG9hdF9HXG4gICAgfCBfLCAnaCcgLT4gRmxvYXRfaFxuICAgIHwgXywgJ0gnIC0+IEZsb2F0X0hcbiAgICB8IGZhbHNlLCAnRicgLT4gRmxvYXRfRlxuICAgIHwgdHJ1ZSwgJ0YnIC0+IEZsb2F0X0NGXG4gICAgfCBfIC0+IGFzc2VydCBmYWxzZSBpblxuICAgIGZsYWcsIGtpbmRcblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UgYWJvdXQgaW5jb21wYXRpYmxlIG9wdGlvbnMuKilcbiAgYW5kIGluY29tcGF0aWJsZV9mbGFnIDogdHlwZSBhIC4gaW50IC0+IGludCAtPiBjaGFyIC0+IHN0cmluZyAtPiBhID1cbiAgICBmdW4gcGN0X2luZCBzdHJfaW5kIHN5bWIgb3B0aW9uIC0+XG4gICAgICBsZXQgc3ViZm10ID0gU3RyaW5nLnN1YiBzdHIgcGN0X2luZCAoc3RyX2luZCAtIHBjdF9pbmQpIGluXG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIFxcXG4gICAgICAgICAlcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAnJWMnIGluIHN1Yi1mb3JtYXQgJVNcIlxuICAgICAgICBzdHIgcGN0X2luZCBvcHRpb24gc3ltYiBzdWJmbXRcblxuICBpbiBwYXJzZSAwIChTdHJpbmcubGVuZ3RoIHN0cilcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICgqIEd1YXJkZWQgc3RyaW5nIHRvIGZvcm1hdCBjb252ZXJzaW9ucyAqKVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZm9ybWF0IGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IGZvcm1hdF9vZl9zdHJpbmdfZm10dHkgc3RyIGZtdHR5ID1cbiAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgc3RyIGluXG4gIHRyeSBGb3JtYXQgKHR5cGVfZm9ybWF0IGZtdCBmbXR0eSwgc3RyKVxuICB3aXRoIFR5cGVfbWlzbWF0Y2ggLT5cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImJhZCBpbnB1dDogZm9ybWF0IHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAlUyBhbmQgJVNcIlxuICAgICAgc3RyIChzdHJpbmdfb2ZfZm10dHkgZm10dHkpXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIGFuIG90aGVyIGZvcm1hdC4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IGZvcm1hdF9vZl9zdHJpbmdfZm9ybWF0IHN0ciAoRm9ybWF0IChmbXQnLCBzdHInKSkgPVxuICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzdHIgaW5cbiAgdHJ5IEZvcm1hdCAodHlwZV9mb3JtYXQgZm10IChmbXR0eV9vZl9mbXQgZm10JyksIHN0cilcbiAgd2l0aCBUeXBlX21pc21hdGNoIC0+XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJiYWQgaW5wdXQ6IGZvcm1hdCB0eXBlIG1pc21hdGNoIGJldHdlZW4gJVMgYW5kICVTXCIgc3RyIHN0cidcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBQcmludGZcblxudHlwZSB0ID0gZXhuID0gLi5cblxubGV0IHByaW50ZXJzID0gQXRvbWljLm1ha2UgW11cblxubGV0IGxvY2ZtdCA9IGZvcm1hdF9vZl9zdHJpbmcgXCJGaWxlIFxcXCIlc1xcXCIsIGxpbmUgJWQsIGNoYXJhY3RlcnMgJWQtJWQ6ICVzXCJcblxubGV0IGZpZWxkIHggaSA9XG4gIGxldCBmID0gT2JqLmZpZWxkIHggaSBpblxuICBpZiBub3QgKE9iai5pc19ibG9jayBmKSB0aGVuXG4gICAgc3ByaW50ZiBcIiVkXCIgKE9iai5tYWdpYyBmIDogaW50KSAgICAgICAgICAgKCogY2FuIGFsc28gYmUgYSBjaGFyICopXG4gIGVsc2UgaWYgT2JqLnRhZyBmID0gT2JqLnN0cmluZ190YWcgdGhlblxuICAgIHNwcmludGYgXCIlU1wiIChPYmoubWFnaWMgZiA6IHN0cmluZylcbiAgZWxzZSBpZiBPYmoudGFnIGYgPSBPYmouZG91YmxlX3RhZyB0aGVuXG4gICAgc3RyaW5nX29mX2Zsb2F0IChPYmoubWFnaWMgZiA6IGZsb2F0KVxuICBlbHNlXG4gICAgXCJfXCJcblxubGV0IHJlYyBvdGhlcl9maWVsZHMgeCBpID1cbiAgaWYgaSA+PSBPYmouc2l6ZSB4IHRoZW4gXCJcIlxuICBlbHNlIHNwcmludGYgXCIsICVzJXNcIiAoZmllbGQgeCBpKSAob3RoZXJfZmllbGRzIHggKGkrMSkpXG5cbmxldCBmaWVsZHMgeCA9XG4gIG1hdGNoIE9iai5zaXplIHggd2l0aFxuICB8IDAgLT4gXCJcIlxuICB8IDEgLT4gXCJcIlxuICB8IDIgLT4gc3ByaW50ZiBcIiglcylcIiAoZmllbGQgeCAxKVxuICB8IF8gLT4gc3ByaW50ZiBcIiglcyVzKVwiIChmaWVsZCB4IDEpIChvdGhlcl9maWVsZHMgeCAyKVxuXG5sZXQgdXNlX3ByaW50ZXJzIHggPVxuICBsZXQgcmVjIGNvbnYgPSBmdW5jdGlvblxuICAgIHwgaGQgOjogdGwgLT5cbiAgICAgICAgKG1hdGNoIGhkIHggd2l0aFxuICAgICAgICAgfCBOb25lIHwgZXhjZXB0aW9uIF8gLT4gY29udiB0bFxuICAgICAgICAgfCBTb21lIHMgLT4gU29tZSBzKVxuICAgIHwgW10gLT4gTm9uZSBpblxuICBjb252IChBdG9taWMuZ2V0IHByaW50ZXJzKVxuXG5sZXQgdG9fc3RyaW5nX2RlZmF1bHQgPSBmdW5jdGlvblxuICB8IE91dF9vZl9tZW1vcnkgLT4gXCJPdXQgb2YgbWVtb3J5XCJcbiAgfCBTdGFja19vdmVyZmxvdyAtPiBcIlN0YWNrIG92ZXJmbG93XCJcbiAgfCBNYXRjaF9mYWlsdXJlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis1KSBcIlBhdHRlcm4gbWF0Y2hpbmcgZmFpbGVkXCJcbiAgfCBBc3NlcnRfZmFpbHVyZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNikgXCJBc3NlcnRpb24gZmFpbGVkXCJcbiAgfCBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNikgXCJVbmRlZmluZWQgcmVjdXJzaXZlIG1vZHVsZVwiXG4gIHwgeCAtPlxuICAgICAgbGV0IHggPSBPYmoucmVwciB4IGluXG4gICAgICBpZiBPYmoudGFnIHggPD4gMCB0aGVuXG4gICAgICAgIChPYmoubWFnaWMgKE9iai5maWVsZCB4IDApIDogc3RyaW5nKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgY29uc3RydWN0b3IgPVxuICAgICAgICAgIChPYmoubWFnaWMgKE9iai5maWVsZCAoT2JqLmZpZWxkIHggMCkgMCkgOiBzdHJpbmcpIGluXG4gICAgICAgIGNvbnN0cnVjdG9yIF4gKGZpZWxkcyB4KVxuXG5sZXQgdG9fc3RyaW5nIGUgPVxuICBtYXRjaCB1c2VfcHJpbnRlcnMgZSB3aXRoXG4gIHwgU29tZSBzIC0+IHNcbiAgfCBOb25lIC0+IHRvX3N0cmluZ19kZWZhdWx0IGVcblxubGV0IHByaW50IGZjdCBhcmcgPVxuICB0cnlcbiAgICBmY3QgYXJnXG4gIHdpdGggeCAtPlxuICAgIGVwcmludGYgXCJVbmNhdWdodCBleGNlcHRpb246ICVzXFxuXCIgKHRvX3N0cmluZyB4KTtcbiAgICBmbHVzaCBzdGRlcnI7XG4gICAgcmFpc2UgeFxuXG5sZXQgY2F0Y2ggZmN0IGFyZyA9XG4gIHRyeVxuICAgIGZjdCBhcmdcbiAgd2l0aCB4IC0+XG4gICAgZmx1c2ggc3Rkb3V0O1xuICAgIGVwcmludGYgXCJVbmNhdWdodCBleGNlcHRpb246ICVzXFxuXCIgKHRvX3N0cmluZyB4KTtcbiAgICBleGl0IDJcblxudHlwZSByYXdfYmFja3RyYWNlX3Nsb3RcbnR5cGUgcmF3X2JhY2t0cmFjZV9lbnRyeSA9IHByaXZhdGUgaW50XG50eXBlIHJhd19iYWNrdHJhY2UgPSByYXdfYmFja3RyYWNlX2VudHJ5IGFycmF5XG5cbmxldCByYXdfYmFja3RyYWNlX2VudHJpZXMgYnQgPSBidFxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZTpcbiAgdW5pdCAtPiByYXdfYmFja3RyYWNlID0gXCJjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZVwiXG5cbmV4dGVybmFsIHJhaXNlX3dpdGhfYmFja3RyYWNlOiBleG4gLT4gcmF3X2JhY2t0cmFjZSAtPiAnYVxuICA9IFwiJXJhaXNlX3dpdGhfYmFja3RyYWNlXCJcblxudHlwZSBiYWNrdHJhY2Vfc2xvdCA9XG4gIHwgS25vd25fbG9jYXRpb24gb2Yge1xuICAgICAgaXNfcmFpc2UgICAgOiBib29sO1xuICAgICAgZmlsZW5hbWUgICAgOiBzdHJpbmc7XG4gICAgICBsaW5lX251bWJlciA6IGludDtcbiAgICAgIHN0YXJ0X2NoYXIgIDogaW50O1xuICAgICAgZW5kX2NoYXIgICAgOiBpbnQ7XG4gICAgICBpc19pbmxpbmUgICA6IGJvb2w7XG4gICAgICBkZWZuYW1lICAgICA6IHN0cmluZztcbiAgICB9XG4gIHwgVW5rbm93bl9sb2NhdGlvbiBvZiB7XG4gICAgICBpc19yYWlzZSA6IGJvb2xcbiAgICB9XG5cbigqIHRvIGF2b2lkIHdhcm5pbmcgKilcbmxldCBfID0gW0tub3duX2xvY2F0aW9uIHsgaXNfcmFpc2UgPSBmYWxzZTsgZmlsZW5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlciA9IDA7IHN0YXJ0X2NoYXIgPSAwOyBlbmRfY2hhciA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2lubGluZSA9IGZhbHNlOyBkZWZuYW1lID0gXCJcIiB9O1xuICAgICAgICAgVW5rbm93bl9sb2NhdGlvbiB7IGlzX3JhaXNlID0gZmFsc2UgfV1cblxuZXh0ZXJuYWwgY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3Q6XG4gIHJhd19iYWNrdHJhY2Vfc2xvdCAtPiBiYWNrdHJhY2Vfc2xvdCA9IFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFwiXG5cbmV4dGVybmFsIGNvbnZlcnRfcmF3X2JhY2t0cmFjZTpcbiAgcmF3X2JhY2t0cmFjZSAtPiBiYWNrdHJhY2Vfc2xvdCBhcnJheSA9IFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2VcIlxuXG5sZXQgY29udmVydF9yYXdfYmFja3RyYWNlIGJ0ID1cbiAgdHJ5IFNvbWUgKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSBidClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgZm9ybWF0X2JhY2t0cmFjZV9zbG90IHBvcyBzbG90ID1cbiAgbGV0IGluZm8gaXNfcmFpc2UgPVxuICAgIGlmIGlzX3JhaXNlIHRoZW5cbiAgICAgIGlmIHBvcyA9IDAgdGhlbiBcIlJhaXNlZCBhdFwiIGVsc2UgXCJSZS1yYWlzZWQgYXRcIlxuICAgIGVsc2VcbiAgICAgIGlmIHBvcyA9IDAgdGhlbiBcIlJhaXNlZCBieSBwcmltaXRpdmUgb3BlcmF0aW9uIGF0XCIgZWxzZSBcIkNhbGxlZCBmcm9tXCJcbiAgaW5cbiAgbWF0Y2ggc2xvdCB3aXRoXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgICBpZiBsLmlzX3JhaXNlIHRoZW5cbiAgICAgICAgKCogY29tcGlsZXItaW5zZXJ0ZWQgcmUtcmFpc2UsIHNraXBwZWQgKikgTm9uZVxuICAgICAgZWxzZVxuICAgICAgICBTb21lIChzcHJpbnRmIFwiJXMgdW5rbm93biBsb2NhdGlvblwiIChpbmZvIGZhbHNlKSlcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgICBTb21lIChzcHJpbnRmIFwiJXMgJXMgaW4gZmlsZSBcXFwiJXNcXFwiJXMsIGxpbmUgJWQsIGNoYXJhY3RlcnMgJWQtJWRcIlxuICAgICAgICAgICAgICAoaW5mbyBsLmlzX3JhaXNlKSBsLmRlZm5hbWUgbC5maWxlbmFtZVxuICAgICAgICAgICAgICAoaWYgbC5pc19pbmxpbmUgdGhlbiBcIiAoaW5saW5lZClcIiBlbHNlIFwiXCIpXG4gICAgICAgICAgICAgIGwubGluZV9udW1iZXIgbC5zdGFydF9jaGFyIGwuZW5kX2NoYXIpXG5cbmxldCBwcmludF9leGNlcHRpb25fYmFja3RyYWNlIG91dGNoYW4gYmFja3RyYWNlID1cbiAgbWF0Y2ggYmFja3RyYWNlIHdpdGhcbiAgfCBOb25lIC0+XG4gICAgICBmcHJpbnRmIG91dGNoYW5cbiAgICAgICAgXCIoUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIGNhbm5vdCBwcmludCBzdGFjayBiYWNrdHJhY2UpXFxuXCJcbiAgfCBTb21lIGEgLT5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggYSAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZm9ybWF0X2JhY2t0cmFjZV9zbG90IGkgYS4oaSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBzdHIgLT4gZnByaW50ZiBvdXRjaGFuIFwiJXNcXG5cIiBzdHJcbiAgICAgIGRvbmVcblxubGV0IHByaW50X3Jhd19iYWNrdHJhY2Ugb3V0Y2hhbiByYXdfYmFja3RyYWNlID1cbiAgcHJpbnRfZXhjZXB0aW9uX2JhY2t0cmFjZSBvdXRjaGFuIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSlcblxuKCogY29uZnVzaW5nbHkgbmFtZWQ6IHByaW50cyB0aGUgZ2xvYmFsIGN1cnJlbnQgYmFja3RyYWNlICopXG5sZXQgcHJpbnRfYmFja3RyYWNlIG91dGNoYW4gPVxuICBwcmludF9yYXdfYmFja3RyYWNlIG91dGNoYW4gKGdldF9yYXdfYmFja3RyYWNlICgpKVxuXG5sZXQgYmFja3RyYWNlX3RvX3N0cmluZyBiYWNrdHJhY2UgPVxuICBtYXRjaCBiYWNrdHJhY2Ugd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgXCIoUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIGNhbm5vdCBwcmludCBzdGFjayBiYWNrdHJhY2UpXFxuXCJcbiAgfCBTb21lIGEgLT5cbiAgICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAxMDI0IGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGEgLSAxIGRvXG4gICAgICAgIG1hdGNoIGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBpIGEuKGkpIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgc3RyIC0+IGJwcmludGYgYiBcIiVzXFxuXCIgc3RyXG4gICAgICBkb25lO1xuICAgICAgQnVmZmVyLmNvbnRlbnRzIGJcblxubGV0IHJhd19iYWNrdHJhY2VfdG9fc3RyaW5nIHJhd19iYWNrdHJhY2UgPVxuICBiYWNrdHJhY2VfdG9fc3RyaW5nIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSlcblxubGV0IGJhY2t0cmFjZV9zbG90X2lzX3JhaXNlID0gZnVuY3Rpb25cbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfcmFpc2VcbiAgfCBVbmtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19yYWlzZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lID0gZnVuY3Rpb25cbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfaW5saW5lXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IGZhbHNlXG5cbnR5cGUgbG9jYXRpb24gPSB7XG4gIGZpbGVuYW1lIDogc3RyaW5nO1xuICBsaW5lX251bWJlciA6IGludDtcbiAgc3RhcnRfY2hhciA6IGludDtcbiAgZW5kX2NoYXIgOiBpbnQ7XG59XG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9sb2NhdGlvbiA9IGZ1bmN0aW9uXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IE5vbmVcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgU29tZSB7XG4gICAgICBmaWxlbmFtZSAgICA9IGwuZmlsZW5hbWU7XG4gICAgICBsaW5lX251bWJlciA9IGwubGluZV9udW1iZXI7XG4gICAgICBzdGFydF9jaGFyICA9IGwuc3RhcnRfY2hhcjtcbiAgICAgIGVuZF9jaGFyICAgID0gbC5lbmRfY2hhcjtcbiAgICB9XG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lID0gZnVuY3Rpb25cbiAgfCBVbmtub3duX2xvY2F0aW9uIF9cbiAgfCBLbm93bl9sb2NhdGlvbiB7IGRlZm5hbWUgPSBcIlwiIH0gLT4gTm9uZVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gU29tZSBsLmRlZm5hbWVcblxubGV0IGJhY2t0cmFjZV9zbG90cyByYXdfYmFja3RyYWNlID1cbiAgKCogVGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBndWFyYW50ZWVzIHRoYXQgU29tZSBpc1xuICAgICByZXR1cm5lZCBvbmx5IGlmIGEgcGFydCBvZiB0aGUgdHJhY2UgaXMgdXNhYmxlLiBUaGlzIGdpdmVzIHVzXG4gICAgIGEgYml0IG1vcmUgd29yayB0aGFuIGp1c3QgY29udmVydF9yYXdfYmFja3RyYWNlLCBidXQgaXQgbWFrZXMgdGhlXG4gICAgIEFQSSBtb3JlIHVzZXItZnJpZW5kbHkgLS0gb3RoZXJ3aXNlIG1vc3QgdXNlcnMgd291bGQgaGF2ZSB0b1xuICAgICByZWltcGxlbWVudCB0aGUgXCJQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgc29ycnlcIiBsb2dpY1xuICAgICB0aGVtc2VsdmVzLiAqKVxuICBtYXRjaCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgYmFja3RyYWNlIC0+XG4gICAgICBsZXQgdXNhYmxlX3Nsb3QgPSBmdW5jdGlvblxuICAgICAgICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBmYWxzZVxuICAgICAgICB8IEtub3duX2xvY2F0aW9uIF8gLT4gdHJ1ZSBpblxuICAgICAgbGV0IHJlYyBleGlzdHNfdXNhYmxlID0gZnVuY3Rpb25cbiAgICAgICAgfCAoLTEpIC0+IGZhbHNlXG4gICAgICAgIHwgaSAtPiB1c2FibGVfc2xvdCBiYWNrdHJhY2UuKGkpIHx8IGV4aXN0c191c2FibGUgKGkgLSAxKSBpblxuICAgICAgaWYgZXhpc3RzX3VzYWJsZSAoQXJyYXkubGVuZ3RoIGJhY2t0cmFjZSAtIDEpXG4gICAgICB0aGVuIFNvbWUgYmFja3RyYWNlXG4gICAgICBlbHNlIE5vbmVcblxubGV0IGJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkgZW50cnkgPVxuICBiYWNrdHJhY2Vfc2xvdHMgW3wgZW50cnkgfF1cblxubW9kdWxlIFNsb3QgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gYmFja3RyYWNlX3Nsb3RcbiAgbGV0IGZvcm1hdCA9IGZvcm1hdF9iYWNrdHJhY2Vfc2xvdFxuICBsZXQgaXNfcmFpc2UgPSBiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZVxuICBsZXQgaXNfaW5saW5lID0gYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lXG4gIGxldCBsb2NhdGlvbiA9IGJhY2t0cmFjZV9zbG90X2xvY2F0aW9uXG4gIGxldCBuYW1lID0gYmFja3RyYWNlX3Nsb3RfZGVmbmFtZVxuZW5kXG5cbmxldCByYXdfYmFja3RyYWNlX2xlbmd0aCBidCA9IEFycmF5Lmxlbmd0aCBidFxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZV9zbG90IDpcbiAgcmF3X2JhY2t0cmFjZSAtPiBpbnQgLT4gcmF3X2JhY2t0cmFjZV9zbG90ID0gXCJjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdFwiXG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCA6XG4gIHJhd19iYWNrdHJhY2Vfc2xvdCAtPiByYXdfYmFja3RyYWNlX3Nsb3Qgb3B0aW9uXG4gID0gXCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90XCJcblxuKCogY29uZnVzaW5nbHkgbmFtZWQ6XG4gICByZXR1cm5zIHRoZSAqc3RyaW5nKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBnbG9iYWwgY3VycmVudCBiYWNrdHJhY2UgKilcbmxldCBnZXRfYmFja3RyYWNlICgpID0gcmF3X2JhY2t0cmFjZV90b19zdHJpbmcgKGdldF9yYXdfYmFja3RyYWNlICgpKVxuXG5leHRlcm5hbCByZWNvcmRfYmFja3RyYWNlOiBib29sIC0+IHVuaXQgPSBcImNhbWxfcmVjb3JkX2JhY2t0cmFjZVwiXG5leHRlcm5hbCBiYWNrdHJhY2Vfc3RhdHVzOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfYmFja3RyYWNlX3N0YXR1c1wiXG5cbmxldCByZWMgcmVnaXN0ZXJfcHJpbnRlciBmbiA9XG4gIGxldCBvbGRfcHJpbnRlcnMgPSBBdG9taWMuZ2V0IHByaW50ZXJzIGluXG4gIGxldCBuZXdfcHJpbnRlcnMgPSBmbiA6OiBvbGRfcHJpbnRlcnMgaW5cbiAgbGV0IHN1Y2Nlc3MgPSBBdG9taWMuY29tcGFyZV9hbmRfc2V0IHByaW50ZXJzIG9sZF9wcmludGVycyBuZXdfcHJpbnRlcnMgaW5cbiAgaWYgbm90IHN1Y2Nlc3MgdGhlbiByZWdpc3Rlcl9wcmludGVyIGZuXG5cbmV4dGVybmFsIGdldF9jYWxsc3RhY2s6IGludCAtPiByYXdfYmFja3RyYWNlID0gXCJjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFja1wiXG5cbmxldCBleG5fc2xvdCB4ID1cbiAgbGV0IHggPSBPYmoucmVwciB4IGluXG4gIGlmIE9iai50YWcgeCA9IDAgdGhlbiBPYmouZmllbGQgeCAwIGVsc2UgeFxuXG5sZXQgZXhuX3Nsb3RfaWQgeCA9XG4gIGxldCBzbG90ID0gZXhuX3Nsb3QgeCBpblxuICAoT2JqLm9iaiAoT2JqLmZpZWxkIHNsb3QgMSkgOiBpbnQpXG5cbmxldCBleG5fc2xvdF9uYW1lIHggPVxuICBsZXQgc2xvdCA9IGV4bl9zbG90IHggaW5cbiAgKE9iai5vYmogKE9iai5maWVsZCBzbG90IDApIDogc3RyaW5nKVxuXG5leHRlcm5hbCBnZXRfZGVidWdfaW5mb19zdGF0dXMgOiB1bml0IC0+IGludCA9IFwiY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1c1wiXG5cbigqIERlc2NyaXB0aW9ucyBmb3IgZXJyb3JzIGluIHN0YXJ0dXAuaC4gU2VlIGFsc28gYmFja3RyYWNlLmMgKilcbmxldCBlcnJvcnMgPSBbfCBcIlwiO1xuICAoKiBGSUxFX05PVF9GT1VORCAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgbm90IGZvdW5kKVwiO1xuICAoKiBCQURfQllURUNPREUgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGFwcGVhcnMgdG8gYmUgY29ycnVwdClcIjtcbiAgKCogV1JPTkdfTUFHSUMgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGhhcyB3cm9uZyBtYWdpYyBudW1iZXIpXCI7XG4gICgqIE5PX0ZEUyAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgY2Fubm90IGJlIG9wZW5lZDtcXG4gXFxcbiAgICAgIC0tIHRvbyBtYW55IG9wZW4gZmlsZXMuIFRyeSBydW5uaW5nIHdpdGggT0NBTUxSVU5QQVJBTT1iPTIpXCJcbnxdXG5cbmxldCBkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGV4biByYXdfYmFja3RyYWNlID1cbiAgZXByaW50ZiBcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gJXNcXG5cIiAodG9fc3RyaW5nIGV4bik7XG4gIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2U7XG4gIGxldCBzdGF0dXMgPSBnZXRfZGVidWdfaW5mb19zdGF0dXMgKCkgaW5cbiAgaWYgc3RhdHVzIDwgMCB0aGVuXG4gICAgcHJlcnJfZW5kbGluZSBlcnJvcnMuKGFicyBzdGF0dXMpO1xuICBmbHVzaCBzdGRlcnJcblxubGV0IHVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyID0gcmVmIGRlZmF1bHRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXJcblxubGV0IHNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBmbiA9IHVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIDo9IGZuXG5cbmxldCBlbXB0eV9iYWNrdHJhY2UgOiByYXdfYmFja3RyYWNlID0gW3wgfF1cblxubGV0IHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKSA9XG4gIHRyeVxuICAgIGdldF9yYXdfYmFja3RyYWNlICgpXG4gIHdpdGggXyAoKiBPdXRfb2ZfbWVtb3J5PyAqKSAtPlxuICAgIGVtcHR5X2JhY2t0cmFjZVxuXG5sZXQgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbicgZXhuIGRlYnVnZ2VyX2luX3VzZSA9XG4gIHRyeVxuICAgICgqIEdldCB0aGUgYmFja3RyYWNlIG5vdywgaW4gY2FzZSBvbmUgb2YgdGhlIFthdF9leGl0XSBmdW5jdGlvblxuICAgICAgIGRlc3Ryb3lzIGl0LiAqKVxuICAgIGxldCByYXdfYmFja3RyYWNlID1cbiAgICAgIGlmIGRlYnVnZ2VyX2luX3VzZSAoKiBTYW1lIHRlc3QgYXMgaW4gW3J1bnRpbWUvcHJpbnRleGMuY10gKikgdGhlblxuICAgICAgICBlbXB0eV9iYWNrdHJhY2VcbiAgICAgIGVsc2VcbiAgICAgICAgdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpXG4gICAgaW5cbiAgICAodHJ5IFN0ZGxpYi5kb19hdF9leGl0ICgpIHdpdGggXyAtPiAoKSk7XG4gICAgdHJ5XG4gICAgICAhdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZXhuIHJhd19iYWNrdHJhY2VcbiAgICB3aXRoIGV4bicgLT5cbiAgICAgIGxldCByYXdfYmFja3RyYWNlJyA9IHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgZXByaW50ZiBcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gJXNcXG5cIiAodG9fc3RyaW5nIGV4bik7XG4gICAgICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlO1xuICAgICAgZXByaW50ZiBcIkZhdGFsIGVycm9yIGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyOiBleGNlcHRpb24gJXNcXG5cIlxuICAgICAgICAodG9fc3RyaW5nIGV4bicpO1xuICAgICAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZSc7XG4gICAgICBmbHVzaCBzdGRlcnJcbiAgd2l0aFxuICAgIHwgT3V0X29mX21lbW9yeSAtPlxuICAgICAgICBwcmVycl9lbmRsaW5lXG4gICAgICAgICAgXCJGYXRhbCBlcnJvcjogb3V0IG9mIG1lbW9yeSBpbiB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlclwiXG5cbigqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IFtjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbl0gaW5cbiAgIFtydW50aW1lL3ByaW50ZXhjLmNdIHdoaWNoIGV4cGVjdHMgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4gKilcbmxldCBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIGV4biBkZWJ1Z2dlcl9pbl91c2UgPVxuICB0cnlcbiAgICBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uJyBleG4gZGVidWdnZXJfaW5fdXNlXG4gIHdpdGggXyAtPlxuICAgICgqIFRoZXJlIGlzIG5vdCBtdWNoIHdlIGNhbiBkbyBhdCB0aGlzIHBvaW50ICopXG4gICAgKClcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gJ2EgLT4gdW5pdFxuICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCAoKSA9XG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUHJpbnRleGMuaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblwiXG4gICAgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIFhhdmllciBMZXJveSBhbmQgRGFtaWVuIERvbGlnZXosIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgZ2VuZXJpY19xdW90ZSBxdW90ZXF1b3RlIHMgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcJyc7XG4gIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgIGlmIHMuW2ldID0gJ1xcJydcbiAgICB0aGVuIEJ1ZmZlci5hZGRfc3RyaW5nIGIgcXVvdGVxdW90ZVxuICAgIGVsc2UgQnVmZmVyLmFkZF9jaGFyIGIgIHMuW2ldXG4gIGRvbmU7XG4gIEJ1ZmZlci5hZGRfY2hhciBiICdcXCcnO1xuICBCdWZmZXIuY29udGVudHMgYlxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzFdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvYmFzZW5hbWUuaHRtbFxuICBJbiBzdGVwIDEgb2YgW1sxXV0sIHdlIGNob29zZSB0byByZXR1cm4gXCIuXCIgZm9yIGVtcHR5IGlucHV0LlxuICAgIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIE9DYW1sKVxuICBJbiBzdGVwIDIsIHdlIGNob29zZSB0byBwcm9jZXNzIFwiLy9cIiBub3JtYWxseS5cbiAgU3RlcCA2IGlzIG5vdCBpbXBsZW1lbnRlZDogd2UgY29uc2lkZXIgdGhhdCB0aGUgW3N1ZmZpeF0gb3BlcmFuZCBpc1xuICAgIGFsd2F5cyBhYnNlbnQuICBTdWZmaXhlcyBhcmUgaGFuZGxlZCBieSBbY2hvcF9zdWZmaXhdIGFuZCBbY2hvcF9leHRlbnNpb25dLlxuKilcbmxldCBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBuYW1lID1cbiAgbGV0IHJlYyBmaW5kX2VuZCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gZmluZF9lbmQgKG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgbiAobiArIDEpXG4gIGFuZCBmaW5kX2JlZyBuIHAgPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgcFxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBTdHJpbmcuc3ViIG5hbWUgKG4gKyAxKSAocCAtIG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgKG4gLSAxKSBwXG4gIGluXG4gIGlmIG5hbWUgPSBcIlwiXG4gIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICBlbHNlIGZpbmRfZW5kIChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzJdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvZGlybmFtZS5odG1sXG4gIEluIHN0ZXAgNiBvZiBbWzJdXSwgd2UgY2hvb3NlIHRvIHByb2Nlc3MgXCIvL1wiIG5vcm1hbGx5LlxuKilcbmxldCBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIG5hbWUgPVxuICBsZXQgcmVjIHRyYWlsaW5nX3NlcCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gdHJhaWxpbmdfc2VwIChuIC0gMSlcbiAgICBlbHNlIGJhc2UgblxuICBhbmQgYmFzZSBuID1cbiAgICBpZiBuIDwgMCB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gaW50ZXJtZWRpYXRlX3NlcCBuXG4gICAgZWxzZSBiYXNlIChuIC0gMSlcbiAgYW5kIGludGVybWVkaWF0ZV9zZXAgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGludGVybWVkaWF0ZV9zZXAgKG4gLSAxKVxuICAgIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKG4gKyAxKVxuICBpblxuICBpZiBuYW1lID0gXCJcIlxuICB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgZWxzZSB0cmFpbGluZ19zZXAgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbm1vZHVsZSB0eXBlIFNZU0RFUFMgPSBzaWdcbiAgdmFsIG51bGwgOiBzdHJpbmdcbiAgdmFsIGN1cnJlbnRfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIHBhcmVudF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgZGlyX3NlcCA6IHN0cmluZ1xuICB2YWwgaXNfZGlyX3NlcCA6IHN0cmluZyAtPiBpbnQgLT4gYm9vbFxuICB2YWwgaXNfcmVsYXRpdmUgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgaXNfaW1wbGljaXQgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgY2hlY2tfc3VmZml4IDogc3RyaW5nIC0+IHN0cmluZyAtPiBib29sXG4gIHZhbCBjaG9wX3N1ZmZpeF9vcHQgOiBzdWZmaXg6c3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcgb3B0aW9uXG4gIHZhbCB0ZW1wX2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBxdW90ZSA6IHN0cmluZyAtPiBzdHJpbmdcbiAgdmFsIHF1b3RlX2NvbW1hbmQgOlxuICAgIHN0cmluZyAtPiA/c3RkaW46IHN0cmluZyAtPiA/c3Rkb3V0OiBzdHJpbmcgLT4gP3N0ZGVycjogc3RyaW5nXG4gICAgICAgICAgIC0+IHN0cmluZyBsaXN0IC0+IHN0cmluZ1xuICB2YWwgYmFzZW5hbWUgOiBzdHJpbmcgLT4gc3RyaW5nXG4gIHZhbCBkaXJuYW1lIDogc3RyaW5nIC0+IHN0cmluZ1xuZW5kXG5cbm1vZHVsZSBVbml4IDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiL2Rldi9udWxsXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCIvXCJcbiAgbGV0IGlzX2Rpcl9zZXAgcyBpID0gcy5baV0gPSAnLydcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPSBTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJ1xuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgbGV0IGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICAgIFN0cmluZy5lbmRzX3dpdGggfnN1ZmZpeDpzdWZmIG5hbWVcblxuICBsZXQgY2hvcF9zdWZmaXhfb3B0IH5zdWZmaXggZmlsZW5hbWUgPVxuICAgIGxldCBsZW5fcyA9IFN0cmluZy5sZW5ndGggc3VmZml4IGFuZCBsZW5fZiA9IFN0cmluZy5sZW5ndGggZmlsZW5hbWUgaW5cbiAgICBpZiBsZW5fZiA+PSBsZW5fcyB0aGVuXG4gICAgICBsZXQgciA9IFN0cmluZy5zdWIgZmlsZW5hbWUgKGxlbl9mIC0gbGVuX3MpIGxlbl9zIGluXG4gICAgICBpZiByID0gc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuICBsZXQgdGVtcF9kaXJfbmFtZSA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJUTVBESVJcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi90bXBcIlxuICBsZXQgcXVvdGUgPSBnZW5lcmljX3F1b3RlIFwiJ1xcXFwnJ1wiXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCIgXCIgKExpc3QubWFwIHF1b3RlIChjbWQgOjogYXJncykpXG4gICAgXiAobWF0Y2ggc3RkaW4gIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiIDxcIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3RkZXJyIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IGlmIHN0ZGVyciA9IHN0ZG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBcIiAyPiYxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlIGYpXG4gIGxldCBiYXNlbmFtZSA9IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG4gIGxldCBkaXJuYW1lID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuZW5kXG5cbm1vZHVsZSBXaW4zMiA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIk5VTFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiXFxcXFwiXG4gIGxldCBpc19kaXJfc2VwIHMgaSA9IGxldCBjID0gcy5baV0gaW4gYyA9ICcvJyB8fCBjID0gJ1xcXFwnIHx8IGMgPSAnOidcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPVxuICAgIChTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJylcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMSB8fCBuLlswXSA8PiAnXFxcXCcpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgbi5bMV0gPD4gJzonKVxuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuXFxcXFwiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMyB8fCBTdHJpbmcuc3ViIG4gMCAzIDw+IFwiLi5cXFxcXCIpXG4gIGxldCBjaGVja19zdWZmaXggbmFtZSBzdWZmID1cbiAgIFN0cmluZy5sZW5ndGggbmFtZSA+PSBTdHJpbmcubGVuZ3RoIHN1ZmYgJiZcbiAgIChsZXQgcyA9IFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gU3RyaW5nLmxlbmd0aCBzdWZmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcubGVuZ3RoIHN1ZmYpIGluXG4gICAgU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzID0gU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzdWZmKVxuXG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgfnN1ZmZpeCBmaWxlbmFtZSA9XG4gICAgbGV0IGxlbl9zID0gU3RyaW5nLmxlbmd0aCBzdWZmaXggYW5kIGxlbl9mID0gU3RyaW5nLmxlbmd0aCBmaWxlbmFtZSBpblxuICAgIGlmIGxlbl9mID49IGxlbl9zIHRoZW5cbiAgICAgIGxldCByID0gU3RyaW5nLnN1YiBmaWxlbmFtZSAobGVuX2YgLSBsZW5fcykgbGVuX3MgaW5cbiAgICAgIGlmIFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgciA9IFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuXG4gIGxldCB0ZW1wX2Rpcl9uYW1lID1cbiAgICB0cnkgU3lzLmdldGVudiBcIlRFTVBcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi5cIlxuICBsZXQgcXVvdGUgcyA9XG4gICAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7XG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IGwgdGhlbiBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIicgZWxzZVxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnXFxcIicgLT4gbG9vcF9icyAwIGk7XG4gICAgICB8ICdcXFxcJyAtPiBsb29wX2JzIDAgaTtcbiAgICAgIHwgYyAgICAtPiBCdWZmZXIuYWRkX2NoYXIgYiBjOyBsb29wIChpKzEpO1xuICAgIGFuZCBsb29wX2JzIG4gaSA9XG4gICAgICBpZiBpID0gbCB0aGVuIGJlZ2luXG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJztcbiAgICAgICAgYWRkX2JzIG47XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgIHwgJ1xcXCInIC0+IGFkZF9icyAoMipuKzEpOyBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7IGxvb3AgKGkrMSk7XG4gICAgICAgIHwgJ1xcXFwnIC0+IGxvb3BfYnMgKG4rMSkgKGkrMSk7XG4gICAgICAgIHwgXyAgICAtPiBhZGRfYnMgbjsgbG9vcCBpXG4gICAgICBlbmRcbiAgICBhbmQgYWRkX2JzIG4gPSBmb3IgX2ogPSAxIHRvIG4gZG8gQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXFwnOyBkb25lXG4gICAgaW5cbiAgICBsb29wIDA7XG4gICAgQnVmZmVyLmNvbnRlbnRzIGJcbigqXG5RdW90aW5nIGNvbW1hbmRzIGZvciBleGVjdXRpb24gYnkgY21kLmV4ZSBpcyBkaWZmaWN1bHQuXG4xLSBFYWNoIGFyZ3VtZW50IGlzIGZpcnN0IHF1b3RlZCB1c2luZyB0aGUgXCJxdW90ZVwiIGZ1bmN0aW9uIGFib3ZlLCB0b1xuICAgcHJvdGVjdCBpdCBhZ2FpbnN0IHRoZSBwcm9jZXNzaW5nIHBlcmZvcm1lZCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSxcbiAgIHRoZW4gY21kLmV4ZSdzIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCB3aXRoICdeJywgdXNpbmdcbiAgIHRoZSBcInF1b3RlX2NtZFwiIGZ1bmN0aW9uIGJlbG93LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlXG4gICBodHRwczovL2Jsb2dzLm1zZG4ubWljcm9zb2Z0LmNvbS90d2lzdHlsaXR0bGVwYXNzYWdlc2FsbGFsaWtlLzIwMTEvMDQvMjNcbjItIFRoZSBjb21tYW5kIGFuZCB0aGUgcmVkaXJlY3Rpb24gZmlsZXMsIGlmIGFueSwgbXVzdCBiZSBkb3VibGUtcXVvdGVkXG4gICBpbiBjYXNlIHRoZXkgY29udGFpbiBzcGFjZXMuICBUaGlzIHF1b3RpbmcgaXMgaW50ZXJwcmV0ZWQgYnkgY21kLmV4ZSxcbiAgIG5vdCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSwgaGVuY2UgdGhlIFwicXVvdGVcIiBmdW5jdGlvbiBhYm92ZVxuICAgY2Fubm90IGJlIHVzZWQuICBUaGUgdHdvIGNoYXJhY3RlcnMgd2UgZG9uJ3Qga25vdyBob3cgdG8gcXVvdGVcbiAgIGluc2lkZSBhIGRvdWJsZS1xdW90ZWQgY21kLmV4ZSBzdHJpbmcgYXJlIGRvdWJsZS1xdW90ZSBhbmQgcGVyY2VudC5cbiAgIFdlIGp1c3QgZmFpbCBpZiB0aGUgY29tbWFuZCBuYW1lIG9yIHRoZSByZWRpcmVjdGlvbiBmaWxlIG5hbWVzXG4gICBjb250YWluIGEgZG91YmxlIHF1b3RlIChub3QgYWxsb3dlZCBpbiBXaW5kb3dzIGZpbGUgbmFtZXMsIGFueXdheSlcbiAgIG9yIGEgcGVyY2VudC4gIFNlZSBmdW5jdGlvbiBcInF1b3RlX2NtZF9maWxlbmFtZVwiIGJlbG93LlxuMy0gVGhlIHdob2xlIHN0cmluZyBwYXNzZWQgdG8gU3lzLmNvbW1hbmQgaXMgdGhlbiBlbmNsb3NlZCBpbiBkb3VibGVcbiAgIHF1b3Rlcywgd2hpY2ggYXJlIGltbWVkaWF0ZWx5IHN0cmlwcGVkIGJ5IGNtZC5leGUuICBPdGhlcndpc2UsXG4gICBzb21lIG9mIHRoZSBkb3VibGUgcXVvdGVzIGZyb20gc3RlcCAyIGFib3ZlIGNhbiBiZSBtaXNwYXJzZWQuXG4gICBTZWUgZS5nLiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTk2NTE0MVxuKilcbiAgbGV0IHF1b3RlX2NtZCBzID1cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKFN0cmluZy5sZW5ndGggcyArIDIwKSBpblxuICAgIFN0cmluZy5pdGVyXG4gICAgICAoZnVuIGMgLT5cbiAgICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgIHwgJygnIHwgJyknIHwgJyEnIHwgJ14nIHwgJyUnIHwgJ1xcXCInIHwgJzwnIHwgJz4nIHwgJyYnIHwgJ3wnIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXic7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiBjKVxuICAgICAgcztcbiAgICBCdWZmZXIuY29udGVudHMgYlxuICBsZXQgcXVvdGVfY21kX2ZpbGVuYW1lIGYgPVxuICAgIGlmIFN0cmluZy5jb250YWlucyBmICdcXFwiJyB8fCBTdHJpbmcuY29udGFpbnMgZiAnJScgdGhlblxuICAgICAgZmFpbHdpdGggKFwiRmlsZW5hbWUucXVvdGVfY29tbWFuZDogYmFkIGZpbGUgbmFtZSBcIiBeIGYpXG4gICAgZWxzZSBpZiBTdHJpbmcuY29udGFpbnMgZiAnICcgdGhlblxuICAgICAgXCJcXFwiXCIgXiBmIF4gXCJcXFwiXCJcbiAgICBlbHNlXG4gICAgICBmXG4gICgqIFJlZGlyZWN0aW9ucyBpbiBjbWQuZXhlOiBzZWUgaHR0cHM6Ly9zczY0LmNvbS9udC9zeW50YXgtcmVkaXJlY3Rpb24uaHRtbFxuICAgICBhbmQgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcHJldmlvdXMtdmVyc2lvbnMvd2luZG93cy9pdC1wcm8vd2luZG93cy14cC9iYjQ5MDk4Mih2PXRlY2huZXQuMTApXG4gICopXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCJcIiBbXG4gICAgICBcIlxcXCJcIjtcbiAgICAgIHF1b3RlX2NtZF9maWxlbmFtZSBjbWQ7XG4gICAgICBcIiBcIjtcbiAgICAgIHF1b3RlX2NtZCAoU3RyaW5nLmNvbmNhdCBcIiBcIiAoTGlzdC5tYXAgcXVvdGUgYXJncykpO1xuICAgICAgKG1hdGNoIHN0ZGluICB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA8XCIgXiBxdW90ZV9jbWRfZmlsZW5hbWUgZik7XG4gICAgICAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIChtYXRjaCBzdGRlcnIgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdGRlcnIgPSBzdGRvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIFwiIDI+JjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIFwiXFxcIlwiXG4gICAgXVxuICBsZXQgaGFzX2RyaXZlIHMgPVxuICAgIGxldCBpc19sZXR0ZXIgPSBmdW5jdGlvblxuICAgICAgfCAnQScgLi4gJ1onIHwgJ2EnIC4uICd6JyAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcbiAgICBpblxuICAgIFN0cmluZy5sZW5ndGggcyA+PSAyICYmIGlzX2xldHRlciBzLlswXSAmJiBzLlsxXSA9ICc6J1xuICBsZXQgZHJpdmVfYW5kX3BhdGggcyA9XG4gICAgaWYgaGFzX2RyaXZlIHNcbiAgICB0aGVuIChTdHJpbmcuc3ViIHMgMCAyLCBTdHJpbmcuc3ViIHMgMiAoU3RyaW5nLmxlbmd0aCBzIC0gMikpXG4gICAgZWxzZSAoXCJcIiwgcylcbiAgbGV0IGRpcm5hbWUgcyA9XG4gICAgbGV0IChkcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgbGV0IGRpciA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aCBpblxuICAgIGRyaXZlIF4gZGlyXG4gIGxldCBiYXNlbmFtZSBzID1cbiAgICBsZXQgKF9kcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aFxuZW5kXG5cbm1vZHVsZSBDeWd3aW4gOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCIvZGV2L251bGxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIi9cIlxuICBsZXQgaXNfZGlyX3NlcCA9IFdpbjMyLmlzX2Rpcl9zZXBcbiAgbGV0IGlzX3JlbGF0aXZlID0gV2luMzIuaXNfcmVsYXRpdmVcbiAgbGV0IGlzX2ltcGxpY2l0ID0gV2luMzIuaXNfaW1wbGljaXRcbiAgbGV0IGNoZWNrX3N1ZmZpeCA9IFdpbjMyLmNoZWNrX3N1ZmZpeFxuICBsZXQgY2hvcF9zdWZmaXhfb3B0ID0gV2luMzIuY2hvcF9zdWZmaXhfb3B0XG4gIGxldCB0ZW1wX2Rpcl9uYW1lID0gVW5peC50ZW1wX2Rpcl9uYW1lXG4gIGxldCBxdW90ZSA9IFVuaXgucXVvdGVcbiAgbGV0IHF1b3RlX2NvbW1hbmQgPSBVbml4LnF1b3RlX2NvbW1hbmRcbiAgbGV0IGJhc2VuYW1lID0gZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbiAgbGV0IGRpcm5hbWUgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG5lbmRcblxubW9kdWxlIFN5c2RlcHMgPVxuICAodmFsIChtYXRjaCBTeXMub3NfdHlwZSB3aXRoXG4gICAgICAgfCBcIldpbjMyXCIgLT4gKG1vZHVsZSBXaW4zMjogU1lTREVQUylcbiAgICAgICB8IFwiQ3lnd2luXCIgLT4gKG1vZHVsZSBDeWd3aW46IFNZU0RFUFMpXG4gICAgICAgfCBfIC0+IChtb2R1bGUgVW5peDogU1lTREVQUykpKVxuXG5pbmNsdWRlIFN5c2RlcHNcblxubGV0IGNvbmNhdCBkaXJuYW1lIGZpbGVuYW1lID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIGRpcm5hbWUgaW5cbiAgaWYgbCA9IDAgfHwgaXNfZGlyX3NlcCBkaXJuYW1lIChsLTEpXG4gIHRoZW4gZGlybmFtZSBeIGZpbGVuYW1lXG4gIGVsc2UgZGlybmFtZSBeIGRpcl9zZXAgXiBmaWxlbmFtZVxuXG5sZXQgY2hvcF9zdWZmaXggbmFtZSBzdWZmID1cbiAgaWYgY2hlY2tfc3VmZml4IG5hbWUgc3VmZlxuICB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBTdHJpbmcubGVuZ3RoIHN1ZmYpXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX3N1ZmZpeFwiXG5cbmxldCBleHRlbnNpb25fbGVuIG5hbWUgPVxuICBsZXQgcmVjIGNoZWNrIGkwIGkgPVxuICAgIGlmIGkgPCAwIHx8IGlzX2Rpcl9zZXAgbmFtZSBpIHRoZW4gMFxuICAgIGVsc2UgaWYgbmFtZS5baV0gPSAnLicgdGhlbiBjaGVjayBpMCAoaSAtIDEpXG4gICAgZWxzZSBTdHJpbmcubGVuZ3RoIG5hbWUgLSBpMFxuICBpblxuICBsZXQgcmVjIHNlYXJjaF9kb3QgaSA9XG4gICAgaWYgaSA8IDAgfHwgaXNfZGlyX3NlcCBuYW1lIGkgdGhlbiAwXG4gICAgZWxzZSBpZiBuYW1lLltpXSA9ICcuJyB0aGVuIGNoZWNrIGkgKGkgLSAxKVxuICAgIGVsc2Ugc2VhcmNoX2RvdCAoaSAtIDEpXG4gIGluXG4gIHNlYXJjaF9kb3QgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbmxldCBleHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gXCJcIiBlbHNlIFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbCkgbFxuXG5sZXQgY2hvcF9leHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX2V4dGVuc2lvblwiXG4gIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIGwpXG5cbmxldCByZW1vdmVfZXh0ZW5zaW9uIG5hbWUgPVxuICBsZXQgbCA9IGV4dGVuc2lvbl9sZW4gbmFtZSBpblxuICBpZiBsID0gMCB0aGVuIG5hbWUgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbClcblxuZXh0ZXJuYWwgb3Blbl9kZXNjOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5leHRlcm5hbCBjbG9zZV9kZXNjOiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9zeXNfY2xvc2VcIlxuXG5sZXQgcHJuZyA9IGxhenkoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0ICgpKVxuXG5sZXQgdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCBybmQgPSAoUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykpIGxhbmQgMHhGRkZGRkYgaW5cbiAgY29uY2F0IHRlbXBfZGlyIChQcmludGYuc3ByaW50ZiBcIiVzJTA2eCVzXCIgcHJlZml4IHJuZCBzdWZmaXgpXG5cblxubGV0IGN1cnJlbnRfdGVtcF9kaXJfbmFtZSA9IHJlZiB0ZW1wX2Rpcl9uYW1lXG5cbmxldCBzZXRfdGVtcF9kaXJfbmFtZSBzID0gY3VycmVudF90ZW1wX2Rpcl9uYW1lIDo9IHNcbmxldCBnZXRfdGVtcF9kaXJfbmFtZSAoKSA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWVcblxubGV0IHRlbXBfZmlsZSA/KHRlbXBfZGlyID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZSkgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCByZWMgdHJ5X25hbWUgY291bnRlciA9XG4gICAgbGV0IG5hbWUgPSB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4IGluXG4gICAgdHJ5XG4gICAgICBjbG9zZV9kZXNjKG9wZW5fZGVzYyBuYW1lIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl9leGNsXSAwbzYwMCk7XG4gICAgICBuYW1lXG4gICAgd2l0aCBTeXNfZXJyb3IgXyBhcyBlIC0+XG4gICAgICBpZiBjb3VudGVyID49IDEwMDAgdGhlbiByYWlzZSBlIGVsc2UgdHJ5X25hbWUgKGNvdW50ZXIgKyAxKVxuICBpbiB0cnlfbmFtZSAwXG5cbmxldCBvcGVuX3RlbXBfZmlsZSA/KG1vZGUgPSBbT3Blbl90ZXh0XSkgPyhwZXJtcyA9IDBvNjAwKVxuICAgICAgICAgICAgICAgICAgID8odGVtcF9kaXIgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lKSBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJlYyB0cnlfbmFtZSBjb3VudGVyID1cbiAgICBsZXQgbmFtZSA9IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggaW5cbiAgICB0cnlcbiAgICAgIChuYW1lLFxuICAgICAgIG9wZW5fb3V0X2dlbiAoT3Blbl93cm9ubHk6Ok9wZW5fY3JlYXQ6Ok9wZW5fZXhjbDo6bW9kZSkgcGVybXMgbmFtZSlcbiAgICB3aXRoIFN5c19lcnJvciBfIGFzIGUgLT5cbiAgICAgIGlmIGNvdW50ZXIgPj0gMTAwMCB0aGVuIHJhaXNlIGUgZWxzZSB0cnlfbmFtZSAoY291bnRlciArIDEpXG4gIGluIHRyeV9uYW1lIDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ29tcGxleCBudW1iZXJzICopXG5cbnR5cGUgdCA9IHsgcmU6IGZsb2F0OyBpbTogZmxvYXQgfVxuXG5sZXQgemVybyA9IHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbmxldCBvbmUgPSB7IHJlID0gMS4wOyBpbSA9IDAuMCB9XG5sZXQgaSA9IHsgcmUgPSAwLjA7IGltID0gMS4wIH1cblxubGV0IGFkZCB4IHkgPSB7IHJlID0geC5yZSArLiB5LnJlOyBpbSA9IHguaW0gKy4geS5pbSB9XG5cbmxldCBzdWIgeCB5ID0geyByZSA9IHgucmUgLS4geS5yZTsgaW0gPSB4LmltIC0uIHkuaW0gfVxuXG5sZXQgbmVnIHggPSB7IHJlID0gLS4geC5yZTsgaW0gPSAtLiB4LmltIH1cblxubGV0IGNvbmogeCA9IHsgcmUgPSB4LnJlOyBpbSA9IC0uIHguaW0gfVxuXG5sZXQgbXVsIHggeSA9IHsgcmUgPSB4LnJlICouIHkucmUgLS4geC5pbSAqLiB5LmltO1xuICAgICAgICAgICAgICAgIGltID0geC5yZSAqLiB5LmltICsuIHguaW0gKi4geS5yZSB9XG5cbmxldCBkaXYgeCB5ID1cbiAgaWYgYWJzX2Zsb2F0IHkucmUgPj0gYWJzX2Zsb2F0IHkuaW0gdGhlblxuICAgIGxldCByID0geS5pbSAvLiB5LnJlIGluXG4gICAgbGV0IGQgPSB5LnJlICsuIHIgKi4geS5pbSBpblxuICAgIHsgcmUgPSAoeC5yZSArLiByICouIHguaW0pIC8uIGQ7XG4gICAgICBpbSA9ICh4LmltIC0uIHIgKi4geC5yZSkgLy4gZCB9XG4gIGVsc2VcbiAgICBsZXQgciA9IHkucmUgLy4geS5pbSBpblxuICAgIGxldCBkID0geS5pbSArLiByICouIHkucmUgaW5cbiAgICB7IHJlID0gKHIgKi4geC5yZSArLiB4LmltKSAvLiBkO1xuICAgICAgaW0gPSAociAqLiB4LmltIC0uIHgucmUpIC8uIGQgfVxuXG5sZXQgaW52IHggPSBkaXYgb25lIHhcblxubGV0IG5vcm0yIHggPSB4LnJlICouIHgucmUgKy4geC5pbSAqLiB4LmltXG5cbmxldCBub3JtIHggPVxuICAoKiBXYXRjaCBvdXQgZm9yIG92ZXJmbG93IGluIGNvbXB1dGluZyByZV4yICsgaW1eMiAqKVxuICBsZXQgciA9IGFic19mbG9hdCB4LnJlIGFuZCBpID0gYWJzX2Zsb2F0IHguaW0gaW5cbiAgaWYgciA9IDAuMCB0aGVuIGlcbiAgZWxzZSBpZiBpID0gMC4wIHRoZW4gclxuICBlbHNlIGlmIHIgPj0gaSB0aGVuXG4gICAgbGV0IHEgPSBpIC8uIHIgaW4gciAqLiBzcXJ0KDEuMCArLiBxICouIHEpXG4gIGVsc2VcbiAgICBsZXQgcSA9IHIgLy4gaSBpbiBpICouIHNxcnQoMS4wICsuIHEgKi4gcSlcblxubGV0IGFyZyB4ID0gYXRhbjIgeC5pbSB4LnJlXG5cbmxldCBwb2xhciBuIGEgPSB7IHJlID0gY29zIGEgKi4gbjsgaW0gPSBzaW4gYSAqLiBuIH1cblxubGV0IHNxcnQgeCA9XG4gIGlmIHgucmUgPSAwLjAgJiYgeC5pbSA9IDAuMCB0aGVuIHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gYWJzX2Zsb2F0IHgucmUgYW5kIGkgPSBhYnNfZmxvYXQgeC5pbSBpblxuICAgIGxldCB3ID1cbiAgICAgIGlmIHIgPj0gaSB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBxID0gaSAvLiByIGluXG4gICAgICAgIHNxcnQocikgKi4gc3FydCgwLjUgKi4gKDEuMCArLiBzcXJ0KDEuMCArLiBxICouIHEpKSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBxID0gciAvLiBpIGluXG4gICAgICAgIHNxcnQoaSkgKi4gc3FydCgwLjUgKi4gKHEgKy4gc3FydCgxLjAgKy4gcSAqLiBxKSkpXG4gICAgICBlbmQgaW5cbiAgICBpZiB4LnJlID49IDAuMFxuICAgIHRoZW4geyByZSA9IHc7ICBpbSA9IDAuNSAqLiB4LmltIC8uIHcgfVxuICAgIGVsc2UgeyByZSA9IDAuNSAqLiBpIC8uIHc7ICBpbSA9IGlmIHguaW0gPj0gMC4wIHRoZW4gdyBlbHNlIC0uIHcgfVxuICBlbmRcblxubGV0IGV4cCB4ID1cbiAgbGV0IGUgPSBleHAgeC5yZSBpbiB7IHJlID0gZSAqLiBjb3MgeC5pbTsgaW0gPSBlICouIHNpbiB4LmltIH1cblxubGV0IGxvZyB4ID0geyByZSA9IGxvZyAobm9ybSB4KTsgaW0gPSBhdGFuMiB4LmltIHgucmUgfVxuXG5sZXQgcG93IHggeSA9IGV4cCAobXVsIHkgKGxvZyB4KSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICBCZW5vaXQgVmF1Z29uLCBFTlNUQSAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUGFkZGluZyBwb3NpdGlvbi4gKilcbnR5cGUgcGFkdHkgPVxuICB8IExlZnQgICAoKiBUZXh0IGlzIGxlZnQganVzdGlmaWVkICgnLScgb3B0aW9uKS4gICAgICAgICAgICAgICAqKVxuICB8IFJpZ2h0ICAoKiBUZXh0IGlzIHJpZ2h0IGp1c3RpZmllZCAobm8gJy0nIG9wdGlvbikuICAgICAgICAgICAqKVxuICB8IFplcm9zICAoKiBUZXh0IGlzIHJpZ2h0IGp1c3RpZmllZCBieSB6ZXJvcyAoc2VlICcwJyBvcHRpb24pLiAqKVxuXG4oKioqKVxuXG4oKiBJbnRlZ2VyIGNvbnZlcnNpb24uICopXG50eXBlIGludF9jb252ID1cbiAgfCBJbnRfZCB8IEludF9wZCB8IEludF9zZCAgICAgICAgKCogICVkIHwgJStkIHwgJSBkICAqKVxuICB8IEludF9pIHwgSW50X3BpIHwgSW50X3NpICAgICAgICAoKiAgJWkgfCAlK2kgfCAlIGkgICopXG4gIHwgSW50X3ggfCBJbnRfQ3ggICAgICAgICAgICAgICAgICgqICAleCB8ICUjeCAgICAgICAgKilcbiAgfCBJbnRfWCB8IEludF9DWCAgICAgICAgICAgICAgICAgKCogICVYIHwgJSNYICAgICAgICAqKVxuICB8IEludF9vIHwgSW50X0NvICAgICAgICAgICAgICAgICAoKiAgJW8gfCAlI28gICAgICAgICopXG4gIHwgSW50X3UgICAgICAgICAgICAgICAgICAgICAgICAgICgqICAldSAgICAgICAgICAgICAgKilcbiAgfCBJbnRfQ2QgfCBJbnRfQ2kgfCBJbnRfQ3UgICAgICAgKCogICUjZCB8ICUjaSB8ICUjdSAqKVxuXG4oKiBGbG9hdCBjb252ZXJzaW9uLiAqKVxudHlwZSBmbG9hdF9mbGFnX2NvbnYgPVxuICB8IEZsb2F0X2ZsYWdfICAgICAgICAgICAgICAgICAgICAoKiAlW2ZlRWdHRmhIXSAqKVxuICB8IEZsb2F0X2ZsYWdfcCAgICAgICAgICAgICAgICAgICAoKiAlK1tmZUVnR0ZoSF0gKilcbiAgfCBGbG9hdF9mbGFnX3MgICAgICAgICAgICAgICAgICAgKCogJSBbZmVFZ0dGaEhdICopXG50eXBlIGZsb2F0X2tpbmRfY29udiA9XG4gIHwgRmxvYXRfZiAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZiB8ICUrZiB8ICUgZiAgKilcbiAgfCBGbG9hdF9lICAgICAgICAgICAgICAgICAgICAgICAgKCogICVlIHwgJStlIHwgJSBlICAqKVxuICB8IEZsb2F0X0UgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUUgfCAlK0UgfCAlIEUgICopXG4gIHwgRmxvYXRfZyAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZyB8ICUrZyB8ICUgZyAgKilcbiAgfCBGbG9hdF9HICAgICAgICAgICAgICAgICAgICAgICAgKCogICVHIHwgJStHIHwgJSBHICAqKVxuICB8IEZsb2F0X0YgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUYgfCAlK0YgfCAlIEYgICopXG4gIHwgRmxvYXRfaCAgICAgICAgICAgICAgICAgICAgICAgICgqICAlaCB8ICUraCB8ICUgaCAgKilcbiAgfCBGbG9hdF9IICAgICAgICAgICAgICAgICAgICAgICAgKCogICVIIHwgJStIIHwgJSBIICAqKVxuICB8IEZsb2F0X0NGICAgICAgICAgICAgICAgICAgICAgICAoKiAgJSNGfCAlKyNGfCAlICNGICopXG50eXBlIGZsb2F0X2NvbnYgPSBmbG9hdF9mbGFnX2NvbnYgKiBmbG9hdF9raW5kX2NvbnZcblxuKCoqKilcblxuKCogQ2hhciBzZXRzIChzZWUgJVsuLi5dKSBhcmUgYml0bWFwcyBpbXBsZW1lbnRlZCBhcyAzMi1jaGFyIHN0cmluZ3MuICopXG50eXBlIGNoYXJfc2V0ID0gc3RyaW5nXG5cbigqKiopXG5cbigqIENvdW50ZXIgdXNlZCBpbiBTY2FuZi4gKilcbnR5cGUgY291bnRlciA9XG4gIHwgTGluZV9jb3VudGVyICAgICAoKiAgJWwgICAgICAqKVxuICB8IENoYXJfY291bnRlciAgICAgKCogICVuICAgICAgKilcbiAgfCBUb2tlbl9jb3VudGVyICAgICgqICAlTiwgJUwgICopXG5cbigqKiopXG5cbigqIFBhZGRpbmcgb2Ygc3RyaW5ncyBhbmQgbnVtYmVycy4gKilcbnR5cGUgKCdhLCAnYikgcGFkZGluZyA9XG4gICgqIE5vIHBhZGRpbmcgKGV4OiBcIiVkXCIpICopXG4gIHwgTm9fcGFkZGluZyAgOiAoJ2EsICdhKSBwYWRkaW5nXG4gICgqIExpdGVyYWwgcGFkZGluZyAoZXg6IFwiJThkXCIpICopXG4gIHwgTGl0X3BhZGRpbmcgOiBwYWR0eSAqIGludCAtPiAoJ2EsICdhKSBwYWRkaW5nXG4gICgqIFBhZGRpbmcgYXMgZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUqZFwiKSAqKVxuICB8IEFyZ19wYWRkaW5nIDogcGFkdHkgLT4gKGludCAtPiAnYSwgJ2EpIHBhZGRpbmdcblxuKCogU29tZSBmb3JtYXRzLCBzdWNoIGFzICVfZCxcbiAgIG9ubHkgYWNjZXB0IGFuIG9wdGlvbmFsIG51bWJlciBhcyBwYWRkaW5nIG9wdGlvbiAobm8gZXh0cmEgYXJndW1lbnQpICopXG50eXBlIHBhZF9vcHRpb24gPSBpbnQgb3B0aW9uXG5cbigqIFByZWNpc2lvbiBvZiBmbG9hdHMgYW5kICcwJy1wYWRkaW5nIG9mIGludGVnZXJzLiAqKVxudHlwZSAoJ2EsICdiKSBwcmVjaXNpb24gPVxuICAoKiBObyBwcmVjaXNpb24gKGV4OiBcIiVmXCIpICopXG4gIHwgTm9fcHJlY2lzaW9uIDogKCdhLCAnYSkgcHJlY2lzaW9uXG4gICgqIExpdGVyYWwgcHJlY2lzaW9uIChleDogXCIlLjNmXCIpICopXG4gIHwgTGl0X3ByZWNpc2lvbiA6IGludCAtPiAoJ2EsICdhKSBwcmVjaXNpb25cbiAgKCogUHJlY2lzaW9uIGFzIGV4dHJhIGFyZ3VtZW50IChleDogXCIlLipmXCIpICopXG4gIHwgQXJnX3ByZWNpc2lvbiA6IChpbnQgLT4gJ2EsICdhKSBwcmVjaXNpb25cblxuKCogU29tZSBmb3JtYXRzLCBzdWNoIGFzICVfZixcbiAgIG9ubHkgYWNjZXB0IGFuIG9wdGlvbmFsIG51bWJlciBhcyBwcmVjaXNpb24gb3B0aW9uIChubyBleHRyYSBhcmd1bWVudCkgKilcbnR5cGUgcHJlY19vcHRpb24gPSBpbnQgb3B0aW9uXG5cbigqIHNlZSB0aGUgQ3VzdG9tIGZvcm1hdCBjb21iaW5hdG9yICopXG50eXBlICgnYSwgJ2IsICdjKSBjdXN0b21fYXJpdHkgPVxuICB8IEN1c3RvbV96ZXJvIDogKCdhLCBzdHJpbmcsICdhKSBjdXN0b21fYXJpdHlcbiAgfCBDdXN0b21fc3VjYyA6ICgnYSwgJ2IsICdjKSBjdXN0b21fYXJpdHkgLT5cbiAgICAoJ2EsICd4IC0+ICdiLCAneCAtPiAnYykgY3VzdG9tX2FyaXR5XG5cbigqKiopXG5cbigqICAgICAgICBSZWxhdGlvbmFsIGZvcm1hdCB0eXBlc1xuXG5JbiB0aGUgZmlyc3QgZm9ybWF0K2dhZHRzIGltcGxlbWVudGF0aW9uLCB0aGUgdHlwZSBmb3IgJSguLiUpIGluIHRoZVxuZm10IEdBRFQgd2FzIGFzIGZvbGxvd3M6XG5cbnwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgIHBhZF9vcHRpb24gKiAoJ2QxLCAncTEsICdkMiwgJ3EyKSByZWFkZXJfbmJfdW5pZmllciAqXG4gICAgKCd4LCAnYiwgJ2MsICdkMSwgJ3ExLCAndSkgZm10dHkgKlxuICAgICgndSwgJ2IsICdjLCAncTEsICdlMSwgJ2YpIGZtdCAtPlxuICAgICAgKCgneCwgJ2IsICdjLCAnZDIsICdxMiwgJ3UpIGZvcm1hdDYgLT4gJ3gsICdiLCAnYywgJ2QxLCAnZTEsICdmKSBmbXRcblxuTm90aWNlIHRoYXQgdGhlICd1IHBhcmFtZXRlciBpbiAnZiBwb3NpdGlvbiBpbiB0aGUgZm9ybWF0IGFyZ3VtZW50XG4oKCd4LCAuLiwgJ3UpIGZvcm1hdDYgLT4gLi4pIGlzIGVxdWFsIHRvIHRoZSAndSBwYXJhbWV0ZXIgaW4gJ2FcbnBvc2l0aW9uIGluIHRoZSBmb3JtYXQgdGFpbCAoKCd1LCAuLiwgJ2YpIGZtdCkuIFRoaXMgbWVhbnMgdGhhdCB0aGVcbnR5cGUgb2YgdGhlIGV4cGVjdGVkIGZvcm1hdCBwYXJhbWV0ZXIgZGVwZW5kcyBvZiB3aGVyZSB0aGUgJSguLi4lKVxuYXJlIGluIHRoZSBmb3JtYXQgc3RyaW5nOlxuXG4gICMgUHJpbnRmLnByaW50ZiBcIiUoJSlcIlxuICAtIDogKHVuaXQsIG91dF9jaGFubmVsLCB1bml0LCAnX2EsICdfYSwgdW5pdClcbiAgICAgIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2IC0+IHVuaXRcbiAgPSA8ZnVuPlxuICAjIFByaW50Zi5wcmludGYgXCIlKCUpJWRcIlxuICAtIDogKGludCAtPiB1bml0LCBvdXRfY2hhbm5lbCwgdW5pdCwgJ19hLCAnX2EsIGludCAtPiB1bml0KVxuICAgICAgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDYgLT4gaW50IC0+IHVuaXRcbiAgPSA8ZnVuPlxuXG5PbiB0aGUgY29udHJhcnksIHRoZSBsZWdhY3kgdHlwZXIgZ2l2ZXMgYSBjbGV2ZXIgdHlwZSB0aGF0IGRvZXMgbm90XG5kZXBlbmQgb24gdGhlIHBvc2l0aW9uIG9mICUoLi4lKSBpbiB0aGUgZm9ybWF0IHN0cmluZy4gRm9yIGV4YW1wbGUsXG4lKCUpIHdpbGwgaGF2ZSB0aGUgcG9seW1vcnBoaWMgdHlwZSAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSk6IGl0IGNhblxuYmUgY29uY2F0ZW5hdGVkIHRvIGFueSBmb3JtYXQgdHlwZSwgYW5kIG9ubHkgZW5mb3JjZXMgdGhlIGNvbnN0cmFpbnRcbnRoYXQgaXRzICdhIGFuZCAnZiBwYXJhbWV0ZXJzIGFyZSBlcXVhbCAobm8gZm9ybWF0IGFyZ3VtZW50cykgYW5kICdkXG5hbmQgJ2UgYXJlIGVxdWFsIChubyByZWFkZXIgYXJndW1lbnQpLlxuXG5UaGUgd2Vha2VuaW5nIG9mIHRoaXMgcGFyYW1ldGVyIHR5cGUgaW4gdGhlIEdBRFQgdmVyc2lvbiBicm9rZSB1c2VyXG5jb2RlIChpbiBmYWN0IGl0IGVzc2VudGlhbGx5IG1hZGUgJSguLi4lKSB1bnVzYWJsZSBleGNlcHQgYXQgdGhlIGxhc3RcbnBvc2l0aW9uIG9mIGEgZm9ybWF0KS4gSW4gcGFydGljdWxhciwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3Qgd29ya1xuYW55bW9yZTpcblxuICBmdW4gc2VwIC0+XG4gICAgRm9ybWF0LnByaW50ZiBcImZvbyUoJSliYXIlKCUpYmF6XCIgc2VwIHNlcFxuXG5BcyB0aGUgdHlwZS1jaGVja2VyIHdvdWxkIHJlcXVpcmUgdHdvICppbmNvbXBhdGlibGUqIHR5cGVzIGZvciB0aGUgJSglKVxuaW4gZGlmZmVyZW50IHBvc2l0aW9ucy5cblxuVGhlIHNvbHV0aW9uIHRvIHJlZ2FpbiBhIGdlbmVyYWwgdHlwZSBmb3IgJSguLiUpIGlzIHRvIGdlbmVyYWxpemUgdGhpc1xudGVjaG5pcXVlLCBub3Qgb25seSBvbiB0aGUgJ2QsICdlIHBhcmFtZXRlcnMsIGJ1dCBvbiBhbGwgc2l4XG5wYXJhbWV0ZXJzIG9mIGEgZm9ybWF0OiB3ZSBpbnRyb2R1Y2UgYSBcInJlbGF0aW9uYWxcIiB0eXBlXG4gICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG53aG9zZSB2YWx1ZXMgYXJlIHByb29mcyB0aGF0ICgnYTEsIC4uLCAnZjEpIGFuZCAoJ2EyLCAuLiwgJ2YyKSBtb3JhbGx5XG5jb3JyZXNwb25kIHRvIHRoZSBzYW1lIGZvcm1hdCB0eXBlOiAnYTEgaXMgb2J0YWluZWQgZnJvbSAnZjEsJ2IxLCdjMVxuaW4gdGhlIGV4YWN0IHNhbWUgd2F5IHRoYXQgJ2EyIGlzIG9idGFpbmVkIGZyb20gJ2YyLCdiMiwnYzIsIGV0Yy5cblxuRm9yIGV4YW1wbGUsIHRoZSByZWxhdGlvbiBiZXR3ZWVuIHR3byBmb3JtYXQgdHlwZXMgYmVnaW5uaW5nIHdpdGggYSBDaGFyXG5wYXJhbWV0ZXIgaXMgYXMgZm9sbG93czpcblxufCBDaGFyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgICopXG4gICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgIChjaGFyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgIGNoYXIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbkluIHRoZSBnZW5lcmFsIGNhc2UsIHRoZSB0ZXJtIHN0cnVjdHVyZSBvZiBmbXR0eV9yZWwgaXMgKGFsbW9zdFsxXSlcbmlzb21vcnBoaWMgdG8gdGhlIGZtdHR5IG9mIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbjogZXZlcnlcbmNvbnN0cnVjdG9yIGlzIHJlLXJlYWQgd2l0aCBhIGJpbmFyeSwgcmVsYXRpb25hbCB0eXBlLCBpbnN0ZWFkIG9mIHRoZVxucHJldmlvdXMgdW5hcnkgdHlwaW5nLiBmbXR0eSBjYW4gdGhlbiBiZSByZS1kZWZpbmVkIGFzIHRoZSBkaWFnb25hbCBvZlxuZm10dHlfcmVsOlxuXG4gIHR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5ID1cbiAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZixcbiAgICAgICAgJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfcmVsXG5cbk9uY2Ugd2UgaGF2ZSB0aGlzIGZtdHR5X3JlbCB0eXBlIGluIHBsYWNlLCB3ZSBjYW4gZ2l2ZSB0aGUgbW9yZVxuZ2VuZXJhbCB0eXBlIHRvICUoLi4uJSk6XG5cbnwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgIHBhZF9vcHRpb24gKlxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzIsICdiLCAnYywgJ2oyLCAnZCwgJ2EpIGZtdHR5X3JlbCAqXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiLCAnYywgJ2oyLCAnZSwgJ2YpIGZtdFxuXG5XZSBhY2NlcHQgYW55IGZvcm1hdCAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYpICh0aGlzIGlzXG5jb21wbGV0ZWx5IHVucmVsYXRlZCB0byB0aGUgdHlwZSBvZiB0aGUgY3VycmVudCBmb3JtYXQpLCBidXQgYWxzb1xucmVxdWlyZSBhIHByb29mIHRoYXQgdGhpcyBmb3JtYXQgaXMgaW4gcmVsYXRpb24gdG8gYW5vdGhlciBmb3JtYXQgdGhhdFxuaXMgY29uY2F0ZW5hYmxlIHRvIHRoZSBmb3JtYXQgdGFpbC4gV2hlbiBleGVjdXRpbmcgYSAlKC4uLiUpIGZvcm1hdFxuKGluIGNhbWxpbnRlcm5hbEZvcm1hdC5tbDptYWtlX3ByaW50ZiBvciBzY2FuZi5tbDptYWtlX3NjYW5mKSwgd2VcbnRyYW5zdHlwZSB0aGUgZm9ybWF0IGFsb25nIHRoaXMgcmVsYXRpb24gdXNpbmcgdGhlICdyZWNhc3QnIGZ1bmN0aW9uXG50byB0cmFuc3Bvc2UgYmV0d2VlbiByZWxhdGVkIGZvcm1hdCB0eXBlcy5cblxuICB2YWwgcmVjYXN0IDpcbiAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEpIGZtdFxuICAtPiAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICAtPiAoJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10XG5cbk5PVEUgWzFdOiB0aGUgdHlwaW5nIG9mIEZvcm1hdF9zdWJzdF90eSByZXF1aXJlcyBub3Qgb25lIGZvcm1hdCB0eXBlLCBidXRcbnR3bywgb25lIHRvIGVzdGFibGlzaCB0aGUgbGluayBiZXR3ZWVuIHRoZSBmb3JtYXQgYXJndW1lbnQgYW5kIHRoZVxuZmlyc3Qgc2l4IHBhcmFtZXRlcnMsIGFuZCB0aGUgb3RoZXIgZm9yIHRoZSBsaW5rIGJldHdlZW4gdGhlIGZvcm1hdFxuYXJndW1lbnQgYW5kIHRoZSBsYXN0IHNpeCBwYXJhbWV0ZXJzLlxuXG58IEZvcm1hdF9zdWJzdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2QxLCAnYTEpIGZtdHR5X3JlbCAqXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2QyLCAnYTIpIGZtdHR5X3JlbCAqXG4gICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzEsICdiMSwgJ2MxLCAnajEsICdlMSwgJ2YxLFxuICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiMiwgJ2MyLCAnajIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuV2hlbiB3ZSBnZW5lcmF0ZSBhIGZvcm1hdCBBU1QsIHdlIGdlbmVyYXRlIGV4YWN0bHkgdGhlIHNhbWUgd2l0bmVzc1xuZm9yIGJvdGggcmVsYXRpb25zLCBhbmQgdGhlIHdpdG5lc3MtY29udmVyc2lvbiBmdW5jdGlvbnMgaW5cbmNhbWxpbnRlcm5hbEZvcm1hdCBkbyByZWx5IG9uIHRoaXMgaW52YXJpYW50LiBGb3IgZXhhbXBsZSwgdGhlXG5mdW5jdGlvbiB0aGF0IHByb3ZlcyB0aGF0IHRoZSByZWxhdGlvbiBpcyB0cmFuc2l0aXZlXG5cbiAgdmFsIHRyYW5zIDpcbiAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgLT4gKCdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIsXG4gICAgICAnYTMsICdiMywgJ2MzLCAnZDMsICdlMywgJ2YzKSBmbXR0eV9yZWxcbiAgLT4gKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTMsICdiMywgJ2MzLCAnZDMsICdlMywgJ2YzKSBmbXR0eV9yZWxcblxuZG9lcyBhc3N1bWUgdGhhdCB0aGUgdHdvIGlucHV0cyBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgdGVybSBzdHJ1Y3R1cmVcbihhbmQgaXMgb25seSBldmVyeSB1c2VkIGZvciBhcmd1bWVudCB3aXRuZXNzZXMgb2YgdGhlXG5Gb3JtYXRfc3Vic3RfdHkgY29uc3RydWN0b3IpLlxuKilcblxuKCogVHlwZSBvZiBhIGJsb2NrIHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgYmxvY2tfdHlwZSA9XG4gIHwgUHBfaGJveCAgICgqIEhvcml6b250YWwgYmxvY2sgbm8gbGluZSBicmVha2luZyAqKVxuICB8IFBwX3Zib3ggICAoKiBWZXJ0aWNhbCBibG9jayBlYWNoIGJyZWFrIGxlYWRzIHRvIGEgbmV3IGxpbmUgKilcbiAgfCBQcF9odmJveCAgKCogSG9yaXpvbnRhbC12ZXJ0aWNhbCBibG9jazogc2FtZSBhcyB2Ym94LCBleGNlcHQgaWYgdGhpcyBibG9ja1xuICAgICAgICAgICAgICAgICBpcyBzbWFsbCBlbm91Z2ggdG8gZml0IG9uIGEgc2luZ2xlIGxpbmUgKilcbiAgfCBQcF9ob3Zib3ggKCogSG9yaXpvbnRhbCBvciBWZXJ0aWNhbCBibG9jazogYnJlYWtzIGxlYWQgdG8gbmV3IGxpbmVcbiAgICAgICAgICAgICAgICAgb25seSB3aGVuIG5lY2Vzc2FyeSB0byBwcmludCB0aGUgY29udGVudCBvZiB0aGUgYmxvY2sgKilcbiAgfCBQcF9ib3ggICAgKCogSG9yaXpvbnRhbCBvciBJbmRlbnQgYmxvY2s6IGJyZWFrcyBsZWFkIHRvIG5ldyBsaW5lXG4gICAgICAgICAgICAgICAgIG9ubHkgd2hlbiBuZWNlc3NhcnkgdG8gcHJpbnQgdGhlIGNvbnRlbnQgb2YgdGhlIGJsb2NrLCBvclxuICAgICAgICAgICAgICAgICB3aGVuIGl0IGxlYWRzIHRvIGEgbmV3IGluZGVudGF0aW9uIG9mIHRoZSBjdXJyZW50IGxpbmUgKilcbiAgfCBQcF9maXRzICAgKCogSW50ZXJuYWwgdXNhZ2U6IHdoZW4gYSBibG9jayBmaXRzIG9uIGEgc2luZ2xlIGxpbmUgKilcblxuKCogRm9ybWF0dGluZyBlbGVtZW50IHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgZm9ybWF0dGluZ19saXQgPVxuICB8IENsb3NlX2JveCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXSAgICopXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEB9ICAgKilcbiAgfCBCcmVhayBvZiBzdHJpbmcgKiBpbnQgKiBpbnQgICAgICAgICAgKCogQCwgfCBAICB8IEA7IHwgQDs8PiAqKVxuICB8IEZGbHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAPyAgICopXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBcXG4gICopXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEAuICAgKilcbiAgfCBNYWdpY19zaXplIG9mIHN0cmluZyAqIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQDxuPiAqKVxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAQCAgICopXG4gIHwgRXNjYXBlZF9wZXJjZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEAlJSAgKilcbiAgfCBTY2FuX2luZGljIG9mIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQFggICAqKVxuXG4oKiBGb3JtYXR0aW5nIGVsZW1lbnQgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW4gPVxuICB8IE9wZW5fdGFnIDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gICAgICAoKiBAeyAgICopXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuXG4gIHwgT3Blbl9ib3ggOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAgICAgICgqIEBbICAgKilcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW5cblxuKCoqKilcblxuKCogTGlzdCBvZiBmb3JtYXQgdHlwZSBlbGVtZW50cy4gKilcbigqIEluIHBhcnRpY3VsYXIgdXNlZCB0byByZXByZXNlbnQgJSguLi4lKSBhbmQgJXsuLi4lfSBjb250ZW50cy4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgPVxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZixcbiAgICAgICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X3JlbFxuYW5kICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgPVxuICB8IENoYXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGNoYXIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBjaGFyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IFN0cmluZ190eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlcyAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKHN0cmluZyAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIHN0cmluZyAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWQgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50MzJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVsZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50MzIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQzMiAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBOYXRpdmVpbnRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJW5kICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChuYXRpdmVpbnQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBuYXRpdmVpbnQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50NjRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVMZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50NjQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQ2NCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBGbG9hdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWYgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChmbG9hdCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGZsb2F0IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEJvb2xfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlQiAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGJvb2wgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBib29sIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gIHwgRm9ybWF0X2FyZ190eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV7Li4uJX0gKilcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAqXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpXG4gICAgICAgICAgIGZtdHR5X3JlbFxuICB8IEZvcm1hdF9zdWJzdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzEsICdiMSwgJ2MxLCAnajEsICdkMSwgJ2ExKSBmbXR0eV9yZWwgKlxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZDIsICdhMikgZm10dHlfcmVsICpcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZTIsICdmMilcbiAgICAgICAgICAgZm10dHlfcmVsXG5cbiAgKCogUHJpbnRmIGFuZCBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzLiAqKVxuICB8IEFscGhhX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYSAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnYjEgLT4gJ3ggLT4gJ2MxKSAtPiAneCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnYjIgLT4gJ3ggLT4gJ2MyKSAtPiAneCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBUaGV0YV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXQgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2IxIC0+ICdjMSkgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2IyIC0+ICdjMikgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgQW55X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VkIGZvciBjdXN0b20gZm9ybWF0cyAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ3ggLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAneCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICAoKiBTY2FuZiBzcGVjaWZpYyBjb25zdHJ1Y3Rvci4gKilcbiAgfCBSZWFkZXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXIgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgneCAtPiAnYTEsICdiMSwgJ2MxLCAoJ2IxIC0+ICd4KSAtPiAnZDEsICdlMSwgJ2YxLFxuICAgICAgICd4IC0+ICdhMiwgJ2IyLCAnYzIsICgnYjIgLT4gJ3gpIC0+ICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IElnbm9yZWRfcmVhZGVyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3IgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgnYTEsICdiMSwgJ2MxLCAoJ2IxIC0+ICd4KSAtPiAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICgnYjIgLT4gJ3gpIC0+ICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gIHwgRW5kX29mX2ZtdHR5IDpcbiAgICAgICgnZjEsICdiMSwgJ2MxLCAnZDEsICdkMSwgJ2YxLFxuICAgICAgICdmMiwgJ2IyLCAnYzIsICdkMiwgJ2QyLCAnZjIpIGZtdHR5X3JlbFxuXG4oKioqKVxuXG4oKiBMaXN0IG9mIGZvcm1hdCBlbGVtZW50cy4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10ID1cbiAgfCBDaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDYW1sX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlQyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlcyAqKVxuICAgICAgKCd4LCBzdHJpbmcgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDYW1sX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlUyAqKVxuICAgICAgKCd4LCBzdHJpbmcgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50MzIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWxbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQzMiAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IE5hdGl2ZWludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVuW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgbmF0aXZlaW50IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50NjQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUxbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQ2NCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZsb2F0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbZmVFZ0dGaEhdICopXG4gICAgICBmbG9hdF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgZmxvYXQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBCb29sIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2JCXSAqKVxuICAgICAgKCd4LCBib29sIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRmx1c2ggOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSEgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogYWJjICopXG4gICAgICBzdHJpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDaGFyX2xpdGVyYWwgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiB4ICopXG4gICAgICBjaGFyICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgfCBGb3JtYXRfYXJnIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAley4uLiV9ICopXG4gICAgICBwYWRfb3B0aW9uICogKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5ICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAgIHBhZF9vcHRpb24gKlxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cyLCAnYiwgJ2MsICdqMiwgJ2QsICdhKSBmbXR0eV9yZWwgKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IsICdjLCAnajIsICdlLCAnZikgZm10XG5cbiAgKCogUHJpbnRmIGFuZCBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3IuICopXG4gIHwgQWxwaGEgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWEgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnYiAtPiAneCAtPiAnYykgLT4gJ3ggLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgVGhldGEgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXQgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnYiAtPiAnYykgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yOiAqKVxuICB8IEZvcm1hdHRpbmdfbGl0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBfICopXG4gICAgICBmb3JtYXR0aW5nX2xpdCAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZvcm1hdHRpbmdfZ2VuIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXyAqKVxuICAgICAgKCdhMSwgJ2IsICdjLCAnZDEsICdlMSwgJ2YxKSBmb3JtYXR0aW5nX2dlbiAqXG4gICAgICAoJ2YxLCAnYiwgJ2MsICdlMSwgJ2UyLCAnZjIpIGZtdCAtPiAoJ2ExLCAnYiwgJ2MsICdkMSwgJ2UyLCAnZjIpIGZtdFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBSZWFkZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlciAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3ggLT4gJ2EsICdiLCAnYywgKCdiIC0+ICd4KSAtPiAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX2NoYXJfc2V0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlWy4uLl0gKilcbiAgICAgIHBhZF9vcHRpb24gKiBjaGFyX3NldCAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKHN0cmluZyAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX2dldF9jb3VudGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW25sTkxdICopXG4gICAgICBjb3VudGVyICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoaW50IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fbmV4dF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUwYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSWdub3JlZF9wYXJhbSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8gKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ3ksICd4KSBpZ25vcmVkICogKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogQ3VzdG9tIHByaW50aW5nIGZvcm1hdCAoUFIjNjQ1MiwgR1BSIzE0MClcblxuICAgICBXZSBpbmNsdWRlIGEgdHlwZSBDdXN0b20gb2YgXCJjdXN0b20gY29udmVydGVyc1wiLCB3aGVyZSBhblxuICAgICBhcmJpdHJhcnkgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gY29udmVydCBvbmUgb3IgbW9yZVxuICAgICBhcmd1bWVudHMuIFRoZXJlIGlzIG5vIHN5bnRheCBmb3IgY3VzdG9tIGNvbnZlcnRlcnMsIGl0IGlzIG9ubHlcbiAgICAgaW50ZW5kZWQgZm9yIGN1c3RvbSBwcm9jZXNzb3JzIHRoYXQgd2lzaCB0byByZWx5IG9uIHRoZVxuICAgICBzdGRsaWItZGVmaW5lZCBmb3JtYXQgR0FEVHMuXG5cbiAgICAgRm9yIGluc3RhbmNlIGEgcHJlLXByb2Nlc3NvciBjb3VsZCBjaG9vc2UgdG8gaW50ZXJwcmV0IHN0cmluZ3NcbiAgICAgcHJlZml4ZWQgd2l0aCBbXCIhXCJdIGFzIGZvcm1hdCBzdHJpbmdzIHdoZXJlIFsle3sgLi4uIH19XSBpc1xuICAgICBhIHNwZWNpYWwgZm9ybSB0byBwYXNzIGEgdG9fc3RyaW5nIGZ1bmN0aW9uLCBzbyB0aGF0IG9uZSBjb3VsZFxuICAgICB3cml0ZTpcblxuICAgICB7W1xuICAgICAgIHR5cGUgdCA9IHsgeCA6IGludDsgeSA6IGludCB9XG5cbiAgICAgICBsZXQgc3RyaW5nX29mX3QgdCA9IFByaW50Zi5zcHJpbnRmIFwieyB4ID0gJWQ7IHkgPSAlZCB9XCIgdC54IHQueVxuXG4gICAgICAgUHJpbnRmLnByaW50ZiAhXCJ0ID0gJXt7c3RyaW5nX29mX3R9fVwiIHsgeCA9IDQyOyB5ID0gNDIgfVxuICAgICBdfVxuICAqKVxuICB8IEN1c3RvbSA6XG4gICAgICAoJ2EsICd4LCAneSkgY3VzdG9tX2FyaXR5ICogKHVuaXQgLT4gJ3gpICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKCd5LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIGVuZCBvZiBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uICopXG4gIHwgRW5kX29mX2Zvcm1hdCA6XG4gICAgICAgICgnZiwgJ2IsICdjLCAnZSwgJ2UsICdmKSBmbXRcblxuKCoqKilcblxuKCogVHlwZSBmb3IgaWdub3JlZCBwYXJhbWV0ZXJzIChzZWUgXCIlX1wiKS4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgaWdub3JlZCA9XG4gIHwgSWdub3JlZF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9jICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfY2FtbF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfQyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3MgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1MgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2QgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50MzIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfbGQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfbmF0aXZlaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfbmQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50NjQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfTGQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZmxvYXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfZiAqKVxuICAgICAgcGFkX29wdGlvbiAqIHByZWNfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9ib29sIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9CICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV97Li4uJX0gKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXyguLi4lKSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgaWdub3JlZFxuICB8IElnbm9yZWRfcmVhZGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfciAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICgnYiAtPiAneCkgLT4gJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfWy4uLl0gKilcbiAgICAgIHBhZF9vcHRpb24gKiBjaGFyX3NldCAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfW25sTkxdICopXG4gICAgICBjb3VudGVyIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8wYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcblxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgRm9ybWF0IG9mICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgKiBzdHJpbmdcblxubGV0IHJlYyBlcmFzZV9yZWwgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCBpIGogayBsIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYsXG4gICBnLCBoLCBpLCBqLCBrLCBsKSBmbXR0eV9yZWwgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5XG49IGZ1bmN0aW9uXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgQ2hhcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBTdHJpbmdfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludF90eSByZXN0IC0+XG4gICAgSW50X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnQzMl90eSByZXN0IC0+XG4gICAgSW50MzJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludDY0X3R5IHJlc3QgLT5cbiAgICBJbnQ2NF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT5cbiAgICBOYXRpdmVpbnRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBGbG9hdF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgQm9vbF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGVyYXNlX3JlbCByZXN0KVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCBfdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTEsIGVyYXNlX3JlbCByZXN0KVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBBbHBoYV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIFRoZXRhX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIEFueV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBSZWFkZXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCB0eXBlIGNvbmNhdGVuYXRpb24gKilcblxuKCogQ29uY2F0ZW5hdGUgdHdvIGZvcm1hdCB0eXBlcy4gKilcbigqIFVzZWQgYnk6XG4gICAqIHJlYWRlcl9uYl91bmlmaWVyX29mX2ZtdHR5IHRvIGNvdW50IHJlYWRlcnMgaW4gYW4gZm10dHksXG4gICAqIFNjYW5mLnRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgdG8gZXh0cmFjdCByZWFkZXJzIGluc2lkZSAlKC4uLiUpLFxuICAgKiBDYW1saW50ZXJuYWxGb3JtYXQuZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgdG8gZXh0cmFjdCBmb3JtYXQgdHlwZS4gKilcblxuKCpcbmxldCByZWMgY29uY2F0X2ZtdHR5IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggLlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgIChmLCBiLCBjLCBlLCBnLCBoKSBmbXR0eSAtPlxuICAgIChhLCBiLCBjLCBkLCBnLCBoKSBmbXR0eSA9XG4qKVxubGV0IHJlYyBjb25jYXRfZm10dHkgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgICAgICBnMSBqMSBnMiBqMlxuICAuXG4gICAgKGcxLCBiMSwgYzEsIGoxLCBkMSwgYTEsXG4gICAgIGcyLCBiMiwgYzIsIGoyLCBkMiwgYTIpIGZtdHR5X3JlbCAtPlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWwgLT5cbiAgICAoZzEsIGIxLCBjMSwgajEsIGUxLCBmMSxcbiAgICAgZzIsIGIyLCBjMiwgajIsIGUyLCBmMikgZm10dHlfcmVsID1cbmZ1biBmbXR0eTEgZm10dHkyIC0+IG1hdGNoIGZtdHR5MSB3aXRoXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgQ2hhcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgU3RyaW5nX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBJbnRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnQzMl90eSByZXN0IC0+XG4gICAgSW50MzJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIE5hdGl2ZWludF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludDY0X3R5IHJlc3QgLT5cbiAgICBJbnQ2NF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBGbG9hdF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIEJvb2xfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgQWxwaGFfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgVGhldGFfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIEFueV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgUmVhZGVyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBFbmRfb2ZfZm10dHkgLT4gZm10dHkyXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgY29uY2F0ZW5hdGlvbiAqKVxuXG4oKiBDb25jYXRlbmF0ZSB0d28gZm9ybWF0cy4gKilcbmxldCByZWMgY29uY2F0X2ZtdCA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIC5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKGYsIGIsIGMsIGUsIGcsIGgpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBnLCBoKSBmbXQgPVxuZnVuIGZtdDEgZm10MiAtPiBtYXRjaCBmbXQxIHdpdGhcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBTdHJpbmcgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBDYW1sX3N0cmluZyAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludDMyIChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgQ2hhciAocmVzdCkgLT5cbiAgICBDaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIENhbWxfY2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIEJvb2wgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQWxwaGEgcmVzdCAtPlxuICAgIEFscGhhIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBUaGV0YSByZXN0IC0+XG4gICAgVGhldGEgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEN1c3RvbSAoYXJpdHksIGYsIHJlc3QpIC0+XG4gICAgQ3VzdG9tIChhcml0eSwgZiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgUmVhZGVyIHJlc3QgLT5cbiAgICBSZWFkZXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBGbHVzaCAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIFN0cmluZ19saXRlcmFsIChzdHIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgIENoYXJfbGl0ZXJhbCAgIChjaHIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRm9ybWF0X2FyZyAocGFkLCBmbXR0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnICAgKHBhZCwgZm10dHksIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZvcm1hdF9zdWJzdCAocGFkLCBmbXR0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3QgKHBhZCwgZm10dHksIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgcmVzdCkgLT5cbiAgICBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgIFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFNjYW5fbmV4dF9jaGFyIChyZXN0KSAtPlxuICAgIFNjYW5fbmV4dF9jaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgSWdub3JlZF9wYXJhbSAoaWduLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSAtPlxuICAgIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgLT5cbiAgICBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgZm10MlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgR2FicmllbCBTY2hlcmVyLCBwcm9qZXQgUGFydG91dCwgSU5SSUEgUGFyaXMtU2FjbGF5ICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBDYW1saW50ZXJuYWxBdG9taWMgaXMgYSBkZXBlbmRlbmN5IG9mIFN0ZGxpYiwgc28gaXQgaXMgY29tcGlsZWQgd2l0aFxuICAgLW5vcGVydmFzaXZlcy4gKilcbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxuXG4oKiBXZSBhcmUgbm90IHJldXNpbmcgKCdhIHJlZikgZGlyZWN0bHkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhc29uXG4gICBhYm91dCBhdG9taWNpdHkgaWYgd2Ugd2lzaCB0bzogZXZlbiBpbiBhIHNlcXVlbnRpYWwgaW1wbGVtZW50YXRpb24sXG4gICBzaWduYWxzIGFuZCBvdGhlciBhc3luY2hyb25vdXMgY2FsbGJhY2tzIG1pZ2h0IGJyZWFrIGF0b21pY2l0eS4gKilcbnR5cGUgJ2EgdCA9IHttdXRhYmxlIHY6ICdhfVxuXG5sZXQgbWFrZSB2ID0ge3Z9XG5sZXQgZ2V0IHIgPSByLnZcbmxldCBzZXQgciB2ID0gci52IDwtIHZcblxuKCogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHNldCB0byBuZXZlciBiZSBpbmxpbmVkOiBGbGFtYmRhIGlzXG4gICBhbGxvd2VkIHRvIG1vdmUgc3Vycm91bmRpbmcgY29kZSBpbnNpZGUgdGhlIGNyaXRpY2FsIHNlY3Rpb24sXG4gICBpbmNsdWRpbmcgYWxsb2NhdGlvbnMuICopXG5cbmxldFtAaW5saW5lIG5ldmVyXSBleGNoYW5nZSByIHYgPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICByLnYgPC0gdjtcbiAgKCogRU5EIEFUT01JQyAqKVxuICBjdXJcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGNvbXBhcmVfYW5kX3NldCByIHNlZW4gdiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIGlmIGN1ciA9PSBzZWVuIHRoZW4gKFxuICAgIHIudiA8LSB2O1xuICAgICgqIEVORCBBVE9NSUMgKilcbiAgICB0cnVlXG4gICkgZWxzZVxuICAgIGZhbHNlXG5cbmxldFtAaW5saW5lIG5ldmVyXSBmZXRjaF9hbmRfYWRkIHIgbiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIHIudiA8LSAoY3VyICsgbik7XG4gICgqIEVORCBBVE9NSUMgKilcbiAgY3VyXG5cbmxldCBpbmNyIHIgPSBpZ25vcmUgKGZldGNoX2FuZF9hZGQgciAxKVxubGV0IGRlY3IgciA9IGlnbm9yZSAoZmV0Y2hfYW5kX2FkZCByICgtMSkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEV4Y2VwdGlvbnMgKilcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gJ2EgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgKCkgPVxuICAoKiBmb3IgcnVudGltZS9mYWlsX25hdC5jICopXG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUGVydmFzaXZlcy5hcnJheV9ib3VuZF9lcnJvclwiXG4gICAgKEludmFsaWRfYXJndW1lbnQgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpXG5cbmV4dGVybmFsIHJhaXNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2VcIlxuZXh0ZXJuYWwgcmFpc2Vfbm90cmFjZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlX25vdHJhY2VcIlxuXG5sZXQgZmFpbHdpdGggcyA9IHJhaXNlKEZhaWx1cmUgcylcbmxldCBpbnZhbGlkX2FyZyBzID0gcmFpc2UoSW52YWxpZF9hcmd1bWVudCBzKVxuXG5leGNlcHRpb24gRXhpdFxuZXhjZXB0aW9uIE1hdGNoX2ZhaWx1cmUgPSBNYXRjaF9mYWlsdXJlXG5leGNlcHRpb24gQXNzZXJ0X2ZhaWx1cmUgPSBBc3NlcnRfZmFpbHVyZVxuZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgPSBJbnZhbGlkX2FyZ3VtZW50XG5leGNlcHRpb24gRmFpbHVyZSA9IEZhaWx1cmVcbmV4Y2VwdGlvbiBOb3RfZm91bmQgPSBOb3RfZm91bmRcbmV4Y2VwdGlvbiBPdXRfb2ZfbWVtb3J5ID0gT3V0X29mX21lbW9yeVxuZXhjZXB0aW9uIFN0YWNrX292ZXJmbG93ID0gU3RhY2tfb3ZlcmZsb3dcbmV4Y2VwdGlvbiBTeXNfZXJyb3IgPSBTeXNfZXJyb3JcbmV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSA9IEVuZF9vZl9maWxlXG5leGNlcHRpb24gRGl2aXNpb25fYnlfemVybyA9IERpdmlzaW9uX2J5X3plcm9cbmV4Y2VwdGlvbiBTeXNfYmxvY2tlZF9pbyA9IFN5c19ibG9ja2VkX2lvXG5leGNlcHRpb24gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgPSBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZVxuXG4oKiBDb21wb3NpdGlvbiBvcGVyYXRvcnMgKilcblxuZXh0ZXJuYWwgKCB8PiApIDogJ2EgLT4gKCdhIC0+ICdiKSAtPiAnYiA9IFwiJXJldmFwcGx5XCJcbmV4dGVybmFsICggQEAgKSA6ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IgPSBcIiVhcHBseVwiXG5cbigqIERlYnVnZ2luZyAqKVxuXG5leHRlcm5hbCBfX0xPQ19fIDogc3RyaW5nID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0ZJTEVfXyA6IHN0cmluZyA9IFwiJWxvY19GSUxFXCJcbmV4dGVybmFsIF9fTElORV9fIDogaW50ID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19NT0RVTEVfXyA6IHN0cmluZyA9IFwiJWxvY19NT0RVTEVcIlxuZXh0ZXJuYWwgX19QT1NfXyA6IHN0cmluZyAqIGludCAqIGludCAqIGludCA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgX19GVU5DVElPTl9fIDogc3RyaW5nID0gXCIlbG9jX0ZVTkNUSU9OXCJcblxuZXh0ZXJuYWwgX19MT0NfT0ZfXyA6ICdhIC0+IHN0cmluZyAqICdhID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0xJTkVfT0ZfXyA6ICdhIC0+IGludCAqICdhID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19QT1NfT0ZfXyA6ICdhIC0+IChzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQpICogJ2EgPSBcIiVsb2NfUE9TXCJcblxuKCogQ29tcGFyaXNvbnMgKilcblxuZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcbmV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcbmV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcbmV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5leHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbmxldCBtaW4geCB5ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggIT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcVwiXG5cbigqIEJvb2xlYW4gb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBub3QgOiBib29sIC0+IGJvb2wgPSBcIiVib29sbm90XCJcbmV4dGVybmFsICggJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggJiYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoIG9yICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5cbigqIEludGVnZXIgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCAoIH4tICkgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsICggfisgKSA6IGludCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgKCAtICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCAoICogKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsICggLyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgKCBtb2QgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcblxubGV0IGFicyB4ID0gaWYgeCA+PSAwIHRoZW4geCBlbHNlIC14XG5cbmV4dGVybmFsICggbGFuZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgKCBsb3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgKCBseG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5cbmxldCBsbm90IHggPSB4IGx4b3IgKC0xKVxuXG5leHRlcm5hbCAoIGxzbCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgKCBsc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmV4dGVybmFsICggYXNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5cbmxldCBtYXhfaW50ID0gKC0xKSBsc3IgMVxubGV0IG1pbl9pbnQgPSBtYXhfaW50ICsgMVxuXG4oKiBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsICggfi0uICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsICggfisuICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsICggKy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgKCAtLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCAoICouICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsICggLy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgKCAqKiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc2hfZmxvYXRcIiBcImNhbWxfYWNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5oX2Zsb2F0XCIgXCJjYW1sX2FzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbmhfZmxvYXRcIiBcImNhbWxfYXRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5leHRlcm5hbCBjb3B5c2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIGZsb2F0X29mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdHJ1bmNhdGUgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGludF9vZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmxldCBpbmZpbml0eSA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9GMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBuZWdfaW5maW5pdHkgPVxuICBmbG9hdF9vZl9iaXRzIDB4RkZfRjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgbmFuID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0YwXzAwXzAwXzAwXzAwXzAwXzAxTFxubGV0IG1heF9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9FRl9GRl9GRl9GRl9GRl9GRl9GRkxcbmxldCBtaW5fZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4MDBfMTBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgZXBzaWxvbl9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHgzQ19CMF8wMF8wMF8wMF8wMF8wMF8wMExcblxudHlwZSBmcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5cbigqIFN0cmluZyBhbmQgYnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlcyBTdHJpbmcgYW5kIEJ5dGVzICopXG5cbmV4dGVybmFsIHN0cmluZ19sZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBieXRlc19sZW5ndGggOiBieXRlcyAtPiBpbnQgPSBcIiVieXRlc19sZW5ndGhcIlxuZXh0ZXJuYWwgYnl0ZXNfY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9ieXRlc1wiXG5leHRlcm5hbCBzdHJpbmdfYmxpdCA6IHN0cmluZyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X3N0cmluZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBieXRlc19ibGl0IDogYnl0ZXMgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBieXRlc191bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcblxubGV0ICggXiApIHMxIHMyID1cbiAgbGV0IGwxID0gc3RyaW5nX2xlbmd0aCBzMSBhbmQgbDIgPSBzdHJpbmdfbGVuZ3RoIHMyIGluXG4gIGxldCBzID0gYnl0ZXNfY3JlYXRlIChsMSArIGwyKSBpblxuICBzdHJpbmdfYmxpdCBzMSAwIHMgMCBsMTtcbiAgc3RyaW5nX2JsaXQgczIgMCBzIGwxIGwyO1xuICBieXRlc191bnNhZmVfdG9fc3RyaW5nIHNcblxuKCogQ2hhcmFjdGVyIG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGUgQ2hhciAqKVxuXG5leHRlcm5hbCBpbnRfb2ZfY2hhciA6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdW5zYWZlX2NoYXJfb2ZfaW50IDogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5sZXQgY2hhcl9vZl9pbnQgbiA9XG4gIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyBcImNoYXJfb2ZfaW50XCIgZWxzZSB1bnNhZmVfY2hhcl9vZl9pbnQgblxuXG4oKiBVbml0IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5cbigqIFBhaXIgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBmc3QgOiAnYSAqICdiIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsIHNuZCA6ICdhICogJ2IgLT4gJ2IgPSBcIiVmaWVsZDFcIlxuXG4oKiBSZWZlcmVuY2VzICopXG5cbnR5cGUgJ2EgcmVmID0geyBtdXRhYmxlIGNvbnRlbnRzIDogJ2EgfVxuZXh0ZXJuYWwgcmVmIDogJ2EgLT4gJ2EgcmVmID0gXCIlbWFrZW11dGFibGVcIlxuZXh0ZXJuYWwgKCAhICkgOiAnYSByZWYgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgKCA6PSApIDogJ2EgcmVmIC0+ICdhIC0+IHVuaXQgPSBcIiVzZXRmaWVsZDBcIlxuZXh0ZXJuYWwgaW5jciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWluY3JcIlxuZXh0ZXJuYWwgZGVjciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWRlY3JcIlxuXG4oKiBSZXN1bHQgdHlwZSAqKVxuXG50eXBlICgnYSwnYikgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnYlxuXG4oKiBTdHJpbmcgY29udmVyc2lvbiBmdW5jdGlvbnMgKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuZXh0ZXJuYWwgZm9ybWF0X2Zsb2F0IDogc3RyaW5nIC0+IGZsb2F0IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfZmxvYXRcIlxuXG5sZXQgc3RyaW5nX29mX2Jvb2wgYiA9XG4gIGlmIGIgdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIlxubGV0IGJvb2xfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgfCBcInRydWVcIiAtPiB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IGZhbHNlXG4gIHwgXyAtPiBpbnZhbGlkX2FyZyBcImJvb2xfb2Zfc3RyaW5nXCJcblxubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCA9IGZ1bmN0aW9uXG4gIHwgXCJ0cnVlXCIgLT4gU29tZSB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IFNvbWUgZmFsc2VcbiAgfCBfIC0+IE5vbmVcblxubGV0IHN0cmluZ19vZl9pbnQgbiA9XG4gIGZvcm1hdF9pbnQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5cbmxldCBpbnRfb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogcHJvdmlkZSB0aGlzIGRpcmVjdGx5IGFzIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlLiAqKVxuICB0cnkgU29tZSAoaW50X29mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmV4dGVybmFsIHN0cmluZ19nZXQgOiBzdHJpbmcgLT4gaW50IC0+IGNoYXIgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuXG5sZXQgdmFsaWRfZmxvYXRfbGV4ZW0gcyA9XG4gIGxldCBsID0gc3RyaW5nX2xlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID49IGwgdGhlbiBzIF4gXCIuXCIgZWxzZVxuICAgIG1hdGNoIHN0cmluZ19nZXQgcyBpIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgfCAnLScgLT4gbG9vcCAoaSArIDEpXG4gICAgfCBfIC0+IHNcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBzdHJpbmdfb2ZfZmxvYXQgZiA9IHZhbGlkX2Zsb2F0X2xleGVtIChmb3JtYXRfZmxvYXQgXCIlLjEyZ1wiIGYpXG5cbmV4dGVybmFsIGZsb2F0X29mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxuXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogcHJvdmlkZSB0aGlzIGRpcmVjdGx5IGFzIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlLiAqKVxuICB0cnkgU29tZSAoZmxvYXRfb2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuKCogTGlzdCBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlIExpc3QgKilcblxubGV0IHJlYyAoIEAgKSBsMSBsMiA9XG4gIG1hdGNoIGwxIHdpdGhcbiAgICBbXSAtPiBsMlxuICB8IGhkIDo6IHRsIC0+IGhkIDo6ICh0bCBAIGwyKVxuXG4oKiBJL08gb3BlcmF0aW9ucyAqKVxuXG50eXBlIGluX2NoYW5uZWxcbnR5cGUgb3V0X2NoYW5uZWxcblxuZXh0ZXJuYWwgb3Blbl9kZXNjcmlwdG9yX291dCA6IGludCAtPiBvdXRfY2hhbm5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0XCJcbmV4dGVybmFsIG9wZW5fZGVzY3JpcHRvcl9pbiA6IGludCAtPiBpbl9jaGFubmVsID0gXCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pblwiXG5cbmxldCBzdGRpbiA9IG9wZW5fZGVzY3JpcHRvcl9pbiAwXG5sZXQgc3Rkb3V0ID0gb3Blbl9kZXNjcmlwdG9yX291dCAxXG5sZXQgc3RkZXJyID0gb3Blbl9kZXNjcmlwdG9yX291dCAyXG5cbigqIEdlbmVyYWwgb3V0cHV0IGZ1bmN0aW9ucyAqKVxuXG50eXBlIG9wZW5fZmxhZyA9XG4gICAgT3Blbl9yZG9ubHkgfCBPcGVuX3dyb25seSB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdCB8IE9wZW5fdHJ1bmMgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeSB8IE9wZW5fdGV4dCB8IE9wZW5fbm9uYmxvY2tcblxuZXh0ZXJuYWwgb3Blbl9kZXNjIDogc3RyaW5nIC0+IG9wZW5fZmxhZyBsaXN0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfc3lzX29wZW5cIlxuXG5leHRlcm5hbCBzZXRfb3V0X2NoYW5uZWxfbmFtZTogb3V0X2NoYW5uZWwgLT4gc3RyaW5nIC0+IHVuaXQgPVxuICBcImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVwiXG5cbmxldCBvcGVuX291dF9nZW4gbW9kZSBwZXJtIG5hbWUgPVxuICBsZXQgYyA9IG9wZW5fZGVzY3JpcHRvcl9vdXQob3Blbl9kZXNjIG5hbWUgbW9kZSBwZXJtKSBpblxuICBzZXRfb3V0X2NoYW5uZWxfbmFtZSBjIG5hbWU7XG4gIGNcblxubGV0IG9wZW5fb3V0IG5hbWUgPVxuICBvcGVuX291dF9nZW4gW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX3RydW5jOyBPcGVuX3RleHRdIDBvNjY2IG5hbWVcblxubGV0IG9wZW5fb3V0X2JpbiBuYW1lID1cbiAgb3Blbl9vdXRfZ2VuIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl90cnVuYzsgT3Blbl9iaW5hcnldIDBvNjY2IG5hbWVcblxuZXh0ZXJuYWwgZmx1c2ggOiBvdXRfY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2ZsdXNoXCJcblxuZXh0ZXJuYWwgb3V0X2NoYW5uZWxzX2xpc3QgOiB1bml0IC0+IG91dF9jaGFubmVsIGxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dF9jaGFubmVsc19saXN0XCJcblxubGV0IGZsdXNoX2FsbCAoKSA9XG4gIGxldCByZWMgaXRlciA9IGZ1bmN0aW9uXG4gICAgICBbXSAtPiAoKVxuICAgIHwgYTo6bCAtPlxuICAgICAgICBiZWdpbiB0cnlcbiAgICAgICAgICAgIGZsdXNoIGFcbiAgICAgICAgd2l0aCBTeXNfZXJyb3IgXyAtPlxuICAgICAgICAgICgpICgqIGlnbm9yZSBjaGFubmVscyBjbG9zZWQgZHVyaW5nIGEgcHJlY2VkaW5nIGZsdXNoLiAqKVxuICAgICAgICBlbmQ7XG4gICAgICAgIGl0ZXIgbFxuICBpbiBpdGVyIChvdXRfY2hhbm5lbHNfbGlzdCAoKSlcblxuZXh0ZXJuYWwgdW5zYWZlX291dHB1dCA6IG91dF9jaGFubmVsIC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRwdXRfYnl0ZXNcIlxuZXh0ZXJuYWwgdW5zYWZlX291dHB1dF9zdHJpbmcgOiBvdXRfY2hhbm5lbCAtPiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRwdXRcIlxuXG5leHRlcm5hbCBvdXRwdXRfY2hhciA6IG91dF9jaGFubmVsIC0+IGNoYXIgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfY2hhclwiXG5cbmxldCBvdXRwdXRfYnl0ZXMgb2MgcyA9XG4gIHVuc2FmZV9vdXRwdXQgb2MgcyAwIChieXRlc19sZW5ndGggcylcblxubGV0IG91dHB1dF9zdHJpbmcgb2MgcyA9XG4gIHVuc2FmZV9vdXRwdXRfc3RyaW5nIG9jIHMgMCAoc3RyaW5nX2xlbmd0aCBzKVxuXG5sZXQgb3V0cHV0IG9jIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwib3V0cHV0XCJcbiAgZWxzZSB1bnNhZmVfb3V0cHV0IG9jIHMgb2ZzIGxlblxuXG5sZXQgb3V0cHV0X3N1YnN0cmluZyBvYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gc3RyaW5nX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJvdXRwdXRfc3Vic3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfb3V0cHV0X3N0cmluZyBvYyBzIG9mcyBsZW5cblxuZXh0ZXJuYWwgb3V0cHV0X2J5dGUgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfY2hhclwiXG5leHRlcm5hbCBvdXRwdXRfYmluYXJ5X2ludCA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9pbnRcIlxuXG5leHRlcm5hbCBtYXJzaGFsX3RvX2NoYW5uZWwgOiBvdXRfY2hhbm5lbCAtPiAnYSAtPiB1bml0IGxpc3QgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVcIlxubGV0IG91dHB1dF92YWx1ZSBjaGFuIHYgPSBtYXJzaGFsX3RvX2NoYW5uZWwgY2hhbiB2IFtdXG5cbmV4dGVybmFsIHNlZWtfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19vdXRcIlxuZXh0ZXJuYWwgcG9zX291dCA6IG91dF9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9wb3Nfb3V0XCJcbmV4dGVybmFsIG91dF9jaGFubmVsX2xlbmd0aCA6IG91dF9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVcIlxuZXh0ZXJuYWwgY2xvc2Vfb3V0X2NoYW5uZWwgOiBvdXRfY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2Nsb3NlX2NoYW5uZWxcIlxubGV0IGNsb3NlX291dCBvYyA9IGZsdXNoIG9jOyBjbG9zZV9vdXRfY2hhbm5lbCBvY1xubGV0IGNsb3NlX291dF9ub2VyciBvYyA9XG4gICh0cnkgZmx1c2ggb2Mgd2l0aCBfIC0+ICgpKTtcbiAgKHRyeSBjbG9zZV9vdXRfY2hhbm5lbCBvYyB3aXRoIF8gLT4gKCkpXG5leHRlcm5hbCBzZXRfYmluYXJ5X21vZGVfb3V0IDogb3V0X2NoYW5uZWwgLT4gYm9vbCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZVwiXG5cbigqIEdlbmVyYWwgaW5wdXQgZnVuY3Rpb25zICopXG5cbmV4dGVybmFsIHNldF9pbl9jaGFubmVsX25hbWU6IGluX2NoYW5uZWwgLT4gc3RyaW5nIC0+IHVuaXQgPVxuICBcImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVwiXG5cbmxldCBvcGVuX2luX2dlbiBtb2RlIHBlcm0gbmFtZSA9XG4gIGxldCBjID0gb3Blbl9kZXNjcmlwdG9yX2luKG9wZW5fZGVzYyBuYW1lIG1vZGUgcGVybSkgaW5cbiAgc2V0X2luX2NoYW5uZWxfbmFtZSBjIG5hbWU7XG4gIGNcblxubGV0IG9wZW5faW4gbmFtZSA9XG4gIG9wZW5faW5fZ2VuIFtPcGVuX3Jkb25seTsgT3Blbl90ZXh0XSAwIG5hbWVcblxubGV0IG9wZW5faW5fYmluIG5hbWUgPVxuICBvcGVuX2luX2dlbiBbT3Blbl9yZG9ubHk7IE9wZW5fYmluYXJ5XSAwIG5hbWVcblxuZXh0ZXJuYWwgaW5wdXRfY2hhciA6IGluX2NoYW5uZWwgLT4gY2hhciA9IFwiY2FtbF9tbF9pbnB1dF9jaGFyXCJcblxuZXh0ZXJuYWwgdW5zYWZlX2lucHV0IDogaW5fY2hhbm5lbCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX2lucHV0XCJcblxubGV0IGlucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiaW5wdXRcIlxuICBlbHNlIHVuc2FmZV9pbnB1dCBpYyBzIG9mcyBsZW5cblxubGV0IHJlYyB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIGxlbiA8PSAwIHRoZW4gKCkgZWxzZSBiZWdpblxuICAgIGxldCByID0gdW5zYWZlX2lucHV0IGljIHMgb2ZzIGxlbiBpblxuICAgIGlmIHIgPSAwXG4gICAgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZVxuICAgIGVsc2UgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIChvZnMgKyByKSAobGVuIC0gcilcbiAgZW5kXG5cbmxldCByZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJyZWFsbHlfaW5wdXRcIlxuICBlbHNlIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuXG5cbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiA9XG4gIGxldCBzID0gYnl0ZXNfY3JlYXRlIGxlbiBpblxuICByZWFsbHlfaW5wdXQgaWMgcyAwIGxlbjtcbiAgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyBzXG5cbmV4dGVybmFsIGlucHV0X3NjYW5fbGluZSA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X3NjYW5fbGluZVwiXG5cbmxldCBpbnB1dF9saW5lIGNoYW4gPVxuICBsZXQgcmVjIGJ1aWxkX3Jlc3VsdCBidWYgcG9zID0gZnVuY3Rpb25cbiAgICBbXSAtPiBidWZcbiAgfCBoZCA6OiB0bCAtPlxuICAgICAgbGV0IGxlbiA9IGJ5dGVzX2xlbmd0aCBoZCBpblxuICAgICAgYnl0ZXNfYmxpdCBoZCAwIGJ1ZiAocG9zIC0gbGVuKSBsZW47XG4gICAgICBidWlsZF9yZXN1bHQgYnVmIChwb3MgLSBsZW4pIHRsIGluXG4gIGxldCByZWMgc2NhbiBhY2N1IGxlbiA9XG4gICAgbGV0IG4gPSBpbnB1dF9zY2FuX2xpbmUgY2hhbiBpblxuICAgIGlmIG4gPSAwIHRoZW4gYmVnaW4gICAgICAgICAgICAgICAgICAgKCogbiA9IDA6IHdlIGFyZSBhdCBFT0YgKilcbiAgICAgIG1hdGNoIGFjY3Ugd2l0aFxuICAgICAgICBbXSAtPiByYWlzZSBFbmRfb2ZfZmlsZVxuICAgICAgfCBfICAtPiBidWlsZF9yZXN1bHQgKGJ5dGVzX2NyZWF0ZSBsZW4pIGxlbiBhY2N1XG4gICAgZW5kIGVsc2UgaWYgbiA+IDAgdGhlbiBiZWdpbiAgICAgICAgICAoKiBuID4gMDogbmV3bGluZSBmb3VuZCBpbiBidWZmZXIgKilcbiAgICAgIGxldCByZXMgPSBieXRlc19jcmVhdGUgKG4gLSAxKSBpblxuICAgICAgaWdub3JlICh1bnNhZmVfaW5wdXQgY2hhbiByZXMgMCAobiAtIDEpKTtcbiAgICAgIGlnbm9yZSAoaW5wdXRfY2hhciBjaGFuKTsgICAgICAgICAgICgqIHNraXAgdGhlIG5ld2xpbmUgKilcbiAgICAgIG1hdGNoIGFjY3Ugd2l0aFxuICAgICAgICBbXSAtPiByZXNcbiAgICAgIHwgIF8gLT4gbGV0IGxlbiA9IGxlbiArIG4gLSAxIGluXG4gICAgICAgICAgICAgIGJ1aWxkX3Jlc3VsdCAoYnl0ZXNfY3JlYXRlIGxlbikgbGVuIChyZXMgOjogYWNjdSlcbiAgICBlbmQgZWxzZSBiZWdpbiAgICAgICAgICAgICAgICAgICAgICAgICgqIG4gPCAwOiBuZXdsaW5lIG5vdCBmb3VuZCAqKVxuICAgICAgbGV0IGJlZyA9IGJ5dGVzX2NyZWF0ZSAoLW4pIGluXG4gICAgICBpZ25vcmUodW5zYWZlX2lucHV0IGNoYW4gYmVnIDAgKC1uKSk7XG4gICAgICBzY2FuIChiZWcgOjogYWNjdSkgKGxlbiAtIG4pXG4gICAgZW5kXG4gIGluIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgKHNjYW4gW10gMClcblxuZXh0ZXJuYWwgaW5wdXRfYnl0ZSA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X2NoYXJcIlxuZXh0ZXJuYWwgaW5wdXRfYmluYXJ5X2ludCA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X2ludFwiXG5leHRlcm5hbCBpbnB1dF92YWx1ZSA6IGluX2NoYW5uZWwgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVcIlxuZXh0ZXJuYWwgc2Vla19pbiA6IGluX2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19pblwiXG5leHRlcm5hbCBwb3NfaW4gOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9wb3NfaW5cIlxuZXh0ZXJuYWwgaW5fY2hhbm5lbF9sZW5ndGggOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVcIlxuZXh0ZXJuYWwgY2xvc2VfaW4gOiBpbl9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfY2xvc2VfY2hhbm5lbFwiXG5sZXQgY2xvc2VfaW5fbm9lcnIgaWMgPSAodHJ5IGNsb3NlX2luIGljIHdpdGggXyAtPiAoKSlcbmV4dGVybmFsIHNldF9iaW5hcnlfbW9kZV9pbiA6IGluX2NoYW5uZWwgLT4gYm9vbCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXCJcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBvdXRwdXQgKilcblxubGV0IHByaW50X2NoYXIgYyA9IG91dHB1dF9jaGFyIHN0ZG91dCBjXG5sZXQgcHJpbnRfc3RyaW5nIHMgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCBzXG5sZXQgcHJpbnRfYnl0ZXMgcyA9IG91dHB1dF9ieXRlcyBzdGRvdXQgc1xubGV0IHByaW50X2ludCBpID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgKHN0cmluZ19vZl9pbnQgaSlcbmxldCBwcmludF9mbG9hdCBmID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgKHN0cmluZ19vZl9mbG9hdCBmKVxubGV0IHByaW50X2VuZGxpbmUgcyA9XG4gIG91dHB1dF9zdHJpbmcgc3Rkb3V0IHM7IG91dHB1dF9jaGFyIHN0ZG91dCAnXFxuJzsgZmx1c2ggc3Rkb3V0XG5sZXQgcHJpbnRfbmV3bGluZSAoKSA9IG91dHB1dF9jaGFyIHN0ZG91dCAnXFxuJzsgZmx1c2ggc3Rkb3V0XG5cbigqIE91dHB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgZXJyb3IgKilcblxubGV0IHByZXJyX2NoYXIgYyA9IG91dHB1dF9jaGFyIHN0ZGVyciBjXG5sZXQgcHJlcnJfc3RyaW5nIHMgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciBzXG5sZXQgcHJlcnJfYnl0ZXMgcyA9IG91dHB1dF9ieXRlcyBzdGRlcnIgc1xubGV0IHByZXJyX2ludCBpID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgKHN0cmluZ19vZl9pbnQgaSlcbmxldCBwcmVycl9mbG9hdCBmID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgKHN0cmluZ19vZl9mbG9hdCBmKVxubGV0IHByZXJyX2VuZGxpbmUgcyA9XG4gIG91dHB1dF9zdHJpbmcgc3RkZXJyIHM7IG91dHB1dF9jaGFyIHN0ZGVyciAnXFxuJzsgZmx1c2ggc3RkZXJyXG5sZXQgcHJlcnJfbmV3bGluZSAoKSA9IG91dHB1dF9jaGFyIHN0ZGVyciAnXFxuJzsgZmx1c2ggc3RkZXJyXG5cbigqIElucHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBpbnB1dCAqKVxuXG5sZXQgcmVhZF9saW5lICgpID0gZmx1c2ggc3Rkb3V0OyBpbnB1dF9saW5lIHN0ZGluXG5sZXQgcmVhZF9pbnQgKCkgPSBpbnRfb2Zfc3RyaW5nKHJlYWRfbGluZSgpKVxubGV0IHJlYWRfaW50X29wdCAoKSA9IGludF9vZl9zdHJpbmdfb3B0KHJlYWRfbGluZSgpKVxubGV0IHJlYWRfZmxvYXQgKCkgPSBmbG9hdF9vZl9zdHJpbmcocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9mbG9hdF9vcHQgKCkgPSBmbG9hdF9vZl9zdHJpbmdfb3B0KHJlYWRfbGluZSgpKVxuXG4oKiBPcGVyYXRpb25zIG9uIGxhcmdlIGZpbGVzICopXG5cbm1vZHVsZSBMYXJnZUZpbGUgPVxuICBzdHJ1Y3RcbiAgICBleHRlcm5hbCBzZWVrX291dCA6IG91dF9jaGFubmVsIC0+IGludDY0IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19vdXRfNjRcIlxuICAgIGV4dGVybmFsIHBvc19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9wb3Nfb3V0XzY0XCJcbiAgICBleHRlcm5hbCBvdXRfY2hhbm5lbF9sZW5ndGggOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcIlxuICAgIGV4dGVybmFsIHNlZWtfaW4gOiBpbl9jaGFubmVsIC0+IGludDY0IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19pbl82NFwiXG4gICAgZXh0ZXJuYWwgcG9zX2luIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9wb3NfaW5fNjRcIlxuICAgIGV4dGVybmFsIGluX2NoYW5uZWxfbGVuZ3RoIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcIlxuICBlbmRcblxuKCogRm9ybWF0cyAqKVxuXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2XG4gICA9ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxuICAgPSBGb3JtYXQgb2YgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mbXRcbiAgICAgICAgICAgICAgICogc3RyaW5nXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBmb3JtYXQ0ID0gKCdhLCAnYiwgJ2MsICdjLCAnYywgJ2QpIGZvcm1hdDZcblxudHlwZSAoJ2EsICdiLCAnYykgZm9ybWF0ID0gKCdhLCAnYiwgJ2MsICdjKSBmb3JtYXQ0XG5cbmxldCBzdHJpbmdfb2ZfZm9ybWF0IChGb3JtYXQgKF9mbXQsIHN0cikpID0gc3RyXG5cbmV4dGVybmFsIGZvcm1hdF9vZl9zdHJpbmcgOlxuICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPSBcIiVpZGVudGl0eVwiXG5cbmxldCAoIF5eICkgKEZvcm1hdCAoZm10MSwgc3RyMSkpIChGb3JtYXQgKGZtdDIsIHN0cjIpKSA9XG4gIEZvcm1hdCAoQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmNvbmNhdF9mbXQgZm10MSBmbXQyLFxuICAgICAgICAgIHN0cjEgXiBcIiUsXCIgXiBzdHIyKVxuXG4oKiBNaXNjZWxsYW5lb3VzICopXG5cbmV4dGVybmFsIHN5c19leGl0IDogaW50IC0+ICdhID0gXCJjYW1sX3N5c19leGl0XCJcblxubGV0IGV4aXRfZnVuY3Rpb24gPSBDYW1saW50ZXJuYWxBdG9taWMubWFrZSBmbHVzaF9hbGxcblxubGV0IHJlYyBhdF9leGl0IGYgPVxuICBsZXQgbW9kdWxlIEF0b21pYyA9IENhbWxpbnRlcm5hbEF0b21pYyBpblxuICAoKiBNUFIjNzI1MywgTVBSIzc3OTY6IG1ha2Ugc3VyZSBcImZcIiBpcyBleGVjdXRlZCBvbmx5IG9uY2UgKilcbiAgbGV0IGZfeWV0X3RvX3J1biA9IEF0b21pYy5tYWtlIHRydWUgaW5cbiAgbGV0IG9sZF9leGl0ID0gQXRvbWljLmdldCBleGl0X2Z1bmN0aW9uIGluXG4gIGxldCBuZXdfZXhpdCAoKSA9XG4gICAgaWYgQXRvbWljLmNvbXBhcmVfYW5kX3NldCBmX3lldF90b19ydW4gdHJ1ZSBmYWxzZSB0aGVuIGYgKCkgO1xuICAgIG9sZF9leGl0ICgpXG4gIGluXG4gIGxldCBzdWNjZXNzID0gQXRvbWljLmNvbXBhcmVfYW5kX3NldCBleGl0X2Z1bmN0aW9uIG9sZF9leGl0IG5ld19leGl0IGluXG4gIGlmIG5vdCBzdWNjZXNzIHRoZW4gYXRfZXhpdCBmXG5cbmxldCBkb19hdF9leGl0ICgpID0gKENhbWxpbnRlcm5hbEF0b21pYy5nZXQgZXhpdF9mdW5jdGlvbikgKClcblxubGV0IGV4aXQgcmV0Y29kZSA9XG4gIGRvX2F0X2V4aXQgKCk7XG4gIHN5c19leGl0IHJldGNvZGVcblxubGV0IF8gPSByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlBlcnZhc2l2ZXMuZG9fYXRfZXhpdFwiIGRvX2F0X2V4aXRcblxuZXh0ZXJuYWwgbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWFqb3JcIlxuZXh0ZXJuYWwgbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCA6IHVuaXQgLT4gYm9vbFxuICA9IFwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZFwiXG5sZXQgKCkgPSBpZiBuYWtlZF9wb2ludGVyc19jaGVja2VkICgpIHRoZW4gYXRfZXhpdCBtYWpvclxuXG4oKk1PRFVMRV9BTElBU0VTKilcbm1vZHVsZSBBcmcgICAgICAgICAgPSBBcmdcbm1vZHVsZSBBcnJheSAgICAgICAgPSBBcnJheVxubW9kdWxlIEFycmF5TGFiZWxzICA9IEFycmF5TGFiZWxzXG5tb2R1bGUgQXRvbWljICAgICAgID0gQXRvbWljXG5tb2R1bGUgQmlnYXJyYXkgICAgID0gQmlnYXJyYXlcbm1vZHVsZSBCb29sICAgICAgICAgPSBCb29sXG5tb2R1bGUgQnVmZmVyICAgICAgID0gQnVmZmVyXG5tb2R1bGUgQnl0ZXMgICAgICAgID0gQnl0ZXNcbm1vZHVsZSBCeXRlc0xhYmVscyAgPSBCeXRlc0xhYmVsc1xubW9kdWxlIENhbGxiYWNrICAgICA9IENhbGxiYWNrXG5tb2R1bGUgQ2hhciAgICAgICAgID0gQ2hhclxubW9kdWxlIENvbXBsZXggICAgICA9IENvbXBsZXhcbm1vZHVsZSBEaWdlc3QgICAgICAgPSBEaWdlc3Rcbm1vZHVsZSBFaXRoZXIgICAgICAgPSBFaXRoZXJcbm1vZHVsZSBFcGhlbWVyb24gICAgPSBFcGhlbWVyb25cbm1vZHVsZSBGaWxlbmFtZSAgICAgPSBGaWxlbmFtZVxubW9kdWxlIEZsb2F0ICAgICAgICA9IEZsb2F0XG5tb2R1bGUgRm9ybWF0ICAgICAgID0gRm9ybWF0XG5tb2R1bGUgRnVuICAgICAgICAgID0gRnVuXG5tb2R1bGUgR2MgICAgICAgICAgID0gR2Ncbm1vZHVsZSBHZW5sZXggICAgICAgPSBHZW5sZXhcbm1vZHVsZSBIYXNodGJsICAgICAgPSBIYXNodGJsXG5tb2R1bGUgSW5fY2hhbm5lbCAgID0gSW5fY2hhbm5lbFxubW9kdWxlIEludCAgICAgICAgICA9IEludFxubW9kdWxlIEludDMyICAgICAgICA9IEludDMyXG5tb2R1bGUgSW50NjQgICAgICAgID0gSW50NjRcbm1vZHVsZSBMYXp5ICAgICAgICAgPSBMYXp5XG5tb2R1bGUgTGV4aW5nICAgICAgID0gTGV4aW5nXG5tb2R1bGUgTGlzdCAgICAgICAgID0gTGlzdFxubW9kdWxlIExpc3RMYWJlbHMgICA9IExpc3RMYWJlbHNcbm1vZHVsZSBNYXAgICAgICAgICAgPSBNYXBcbm1vZHVsZSBNYXJzaGFsICAgICAgPSBNYXJzaGFsXG5tb2R1bGUgTW9yZUxhYmVscyAgID0gTW9yZUxhYmVsc1xubW9kdWxlIE5hdGl2ZWludCAgICA9IE5hdGl2ZWludFxubW9kdWxlIE9iaiAgICAgICAgICA9IE9ialxubW9kdWxlIE9vICAgICAgICAgICA9IE9vXG5tb2R1bGUgT3B0aW9uICAgICAgID0gT3B0aW9uXG5tb2R1bGUgT3V0X2NoYW5uZWwgID0gT3V0X2NoYW5uZWxcbm1vZHVsZSBQYXJzaW5nICAgICAgPSBQYXJzaW5nXG5tb2R1bGUgUGVydmFzaXZlcyAgID0gUGVydmFzaXZlc1xubW9kdWxlIFByaW50ZXhjICAgICA9IFByaW50ZXhjXG5tb2R1bGUgUHJpbnRmICAgICAgID0gUHJpbnRmXG5tb2R1bGUgUXVldWUgICAgICAgID0gUXVldWVcbm1vZHVsZSBSYW5kb20gICAgICAgPSBSYW5kb21cbm1vZHVsZSBSZXN1bHQgICAgICAgPSBSZXN1bHRcbm1vZHVsZSBTY2FuZiAgICAgICAgPSBTY2FuZlxubW9kdWxlIFNlcSAgICAgICAgICA9IFNlcVxubW9kdWxlIFNldCAgICAgICAgICA9IFNldFxubW9kdWxlIFN0YWNrICAgICAgICA9IFN0YWNrXG5tb2R1bGUgU3RkTGFiZWxzICAgID0gU3RkTGFiZWxzXG5tb2R1bGUgU3RyZWFtICAgICAgID0gU3RyZWFtXG5tb2R1bGUgU3RyaW5nICAgICAgID0gU3RyaW5nXG5tb2R1bGUgU3RyaW5nTGFiZWxzID0gU3RyaW5nTGFiZWxzXG5tb2R1bGUgU3lzICAgICAgICAgID0gU3lzXG5tb2R1bGUgVWNoYXIgICAgICAgID0gVWNoYXJcbm1vZHVsZSBVbml0ICAgICAgICAgPSBVbml0XG5tb2R1bGUgV2VhayAgICAgICAgID0gV2Vha1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgSmVyZW1pZSBEaW1pbm8sIEphbmUgU3RyZWV0IEV1cm9wZSAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNyBKYW5lIFN0cmVldCBHcm91cCBMTEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiogQGRlcHJlY2F0ZWQgVXNlIHshU3RkbGlifSAqKVxuXG5leHRlcm5hbCByYWlzZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlXCJcbmV4dGVybmFsIHJhaXNlX25vdHJhY2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZV9ub3RyYWNlXCJcbmxldCBpbnZhbGlkX2FyZyA9IGludmFsaWRfYXJnXG5sZXQgZmFpbHdpdGggPSBmYWlsd2l0aFxuZXhjZXB0aW9uIEV4aXRcbmV4dGVybmFsICggPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcbmV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5leHRlcm5hbCAoIDwgKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5leHRlcm5hbCAoID4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5leHRlcm5hbCAoIDw9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcbmV4dGVybmFsICggPj0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuZXh0ZXJuYWwgY29tcGFyZSA6ICdhIC0+ICdhIC0+IGludCA9IFwiJWNvbXBhcmVcIlxubGV0IG1pbiA9IG1pblxubGV0IG1heCA9IG1heFxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggIT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcVwiXG5leHRlcm5hbCBub3QgOiBib29sIC0+IGJvb2wgPSBcIiVib29sbm90XCJcbmV4dGVybmFsICggJiYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoICYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG4gIFtAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgKCYmKSBpbnN0ZWFkLlwiXVxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuZXh0ZXJuYWwgKCBvciApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuICBbQEBvY2FtbC5kZXByZWNhdGVkIFwiVXNlICh8fCkgaW5zdGVhZC5cIl1cbmV4dGVybmFsIF9fTE9DX18gOiBzdHJpbmcgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fRklMRV9fIDogc3RyaW5nID0gXCIlbG9jX0ZJTEVcIlxuZXh0ZXJuYWwgX19MSU5FX18gOiBpbnQgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX01PRFVMRV9fIDogc3RyaW5nID0gXCIlbG9jX01PRFVMRVwiXG5leHRlcm5hbCBfX1BPU19fIDogc3RyaW5nICogaW50ICogaW50ICogaW50ID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCBfX0xPQ19PRl9fIDogJ2EgLT4gc3RyaW5nICogJ2EgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fTElORV9PRl9fIDogJ2EgLT4gaW50ICogJ2EgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX1BPU19PRl9fIDogJ2EgLT4gKHN0cmluZyAqIGludCAqIGludCAqIGludCkgKiAnYSA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgKCB8PiApIDogJ2EgLT4gKCdhIC0+ICdiKSAtPiAnYiA9IFwiJXJldmFwcGx5XCJcbmV4dGVybmFsICggQEAgKSA6ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IgPSBcIiVhcHBseVwiXG5leHRlcm5hbCAoIH4tICkgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsICggfisgKSA6IGludCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgKCAtICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCAoICogKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsICggLyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgKCBtb2QgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcbmxldCBhYnMgPSBhYnNcbmxldCBtYXhfaW50ID0gbWF4X2ludFxubGV0IG1pbl9pbnQgPSBtaW5faW50XG5leHRlcm5hbCAoIGxhbmQgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsICggbG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsICggbHhvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxubGV0IGxub3QgPSBsbm90XG5leHRlcm5hbCAoIGxzbCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgKCBsc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmV4dGVybmFsICggYXNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5leHRlcm5hbCAoIH4tLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCAoIH4rLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCAoICsuICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsICggLS4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgKCAqLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCAoIC8uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsICggKiogKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5leHRlcm5hbCBjb3B5c2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIGZsb2F0X29mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdHJ1bmNhdGUgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGludF9vZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxubGV0IGluZmluaXR5ID0gaW5maW5pdHlcbmxldCBuZWdfaW5maW5pdHkgPSBuZWdfaW5maW5pdHlcbmxldCBuYW4gPSBuYW5cbmxldCBtYXhfZmxvYXQgPSBtYXhfZmxvYXRcbmxldCBtaW5fZmxvYXQgPSBtaW5fZmxvYXRcbmxldCBlcHNpbG9uX2Zsb2F0ID0gZXBzaWxvbl9mbG9hdFxudHlwZSBub25yZWMgZnBjbGFzcyA9IGZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmxldCAoIF4gKSA9ICggXiApXG5leHRlcm5hbCBpbnRfb2ZfY2hhciA6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxubGV0IGNoYXJfb2ZfaW50ID0gY2hhcl9vZl9pbnRcbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxubGV0IHN0cmluZ19vZl9ib29sID0gc3RyaW5nX29mX2Jvb2xcbmxldCBib29sX29mX3N0cmluZyA9IGJvb2xfb2Zfc3RyaW5nXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0ID0gYm9vbF9vZl9zdHJpbmdfb3B0XG5sZXQgc3RyaW5nX29mX2ludCA9IHN0cmluZ19vZl9pbnRcbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxubGV0IGludF9vZl9zdHJpbmdfb3B0ID0gaW50X29mX3N0cmluZ19vcHRcbmxldCBzdHJpbmdfb2ZfZmxvYXQgPSBzdHJpbmdfb2ZfZmxvYXRcbmV4dGVybmFsIGZsb2F0X29mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgPSBmbG9hdF9vZl9zdHJpbmdfb3B0XG5leHRlcm5hbCBmc3QgOiAnYSAqICdiIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsIHNuZCA6ICdhICogJ2IgLT4gJ2IgPSBcIiVmaWVsZDFcIlxubGV0ICggQCApICA9ICggQCApXG50eXBlIG5vbnJlYyBpbl9jaGFubmVsID0gaW5fY2hhbm5lbFxudHlwZSBub25yZWMgb3V0X2NoYW5uZWwgPSBvdXRfY2hhbm5lbFxubGV0IHN0ZGluID0gc3RkaW5cbmxldCBzdGRvdXQgPSBzdGRvdXRcbmxldCBzdGRlcnIgPSBzdGRlcnJcbmxldCBwcmludF9jaGFyID0gcHJpbnRfY2hhclxubGV0IHByaW50X3N0cmluZyA9IHByaW50X3N0cmluZ1xubGV0IHByaW50X2J5dGVzID0gcHJpbnRfYnl0ZXNcbmxldCBwcmludF9pbnQgPSBwcmludF9pbnRcbmxldCBwcmludF9mbG9hdCA9IHByaW50X2Zsb2F0XG5sZXQgcHJpbnRfZW5kbGluZSA9IHByaW50X2VuZGxpbmVcbmxldCBwcmludF9uZXdsaW5lID0gcHJpbnRfbmV3bGluZVxubGV0IHByZXJyX2NoYXIgPSBwcmVycl9jaGFyXG5sZXQgcHJlcnJfc3RyaW5nID0gcHJlcnJfc3RyaW5nXG5sZXQgcHJlcnJfYnl0ZXMgPSBwcmVycl9ieXRlc1xubGV0IHByZXJyX2ludCA9IHByZXJyX2ludFxubGV0IHByZXJyX2Zsb2F0ID0gcHJlcnJfZmxvYXRcbmxldCBwcmVycl9lbmRsaW5lID0gcHJlcnJfZW5kbGluZVxubGV0IHByZXJyX25ld2xpbmUgPSBwcmVycl9uZXdsaW5lXG5sZXQgcmVhZF9saW5lID0gcmVhZF9saW5lXG5sZXQgcmVhZF9pbnQgPSByZWFkX2ludFxubGV0IHJlYWRfaW50X29wdCA9IHJlYWRfaW50X29wdFxubGV0IHJlYWRfZmxvYXQgPSByZWFkX2Zsb2F0XG5sZXQgcmVhZF9mbG9hdF9vcHQgPSByZWFkX2Zsb2F0X29wdFxudHlwZSBub25yZWMgb3Blbl9mbGFnID0gb3Blbl9mbGFnID1cbiAgICBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xubGV0IG9wZW5fb3V0ID0gb3Blbl9vdXRcbmxldCBvcGVuX291dF9iaW4gPSBvcGVuX291dF9iaW5cbmxldCBvcGVuX291dF9nZW4gPSBvcGVuX291dF9nZW5cbmxldCBmbHVzaCA9IGZsdXNoXG5sZXQgZmx1c2hfYWxsID0gZmx1c2hfYWxsXG5sZXQgb3V0cHV0X2NoYXIgPSBvdXRwdXRfY2hhclxubGV0IG91dHB1dF9zdHJpbmcgPSBvdXRwdXRfc3RyaW5nXG5sZXQgb3V0cHV0X2J5dGVzID0gb3V0cHV0X2J5dGVzXG5sZXQgb3V0cHV0ID0gb3V0cHV0XG5sZXQgb3V0cHV0X3N1YnN0cmluZyA9IG91dHB1dF9zdWJzdHJpbmdcbmxldCBvdXRwdXRfYnl0ZSA9IG91dHB1dF9ieXRlXG5sZXQgb3V0cHV0X2JpbmFyeV9pbnQgPSBvdXRwdXRfYmluYXJ5X2ludFxubGV0IG91dHB1dF92YWx1ZSA9IG91dHB1dF92YWx1ZVxubGV0IHNlZWtfb3V0ID0gc2Vla19vdXRcbmxldCBwb3Nfb3V0ID0gcG9zX291dFxubGV0IG91dF9jaGFubmVsX2xlbmd0aCA9IG91dF9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlX291dCA9IGNsb3NlX291dFxubGV0IGNsb3NlX291dF9ub2VyciA9IGNsb3NlX291dF9ub2VyclxubGV0IHNldF9iaW5hcnlfbW9kZV9vdXQgPSBzZXRfYmluYXJ5X21vZGVfb3V0XG5sZXQgb3Blbl9pbiA9IG9wZW5faW5cbmxldCBvcGVuX2luX2JpbiA9IG9wZW5faW5fYmluXG5sZXQgb3Blbl9pbl9nZW4gPSBvcGVuX2luX2dlblxubGV0IGlucHV0X2NoYXIgPSBpbnB1dF9jaGFyXG5sZXQgaW5wdXRfbGluZSA9IGlucHV0X2xpbmVcbmxldCBpbnB1dCA9IGlucHV0XG5sZXQgcmVhbGx5X2lucHV0ID0gcmVhbGx5X2lucHV0XG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyA9IHJlYWxseV9pbnB1dF9zdHJpbmdcbmxldCBpbnB1dF9ieXRlID0gaW5wdXRfYnl0ZVxubGV0IGlucHV0X2JpbmFyeV9pbnQgPSBpbnB1dF9iaW5hcnlfaW50XG5sZXQgaW5wdXRfdmFsdWUgPSBpbnB1dF92YWx1ZVxubGV0IHNlZWtfaW4gPSBzZWVrX2luXG5sZXQgcG9zX2luID0gcG9zX2luXG5sZXQgaW5fY2hhbm5lbF9sZW5ndGggPSBpbl9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlX2luID0gY2xvc2VfaW5cbmxldCBjbG9zZV9pbl9ub2VyciA9IGNsb3NlX2luX25vZXJyXG5sZXQgc2V0X2JpbmFyeV9tb2RlX2luID0gc2V0X2JpbmFyeV9tb2RlX2luXG5tb2R1bGUgTGFyZ2VGaWxlID0gTGFyZ2VGaWxlXG50eXBlIG5vbnJlYyAnYSByZWYgPSAnYSByZWYgPSB7IG11dGFibGUgY29udGVudHMgOiAnYSB9XG5leHRlcm5hbCByZWYgOiAnYSAtPiAnYSByZWYgPSBcIiVtYWtlbXV0YWJsZVwiXG5leHRlcm5hbCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCAoIDo9ICkgOiAnYSByZWYgLT4gJ2EgLT4gdW5pdCA9IFwiJXNldGZpZWxkMFwiXG5leHRlcm5hbCBpbmNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlaW5jclwiXG5leHRlcm5hbCBkZWNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlZGVjclwiXG50eXBlIG5vbnJlYyAoJ2EsJ2IpIHJlc3VsdCA9ICgnYSwnYikgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnYlxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIGZvcm1hdDQgPSAoJ2EsICdiLCAnYywgJ2MsICdjLCAnZCkgZm9ybWF0NlxudHlwZSAoJ2EsICdiLCAnYykgZm9ybWF0ID0gKCdhLCAnYiwgJ2MsICdjKSBmb3JtYXQ0XG5sZXQgc3RyaW5nX29mX2Zvcm1hdCA9IHN0cmluZ19vZl9mb3JtYXRcbmV4dGVybmFsIGZvcm1hdF9vZl9zdHJpbmcgOlxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9IFwiJWlkZW50aXR5XCJcbmxldCAoIF5eICkgPSAoIF5eIClcbmxldCBleGl0ID0gZXhpdFxubGV0IGF0X2V4aXQgPSBhdF9leGl0XG5sZXQgdmFsaWRfZmxvYXRfbGV4ZW0gPSB2YWxpZF9mbG9hdF9sZXhlbVxubGV0IGRvX2F0X2V4aXQgPSBkb19hdF9leGl0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvclxuICAgVGhpcyBpcyBhIGxhZ2dlZC1GaWJvbmFjY2kgRig1NSwgMjQsICspIHdpdGggYSBtb2RpZmllZCBhZGRpdGlvblxuICAgZnVuY3Rpb24gdG8gZW5oYW5jZSB0aGUgbWl4aW5nIG9mIGJpdHMuXG4gICBJZiB3ZSB1c2Ugbm9ybWFsIGFkZGl0aW9uLCB0aGUgbG93LW9yZGVyIGJpdCBmYWlscyB0ZXN0cyAxIGFuZCA3XG4gICBvZiB0aGUgRGllaGFyZCB0ZXN0IHN1aXRlLCBhbmQgYml0cyAxIGFuZCAyIGFsc28gZmFpbCB0ZXN0IDcuXG4gICBJZiB3ZSB1c2UgbXVsdGlwbGljYXRpb24gYXMgc3VnZ2VzdGVkIGJ5IE1hcnNhZ2xpYSwgaXQgZG9lc24ndCBmYXJlXG4gICBtdWNoIGJldHRlci5cbiAgIEJ5IG1peGluZyB0aGUgYml0cyBvZiBvbmUgb2YgdGhlIG51bWJlcnMgYmVmb3JlIGFkZGl0aW9uIChYT1IgdGhlXG4gICA1IGhpZ2gtb3JkZXIgYml0cyBpbnRvIHRoZSBsb3ctb3JkZXIgYml0cyksIHdlIGdldCBhIGdlbmVyYXRvciB0aGF0XG4gICBwYXNzZXMgYWxsIHRoZSBEaWVoYXJkIHRlc3RzLlxuKilcblxuZXh0ZXJuYWwgcmFuZG9tX3NlZWQ6IHVuaXQgLT4gaW50IGFycmF5ID0gXCJjYW1sX3N5c19yYW5kb21fc2VlZFwiXG5cbm1vZHVsZSBTdGF0ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IHsgc3QgOiBpbnQgYXJyYXk7IG11dGFibGUgaWR4IDogaW50IH1cblxuICBsZXQgbmV3X3N0YXRlICgpID0geyBzdCA9IEFycmF5Lm1ha2UgNTUgMDsgaWR4ID0gMCB9XG4gIGxldCBhc3NpZ24gc3QxIHN0MiA9XG4gICAgQXJyYXkuYmxpdCBzdDIuc3QgMCBzdDEuc3QgMCA1NTtcbiAgICBzdDEuaWR4IDwtIHN0Mi5pZHhcblxuXG4gIGxldCBmdWxsX2luaXQgcyBzZWVkID1cbiAgICBsZXQgY29tYmluZSBhY2N1IHggPSBEaWdlc3Quc3RyaW5nIChhY2N1IF4gSW50LnRvX3N0cmluZyB4KSBpblxuICAgIGxldCBleHRyYWN0IGQgPVxuICAgICAgQ2hhci5jb2RlIGQuWzBdICsgKENoYXIuY29kZSBkLlsxXSBsc2wgOCkgKyAoQ2hhci5jb2RlIGQuWzJdIGxzbCAxNilcbiAgICAgICsgKENoYXIuY29kZSBkLlszXSBsc2wgMjQpXG4gICAgaW5cbiAgICBsZXQgc2VlZCA9IGlmIEFycmF5Lmxlbmd0aCBzZWVkID0gMCB0aGVuIFt8IDAgfF0gZWxzZSBzZWVkIGluXG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGggc2VlZCBpblxuICAgIGZvciBpID0gMCB0byA1NCBkb1xuICAgICAgcy5zdC4oaSkgPC0gaTtcbiAgICBkb25lO1xuICAgIGxldCBhY2N1ID0gcmVmIFwieFwiIGluXG4gICAgZm9yIGkgPSAwIHRvIDU0ICsgSW50Lm1heCA1NSBsIGRvXG4gICAgICBsZXQgaiA9IGkgbW9kIDU1IGluXG4gICAgICBsZXQgayA9IGkgbW9kIGwgaW5cbiAgICAgIGFjY3UgOj0gY29tYmluZSAhYWNjdSBzZWVkLihrKTtcbiAgICAgIHMuc3QuKGopIDwtIChzLnN0LihqKSBseG9yIGV4dHJhY3QgIWFjY3UpIGxhbmQgMHgzRkZGRkZGRjsgICgqIFBSIzU1NzUgKilcbiAgICBkb25lO1xuICAgIHMuaWR4IDwtIDBcblxuXG4gIGxldCBtYWtlIHNlZWQgPVxuICAgIGxldCByZXN1bHQgPSBuZXdfc3RhdGUgKCkgaW5cbiAgICBmdWxsX2luaXQgcmVzdWx0IHNlZWQ7XG4gICAgcmVzdWx0XG5cblxuICBsZXQgbWFrZV9zZWxmX2luaXQgKCkgPSBtYWtlIChyYW5kb21fc2VlZCAoKSlcblxuICBsZXQgY29weSBzID1cbiAgICBsZXQgcmVzdWx0ID0gbmV3X3N0YXRlICgpIGluXG4gICAgYXNzaWduIHJlc3VsdCBzO1xuICAgIHJlc3VsdFxuXG5cbiAgKCogUmV0dXJucyAzMCByYW5kb20gYml0cyBhcyBhbiBpbnRlZ2VyIDAgPD0geCA8IDEwNzM3NDE4MjQgKilcbiAgbGV0IGJpdHMgcyA9XG4gICAgcy5pZHggPC0gKHMuaWR4ICsgMSkgbW9kIDU1O1xuICAgIGxldCBjdXJ2YWwgPSBzLnN0LihzLmlkeCkgaW5cbiAgICBsZXQgbmV3dmFsID0gcy5zdC4oKHMuaWR4ICsgMjQpIG1vZCA1NSlcbiAgICAgICAgICAgICAgICAgKyAoY3VydmFsIGx4b3IgKChjdXJ2YWwgbHNyIDI1KSBsYW5kIDB4MUYpKSBpblxuICAgIGxldCBuZXd2YWwzMCA9IG5ld3ZhbCBsYW5kIDB4M0ZGRkZGRkYgaW4gICgqIFBSIzU1NzUgKilcbiAgICBzLnN0LihzLmlkeCkgPC0gbmV3dmFsMzA7XG4gICAgbmV3dmFsMzBcblxuXG4gIGxldCByZWMgaW50YXV4IHMgbiA9XG4gICAgbGV0IHIgPSBiaXRzIHMgaW5cbiAgICBsZXQgdiA9IHIgbW9kIG4gaW5cbiAgICBpZiByIC0gdiA+IDB4M0ZGRkZGRkYgLSBuICsgMSB0aGVuIGludGF1eCBzIG4gZWxzZSB2XG5cbiAgbGV0IGludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA+IDB4M0ZGRkZGRkYgfHwgYm91bmQgPD0gMFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50XCJcbiAgICBlbHNlIGludGF1eCBzIGJvdW5kXG5cbiAgbGV0IHJlYyBpbnQ2M2F1eCBzIG4gPVxuICAgIGxldCBtYXhfaW50XzMyID0gKDEgbHNsIDMwKSArIDB4M0ZGRkZGRkYgaW4gKCogMHg3RkZGRkZGRiAqKVxuICAgIGxldCBiMSA9IGJpdHMgcyBpblxuICAgIGxldCBiMiA9IGJpdHMgcyBpblxuICAgIGxldCAociwgbWF4X2ludCkgPVxuICAgICAgaWYgbiA8PSBtYXhfaW50XzMyIHRoZW5cbiAgICAgICAgKCogMzEgcmFuZG9tIGJpdHMgb24gYm90aCA2NC1iaXQgT0NhbWwgYW5kIEphdmFTY3JpcHQuXG4gICAgICAgICAgIFVzZSB1cHBlciAxNSBiaXRzIG9mIGIxIGFuZCAxNiBiaXRzIG9mIGIyLiAqKVxuICAgICAgICBsZXQgYnBvcyA9XG4gICAgICAgICAgKCgoYjIgbGFuZCAweDNGRkZDMDAwKSBsc2wgMSkgbG9yIChiMSBsc3IgMTUpKVxuICAgICAgICBpblxuICAgICAgICAgIChicG9zLCBtYXhfaW50XzMyKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgYjMgPSBiaXRzIHMgaW5cbiAgICAgICAgKCogNjIgcmFuZG9tIGJpdHMgb24gNjQtYml0IE9DYW1sOyB1bnJlYWNoYWJsZSBvbiBKYXZhU2NyaXB0LlxuICAgICAgICAgICBVc2UgdXBwZXIgMjAgYml0cyBvZiBiMSBhbmQgMjEgYml0cyBvZiBiMiBhbmQgYjMuICopXG4gICAgICAgIGxldCBicG9zID1cbiAgICAgICAgICAoKCgoYjMgbGFuZCAweDNGRkZGRTAwKSBsc2wgMTIpIGxvciAoYjIgbHNyIDkpKSBsc2wgMjApXG4gICAgICAgICAgICBsb3IgKGIxIGxzciAxMClcbiAgICAgICAgaW5cbiAgICAgICAgICAoYnBvcywgbWF4X2ludClcbiAgICBpblxuICAgIGxldCB2ID0gciBtb2QgbiBpblxuICAgIGlmIHIgLSB2ID4gbWF4X2ludCAtIG4gKyAxIHRoZW4gaW50NjNhdXggcyBuIGVsc2UgdlxuXG4gIGxldCBmdWxsX2ludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiUmFuZG9tLmZ1bGxfaW50XCJcbiAgICBlbHNlIGlmIGJvdW5kID4gMHgzRkZGRkZGRiB0aGVuXG4gICAgICBpbnQ2M2F1eCBzIGJvdW5kXG4gICAgZWxzZVxuICAgICAgaW50YXV4IHMgYm91bmRcblxuXG4gIGxldCByZWMgaW50MzJhdXggcyBuID1cbiAgICBsZXQgYjEgPSBJbnQzMi5vZl9pbnQgKGJpdHMgcykgaW5cbiAgICBsZXQgYjIgPSBJbnQzMi5zaGlmdF9sZWZ0IChJbnQzMi5vZl9pbnQgKGJpdHMgcyBsYW5kIDEpKSAzMCBpblxuICAgIGxldCByID0gSW50MzIubG9nb3IgYjEgYjIgaW5cbiAgICBsZXQgdiA9IEludDMyLnJlbSByIG4gaW5cbiAgICBpZiBJbnQzMi5zdWIgciB2ID4gSW50MzIuYWRkIChJbnQzMi5zdWIgSW50MzIubWF4X2ludCBuKSAxbFxuICAgIHRoZW4gaW50MzJhdXggcyBuXG4gICAgZWxzZSB2XG5cbiAgbGV0IGludDMyIHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDBsXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnQzMlwiXG4gICAgZWxzZSBpbnQzMmF1eCBzIGJvdW5kXG5cblxuICBsZXQgcmVjIGludDY0YXV4IHMgbiA9XG4gICAgbGV0IGIxID0gSW50NjQub2ZfaW50IChiaXRzIHMpIGluXG4gICAgbGV0IGIyID0gSW50NjQuc2hpZnRfbGVmdCAoSW50NjQub2ZfaW50IChiaXRzIHMpKSAzMCBpblxuICAgIGxldCBiMyA9IEludDY0LnNoaWZ0X2xlZnQgKEludDY0Lm9mX2ludCAoYml0cyBzIGxhbmQgNykpIDYwIGluXG4gICAgbGV0IHIgPSBJbnQ2NC5sb2dvciBiMSAoSW50NjQubG9nb3IgYjIgYjMpIGluXG4gICAgbGV0IHYgPSBJbnQ2NC5yZW0gciBuIGluXG4gICAgaWYgSW50NjQuc3ViIHIgdiA+IEludDY0LmFkZCAoSW50NjQuc3ViIEludDY0Lm1heF9pbnQgbikgMUxcbiAgICB0aGVuIGludDY0YXV4IHMgblxuICAgIGVsc2UgdlxuXG4gIGxldCBpbnQ2NCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwTFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50NjRcIlxuICAgIGVsc2UgaW50NjRhdXggcyBib3VuZFxuXG5cbiAgbGV0IG5hdGl2ZWludCA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgYm91bmQgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChpbnQzMiBzIChOYXRpdmVpbnQudG9faW50MzIgYm91bmQpKVxuICAgIGVsc2UgZnVuIHMgYm91bmQgLT4gSW50NjQudG9fbmF0aXZlaW50IChpbnQ2NCBzIChJbnQ2NC5vZl9uYXRpdmVpbnQgYm91bmQpKVxuXG5cbiAgKCogUmV0dXJucyBhIGZsb2F0IDAgPD0geCA8PSAxIHdpdGggYXQgbW9zdCA2MCBiaXRzIG9mIHByZWNpc2lvbi4gKilcbiAgbGV0IHJhd2Zsb2F0IHMgPVxuICAgIGxldCBzY2FsZSA9IDEwNzM3NDE4MjQuMCAgKCogMl4zMCAqKVxuICAgIGFuZCByMSA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGFuZCByMiA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGluIChyMSAvLiBzY2FsZSArLiByMikgLy4gc2NhbGVcblxuXG4gIGxldCBmbG9hdCBzIGJvdW5kID0gcmF3ZmxvYXQgcyAqLiBib3VuZFxuXG4gIGxldCBib29sIHMgPSAoYml0cyBzIGxhbmQgMSA9IDApXG5cbiAgbGV0IGJpdHMzMiBzID1cbiAgICBsZXQgYjEgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBJbnQzMi4obG9nb3IgYjEgKHNoaWZ0X2xlZnQgYjIgMTYpKVxuXG4gIGxldCBiaXRzNjQgcyA9XG4gICAgbGV0IGIxID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOSkgaW4gICgqIDIxIGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA5KSBpbiAgKCogMjEgYml0cyAqKVxuICAgIGxldCBiMyA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDgpIGluICAoKiAyMiBiaXRzICopXG4gICAgSW50NjQuKGxvZ29yIGIxIChsb2dvciAoc2hpZnRfbGVmdCBiMiAyMSkgKHNoaWZ0X2xlZnQgYjMgNDIpKSlcblxuICBsZXQgbmF0aXZlYml0cyA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChiaXRzMzIgcylcbiAgICBlbHNlIGZ1biBzIC0+IEludDY0LnRvX25hdGl2ZWludCAoYml0czY0IHMpXG5cbmVuZFxuXG4oKiBUaGlzIGlzIHRoZSBzdGF0ZSB5b3UgZ2V0IHdpdGggW2luaXQgMjcxODI4MThdIGFuZCB0aGVuIGFwcGx5aW5nXG4gICB0aGUgXCJsYW5kIDB4M0ZGRkZGRkZcIiBmaWx0ZXIgdG8gdGhlbS4gIFNlZSAjNTU3NSwgIzU3OTMsICM1OTc3LiAqKVxubGV0IGRlZmF1bHQgPSB7XG4gIFN0YXRlLnN0ID0gW3xcbiAgICAgIDB4M2FlMjUyMmI7IDB4MWQ4ZDQ2MzQ7IDB4MTViNGZhZDA7IDB4MThiMTRhY2U7IDB4MTJmOGEzYzQ7IDB4M2IwODZjNDc7XG4gICAgICAweDE2ZDQ2N2Q2OyAweDEwMWQ5MWM3OyAweDMyMWRmMTc3OyAweDAxNzZjMTkzOyAweDFmZjcyYmYxOyAweDFlODg5MTA5O1xuICAgICAgMHgwYjQ2NGIxODsgMHgyYjg2Yjk3YzsgMHgwODkxZGE0ODsgMHgwMzEzNzQ2MzsgMHgwODVhYzVhMTsgMHgxNWQ2MWYyZjtcbiAgICAgIDB4M2JjZWQzNTk7IDB4MjljMWMxMzI7IDB4M2E4Njc2NmU7IDB4MzY2ZDhjODY7IDB4MWY1YjYyMjI7IDB4M2NlMWI1OWY7XG4gICAgICAweDJlYmY3OGUxOyAweDI3Y2QxYjg2OyAweDI1OGYzZGMzOyAweDM4OWE4MTk0OyAweDAyZTRjNDRjOyAweDE4YzQzZjdkO1xuICAgICAgMHgwZjZlNTM0ZjsgMHgxZTdkZjM1OTsgMHgwNTVkMGI3ZTsgMHgxMGU4NGU3ZTsgMHgxMjYxOThlNDsgMHgwZTc3MjJjYjtcbiAgICAgIDB4MWNiZWRlMjg7IDB4MzM5MWI5NjQ7IDB4M2Q0MGU5MmE7IDB4MGM1OTkzM2Q7IDB4MGI4Y2QwYjc7IDB4MjRlZmZmMWM7XG4gICAgICAweDI4MDNmZGFhOyAweDA4ZWJjNzJlOyAweDBmNTIyZTMyOyAweDA1Mzk4ZWRjOyAweDIxNDRhMDRjOyAweDBhZWYzY2JkO1xuICAgICAgMHgwMWFkNDcxOTsgMHgzNWI5M2NkNjsgMHgyYTU1OWQ0ZjsgMHgxZTZmZDc2ODsgMHgyNmUyN2YzNjsgMHgxODZmMThjMztcbiAgICAgIDB4MmZiZjk2N2E7XG4gICAgfF07XG4gIFN0YXRlLmlkeCA9IDA7XG59XG5cbmxldCBiaXRzICgpID0gU3RhdGUuYml0cyBkZWZhdWx0XG5sZXQgaW50IGJvdW5kID0gU3RhdGUuaW50IGRlZmF1bHQgYm91bmRcbmxldCBmdWxsX2ludCBib3VuZCA9IFN0YXRlLmZ1bGxfaW50IGRlZmF1bHQgYm91bmRcbmxldCBpbnQzMiBib3VuZCA9IFN0YXRlLmludDMyIGRlZmF1bHQgYm91bmRcbmxldCBuYXRpdmVpbnQgYm91bmQgPSBTdGF0ZS5uYXRpdmVpbnQgZGVmYXVsdCBib3VuZFxubGV0IGludDY0IGJvdW5kID0gU3RhdGUuaW50NjQgZGVmYXVsdCBib3VuZFxubGV0IGZsb2F0IHNjYWxlID0gU3RhdGUuZmxvYXQgZGVmYXVsdCBzY2FsZVxubGV0IGJvb2wgKCkgPSBTdGF0ZS5ib29sIGRlZmF1bHRcbmxldCBiaXRzMzIgKCkgPSBTdGF0ZS5iaXRzMzIgZGVmYXVsdFxubGV0IGJpdHM2NCAoKSA9IFN0YXRlLmJpdHM2NCBkZWZhdWx0XG5sZXQgbmF0aXZlYml0cyAoKSA9IFN0YXRlLm5hdGl2ZWJpdHMgZGVmYXVsdFxuXG5sZXQgZnVsbF9pbml0IHNlZWQgPSBTdGF0ZS5mdWxsX2luaXQgZGVmYXVsdCBzZWVkXG5sZXQgaW5pdCBzZWVkID0gU3RhdGUuZnVsbF9pbml0IGRlZmF1bHQgW3wgc2VlZCB8XVxubGV0IHNlbGZfaW5pdCAoKSA9IGZ1bGxfaW5pdCAocmFuZG9tX3NlZWQoKSlcblxuKCogTWFuaXB1bGF0aW5nIHRoZSBjdXJyZW50IHN0YXRlLiAqKVxuXG5sZXQgZ2V0X3N0YXRlICgpID0gU3RhdGUuY29weSBkZWZhdWx0XG5sZXQgc2V0X3N0YXRlIHMgPSBTdGF0ZS5hc3NpZ24gZGVmYXVsdCBzXG5cbigqKioqKioqKioqKioqKioqKioqKlxuXG4oKiBUZXN0IGZ1bmN0aW9ucy4gIE5vdCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeS5cbiAgIFRoZSBbY2hpc3F1YXJlXSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggbiA+IDEwci5cbiAgIEl0IHJldHVybnMgYSB0cmlwbGUgKGxvdywgYWN0dWFsLCBoaWdoKS5cbiAgIElmIGxvdyA8PSBhY3R1YWwgPD0gaGlnaCwgdGhlIFtnXSBmdW5jdGlvbiBwYXNzZWQgdGhlIHRlc3QsXG4gICBvdGhlcndpc2UgaXQgZmFpbGVkLlxuXG4gIFNvbWUgcmVzdWx0czpcblxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCA1MDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAyOTk3OTI2NDM7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMTQxNDIxMzY7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZiAxMDI0OyBjaGlzcXVhcmUgZGlmZiAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmIDEwMDsgY2hpc3F1YXJlIGRpZmYgMTAwMDAwIDEwMFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmMiAxMDI0OyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuaW5pdCAxNDE0MjEzNjsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG5pbml0IDI5OTc5MjY0MzsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG4tIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk5Ny41LCAxMDYzLjI0NTU1MzIwMzM2NzU0KVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODkuNzQwMDAwMDAwMDA1MjM4NywgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg0ODU4LjU3ODY0Mzc2MjY5LCA1MDQ1LjUsIDUxNDEuNDIxMzU2MjM3MzEpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPVxuKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk0NC44MDU5OTk5OTk5ODIzMDUsIDEwNjMuMjQ1NTUzMjAzMzY3NTQpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAxOS4xOTc0NDAwMDAwMDM1NSwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1OS4zMTc3NjAwMDAwMDUzNiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAzOS45ODQ2Mzk5OTk5OTUxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1NC4zODIwNzk5OTk5OTU3NywgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA5MC4wOTYwMDAwMDAwMDUsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA3Ni43ODcyMDAwMDAwMDYxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4NS4xNzYwMDAwMDAwMDY3NTIxLCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODUuMjE2MDAwMDAwMDAwMzQ5MiwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDgwLjYyMjAwMDAwMDAwMzAyNjgsIDEyMC4pXG5cbiopXG5cbigqIFJldHVybiB0aGUgc3VtIG9mIHRoZSBzcXVhcmVzIG9mIHZbaTAsaTFbICopXG5sZXQgcmVjIHN1bXNxIHYgaTAgaTEgPVxuICBpZiBpMCA+PSBpMSB0aGVuIDAuMFxuICBlbHNlIGlmIGkxID0gaTAgKyAxIHRoZW4gU3RkbGliLmZsb2F0IHYuKGkwKSAqLiBTdGRsaWIuZmxvYXQgdi4oaTApXG4gIGVsc2Ugc3Vtc3EgdiBpMCAoKGkwK2kxKS8yKSArLiBzdW1zcSB2ICgoaTAraTEpLzIpIGkxXG5cblxubGV0IGNoaXNxdWFyZSBnIG4gciA9XG4gIGlmIG4gPD0gMTAgKiByIHRoZW4gaW52YWxpZF9hcmcgXCJjaGlzcXVhcmVcIjtcbiAgbGV0IGYgPSBBcnJheS5tYWtlIHIgMCBpblxuICBmb3IgaSA9IDEgdG8gbiBkb1xuICAgIGxldCB0ID0gZyByIGluXG4gICAgZi4odCkgPC0gZi4odCkgKyAxXG4gIGRvbmU7XG4gIGxldCB0ID0gc3Vtc3EgZiAwIHJcbiAgYW5kIHIgPSBTdGRsaWIuZmxvYXQgclxuICBhbmQgbiA9IFN0ZGxpYi5mbG9hdCBuIGluXG4gIGxldCBzciA9IDIuMCAqLiBzcXJ0IHIgaW5cbiAgKHIgLS4gc3IsICAgKHIgKi4gdCAvLiBuKSAtLiBuLCAgIHIgKy4gc3IpXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBsaW5lYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb20gbnVtYmVycy5cbiopXG5sZXQgc3QgPSByZWYgMFxubGV0IGluaXRfZGlmZiByID0gc3QgOj0gaW50IHJcbmxldCBkaWZmIHIgPVxuICBsZXQgeDEgPSAhc3RcbiAgYW5kIHgyID0gaW50IHJcbiAgaW5cbiAgc3QgOj0geDI7XG4gIGlmIHgxID49IHgyIHRoZW5cbiAgICB4MSAtIHgyXG4gIGVsc2VcbiAgICByICsgeDEgLSB4MlxuXG5cbmxldCBzdDEgPSByZWYgMFxuYW5kIHN0MiA9IHJlZiAwXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBxdWFkcmF0aWMgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb21cbiAgIG51bWJlcnMuXG4qKVxubGV0IGluaXRfZGlmZjIgciA9IHN0MSA6PSBpbnQgcjsgc3QyIDo9IGludCByXG5sZXQgZGlmZjIgciA9XG4gIGxldCB4MSA9ICFzdDFcbiAgYW5kIHgyID0gIXN0MlxuICBhbmQgeDMgPSBpbnQgclxuICBpblxuICBzdDEgOj0geDI7XG4gIHN0MiA6PSB4MztcbiAgKHgzIC0geDIgLSB4MiArIHgxICsgMipyKSBtb2QgclxuXG5cbioqKioqKioqKioqKioqKioqKioqKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICBOaWNvbGFzIE9qZWRhIEJhciwgTGV4aUZpICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBuZWcgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsIGFkZCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgc3ViIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCBtdWwgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsIGRpdiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgcmVtIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbWEgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbWFfZmxvYXRcIiBcImNhbWxfZm1hXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFicyA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuXG5sZXQgemVybyA9IDAuXG5sZXQgb25lID0gMS5cbmxldCBtaW51c19vbmUgPSAtMS5cbmxldCBpbmZpbml0eSA9IFN0ZGxpYi5pbmZpbml0eVxubGV0IG5lZ19pbmZpbml0eSA9IFN0ZGxpYi5uZWdfaW5maW5pdHlcbmxldCBuYW4gPSBTdGRsaWIubmFuXG5sZXQgaXNfZmluaXRlICh4OiBmbG9hdCkgPSB4IC0uIHggPSAwLlxubGV0IGlzX2luZmluaXRlICh4OiBmbG9hdCkgPSAxLiAvLiB4ID0gMC5cbmxldCBpc19uYW4gKHg6IGZsb2F0KSA9IHggPD4geFxuXG5sZXQgcGkgPSAweDEuOTIxZmI1NDQ0MmQxOHArMVxubGV0IG1heF9mbG9hdCA9IFN0ZGxpYi5tYXhfZmxvYXRcbmxldCBtaW5fZmxvYXQgPSBTdGRsaWIubWluX2Zsb2F0XG5sZXQgZXBzaWxvbiA9IFN0ZGxpYi5lcHNpbG9uX2Zsb2F0XG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5sZXQgb2Zfc3RyaW5nX29wdCA9IFN0ZGxpYi5mbG9hdF9vZl9zdHJpbmdfb3B0XG5sZXQgdG9fc3RyaW5nID0gU3RkbGliLnN0cmluZ19vZl9mbG9hdFxudHlwZSBmcGNsYXNzID0gU3RkbGliLmZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHBvdyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2JydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NicnRfZmxvYXRcIiBcImNhbWxfY2JydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAyIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwMl9mbG9hdFwiIFwiY2FtbF9leHAyXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzIgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cyX2Zsb2F0XCIgXCJjYW1sX2xvZzJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc2hfZmxvYXRcIiBcImNhbWxfYWNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luaF9mbG9hdFwiIFwiY2FtbF9hc2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5oX2Zsb2F0XCIgXCJjYW1sX2F0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGVyZiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2VyZl9mbG9hdFwiIFwiY2FtbF9lcmZcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXJmYyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2VyZmNfZmxvYXRcIiBcImNhbWxfZXJmY1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0cnVuYyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RydW5jX2Zsb2F0XCIgXCJjYW1sX3RydW5jXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHJvdW5kIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcm91bmRfZmxvYXRcIiBcImNhbWxfcm91bmRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IGlzX2ludGVnZXIgeCA9IHggPSB0cnVuYyB4ICYmIGlzX2Zpbml0ZSB4XG5cbmV4dGVybmFsIG5leHRfYWZ0ZXIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICA9IFwiY2FtbF9uZXh0YWZ0ZXJfZmxvYXRcIiBcImNhbWxfbmV4dGFmdGVyXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IHN1Y2MgeCA9IG5leHRfYWZ0ZXIgeCBpbmZpbml0eVxubGV0IHByZWQgeCA9IG5leHRfYWZ0ZXIgeCBuZWdfaW5maW5pdHlcblxuZXh0ZXJuYWwgY29weV9zaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaWduX2JpdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBib29sXG4gID0gXCJjYW1sX3NpZ25iaXRfZmxvYXRcIiBcImNhbWxfc2lnbmJpdFwiIFtAQG5vYWxsb2NdXG5cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG50eXBlIHQgPSBmbG9hdFxuZXh0ZXJuYWwgY29tcGFyZSA6IGZsb2F0IC0+IGZsb2F0IC0+IGludCA9IFwiJWNvbXBhcmVcIlxubGV0IGVxdWFsIHggeSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXRbQGlubGluZV0gbWluICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB5IHRoZW4geSBlbHNlIHhcbiAgZWxzZSBpZiBpc19uYW4geCB0aGVuIHggZWxzZSB5XG5cbmxldFtAaW5saW5lXSBtYXggKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHggdGhlbiB4IGVsc2UgeVxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4geSBlbHNlIHhcblxubGV0W0BpbmxpbmVdIG1pbl9tYXggKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgaXNfbmFuIHggfHwgaXNfbmFuIHkgdGhlbiAobmFuLCBuYW4pXG4gIGVsc2UgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuICh4LCB5KSBlbHNlICh5LCB4KVxuXG5sZXRbQGlubGluZV0gbWluX251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geCB0aGVuIHkgZWxzZSB4XG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiB4IGVsc2UgeVxuXG5sZXRbQGlubGluZV0gbWF4X251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geSB0aGVuIHggZWxzZSB5XG4gIGVsc2UgaWYgaXNfbmFuIHggdGhlbiB5IGVsc2UgeFxuXG5sZXRbQGlubGluZV0gbWluX21heF9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgaXNfbmFuIHggdGhlbiAoeSx5KVxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4gKHgseClcbiAgZWxzZSBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW4gKHgseSkgZWxzZSAoeSx4KVxuXG5leHRlcm5hbCBzZWVkZWRfaGFzaF9wYXJhbSA6IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfaGFzaFwiIFtAQG5vYWxsb2NdXG5sZXQgaGFzaCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIDAgeFxuXG5tb2R1bGUgQXJyYXkgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPSBmbG9hdGFycmF5XG5cbiAgZXh0ZXJuYWwgbGVuZ3RoIDogdCAtPiBpbnQgPSBcIiVmbG9hdGFycmF5X2xlbmd0aFwiXG4gIGV4dGVybmFsIGdldCA6IHQgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV9zYWZlX2dldFwiXG4gIGV4dGVybmFsIHNldCA6IHQgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfc2V0XCJcbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IHQgPSBcImNhbWxfZmxvYXRhcnJheV9jcmVhdGVcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9nZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX3NldFwiXG5cbiAgbGV0IHVuc2FmZV9maWxsIGEgb2ZzIGxlbiB2ID1cbiAgICBmb3IgaSA9IG9mcyB0byBvZnMgKyBsZW4gLSAxIGRvIHVuc2FmZV9zZXQgYSBpIHYgZG9uZVxuXG4gIGV4dGVybmFsIHVuc2FmZV9ibGl0OiB0IC0+IGludCAtPiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9XG4gICAgXCJjYW1sX2Zsb2F0YXJyYXlfYmxpdFwiIFtAQG5vYWxsb2NdXG5cbiAgbGV0IGNoZWNrIGEgb2ZzIGxlbiBtc2cgPVxuICAgIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgKyBsZW4gPCAwIHx8IG9mcyArIGxlbiA+IGxlbmd0aCBhIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIG1zZ1xuXG4gIGxldCBtYWtlIG4gdiA9XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBuIGluXG4gICAgdW5zYWZlX2ZpbGwgcmVzdWx0IDAgbiB2O1xuICAgIHJlc3VsdFxuXG4gIGxldCBpbml0IGwgZiA9XG4gICAgaWYgbCA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5LmluaXRcIlxuICAgIGVsc2VcbiAgICAgIGxldCByZXMgPSBjcmVhdGUgbCBpblxuICAgICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgcmVzIGkgKGYgaSlcbiAgICAgIGRvbmU7XG4gICAgICByZXNcblxuICBsZXQgYXBwZW5kIGExIGEyID1cbiAgICBsZXQgbDEgPSBsZW5ndGggYTEgaW5cbiAgICBsZXQgbDIgPSBsZW5ndGggYTIgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIChsMSArIGwyKSBpblxuICAgIHVuc2FmZV9ibGl0IGExIDAgcmVzdWx0IDAgbDE7XG4gICAgdW5zYWZlX2JsaXQgYTIgMCByZXN1bHQgbDEgbDI7XG4gICAgcmVzdWx0XG5cbiAgKCogbmV4dCAzIGZ1bmN0aW9uczogbW9kaWZpZWQgY29weSBvZiBjb2RlIGZyb20gc3RyaW5nLm1sICopXG4gIGxldCBlbnN1cmVfZ2UgKHg6aW50KSB5ID1cbiAgICBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5jb25jYXRcIlxuXG4gIGxldCByZWMgc3VtX2xlbmd0aHMgYWNjID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY1xuICAgIHwgaGQgOjogdGwgLT4gc3VtX2xlbmd0aHMgKGVuc3VyZV9nZSAobGVuZ3RoIGhkICsgYWNjKSBhY2MpIHRsXG5cbiAgbGV0IGNvbmNhdCBsID1cbiAgICBsZXQgbGVuID0gc3VtX2xlbmd0aHMgMCBsIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgcmVjIGxvb3AgbCBpID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiBhc3NlcnQgKGkgPSBsZW4pXG4gICAgICB8IGhkIDo6IHRsIC0+XG4gICAgICAgIGxldCBobGVuID0gbGVuZ3RoIGhkIGluXG4gICAgICAgIHVuc2FmZV9ibGl0IGhkIDAgcmVzdWx0IGkgaGxlbjtcbiAgICAgICAgbG9vcCB0bCAoaSArIGhsZW4pXG4gICAgaW5cbiAgICBsb29wIGwgMDtcbiAgICByZXN1bHRcblxuICBsZXQgc3ViIGEgb2ZzIGxlbiA9XG4gICAgY2hlY2sgYSBvZnMgbGVuIFwiRmxvYXQuQXJyYXkuc3ViXCI7XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsZW4gaW5cbiAgICB1bnNhZmVfYmxpdCBhIG9mcyByZXN1bHQgMCBsZW47XG4gICAgcmVzdWx0XG5cbiAgbGV0IGNvcHkgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbCBpblxuICAgIHVuc2FmZV9ibGl0IGEgMCByZXN1bHQgMCBsO1xuICAgIHJlc3VsdFxuXG4gIGxldCBmaWxsIGEgb2ZzIGxlbiB2ID1cbiAgICBjaGVjayBhIG9mcyBsZW4gXCJGbG9hdC5BcnJheS5maWxsXCI7XG4gICAgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHZcblxuICBsZXQgYmxpdCBzcmMgc29mcyBkc3QgZG9mcyBsZW4gPVxuICAgIGNoZWNrIHNyYyBzb2ZzIGxlbiBcIkZsb2F0LmFycmF5LmJsaXRcIjtcbiAgICBjaGVjayBkc3QgZG9mcyBsZW4gXCJGbG9hdC5hcnJheS5ibGl0XCI7XG4gICAgdW5zYWZlX2JsaXQgc3JjIHNvZnMgZHN0IGRvZnMgbGVuXG5cbiAgbGV0IHRvX2xpc3QgYSA9XG4gICAgTGlzdC5pbml0IChsZW5ndGggYSkgKHVuc2FmZV9nZXQgYSlcblxuICBsZXQgb2ZfbGlzdCBsID1cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIChMaXN0Lmxlbmd0aCBsKSBpblxuICAgIGxldCByZWMgZmlsbCBpIGwgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IHJlc3VsdFxuICAgICAgfCBoIDo6IHQgLT4gdW5zYWZlX3NldCByZXN1bHQgaSBoOyBmaWxsIChpICsgMSkgdFxuICAgIGluXG4gICAgZmlsbCAwIGxcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXIgZiBhID1cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyMiBmIGEgYiA9XG4gICAgaWYgbGVuZ3RoIGEgPD4gbGVuZ3RoIGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5pdGVyMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICAgIGVsc2VcbiAgICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkgZG9uZVxuXG4gIGxldCBtYXAgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuICBsZXQgbWFwMiBmIGEgYiA9XG4gICAgbGV0IGxhID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgbGIgPSBsZW5ndGggYiBpblxuICAgIGlmIGxhIDw+IGxiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkubWFwMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gY3JlYXRlIGxhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbGEgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyaSBmIGEgPVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4gIGxldCBtYXBpIGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gICAgbGV0IHIgPSByZWYgeCBpblxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gICAgZG9uZTtcbiAgICAhclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9sZF9yaWdodCBmIGEgeCA9XG4gICAgbGV0IHIgPSByZWYgeCBpblxuICAgIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgICByIDo9IGYgKHVuc2FmZV9nZXQgYSBpKSAhclxuICAgIGRvbmU7XG4gICAgIXJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGV4aXN0cyBwIGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb3JfYWxsIHAgYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiBsb29wIChpICsgMSlcbiAgICAgIGVsc2UgZmFsc2UgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG1lbSB4IGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIGNvbXBhcmUgKHVuc2FmZV9nZXQgYSBpKSB4ID0gMCB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuICAoKiBtb3N0bHkgZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sLCBidXQgc2xpZ2h0bHkgZGlmZmVyZW50ICopXG4gIGxldCBtZW1faWVlZSB4IGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIHggPSAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBleGNlcHRpb24gQm90dG9tIG9mIGludFxuICBsZXQgc29ydCBjbXAgYSA9XG4gICAgbGV0IG1heHNvbiBsIGkgPVxuICAgICAgbGV0IGkzMSA9IGkraStpKzEgaW5cbiAgICAgIGxldCB4ID0gcmVmIGkzMSBpblxuICAgICAgaWYgaTMxKzIgPCBsIHRoZW4gYmVnaW5cbiAgICAgICAgaWYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDAgdGhlbiB4IDo9IGkzMSsxO1xuICAgICAgICBpZiBjbXAgKGdldCBhICF4KSAoZ2V0IGEgKGkzMSsyKSkgPCAwIHRoZW4geCA6PSBpMzErMjtcbiAgICAgICAgIXhcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIGlmIGkzMSsxIDwgbCAmJiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMFxuICAgICAgICB0aGVuIGkzMSsxXG4gICAgICAgIGVsc2UgaWYgaTMxIDwgbCB0aGVuIGkzMSBlbHNlIHJhaXNlIChCb3R0b20gaSlcbiAgICBpblxuICAgIGxldCByZWMgdHJpY2tsZWRvd24gbCBpIGUgPVxuICAgICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgICBpZiBjbXAgKGdldCBhIGopIGUgPiAwIHRoZW4gYmVnaW5cbiAgICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICAgIHRyaWNrbGVkb3duIGwgaiBlO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGEgaSBlO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IHRyaWNrbGUgbCBpIGUgPSB0cnkgdHJpY2tsZWRvd24gbCBpIGUgd2l0aCBCb3R0b20gaSAtPiBzZXQgYSBpIGUgaW5cbiAgICBsZXQgcmVjIGJ1YmJsZWRvd24gbCBpID1cbiAgICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICBidWJibGVkb3duIGwgalxuICAgIGluXG4gICAgbGV0IGJ1YmJsZSBsIGkgPSB0cnkgYnViYmxlZG93biBsIGkgd2l0aCBCb3R0b20gaSAtPiBpIGluXG4gICAgbGV0IHJlYyB0cmlja2xldXAgaSBlID1cbiAgICAgIGxldCBmYXRoZXIgPSAoaSAtIDEpIC8gMyBpblxuICAgICAgYXNzZXJ0IChpIDw+IGZhdGhlcik7XG4gICAgICBpZiBjbXAgKGdldCBhIGZhdGhlcikgZSA8IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgYSBpIChnZXQgYSBmYXRoZXIpO1xuICAgICAgICBpZiBmYXRoZXIgPiAwIHRoZW4gdHJpY2tsZXVwIGZhdGhlciBlIGVsc2Ugc2V0IGEgMCBlO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGEgaSBlO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGZvciBpID0gKGwgKyAxKSAvIDMgLSAxIGRvd250byAwIGRvIHRyaWNrbGUgbCBpIChnZXQgYSBpKTsgZG9uZTtcbiAgICBmb3IgaSA9IGwgLSAxIGRvd250byAyIGRvXG4gICAgICBsZXQgZSA9IChnZXQgYSBpKSBpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgMCk7XG4gICAgICB0cmlja2xldXAgKGJ1YmJsZSBpIDApIGU7XG4gICAgZG9uZTtcbiAgICBpZiBsID4gMSB0aGVuIChsZXQgZSA9IChnZXQgYSAxKSBpbiBzZXQgYSAxIChnZXQgYSAwKTsgc2V0IGEgMCBlKVxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCwgZXhjZXB0IGZvciB0aGUgY2FsbCB0byBbY3JlYXRlXSAqKVxuICBsZXQgY3V0b2ZmID0gNVxuICBsZXQgc3RhYmxlX3NvcnQgY21wIGEgPVxuICAgIGxldCBtZXJnZSBzcmMxb2ZzIHNyYzFsZW4gc3JjMiBzcmMyb2ZzIHNyYzJsZW4gZHN0IGRzdG9mcyA9XG4gICAgICBsZXQgc3JjMXIgPSBzcmMxb2ZzICsgc3JjMWxlbiBhbmQgc3JjMnIgPSBzcmMyb2ZzICsgc3JjMmxlbiBpblxuICAgICAgbGV0IHJlYyBsb29wIGkxIHMxIGkyIHMyIGQgPVxuICAgICAgICBpZiBjbXAgczEgczIgPD0gMCB0aGVuIGJlZ2luXG4gICAgICAgICAgc2V0IGRzdCBkIHMxO1xuICAgICAgICAgIGxldCBpMSA9IGkxICsgMSBpblxuICAgICAgICAgIGlmIGkxIDwgc3JjMXIgdGhlblxuICAgICAgICAgICAgbG9vcCBpMSAoZ2V0IGEgaTEpIGkyIHMyIChkICsgMSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBibGl0IHNyYzIgaTIgZHN0IChkICsgMSkgKHNyYzJyIC0gaTIpXG4gICAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgc2V0IGRzdCBkIHMyO1xuICAgICAgICAgIGxldCBpMiA9IGkyICsgMSBpblxuICAgICAgICAgIGlmIGkyIDwgc3JjMnIgdGhlblxuICAgICAgICAgICAgbG9vcCBpMSBzMSBpMiAoZ2V0IHNyYzIgaTIpIChkICsgMSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBibGl0IGEgaTEgZHN0IChkICsgMSkgKHNyYzFyIC0gaTEpXG4gICAgICAgIGVuZFxuICAgICAgaW4gbG9vcCBzcmMxb2ZzIChnZXQgYSBzcmMxb2ZzKSBzcmMyb2ZzIChnZXQgc3JjMiBzcmMyb2ZzKSBkc3RvZnM7XG4gICAgaW5cbiAgICBsZXQgaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgbGV0IGUgPSAoZ2V0IGEgKHNyY29mcyArIGkpKSBpblxuICAgICAgICBsZXQgaiA9IHJlZiAoZHN0b2ZzICsgaSAtIDEpIGluXG4gICAgICAgIHdoaWxlICghaiA+PSBkc3RvZnMgJiYgY21wIChnZXQgZHN0ICFqKSBlID4gMCkgZG9cbiAgICAgICAgICBzZXQgZHN0ICghaiArIDEpIChnZXQgZHN0ICFqKTtcbiAgICAgICAgICBkZWNyIGo7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHNldCBkc3QgKCFqICsgMSkgZTtcbiAgICAgIGRvbmU7XG4gICAgaW5cbiAgICBsZXQgcmVjIHNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgICAgaWYgbGVuIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IGwxID0gbGVuIC8gMiBpblxuICAgICAgICBsZXQgbDIgPSBsZW4gLSBsMSBpblxuICAgICAgICBzb3J0dG8gKHNyY29mcyArIGwxKSBkc3QgKGRzdG9mcyArIGwxKSBsMjtcbiAgICAgICAgc29ydHRvIHNyY29mcyBhIChzcmNvZnMgKyBsMikgbDE7XG4gICAgICAgIG1lcmdlIChzcmNvZnMgKyBsMikgbDEgZHN0IChkc3RvZnMgKyBsMSkgbDIgZHN0IGRzdG9mcztcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBpZiBsIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gMCBhIDAgbCBlbHNlIGJlZ2luXG4gICAgICBsZXQgbDEgPSBsIC8gMiBpblxuICAgICAgbGV0IGwyID0gbCAtIGwxIGluXG4gICAgICBsZXQgdCA9IGNyZWF0ZSBsMiBpblxuICAgICAgc29ydHRvIGwxIHQgMCBsMjtcbiAgICAgIHNvcnR0byAwIGEgbDIgbDE7XG4gICAgICBtZXJnZSBsMiBsMSB0IDAgbDIgYSAwO1xuICAgIGVuZFxuXG4gIGxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgdG9fc2VxIGEgPVxuICAgIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgICB0aGVuXG4gICAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgICAgU2VxLkNvbnMgKHgsIGF1eCAoaSsxKSlcbiAgICAgIGVsc2UgU2VxLk5pbFxuICAgIGluXG4gICAgYXV4IDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IHRvX3NlcWkgYSA9XG4gICAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICAgIHRoZW5cbiAgICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgICAgIGVsc2UgU2VxLk5pbFxuICAgIGluXG4gICAgYXV4IDBcblxuICAoKiBtb3N0bHkgZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBvZl9yZXZfbGlzdCBsID1cbiAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgIGxldCBhID0gY3JlYXRlIGxlbiBpblxuICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgW10gLT4gYVxuICAgICAgfCBoZDo6dGwgLT4gdW5zYWZlX3NldCBhIGkgaGQ7IGZpbGwgKGktMSkgdGxcbiAgICBpblxuICAgIGZpbGwgKGxlbi0xKSBsXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBvZl9zZXEgaSA9XG4gICAgbGV0IGwgPSBTZXEuZm9sZF9sZWZ0IChmdW4gYWNjIHggLT4geDo6YWNjKSBbXSBpIGluXG4gICAgb2ZfcmV2X2xpc3QgbFxuXG5cbiAgbGV0IG1hcF90b19hcnJheSBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBpZiBsID0gMCB0aGVuIFt8IHxdIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gQXJyYXkubWFrZSBsIChmICh1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgICAgQXJyYXkudW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG5cbiAgbGV0IG1hcF9mcm9tX2FycmF5IGYgYSA9XG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIChBcnJheS51bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbmVuZFxuXG5tb2R1bGUgQXJyYXlMYWJlbHMgPSBBcnJheVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgbGlzdHMuICopXG50eXBlICdhIHQgPSAnYSBsaXN0ID0gW10gfCAoOjopIG9mICdhICogJ2EgbGlzdFxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgKilcblxubGV0IHJlYyBsZW5ndGhfYXV4IGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gbGVuXG4gIHwgXzo6bCAtPiBsZW5ndGhfYXV4IChsZW4gKyAxKSBsXG5cbmxldCBsZW5ndGggbCA9IGxlbmd0aF9hdXggMCBsXG5cbmxldCBjb25zIGEgbCA9IGE6OmxcblxubGV0IGhkID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcImhkXCJcbiAgfCBhOjpfIC0+IGFcblxubGV0IHRsID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcInRsXCJcbiAgfCBfOjpsIC0+IGxcblxubGV0IG50aCBsIG4gPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5udGhcIiBlbHNlXG4gIGxldCByZWMgbnRoX2F1eCBsIG4gPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gZmFpbHdpdGggXCJudGhcIlxuICAgIHwgYTo6bCAtPiBpZiBuID0gMCB0aGVuIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IG50aF9vcHQgbCBuID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QubnRoXCIgZWxzZVxuICBsZXQgcmVjIG50aF9hdXggbCBuID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IE5vbmVcbiAgICB8IGE6OmwgLT4gaWYgbiA9IDAgdGhlbiBTb21lIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IGFwcGVuZCA9IChAKVxuXG5sZXQgcmVjIHJldl9hcHBlbmQgbDEgbDIgPVxuICBtYXRjaCBsMSB3aXRoXG4gICAgW10gLT4gbDJcbiAgfCBhIDo6IGwgLT4gcmV2X2FwcGVuZCBsIChhIDo6IGwyKVxuXG5sZXQgcmV2IGwgPSByZXZfYXBwZW5kIGwgW11cblxubGV0IHJlYyBpbml0X3RhaWxyZWNfYXV4IGFjYyBpIG4gZiA9XG4gIGlmIGkgPj0gbiB0aGVuIGFjY1xuICBlbHNlIGluaXRfdGFpbHJlY19hdXggKGYgaSA6OiBhY2MpIChpKzEpIG4gZlxuXG5sZXQgcmVjIGluaXRfYXV4IGkgbiBmID1cbiAgaWYgaSA+PSBuIHRoZW4gW11cbiAgZWxzZVxuICAgIGxldCByID0gZiBpIGluXG4gICAgciA6OiBpbml0X2F1eCAoaSsxKSBuIGZcblxubGV0IHJldl9pbml0X3RocmVzaG9sZCA9XG4gIG1hdGNoIFN5cy5iYWNrZW5kX3R5cGUgd2l0aFxuICB8IFN5cy5OYXRpdmUgfCBTeXMuQnl0ZWNvZGUgLT4gMTBfMDAwXG4gICgqIFdlIGRvbid0IGtub3cgdGhlIHNpemUgb2YgdGhlIHN0YWNrLCBiZXR0ZXIgYmUgc2FmZSBhbmQgYXNzdW1lIGl0J3NcbiAgICAgc21hbGwuICopXG4gIHwgU3lzLk90aGVyIF8gLT4gNTBcblxubGV0IGluaXQgbGVuIGYgPVxuICBpZiBsZW4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0LmluaXRcIiBlbHNlXG4gIGlmIGxlbiA+IHJldl9pbml0X3RocmVzaG9sZCB0aGVuIHJldiAoaW5pdF90YWlscmVjX2F1eCBbXSAwIGxlbiBmKVxuICBlbHNlIGluaXRfYXV4IDAgbGVuIGZcblxubGV0IHJlYyBmbGF0dGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGw6OnIgLT4gbCBAIGZsYXR0ZW4gclxuXG5sZXQgY29uY2F0ID0gZmxhdHRlblxuXG5sZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGE6OmwgLT4gbGV0IHIgPSBmIGEgaW4gciA6OiBtYXAgZiBsXG5cbmxldCByZWMgbWFwaSBpIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgYTo6bCAtPiBsZXQgciA9IGYgaSBhIGluIHIgOjogbWFwaSAoaSArIDEpIGYgbFxuXG5sZXQgbWFwaSBmIGwgPSBtYXBpIDAgZiBsXG5cbmxldCByZXZfbWFwIGYgbCA9XG4gIGxldCByZWMgcm1hcF9mIGFjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjdVxuICAgIHwgYTo6bCAtPiBybWFwX2YgKGYgYSA6OiBhY2N1KSBsXG4gIGluXG4gIHJtYXBfZiBbXSBsXG5cblxubGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgYTo6bCAtPiBmIGE7IGl0ZXIgZiBsXG5cbmxldCByZWMgaXRlcmkgaSBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IGE6OmwgLT4gZiBpIGE7IGl0ZXJpIChpICsgMSkgZiBsXG5cbmxldCBpdGVyaSBmIGwgPSBpdGVyaSAwIGYgbFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjY3UgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgIFtdIC0+IGFjY3VcbiAgfCBhOjpsIC0+IGZvbGRfbGVmdCBmIChmIGFjY3UgYSkgbFxuXG5sZXQgcmVjIGZvbGRfcmlnaHQgZiBsIGFjY3UgPVxuICBtYXRjaCBsIHdpdGhcbiAgICBbXSAtPiBhY2N1XG4gIHwgYTo6bCAtPiBmIGEgKGZvbGRfcmlnaHQgZiBsIGFjY3UpXG5cbmxldCByZWMgbWFwMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBsZXQgciA9IGYgYTEgYTIgaW4gciA6OiBtYXAyIGYgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0Lm1hcDJcIlxuXG5sZXQgcmV2X21hcDIgZiBsMSBsMiA9XG4gIGxldCByZWMgcm1hcDJfZiBhY2N1IGwxIGwyID1cbiAgICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgfCAoW10sIFtdKSAtPiBhY2N1XG4gICAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHJtYXAyX2YgKGYgYTEgYTIgOjogYWNjdSkgbDEgbDJcbiAgICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QucmV2X21hcDJcIlxuICBpblxuICBybWFwMl9mIFtdIGwxIGwyXG5cblxubGV0IHJlYyBpdGVyMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+ICgpXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmIGExIGEyOyBpdGVyMiBmIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5pdGVyMlwiXG5cbmxldCByZWMgZm9sZF9sZWZ0MiBmIGFjY3UgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZm9sZF9sZWZ0MiBmIChmIGFjY3UgYTEgYTIpIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb2xkX2xlZnQyXCJcblxubGV0IHJlYyBmb2xkX3JpZ2h0MiBmIGwxIGwyIGFjY3UgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZiBhMSBhMiAoZm9sZF9yaWdodDIgZiBsMSBsMiBhY2N1KVxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZm9sZF9yaWdodDJcIlxuXG5sZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gdHJ1ZVxuICB8IGE6OmwgLT4gcCBhICYmIGZvcl9hbGwgcCBsXG5cbmxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBwIGEgfHwgZXhpc3RzIHAgbFxuXG5sZXQgcmVjIGZvcl9hbGwyIHAgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gdHJ1ZVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcCBhMSBhMiAmJiBmb3JfYWxsMiBwIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb3JfYWxsMlwiXG5cbmxldCByZWMgZXhpc3RzMiBwIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IGZhbHNlXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBwIGExIGEyIHx8IGV4aXN0czIgcCBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZXhpc3RzMlwiXG5cbmxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtIHggbFxuXG5sZXQgcmVjIG1lbXEgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IGEgPT0geCB8fCBtZW1xIHggbFxuXG5sZXQgcmVjIGFzc29jIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGIgZWxzZSBhc3NvYyB4IGxcblxubGV0IHJlYyBhc3NvY19vcHQgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gTm9uZVxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIFNvbWUgYiBlbHNlIGFzc29jX29wdCB4IGxcblxubGV0IHJlYyBhc3NxIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGEgPT0geCB0aGVuIGIgZWxzZSBhc3NxIHggbFxuXG5sZXQgcmVjIGFzc3Ffb3B0IHggPSBmdW5jdGlvblxuICAgIFtdIC0+IE5vbmVcbiAgfCAoYSxiKTo6bCAtPiBpZiBhID09IHggdGhlbiBTb21lIGIgZWxzZSBhc3NxX29wdCB4IGxcblxubGV0IHJlYyBtZW1fYXNzb2MgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gZmFsc2VcbiAgfCAoYSwgXykgOjogbCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtX2Fzc29jIHggbFxuXG5sZXQgcmVjIG1lbV9hc3NxIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IGZhbHNlXG4gIHwgKGEsIF8pIDo6IGwgLT4gYSA9PSB4IHx8IG1lbV9hc3NxIHggbFxuXG5sZXQgcmVjIHJlbW92ZV9hc3NvYyB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT5cbiAgICAgIGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGwgZWxzZSBwYWlyIDo6IHJlbW92ZV9hc3NvYyB4IGxcblxubGV0IHJlYyByZW1vdmVfYXNzcSB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT4gaWYgYSA9PSB4IHRoZW4gbCBlbHNlIHBhaXIgOjogcmVtb3ZlX2Fzc3EgeCBsXG5cbmxldCByZWMgZmluZCBwID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4geCBlbHNlIGZpbmQgcCBsXG5cbmxldCByZWMgZmluZF9vcHQgcCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gTm9uZVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBTb21lIHggZWxzZSBmaW5kX29wdCBwIGxcblxubGV0IHJlYyBmaW5kX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBOb25lXG4gIHwgeCA6OiBsIC0+XG4gICAgIGJlZ2luIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgfCBTb21lIF8gYXMgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgIHwgTm9uZSAtPiBmaW5kX21hcCBmIGxcbiAgICAgZW5kXG5cbmxldCBmaW5kX2FsbCBwID1cbiAgbGV0IHJlYyBmaW5kIGFjY3UgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJldiBhY2N1XG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIGZpbmQgKHggOjogYWNjdSkgbCBlbHNlIGZpbmQgYWNjdSBsIGluXG4gIGZpbmQgW11cblxubGV0IGZpbHRlciA9IGZpbmRfYWxsXG5cbmxldCBmaWx0ZXJpIHAgbCA9XG4gIGxldCByZWMgYXV4IGkgYWNjID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByZXYgYWNjXG4gIHwgeDo6bCAtPiBhdXggKGkgKyAxKSAoaWYgcCBpIHggdGhlbiB4OjphY2MgZWxzZSBhY2MpIGxcbiAgaW5cbiAgYXV4IDAgW10gbFxuXG5sZXQgZmlsdGVyX21hcCBmID1cbiAgbGV0IHJlYyBhdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjdVxuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBhdXggYWNjdSBsXG4gICAgICAgIHwgU29tZSB2IC0+IGF1eCAodiA6OiBhY2N1KSBsXG4gIGluXG4gIGF1eCBbXVxuXG5sZXQgY29uY2F0X21hcCBmIGwgPVxuICBsZXQgcmVjIGF1eCBmIGFjYyA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjXG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICBsZXQgeHMgPSBmIHggaW5cbiAgICAgICBhdXggZiAocmV2X2FwcGVuZCB4cyBhY2MpIGxcbiAgaW4gYXV4IGYgW10gbFxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjY3UgbCA9XG4gIGxldCByZWMgYXV4IGFjY3UgbF9hY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY3UsIHJldiBsX2FjY3VcbiAgICB8IHggOjogbCAtPlxuICAgICAgICBsZXQgYWNjdSwgeCA9IGYgYWNjdSB4IGluXG4gICAgICAgIGF1eCBhY2N1ICh4IDo6IGxfYWNjdSkgbCBpblxuICBhdXggYWNjdSBbXSBsXG5cbmxldCBwYXJ0aXRpb24gcCBsID1cbiAgbGV0IHJlYyBwYXJ0IHllcyBubyA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKHJldiB5ZXMsIHJldiBubylcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gcGFydCAoeCA6OiB5ZXMpIG5vIGwgZWxzZSBwYXJ0IHllcyAoeCA6OiBubykgbCBpblxuICBwYXJ0IFtdIFtdIGxcblxubGV0IHBhcnRpdGlvbl9tYXAgcCBsID1cbiAgbGV0IHJlYyBwYXJ0IGxlZnQgcmlnaHQgPSBmdW5jdGlvblxuICB8IFtdIC0+IChyZXYgbGVmdCwgcmV2IHJpZ2h0KVxuICB8IHggOjogbCAtPlxuICAgICBiZWdpbiBtYXRjaCBwIHggd2l0aFxuICAgICAgIHwgRWl0aGVyLkxlZnQgdiAtPiBwYXJ0ICh2IDo6IGxlZnQpIHJpZ2h0IGxcbiAgICAgICB8IEVpdGhlci5SaWdodCB2IC0+IHBhcnQgbGVmdCAodiA6OiByaWdodCkgbFxuICAgICBlbmRcbiAgaW5cbiAgcGFydCBbXSBbXSBsXG5cbmxldCByZWMgc3BsaXQgPSBmdW5jdGlvblxuICAgIFtdIC0+IChbXSwgW10pXG4gIHwgKHgseSk6OmwgLT5cbiAgICAgIGxldCAocngsIHJ5KSA9IHNwbGl0IGwgaW4gKHg6OnJ4LCB5OjpyeSlcblxubGV0IHJlYyBjb21iaW5lIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiAoYTEsIGEyKSA6OiBjb21iaW5lIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5jb21iaW5lXCJcblxuKCoqIHNvcnRpbmcgKilcblxubGV0IHJlYyBtZXJnZSBjbXAgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBsMiAtPiBsMlxuICB8IGwxLCBbXSAtPiBsMVxuICB8IGgxIDo6IHQxLCBoMiA6OiB0MiAtPlxuICAgICAgaWYgY21wIGgxIGgyIDw9IDBcbiAgICAgIHRoZW4gaDEgOjogbWVyZ2UgY21wIHQxIGwyXG4gICAgICBlbHNlIGgyIDo6IG1lcmdlIGNtcCBsMSB0MlxuXG5cbmxldCBzdGFibGVfc29ydCBjbXAgbCA9XG4gIGxldCByZWMgcmV2X21lcmdlIGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPD0gMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPSBpZiBjbXAgeDEgeDIgPD0gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA8PSAwIHRoZW5cbiAgICAgICAgICAgIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA8PSAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzIDw9IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gcmV2X3NvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gcmV2X3NvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZV9yZXYgczEgczIgW10sIHRsKVxuICBhbmQgcmV2X3NvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID0gaWYgY21wIHgxIHgyID4gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA+IDAgdGhlblxuICAgICAgICAgICAgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPiAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzID4gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHNvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlIHMxIHMyIFtdLCB0bClcbiAgaW5cbiAgbGV0IGxlbiA9IGxlbmd0aCBsIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBsIGVsc2UgZnN0IChzb3J0IGxlbiBsKVxuXG5cbmxldCBzb3J0ID0gc3RhYmxlX3NvcnRcbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiBOb3RlOiBvbiBhIGxpc3Qgb2YgbGVuZ3RoIGJldHdlZW4gYWJvdXQgMTAwMDAwIChkZXBlbmRpbmcgb24gdGhlIG1pbm9yXG4gICBoZWFwIHNpemUgYW5kIHRoZSB0eXBlIG9mIHRoZSBsaXN0KSBhbmQgU3lzLm1heF9hcnJheV9zaXplLCBpdCBpc1xuICAgYWN0dWFsbHkgZmFzdGVyIHRvIHVzZSB0aGUgZm9sbG93aW5nLCBidXQgaXQgbWlnaHQgYWxzbyB1c2UgbW9yZSBtZW1vcnlcbiAgIGJlY2F1c2UgdGhlIGFyZ3VtZW50IGxpc3QgY2Fubm90IGJlIGRlYWxsb2NhdGVkIGluY3JlbWVudGFsbHkuXG5cbiAgIEFsc28sIHRoZXJlIHNlZW1zIHRvIGJlIGEgYnVnIGluIHRoaXMgY29kZSBvciBpbiB0aGVcbiAgIGltcGxlbWVudGF0aW9uIG9mIG9ial90cnVuY2F0ZS5cblxuZXh0ZXJuYWwgb2JqX3RydW5jYXRlIDogJ2EgYXJyYXkgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcblxubGV0IGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYSA9XG4gIGxldCBsID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGFjY3UgbiBwID1cbiAgICBpZiBwIDw9IDAgdGhlbiBhY2N1IGVsc2UgYmVnaW5cbiAgICAgIGlmIHAgPSBuIHRoZW4gYmVnaW5cbiAgICAgICAgb2JqX3RydW5jYXRlIGEgcDtcbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSAobi0xMDAwKSAocC0xKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSBuIChwLTEpXG4gICAgICBlbmRcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBbXSAobC0xMDAwKSBsXG5cblxubGV0IHN0YWJsZV9zb3J0IGNtcCBsID1cbiAgbGV0IGEgPSBBcnJheS5vZl9saXN0IGwgaW5cbiAgQXJyYXkuc3RhYmxlX3NvcnQgY21wIGE7XG4gIGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYVxuXG4qKVxuXG5cbigqKiBzb3J0aW5nICsgcmVtb3ZpbmcgZHVwbGljYXRlcyAqKVxuXG5sZXQgc29ydF91bmlxIGNtcCBsID1cbiAgbGV0IHJlYyByZXZfbWVyZ2UgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGxldCBjID0gY21wIGgxIGgyIGluXG4gICAgICAgIGlmIGMgPSAwIHRoZW4gcmV2X21lcmdlIHQxIHQyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSBpZiBjIDwgMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBsZXQgYyA9IGNtcCBoMSBoMiBpblxuICAgICAgICBpZiBjID0gMCB0aGVuIHJldl9tZXJnZV9yZXYgdDEgdDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIGlmIGMgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSByZXZfc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSByZXZfc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlX3JldiBzMSBzMiBbXSwgdGwpXG4gIGFuZCByZXZfc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSBzb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHNvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZSBzMSBzMiBbXSwgdGwpXG4gIGluXG4gIGxldCBsZW4gPSBsZW5ndGggbCBpblxuICBpZiBsZW4gPCAyIHRoZW4gbCBlbHNlIGZzdCAoc29ydCBsZW4gbClcblxuXG5sZXQgcmVjIGNvbXBhcmVfbGVuZ3RocyBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIFtdIC0+IDBcbiAgfCBbXSwgXyAtPiAtMVxuICB8IF8sIFtdIC0+IDFcbiAgfCBfIDo6IGwxLCBfIDo6IGwyIC0+IGNvbXBhcmVfbGVuZ3RocyBsMSBsMlxuOztcblxubGV0IHJlYyBjb21wYXJlX2xlbmd0aF93aXRoIGwgbiA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+XG4gICAgaWYgbiA9IDAgdGhlbiAwIGVsc2VcbiAgICAgIGlmIG4gPiAwIHRoZW4gLTEgZWxzZSAxXG4gIHwgXyA6OiBsIC0+XG4gICAgaWYgbiA8PSAwIHRoZW4gMSBlbHNlXG4gICAgICBjb21wYXJlX2xlbmd0aF93aXRoIGwgKG4tMSlcbjs7XG5cbigqKiB7MSBDb21wYXJpc29ufSAqKVxuXG4oKiBOb3RlOiB3ZSBhcmUgKm5vdCogc2hvcnRjdXR0aW5nIHRoZSBsaXN0IGJ5IHVzaW5nXG4gICBbTGlzdC5jb21wYXJlX2xlbmd0aHNdIGZpcnN0OyB0aGlzIG1heSBiZSBzbG93ZXIgb24gbG9uZyBsaXN0c1xuICAgaW1tZWRpYXRlbHkgc3RhcnQgd2l0aCBkaXN0aW5jdCBlbGVtZW50cy4gSXQgaXMgYWxzbyBpbmNvcnJlY3QgZm9yXG4gICBbY29tcGFyZV0gYmVsb3csIGFuZCBpdCBpcyBiZXR0ZXIgKHByaW5jaXBsZSBvZiBsZWFzdCBzdXJwcmlzZSkgdG9cbiAgIHVzZSB0aGUgc2FtZSBhcHByb2FjaCBmb3IgYm90aCBmdW5jdGlvbnMuICopXG5sZXQgcmVjIGVxdWFsIGVxIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gdHJ1ZVxuICB8IFtdLCBfOjpfIHwgXzo6XywgW10gLT4gZmFsc2VcbiAgfCBhMTo6bDEsIGEyOjpsMiAtPiBlcSBhMSBhMiAmJiBlcXVhbCBlcSBsMSBsMlxuXG5sZXQgcmVjIGNvbXBhcmUgY21wIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gMFxuICB8IFtdLCBfOjpfIC0+IC0xXG4gIHwgXzo6XywgW10gLT4gMVxuICB8IGExOjpsMSwgYTI6OmwyIC0+XG4gICAgbGV0IGMgPSBjbXAgYTEgYTIgaW5cbiAgICBpZiBjIDw+IDAgdGhlbiBjXG4gICAgZWxzZSBjb21wYXJlIGNtcCBsMSBsMlxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGwgPVxuICBsZXQgcmVjIGF1eCBsICgpID0gbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBTZXEuTmlsXG4gICAgfCB4IDo6IHRhaWwgLT4gU2VxLkNvbnMgKHgsIGF1eCB0YWlsKVxuICBpblxuICBhdXggbFxuXG5sZXQgb2Zfc2VxIHNlcSA9XG4gIGxldCByZWMgZGlyZWN0IGRlcHRoIHNlcSA6IF8gbGlzdCA9XG4gICAgaWYgZGVwdGg9MFxuICAgIHRoZW5cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIHNlcVxuICAgICAgfD4gcmV2ICgqIHRhaWxyZWMgKilcbiAgICBlbHNlIG1hdGNoIHNlcSgpIHdpdGhcbiAgICAgIHwgU2VxLk5pbCAtPiBbXVxuICAgICAgfCBTZXEuQ29ucyAoeCwgbmV4dCkgLT4geCA6OiBkaXJlY3QgKGRlcHRoLTEpIG5leHRcbiAgaW5cbiAgZGlyZWN0IDUwMCBzZXFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjEgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gaW5fY2hhbm5lbFxuXG50eXBlIG9wZW5fZmxhZyA9IFN0ZGxpYi5vcGVuX2ZsYWcgPVxuICB8IE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5cbmxldCBzdGRpbiA9IFN0ZGxpYi5zdGRpblxubGV0IG9wZW5fYmluID0gU3RkbGliLm9wZW5faW5fYmluXG5sZXQgb3Blbl90ZXh0ID0gU3RkbGliLm9wZW5faW5cbmxldCBvcGVuX2dlbiA9IFN0ZGxpYi5vcGVuX2luX2dlblxuXG5sZXQgd2l0aF9vcGVuIG9wZW5mdW4gcyBmID1cbiAgbGV0IGljID0gb3BlbmZ1biBzIGluXG4gIEZ1bi5wcm90ZWN0IH5maW5hbGx5OihmdW4gKCkgLT4gU3RkbGliLmNsb3NlX2luX25vZXJyIGljKVxuICAgIChmdW4gKCkgLT4gZiBpYylcblxubGV0IHdpdGhfb3Blbl9iaW4gcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX2luX2JpbiBzIGZcblxubGV0IHdpdGhfb3Blbl90ZXh0IHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9pbiBzIGZcblxubGV0IHdpdGhfb3Blbl9nZW4gZmxhZ3MgcGVybSBzIGYgPVxuICB3aXRoX29wZW4gKFN0ZGxpYi5vcGVuX2luX2dlbiBmbGFncyBwZXJtKSBzIGZcblxubGV0IHNlZWsgPSBTdGRsaWIuTGFyZ2VGaWxlLnNlZWtfaW5cbmxldCBwb3MgPSBTdGRsaWIuTGFyZ2VGaWxlLnBvc19pblxubGV0IGxlbmd0aCA9IFN0ZGxpYi5MYXJnZUZpbGUuaW5fY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZSA9IFN0ZGxpYi5jbG9zZV9pblxubGV0IGNsb3NlX25vZXJyID0gU3RkbGliLmNsb3NlX2luX25vZXJyXG5cbmxldCBpbnB1dF9jaGFyIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2NoYXIgaWMgd2l0aFxuICB8IGMgLT4gU29tZSBjXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0X2J5dGUgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfYnl0ZSBpYyB3aXRoXG4gIHwgbiAtPiBTb21lIG5cbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXRfbGluZSBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9saW5lIGljIHdpdGhcbiAgfCBzIC0+IFNvbWUgc1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dCA9IFN0ZGxpYi5pbnB1dFxuXG5sZXQgcmVhbGx5X2lucHV0IGljIGJ1ZiBwb3MgbGVuID1cbiAgbWF0Y2ggU3RkbGliLnJlYWxseV9pbnB1dCBpYyBidWYgcG9zIGxlbiB3aXRoXG4gIHwgKCkgLT4gU29tZSAoKVxuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiA9XG4gIG1hdGNoIFN0ZGxpYi5yZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiB3aXRoXG4gIHwgcyAtPiBTb21lIHNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG4oKiBSZWFkIHVwIHRvIFtsZW5dIGJ5dGVzIGludG8gW2J1Zl0sIHN0YXJ0aW5nIGF0IFtvZnNdLiBSZXR1cm4gdG90YWwgYnl0ZXNcbiAgIHJlYWQuICopXG5sZXQgcmVhZF91cHRvIGljIGJ1ZiBvZnMgbGVuID1cbiAgbGV0IHJlYyBsb29wIG9mcyBsZW4gPVxuICAgIGlmIGxlbiA9IDAgdGhlbiBvZnNcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IFN0ZGxpYi5pbnB1dCBpYyBidWYgb2ZzIGxlbiBpblxuICAgICAgaWYgciA9IDAgdGhlblxuICAgICAgICBvZnNcbiAgICAgIGVsc2VcbiAgICAgICAgbG9vcCAob2ZzICsgcikgKGxlbiAtIHIpXG4gICAgZW5kXG4gIGluXG4gIGxvb3Agb2ZzIGxlbiAtIG9mc1xuXG4oKiBCZXN0IGVmZm9ydCBhdHRlbXB0IHRvIHJldHVybiBhIGJ1ZmZlciB3aXRoID49IChvZnMgKyBuKSBieXRlcyBvZiBzdG9yYWdlLFxuICAgYW5kIHN1Y2ggdGhhdCBpdCBjb2luY2lkZXMgd2l0aCBbYnVmXSBhdCBpbmRpY2VzIDwgW29mc10uXG5cbiAgIFRoZSByZXR1cm5lZCBidWZmZXIgaXMgZXF1YWwgdG8gW2J1Zl0gaXRzZWxmIGlmIGl0IGFscmVhZHkgaGFzIHN1ZmZpY2llbnRcbiAgIGZyZWUgc3BhY2UuXG5cbiAgIFRoZSByZXR1cm5lZCBidWZmZXIgbWF5IGhhdmUgKmZld2VyKiB0aGFuIFtvZnMgKyBuXSBieXRlcyBvZiBzdG9yYWdlIGlmIHRoaXNcbiAgIG51bWJlciBpcyA+IFtTeXMubWF4X3N0cmluZ19sZW5ndGhdLiBIb3dldmVyIHRoZSByZXR1cm5lZCBidWZmZXIgd2lsbFxuICAgKmFsd2F5cyogaGF2ZSA+IFtvZnNdIGJ5dGVzIG9mIHN0b3JhZ2UuIEluIHRoZSBsaW1pdGluZyBjYXNlIHdoZW4gW29mcyA9IGxlblxuICAgPSBTeXMubWF4X3N0cmluZ19sZW5ndGhdIChzbyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZXNpemUgdGhlIGJ1ZmZlciBhdFxuICAgYWxsKSwgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4gKilcblxubGV0IGVuc3VyZSBidWYgb2ZzIG4gPVxuICBsZXQgbGVuID0gQnl0ZXMubGVuZ3RoIGJ1ZiBpblxuICBpZiBsZW4gPj0gb2ZzICsgbiB0aGVuIGJ1ZlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IG5ld19sZW4gPSByZWYgbGVuIGluXG4gICAgd2hpbGUgIW5ld19sZW4gPCBvZnMgKyBuIGRvXG4gICAgICBuZXdfbGVuIDo9IDIgKiAhbmV3X2xlbiArIDFcbiAgICBkb25lO1xuICAgIGxldCBuZXdfbGVuID0gIW5ld19sZW4gaW5cbiAgICBsZXQgbmV3X2xlbiA9XG4gICAgICBpZiBuZXdfbGVuIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIG5ld19sZW5cbiAgICAgIGVsc2UgaWYgb2ZzIDwgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgICBlbHNlXG4gICAgICAgIGZhaWx3aXRoIFwiSW5fY2hhbm5lbC5pbnB1dF9hbGw6IGNoYW5uZWwgY29udGVudCBcXFxuICAgICAgICAgICAgICAgICAgaXMgbGFyZ2VyIHRoYW4gbWF4aW11bSBzdHJpbmcgbGVuZ3RoXCJcbiAgICBpblxuICAgIGxldCBuZXdfYnVmID0gQnl0ZXMuY3JlYXRlIG5ld19sZW4gaW5cbiAgICBCeXRlcy5ibGl0IGJ1ZiAwIG5ld19idWYgMCBvZnM7XG4gICAgbmV3X2J1ZlxuICBlbmRcblxubGV0IGlucHV0X2FsbCBpYyA9XG4gIGxldCBjaHVua19zaXplID0gNjU1MzYgaW4gKCogSU9fQlVGRkVSX1NJWkUgKilcbiAgbGV0IGluaXRpYWxfc2l6ZSA9XG4gICAgdHJ5XG4gICAgICBTdGRsaWIuaW5fY2hhbm5lbF9sZW5ndGggaWMgLSBTdGRsaWIucG9zX2luIGljXG4gICAgd2l0aCBTeXNfZXJyb3IgXyAtPlxuICAgICAgLTFcbiAgaW5cbiAgbGV0IGluaXRpYWxfc2l6ZSA9IGlmIGluaXRpYWxfc2l6ZSA8IDAgdGhlbiBjaHVua19zaXplIGVsc2UgaW5pdGlhbF9zaXplIGluXG4gIGxldCBpbml0aWFsX3NpemUgPVxuICAgIGlmIGluaXRpYWxfc2l6ZSA8PSBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgaW5pdGlhbF9zaXplXG4gICAgZWxzZVxuICAgICAgU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gIGluXG4gIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgaW5pdGlhbF9zaXplIGluXG4gIGxldCBucmVhZCA9IHJlYWRfdXB0byBpYyBidWYgMCBpbml0aWFsX3NpemUgaW5cbiAgaWYgbnJlYWQgPCBpbml0aWFsX3NpemUgdGhlbiAoKiBFT0YgcmVhY2hlZCwgYnVmZmVyIHBhcnRpYWxseSBmaWxsZWQgKilcbiAgICBCeXRlcy5zdWJfc3RyaW5nIGJ1ZiAwIG5yZWFkXG4gIGVsc2UgYmVnaW4gKCogbnJlYWQgPSBpbml0aWFsX3NpemUsIG1heWJlIEVPRiByZWFjaGVkICopXG4gICAgbWF0Y2ggU3RkbGliLmlucHV0X2NoYXIgaWMgd2l0aFxuICAgIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+XG4gICAgICAgICgqIEVPRiByZWFjaGVkLCBidWZmZXIgaXMgY29tcGxldGVseSBmaWxsZWQgKilcbiAgICAgICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBidWZcbiAgICB8IGMgLT5cbiAgICAgICAgKCogRU9GIG5vdCByZWFjaGVkICopXG4gICAgICAgIGxldCByZWMgbG9vcCBidWYgb2ZzID1cbiAgICAgICAgICBsZXQgYnVmID0gZW5zdXJlIGJ1ZiBvZnMgY2h1bmtfc2l6ZSBpblxuICAgICAgICAgIGxldCByZW0gPSBCeXRlcy5sZW5ndGggYnVmIC0gb2ZzIGluXG4gICAgICAgICAgKCogW3JlbV0gY2FuIGJlIDwgW2NodW5rX3NpemVdIGlmIGJ1ZmZlciBzaXplIGNsb3NlIHRvXG4gICAgICAgICAgICAgW1N5cy5tYXhfc3RyaW5nX2xlbmd0aF0gKilcbiAgICAgICAgICBsZXQgciA9IHJlYWRfdXB0byBpYyBidWYgb2ZzIHJlbSBpblxuICAgICAgICAgIGlmIHIgPCByZW0gdGhlbiAoKiBFT0YgcmVhY2hlZCAqKVxuICAgICAgICAgICAgQnl0ZXMuc3ViX3N0cmluZyBidWYgMCAob2ZzICsgcilcbiAgICAgICAgICBlbHNlICgqIHIgPSByZW0gKilcbiAgICAgICAgICAgIGxvb3AgYnVmIChvZnMgKyByZW0pXG4gICAgICAgIGluXG4gICAgICAgIGxldCBidWYgPSBlbnN1cmUgYnVmIG5yZWFkIChjaHVua19zaXplICsgMSkgaW5cbiAgICAgICAgQnl0ZXMuc2V0IGJ1ZiBucmVhZCBjO1xuICAgICAgICBsb29wIGJ1ZiAobnJlYWQgKyAxKVxuICBlbmRcblxubGV0IHNldF9iaW5hcnlfbW9kZSA9IFN0ZGxpYi5zZXRfYmluYXJ5X21vZGVfaW5cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjEgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gb3V0X2NoYW5uZWxcblxudHlwZSBvcGVuX2ZsYWcgPSBTdGRsaWIub3Blbl9mbGFnID1cbiAgfCBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xuXG5sZXQgc3Rkb3V0ID0gU3RkbGliLnN0ZG91dFxubGV0IHN0ZGVyciA9IFN0ZGxpYi5zdGRlcnJcbmxldCBvcGVuX2JpbiA9IFN0ZGxpYi5vcGVuX291dF9iaW5cbmxldCBvcGVuX3RleHQgPSBTdGRsaWIub3Blbl9vdXRcbmxldCBvcGVuX2dlbiA9IFN0ZGxpYi5vcGVuX291dF9nZW5cblxubGV0IHdpdGhfb3BlbiBvcGVuZnVuIHMgZiA9XG4gIGxldCBvYyA9IG9wZW5mdW4gcyBpblxuICBGdW4ucHJvdGVjdCB+ZmluYWxseTooZnVuICgpIC0+IFN0ZGxpYi5jbG9zZV9vdXRfbm9lcnIgb2MpXG4gICAgKGZ1biAoKSAtPiBmIG9jKVxuXG5sZXQgd2l0aF9vcGVuX2JpbiBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5fb3V0X2JpbiBzIGZcblxubGV0IHdpdGhfb3Blbl90ZXh0IHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9vdXQgcyBmXG5cbmxldCB3aXRoX29wZW5fZ2VuIGZsYWdzIHBlcm0gcyBmID1cbiAgd2l0aF9vcGVuIChTdGRsaWIub3Blbl9vdXRfZ2VuIGZsYWdzIHBlcm0pIHMgZlxuXG5sZXQgc2VlayA9IFN0ZGxpYi5MYXJnZUZpbGUuc2Vla19vdXRcbmxldCBwb3MgPSBTdGRsaWIuTGFyZ2VGaWxlLnBvc19vdXRcbmxldCBsZW5ndGggPSBTdGRsaWIuTGFyZ2VGaWxlLm91dF9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlID0gU3RkbGliLmNsb3NlX291dFxubGV0IGNsb3NlX25vZXJyID0gU3RkbGliLmNsb3NlX291dF9ub2VyclxubGV0IGZsdXNoID0gU3RkbGliLmZsdXNoXG5sZXQgZmx1c2hfYWxsID0gU3RkbGliLmZsdXNoX2FsbFxubGV0IG91dHB1dF9jaGFyID0gU3RkbGliLm91dHB1dF9jaGFyXG5sZXQgb3V0cHV0X2J5dGUgPSBTdGRsaWIub3V0cHV0X2J5dGVcbmxldCBvdXRwdXRfc3RyaW5nID0gU3RkbGliLm91dHB1dF9zdHJpbmdcbmxldCBvdXRwdXRfYnl0ZXMgPSBTdGRsaWIub3V0cHV0X2J5dGVzXG5sZXQgb3V0cHV0ID0gU3RkbGliLm91dHB1dFxubGV0IG91dHB1dF9zdWJzdHJpbmcgPSBTdGRsaWIub3V0cHV0X3N1YnN0cmluZ1xubGV0IHNldF9iaW5hcnlfbW9kZSA9IFN0ZGxpYi5zZXRfYmluYXJ5X21vZGVfb3V0XG5cbmV4dGVybmFsIHNldF9idWZmZXJlZCA6IHQgLT4gYm9vbCAtPiB1bml0ID0gXCJjYW1sX21sX3NldF9idWZmZXJlZFwiXG5cbmV4dGVybmFsIGlzX2J1ZmZlcmVkIDogdCAtPiBib29sID0gXCJjYW1sX21sX2lzX2J1ZmZlcmVkXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgR2FicmllbCBTY2hlcmVyLCBwcm9qZXQgUGFyc2lmYWwsIElOUklBIFNhY2xheSAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTkgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAoJ2EsICdiKSB0ID0gTGVmdCBvZiAnYSB8IFJpZ2h0IG9mICdiXG5cbmxldCBsZWZ0IHYgPSBMZWZ0IHZcbmxldCByaWdodCB2ID0gUmlnaHQgdlxuXG5sZXQgaXNfbGVmdCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiB0cnVlXG58IFJpZ2h0IF8gLT4gZmFsc2VcblxubGV0IGlzX3JpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IGZhbHNlXG58IFJpZ2h0IF8gLT4gdHJ1ZVxuXG5sZXQgZmluZF9sZWZ0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IFNvbWUgdlxufCBSaWdodCBfIC0+IE5vbmVcblxubGV0IGZpbmRfcmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gTm9uZVxufCBSaWdodCB2IC0+IFNvbWUgdlxuXG5sZXQgbWFwX2xlZnQgZiA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChmIHYpXG58IFJpZ2h0IF8gYXMgZSAtPiBlXG5cbmxldCBtYXBfcmlnaHQgZiA9IGZ1bmN0aW9uXG58IExlZnQgXyBhcyBlIC0+IGVcbnwgUmlnaHQgdiAtPiBSaWdodCAoZiB2KVxuXG5sZXQgbWFwIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChsZWZ0IHYpXG58IFJpZ2h0IHYgLT4gUmlnaHQgKHJpZ2h0IHYpXG5cbmxldCBmb2xkIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBsZWZ0IHZcbnwgUmlnaHQgdiAtPiByaWdodCB2XG5cbmxldCBpdGVyID0gZm9sZFxuXG5sZXQgZm9yX2FsbCA9IGZvbGRcblxubGV0IGVxdWFsIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIHwgUmlnaHQgXywgTGVmdCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIC0+ICgtMSlcbnwgUmlnaHQgXywgTGVmdCBfIC0+IDFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtOYXRpdmVpbnRdOiBwcm9jZXNzb3ItbmF0aXZlIGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZzogbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9uZWdcIlxuZXh0ZXJuYWwgYWRkOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hZGRcIlxuZXh0ZXJuYWwgc3ViOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9zdWJcIlxuZXh0ZXJuYWwgbXVsOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9tdWxcIlxuZXh0ZXJuYWwgZGl2OiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9kaXZcIlxuZXh0ZXJuYWwgcmVtOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hbmRcIlxuZXh0ZXJuYWwgbG9nb3I6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29yXCJcbmV4dGVybmFsIGxvZ3hvcjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQ6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWw6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2xzclwiXG5leHRlcm5hbCBvZl9pbnQ6IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludDogbmF0aXZlaW50IC0+IGludCA9IFwiJW5hdGl2ZWludF90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBuYXRpdmVpbnRcbiAgPSBcImNhbWxfbmF0aXZlaW50X29mX2Zsb2F0XCIgXCJjYW1sX25hdGl2ZWludF9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogbmF0aXZlaW50IC0+IGZsb2F0XG4gID0gXCJjYW1sX25hdGl2ZWludF90b19mbG9hdFwiIFwiY2FtbF9uYXRpdmVpbnRfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBvZl9pbnQzMjogaW50MzIgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29mX2ludDMyXCJcbmV4dGVybmFsIHRvX2ludDMyOiBuYXRpdmVpbnQgLT4gaW50MzIgPSBcIiVuYXRpdmVpbnRfdG9faW50MzJcIlxuXG5sZXQgemVybyA9IDBuXG5sZXQgb25lID0gMW5cbmxldCBtaW51c19vbmUgPSAtMW5cbmxldCBzdWNjIG4gPSBhZGQgbiAxblxubGV0IHByZWQgbiA9IHN1YiBuIDFuXG5sZXQgYWJzIG4gPSBpZiBuID49IDBuIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgc2l6ZSA9IFN5cy53b3JkX3NpemVcbmxldCBtaW5faW50ID0gc2hpZnRfbGVmdCAxbiAoc2l6ZSAtIDEpXG5sZXQgbWF4X2ludCA9IHN1YiBtaW5faW50IDFuXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFuKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgZnVuIG4gLT5cbiAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgU29tZSAodG9faW50IG4pXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gbmF0aXZlaW50IC0+IHN0cmluZyA9IFwiY2FtbF9uYXRpdmVpbnRfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmc6IHN0cmluZyAtPiBuYXRpdmVpbnQgPSBcImNhbWxfbmF0aXZlaW50X29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG50eXBlIHQgPSBuYXRpdmVpbnRcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBPcGVyYXRpb25zIG9uIGludGVybmFsIHJlcHJlc2VudGF0aW9ucyBvZiB2YWx1ZXMgKilcblxudHlwZSB0XG5cbnR5cGUgcmF3X2RhdGEgPSBuYXRpdmVpbnRcblxuZXh0ZXJuYWwgcmVwciA6ICdhIC0+IHQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBvYmogOiB0IC0+ICdhID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgbWFnaWMgOiAnYSAtPiAnYiA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGlzX2ludCA6IHQgLT4gYm9vbCA9IFwiJW9ial9pc19pbnRcIlxubGV0IFtAaW5saW5lIGFsd2F5c10gaXNfYmxvY2sgYSA9IG5vdCAoaXNfaW50IGEpXG5leHRlcm5hbCB0YWcgOiB0IC0+IGludCA9IFwiY2FtbF9vYmpfdGFnXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHNldF90YWcgOiB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX29ial9zZXRfdGFnXCJcbmV4dGVybmFsIHNpemUgOiB0IC0+IGludCA9IFwiJW9ial9zaXplXCJcbmV4dGVybmFsIHJlYWNoYWJsZV93b3JkcyA6IHQgLT4gaW50ID0gXCJjYW1sX29ial9yZWFjaGFibGVfd29yZHNcIlxuZXh0ZXJuYWwgZmllbGQgOiB0IC0+IGludCAtPiB0ID0gXCIlb2JqX2ZpZWxkXCJcbmV4dGVybmFsIHNldF9maWVsZCA6IHQgLT4gaW50IC0+IHQgLT4gdW5pdCA9IFwiJW9ial9zZXRfZmllbGRcIlxuZXh0ZXJuYWwgZmxvYXRhcnJheV9nZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdGFycmF5X2dldFwiXG5leHRlcm5hbCBmbG9hdGFycmF5X3NldCA6XG4gICAgZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiY2FtbF9mbG9hdGFycmF5X3NldFwiXG5sZXQgW0BpbmxpbmUgYWx3YXlzXSBkb3VibGVfZmllbGQgeCBpID0gZmxvYXRhcnJheV9nZXQgKG9iaiB4IDogZmxvYXRhcnJheSkgaVxubGV0IFtAaW5saW5lIGFsd2F5c10gc2V0X2RvdWJsZV9maWVsZCB4IGkgdiA9XG4gIGZsb2F0YXJyYXlfc2V0IChvYmogeCA6IGZsb2F0YXJyYXkpIGkgdlxuZXh0ZXJuYWwgcmF3X2ZpZWxkIDogdCAtPiBpbnQgLT4gcmF3X2RhdGEgPSBcImNhbWxfb2JqX3Jhd19maWVsZFwiXG5leHRlcm5hbCBzZXRfcmF3X2ZpZWxkIDogdCAtPiBpbnQgLT4gcmF3X2RhdGEgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfb2JqX3NldF9yYXdfZmllbGRcIlxuXG5leHRlcm5hbCBuZXdfYmxvY2sgOiBpbnQgLT4gaW50IC0+IHQgPSBcImNhbWxfb2JqX2Jsb2NrXCJcbmV4dGVybmFsIGR1cCA6IHQgLT4gdCA9IFwiY2FtbF9vYmpfZHVwXCJcbmV4dGVybmFsIHRydW5jYXRlIDogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfdHJ1bmNhdGVcIlxuZXh0ZXJuYWwgYWRkX29mZnNldCA6IHQgLT4gSW50MzIudCAtPiB0ID0gXCJjYW1sX29ial9hZGRfb2Zmc2V0XCJcbmV4dGVybmFsIHdpdGhfdGFnIDogaW50IC0+IHQgLT4gdCA9IFwiY2FtbF9vYmpfd2l0aF90YWdcIlxuXG5sZXQgZmlyc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yX3RhZyA9IDBcbmxldCBsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl90YWcgPSAyNDVcblxubGV0IGxhenlfdGFnID0gMjQ2XG5sZXQgY2xvc3VyZV90YWcgPSAyNDdcbmxldCBvYmplY3RfdGFnID0gMjQ4XG5sZXQgaW5maXhfdGFnID0gMjQ5XG5sZXQgZm9yd2FyZF90YWcgPSAyNTBcblxubGV0IG5vX3NjYW5fdGFnID0gMjUxXG5cbmxldCBhYnN0cmFjdF90YWcgPSAyNTFcbmxldCBzdHJpbmdfdGFnID0gMjUyXG5sZXQgZG91YmxlX3RhZyA9IDI1M1xubGV0IGRvdWJsZV9hcnJheV90YWcgPSAyNTRcbmxldCBjdXN0b21fdGFnID0gMjU1XG5sZXQgZmluYWxfdGFnID0gY3VzdG9tX3RhZ1xuXG5cbmxldCBpbnRfdGFnID0gMTAwMFxubGV0IG91dF9vZl9oZWFwX3RhZyA9IDEwMDFcbmxldCB1bmFsaWduZWRfdGFnID0gMTAwMlxuXG5tb2R1bGUgQ2xvc3VyZSA9IHN0cnVjdFxuICB0eXBlIGluZm8gPSB7XG4gICAgYXJpdHk6IGludDtcbiAgICBzdGFydF9lbnY6IGludDtcbiAgfVxuXG4gIGxldCBpbmZvX29mX3JhdyAoaW5mbyA6IG5hdGl2ZWludCkgPVxuICAgIGxldCBvcGVuIE5hdGl2ZWludCBpblxuICAgIGxldCBhcml0eSA9XG4gICAgICAoKiBzaWduZWQ6IG5lZ2F0aXZlIGZvciB0dXBsZWQgZnVuY3Rpb25zICopXG4gICAgICBpZiBTeXMud29yZF9zaXplID0gNjQgdGhlblxuICAgICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0IGluZm8gNTYpXG4gICAgICBlbHNlXG4gICAgICAgIHRvX2ludCAoc2hpZnRfcmlnaHQgaW5mbyAyNClcbiAgICBpblxuICAgIGxldCBzdGFydF9lbnYgPVxuICAgICAgKCogc3RhcnRfZW52IGlzIHVuc2lnbmVkLCBidXQgd2Uga25vdyBpdCBjYW4gYWx3YXlzIGZpdCBhbiBPQ2FtbFxuICAgICAgICAgaW50ZWdlciBzbyB3ZSB1c2UgW3RvX2ludF0gaW5zdGVhZCBvZiBbdW5zaWduZWRfdG9faW50XS4gKilcbiAgICAgIHRvX2ludCAoc2hpZnRfcmlnaHRfbG9naWNhbCAoc2hpZnRfbGVmdCBpbmZvIDgpIDkpIGluXG4gICAgeyBhcml0eTsgc3RhcnRfZW52IH1cblxuICAoKiBub3RlOiB3ZSBleHBlY3QgYSBjbG9zdXJlLCBub3QgYW4gaW5maXggcG9pbnRlciAqKVxuICBsZXQgaW5mbyAob2JqIDogdCkgPVxuICAgIGFzc2VydCAodGFnIG9iaiA9IGNsb3N1cmVfdGFnKTtcbiAgICBpbmZvX29mX3JhdyAocmF3X2ZpZWxkIG9iaiAxKVxuZW5kXG5cbm1vZHVsZSBFeHRlbnNpb25fY29uc3RydWN0b3IgPVxuc3RydWN0XG4gIHR5cGUgdCA9IGV4dGVuc2lvbl9jb25zdHJ1Y3RvclxuICBsZXQgb2ZfdmFsIHggPVxuICAgIGxldCB4ID0gcmVwciB4IGluXG4gICAgbGV0IHNsb3QgPVxuICAgICAgaWYgKGlzX2Jsb2NrIHgpICYmICh0YWcgeCkgPD4gb2JqZWN0X3RhZyAmJiAoc2l6ZSB4KSA+PSAxIHRoZW4gZmllbGQgeCAwXG4gICAgICBlbHNlIHhcbiAgICBpblxuICAgIGxldCBuYW1lID1cbiAgICAgIGlmIChpc19ibG9jayBzbG90KSAmJiAodGFnIHNsb3QpID0gb2JqZWN0X3RhZyB0aGVuIGZpZWxkIHNsb3QgMFxuICAgICAgZWxzZSBpbnZhbGlkX2FyZyBcIk9iai5leHRlbnNpb25fY29uc3RydWN0b3JcIlxuICAgIGluXG4gICAgICBpZiAodGFnIG5hbWUpID0gc3RyaW5nX3RhZyB0aGVuIChvYmogc2xvdCA6IHQpXG4gICAgICBlbHNlIGludmFsaWRfYXJnIFwiT2JqLmV4dGVuc2lvbl9jb25zdHJ1Y3RvclwiXG5cbiAgbGV0IFtAaW5saW5lIGFsd2F5c10gbmFtZSAoc2xvdCA6IHQpID1cbiAgICAob2JqIChmaWVsZCAocmVwciBzbG90KSAwKSA6IHN0cmluZylcblxuICBsZXQgW0BpbmxpbmUgYWx3YXlzXSBpZCAoc2xvdCA6IHQpID1cbiAgICAob2JqIChmaWVsZCAocmVwciBzbG90KSAxKSA6IGludClcbmVuZFxuXG5sZXQgZXh0ZW5zaW9uX2NvbnN0cnVjdG9yID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLm9mX3ZhbFxubGV0IGV4dGVuc2lvbl9uYW1lID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLm5hbWVcbmxldCBleHRlbnNpb25faWQgPSBFeHRlbnNpb25fY29uc3RydWN0b3IuaWRcblxubW9kdWxlIEVwaGVtZXJvbiA9IHN0cnVjdFxuICB0eXBlIG9ial90ID0gdFxuXG4gIHR5cGUgdCAoKiogZXBoZW1lcm9uICopXG5cbiAgICgqKiBUbyBjaGFuZ2UgaW4gc3luYyB3aXRoIHdlYWsuaCAqKVxuICBsZXQgYWRkaXRpb25hbF92YWx1ZXMgPSAyXG4gIGxldCBtYXhfZXBoZV9sZW5ndGggPSBTeXMubWF4X2FycmF5X2xlbmd0aCAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IHQgPSBcImNhbWxfZXBoZV9jcmVhdGVcIjs7XG4gIGxldCBjcmVhdGUgbCA9XG4gICAgaWYgbm90ICgwIDw9IGwgJiYgbCA8PSBtYXhfZXBoZV9sZW5ndGgpIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiT2JqLkVwaGVtZXJvbi5jcmVhdGVcIjtcbiAgICBjcmVhdGUgbFxuXG4gIGxldCBsZW5ndGggeCA9IHNpemUocmVwciB4KSAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbiAgbGV0IHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBtc2cgPVxuICAgIGlmIG5vdCAoMCA8PSBvICYmIG8gPCBsZW5ndGggZSkgdGhlblxuICAgICAgaW52YWxpZF9hcmcgbXNnXG5cbiAgZXh0ZXJuYWwgZ2V0X2tleTogdCAtPiBpbnQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2tleVwiXG4gIGxldCBnZXRfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5nZXRfa2V5XCI7XG4gICAgZ2V0X2tleSBlIG9cblxuICBleHRlcm5hbCBnZXRfa2V5X2NvcHk6IHQgLT4gaW50IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9rZXlfY29weVwiXG4gIGxldCBnZXRfa2V5X2NvcHkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLmdldF9rZXlfY29weVwiO1xuICAgIGdldF9rZXlfY29weSBlIG9cblxuICBleHRlcm5hbCBzZXRfa2V5OiB0IC0+IGludCAtPiBvYmpfdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfc2V0X2tleVwiXG4gIGxldCBzZXRfa2V5IGUgbyB4ID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLnNldF9rZXlcIjtcbiAgICBzZXRfa2V5IGUgbyB4XG5cbiAgZXh0ZXJuYWwgdW5zZXRfa2V5OiB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfa2V5XCJcbiAgbGV0IHVuc2V0X2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24udW5zZXRfa2V5XCI7XG4gICAgdW5zZXRfa2V5IGUgb1xuXG4gIGV4dGVybmFsIGNoZWNrX2tleTogdCAtPiBpbnQgLT4gYm9vbCA9IFwiY2FtbF9lcGhlX2NoZWNrX2tleVwiXG4gIGxldCBjaGVja19rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLmNoZWNrX2tleVwiO1xuICAgIGNoZWNrX2tleSBlIG9cblxuICBleHRlcm5hbCBibGl0X2tleSA6IHQgLT4gaW50IC0+IHQgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgPSBcImNhbWxfZXBoZV9ibGl0X2tleVwiXG5cbiAgbGV0IGJsaXRfa2V5IGUxIG8xIGUyIG8yIGwgPVxuICAgIGlmIGwgPCAwIHx8IG8xIDwgMCB8fCBvMSA+IGxlbmd0aCBlMSAtIGxcbiAgICAgICB8fCBvMiA8IDAgfHwgbzIgPiBsZW5ndGggZTIgLSBsXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIk9iai5FcGhlbWVyb24uYmxpdF9rZXlcIlxuICAgIGVsc2UgaWYgbCA8PiAwIHRoZW4gYmxpdF9rZXkgZTEgbzEgZTIgbzIgbFxuXG4gIGV4dGVybmFsIGdldF9kYXRhOiB0IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9kYXRhXCJcbiAgZXh0ZXJuYWwgZ2V0X2RhdGFfY29weTogdCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5XCJcbiAgZXh0ZXJuYWwgc2V0X2RhdGE6IHQgLT4gb2JqX3QgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9kYXRhXCJcbiAgZXh0ZXJuYWwgdW5zZXRfZGF0YTogdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfZGF0YVwiXG4gIGV4dGVybmFsIGNoZWNrX2RhdGE6IHQgLT4gYm9vbCA9IFwiY2FtbF9lcGhlX2NoZWNrX2RhdGFcIlxuICBleHRlcm5hbCBibGl0X2RhdGEgOiB0IC0+IHQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX2JsaXRfZGF0YVwiXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBJbnRlcm5hbHMgb2YgZm9yY2luZyBsYXp5IHZhbHVlcy4gKilcblxudHlwZSAnYSB0ID0gJ2EgbGF6eV90XG5cbmV4Y2VwdGlvbiBVbmRlZmluZWRcblxubGV0IHJhaXNlX3VuZGVmaW5lZCA9IE9iai5yZXByIChmdW4gKCkgLT4gcmFpc2UgVW5kZWZpbmVkKVxuXG5leHRlcm5hbCBtYWtlX2ZvcndhcmQgOiBPYmoudCAtPiBPYmoudCAtPiB1bml0ID0gXCJjYW1sX29ial9tYWtlX2ZvcndhcmRcIlxuXG4oKiBBc3N1bWUgW2Jsa10gaXMgYSBibG9jayB3aXRoIHRhZyBsYXp5ICopXG5sZXQgZm9yY2VfbGF6eV9ibG9jayAoYmxrIDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IGNsb3N1cmUgPSAoT2JqLm9iaiAoT2JqLmZpZWxkIChPYmoucmVwciBibGspIDApIDogdW5pdCAtPiAnYXJnKSBpblxuICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgcmFpc2VfdW5kZWZpbmVkO1xuICB0cnlcbiAgICBsZXQgcmVzdWx0ID0gY2xvc3VyZSAoKSBpblxuICAgIG1ha2VfZm9yd2FyZCAoT2JqLnJlcHIgYmxrKSAoT2JqLnJlcHIgcmVzdWx0KTtcbiAgICByZXN1bHRcbiAgd2l0aCBlIC0+XG4gICAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIChPYmoucmVwciAoZnVuICgpIC0+IHJhaXNlIGUpKTtcbiAgICByYWlzZSBlXG5cblxuKCogQXNzdW1lIFtibGtdIGlzIGEgYmxvY2sgd2l0aCB0YWcgbGF6eSAqKVxubGV0IGZvcmNlX3ZhbF9sYXp5X2Jsb2NrIChibGsgOiAnYXJnIGxhenlfdCkgPVxuICBsZXQgY2xvc3VyZSA9IChPYmoub2JqIChPYmouZmllbGQgKE9iai5yZXByIGJsaykgMCkgOiB1bml0IC0+ICdhcmcpIGluXG4gIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCByYWlzZV91bmRlZmluZWQ7XG4gIGxldCByZXN1bHQgPSBjbG9zdXJlICgpIGluXG4gIG1ha2VfZm9yd2FyZCAoT2JqLnJlcHIgYmxrKSAoT2JqLnJlcHIgcmVzdWx0KTtcbiAgcmVzdWx0XG5cblxuKCogW2ZvcmNlXSBpcyBub3QgdXNlZCwgc2luY2UgW0xhenkuZm9yY2VdIGlzIGRlY2xhcmVkIGFzIGEgcHJpbWl0aXZlXG4gICB3aG9zZSBjb2RlIGlubGluZXMgdGhlIHRhZyB0ZXN0cyBvZiBpdHMgYXJndW1lbnQsIGV4Y2VwdCB3aGVuIGFmbFxuICAgaW5zdHJ1bWVudGF0aW9uIGlzIHR1cm5lZCBvbi4gKilcblxubGV0IGZvcmNlIChsenYgOiAnYXJnIGxhenlfdCkgPVxuICAoKiBVc2luZyBbU3lzLm9wYXF1ZV9pZGVudGl0eV0gcHJldmVudHMgdHdvIHBvdGVudGlhbCBwcm9ibGVtczpcbiAgICAgLSBJZiB0aGUgdmFsdWUgaXMga25vd24gdG8gaGF2ZSBGb3J3YXJkX3RhZywgdGhlbiBpdHMgdGFnIGNvdWxkIGhhdmVcbiAgICAgICBjaGFuZ2VkIGR1cmluZyBHQywgc28gdGhhdCBpbmZvcm1hdGlvbiBtdXN0IGJlIGZvcmdvdHRlbiAoc2VlIEdQUiM3MTNcbiAgICAgICBhbmQgaXNzdWUgIzczMDEpXG4gICAgIC0gSWYgdGhlIHZhbHVlIGlzIGtub3duIHRvIGJlIGltbXV0YWJsZSwgdGhlbiBpZiB0aGUgY29tcGlsZXJcbiAgICAgICBjYW5ub3QgcHJvdmUgdGhhdCB0aGUgbGFzdCBicmFuY2ggaXMgbm90IHRha2VuIGl0IHdpbGwgaXNzdWUgYVxuICAgICAgIHdhcm5pbmcgNTkgKG1vZGlmaWNhdGlvbiBvZiBhbiBpbW11dGFibGUgdmFsdWUpICopXG4gIGxldCBsenYgPSBTeXMub3BhcXVlX2lkZW50aXR5IGx6diBpblxuICBsZXQgeCA9IE9iai5yZXByIGx6diBpblxuICBsZXQgdCA9IE9iai50YWcgeCBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHRoZW4gKE9iai5vYmogKE9iai5maWVsZCB4IDApIDogJ2FyZykgZWxzZVxuICBpZiB0IDw+IE9iai5sYXp5X3RhZyB0aGVuIChPYmoub2JqIHggOiAnYXJnKVxuICBlbHNlIGZvcmNlX2xhenlfYmxvY2sgbHp2XG5cblxubGV0IGZvcmNlX3ZhbCAobHp2IDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IHggPSBPYmoucmVwciBsenYgaW5cbiAgbGV0IHQgPSBPYmoudGFnIHggaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB0aGVuIChPYmoub2JqIChPYmouZmllbGQgeCAwKSA6ICdhcmcpIGVsc2VcbiAgaWYgdCA8PiBPYmoubGF6eV90YWcgdGhlbiAoT2JqLm9iaiB4IDogJ2FyZylcbiAgZWxzZSBmb3JjZV92YWxfbGF6eV9ibG9jayBsenZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtMYXp5XTogZGVmZXJyZWQgY29tcHV0YXRpb25zICopXG5cblxuKCpcbiAgIFdBUk5JTkc6IHNvbWUgcHVycGxlIG1hZ2ljIGlzIGdvaW5nIG9uIGhlcmUuICBEbyBub3QgdGFrZSB0aGlzIGZpbGVcbiAgIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHByb2dyYW0gaW4gT0NhbWwuXG4qKVxuXG5cbigqIFdlIG1ha2UgdXNlIG9mIHR3byBzcGVjaWFsIHRhZ3MgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWU6XG4gICBbbGF6eV90YWddIGFuZCBbZm9yd2FyZF90YWddLlxuXG4gICBBIHZhbHVlIG9mIHR5cGUgWydhIExhenkudF0gY2FuIGJlIG9uZSBvZiB0aHJlZSB0aGluZ3M6XG4gICAxLiBBIGJsb2NrIG9mIHNpemUgMSB3aXRoIHRhZyBbbGF6eV90YWddLiAgSXRzIGZpZWxkIGlzIGEgY2xvc3VyZSBvZlxuICAgICAgdHlwZSBbdW5pdCAtPiAnYV0gdGhhdCBjb21wdXRlcyB0aGUgdmFsdWUuXG4gICAyLiBBIGJsb2NrIG9mIHNpemUgMSB3aXRoIHRhZyBbZm9yd2FyZF90YWddLiAgSXRzIGZpZWxkIGlzIHRoZSB2YWx1ZVxuICAgICAgb2YgdHlwZSBbJ2FdIHRoYXQgd2FzIGNvbXB1dGVkLlxuICAgMy4gQW55dGhpbmcgZWxzZSBleGNlcHQgYSBmbG9hdC4gIFRoaXMgaGFzIHR5cGUgWydhXSBhbmQgaXMgdGhlIHZhbHVlXG4gICAgICB0aGF0IHdhcyBjb21wdXRlZC5cbiAgIEV4Y2VwdGlvbnMgYXJlIHN0b3JlZCBpbiBmb3JtYXQgKDEpLlxuICAgVGhlIEdDIHdpbGwgbWFnaWNhbGx5IGNoYW5nZSB0aGluZ3MgZnJvbSAoMikgdG8gKDMpIGFjY29yZGluZyB0byBpdHNcbiAgIGZhbmN5LlxuXG4gICBJZiBPQ2FtbCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSAtZmxhdC1mbG9hdC1hcnJheSBvcHRpb24gKHdoaWNoIGlzXG4gICBjdXJyZW50bHkgdGhlIGRlZmF1bHQpLCB0aGUgZm9sbG93aW5nIGlzIGFsc28gdHJ1ZTpcbiAgIFdlIGNhbm5vdCB1c2UgcmVwcmVzZW50YXRpb24gKDMpIGZvciBhIFtmbG9hdCBMYXp5LnRdIGJlY2F1c2VcbiAgIFtjYW1sX21ha2VfYXJyYXldIGFzc3VtZXMgdGhhdCBvbmx5IGEgW2Zsb2F0XSB2YWx1ZSBjYW4gaGF2ZSB0YWdcbiAgIFtEb3VibGVfdGFnXS5cblxuICAgV2UgaGF2ZSB0byB1c2UgdGhlIGJ1aWx0LWluIHR5cGUgY29uc3RydWN0b3IgW2xhenlfdF0gdG9cbiAgIGxldCB0aGUgY29tcGlsZXIgaW1wbGVtZW50IHRoZSBzcGVjaWFsIHR5cGluZyBhbmQgY29tcGlsYXRpb25cbiAgIHJ1bGVzIGZvciB0aGUgW2xhenldIGtleXdvcmQuXG4qKVxuXG50eXBlICdhIHQgPSAnYSBDYW1saW50ZXJuYWxMYXp5LnRcblxuZXhjZXB0aW9uIFVuZGVmaW5lZCA9IENhbWxpbnRlcm5hbExhenkuVW5kZWZpbmVkXG5cbmV4dGVybmFsIG1ha2VfZm9yd2FyZCA6ICdhIC0+ICdhIGxhenlfdCA9IFwiY2FtbF9sYXp5X21ha2VfZm9yd2FyZFwiXG5cbmV4dGVybmFsIGZvcmNlIDogJ2EgdCAtPiAnYSA9IFwiJWxhenlfZm9yY2VcIlxuXG5cbmxldCBmb3JjZV92YWwgPSBDYW1saW50ZXJuYWxMYXp5LmZvcmNlX3ZhbFxuXG5sZXQgZnJvbV9mdW4gKGYgOiB1bml0IC0+ICdhcmcpID1cbiAgbGV0IHggPSBPYmoubmV3X2Jsb2NrIE9iai5sYXp5X3RhZyAxIGluXG4gIE9iai5zZXRfZmllbGQgeCAwIChPYmoucmVwciBmKTtcbiAgKE9iai5vYmogeCA6ICdhcmcgdClcblxubGV0IGZyb21fdmFsICh2IDogJ2FyZykgPVxuICBsZXQgdCA9IE9iai50YWcgKE9iai5yZXByIHYpIGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgfHwgdCA9IE9iai5sYXp5X3RhZyB8fCB0ID0gT2JqLmRvdWJsZV90YWcgdGhlbiBiZWdpblxuICAgIG1ha2VfZm9yd2FyZCB2XG4gIGVuZCBlbHNlIGJlZ2luXG4gICAgKE9iai5tYWdpYyB2IDogJ2FyZyB0KVxuICBlbmRcblxuXG5sZXQgaXNfdmFsIChsIDogJ2FyZyB0KSA9IE9iai50YWcgKE9iai5yZXByIGwpIDw+IE9iai5sYXp5X3RhZ1xuXG5sZXQgbGF6eV9mcm9tX2Z1biA9IGZyb21fZnVuXG5cbmxldCBsYXp5X2Zyb21fdmFsID0gZnJvbV92YWxcblxubGV0IGxhenlfaXNfdmFsID0gaXNfdmFsXG5cblxubGV0IG1hcCBmIHggPVxuICBsYXp5IChmIChmb3JjZSB4KSlcblxubGV0IG1hcF92YWwgZiB4ID1cbiAgaWYgaXNfdmFsIHhcbiAgdGhlbiBsYXp5X2Zyb21fdmFsIChmIChmb3JjZSB4KSlcbiAgZWxzZSBsYXp5IChmIChmb3JjZSB4KSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICBTaW1vbiBDcnVhbmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtTZXFdOiBmdW5jdGlvbmFsIGl0ZXJhdG9ycyAqKVxuXG50eXBlICsnYSBub2RlID1cbiAgfCBOaWxcbiAgfCBDb25zIG9mICdhICogJ2EgdFxuXG5hbmQgJ2EgdCA9IHVuaXQgLT4gJ2Egbm9kZVxuXG5sZXQgZW1wdHkgKCkgPSBOaWxcblxubGV0IHJldHVybiB4ICgpID0gQ29ucyAoeCwgZW1wdHkpXG5cbmxldCBjb25zIHggbmV4dCAoKSA9IENvbnMgKHgsIG5leHQpXG5cbmxldCByZWMgYXBwZW5kIHNlcTEgc2VxMiAoKSA9XG4gIG1hdGNoIHNlcTEoKSB3aXRoXG4gIHwgTmlsIC0+IHNlcTIoKVxuICB8IENvbnMgKHgsIG5leHQpIC0+IENvbnMgKHgsIGFwcGVuZCBuZXh0IHNlcTIpXG5cbmxldCByZWMgbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPiBDb25zIChmIHgsIG1hcCBmIG5leHQpXG5cbmxldCByZWMgZmlsdGVyX21hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBmaWx0ZXJfbWFwIGYgbmV4dCAoKVxuICAgICAgICB8IFNvbWUgeSAtPiBDb25zICh5LCBmaWx0ZXJfbWFwIGYgbmV4dClcblxubGV0IHJlYyBmaWx0ZXIgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICBpZiBmIHhcbiAgICAgIHRoZW4gQ29ucyAoeCwgZmlsdGVyIGYgbmV4dClcbiAgICAgIGVsc2UgZmlsdGVyIGYgbmV4dCAoKVxuXG5sZXQgcmVjIGNvbmNhdCBzZXEgKCkgPSBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICBhcHBlbmQgeCAoY29uY2F0IG5leHQpICgpXG5cbmxldCByZWMgZmxhdF9tYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgIGFwcGVuZCAoZiB4KSAoZmxhdF9tYXAgZiBuZXh0KSAoKVxuXG5sZXQgY29uY2F0X21hcCA9IGZsYXRfbWFwXG5cbmxldCByZWMgZm9sZF9sZWZ0IGYgYWNjIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gICAgfCBOaWwgLT4gYWNjXG4gICAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgICBsZXQgYWNjID0gZiBhY2MgeCBpblxuICAgICAgICBmb2xkX2xlZnQgZiBhY2MgbmV4dFxuXG5sZXQgcmVjIGl0ZXIgZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICAgIHwgTmlsIC0+ICgpXG4gICAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgICBmIHg7XG4gICAgICAgIGl0ZXIgZiBuZXh0XG5cbmxldCByZWMgdW5mb2xkIGYgdSAoKSA9XG4gIG1hdGNoIGYgdSB3aXRoXG4gIHwgTm9uZSAtPiBOaWxcbiAgfCBTb21lICh4LCB1JykgLT4gQ29ucyAoeCwgdW5mb2xkIGYgdScpXG5cbmxldCBpc19lbXB0eSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKF8sIF8pIC0+XG4gICAgICBmYWxzZVxuXG5sZXQgdW5jb25zIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBTb21lICh4LCB4cylcbiAgfCBOaWwgLT5cbiAgICAgIE5vbmVcblxuXG5cbmxldCByZWMgbGVuZ3RoX2F1eCBhY2N1IHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoXywgeHMpIC0+XG4gICAgICBsZW5ndGhfYXV4IChhY2N1ICsgMSkgeHNcblxubGV0W0BpbmxpbmVdIGxlbmd0aCB4cyA9XG4gIGxlbmd0aF9hdXggMCB4c1xuXG5sZXQgcmVjIGl0ZXJpX2F1eCBmIGkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgICgpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBmIGkgeDtcbiAgICAgIGl0ZXJpX2F1eCBmIChpKzEpIHhzXG5cbmxldFtAaW5saW5lXSBpdGVyaSBmIHhzID1cbiAgaXRlcmlfYXV4IGYgMCB4c1xuXG5sZXQgcmVjIGZvbGRfbGVmdGlfYXV4IGYgYWNjdSBpIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBsZXQgYWNjdSA9IGYgYWNjdSBpIHggaW5cbiAgICAgIGZvbGRfbGVmdGlfYXV4IGYgYWNjdSAoaSsxKSB4c1xuXG5sZXRbQGlubGluZV0gZm9sZF9sZWZ0aSBmIGFjY3UgeHMgPVxuICBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgMCB4c1xuXG5sZXQgcmVjIGZvcl9hbGwgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgcCB4ICYmIGZvcl9hbGwgcCB4c1xuXG5sZXQgcmVjIGV4aXN0cyBwIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBmYWxzZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgcCB4IHx8IGV4aXN0cyBwIHhzXG5cbmxldCByZWMgZmluZCBwIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBpZiBwIHggdGhlbiBTb21lIHggZWxzZSBmaW5kIHAgeHNcblxubGV0IHJlYyBmaW5kX21hcCBmIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgZmluZF9tYXAgZiB4c1xuICAgICAgfCBTb21lIF8gYXMgcmVzdWx0IC0+XG4gICAgICAgICAgcmVzdWx0XG5cbigqIFtpdGVyMl0sIFtmb2xkX2xlZnQyXSwgW2Zvcl9hbGwyXSwgW2V4aXN0czJdLCBbbWFwMl0sIFt6aXBdIHdvcmsgYWxzbyBpblxuICAgdGhlIGNhc2Ugd2hlcmUgdGhlIHR3byBzZXF1ZW5jZXMgaGF2ZSBkaWZmZXJlbnQgbGVuZ3Rocy4gVGhleSBzdG9wIGFzIHNvb25cbiAgIGFzIG9uZSBzZXF1ZW5jZSBpcyBleGhhdXN0ZWQuIFRoZWlyIGJlaGF2aW9yIGlzIHNsaWdodGx5IGFzeW1tZXRyaWM6IHdoZW5cbiAgIFt4c10gaXMgZW1wdHksIHRoZXkgZG8gbm90IGZvcmNlIFt5c107IGhvd2V2ZXIsIHdoZW4gW3lzXSBpcyBlbXB0eSwgW3hzXSBpc1xuICAgZm9yY2VkLCBldmVuIHRob3VnaCB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBhcHBsaWNhdGlvbiBbeHMoKV0gdHVybnMgb3V0XG4gICB0byBiZSB1c2VsZXNzLiAqKVxuXG5sZXQgcmVjIGl0ZXIyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgICgpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgKClcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgZiB4IHk7XG4gICAgICAgICAgaXRlcjIgZiB4cyB5c1xuXG5sZXQgcmVjIGZvbGRfbGVmdDIgZiBhY2N1IHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgYWNjdVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBsZXQgYWNjdSA9IGYgYWNjdSB4IHkgaW5cbiAgICAgICAgICBmb2xkX2xlZnQyIGYgYWNjdSB4cyB5c1xuXG5sZXQgcmVjIGZvcl9hbGwyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5ICYmIGZvcl9hbGwyIGYgeHMgeXNcblxubGV0IHJlYyBleGlzdHMyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgZiB4IHkgfHwgZXhpc3RzMiBmIHhzIHlzXG5cbmxldCByZWMgZXF1YWwgZXEgeHMgeXMgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgfCBOaWwsIE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBlcSB4IHkgJiYgZXF1YWwgZXEgeHMgeXNcbiAgfCBOaWwsIENvbnMgKF8sIF8pXG4gIHwgQ29ucyAoXywgXyksIE5pbCAtPlxuICAgICAgZmFsc2VcblxubGV0IHJlYyBjb21wYXJlIGNtcCB4cyB5cyA9XG4gIG1hdGNoIHhzKCksIHlzKCkgd2l0aFxuICB8IE5pbCwgTmlsIC0+XG4gICAgICAwXG4gIHwgQ29ucyAoeCwgeHMpLCBDb25zICh5LCB5cykgLT5cbiAgICAgIGxldCBjID0gY21wIHggeSBpblxuICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlIGNvbXBhcmUgY21wIHhzIHlzXG4gIHwgTmlsLCBDb25zIChfLCBfKSAtPlxuICAgICAgLTFcbiAgfCBDb25zIChfLCBfKSwgTmlsIC0+XG4gICAgICArMVxuXG5cblxuKCogW2luaXRfYXV4IGYgaSBqXSBpcyB0aGUgc2VxdWVuY2UgW2YgaSwgLi4uLCBmIChqLTEpXS4gKilcblxubGV0IHJlYyBpbml0X2F1eCBmIGkgaiAoKSA9XG4gIGlmIGkgPCBqIHRoZW4gYmVnaW5cbiAgICBDb25zIChmIGksIGluaXRfYXV4IGYgKGkgKyAxKSBqKVxuICBlbmRcbiAgZWxzZVxuICAgIE5pbFxuXG5sZXQgaW5pdCBuIGYgPVxuICBpZiBuIDwgMCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTZXEuaW5pdFwiXG4gIGVsc2VcbiAgICBpbml0X2F1eCBmIDAgblxuXG5sZXQgcmVjIHJlcGVhdCB4ICgpID1cbiAgQ29ucyAoeCwgcmVwZWF0IHgpXG5cbmxldCByZWMgZm9yZXZlciBmICgpID1cbiAgQ29ucyAoZigpLCBmb3JldmVyIGYpXG5cbigqIFRoaXMgcHJlbGltaW5hcnkgZGVmaW5pdGlvbiBvZiBbY3ljbGVdIHJlcXVpcmVzIHRoZSBzZXF1ZW5jZSBbeHNdXG4gICB0byBiZSBub25lbXB0eS4gQXBwbHlpbmcgaXQgdG8gYW4gZW1wdHkgc2VxdWVuY2Ugd291bGQgcHJvZHVjZSBhXG4gICBzZXF1ZW5jZSB0aGF0IGRpdmVyZ2VzIHdoZW4gaXQgaXMgZm9yY2VkLiAqKVxuXG5sZXQgcmVjIGN5Y2xlX25vbmVtcHR5IHhzICgpID1cbiAgYXBwZW5kIHhzIChjeWNsZV9ub25lbXB0eSB4cykgKClcblxuKCogW2N5Y2xlIHhzXSBjaGVja3Mgd2hldGhlciBbeHNdIGlzIGVtcHR5IGFuZCwgaWYgc28sIHJldHVybnMgYW4gZW1wdHlcbiAgIHNlcXVlbmNlLiBPdGhlcndpc2UsIFtjeWNsZSB4c10gcHJvZHVjZXMgb25lIGNvcHkgb2YgW3hzXSBmb2xsb3dlZFxuICAgd2l0aCB0aGUgaW5maW5pdGUgc2VxdWVuY2UgW2N5Y2xlX25vbmVtcHR5IHhzXS4gVGh1cywgdGhlIG5vbmVtcHRpbmVzc1xuICAgY2hlY2sgaXMgcGVyZm9ybWVkIGp1c3Qgb25jZS4gKilcblxubGV0IGN5Y2xlIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cycpIC0+XG4gICAgICBDb25zICh4LCBhcHBlbmQgeHMnIChjeWNsZV9ub25lbXB0eSB4cykpXG5cbigqIFtpdGVyYXRlMSBmIHhdIGlzIHRoZSBzZXF1ZW5jZSBbZiB4LCBmIChmIHgpLCAuLi5dLlxuICAgSXQgaXMgZXF1aXZhbGVudCB0byBbdGFpbCAoaXRlcmF0ZSBmIHgpXS5cbiAgIFtpdGVyYXRlMV0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtpdGVyYXRlXS4gKilcblxubGV0IHJlYyBpdGVyYXRlMSBmIHggKCkgPVxuICBsZXQgeSA9IGYgeCBpblxuICBDb25zICh5LCBpdGVyYXRlMSBmIHkpXG5cbigqIFtpdGVyYXRlIGYgeF0gaXMgdGhlIHNlcXVlbmNlIFt4LCBmIHgsIC4uLl0uICopXG5cbigqIFRoZSByZWFzb24gd2h5IHdlIGdpdmUgdGhpcyBzbGlnaHRseSBpbmRpcmVjdCBkZWZpbml0aW9uIG9mIFtpdGVyYXRlXSxcbiAgIGFzIG9wcG9zZWQgdG8gdGhlIG1vcmUgbmFpdmUgZGVmaW5pdGlvbiB0aGF0IG1heSBjb21lIHRvIG1pbmQsIGlzIHRoYXRcbiAgIHdlIGFyZSBjYXJlZnVsIHRvIGF2b2lkIGV2YWx1YXRpbmcgW2YgeF0gdW50aWwgdGhpcyBmdW5jdGlvbiBjYWxsIGlzXG4gICBhY3R1YWxseSBuZWNlc3NhcnkuIFRoZSBuYWl2ZSBkZWZpbml0aW9uIChub3Qgc2hvd24gaGVyZSkgY29tcHV0ZXMgdGhlXG4gICBzZWNvbmQgYXJndW1lbnQgb2YgdGhlIHNlcXVlbmNlLCBbZiB4XSwgd2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXNcbiAgIHJlcXVlc3RlZCBieSB0aGUgdXNlci4gKilcblxubGV0IGl0ZXJhdGUgZiB4ID1cbiAgY29ucyB4IChpdGVyYXRlMSBmIHgpXG5cblxuXG5sZXQgcmVjIG1hcGlfYXV4IGYgaSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zIChmIGkgeCwgbWFwaV9hdXggZiAoaSsxKSB4cylcblxubGV0W0BpbmxpbmVdIG1hcGkgZiB4cyA9XG4gIG1hcGlfYXV4IGYgMCB4c1xuXG4oKiBbdGFpbF9zY2FuIGYgcyB4c10gaXMgZXF1aXZhbGVudCB0byBbdGFpbCAoc2NhbiBmIHMgeHMpXS5cbiAgIFt0YWlsX3NjYW5dIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbc2Nhbl0uICopXG5cbigqIFRoaXMgc2xpZ2h0bHkgaW5kaXJlY3QgZGVmaW5pdGlvbiBvZiBbc2Nhbl0gaXMgbWVhbnQgdG8gYXZvaWQgY29tcHV0aW5nXG4gICBlbGVtZW50cyB0b28gZWFybHk7IHNlZSB0aGUgYWJvdmUgY29tbWVudCBhYm91dCBbaXRlcmF0ZTFdIGFuZCBbaXRlcmF0ZV0uICopXG5cbmxldCByZWMgdGFpbF9zY2FuIGYgcyB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBsZXQgcyA9IGYgcyB4IGluXG4gICAgICBDb25zIChzLCB0YWlsX3NjYW4gZiBzIHhzKVxuXG5sZXQgc2NhbiBmIHMgeHMgPVxuICBjb25zIHMgKHRhaWxfc2NhbiBmIHMgeHMpXG5cbigqIFt0YWtlXSBpcyBkZWZpbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCBbdGFrZSAwIHhzXSByZXR1cm5zIFtlbXB0eV1cbiAgIGltbWVkaWF0ZWx5LCB3aXRob3V0IGFsbG9jYXRpbmcgYW55IG1lbW9yeS4gKilcblxubGV0IHJlYyB0YWtlX2F1eCBuIHhzID1cbiAgaWYgbiA9IDAgdGhlblxuICAgIGVtcHR5XG4gIGVsc2VcbiAgICBmdW4gKCkgLT5cbiAgICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgICAgQ29ucyAoeCwgdGFrZV9hdXggKG4tMSkgeHMpXG5cbmxldCB0YWtlIG4geHMgPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiU2VxLnRha2VcIjtcbiAgdGFrZV9hdXggbiB4c1xuXG4oKiBbZm9yY2VfZHJvcCBuIHhzXSBpcyBlcXVpdmFsZW50IHRvIFtkcm9wIG4geHMgKCldLlxuICAgW2ZvcmNlX2Ryb3AgbiB4c10gcmVxdWlyZXMgW24gPiAwXS5cbiAgIFtmb3JjZV9kcm9wXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW2Ryb3BdLiAqKVxuXG5sZXQgcmVjIGZvcmNlX2Ryb3AgbiB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoXywgeHMpIC0+XG4gICAgICBsZXQgbiA9IG4gLSAxIGluXG4gICAgICBpZiBuID0gMCB0aGVuXG4gICAgICAgIHhzKClcbiAgICAgIGVsc2VcbiAgICAgICAgZm9yY2VfZHJvcCBuIHhzXG5cbigqIFtkcm9wXSBpcyBkZWZpbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCBbZHJvcCAwIHhzXSByZXR1cm5zIFt4c10gaW1tZWRpYXRlbHksXG4gICB3aXRob3V0IGFsbG9jYXRpbmcgYW55IG1lbW9yeS4gKilcblxubGV0IGRyb3AgbiB4cyA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJTZXEuZHJvcFwiXG4gIGVsc2UgaWYgbiA9IDAgdGhlblxuICAgIHhzXG4gIGVsc2VcbiAgICBmdW4gKCkgLT5cbiAgICAgIGZvcmNlX2Ryb3AgbiB4c1xuXG5sZXQgcmVjIHRha2Vfd2hpbGUgcCB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBpZiBwIHggdGhlbiBDb25zICh4LCB0YWtlX3doaWxlIHAgeHMpIGVsc2UgTmlsXG5cbmxldCByZWMgZHJvcF93aGlsZSBwIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgYXMgbm9kZSAtPlxuICAgICAgaWYgcCB4IHRoZW4gZHJvcF93aGlsZSBwIHhzICgpIGVsc2Ugbm9kZVxuXG5sZXQgcmVjIGdyb3VwIGVxIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIENvbnMgKGNvbnMgeCAodGFrZV93aGlsZSAoZXEgeCkgeHMpLCBncm91cCBlcSAoZHJvcF93aGlsZSAoZXEgeCkgeHMpKVxuXG5leGNlcHRpb24gRm9yY2VkX3R3aWNlXG5cbm1vZHVsZSBTdXNwZW5zaW9uID0gc3RydWN0XG5cbiAgdHlwZSAnYSBzdXNwZW5zaW9uID1cbiAgICB1bml0IC0+ICdhXG5cbiAgKCogQ29udmVyc2lvbnMuICopXG5cbiAgbGV0IHRvX2xhenkgOiAnYSBzdXNwZW5zaW9uIC0+ICdhIExhenkudCA9XG4gICAgTGF6eS5mcm9tX2Z1blxuICAgICgqIGZ1biBzIC0+IGxhenkgKHMoKSkgKilcblxuICBsZXQgZnJvbV9sYXp5IChzIDogJ2EgTGF6eS50KSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGZ1biAoKSAtPiBMYXp5LmZvcmNlIHNcblxuICAoKiBbbWVtb2l6ZV0gdHVybnMgYW4gYXJiaXRyYXJ5IHN1c3BlbnNpb24gaW50byBhIHBlcnNpc3RlbnQgc3VzcGVuc2lvbi4gKilcblxuICBsZXQgbWVtb2l6ZSAocyA6ICdhIHN1c3BlbnNpb24pIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgZnJvbV9sYXp5ICh0b19sYXp5IHMpXG5cbiAgKCogW2ZhaWx1cmVdIGlzIGEgc3VzcGVuc2lvbiB0aGF0IGZhaWxzIHdoZW4gZm9yY2VkLiAqKVxuXG4gIGxldCBmYWlsdXJlIDogXyBzdXNwZW5zaW9uID1cbiAgICBmdW4gKCkgLT5cbiAgICAgICgqIEEgc3VzcGVuc2lvbiBjcmVhdGVkIGJ5IFtvbmNlXSBoYXMgYmVlbiBmb3JjZWQgdHdpY2UuICopXG4gICAgICByYWlzZSBGb3JjZWRfdHdpY2VcblxuICAoKiBJZiBbZl0gaXMgYSBzdXNwZW5zaW9uLCB0aGVuIFtvbmNlIGZdIGlzIGEgc3VzcGVuc2lvbiB0aGF0IGNhbiBiZSBmb3JjZWRcbiAgICAgYXQgbW9zdCBvbmNlLiBJZiBpdCBpcyBmb3JjZWQgbW9yZSB0aGFuIG9uY2UsIHRoZW4gW0ZvcmNlZF90d2ljZV0gaXNcbiAgICAgcmFpc2VkLiAqKVxuXG4gIGxldCBvbmNlIChmIDogJ2Egc3VzcGVuc2lvbikgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBsZXQgYWN0aW9uID0gQ2FtbGludGVybmFsQXRvbWljLm1ha2UgZiBpblxuICAgIGZ1biAoKSAtPlxuICAgICAgKCogR2V0IHRoZSBmdW5jdGlvbiBjdXJyZW50bHkgc3RvcmVkIGluIFthY3Rpb25dLCBhbmQgd3JpdGUgdGhlXG4gICAgICAgICBmdW5jdGlvbiBbZmFpbHVyZV0gaW4gaXRzIHBsYWNlLCBzbyB0aGUgbmV4dCBhY2Nlc3Mgd2lsbCByZXN1bHRcbiAgICAgICAgIGluIGEgY2FsbCB0byBbZmFpbHVyZSgpXS4gKilcbiAgICAgIGxldCBmID0gQ2FtbGludGVybmFsQXRvbWljLmV4Y2hhbmdlIGFjdGlvbiBmYWlsdXJlIGluXG4gICAgICBmKClcblxuZW5kICgqIFN1c3BlbnNpb24gKilcblxubGV0IHJlYyBtZW1vaXplIHhzID1cbiAgU3VzcGVuc2lvbi5tZW1vaXplIChmdW4gKCkgLT5cbiAgICBtYXRjaCB4cygpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICBDb25zICh4LCBtZW1vaXplIHhzKVxuICApXG5cbmxldCByZWMgb25jZSB4cyA9XG4gIFN1c3BlbnNpb24ub25jZSAoZnVuICgpIC0+XG4gICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgQ29ucyAoeCwgb25jZSB4cylcbiAgKVxuXG5cbmxldCByZWMgemlwIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgQ29ucyAoKHgsIHkpLCB6aXAgeHMgeXMpXG5cbmxldCByZWMgbWFwMiBmIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgQ29ucyAoZiB4IHksIG1hcDIgZiB4cyB5cylcblxubGV0IHJlYyBpbnRlcmxlYXZlIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB5cygpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zICh4LCBpbnRlcmxlYXZlIHlzIHhzKVxuXG4oKiBbc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgW3NvcnRlZF9tZXJnZSBjbXAgKGNvbnMgeCB4cykgeXNdLlxuXG4gICBbc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgW3NvcnRlZF9tZXJnZSBjbXAgeHMgKGNvbnMgeSB5cyldLlxuXG4gICBbc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIChjb25zIHggeHMpIChjb25zIHkgeXMpXS5cblxuICAgVGhlc2UgdGhyZWUgZnVuY3Rpb25zIGFyZSB1c2VkIGFzIGJ1aWxkaW5nIGJsb2NrcyBpbiB0aGUgZGVmaW5pdGlvblxuICAgb2YgW3NvcnRlZF9tZXJnZV0uICopXG5cbmxldCByZWMgc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXMgKCkgPVxuICBtYXRjaCB5cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIENvbnMgKHgsIHhzKVxuICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cbmFuZCBzb3J0ZWRfbWVyZ2UxciBjbXAgeHMgeSB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgQ29ucyAoeSwgeXMpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXNcblxuYW5kIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5cyA9XG4gIGlmIGNtcCB4IHkgPD0gMCB0aGVuXG4gICAgQ29ucyAoeCwgc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXMpXG4gIGVsc2VcbiAgICBDb25zICh5LCBzb3J0ZWRfbWVyZ2UxbCBjbXAgeCB4cyB5cylcblxubGV0IHNvcnRlZF9tZXJnZSBjbXAgeHMgeXMgKCkgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgICB8IE5pbCwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgTmlsLCBjXG4gICAgfCBjLCBOaWwgLT5cbiAgICAgICAgY1xuICAgIHwgQ29ucyAoeCwgeHMpLCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cblxubGV0IHJlYyBtYXBfZnN0IHh5cyAoKSA9XG4gIG1hdGNoIHh5cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKCh4LCBfKSwgeHlzKSAtPlxuICAgICAgQ29ucyAoeCwgbWFwX2ZzdCB4eXMpXG5cbmxldCByZWMgbWFwX3NuZCB4eXMgKCkgPVxuICBtYXRjaCB4eXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICgoXywgeSksIHh5cykgLT5cbiAgICAgIENvbnMgKHksIG1hcF9zbmQgeHlzKVxuXG5sZXQgdW56aXAgeHlzID1cbiAgbWFwX2ZzdCB4eXMsIG1hcF9zbmQgeHlzXG5cbmxldCBzcGxpdCA9XG4gIHVuemlwXG5cbigqIFtmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4c10gaXMgZXF1aXZhbGVudCB0b1xuICAgW2ZpbHRlcl9tYXAgRWl0aGVyLmZpbmRfbGVmdCAobWFwIGYgeHMpXS4gKilcblxubGV0IHJlYyBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgfCBFaXRoZXIuTGVmdCB5IC0+XG4gICAgICAgICAgQ29ucyAoeSwgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMpXG4gICAgICB8IEVpdGhlci5SaWdodCBfIC0+XG4gICAgICAgICAgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMgKClcblxubGV0IHJlYyBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgRWl0aGVyLkxlZnQgXyAtPlxuICAgICAgICAgIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4cyAoKVxuICAgICAgfCBFaXRoZXIuUmlnaHQgeiAtPlxuICAgICAgICAgIENvbnMgKHosIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4cylcblxubGV0IHBhcnRpdGlvbl9tYXAgZiB4cyA9XG4gIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzLFxuICBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHNcblxubGV0IHBhcnRpdGlvbiBwIHhzID1cbiAgZmlsdGVyIHAgeHMsIGZpbHRlciAoZnVuIHggLT4gbm90IChwIHgpKSB4c1xuXG4oKiBJZiBbeHNzXSBpcyBhIG1hdHJpeCAoYSBzZXF1ZW5jZSBvZiByb3dzKSwgdGhlbiBbcGVlbCB4c3NdIGlzIGEgcGFpciBvZlxuICAgdGhlIGZpcnN0IGNvbHVtbiAoYSBzZXF1ZW5jZSBvZiBlbGVtZW50cykgYW5kIG9mIHRoZSByZW1haW5kZXIgb2YgdGhlXG4gICBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygc2hvcnRlciByb3dzKS4gVGhlc2UgdHdvIHNlcXVlbmNlcyBoYXZlIHRoZSBzYW1lXG4gICBsZW5ndGguIFRoZSByb3dzIG9mIHRoZSBtYXRyaXggW3hzc10gYXJlIG5vdCByZXF1aXJlZCB0byBoYXZlIHRoZSBzYW1lXG4gICBsZW5ndGguIEFuIGVtcHR5IHJvdyBpcyBpZ25vcmVkLiAqKVxuXG4oKiBCZWNhdXNlIFtwZWVsXSB1c2VzIFt1bnppcF0sIGl0cyBhcmd1bWVudCBtdXN0IGJlIHBlcnNpc3RlbnQuIFRoZSBzYW1lXG4gICByZW1hcmsgYXBwbGllcyB0byBbdHJhbnNwb3NlXSwgW2RpYWdvbmFsc10sIFtwcm9kdWN0XSwgZXRjLiAqKVxuXG5sZXQgcGVlbCB4c3MgPVxuICB1bnppcCAoZmlsdGVyX21hcCB1bmNvbnMgeHNzKVxuXG5sZXQgcmVjIHRyYW5zcG9zZSB4c3MgKCkgPVxuICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCB4c3MgaW5cbiAgaWYgaXNfZW1wdHkgaGVhZHMgdGhlbiBiZWdpblxuICAgIGFzc2VydCAoaXNfZW1wdHkgdGFpbHMpO1xuICAgIE5pbFxuICBlbmRcbiAgZWxzZVxuICAgIENvbnMgKGhlYWRzLCB0cmFuc3Bvc2UgdGFpbHMpXG5cbigqIFRoZSBpbnRlcm5hbCBmdW5jdGlvbiBbZGlhZ29uYWxzXSB0YWtlcyBhbiBleHRyYSBhcmd1bWVudCwgW3JlbWFpbmRlcnNdLFxuICAgd2hpY2ggY29udGFpbnMgdGhlIHJlbWFpbmRlcnMgb2YgdGhlIHJvd3MgdGhhdCBoYXZlIGFscmVhZHkgYmVlblxuICAgZGlzY292ZXJlZC4gKilcblxubGV0IHJlYyBkaWFnb25hbHMgcmVtYWluZGVycyB4c3MgKCkgPVxuICBtYXRjaCB4c3MoKSB3aXRoXG4gIHwgQ29ucyAoeHMsIHhzcykgLT5cbiAgICAgIGJlZ2luIG1hdGNoIHhzKCkgd2l0aFxuICAgICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgICAoKiBXZSBkaXNjb3ZlciBhIG5ldyBub25lbXB0eSByb3cgW3ggOjogeHNdLiBUaHVzLCB0aGUgbmV4dCBkaWFnb25hbFxuICAgICAgICAgICAgIGlzIFt4IDo6IGhlYWRzXTogdGhpcyBkaWFnb25hbCBiZWdpbnMgd2l0aCBbeF0gYW5kIGNvbnRpbnVlcyB3aXRoXG4gICAgICAgICAgICAgdGhlIGZpcnN0IGVsZW1lbnQgb2YgZXZlcnkgcm93IGluIFtyZW1haW5kZXJzXS4gSW4gdGhlIHJlY3Vyc2l2ZVxuICAgICAgICAgICAgIGNhbGwsIHRoZSBhcmd1bWVudCBbcmVtYWluZGVyc10gaXMgaW5zdGFudGlhdGVkIHdpdGggW3hzIDo6XG4gICAgICAgICAgICAgdGFpbHNdLCB3aGljaCBtZWFucyB0aGF0IHdlIGhhdmUgb25lIG1vcmUgcmVtYWluaW5nIHJvdywgW3hzXSxcbiAgICAgICAgICAgICBhbmQgdGhhdCB3ZSBrZWVwIHRoZSB0YWlscyBvZiB0aGUgcHJlLWV4aXN0aW5nIHJlbWFpbmluZyByb3dzLiAqKVxuICAgICAgICAgIGxldCBoZWFkcywgdGFpbHMgPSBwZWVsIHJlbWFpbmRlcnMgaW5cbiAgICAgICAgICBDb25zIChjb25zIHggaGVhZHMsIGRpYWdvbmFscyAoY29ucyB4cyB0YWlscykgeHNzKVxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICAoKiBXZSBkaXNjb3ZlciBhIG5ldyBlbXB0eSByb3cuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaWFnb25hbCBpc1xuICAgICAgICAgICAgIGp1c3QgW2hlYWRzXSwgYW5kIFtyZW1haW5kZXJzXSBpcyBpbnN0YW50aWF0ZWQgd2l0aCBqdXN0IFt0YWlsc10sXG4gICAgICAgICAgICAgYXMgd2UgZG8gbm90IGhhdmUgb25lIG1vcmUgcmVtYWluaW5nIHJvdy4gKilcbiAgICAgICAgICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCByZW1haW5kZXJzIGluXG4gICAgICAgICAgQ29ucyAoaGVhZHMsIGRpYWdvbmFscyB0YWlscyB4c3MpXG4gICAgICBlbmRcbiAgfCBOaWwgLT5cbiAgICAgICgqIFRoZXJlIGFyZSBubyBtb3JlIHJvd3MgdG8gYmUgZGlzY292ZXJlZC4gVGhlcmUgcmVtYWlucyB0byBleGhhdXN0XG4gICAgICAgICB0aGUgcmVtYWluaW5nIHJvd3MuICopXG4gICAgICB0cmFuc3Bvc2UgcmVtYWluZGVycyAoKVxuXG4oKiBJZiBbeHNzXSBpcyBhIG1hdHJpeCAoYSBzZXF1ZW5jZSBvZiByb3dzKSwgdGhlbiBbZGlhZ29uYWxzIHhzc10gaXNcbiAgIHRoZSBzZXF1ZW5jZSBvZiBpdHMgZGlhZ29uYWxzLlxuXG4gICBUaGUgZmlyc3QgZGlhZ29uYWwgY29udGFpbnMganVzdCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGVcbiAgIGZpcnN0IHJvdy4gVGhlIHNlY29uZCBkaWFnb25hbCBjb250YWlucyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGVcbiAgIHNlY29uZCByb3cgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBvZiB0aGUgZmlyc3Qgcm93OyBhbmQgc28gb24uXG4gICBUaGlzIGtpbmQgb2YgZGlhZ29uYWwgaXMgaW4gZmFjdCBzb21ldGltZXMga25vd24gYXMgYW4gYW50aWRpYWdvbmFsLlxuXG4gICAtIEV2ZXJ5IGRpYWdvbmFsIGlzIGEgZmluaXRlIHNlcXVlbmNlLlxuICAgLSBUaGUgcm93cyBvZiB0aGUgbWF0cml4IFt4c3NdIGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZSBsZW5ndGguXG4gICAtIFRoZSBtYXRyaXggW3hzc10gaXMgbm90IHJlcXVpcmVkIHRvIGJlIGZpbml0ZSAoaW4gZWl0aGVyIGRpcmVjdGlvbikuXG4gICAtIFRoZSBtYXRyaXggW3hzc10gbXVzdCBiZSBwZXJzaXN0ZW50LiAqKVxuXG5sZXQgZGlhZ29uYWxzIHhzcyA9XG4gIGRpYWdvbmFscyBlbXB0eSB4c3NcblxubGV0IG1hcF9wcm9kdWN0IGYgeHMgeXMgPVxuICBjb25jYXQgKGRpYWdvbmFscyAoXG4gICAgbWFwIChmdW4geCAtPlxuICAgICAgbWFwIChmdW4geSAtPlxuICAgICAgICBmIHggeVxuICAgICAgKSB5c1xuICAgICkgeHNcbiAgKSlcblxubGV0IHByb2R1Y3QgeHMgeXMgPVxuICBtYXBfcHJvZHVjdCAoZnVuIHggeSAtPiAoeCwgeSkpIHhzIHlzXG5cbmxldCBvZl9kaXNwZW5zZXIgaXQgPVxuICBsZXQgcmVjIGMgKCkgPVxuICAgIG1hdGNoIGl0KCkgd2l0aFxuICAgIHwgTm9uZSAtPlxuICAgICAgICBOaWxcbiAgICB8IFNvbWUgeCAtPlxuICAgICAgICBDb25zICh4LCBjKVxuICBpblxuICBjXG5cbmxldCB0b19kaXNwZW5zZXIgeHMgPVxuICBsZXQgcyA9IHJlZiB4cyBpblxuICBmdW4gKCkgLT5cbiAgICBtYXRjaCAoIXMpKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5vbmVcbiAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICBzIDo9IHhzO1xuICAgICAgICBTb21lIHhcblxuXG5cbmxldCByZWMgaW50cyBpICgpID1cbiAgQ29ucyAoaSwgaW50cyAoaSArIDEpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSAnYSBvcHRpb24gPSBOb25lIHwgU29tZSBvZiAnYVxuXG5sZXQgbm9uZSA9IE5vbmVcbmxldCBzb21lIHYgPSBTb21lIHZcbmxldCB2YWx1ZSBvIH5kZWZhdWx0ID0gbWF0Y2ggbyB3aXRoIFNvbWUgdiAtPiB2IHwgTm9uZSAtPiBkZWZhdWx0XG5sZXQgZ2V0ID0gZnVuY3Rpb24gU29tZSB2IC0+IHYgfCBOb25lIC0+IGludmFsaWRfYXJnIFwib3B0aW9uIGlzIE5vbmVcIlxubGV0IGJpbmQgbyBmID0gbWF0Y2ggbyB3aXRoIE5vbmUgLT4gTm9uZSB8IFNvbWUgdiAtPiBmIHZcbmxldCBqb2luID0gZnVuY3Rpb24gU29tZSBvIC0+IG8gfCBOb25lIC0+IE5vbmVcbmxldCBtYXAgZiBvID0gbWF0Y2ggbyB3aXRoIE5vbmUgLT4gTm9uZSB8IFNvbWUgdiAtPiBTb21lIChmIHYpXG5sZXQgZm9sZCB+bm9uZSB+c29tZSA9IGZ1bmN0aW9uIFNvbWUgdiAtPiBzb21lIHYgfCBOb25lIC0+IG5vbmVcbmxldCBpdGVyIGYgPSBmdW5jdGlvbiBTb21lIHYgLT4gZiB2IHwgTm9uZSAtPiAoKVxubGV0IGlzX25vbmUgPSBmdW5jdGlvbiBOb25lIC0+IHRydWUgfCBTb21lIF8gLT4gZmFsc2VcbmxldCBpc19zb21lID0gZnVuY3Rpb24gTm9uZSAtPiBmYWxzZSB8IFNvbWUgXyAtPiB0cnVlXG5cbmxldCBlcXVhbCBlcSBvMCBvMSA9IG1hdGNoIG8wLCBvMSB3aXRoXG58IFNvbWUgdjAsIFNvbWUgdjEgLT4gZXEgdjAgdjFcbnwgTm9uZSwgTm9uZSAtPiB0cnVlXG58IF8gLT4gZmFsc2VcblxubGV0IGNvbXBhcmUgY21wIG8wIG8xID0gbWF0Y2ggbzAsIG8xIHdpdGhcbnwgU29tZSB2MCwgU29tZSB2MSAtPiBjbXAgdjAgdjFcbnwgTm9uZSwgTm9uZSAtPiAwXG58IE5vbmUsIFNvbWUgXyAtPiAtMVxufCBTb21lIF8sIE5vbmUgLT4gMVxuXG5sZXQgdG9fcmVzdWx0IH5ub25lID0gZnVuY3Rpb24gTm9uZSAtPiBFcnJvciBub25lIHwgU29tZSB2IC0+IE9rIHZcbmxldCB0b19saXN0ID0gZnVuY3Rpb24gTm9uZSAtPiBbXSB8IFNvbWUgdiAtPiBbdl1cbmxldCB0b19zZXEgPSBmdW5jdGlvbiBOb25lIC0+IFNlcS5lbXB0eSB8IFNvbWUgdiAtPiBTZXEucmV0dXJuIHZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAoJ2EsICdlKSB0ID0gKCdhLCAnZSkgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnZVxuXG5sZXQgb2sgdiA9IE9rIHZcbmxldCBlcnJvciBlID0gRXJyb3IgZVxubGV0IHZhbHVlIHIgfmRlZmF1bHQgPSBtYXRjaCByIHdpdGggT2sgdiAtPiB2IHwgRXJyb3IgXyAtPiBkZWZhdWx0XG5sZXQgZ2V0X29rID0gZnVuY3Rpb24gT2sgdiAtPiB2IHwgRXJyb3IgXyAtPiBpbnZhbGlkX2FyZyBcInJlc3VsdCBpcyBFcnJvciBfXCJcbmxldCBnZXRfZXJyb3IgPSBmdW5jdGlvbiBFcnJvciBlIC0+IGUgfCBPayBfIC0+IGludmFsaWRfYXJnIFwicmVzdWx0IGlzIE9rIF9cIlxubGV0IGJpbmQgciBmID0gbWF0Y2ggciB3aXRoIE9rIHYgLT4gZiB2IHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBqb2luID0gZnVuY3Rpb24gT2sgciAtPiByIHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBtYXAgZiA9IGZ1bmN0aW9uIE9rIHYgLT4gT2sgKGYgdikgfCBFcnJvciBfIGFzIGUgLT4gZVxubGV0IG1hcF9lcnJvciBmID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBFcnJvciAoZiBlKSB8IE9rIF8gYXMgdiAtPiB2XG5sZXQgZm9sZCB+b2sgfmVycm9yID0gZnVuY3Rpb24gT2sgdiAtPiBvayB2IHwgRXJyb3IgZSAtPiBlcnJvciBlXG5sZXQgaXRlciBmID0gZnVuY3Rpb24gT2sgdiAtPiBmIHYgfCBFcnJvciBfIC0+ICgpXG5sZXQgaXRlcl9lcnJvciBmID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBmIGUgfCBPayBfIC0+ICgpXG5sZXQgaXNfb2sgPSBmdW5jdGlvbiBPayBfIC0+IHRydWUgfCBFcnJvciBfIC0+IGZhbHNlXG5sZXQgaXNfZXJyb3IgPSBmdW5jdGlvbiBFcnJvciBfIC0+IHRydWUgfCBPayBfIC0+IGZhbHNlXG5cbmxldCBlcXVhbCB+b2sgfmVycm9yIHIwIHIxID0gbWF0Y2ggcjAsIHIxIHdpdGhcbnwgT2sgdjAsIE9rIHYxIC0+IG9rIHYwIHYxXG58IEVycm9yIGUwLCBFcnJvciBlMSAtPiBlcnJvciBlMCBlMVxufCBfLCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIH5vayB+ZXJyb3IgcjAgcjEgPSBtYXRjaCByMCwgcjEgd2l0aFxufCBPayB2MCwgT2sgdjEgLT4gb2sgdjAgdjFcbnwgRXJyb3IgZTAsIEVycm9yIGUxIC0+IGVycm9yIGUwIGUxXG58IE9rIF8sIEVycm9yIF8gLT4gLTFcbnwgRXJyb3IgXywgT2sgXyAtPiAxXG5cbmxldCB0b19vcHRpb24gPSBmdW5jdGlvbiBPayB2IC0+IFNvbWUgdiB8IEVycm9yIF8gLT4gTm9uZVxubGV0IHRvX2xpc3QgPSBmdW5jdGlvbiBPayB2IC0+IFt2XSB8IEVycm9yIF8gLT4gW11cbmxldCB0b19zZXEgPSBmdW5jdGlvbiBPayB2IC0+IFNlcS5yZXR1cm4gdiB8IEVycm9yIF8gLT4gU2VxLmVtcHR5XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGJvb2wgPSBmYWxzZSB8IHRydWVcblxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxubGV0IGVxdWFsIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBib29sIC0+IGJvb2wgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmV4dGVybmFsIHRvX2ludCA6IGJvb2wgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxubGV0IHRvX2Zsb2F0ID0gZnVuY3Rpb24gZmFsc2UgLT4gMC4gfCB0cnVlIC0+IDEuXG5cbigqXG5sZXQgb2Zfc3RyaW5nID0gZnVuY3Rpb25cbnwgXCJmYWxzZVwiIC0+IFNvbWUgZmFsc2VcbnwgXCJ0cnVlXCIgLT4gU29tZSB0cnVlXG58IF8gLT4gTm9uZVxuKilcblxubGV0IHRvX3N0cmluZyA9IGZ1bmN0aW9uIGZhbHNlIC0+IFwiZmFsc2VcIiB8IHRydWUgLT4gXCJ0cnVlXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ2hhcmFjdGVyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgY29kZTogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB1bnNhZmVfY2hyOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcblxubGV0IGNociBuID1cbiAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuIGludmFsaWRfYXJnIFwiQ2hhci5jaHJcIiBlbHNlIHVuc2FmZV9jaHIgblxuXG5leHRlcm5hbCBieXRlc19jcmVhdGU6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgYnl0ZXNfdW5zYWZlX3NldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcblxubGV0IGVzY2FwZWQgPSBmdW5jdGlvblxuICB8ICdcXCcnIC0+IFwiXFxcXCdcIlxuICB8ICdcXFxcJyAtPiBcIlxcXFxcXFxcXCJcbiAgfCAnXFxuJyAtPiBcIlxcXFxuXCJcbiAgfCAnXFx0JyAtPiBcIlxcXFx0XCJcbiAgfCAnXFxyJyAtPiBcIlxcXFxyXCJcbiAgfCAnXFxiJyAtPiBcIlxcXFxiXCJcbiAgfCAnICcgLi4gJ34nIGFzIGMgLT5cbiAgICAgIGxldCBzID0gYnl0ZXNfY3JlYXRlIDEgaW5cbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAwIGM7XG4gICAgICB1bnNhZmVfdG9fc3RyaW5nIHNcbiAgfCBjIC0+XG4gICAgICBsZXQgbiA9IGNvZGUgYyBpblxuICAgICAgbGV0IHMgPSBieXRlc19jcmVhdGUgNCBpblxuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDAgJ1xcXFwnO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDEgKHVuc2FmZV9jaHIgKDQ4ICsgbiAvIDEwMCkpO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDIgKHVuc2FmZV9jaHIgKDQ4ICsgKG4gLyAxMCkgbW9kIDEwKSk7XG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMyAodW5zYWZlX2NociAoNDggKyBuIG1vZCAxMCkpO1xuICAgICAgdW5zYWZlX3RvX3N0cmluZyBzXG5cbmxldCBsb3dlcmNhc2UgPSBmdW5jdGlvblxuICB8ICdBJyAuLiAnWidcbiAgfCAnXFwxOTInIC4uICdcXDIxNCdcbiAgfCAnXFwyMTYnIC4uICdcXDIyMicgYXMgYyAtPlxuICAgIHVuc2FmZV9jaHIoY29kZSBjICsgMzIpXG4gIHwgYyAtPiBjXG5cbmxldCB1cHBlcmNhc2UgPSBmdW5jdGlvblxuICB8ICdhJyAuLiAneidcbiAgfCAnXFwyMjQnIC4uICdcXDI0NidcbiAgfCAnXFwyNDgnIC4uICdcXDI1NCcgYXMgYyAtPlxuICAgIHVuc2FmZV9jaHIoY29kZSBjIC0gMzIpXG4gIHwgYyAtPiBjXG5cbmxldCBsb3dlcmNhc2VfYXNjaWkgPSBmdW5jdGlvblxuICB8ICdBJyAuLiAnWicgYXMgYyAtPiB1bnNhZmVfY2hyKGNvZGUgYyArIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgdXBwZXJjYXNlX2FzY2lpID0gZnVuY3Rpb25cbiAgfCAnYScgLi4gJ3onIGFzIGMgLT4gdW5zYWZlX2Nocihjb2RlIGMgLSAzMilcbiAgfCBjIC0+IGNcblxudHlwZSB0ID0gY2hhclxuXG5sZXQgY29tcGFyZSBjMSBjMiA9IGNvZGUgYzEgLSBjb2RlIGMyXG5sZXQgZXF1YWwgKGMxOiB0KSAoYzI6IHQpID0gY29tcGFyZSBjMSBjMiA9IDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgZm9yXG4gICBlZmZpY2llbmN5IHJlYXNvbnMuIFdoZW4geW91IG1vZGlmeSB0aGUgb25lIGluIHRoaXMgZmlsZSB5b3UgbmVlZCB0b1xuICAgbW9kaWZ5IGl0cyBkdXBsaWNhdGUgaW4gc3RyaW5nLm1sLlxuICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBcImR1cGxpY2F0ZWRcIiBjb21tZW50IGFib3ZlIHRoZWlyIGRlZmluaXRpb24uXG4qKVxuXG5leHRlcm5hbCBsZW5ndGggOiBieXRlcyAtPiBpbnQgPSBcIiVieXRlc19sZW5ndGhcIlxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGdldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfZmlsbF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcbmV4dGVybmFsIHVuc2FmZV9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gYnl0ZXMgPSBcIiVieXRlc19vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6IGJ5dGVzIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX2JsaXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubGV0IG1ha2UgbiBjID1cbiAgbGV0IHMgPSBjcmVhdGUgbiBpblxuICB1bnNhZmVfZmlsbCBzIDAgbiBjO1xuICBzXG5cbmxldCBpbml0IG4gZiA9XG4gIGxldCBzID0gY3JlYXRlIG4gaW5cbiAgZm9yIGkgPSAwIHRvIG4gLSAxIGRvXG4gICAgdW5zYWZlX3NldCBzIGkgKGYgaSlcbiAgZG9uZTtcbiAgc1xuXG5sZXQgZW1wdHkgPSBjcmVhdGUgMFxuXG5sZXQgY29weSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCByID0gY3JlYXRlIGxlbiBpblxuICB1bnNhZmVfYmxpdCBzIDAgciAwIGxlbjtcbiAgclxuXG5sZXQgdG9fc3RyaW5nIGIgPSB1bnNhZmVfdG9fc3RyaW5nIChjb3B5IGIpXG5sZXQgb2Zfc3RyaW5nIHMgPSBjb3B5ICh1bnNhZmVfb2Zfc3RyaW5nIHMpXG5cbmxldCBzdWIgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuc3ViIC8gQnl0ZXMuc3ViXCJcbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IHMgb2ZzIHIgMCBsZW47XG4gICAgclxuICBlbmRcblxubGV0IHN1Yl9zdHJpbmcgYiBvZnMgbGVuID0gdW5zYWZlX3RvX3N0cmluZyAoc3ViIGIgb2ZzIGxlbilcblxuKCogYWRkaXRpb24gd2l0aCBhbiBvdmVyZmxvdyBjaGVjayAqKVxubGV0ICgrKykgYSBiID1cbiAgbGV0IGMgPSBhICsgYiBpblxuICBtYXRjaCBhIDwgMCwgYiA8IDAsIGMgPCAwIHdpdGhcbiAgfCB0cnVlICwgdHJ1ZSAsIGZhbHNlXG4gIHwgZmFsc2UsIGZhbHNlLCB0cnVlICAtPiBpbnZhbGlkX2FyZyBcIkJ5dGVzLmV4dGVuZFwiICgqIG92ZXJmbG93ICopXG4gIHwgXyAtPiBjXG5cbmxldCBleHRlbmQgcyBsZWZ0IHJpZ2h0ID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzICsrIGxlZnQgKysgcmlnaHQgaW5cbiAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gIGxldCAoc3Jjb2ZmLCBkc3RvZmYpID0gaWYgbGVmdCA8IDAgdGhlbiAtbGVmdCwgMCBlbHNlIDAsIGxlZnQgaW5cbiAgbGV0IGNweWxlbiA9IEludC5taW4gKGxlbmd0aCBzIC0gc3Jjb2ZmKSAobGVuIC0gZHN0b2ZmKSBpblxuICBpZiBjcHlsZW4gPiAwIHRoZW4gdW5zYWZlX2JsaXQgcyBzcmNvZmYgciBkc3RvZmYgY3B5bGVuO1xuICByXG5cbmxldCBmaWxsIHMgb2ZzIGxlbiBjID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuZmlsbCAvIEJ5dGVzLmZpbGxcIlxuICBlbHNlIHVuc2FmZV9maWxsIHMgb2ZzIGxlbiBjXG5cbmxldCBibGl0IHMxIG9mczEgczIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBsZW5ndGggczEgLSBsZW5cbiAgICAgICAgICAgICB8fCBvZnMyIDwgMCB8fCBvZnMyID4gbGVuZ3RoIHMyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCeXRlcy5ibGl0XCJcbiAgZWxzZSB1bnNhZmVfYmxpdCBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbmxldCBibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gc3RyaW5nX2xlbmd0aCBzMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggczIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5ibGl0IC8gQnl0ZXMuYmxpdF9zdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9ibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaXRlciBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpdGVyaSBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJCeXRlcy5jb25jYXRcIlxuXG5sZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyBzZXBsZW4gPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY1xuICB8IGhkIDo6IFtdIC0+IGxlbmd0aCBoZCArIGFjY1xuICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIHNlcGxlbiArIGFjYykgYWNjKSBzZXBsZW4gdGxcblxubGV0IHJlYyB1bnNhZmVfYmxpdHMgZHN0IHBvcyBzZXAgc2VwbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBkc3RcbiAgfCBoZCA6OiBbXSAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTsgZHN0XG4gIHwgaGQgOjogdGwgLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7XG4gICAgdW5zYWZlX2JsaXQgc2VwIDAgZHN0IChwb3MgKyBsZW5ndGggaGQpIHNlcGxlbjtcbiAgICB1bnNhZmVfYmxpdHMgZHN0IChwb3MgKyBsZW5ndGggaGQgKyBzZXBsZW4pIHNlcCBzZXBsZW4gdGxcblxubGV0IGNvbmNhdCBzZXAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGVtcHR5XG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpblxuICAgICAgICAgIHVuc2FmZV9ibGl0c1xuICAgICAgICAgICAgKGNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0IHMxIHMyID1cbiAgbGV0IGwxID0gbGVuZ3RoIHMxIGluXG4gIGxldCBsMiA9IGxlbmd0aCBzMiBpblxuICBsZXQgciA9IGNyZWF0ZSAobDEgKyBsMikgaW5cbiAgdW5zYWZlX2JsaXQgczEgMCByIDAgbDE7XG4gIHVuc2FmZV9ibGl0IHMyIDAgciBsMSBsMjtcbiAgclxuXG5cbmV4dGVybmFsIGNoYXJfY29kZTogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBjaGFyX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19zcGFjZSA9IGZ1bmN0aW9uXG4gIHwgJyAnIHwgJ1xcMDEyJyB8ICdcXG4nIHwgJ1xccicgfCAnXFx0JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5sZXQgdHJpbSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gJiYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAhaSkgZG9cbiAgICBpbmNyIGlcbiAgZG9uZTtcbiAgbGV0IGogPSByZWYgKGxlbiAtIDEpIGluXG4gIHdoaWxlICFqID49ICFpICYmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgIWopIGRvXG4gICAgZGVjciBqXG4gIGRvbmU7XG4gIGlmICFqID49ICFpIHRoZW5cbiAgICBzdWIgcyAhaSAoIWogLSAhaSArIDEpXG4gIGVsc2VcbiAgICBlbXB0eVxuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IG4gPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgbiA6PSAhbiArXG4gICAgICAobWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcbicgfCAnXFx0JyB8ICdcXHInIHwgJ1xcYicgLT4gMlxuICAgICAgIHwgJyAnIC4uICd+JyAtPiAxXG4gICAgICAgfCBfIC0+IDQpXG4gIGRvbmU7XG4gIGlmICFuID0gbGVuZ3RoIHMgdGhlbiBjb3B5IHMgZWxzZSBiZWdpblxuICAgIGxldCBzJyA9IGNyZWF0ZSAhbiBpblxuICAgIG4gOj0gMDtcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgICBiZWdpbiBtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICB8ICgnXFxcIicgfCAnXFxcXCcpIGFzIGMgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICduJ1xuICAgICAgfCAnXFx0JyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ3QnXG4gICAgICB8ICdcXHInIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAncidcbiAgICAgIHwgJ1xcYicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICdiJ1xuICAgICAgfCAoJyAnIC4uICd+JykgYXMgYyAtPiB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgYyAtPlxuICAgICAgICAgIGxldCBhID0gY2hhcl9jb2RlIGMgaW5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJztcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSAvIDEwMCkpO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyAoYSAvIDEwKSBtb2QgMTApKTtcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSBtb2QgMTApKTtcbiAgICAgIGVuZDtcbiAgICAgIGluY3IgblxuICAgIGRvbmU7XG4gICAgcydcbiAgZW5kXG5cbmxldCBtYXAgZiBzID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBsID0gMCB0aGVuIHMgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgcyBpKSkgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwaSBmIHMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGwgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IHMgaSkpIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gIGRvbmU7XG4gICFyXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBzIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IHMgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID0gbWFwIENoYXIudXBwZXJjYXNlX2FzY2lpIHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9IG1hcCBDaGFyLmxvd2VyY2FzZV9hc2NpaSBzXG5cbmxldCBhcHBseTEgZiBzID1cbiAgaWYgbGVuZ3RoIHMgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjb3B5IHMgaW5cbiAgICB1bnNhZmVfc2V0IHIgMCAoZih1bnNhZmVfZ2V0IHMgMCkpO1xuICAgIHJcbiAgZW5kXG5cbmxldCBjYXBpdGFsaXplX2FzY2lpIHMgPSBhcHBseTEgQ2hhci51cHBlcmNhc2VfYXNjaWkgc1xubGV0IHVuY2FwaXRhbGl6ZV9hc2NpaSBzID0gYXBwbHkxIENoYXIubG93ZXJjYXNlX2FzY2lpIHNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBzdGFydHNfd2l0aCB+cHJlZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3ByZSA9IGxlbmd0aCBwcmVmaXggaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9wcmUgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgaSA8PiB1bnNhZmVfZ2V0IHByZWZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGxlbl9zID49IGxlbl9wcmUgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleCBzIGMgPSBpbmRleF9yZWMgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWNfb3B0IHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIGluZGV4X3JlY19vcHQgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4X2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbSAvIEJ5dGVzLmluZGV4X2Zyb21cIiBlbHNlXG4gIGluZGV4X3JlYyBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjIHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgcmluZGV4X3JlYyBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleCBzIGMgPSByaW5kZXhfcmVjIHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIHJpbmRleF9yZWNfb3B0IHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X29wdCBzIGMgPSByaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgMCB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yY29udGFpbnNfZnJvbSAvIEJ5dGVzLnJjb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKHJpbmRleF9yZWMgcyBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxudHlwZSB0ID0gYnl0ZXNcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiB0IC0+IHQgLT4gYm9vbCA9IFwiY2FtbF9ieXRlc19lcXVhbFwiIFtAQG5vYWxsb2NdXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgc3BsaXRfb25fY2hhciBzZXAgcyA9XG4gIGxldCByID0gcmVmIFtdIGluXG4gIGxldCBqID0gcmVmIChsZW5ndGggcykgaW5cbiAgZm9yIGkgPSBsZW5ndGggcyAtIDEgZG93bnRvIDAgZG9cbiAgICBpZiB1bnNhZmVfZ2V0IHMgaSA9IHNlcCB0aGVuIGJlZ2luXG4gICAgICByIDo9IHN1YiBzIChpICsgMSkgKCFqIC0gaSAtIDEpIDo6ICFyO1xuICAgICAgaiA6PSBpXG4gICAgZW5kXG4gIGRvbmU7XG4gIHN1YiBzIDAgIWogOjogIXJcblxuKCogRGVwcmVjYXRlZCBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgdmlhIG90aGVyIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICopXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdXG5sZXQgdXBwZXJjYXNlIHMgPSBtYXAgQ2hhci51cHBlcmNhc2Ugc1xubGV0IGxvd2VyY2FzZSBzID0gbWFwIENoYXIubG93ZXJjYXNlIHNcblxubGV0IGNhcGl0YWxpemUgcyA9IGFwcGx5MSBDaGFyLnVwcGVyY2FzZSBzXG5sZXQgdW5jYXBpdGFsaXplIHMgPSBhcHBseTEgQ2hhci5sb3dlcmNhc2Ugc1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpID0gbGVuZ3RoIHMgdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBnZXQgcyBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBzID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA9IGxlbmd0aCBzIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gZ2V0IHMgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBuID0gcmVmIDAgaW5cbiAgbGV0IGJ1ZiA9IHJlZiAobWFrZSAyNTYgJ1xcMDAwJykgaW5cbiAgbGV0IHJlc2l6ZSAoKSA9XG4gICAgKCogcmVzaXplICopXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWluICgyICogbGVuZ3RoICFidWYpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgIGlmIGxlbmd0aCAhYnVmID0gbmV3X2xlbiB0aGVuIGZhaWx3aXRoIFwiQnl0ZXMub2Zfc2VxOiBjYW5ub3QgZ3JvdyBieXRlc1wiO1xuICAgIGxldCBuZXdfYnVmID0gbWFrZSBuZXdfbGVuICdcXDAwMCcgaW5cbiAgICBibGl0ICFidWYgMCBuZXdfYnVmIDAgIW47XG4gICAgYnVmIDo9IG5ld19idWZcbiAgaW5cbiAgU2VxLml0ZXJcbiAgICAoZnVuIGMgLT5cbiAgICAgICBpZiAhbiA9IGxlbmd0aCAhYnVmIHRoZW4gcmVzaXplKCk7XG4gICAgICAgc2V0ICFidWYgIW4gYztcbiAgICAgICBpbmNyIG4pXG4gICAgaTtcbiAgc3ViICFidWYgMCAhblxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nL2RlY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG4oKiBUaGUgZ2V0XyBmdW5jdGlvbnMgYXJlIGFsbCBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxuXG5leHRlcm5hbCB1bnNhZmVfZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNnVcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3NhZmVfZ2V0XCJcbmV4dGVybmFsIGdldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNlwiXG5leHRlcm5hbCBnZXRfaW50MzJfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgPSBcIiVjYW1sX2J5dGVzX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCA9IFwiJWNhbWxfYnl0ZXNfZ2V0NjRcIlxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCBzZXRfaW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIHNldF9pbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZcIlxuZXh0ZXJuYWwgc2V0X2ludDMyX25lIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMyXCJcbmV4dGVybmFsIHNldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQ2NFwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5sZXQgdW5zYWZlX2dldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiBzd2FwMTYgKHVuc2FmZV9nZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSB1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IHVuc2FmZV9nZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX2dldF91aW50MTZfbmUgYiBpXG4gIGVsc2Ugc3dhcDE2ICh1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGkpXG5cbmxldCBnZXRfaW50OCBiIGkgPVxuICAoKGdldF91aW50OCBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gOCkpIGFzciAoU3lzLmludF9zaXplIC0gOClcblxubGV0IGdldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgKGdldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIGdldF91aW50MTZfbmUgYiBpXG5cbmxldCBnZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiAoZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IGdldF9pbnQxNl9uZSBiIGkgPVxuICAoKGdldF91aW50MTZfbmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9sZSBiIGkgPVxuICAoKGdldF91aW50MTZfbGUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9iZSBiIGkgPVxuICAoKGdldF91aW50MTZfYmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQzMl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiAoZ2V0X2ludDMyX25lIGIgaSlcbiAgZWxzZSBnZXRfaW50MzJfbmUgYiBpXG5cbmxldCBnZXRfaW50MzJfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIChnZXRfaW50MzJfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQzMl9uZSBiIGlcblxubGV0IGdldF9pbnQ2NF9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCAoZ2V0X2ludDY0X25lIGIgaSlcbiAgZWxzZSBnZXRfaW50NjRfbmUgYiBpXG5cbmxldCBnZXRfaW50NjRfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IChnZXRfaW50NjRfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQ2NF9uZSBiIGlcblxubGV0IHVuc2FmZV9zZXRfdWludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSB4XG5cbmxldCB1bnNhZmVfc2V0X3VpbnQxNl9iZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIHggZWxzZVxuICB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuXG5sZXQgc2V0X2ludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MTZfbmUgYiBpIChzd2FwMTYgeClcbiAgZWxzZSBzZXRfaW50MTZfbmUgYiBpIHhcblxubGV0IHNldF9pbnQxNl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHNldF9pbnQxNl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDMyX2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MzJfbmUgYiBpIChzd2FwMzIgeClcbiAgZWxzZSBzZXRfaW50MzJfbmUgYiBpIHhcblxubGV0IHNldF9pbnQzMl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQzMl9uZSBiIGkgKHN3YXAzMiB4KVxuICBlbHNlIHNldF9pbnQzMl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDY0X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50NjRfbmUgYiBpIChzd2FwNjQgeClcbiAgZWxzZSBzZXRfaW50NjRfbmUgYiBpIHhcblxubGV0IHNldF9pbnQ2NF9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQ2NF9uZSBiIGkgKHN3YXA2NCB4KVxuICBlbHNlIHNldF9pbnQ2NF9uZSBiIGkgeFxuXG5sZXQgc2V0X3VpbnQ4ID0gc2V0X2ludDhcbmxldCBzZXRfdWludDE2X25lID0gc2V0X2ludDE2X25lXG5sZXQgc2V0X3VpbnQxNl9iZSA9IHNldF9pbnQxNl9iZVxubGV0IHNldF91aW50MTZfbGUgPSBzZXRfaW50MTZfbGVcblxuKCogVVRGIGNvZGVjcyBhbmQgdmFsaWRhdGlvbnMgKilcblxubGV0IGRlY19pbnZhbGlkID0gVWNoYXIudXRmX2RlY29kZV9pbnZhbGlkXG5sZXRbQGlubGluZV0gZGVjX3JldCBuIHUgPSBVY2hhci51dGZfZGVjb2RlIG4gKFVjaGFyLnVuc2FmZV9vZl9pbnQgdSlcblxuKCogSW4gY2FzZSBvZiBkZWNvZGluZyBlcnJvciwgaWYgd2UgZXJyb3Igb24gdGhlIGZpcnN0IGJ5dGUsIHdlXG4gICBjb25zdW1lIHRoZSBieXRlLCBvdGhlcndpc2Ugd2UgY29uc3VtZSB0aGUgW25dIGJ5dGVzIHByZWNlZWRpbmdcbiAgIHRoZSBlcnJvcmluZyBieXRlLlxuXG4gICBUaGlzIG1lYW5zIHRoYXQgaWYgYSBjbGllbnQgdXNlcyBkZWNvZGVzIHdpdGhvdXQgY2FyaW5nIGFib3V0XG4gICB2YWxpZGl0eSBpdCBuYXR1cmFsbHkgcmVwbGFjZSBib2d1cyBkYXRhIHdpdGggVWNoYXIucmVwIGFjY29yZGluZ1xuICAgdG8gdGhlIFdIQVRXRyBFbmNvZGluZyBzdGFuZGFyZC4gT3RoZXIgc2NoZW1lcyBhcmUgcG9zc2libGUgYnlcbiAgIGNvbnN1bHRpbmcgdGhlIG51bWJlciBvZiB1c2VkIGJ5dGVzIG9uIGludmFsaWQgZGVjb2Rlcy4gRm9yIG1vcmVcbiAgIGRldGFpbHMgc2VlIGh0dHBzOi8vaHNpdm9uZW4uZmkvYnJva2VuLXV0Zi04L1xuXG4gICBGb3IgdGhpcyByZWFzb24gaW4gW2dldF91dGZfOF91Y2hhcl0gd2UgZ3JhZHVhbGx5IGNoZWNrIHRoZSBuZXh0XG4gICBieXRlIGlzIGF2YWlsYWJsZSByYXRoZXIgdGhhbiBkb2luZyBpdCBpbW1lZGlhdGVseSBhZnRlciB0aGVcbiAgIGZpcnN0IGJ5dGUuIENvbnRyYXN0IHdpdGggW2lzX3ZhbGlkX3V0Zl84XS4gKilcblxuKCogVVRGLTggKilcblxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feEJGIGIgPSBiIGxzciA2IDw+IDBiMTBcbmxldFtAaW5saW5lXSBub3RfaW5feEEwX3RvX3hCRiBiID0gYiBsc3IgNSA8PiAwYjEwMVxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feDlGIGIgPSBiIGxzciA1IDw+IDBiMTAwXG5sZXRbQGlubGluZV0gbm90X2luX3g5MF90b194QkYgYiA9IGIgPCAweDkwIHx8IDB4QkYgPCBiXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194OEYgYiA9IGIgbHNyIDQgPD4gMHg4XG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl8yIGIwIGIxID1cbiAgKChiMCBsYW5kIDB4MUYpIGxzbCA2KSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpKVxuXG5sZXRbQGlubGluZV0gdXRmXzhfdWNoYXJfMyBiMCBiMSBiMiA9XG4gICgoYjAgbGFuZCAweDBGKSBsc2wgMTIpIGxvclxuICAoKGIxIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIyIGxhbmQgMHgzRikpXG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzID1cbiAgKChiMCBsYW5kIDB4MDcpIGxzbCAxOCkgbG9yXG4gICgoYjEgbGFuZCAweDNGKSBsc2wgMTIpIGxvclxuICAoKGIyIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIzIGxhbmQgMHgzRikpXG5cbmxldCBnZXRfdXRmXzhfdWNoYXIgYiBpID1cbiAgbGV0IGIwID0gZ2V0X3VpbnQ4IGIgaSBpbiAoKiByYWlzZXMgaWYgW2ldIGlzIG5vdCBhIHZhbGlkIGluZGV4LiAqKVxuICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50OCBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIG1hdGNoIENoYXIudW5zYWZlX2NociBiMCB3aXRoICgqIFNlZSBUaGUgVW5pY29kZSBTdGFuZGFyZCwgVGFibGUgMy43ICopXG4gIHwgJ1xceDAwJyAuLiAnXFx4N0YnIC0+IGRlY19yZXQgMSBiMFxuICB8ICdcXHhDMicgLi4gJ1xceERGJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBkZWNfcmV0IDIgKHV0Zl84X3VjaGFyXzIgYjAgYjEpXG4gIHwgJ1xceEUwJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94QTBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RTEnIC4uICdcXHhFQycgfCAnXFx4RUUnIC4uICdcXHhFRicgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBkZWNfcmV0IDMgKHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIpXG4gIHwgJ1xceEVEJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDlGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RjAnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g5MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEYxJyAuLiAnXFx4RjMnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEY0JyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDhGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgbGV0IGIzID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMyB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgZGVjX3JldCA0ICh1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzKVxuICB8IF8gLT4gZGVjX2ludmFsaWQgMVxuXG5sZXQgc2V0X3V0Zl84X3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDggaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4MDA3RiAtPlxuICAgICAgc2V0X3VpbnQ4IGIgaSB1O1xuICAgICAgMVxuICB8IHUgd2hlbiB1IDw9IDB4MDdGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4QzAgbG9yICh1IGxzciA2KSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgMilcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEUwIGxvciAodSBsc3IgMTIpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDMpXG4gIHwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEYwIGxvciAodSBsc3IgMTgpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDEyKSBsYW5kIDB4M0YpKTtcbiAgICAgICBzZXQgYiAoaSArIDIpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDQpXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl84IGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQ4IGluXG4gICAgbWF0Y2ggQ2hhci51bnNhZmVfY2hyIChnZXQgYiBpKSB3aXRoXG4gICAgfCAnXFx4MDAnIC4uICdcXHg3RicgLT4gbG9vcCBtYXggYiAoaSArIDEpXG4gICAgfCAnXFx4QzInIC4uICdcXHhERicgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RTAnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feEEwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFMScgLi4gJ1xceEVDJyB8ICdcXHhFRScgLi4gJ1xceEVGJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RUQnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3g5RiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94OTBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAyKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMScgLi4gJ1xceEYzJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEY0JyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194OEYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgXyAtPiBmYWxzZVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZCRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2JlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZiZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZMRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2xlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZsZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBpbnRcblxubGV0IHplcm8gPSAwXG5sZXQgb25lID0gMVxubGV0IG1pbnVzX29uZSA9IC0xXG5leHRlcm5hbCBuZWcgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsIGFkZCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsIHN1YiA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsIG11bCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsIGRpdiA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsIHJlbSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxubGV0IGFicyB4ID0gaWYgeCA+PSAwIHRoZW4geCBlbHNlIC14XG5sZXQgbWF4X2ludCA9ICgtMSkgbHNyIDFcbmxldCBtaW5faW50ID0gbWF4X2ludCArIDFcbmV4dGVybmFsIGxvZ2FuZCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsIGxvZ29yIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5sZXQgbG9nbm90IHggPSBsb2d4b3IgeCAoLTEpXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxubGV0IGVxdWFsIDogaW50IC0+IGludCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogaW50IC0+IGludCAtPiBpbnQgPSBTdGRsaWIuY29tcGFyZVxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5leHRlcm5hbCB0b19mbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcblxuKCpcbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxubGV0IG9mX3N0cmluZyBzID0gdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgcykgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxubGV0IHRvX3N0cmluZyB4ID0gZm9ybWF0X2ludCBcIiVkXCIgeFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgR2FsbGl1bSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBTdHJpbmcgb3BlcmF0aW9ucywgYmFzZWQgb24gYnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBieXRlcy5tbCBmb3JcbiAgIGVmZmljaWVuY3kgcmVhc29ucy4gV2hlbiB5b3UgbW9kaWZ5IHRoZSBvbmUgaW4gdGhpcyBmaWxlIHlvdSBuZWVkIHRvXG4gICBtb2RpZnkgaXRzIGR1cGxpY2F0ZSBpbiBieXRlcy5tbC5cbiAgIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgXCJkdXBsaWNhdGVkXCIgY29tbWVudCBhYm92ZSB0aGVpciBkZWZpbml0aW9uLlxuKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVzdHJpbmdfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9zdHJpbmdcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlc3RyaW5nX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOiBzdHJpbmcgLT4gaW50IC0+ICBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV9maWxsIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2ZpbGxfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubW9kdWxlIEIgPSBCeXRlc1xuXG5sZXQgYnRzID0gQi51bnNhZmVfdG9fc3RyaW5nXG5sZXQgYm9zID0gQi51bnNhZmVfb2Zfc3RyaW5nXG5cbmxldCBtYWtlIG4gYyA9XG4gIEIubWFrZSBuIGMgfD4gYnRzXG5sZXQgaW5pdCBuIGYgPVxuICBCLmluaXQgbiBmIHw+IGJ0c1xubGV0IGVtcHR5ID0gXCJcIlxubGV0IGNvcHkgcyA9XG4gIEIuY29weSAoYm9zIHMpIHw+IGJ0c1xubGV0IG9mX2J5dGVzID0gQi50b19zdHJpbmdcbmxldCB0b19ieXRlcyA9IEIub2Zfc3RyaW5nXG5sZXQgc3ViIHMgb2ZzIGxlbiA9XG4gIEIuc3ViIChib3Mgcykgb2ZzIGxlbiB8PiBidHNcbmxldCBmaWxsID1cbiAgQi5maWxsXG5sZXQgYmxpdCA9XG4gIEIuYmxpdF9zdHJpbmdcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29uY2F0XCJcblxubGV0IHJlYyBzdW1fbGVuZ3RocyBhY2Mgc2VwbGVuID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2NcbiAgfCBoZCA6OiBbXSAtPiBsZW5ndGggaGQgKyBhY2NcbiAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBzZXBsZW4gKyBhY2MpIGFjYykgc2VwbGVuIHRsXG5cbmxldCByZWMgdW5zYWZlX2JsaXRzIGRzdCBwb3Mgc2VwIHNlcGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZHN0XG4gIHwgaGQgOjogW10gLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7IGRzdFxuICB8IGhkIDo6IHRsIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpO1xuICAgIHVuc2FmZV9ibGl0IHNlcCAwIGRzdCAocG9zICsgbGVuZ3RoIGhkKSBzZXBsZW47XG4gICAgdW5zYWZlX2JsaXRzIGRzdCAocG9zICsgbGVuZ3RoIGhkICsgc2VwbGVuKSBzZXAgc2VwbGVuIHRsXG5cbmxldCBjb25jYXQgc2VwID0gZnVuY3Rpb25cbiAgICBbXSAtPiBcIlwiXG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpbiBidHMgQEBcbiAgICAgICAgICB1bnNhZmVfYmxpdHNcbiAgICAgICAgICAgIChCLmNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0ID0gKCBeIClcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGl0ZXIgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmICh1bnNhZmVfZ2V0IHMgaSkgZG9uZVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaXRlcmkgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgcyBpKSBkb25lXG5cbmxldCBtYXAgZiBzID1cbiAgQi5tYXAgZiAoYm9zIHMpIHw+IGJ0c1xubGV0IG1hcGkgZiBzID1cbiAgQi5tYXBpIGYgKGJvcyBzKSB8PiBidHNcbmxldCBmb2xkX3JpZ2h0IGYgeCBhID1cbiAgQi5mb2xkX3JpZ2h0IGYgKGJvcyB4KSBhXG5sZXQgZm9sZF9sZWZ0IGYgYSB4ID1cbiAgQi5mb2xkX2xlZnQgZiBhIChib3MgeClcbmxldCBleGlzdHMgZiBzID1cbiAgQi5leGlzdHMgZiAoYm9zIHMpXG5sZXQgZm9yX2FsbCBmIHMgPVxuICBCLmZvcl9hbGwgZiAoYm9zIHMpXG5cbigqIEJld2FyZTogd2UgY2Fubm90IHVzZSBCLnRyaW0gb3IgQi5lc2NhcGUgYmVjYXVzZSB0aGV5IGFsd2F5cyBtYWtlIGFcbiAgIGNvcHksIGJ1dCBTdHJpbmcubWxpIHNwZWxscyBvdXQgc29tZSBjYXNlcyB3aGVyZSB3ZSBhcmUgbm90IGFsbG93ZWRcbiAgIHRvIG1ha2UgYSBjb3B5LiAqKVxuXG5sZXQgaXNfc3BhY2UgPSBmdW5jdGlvblxuICB8ICcgJyB8ICdcXDAxMicgfCAnXFxuJyB8ICdcXHInIHwgJ1xcdCcgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxubGV0IHRyaW0gcyA9XG4gIGlmIHMgPSBcIlwiIHRoZW4gc1xuICBlbHNlIGlmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgMCkgfHwgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAobGVuZ3RoIHMgLSAxKSlcbiAgICB0aGVuIGJ0cyAoQi50cmltIChib3MgcykpXG4gIGVsc2Ugc1xuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IHJlYyBlc2NhcGVfaWZfbmVlZGVkIHMgbiBpID1cbiAgICBpZiBpID49IG4gdGhlbiBzIGVsc2VcbiAgICAgIG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcMDAwJy4uJ1xcMDMxJyB8ICdcXDEyNycuLiAnXFwyNTUnIC0+XG4gICAgICAgICAgYnRzIChCLmVzY2FwZWQgKGJvcyBzKSlcbiAgICAgIHwgXyAtPiBlc2NhcGVfaWZfbmVlZGVkIHMgbiAoaSsxKVxuICBpblxuICBlc2NhcGVfaWZfbmVlZGVkIHMgKGxlbmd0aCBzKSAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4IHMgYyA9IGluZGV4X3JlYyBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjX29wdCBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSBpbmRleF9yZWNfb3B0IHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tIC8gQnl0ZXMuaW5kZXhfZnJvbVwiIGVsc2VcbiAgICBpbmRleF9yZWMgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWMgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSByaW5kZXhfcmVjIHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXggcyBjID0gcmluZGV4X3JlYyBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWNfb3B0IHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgcmluZGV4X3JlY19vcHQgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9vcHQgcyBjID0gcmluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAwIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJjb250YWluc19mcm9tIC8gQnl0ZXMucmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAocmluZGV4X3JlYyBzIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID1cbiAgQi51cHBlcmNhc2VfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9XG4gIEIubG93ZXJjYXNlX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZV9hc2NpaSBzID1cbiAgQi5jYXBpdGFsaXplX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplX2FzY2lpIHMgPVxuICBCLnVuY2FwaXRhbGl6ZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgc3RhcnRzX3dpdGggfnByZWZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9wcmUgPSBsZW5ndGggcHJlZml4IGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fcHJlIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIGkgPD4gdW5zYWZlX2dldCBwcmVmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBsZW5fcyA+PSBsZW5fcHJlICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHNwbGl0X29uX2NoYXIgc2VwIHMgPVxuICBsZXQgciA9IHJlZiBbXSBpblxuICBsZXQgaiA9IHJlZiAobGVuZ3RoIHMpIGluXG4gIGZvciBpID0gbGVuZ3RoIHMgLSAxIGRvd250byAwIGRvXG4gICAgaWYgdW5zYWZlX2dldCBzIGkgPSBzZXAgdGhlbiBiZWdpblxuICAgICAgciA6PSBzdWIgcyAoaSArIDEpICghaiAtIGkgLSAxKSA6OiAhcjtcbiAgICAgIGogOj0gaVxuICAgIGVuZFxuICBkb25lO1xuICBzdWIgcyAwICFqIDo6ICFyXG5cbigqIERlcHJlY2F0ZWQgZnVuY3Rpb25zIGltcGxlbWVudGVkIHZpYSBvdGhlciBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqKVxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXVxubGV0IHVwcGVyY2FzZSBzID1cbiAgQi51cHBlcmNhc2UgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2UgcyA9XG4gIEIubG93ZXJjYXNlIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZSBzID1cbiAgQi5jYXBpdGFsaXplIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplIHMgPVxuICBCLnVuY2FwaXRhbGl6ZSAoYm9zIHMpIHw+IGJ0c1xuXG50eXBlIHQgPSBzdHJpbmdcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGJvb2wgPSBcImNhbWxfc3RyaW5nX2VxdWFsXCIgW0BAbm9hbGxvY11cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBzID0gYm9zIHMgfD4gQi50b19zZXFcblxubGV0IHRvX3NlcWkgcyA9IGJvcyBzIHw+IEIudG9fc2VxaVxuXG5sZXQgb2Zfc2VxIGcgPSBCLm9mX3NlcSBnIHw+IGJ0c1xuXG4oKiBVVEYgZGVjb2RlcnMgYW5kIHZhbGlkYXRvcnMgKilcblxubGV0IGdldF91dGZfOF91Y2hhciBzIGkgPSBCLmdldF91dGZfOF91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfOCBzID0gQi5pc192YWxpZF91dGZfOCAoYm9zIHMpXG5cbmxldCBnZXRfdXRmXzE2YmVfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzE2YmVfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzE2YmUgcyA9IEIuaXNfdmFsaWRfdXRmXzE2YmUgKGJvcyBzKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl8xNmxlX3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl8xNmxlIHMgPSBCLmlzX3ZhbGlkX3V0Zl8xNmxlIChib3MgcylcblxuKCoqIHs2IEJpbmFyeSBlbmNvZGluZy9kZWNvZGluZyBvZiBpbnRlZ2Vyc30gKilcblxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogc3RyaW5nIC0+IGludCAtPiBpbnQgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQxNl9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9zdHJpbmdfZ2V0MTZcIlxuZXh0ZXJuYWwgZ2V0X2ludDMyX25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQzMiA9IFwiJWNhbWxfc3RyaW5nX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50NjQgPSBcIiVjYW1sX3N0cmluZ19nZXQ2NFwiXG5cbmxldCBnZXRfaW50OCBzIGkgPSBCLmdldF9pbnQ4IChib3MgcykgaVxubGV0IGdldF91aW50MTZfbGUgcyBpID0gQi5nZXRfdWludDE2X2xlIChib3MgcykgaVxubGV0IGdldF91aW50MTZfYmUgcyBpID0gQi5nZXRfdWludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9uZSBzIGkgPSBCLmdldF9pbnQxNl9uZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfbGUgcyBpID0gQi5nZXRfaW50MTZfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X2JlIHMgaSA9IEIuZ2V0X2ludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQzMl9sZSBzIGkgPSBCLmdldF9pbnQzMl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MzJfYmUgcyBpID0gQi5nZXRfaW50MzJfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDY0X2xlIHMgaSA9IEIuZ2V0X2ludDY0X2xlIChib3MgcykgaVxubGV0IGdldF9pbnQ2NF9iZSBzIGkgPSBCLmdldF9pbnQ2NF9iZSAoYm9zIHMpIGlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gdW5pdCA9ICgpXG5cbmxldCBlcXVhbCAoKSAoKSA9IHRydWVcbmxldCBjb21wYXJlICgpICgpID0gMFxubGV0IHRvX3N0cmluZyAoKSA9IFwiKClcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIGV4dGVybl9mbGFncyA9XG4gICAgTm9fc2hhcmluZ1xuICB8IENsb3N1cmVzXG4gIHwgQ29tcGF0XzMyXG4oKiBub3RlOiB0aGlzIHR5cGUgZGVmaW5pdGlvbiBpcyB1c2VkIGluICdydW50aW1lL2RlYnVnZ2VyLmMnICopXG5cbmV4dGVybmFsIHRvX2NoYW5uZWw6IG91dF9jaGFubmVsIC0+ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IHVuaXRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVcIlxuZXh0ZXJuYWwgdG9fYnl0ZXM6ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IGJ5dGVzXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzXCJcbmV4dGVybmFsIHRvX3N0cmluZzogJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gc3RyaW5nXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZ1wiXG5leHRlcm5hbCB0b19idWZmZXJfdW5zYWZlOlxuICAgICAgYnl0ZXMgLT4gaW50IC0+IGludCAtPiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBpbnRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyXCJcblxubGV0IHRvX2J1ZmZlciBidWZmIG9mcyBsZW4gdiBmbGFncyA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC50b19idWZmZXI6IHN1YnN0cmluZyBvdXQgb2YgYm91bmRzXCJcbiAgZWxzZSB0b19idWZmZXJfdW5zYWZlIGJ1ZmYgb2ZzIGxlbiB2IGZsYWdzXG5cbigqIFRoZSBmdW5jdGlvbnMgYmVsb3cgdXNlIGJ5dGUgc2VxdWVuY2VzIGFzIGlucHV0LCBuZXZlciB1c2luZyBhbnlcbiAgIG11dGF0aW9uLiBJdCBtYWtlcyBzZW5zZSB0byB1c2Ugbm9uLW11dGF0ZWQgW2J5dGVzXSByYXRoZXIgdGhhblxuICAgW3N0cmluZ10sIGJlY2F1c2Ugd2UgcmVhbGx5IHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgYnl0ZXMsIG5vdFxuICAgYSB0ZXh0IHJlcHJlc2VudGF0aW9uLlxuKilcblxuZXh0ZXJuYWwgZnJvbV9jaGFubmVsOiBpbl9jaGFubmVsIC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlXCJcbmV4dGVybmFsIGZyb21fYnl0ZXNfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlc1wiXG5leHRlcm5hbCBkYXRhX3NpemVfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX21hcnNoYWxfZGF0YV9zaXplXCJcblxubGV0IGhlYWRlcl9zaXplID0gMjBcbmxldCBkYXRhX3NpemUgYnVmZiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gaGVhZGVyX3NpemVcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZGF0YV9zaXplXCJcbiAgZWxzZSBkYXRhX3NpemVfdW5zYWZlIGJ1ZmYgb2ZzXG5sZXQgdG90YWxfc2l6ZSBidWZmIG9mcyA9IGhlYWRlcl9zaXplICsgZGF0YV9zaXplIGJ1ZmYgb2ZzXG5cbmxldCBmcm9tX2J5dGVzIGJ1ZmYgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGhlYWRlcl9zaXplXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmZyb21fYnl0ZXNcIlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IGxlbiA9IGRhdGFfc2l6ZV91bnNhZmUgYnVmZiBvZnMgaW5cbiAgICBpZiBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIChoZWFkZXJfc2l6ZSArIGxlbilcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5mcm9tX2J5dGVzXCJcbiAgICBlbHNlIGZyb21fYnl0ZXNfdW5zYWZlIGJ1ZmYgb2ZzXG4gIGVuZFxuXG5sZXQgZnJvbV9zdHJpbmcgYnVmZiBvZnMgPVxuICAoKiBCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGlzIHNhZmUgaGVyZSwgYXMgdGhlIHByb2R1Y2VkIGJ5dGVcbiAgICAgc2VxdWVuY2UgaXMgbmV2ZXIgbXV0YXRlZCAqKVxuICBmcm9tX2J5dGVzIChCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGJ1ZmYpIG9mc1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgYXJyYXlzLiAqKVxudHlwZSAnYSB0ID0gJ2EgYXJyYXlcblxuKCogQXJyYXkgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBsZW5ndGggOiAnYSBhcnJheSAtPiBpbnQgPSBcIiVhcnJheV9sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgPSBcIiVhcnJheV9zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlYXJyYXlfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhID0gXCIlYXJyYXlfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWFycmF5X3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgbWFrZTogaW50IC0+ICdhIC0+ICdhIGFycmF5ID0gXCJjYW1sX21ha2VfdmVjdFwiXG5leHRlcm5hbCBjcmVhdGU6IGludCAtPiAnYSAtPiAnYSBhcnJheSA9IFwiY2FtbF9tYWtlX3ZlY3RcIlxuZXh0ZXJuYWwgdW5zYWZlX3N1YiA6ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfc3ViXCJcbmV4dGVybmFsIGFwcGVuZF9wcmltIDogJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfYXBwZW5kXCJcbmV4dGVybmFsIGNvbmNhdCA6ICdhIGFycmF5IGxpc3QgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfY29uY2F0XCJcbmV4dGVybmFsIHVuc2FmZV9ibGl0IDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9hcnJheV9ibGl0XCJcbmV4dGVybmFsIHVuc2FmZV9maWxsIDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2FycmF5X2ZpbGxcIlxuZXh0ZXJuYWwgY3JlYXRlX2Zsb2F0OiBpbnQgLT4gZmxvYXQgYXJyYXkgPSBcImNhbWxfbWFrZV9mbG9hdF92ZWN0XCJcbmxldCBtYWtlX2Zsb2F0ID0gY3JlYXRlX2Zsb2F0XG5cbm1vZHVsZSBGbG9hdGFycmF5ID0gc3RydWN0XG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBmbG9hdGFycmF5ID0gXCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgbGVuZ3RoIDogZmxvYXRhcnJheSAtPiBpbnQgPSBcIiVmbG9hdGFycmF5X2xlbmd0aFwiXG4gIGV4dGVybmFsIGdldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV9zYWZlX2dldFwiXG4gIGV4dGVybmFsIHNldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfc2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXRcbiAgICAgID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcbmVuZFxuXG5sZXQgaW5pdCBsIGYgPVxuICBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZVxuICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuaW5pdFwiXG4gICgqIFNlZSAjNjU3NS4gV2UgY291bGQgYWxzbyBjaGVjayBmb3IgbWF4aW11bSBhcnJheSBzaXplLCBidXQgdGhpcyBkZXBlbmRzXG4gICAgIG9uIHdoZXRoZXIgd2UgY3JlYXRlIGEgZmxvYXQgYXJyYXkgb3IgYSByZWd1bGFyIG9uZS4uLiAqKVxuICBlbHNlXG4gICBsZXQgcmVzID0gY3JlYXRlIGwgKGYgMCkgaW5cbiAgIGZvciBpID0gMSB0byBwcmVkIGwgZG9cbiAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgZG9uZTtcbiAgIHJlc1xuXG5sZXQgbWFrZV9tYXRyaXggc3ggc3kgaW5pdCA9XG4gIGxldCByZXMgPSBjcmVhdGUgc3ggW3x8XSBpblxuICBmb3IgeCA9IDAgdG8gcHJlZCBzeCBkb1xuICAgIHVuc2FmZV9zZXQgcmVzIHggKGNyZWF0ZSBzeSBpbml0KVxuICBkb25lO1xuICByZXNcblxubGV0IGNyZWF0ZV9tYXRyaXggPSBtYWtlX21hdHJpeFxuXG5sZXQgY29weSBhID1cbiAgbGV0IGwgPSBsZW5ndGggYSBpbiBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZSB1bnNhZmVfc3ViIGEgMCBsXG5cbmxldCBhcHBlbmQgYTEgYTIgPVxuICBsZXQgbDEgPSBsZW5ndGggYTEgaW5cbiAgaWYgbDEgPSAwIHRoZW4gY29weSBhMlxuICBlbHNlIGlmIGxlbmd0aCBhMiA9IDAgdGhlbiB1bnNhZmVfc3ViIGExIDAgbDFcbiAgZWxzZSBhcHBlbmRfcHJpbSBhMSBhMlxuXG5sZXQgc3ViIGEgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuc3ViXCJcbiAgZWxzZSB1bnNhZmVfc3ViIGEgb2ZzIGxlblxuXG5sZXQgZmlsbCBhIG9mcyBsZW4gdiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZmlsbFwiXG4gIGVsc2UgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHZcblxubGV0IGJsaXQgYTEgb2ZzMSBhMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IGxlbmd0aCBhMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggYTIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmJsaXRcIlxuICBlbHNlIHVuc2FmZV9ibGl0IGExIG9mczEgYTIgb2ZzMiBsZW5cblxubGV0IGl0ZXIgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBpdGVyMiBmIGEgYiA9XG4gIGlmIGxlbmd0aCBhIDw+IGxlbmd0aCBiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gIGVsc2VcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpIGRvbmVcblxubGV0IG1hcCBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZih1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZih1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwMiBmIGEgYiA9XG4gIGxldCBsYSA9IGxlbmd0aCBhIGluXG4gIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gIGlmIGxhIDw+IGxiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lm1hcDI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgZWxzZSBiZWdpblxuICAgIGlmIGxhID0gMCB0aGVuIFt8fF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgKGYgKHVuc2FmZV9nZXQgYSAwKSAodW5zYWZlX2dldCBiIDApKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGxhIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuICBlbmRcblxubGV0IGl0ZXJpIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgbWFwaSBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZiAwICh1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgdG9fbGlzdCBhID1cbiAgbGV0IHJlYyB0b2xpc3QgaSByZXMgPVxuICAgIGlmIGkgPCAwIHRoZW4gcmVzIGVsc2UgdG9saXN0IChpIC0gMSkgKHVuc2FmZV9nZXQgYSBpIDo6IHJlcykgaW5cbiAgdG9saXN0IChsZW5ndGggYSAtIDEpIFtdXG5cbigqIENhbm5vdCB1c2UgTGlzdC5sZW5ndGggaGVyZSBiZWNhdXNlIHRoZSBMaXN0IG1vZHVsZSBkZXBlbmRzIG9uIEFycmF5LiAqKVxubGV0IHJlYyBsaXN0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2N1XG4gIHwgXzo6dCAtPiBsaXN0X2xlbmd0aCAoc3VjYyBhY2N1KSB0XG5cbmxldCBvZl9saXN0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbfHxdXG4gIHwgaGQ6OnRsIGFzIGwgLT5cbiAgICAgIGxldCBhID0gY3JlYXRlIChsaXN0X2xlbmd0aCAwIGwpIGhkIGluXG4gICAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgICAgW10gLT4gYVxuICAgICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaSsxKSB0bCBpblxuICAgICAgZmlsbCAxIHRsXG5cbmxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICBkb25lO1xuICAhclxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjYyBpbnB1dF9hcnJheSA9XG4gIGxldCBsZW4gPSBsZW5ndGggaW5wdXRfYXJyYXkgaW5cbiAgaWYgbGVuID0gMCB0aGVuIChhY2MsIFt8fF0pIGVsc2UgYmVnaW5cbiAgICBsZXQgYWNjLCBlbHQgPSBmIGFjYyAodW5zYWZlX2dldCBpbnB1dF9hcnJheSAwKSBpblxuICAgIGxldCBvdXRwdXRfYXJyYXkgPSBjcmVhdGUgbGVuIGVsdCBpblxuICAgIGxldCBhY2MgPSByZWYgYWNjIGluXG4gICAgZm9yIGkgPSAxIHRvIGxlbiAtIDEgZG9cbiAgICAgIGxldCBhY2MnLCBlbHQgPSBmICFhY2MgKHVuc2FmZV9nZXQgaW5wdXRfYXJyYXkgaSkgaW5cbiAgICAgIGFjYyA6PSBhY2MnO1xuICAgICAgdW5zYWZlX3NldCBvdXRwdXRfYXJyYXkgaSBlbHQ7XG4gICAgZG9uZTtcbiAgICAhYWNjLCBvdXRwdXRfYXJyYXlcbiAgZW5kXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwyIHAgbDEgbDIgPVxuICBsZXQgbjEgPSBsZW5ndGggbDFcbiAgYW5kIG4yID0gbGVuZ3RoIGwyIGluXG4gIGlmIG4xIDw+IG4yIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5mb3JfYWxsMlwiXG4gIGVsc2UgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuMSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgbDEgaSkgKHVuc2FmZV9nZXQgbDIgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGV4aXN0czIgcCBsMSBsMiA9XG4gIGxldCBuMSA9IGxlbmd0aCBsMVxuICBhbmQgbjIgPSBsZW5ndGggbDIgaW5cbiAgaWYgbjEgPD4gbjIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmV4aXN0czJcIlxuICBlbHNlIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbjEgdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBsMSBpKSAodW5zYWZlX2dldCBsMiBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBtZW0geCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IG1lbXEgeCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgeCA9PSAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZpbmRfb3B0IHAgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gTm9uZVxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIGlmIHAgeCB0aGVuIFNvbWUgeFxuICAgICAgZWxzZSBsb29wIChzdWNjIGkpXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgZmluZF9tYXAgZiBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBOb25lXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZiAodW5zYWZlX2dldCBhIGkpIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBsb29wIChzdWNjIGkpXG4gICAgICB8IFNvbWUgXyBhcyByIC0+IHJcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBzcGxpdCB4ID1cbiAgaWYgeCA9IFt8fF0gdGhlbiBbfHxdLCBbfHxdXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgYTAsIGIwID0gdW5zYWZlX2dldCB4IDAgaW5cbiAgICBsZXQgbiA9IGxlbmd0aCB4IGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbiBhMCBpblxuICAgIGxldCBiID0gY3JlYXRlIG4gYjAgaW5cbiAgICBmb3IgaSA9IDEgdG8gbiAtIDEgZG9cbiAgICAgIGxldCBhaSwgYmkgPSB1bnNhZmVfZ2V0IHggaSBpblxuICAgICAgdW5zYWZlX3NldCBhIGkgYWk7XG4gICAgICB1bnNhZmVfc2V0IGIgaSBiaVxuICAgIGRvbmU7XG4gICAgYSwgYlxuICBlbmRcblxubGV0IGNvbWJpbmUgYSBiID1cbiAgbGV0IG5hID0gbGVuZ3RoIGEgaW5cbiAgbGV0IG5iID0gbGVuZ3RoIGIgaW5cbiAgaWYgbmEgPD4gbmIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmNvbWJpbmVcIjtcbiAgaWYgbmEgPSAwIHRoZW4gW3x8XVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHggPSBjcmVhdGUgbmEgKHVuc2FmZV9nZXQgYSAwLCB1bnNhZmVfZ2V0IGIgMCkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbmEgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHggaSAodW5zYWZlX2dldCBhIGksIHVuc2FmZV9nZXQgYiBpKVxuICAgIGRvbmU7XG4gICAgeFxuICBlbmRcblxuZXhjZXB0aW9uIEJvdHRvbSBvZiBpbnRcbmxldCBzb3J0IGNtcCBhID1cbiAgbGV0IG1heHNvbiBsIGkgPVxuICAgIGxldCBpMzEgPSBpK2kraSsxIGluXG4gICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgaWYgaTMxKzIgPCBsIHRoZW4gYmVnaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwIHRoZW4geCA6PSBpMzErMTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgIXhcbiAgICBlbmQgZWxzZVxuICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICB0aGVuIGkzMSsxXG4gICAgICBlbHNlIGlmIGkzMSA8IGwgdGhlbiBpMzEgZWxzZSByYWlzZSAoQm90dG9tIGkpXG4gIGluXG4gIGxldCByZWMgdHJpY2tsZWRvd24gbCBpIGUgPVxuICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICB0cmlja2xlZG93biBsIGogZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgc2V0IGEgaSBlO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IHRyaWNrbGUgbCBpIGUgPSB0cnkgdHJpY2tsZWRvd24gbCBpIGUgd2l0aCBCb3R0b20gaSAtPiBzZXQgYSBpIGUgaW5cbiAgbGV0IHJlYyBidWJibGVkb3duIGwgaSA9XG4gICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgYnViYmxlZG93biBsIGpcbiAgaW5cbiAgbGV0IGJ1YmJsZSBsIGkgPSB0cnkgYnViYmxlZG93biBsIGkgd2l0aCBCb3R0b20gaSAtPiBpIGluXG4gIGxldCByZWMgdHJpY2tsZXVwIGkgZSA9XG4gICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgYXNzZXJ0IChpIDw+IGZhdGhlcik7XG4gICAgaWYgY21wIChnZXQgYSBmYXRoZXIpIGUgPCAwIHRoZW4gYmVnaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICBpZiBmYXRoZXIgPiAwIHRoZW4gdHJpY2tsZXVwIGZhdGhlciBlIGVsc2Ugc2V0IGEgMCBlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICBzZXQgYSBpIGU7XG4gICAgZW5kO1xuICBpblxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGZvciBpID0gKGwgKyAxKSAvIDMgLSAxIGRvd250byAwIGRvIHRyaWNrbGUgbCBpIChnZXQgYSBpKTsgZG9uZTtcbiAgZm9yIGkgPSBsIC0gMSBkb3dudG8gMiBkb1xuICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgMCk7XG4gICAgdHJpY2tsZXVwIChidWJibGUgaSAwKSBlO1xuICBkb25lO1xuICBpZiBsID4gMSB0aGVuIChsZXQgZSA9IChnZXQgYSAxKSBpbiBzZXQgYSAxIChnZXQgYSAwKTsgc2V0IGEgMCBlKVxuXG5cbmxldCBjdXRvZmYgPSA1XG5sZXQgc3RhYmxlX3NvcnQgY21wIGEgPVxuICBsZXQgbWVyZ2Ugc3JjMW9mcyBzcmMxbGVuIHNyYzIgc3JjMm9mcyBzcmMybGVuIGRzdCBkc3RvZnMgPVxuICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgbGV0IHJlYyBsb29wIGkxIHMxIGkyIHMyIGQgPVxuICAgICAgaWYgY21wIHMxIHMyIDw9IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgIGxldCBpMSA9IGkxICsgMSBpblxuICAgICAgICBpZiBpMSA8IHNyYzFyIHRoZW5cbiAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgYmxpdCBzcmMyIGkyIGRzdCAoZCArIDEpIChzcmMyciAtIGkyKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGRzdCBkIHMyO1xuICAgICAgICBsZXQgaTIgPSBpMiArIDEgaW5cbiAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgbG9vcCBpMSBzMSBpMiAoZ2V0IHNyYzIgaTIpIChkICsgMSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgIGVuZFxuICAgIGluIGxvb3Agc3JjMW9mcyAoZ2V0IGEgc3JjMW9mcykgc3JjMm9mcyAoZ2V0IHNyYzIgc3JjMm9mcykgZHN0b2ZzO1xuICBpblxuICBsZXQgaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICBsZXQgaiA9IHJlZiAoZHN0b2ZzICsgaSAtIDEpIGluXG4gICAgICB3aGlsZSAoIWogPj0gZHN0b2ZzICYmIGNtcCAoZ2V0IGRzdCAhaikgZSA+IDApIGRvXG4gICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICBkZWNyIGo7XG4gICAgICBkb25lO1xuICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgIGRvbmU7XG4gIGluXG4gIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgaWYgbGVuIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGxlbiAvIDIgaW5cbiAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICBzb3J0dG8gKHNyY29mcyArIGwxKSBkc3QgKGRzdG9mcyArIGwxKSBsMjtcbiAgICAgIHNvcnR0byBzcmNvZnMgYSAoc3Jjb2ZzICsgbDIpIGwxO1xuICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBpZiBsIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gMCBhIDAgbCBlbHNlIGJlZ2luXG4gICAgbGV0IGwxID0gbCAvIDIgaW5cbiAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICBsZXQgdCA9IG1ha2UgbDIgKGdldCBhIDApIGluXG4gICAgc29ydHRvIGwxIHQgMCBsMjtcbiAgICBzb3J0dG8gMCBhIGwyIGwxO1xuICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gIGVuZFxuXG5cbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGEgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICB0aGVuXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgIGVsc2UgU2VxLk5pbFxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBhID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgdGhlblxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gICAgZWxzZSBTZXEuTmlsXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9yZXZfbGlzdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW3x8XVxuICB8IGhkOjp0bCBhcyBsIC0+XG4gICAgICBsZXQgbGVuID0gbGlzdF9sZW5ndGggMCBsIGluXG4gICAgICBsZXQgYSA9IGNyZWF0ZSBsZW4gaGQgaW5cbiAgICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgICBbXSAtPiBhXG4gICAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpLTEpIHRsXG4gICAgICBpblxuICAgICAgZmlsbCAobGVuLTIpIHRsXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBsID0gU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gaSBpblxuICBvZl9yZXZfbGlzdCBsXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50MzJdOiAzMi1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50MzIgLT4gaW50ID0gXCIlaW50MzJfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX3RvX2Zsb2F0XCIgXCJjYW1sX2ludDMyX3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCB6ZXJvID0gMGxcbmxldCBvbmUgPSAxbFxubGV0IG1pbnVzX29uZSA9IC0xbFxubGV0IHN1Y2MgbiA9IGFkZCBuIDFsXG5sZXQgcHJlZCBuID0gc3ViIG4gMWxcbmxldCBhYnMgbiA9IGlmIG4gPj0gMGwgdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBtaW5faW50ID0gMHg4MDAwMDAwMGxcbmxldCBtYXhfaW50ID0gMHg3RkZGRkZGRmxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMWwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBtYXRjaCBTeXMud29yZF9zaXplIHdpdGhcbiAgfCAzMiAtPlxuICAgICAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgICAgIGZ1biBuIC0+XG4gICAgICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICAgICAgU29tZSAodG9faW50IG4pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBOb25lXG4gIHwgNjQgLT5cbiAgICAgICgqIFNvIHRoYXQgaXQgY29tcGlsZXMgaW4gMzItYml0ICopXG4gICAgICBsZXQgbWFzayA9IDB4RkZGRiBsc2wgMTYgbG9yIDB4RkZGRiBpblxuICAgICAgZnVuIG4gLT4gU29tZSAodG9faW50IG4gbGFuZCBtYXNrKVxuICB8IF8gLT5cbiAgICAgIGFzc2VydCBmYWxzZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG50eXBlIHQgPSBpbnQzMlxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFRoZSBwYXJzaW5nIGVuZ2luZSAqKVxuXG5vcGVuIExleGluZ1xuXG4oKiBJbnRlcm5hbCBpbnRlcmZhY2UgdG8gdGhlIHBhcnNpbmcgZW5naW5lICopXG5cbnR5cGUgcGFyc2VyX2VudiA9XG4gIHsgbXV0YWJsZSBzX3N0YWNrIDogaW50IGFycmF5OyAgICAgICAgKCogU3RhdGVzICopXG4gICAgbXV0YWJsZSB2X3N0YWNrIDogT2JqLnQgYXJyYXk7ICAgICAgKCogU2VtYW50aWMgYXR0cmlidXRlcyAqKVxuICAgIG11dGFibGUgc3ltYl9zdGFydF9zdGFjayA6IHBvc2l0aW9uIGFycmF5OyAoKiBTdGFydCBwb3NpdGlvbnMgKilcbiAgICBtdXRhYmxlIHN5bWJfZW5kX3N0YWNrIDogcG9zaXRpb24gYXJyYXk7ICAgKCogRW5kIHBvc2l0aW9ucyAqKVxuICAgIG11dGFibGUgc3RhY2tzaXplIDogaW50OyAgICAgICAgICAgICgqIFNpemUgb2YgdGhlIHN0YWNrcyAqKVxuICAgIG11dGFibGUgc3RhY2tiYXNlIDogaW50OyAgICAgICAgICAgICgqIEJhc2Ugc3AgZm9yIGN1cnJlbnQgcGFyc2UgKilcbiAgICBtdXRhYmxlIGN1cnJfY2hhciA6IGludDsgICAgICAgICAgICAoKiBMYXN0IHRva2VuIHJlYWQgKilcbiAgICBtdXRhYmxlIGx2YWwgOiBPYmoudDsgICAgICAgICAgICAgICAoKiBJdHMgc2VtYW50aWMgYXR0cmlidXRlICopXG4gICAgbXV0YWJsZSBzeW1iX3N0YXJ0IDogcG9zaXRpb247ICAgICAgKCogU3RhcnQgcG9zLiBvZiB0aGUgY3VycmVudCBzeW1ib2wqKVxuICAgIG11dGFibGUgc3ltYl9lbmQgOiBwb3NpdGlvbjsgICAgICAgICgqIEVuZCBwb3MuIG9mIHRoZSBjdXJyZW50IHN5bWJvbCAqKVxuICAgIG11dGFibGUgYXNwIDogaW50OyAgICAgICAgICAgICAgICAgICgqIFRoZSBzdGFjayBwb2ludGVyIGZvciBhdHRyaWJ1dGVzICopXG4gICAgbXV0YWJsZSBydWxlX2xlbiA6IGludDsgICAgICAgICAgICAgKCogTnVtYmVyIG9mIHJocyBpdGVtcyBpbiB0aGUgcnVsZSAqKVxuICAgIG11dGFibGUgcnVsZV9udW1iZXIgOiBpbnQ7ICAgICAgICAgICgqIFJ1bGUgbnVtYmVyIHRvIHJlZHVjZSBieSAqKVxuICAgIG11dGFibGUgc3AgOiBpbnQ7ICAgICAgICAgICAgICAgICAgICgqIFNhdmVkIHNwIGZvciBwYXJzZV9lbmdpbmUgKilcbiAgICBtdXRhYmxlIHN0YXRlIDogaW50OyAgICAgICAgICAgICAgICAoKiBTYXZlZCBzdGF0ZSBmb3IgcGFyc2VfZW5naW5lICopXG4gICAgbXV0YWJsZSBlcnJmbGFnIDogaW50IH0gICAgICAgICAgICAgKCogU2F2ZWQgZXJyb3IgZmxhZyBmb3IgcGFyc2VfZW5naW5lICopXG5bQEB3YXJuaW5nIFwiLXVudXNlZC1maWVsZFwiXVxuXG50eXBlIHBhcnNlX3RhYmxlcyA9XG4gIHsgYWN0aW9ucyA6IChwYXJzZXJfZW52IC0+IE9iai50KSBhcnJheTtcbiAgICB0cmFuc2xfY29uc3QgOiBpbnQgYXJyYXk7XG4gICAgdHJhbnNsX2Jsb2NrIDogaW50IGFycmF5O1xuICAgIGxocyA6IHN0cmluZztcbiAgICBsZW4gOiBzdHJpbmc7XG4gICAgZGVmcmVkIDogc3RyaW5nO1xuICAgIGRnb3RvIDogc3RyaW5nO1xuICAgIHNpbmRleCA6IHN0cmluZztcbiAgICByaW5kZXggOiBzdHJpbmc7XG4gICAgZ2luZGV4IDogc3RyaW5nO1xuICAgIHRhYmxlc2l6ZSA6IGludDtcbiAgICB0YWJsZSA6IHN0cmluZztcbiAgICBjaGVjayA6IHN0cmluZztcbiAgICBlcnJvcl9mdW5jdGlvbiA6IHN0cmluZyAtPiB1bml0O1xuICAgIG5hbWVzX2NvbnN0IDogc3RyaW5nO1xuICAgIG5hbWVzX2Jsb2NrIDogc3RyaW5nIH1cblxuZXhjZXB0aW9uIFlZZXhpdCBvZiBPYmoudFxuZXhjZXB0aW9uIFBhcnNlX2Vycm9yXG5cbnR5cGUgcGFyc2VyX2lucHV0ID1cbiAgICBTdGFydFxuICB8IFRva2VuX3JlYWRcbiAgfCBTdGFja3NfZ3Jvd25fMVxuICB8IFN0YWNrc19ncm93bl8yXG4gIHwgU2VtYW50aWNfYWN0aW9uX2NvbXB1dGVkXG4gIHwgRXJyb3JfZGV0ZWN0ZWRcblxudHlwZSBwYXJzZXJfb3V0cHV0ID1cbiAgICBSZWFkX3Rva2VuXG4gIHwgUmFpc2VfcGFyc2VfZXJyb3JcbiAgfCBHcm93X3N0YWNrc18xXG4gIHwgR3Jvd19zdGFja3NfMlxuICB8IENvbXB1dGVfc2VtYW50aWNfYWN0aW9uXG4gIHwgQ2FsbF9lcnJvcl9mdW5jdGlvblxuXG4oKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxubGV0IF8gPSBbUmVhZF90b2tlbjsgUmFpc2VfcGFyc2VfZXJyb3I7IEdyb3dfc3RhY2tzXzE7IEdyb3dfc3RhY2tzXzI7XG4gICAgICAgICBDb21wdXRlX3NlbWFudGljX2FjdGlvbjsgQ2FsbF9lcnJvcl9mdW5jdGlvbl1cblxuZXh0ZXJuYWwgcGFyc2VfZW5naW5lIDpcbiAgICBwYXJzZV90YWJsZXMgLT4gcGFyc2VyX2VudiAtPiBwYXJzZXJfaW5wdXQgLT4gT2JqLnQgLT4gcGFyc2VyX291dHB1dFxuICAgID0gXCJjYW1sX3BhcnNlX2VuZ2luZVwiXG5cbmV4dGVybmFsIHNldF90cmFjZTogYm9vbCAtPiBib29sXG4gICAgPSBcImNhbWxfc2V0X3BhcnNlcl90cmFjZVwiXG5cbmxldCBlbnYgPVxuICB7IHNfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCAwO1xuICAgIHZfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCAoT2JqLnJlcHIgKCkpO1xuICAgIHN5bWJfc3RhcnRfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCBkdW1teV9wb3M7XG4gICAgc3ltYl9lbmRfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCBkdW1teV9wb3M7XG4gICAgc3RhY2tzaXplID0gMTAwO1xuICAgIHN0YWNrYmFzZSA9IDA7XG4gICAgY3Vycl9jaGFyID0gMDtcbiAgICBsdmFsID0gT2JqLnJlcHIgKCk7XG4gICAgc3ltYl9zdGFydCA9IGR1bW15X3BvcztcbiAgICBzeW1iX2VuZCA9IGR1bW15X3BvcztcbiAgICBhc3AgPSAwO1xuICAgIHJ1bGVfbGVuID0gMDtcbiAgICBydWxlX251bWJlciA9IDA7XG4gICAgc3AgPSAwO1xuICAgIHN0YXRlID0gMDtcbiAgICBlcnJmbGFnID0gMCB9XG5cbmxldCBncm93X3N0YWNrcygpID1cbiAgbGV0IG9sZHNpemUgPSBlbnYuc3RhY2tzaXplIGluXG4gIGxldCBuZXdzaXplID0gb2xkc2l6ZSAqIDIgaW5cbiAgbGV0IG5ld19zID0gQXJyYXkubWFrZSBuZXdzaXplIDBcbiAgYW5kIG5ld192ID0gQXJyYXkubWFrZSBuZXdzaXplIChPYmoucmVwciAoKSlcbiAgYW5kIG5ld19zdGFydCA9IEFycmF5Lm1ha2UgbmV3c2l6ZSBkdW1teV9wb3NcbiAgYW5kIG5ld19lbmQgPSBBcnJheS5tYWtlIG5ld3NpemUgZHVtbXlfcG9zIGluXG4gICAgQXJyYXkuYmxpdCBlbnYuc19zdGFjayAwIG5ld19zIDAgb2xkc2l6ZTtcbiAgICBlbnYuc19zdGFjayA8LSBuZXdfcztcbiAgICBBcnJheS5ibGl0IGVudi52X3N0YWNrIDAgbmV3X3YgMCBvbGRzaXplO1xuICAgIGVudi52X3N0YWNrIDwtIG5ld192O1xuICAgIEFycmF5LmJsaXQgZW52LnN5bWJfc3RhcnRfc3RhY2sgMCBuZXdfc3RhcnQgMCBvbGRzaXplO1xuICAgIGVudi5zeW1iX3N0YXJ0X3N0YWNrIDwtIG5ld19zdGFydDtcbiAgICBBcnJheS5ibGl0IGVudi5zeW1iX2VuZF9zdGFjayAwIG5ld19lbmQgMCBvbGRzaXplO1xuICAgIGVudi5zeW1iX2VuZF9zdGFjayA8LSBuZXdfZW5kO1xuICAgIGVudi5zdGFja3NpemUgPC0gbmV3c2l6ZVxuXG5sZXQgY2xlYXJfcGFyc2VyKCkgPVxuICBBcnJheS5maWxsIGVudi52X3N0YWNrIDAgZW52LnN0YWNrc2l6ZSAoT2JqLnJlcHIgKCkpO1xuICBlbnYubHZhbCA8LSBPYmoucmVwciAoKVxuXG5sZXQgY3VycmVudF9sb29rYWhlYWRfZnVuID0gcmVmIChmdW4gKF8gOiBPYmoudCkgLT4gZmFsc2UpXG5cbmxldCB5eXBhcnNlIHRhYmxlcyBzdGFydCBsZXhlciBsZXhidWYgPVxuICBsZXQgcmVjIGxvb3AgY21kIGFyZyA9XG4gICAgbWF0Y2ggcGFyc2VfZW5naW5lIHRhYmxlcyBlbnYgY21kIGFyZyB3aXRoXG4gICAgICBSZWFkX3Rva2VuIC0+XG4gICAgICAgIGxldCB0ID0gT2JqLnJlcHIobGV4ZXIgbGV4YnVmKSBpblxuICAgICAgICBlbnYuc3ltYl9zdGFydCA8LSBsZXhidWYubGV4X3N0YXJ0X3A7XG4gICAgICAgIGVudi5zeW1iX2VuZCA8LSBsZXhidWYubGV4X2N1cnJfcDtcbiAgICAgICAgbG9vcCBUb2tlbl9yZWFkIHRcbiAgICB8IFJhaXNlX3BhcnNlX2Vycm9yIC0+XG4gICAgICAgIHJhaXNlIFBhcnNlX2Vycm9yXG4gICAgfCBDb21wdXRlX3NlbWFudGljX2FjdGlvbiAtPlxuICAgICAgICBsZXQgKGFjdGlvbiwgdmFsdWUpID1cbiAgICAgICAgICB0cnlcbiAgICAgICAgICAgIChTZW1hbnRpY19hY3Rpb25fY29tcHV0ZWQsIHRhYmxlcy5hY3Rpb25zLihlbnYucnVsZV9udW1iZXIpIGVudilcbiAgICAgICAgICB3aXRoIFBhcnNlX2Vycm9yIC0+XG4gICAgICAgICAgICAoRXJyb3JfZGV0ZWN0ZWQsIE9iai5yZXByICgpKSBpblxuICAgICAgICBsb29wIGFjdGlvbiB2YWx1ZVxuICAgIHwgR3Jvd19zdGFja3NfMSAtPlxuICAgICAgICBncm93X3N0YWNrcygpOyBsb29wIFN0YWNrc19ncm93bl8xIChPYmoucmVwciAoKSlcbiAgICB8IEdyb3dfc3RhY2tzXzIgLT5cbiAgICAgICAgZ3Jvd19zdGFja3MoKTsgbG9vcCBTdGFja3NfZ3Jvd25fMiAoT2JqLnJlcHIgKCkpXG4gICAgfCBDYWxsX2Vycm9yX2Z1bmN0aW9uIC0+XG4gICAgICAgIHRhYmxlcy5lcnJvcl9mdW5jdGlvbiBcInN5bnRheCBlcnJvclwiO1xuICAgICAgICBsb29wIEVycm9yX2RldGVjdGVkIChPYmoucmVwciAoKSkgaW5cbiAgbGV0IGluaXRfYXNwID0gZW52LmFzcFxuICBhbmQgaW5pdF9zcCA9IGVudi5zcFxuICBhbmQgaW5pdF9zdGFja2Jhc2UgPSBlbnYuc3RhY2tiYXNlXG4gIGFuZCBpbml0X3N0YXRlID0gZW52LnN0YXRlXG4gIGFuZCBpbml0X2N1cnJfY2hhciA9IGVudi5jdXJyX2NoYXJcbiAgYW5kIGluaXRfbHZhbCA9IGVudi5sdmFsXG4gIGFuZCBpbml0X2VycmZsYWcgPSBlbnYuZXJyZmxhZyBpblxuICBlbnYuc3RhY2tiYXNlIDwtIGVudi5zcCArIDE7XG4gIGVudi5jdXJyX2NoYXIgPC0gc3RhcnQ7XG4gIGVudi5zeW1iX2VuZCA8LSBsZXhidWYubGV4X2N1cnJfcDtcbiAgdHJ5XG4gICAgbG9vcCBTdGFydCAoT2JqLnJlcHIgKCkpXG4gIHdpdGggZXhuIC0+XG4gICAgbGV0IGN1cnJfY2hhciA9IGVudi5jdXJyX2NoYXIgaW5cbiAgICBlbnYuYXNwIDwtIGluaXRfYXNwO1xuICAgIGVudi5zcCA8LSBpbml0X3NwO1xuICAgIGVudi5zdGFja2Jhc2UgPC0gaW5pdF9zdGFja2Jhc2U7XG4gICAgZW52LnN0YXRlIDwtIGluaXRfc3RhdGU7XG4gICAgZW52LmN1cnJfY2hhciA8LSBpbml0X2N1cnJfY2hhcjtcbiAgICBlbnYubHZhbCA8LSBpbml0X2x2YWw7XG4gICAgZW52LmVycmZsYWcgPC0gaW5pdF9lcnJmbGFnO1xuICAgIG1hdGNoIGV4biB3aXRoXG4gICAgICBZWWV4aXQgdiAtPlxuICAgICAgICBPYmoubWFnaWMgdlxuICAgIHwgXyAtPlxuICAgICAgICBjdXJyZW50X2xvb2thaGVhZF9mdW4gOj1cbiAgICAgICAgICAoZnVuIHRvayAtPlxuICAgICAgICAgICAgaWYgT2JqLmlzX2Jsb2NrIHRva1xuICAgICAgICAgICAgdGhlbiB0YWJsZXMudHJhbnNsX2Jsb2NrLihPYmoudGFnIHRvaykgPSBjdXJyX2NoYXJcbiAgICAgICAgICAgIGVsc2UgdGFibGVzLnRyYW5zbF9jb25zdC4oT2JqLm1hZ2ljIHRvaykgPSBjdXJyX2NoYXIpO1xuICAgICAgICByYWlzZSBleG5cblxubGV0IHBlZWtfdmFsIGVudiBuID1cbiAgT2JqLm1hZ2ljIGVudi52X3N0YWNrLihlbnYuYXNwIC0gbilcblxubGV0IHN5bWJvbF9zdGFydF9wb3MgKCkgPVxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA8PSAwIHRoZW4gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwKVxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCBzdCA9IGVudi5zeW1iX3N0YXJ0X3N0YWNrLihlbnYuYXNwIC0gaSArIDEpIGluXG4gICAgICBsZXQgZW4gPSBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3AgLSBpICsgMSkgaW5cbiAgICAgIGlmIHN0IDw+IGVuIHRoZW4gc3QgZWxzZSBsb29wIChpIC0gMSlcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBlbnYucnVsZV9sZW5cblxubGV0IHN5bWJvbF9lbmRfcG9zICgpID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwKVxubGV0IHJoc19zdGFydF9wb3MgbiA9IGVudi5zeW1iX3N0YXJ0X3N0YWNrLihlbnYuYXNwIC0gKGVudi5ydWxlX2xlbiAtIG4pKVxubGV0IHJoc19lbmRfcG9zIG4gPSBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3AgLSAoZW52LnJ1bGVfbGVuIC0gbikpXG5cbmxldCBzeW1ib2xfc3RhcnQgKCkgPSAoc3ltYm9sX3N0YXJ0X3BvcyAoKSkucG9zX2NudW1cbmxldCBzeW1ib2xfZW5kICgpID0gKHN5bWJvbF9lbmRfcG9zICgpKS5wb3NfY251bVxubGV0IHJoc19zdGFydCBuID0gKHJoc19zdGFydF9wb3MgbikucG9zX2NudW1cbmxldCByaHNfZW5kIG4gPSAocmhzX2VuZF9wb3MgbikucG9zX2NudW1cblxubGV0IGlzX2N1cnJlbnRfbG9va2FoZWFkIHRvayA9XG4gICghY3VycmVudF9sb29rYWhlYWRfZnVuKShPYmoucmVwciB0b2spXG5cbmxldCBwYXJzZV9lcnJvciAoXyA6IHN0cmluZykgPSAoKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBTZXRzIG92ZXIgb3JkZXJlZCB0eXBlcyAqKVxuXG5tb2R1bGUgdHlwZSBPcmRlcmVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTID1cbiAgc2lnXG4gICAgdHlwZSBlbHRcbiAgICB0eXBlIHRcbiAgICB2YWwgZW1wdHk6IHRcbiAgICB2YWwgaXNfZW1wdHk6IHQgLT4gYm9vbFxuICAgIHZhbCBtZW06IGVsdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgYWRkOiBlbHQgLT4gdCAtPiB0XG4gICAgdmFsIHNpbmdsZXRvbjogZWx0IC0+IHRcbiAgICB2YWwgcmVtb3ZlOiBlbHQgLT4gdCAtPiB0XG4gICAgdmFsIHVuaW9uOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBpbnRlcjogdCAtPiB0IC0+IHRcbiAgICB2YWwgZGlzam9pbnQ6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGRpZmY6IHQgLT4gdCAtPiB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIHN1YnNldDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGVsdCAtPiB1bml0KSAtPiB0IC0+IHVuaXRcbiAgICB2YWwgbWFwOiAoZWx0IC0+IGVsdCkgLT4gdCAtPiB0XG4gICAgdmFsIGZvbGQ6IChlbHQgLT4gJ2EgLT4gJ2EpIC0+IHQgLT4gJ2EgLT4gJ2FcbiAgICB2YWwgZm9yX2FsbDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZXhpc3RzOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gYm9vbFxuICAgIHZhbCBmaWx0ZXI6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiB0XG4gICAgdmFsIGZpbHRlcl9tYXA6IChlbHQgLT4gZWx0IG9wdGlvbikgLT4gdCAtPiB0XG4gICAgdmFsIHBhcnRpdGlvbjogKGVsdCAtPiBib29sKSAtPiB0IC0+IHQgKiB0XG4gICAgdmFsIGNhcmRpbmFsOiB0IC0+IGludFxuICAgIHZhbCBlbGVtZW50czogdCAtPiBlbHQgbGlzdFxuICAgIHZhbCBtaW5fZWx0OiB0IC0+IGVsdFxuICAgIHZhbCBtaW5fZWx0X29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIG1heF9lbHQ6IHQgLT4gZWx0XG4gICAgdmFsIG1heF9lbHRfb3B0OiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgY2hvb3NlOiB0IC0+IGVsdFxuICAgIHZhbCBjaG9vc2Vfb3B0OiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgc3BsaXQ6IGVsdCAtPiB0IC0+IHQgKiBib29sICogdFxuICAgIHZhbCBmaW5kOiBlbHQgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9vcHQ6IGVsdCAtPiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgZmluZF9maXJzdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX2ZpcnN0X29wdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgZmluZF9sYXN0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfbGFzdF9vcHQ6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIG9mX2xpc3Q6IGVsdCBsaXN0IC0+IHRcbiAgICB2YWwgdG9fc2VxX2Zyb20gOiBlbHQgLT4gdCAtPiBlbHQgU2VxLnRcbiAgICB2YWwgdG9fc2VxIDogdCAtPiBlbHQgU2VxLnRcbiAgICB2YWwgdG9fcmV2X3NlcSA6IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiBlbHQgU2VxLnQgLT4gdCAtPiB0XG4gICAgdmFsIG9mX3NlcSA6IGVsdCBTZXEudCAtPiB0XG4gIGVuZFxuXG5tb2R1bGUgTWFrZShPcmQ6IE9yZGVyZWRUeXBlKSA9XG4gIHN0cnVjdFxuICAgIHR5cGUgZWx0ID0gT3JkLnRcbiAgICB0eXBlIHQgPSBFbXB0eSB8IE5vZGUgb2Yge2w6dDsgdjplbHQ7IHI6dDsgaDppbnR9XG5cbiAgICAoKiBTZXRzIGFyZSByZXByZXNlbnRlZCBieSBiYWxhbmNlZCBiaW5hcnkgdHJlZXMgKHRoZSBoZWlnaHRzIG9mIHRoZVxuICAgICAgIGNoaWxkcmVuIGRpZmZlciBieSBhdCBtb3N0IDIgKilcblxuICAgIGxldCBoZWlnaHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2h9IC0+IGhcblxuICAgICgqIENyZWF0ZXMgYSBuZXcgbm9kZSB3aXRoIGxlZnQgc29uIGwsIHZhbHVlIHYgYW5kIHJpZ2h0IHNvbiByLlxuICAgICAgIFdlIG11c3QgaGF2ZSBhbGwgZWxlbWVudHMgb2YgbCA8IHYgPCBhbGwgZWxlbWVudHMgb2Ygci5cbiAgICAgICBsIGFuZCByIG11c3QgYmUgYmFsYW5jZWQgYW5kIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDIuXG4gICAgICAgSW5saW5lIGV4cGFuc2lvbiBvZiBoZWlnaHQgZm9yIGJldHRlciBzcGVlZC4gKilcblxuICAgIGxldCBjcmVhdGUgbCB2IHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIE5vZGV7bDsgdjsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUsIGJ1dCBwZXJmb3JtcyBvbmUgc3RlcCBvZiByZWJhbGFuY2luZyBpZiBuZWNlc3NhcnkuXG4gICAgICAgQXNzdW1lcyBsIGFuZCByIGJhbGFuY2VkIGFuZCB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAzLlxuICAgICAgIElubGluZSBleHBhbnNpb24gb2YgY3JlYXRlIGZvciBiZXR0ZXIgc3BlZWQgaW4gdGhlIG1vc3QgZnJlcXVlbnQgY2FzZVxuICAgICAgIHdoZXJlIG5vIHJlYmFsYW5jaW5nIGlzIHJlcXVpcmVkLiAqKVxuXG4gICAgbGV0IGJhbCBsIHYgciA9XG4gICAgICBsZXQgaGwgPSBtYXRjaCBsIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGxldCBociA9IG1hdGNoIHIgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgaWYgaGwgPiBociArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1sbDsgdj1sdjsgcj1scn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCBsbCA+PSBoZWlnaHQgbHIgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgbGwgbHYgKGNyZWF0ZSBsciB2IHIpXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIGxyIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1scmw7IHY9bHJ2OyByPWxycn0tPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbGwgbHYgbHJsKSBscnYgKGNyZWF0ZSBscnIgdiByKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZSBpZiBociA+IGhsICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIHIgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPXJsOyB2PXJ2OyByPXJyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IHJyID49IGhlaWdodCBybCB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgdiBybCkgcnYgcnJcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggcmwgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPXJsbDsgdj1ybHY7IHI9cmxyfSAtPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB2IHJsbCkgcmx2IChjcmVhdGUgcmxyIHJ2IHJyKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZVxuICAgICAgICBOb2Rle2w7IHY7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgICgqIEluc2VydGlvbiBvZiBvbmUgZWxlbWVudCAqKVxuXG4gICAgbGV0IHJlYyBhZGQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vZGV7bD1FbXB0eTsgdj14OyByPUVtcHR5OyBoPTF9XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gYXMgdCAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiB0IGVsc2VcbiAgICAgICAgICBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSBhZGQgeCBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gdCBlbHNlIGJhbCBsbCB2IHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSBhZGQgeCByIGluXG4gICAgICAgICAgICBpZiByID09IHJyIHRoZW4gdCBlbHNlIGJhbCBsIHYgcnJcblxuICAgIGxldCBzaW5nbGV0b24geCA9IE5vZGV7bD1FbXB0eTsgdj14OyByPUVtcHR5OyBoPTF9XG5cbiAgICAoKiBCZXdhcmU6IHRob3NlIHR3byBmdW5jdGlvbnMgYXNzdW1lIHRoYXQgdGhlIGFkZGVkIHYgaXMgKnN0cmljdGx5KlxuICAgICAgIHNtYWxsZXIgKG9yIGJpZ2dlcikgdGhhbiBhbGwgdGhlIHByZXNlbnQgZWxlbWVudHMgaW4gdGhlIHRyZWU7IGl0XG4gICAgICAgZG9lcyBub3QgdGVzdCBmb3IgZXF1YWxpdHkgd2l0aCB0aGUgY3VycmVudCBtaW4gKG9yIG1heCkgZWxlbWVudC5cbiAgICAgICBJbmRlZWQsIHRoZXkgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIFwiam9pblwiIG9wZXJhdGlvbiB3aGljaFxuICAgICAgIHJlc3BlY3RzIHRoaXMgcHJlY29uZGl0aW9uLlxuICAgICopXG5cbiAgICBsZXQgcmVjIGFkZF9taW5fZWxlbWVudCB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgYmFsIChhZGRfbWluX2VsZW1lbnQgeCBsKSB2IHJcblxuICAgIGxldCByZWMgYWRkX21heF9lbGVtZW50IHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24geFxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICBiYWwgbCB2IChhZGRfbWF4X2VsZW1lbnQgeCByKVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUgYW5kIGJhbCwgYnV0IG5vIGFzc3VtcHRpb25zIGFyZSBtYWRlIG9uIHRoZVxuICAgICAgIHJlbGF0aXZlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCByZWMgam9pbiBsIHYgciA9XG4gICAgICBtYXRjaCAobCwgcikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IGFkZF9taW5fZWxlbWVudCB2IHJcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBhZGRfbWF4X2VsZW1lbnQgdiBsXG4gICAgICB8IChOb2Rle2w9bGw7IHY9bHY7IHI9bHI7IGg9bGh9LCBOb2Rle2w9cmw7IHY9cnY7IHI9cnI7IGg9cmh9KSAtPlxuICAgICAgICAgIGlmIGxoID4gcmggKyAyIHRoZW4gYmFsIGxsIGx2IChqb2luIGxyIHYgcikgZWxzZVxuICAgICAgICAgIGlmIHJoID4gbGggKyAyIHRoZW4gYmFsIChqb2luIGwgdiBybCkgcnYgcnIgZWxzZVxuICAgICAgICAgIGNyZWF0ZSBsIHYgclxuXG4gICAgKCogU21hbGxlc3QgYW5kIGdyZWF0ZXN0IGVsZW1lbnQgb2YgYSBzZXQgKilcblxuICAgIGxldCByZWMgbWluX2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHZ9IC0+IHZcbiAgICAgIHwgTm9kZXtsfSAtPiBtaW5fZWx0IGxcblxuICAgIGxldCByZWMgbWluX2VsdF9vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgdn0gLT4gU29tZSB2XG4gICAgICB8IE5vZGV7bH0gLT4gbWluX2VsdF9vcHQgbFxuXG4gICAgbGV0IHJlYyBtYXhfZWx0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7djsgcj1FbXB0eX0gLT4gdlxuICAgICAgfCBOb2Rle3J9IC0+IG1heF9lbHQgclxuXG4gICAgbGV0IHJlYyBtYXhfZWx0X29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZXt2OyByPUVtcHR5fSAtPiBTb21lIHZcbiAgICAgIHwgTm9kZXtyfSAtPiBtYXhfZWx0X29wdCByXG5cbiAgICAoKiBSZW1vdmUgdGhlIHNtYWxsZXN0IGVsZW1lbnQgb2YgdGhlIGdpdmVuIHNldCAqKVxuXG4gICAgbGV0IHJlYyByZW1vdmVfbWluX2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LnJlbW92ZV9taW5fZWx0XCJcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyByfSAtPiByXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gYmFsIChyZW1vdmVfbWluX2VsdCBsKSB2IHJcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBBc3N1bWUgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMi4gKilcblxuICAgIGxldCBtZXJnZSB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+IGJhbCB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgKCogTWVyZ2UgdHdvIHRyZWVzIGwgYW5kIHIgaW50byBvbmUuXG4gICAgICAgQWxsIGVsZW1lbnRzIG9mIGwgbXVzdCBwcmVjZWRlIHRoZSBlbGVtZW50cyBvZiByLlxuICAgICAgIE5vIGFzc3VtcHRpb24gb24gdGhlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCBjb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiBqb2luIHQxIChtaW5fZWx0IHQyKSAocmVtb3ZlX21pbl9lbHQgdDIpXG5cbiAgICAoKiBTcGxpdHRpbmcuICBzcGxpdCB4IHMgcmV0dXJucyBhIHRyaXBsZSAobCwgcHJlc2VudCwgcikgd2hlcmVcbiAgICAgICAgLSBsIGlzIHRoZSBzZXQgb2YgZWxlbWVudHMgb2YgcyB0aGF0IGFyZSA8IHhcbiAgICAgICAgLSByIGlzIHRoZSBzZXQgb2YgZWxlbWVudHMgb2YgcyB0aGF0IGFyZSA+IHhcbiAgICAgICAgLSBwcmVzZW50IGlzIGZhbHNlIGlmIHMgY29udGFpbnMgbm8gZWxlbWVudCBlcXVhbCB0byB4LFxuICAgICAgICAgIG9yIHRydWUgaWYgcyBjb250YWlucyBhbiBlbGVtZW50IGVxdWFsIHRvIHguICopXG5cbiAgICBsZXQgcmVjIHNwbGl0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIChFbXB0eSwgZmFsc2UsIEVtcHR5KVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIChsLCB0cnVlLCByKVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IChsbCwgcHJlcywgcmwpID0gc3BsaXQgeCBsIGluIChsbCwgcHJlcywgam9pbiBybCB2IHIpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IChsciwgcHJlcywgcnIpID0gc3BsaXQgeCByIGluIChqb2luIGwgdiBsciwgcHJlcywgcnIpXG5cbiAgICAoKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgc2V0IG9wZXJhdGlvbnMgKilcblxuICAgIGxldCBlbXB0eSA9IEVtcHR5XG5cbiAgICBsZXQgaXNfZW1wdHkgPSBmdW5jdGlvbiBFbXB0eSAtPiB0cnVlIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlYyBtZW0geCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGMgPSAwIHx8IG1lbSB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyByZW1vdmUgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IChOb2Rle2w7IHY7IHJ9IGFzIHQpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIG1lcmdlIGwgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgICAgbGV0IGxsID0gcmVtb3ZlIHggbCBpblxuICAgICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIGJhbCBsbCB2IHJcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IHJyID0gcmVtb3ZlIHggciBpblxuICAgICAgICAgICAgICBpZiByID09IHJyIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIGJhbCBsIHYgcnJcblxuICAgIGxldCByZWMgdW5pb24gczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIHQyKSAtPiB0MlxuICAgICAgfCAodDEsIEVtcHR5KSAtPiB0MVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxOyBoPWgxfSwgTm9kZXtsPWwyOyB2PXYyOyByPXIyOyBoPWgyfSkgLT5cbiAgICAgICAgICBpZiBoMSA+PSBoMiB0aGVuXG4gICAgICAgICAgICBpZiBoMiA9IDEgdGhlbiBhZGQgdjIgczEgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBsZXQgKGwyLCBfLCByMikgPSBzcGxpdCB2MSBzMiBpblxuICAgICAgICAgICAgICBqb2luICh1bmlvbiBsMSBsMikgdjEgKHVuaW9uIHIxIHIyKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgaWYgaDEgPSAxIHRoZW4gYWRkIHYxIHMyIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbGV0IChsMSwgXywgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICAgICAgam9pbiAodW5pb24gbDEgbDIpIHYyICh1bmlvbiByMSByMilcbiAgICAgICAgICAgIGVuZFxuXG4gICAgbGV0IHJlYyBpbnRlciBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gRW1wdHlcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgbWF0Y2ggc3BsaXQgdjEgdDIgd2l0aFxuICAgICAgICAgICAgKGwyLCBmYWxzZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGNvbmNhdCAoaW50ZXIgbDEgbDIpIChpbnRlciByMSByMilcbiAgICAgICAgICB8IChsMiwgdHJ1ZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGpvaW4gKGludGVyIGwxIGwyKSB2MSAoaW50ZXIgcjEgcjIpXG5cbiAgICAoKiBTYW1lIGFzIHNwbGl0LCBidXQgY29tcHV0ZSB0aGUgbGVmdCBhbmQgcmlnaHQgc3VidHJlZXNcbiAgICAgICBvbmx5IGlmIHRoZSBwaXZvdCBlbGVtZW50IGlzIG5vdCBpbiB0aGUgc2V0LiAgVGhlIHJpZ2h0IHN1YnRyZWVcbiAgICAgICBpcyBjb21wdXRlZCBvbiBkZW1hbmQuICopXG5cbiAgICB0eXBlIHNwbGl0X2JpcyA9XG4gICAgICB8IEZvdW5kXG4gICAgICB8IE5vdEZvdW5kIG9mIHQgKiAodW5pdCAtPiB0KVxuXG4gICAgbGV0IHJlYyBzcGxpdF9iaXMgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm90Rm91bmQgKEVtcHR5LCAoZnVuICgpIC0+IEVtcHR5KSlcbiAgICAgIHwgTm9kZXtsOyB2OyByOyBffSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBGb3VuZFxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbWF0Y2ggc3BsaXRfYmlzIHggbCB3aXRoXG4gICAgICAgICAgICB8IEZvdW5kIC0+IEZvdW5kXG4gICAgICAgICAgICB8IE5vdEZvdW5kIChsbCwgcmwpIC0+IE5vdEZvdW5kIChsbCwgKGZ1biAoKSAtPiBqb2luIChybCAoKSkgdiByKSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXRjaCBzcGxpdF9iaXMgeCByIHdpdGhcbiAgICAgICAgICAgIHwgRm91bmQgLT4gRm91bmRcbiAgICAgICAgICAgIHwgTm90Rm91bmQgKGxyLCBycikgLT4gTm90Rm91bmQgKGpvaW4gbCB2IGxyLCBycilcblxuICAgIGxldCByZWMgZGlzam9pbnQgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIHwgKF8sIEVtcHR5KSAtPiB0cnVlXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBpZiBzMSA9PSBzMiB0aGVuIGZhbHNlXG4gICAgICAgICAgZWxzZSBtYXRjaCBzcGxpdF9iaXMgdjEgdDIgd2l0aFxuICAgICAgICAgICAgICBOb3RGb3VuZChsMiwgcjIpIC0+IGRpc2pvaW50IGwxIGwyICYmIGRpc2pvaW50IHIxIChyMiAoKSlcbiAgICAgICAgICAgIHwgRm91bmQgLT4gZmFsc2VcblxuICAgIGxldCByZWMgZGlmZiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gRW1wdHlcbiAgICAgIHwgKHQxLCBFbXB0eSkgLT4gdDFcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIG1hdGNoIHNwbGl0IHYxIHQyIHdpdGhcbiAgICAgICAgICAgIChsMiwgZmFsc2UsIHIyKSAtPlxuICAgICAgICAgICAgICBqb2luIChkaWZmIGwxIGwyKSB2MSAoZGlmZiByMSByMilcbiAgICAgICAgICB8IChsMiwgdHJ1ZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGNvbmNhdCAoZGlmZiBsMSBsMikgKGRpZmYgcjEgcjIpXG5cbiAgICB0eXBlIGVudW1lcmF0aW9uID0gRW5kIHwgTW9yZSBvZiBlbHQgKiB0ICogZW51bWVyYXRpb25cblxuICAgIGxldCByZWMgY29uc19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGNvbnNfZW51bSBsIChNb3JlKHYsIHIsIGUpKVxuXG4gICAgbGV0IHJlYyBjb21wYXJlX2F1eCBlMSBlMiA9XG4gICAgICAgIG1hdGNoIChlMSwgZTIpIHdpdGhcbiAgICAgICAgKEVuZCwgRW5kKSAtPiAwXG4gICAgICB8IChFbmQsIF8pICAtPiAtMVxuICAgICAgfCAoXywgRW5kKSAtPiAxXG4gICAgICB8IChNb3JlKHYxLCByMSwgZTEpLCBNb3JlKHYyLCByMiwgZTIpKSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgdjEgdjIgaW5cbiAgICAgICAgICBpZiBjIDw+IDBcbiAgICAgICAgICB0aGVuIGNcbiAgICAgICAgICBlbHNlIGNvbXBhcmVfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG5cbiAgICBsZXQgY29tcGFyZSBzMSBzMiA9XG4gICAgICBjb21wYXJlX2F1eCAoY29uc19lbnVtIHMxIEVuZCkgKGNvbnNfZW51bSBzMiBFbmQpXG5cbiAgICBsZXQgZXF1YWwgczEgczIgPVxuICAgICAgY29tcGFyZSBzMSBzMiA9IDBcblxuICAgIGxldCByZWMgc3Vic2V0IHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgRW1wdHksIF8gLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IF8sIEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgTm9kZSB7bD1sMTsgdj12MTsgcj1yMX0sIChOb2RlIHtsPWwyOyB2PXYyOyByPXIyfSBhcyB0MikgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgc3Vic2V0IGwxIGwyICYmIHN1YnNldCByMSByMlxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgc3Vic2V0IChOb2RlIHtsPWwxOyB2PXYxOyByPUVtcHR5OyBoPTB9KSBsMiAmJiBzdWJzZXQgcjEgdDJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBzdWJzZXQgKE5vZGUge2w9RW1wdHk7IHY9djE7IHI9cjE7IGg9MH0pIHIyICYmIHN1YnNldCBsMSB0MlxuXG4gICAgbGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAoKVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGl0ZXIgZiBsOyBmIHY7IGl0ZXIgZiByXG5cbiAgICBsZXQgcmVjIGZvbGQgZiBzIGFjY3UgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBmb2xkIGYgciAoZiB2IChmb2xkIGYgbCBhY2N1KSlcblxuICAgIGxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gdHJ1ZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHAgdiAmJiBmb3JfYWxsIHAgbCAmJiBmb3JfYWxsIHAgclxuXG4gICAgbGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gcCB2IHx8IGV4aXN0cyBwIGwgfHwgZXhpc3RzIHAgclxuXG4gICAgbGV0IHJlYyBmaWx0ZXIgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IChOb2Rle2w7IHY7IHJ9KSBhcyB0IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXIgcCBsIGluXG4gICAgICAgICAgbGV0IHB2ID0gcCB2IGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyIHAgciBpblxuICAgICAgICAgIGlmIHB2IHRoZW5cbiAgICAgICAgICAgIGlmIGw9PWwnICYmIHI9PXInIHRoZW4gdCBlbHNlIGpvaW4gbCcgdiByJ1xuICAgICAgICAgIGVsc2UgY29uY2F0IGwnIHInXG5cbiAgICBsZXQgcmVjIHBhcnRpdGlvbiBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKEVtcHR5LCBFbXB0eSlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IChsdCwgbGYpID0gcGFydGl0aW9uIHAgbCBpblxuICAgICAgICAgIGxldCBwdiA9IHAgdiBpblxuICAgICAgICAgIGxldCAocnQsIHJmKSA9IHBhcnRpdGlvbiBwIHIgaW5cbiAgICAgICAgICBpZiBwdlxuICAgICAgICAgIHRoZW4gKGpvaW4gbHQgdiBydCwgY29uY2F0IGxmIHJmKVxuICAgICAgICAgIGVsc2UgKGNvbmNhdCBsdCBydCwgam9pbiBsZiB2IHJmKVxuXG4gICAgbGV0IHJlYyBjYXJkaW5hbCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZXtsOyByfSAtPiBjYXJkaW5hbCBsICsgMSArIGNhcmRpbmFsIHJcblxuICAgIGxldCByZWMgZWxlbWVudHNfYXV4IGFjY3UgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gZWxlbWVudHNfYXV4ICh2IDo6IGVsZW1lbnRzX2F1eCBhY2N1IHIpIGxcblxuICAgIGxldCBlbGVtZW50cyBzID1cbiAgICAgIGVsZW1lbnRzX2F1eCBbXSBzXG5cbiAgICBsZXQgY2hvb3NlID0gbWluX2VsdFxuXG4gICAgbGV0IGNob29zZV9vcHQgPSBtaW5fZWx0X29wdFxuXG4gICAgbGV0IHJlYyBmaW5kIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiB2XG4gICAgICAgICAgZWxzZSBmaW5kIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3RfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2MCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3QgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHQgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2MCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3QgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHQgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfb3B0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gU29tZSB2XG4gICAgICAgICAgZWxzZSBmaW5kX29wdCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHRyeV9qb2luIGwgdiByID1cbiAgICAgICgqIFtqb2luIGwgdiByXSBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiAoZWxlbWVudHMgb2YgbCA8IHYgPFxuICAgICAgICAgZWxlbWVudHMgb2Ygcik7IHVzZSBbdHJ5X2pvaW4gbCB2IHJdIHdoZW4gdGhpcyBwcm9wZXJ0eSBtYXlcbiAgICAgICAgIG5vdCBob2xkLCBidXQgeW91IGhvcGUgaXQgZG9lcyBob2xkIGluIHRoZSBjb21tb24gY2FzZSAqKVxuICAgICAgaWYgKGwgPSBFbXB0eSB8fCBPcmQuY29tcGFyZSAobWF4X2VsdCBsKSB2IDwgMClcbiAgICAgICYmIChyID0gRW1wdHkgfHwgT3JkLmNvbXBhcmUgdiAobWluX2VsdCByKSA8IDApXG4gICAgICB0aGVuIGpvaW4gbCB2IHJcbiAgICAgIGVsc2UgdW5pb24gbCAoYWRkIHYgcilcblxuICAgIGxldCByZWMgbWFwIGYgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICgqIGVuZm9yY2UgbGVmdC10by1yaWdodCBldmFsdWF0aW9uIG9yZGVyICopXG4gICAgICAgICBsZXQgbCcgPSBtYXAgZiBsIGluXG4gICAgICAgICBsZXQgdicgPSBmIHYgaW5cbiAgICAgICAgIGxldCByJyA9IG1hcCBmIHIgaW5cbiAgICAgICAgIGlmIGwgPT0gbCcgJiYgdiA9PSB2JyAmJiByID09IHInIHRoZW4gdFxuICAgICAgICAgZWxzZSB0cnlfam9pbiBsJyB2JyByJ1xuXG4gICAgbGV0IHRyeV9jb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiB0cnlfam9pbiB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgbGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICgqIGVuZm9yY2UgbGVmdC10by1yaWdodCBldmFsdWF0aW9uIG9yZGVyICopXG4gICAgICAgICBsZXQgbCcgPSBmaWx0ZXJfbWFwIGYgbCBpblxuICAgICAgICAgbGV0IHYnID0gZiB2IGluXG4gICAgICAgICBsZXQgcicgPSBmaWx0ZXJfbWFwIGYgciBpblxuICAgICAgICAgYmVnaW4gbWF0Y2ggdicgd2l0aFxuICAgICAgICAgICB8IFNvbWUgdicgLT5cbiAgICAgICAgICAgICAgaWYgbCA9PSBsJyAmJiB2ID09IHYnICYmIHIgPT0gcicgdGhlbiB0XG4gICAgICAgICAgICAgIGVsc2UgdHJ5X2pvaW4gbCcgdicgcidcbiAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgIHRyeV9jb25jYXQgbCcgcidcbiAgICAgICAgIGVuZFxuXG4gICAgbGV0IG9mX3NvcnRlZF9saXN0IGwgPVxuICAgICAgbGV0IHJlYyBzdWIgbiBsID1cbiAgICAgICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgICAgIHwgMCwgbCAtPiBFbXB0eSwgbFxuICAgICAgICB8IDEsIHgwIDo6IGwgLT4gTm9kZSB7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfSwgbFxuICAgICAgICB8IDIsIHgwIDo6IHgxIDo6IGwgLT5cbiAgICAgICAgICAgIE5vZGV7bD1Ob2Rle2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX07IHY9eDE7IHI9RW1wdHk7IGg9Mn0sIGxcbiAgICAgICAgfCAzLCB4MCA6OiB4MSA6OiB4MiA6OiBsIC0+XG4gICAgICAgICAgICBOb2Rle2w9Tm9kZXtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9OyB2PXgxO1xuICAgICAgICAgICAgICAgICByPU5vZGV7bD1FbXB0eTsgdj14Mjsgcj1FbXB0eTsgaD0xfTsgaD0yfSwgbFxuICAgICAgICB8IG4sIGwgLT5cbiAgICAgICAgICBsZXQgbmwgPSBuIC8gMiBpblxuICAgICAgICAgIGxldCBsZWZ0LCBsID0gc3ViIG5sIGwgaW5cbiAgICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICB8IFtdIC0+IGFzc2VydCBmYWxzZVxuICAgICAgICAgIHwgbWlkIDo6IGwgLT5cbiAgICAgICAgICAgIGxldCByaWdodCwgbCA9IHN1YiAobiAtIG5sIC0gMSkgbCBpblxuICAgICAgICAgICAgY3JlYXRlIGxlZnQgbWlkIHJpZ2h0LCBsXG4gICAgICBpblxuICAgICAgZnN0IChzdWIgKExpc3QubGVuZ3RoIGwpIGwpXG5cbiAgICBsZXQgb2ZfbGlzdCBsID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiBlbXB0eVxuICAgICAgfCBbeDBdIC0+IHNpbmdsZXRvbiB4MFxuICAgICAgfCBbeDA7IHgxXSAtPiBhZGQgeDEgKHNpbmdsZXRvbiB4MClcbiAgICAgIHwgW3gwOyB4MTsgeDJdIC0+IGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKVxuICAgICAgfCBbeDA7IHgxOyB4MjsgeDNdIC0+IGFkZCB4MyAoYWRkIHgyIChhZGQgeDEgKHNpbmdsZXRvbiB4MCkpKVxuICAgICAgfCBbeDA7IHgxOyB4MjsgeDM7IHg0XSAtPiBhZGQgeDQgKGFkZCB4MyAoYWRkIHgyIChhZGQgeDEgKHNpbmdsZXRvbiB4MCkpKSlcbiAgICAgIHwgXyAtPiBvZl9zb3J0ZWRfbGlzdCAoTGlzdC5zb3J0X3VuaXEgT3JkLmNvbXBhcmUgbClcblxuICAgIGxldCBhZGRfc2VxIGkgbSA9XG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gcyB4IC0+IGFkZCB4IHMpIG0gaVxuXG4gICAgbGV0IG9mX3NlcSBpID0gYWRkX3NlcSBpIGVtcHR5XG5cbiAgICBsZXQgcmVjIHNlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKHgsIHQsIHJlc3QpIC0+IFNlcS5Db25zICh4LCBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3NlcSBjID0gc2VxX29mX2VudW1fIChjb25zX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgcmVjIHNub2NfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBzbm9jX2VudW0gciAoTW9yZSh2LCBsLCBlKSlcblxuICAgIGxldCByZWMgcmV2X3NlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKHgsIHQsIHJlc3QpIC0+IFNlcS5Db25zICh4LCByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19yZXZfc2VxIGMgPSByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgdG9fc2VxX2Zyb20gbG93IHMgPVxuICAgICAgbGV0IHJlYyBhdXggbG93IHMgYyA9IG1hdGNoIHMgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGNcbiAgICAgICAgfCBOb2RlIHtsOyByOyB2OyBffSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggT3JkLmNvbXBhcmUgdiBsb3cgd2l0aFxuICAgICAgICAgICAgICB8IDAgLT4gTW9yZSAodiwgciwgYylcbiAgICAgICAgICAgICAgfCBuIHdoZW4gbjwwIC0+IGF1eCBsb3cgciBjXG4gICAgICAgICAgICAgIHwgXyAtPiBhdXggbG93IGwgKE1vcmUgKHYsIHIsIGMpKVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgc2VxX29mX2VudW1fIChhdXggbG93IHMgRW5kKVxuICBlbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubW9kdWxlIHR5cGUgT3JkZXJlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhKydhIHRcbiAgICB2YWwgZW1wdHk6ICdhIHRcbiAgICB2YWwgaXNfZW1wdHk6ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBtZW06ICBrZXkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGFkZDoga2V5IC0+ICdhIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCB1cGRhdGU6IGtleSAtPiAoJ2Egb3B0aW9uIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIHNpbmdsZXRvbjoga2V5IC0+ICdhIC0+ICdhIHRcbiAgICB2YWwgcmVtb3ZlOiBrZXkgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIG1lcmdlOlxuICAgICAgICAgIChrZXkgLT4gJ2Egb3B0aW9uIC0+ICdiIG9wdGlvbiAtPiAnYyBvcHRpb24pIC0+ICdhIHQgLT4gJ2IgdCAtPiAnYyB0XG4gICAgdmFsIHVuaW9uOiAoa2V5IC0+ICdhIC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgY29tcGFyZTogKCdhIC0+ICdhIC0+IGludCkgLT4gJ2EgdCAtPiAnYSB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogKCdhIC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQ6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgZm9yX2FsbDogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgZXhpc3RzOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBmaWx0ZXI6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGZpbHRlcl9tYXA6IChrZXkgLT4gJ2EgLT4gJ2Igb3B0aW9uKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgcGFydGl0aW9uOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdCAqICdhIHRcbiAgICB2YWwgY2FyZGluYWw6ICdhIHQgLT4gaW50XG4gICAgdmFsIGJpbmRpbmdzOiAnYSB0IC0+IChrZXkgKiAnYSkgbGlzdFxuICAgIHZhbCBtaW5fYmluZGluZzogJ2EgdCAtPiAoa2V5ICogJ2EpXG4gICAgdmFsIG1pbl9iaW5kaW5nX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBtYXhfYmluZGluZzogJ2EgdCAtPiAoa2V5ICogJ2EpXG4gICAgdmFsIG1heF9iaW5kaW5nX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBjaG9vc2U6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBjaG9vc2Vfb3B0OiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIHNwbGl0OiBrZXkgLT4gJ2EgdCAtPiAnYSB0ICogJ2Egb3B0aW9uICogJ2EgdFxuICAgIHZhbCBmaW5kOiBrZXkgLT4gJ2EgdCAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDoga2V5IC0+ICdhIHQgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfZmlyc3Q6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiBrZXkgKiAnYVxuICAgIHZhbCBmaW5kX2ZpcnN0X29wdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIGZpbmRfbGFzdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IGtleSAqICdhXG4gICAgdmFsIGZpbmRfbGFzdF9vcHQ6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBtYXA6ICgnYSAtPiAnYikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIG1hcGk6IChrZXkgLT4gJ2EgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fcmV2X3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfZnJvbSA6IGtleSAtPiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIE1ha2UoT3JkOiBPcmRlcmVkVHlwZSkgPSBzdHJ1Y3RcblxuICAgIHR5cGUga2V5ID0gT3JkLnRcblxuICAgIHR5cGUgJ2EgdCA9XG4gICAgICAgIEVtcHR5XG4gICAgICB8IE5vZGUgb2Yge2w6J2EgdDsgdjprZXk7IGQ6J2E7IHI6J2EgdDsgaDppbnR9XG5cbiAgICBsZXQgaGVpZ2h0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtofSAtPiBoXG5cbiAgICBsZXQgY3JlYXRlIGwgeCBkIHIgPVxuICAgICAgbGV0IGhsID0gaGVpZ2h0IGwgYW5kIGhyID0gaGVpZ2h0IHIgaW5cbiAgICAgIE5vZGV7bDsgdj14OyBkOyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICBsZXQgc2luZ2xldG9uIHggZCA9IE5vZGV7bD1FbXB0eTsgdj14OyBkOyByPUVtcHR5OyBoPTF9XG5cbiAgICBsZXQgYmFsIGwgeCBkIHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGlmIGhsID4gaHIgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9bGw7IHY9bHY7IGQ9bGQ7IHI9bHJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgbGwgPj0gaGVpZ2h0IGxyIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIGxsIGx2IGxkIChjcmVhdGUgbHIgeCBkIHIpXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIGxyIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1scmw7IHY9bHJ2OyBkPWxyZDsgcj1scnJ9LT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGxsIGx2IGxkIGxybCkgbHJ2IGxyZCAoY3JlYXRlIGxyciB4IGQgcilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2UgaWYgaHIgPiBobCArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCByIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1ybDsgdj1ydjsgZD1yZDsgcj1ycn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCByciA+PSBoZWlnaHQgcmwgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHggZCBybCkgcnYgcmQgcnJcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggcmwgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPXJsbDsgdj1ybHY7IGQ9cmxkOyByPXJscn0gLT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgeCBkIHJsbCkgcmx2IHJsZCAoY3JlYXRlIHJsciBydiByZCBycilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgTm9kZXtsOyB2PXg7IGQ7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgIGxldCBlbXB0eSA9IEVtcHR5XG5cbiAgICBsZXQgaXNfZW1wdHkgPSBmdW5jdGlvbiBFbXB0eSAtPiB0cnVlIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlYyBhZGQgeCBkYXRhID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb2Rle2w9RW1wdHk7IHY9eDsgZD1kYXRhOyByPUVtcHR5OyBoPTF9XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IGFzIG0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGlmIGQgPT0gZGF0YSB0aGVuIG0gZWxzZSBOb2Rle2w7IHY9eDsgZD1kYXRhOyByOyBofVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gYWRkIHggZGF0YSBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gbSBlbHNlIGJhbCBsbCB2IGQgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IGFkZCB4IGRhdGEgciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIG0gZWxzZSBiYWwgbCB2IGQgcnJcblxuICAgIGxldCByZWMgZmluZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gZFxuICAgICAgICAgIGVsc2UgZmluZCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdjAgZDAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBkMCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3RfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdjAgZDAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBkMCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX29wdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFNvbWUgZFxuICAgICAgICAgIGVsc2UgZmluZF9vcHQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBjID0gMCB8fCBtZW0geCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgbWluX2JpbmRpbmcgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgdjsgZH0gLT4gKHYsIGQpXG4gICAgICB8IE5vZGUge2x9IC0+IG1pbl9iaW5kaW5nIGxcblxuICAgIGxldCByZWMgbWluX2JpbmRpbmdfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2RlIHtsPUVtcHR5OyB2OyBkfSAtPiBTb21lICh2LCBkKVxuICAgICAgfCBOb2RlIHtsfS0+IG1pbl9iaW5kaW5nX29wdCBsXG5cbiAgICBsZXQgcmVjIG1heF9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge3Y7IGQ7IHI9RW1wdHl9IC0+ICh2LCBkKVxuICAgICAgfCBOb2RlIHtyfSAtPiBtYXhfYmluZGluZyByXG5cbiAgICBsZXQgcmVjIG1heF9iaW5kaW5nX29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZSB7djsgZDsgcj1FbXB0eX0gLT4gU29tZSAodiwgZClcbiAgICAgIHwgTm9kZSB7cn0gLT4gbWF4X2JpbmRpbmdfb3B0IHJcblxuICAgIGxldCByZWMgcmVtb3ZlX21pbl9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAucmVtb3ZlX21pbl9lbHRcIlxuICAgICAgfCBOb2RlIHtsPUVtcHR5OyByfSAtPiByXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IGJhbCAocmVtb3ZlX21pbl9iaW5kaW5nIGwpIHYgZCByXG5cbiAgICBsZXQgbWVyZ2UgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPlxuICAgICAgICAgIGxldCAoeCwgZCkgPSBtaW5fYmluZGluZyB0MiBpblxuICAgICAgICAgIGJhbCB0MSB4IGQgKHJlbW92ZV9taW5fYmluZGluZyB0MilcblxuICAgIGxldCByZWMgcmVtb3ZlIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIEVtcHR5XG4gICAgICB8IChOb2RlIHtsOyB2OyBkOyByfSBhcyBtKSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBtZXJnZSBsIHJcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IHJlbW92ZSB4IGwgaW4gaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSByZW1vdmUgeCByIGluIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIHVwZGF0ZSB4IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIGYgTm9uZSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IEVtcHR5XG4gICAgICAgICAgfCBTb21lIGRhdGEgLT4gTm9kZXtsPUVtcHR5OyB2PXg7IGQ9ZGF0YTsgcj1FbXB0eTsgaD0xfVxuICAgICAgICAgIGVuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSBhcyBtIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIGJlZ2luXG4gICAgICAgICAgICBtYXRjaCBmIChTb21lIGQpIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBtZXJnZSBsIHJcbiAgICAgICAgICAgIHwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgICAgICAgaWYgZCA9PSBkYXRhIHRoZW4gbSBlbHNlIE5vZGV7bDsgdj14OyBkPWRhdGE7IHI7IGh9XG4gICAgICAgICAgZW5kIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gdXBkYXRlIHggZiBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gbSBlbHNlIGJhbCBsbCB2IGQgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IHVwZGF0ZSB4IGYgciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIG0gZWxzZSBiYWwgbCB2IGQgcnJcblxuICAgIGxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpdGVyIGYgbDsgZiB2IGQ7IGl0ZXIgZiByXG5cbiAgICBsZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSAtPlxuICAgICAgICAgIGxldCBsJyA9IG1hcCBmIGwgaW5cbiAgICAgICAgICBsZXQgZCcgPSBmIGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBtYXAgZiByIGluXG4gICAgICAgICAgTm9kZXtsPWwnOyB2OyBkPWQnOyByPXInOyBofVxuXG4gICAgbGV0IHJlYyBtYXBpIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IC0+XG4gICAgICAgICAgbGV0IGwnID0gbWFwaSBmIGwgaW5cbiAgICAgICAgICBsZXQgZCcgPSBmIHYgZCBpblxuICAgICAgICAgIGxldCByJyA9IG1hcGkgZiByIGluXG4gICAgICAgICAgTm9kZXtsPWwnOyB2OyBkPWQnOyByPXInOyBofVxuXG4gICAgbGV0IHJlYyBmb2xkIGYgbSBhY2N1ID1cbiAgICAgIG1hdGNoIG0gd2l0aFxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgZm9sZCBmIHIgKGYgdiBkIChmb2xkIGYgbCBhY2N1KSlcblxuICAgIGxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gdHJ1ZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBwIHYgZCAmJiBmb3JfYWxsIHAgbCAmJiBmb3JfYWxsIHAgclxuXG4gICAgbGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IHAgdiBkIHx8IGV4aXN0cyBwIGwgfHwgZXhpc3RzIHAgclxuXG4gICAgKCogQmV3YXJlOiB0aG9zZSB0d28gZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZSBhZGRlZCBrIGlzICpzdHJpY3RseSpcbiAgICAgICBzbWFsbGVyIChvciBiaWdnZXIpIHRoYW4gYWxsIHRoZSBwcmVzZW50IGtleXMgaW4gdGhlIHRyZWU7IGl0XG4gICAgICAgZG9lcyBub3QgdGVzdCBmb3IgZXF1YWxpdHkgd2l0aCB0aGUgY3VycmVudCBtaW4gKG9yIG1heCkga2V5LlxuXG4gICAgICAgSW5kZWVkLCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBcImpvaW5cIiBvcGVyYXRpb24gd2hpY2hcbiAgICAgICByZXNwZWN0cyB0aGlzIHByZWNvbmRpdGlvbi5cbiAgICAqKVxuXG4gICAgbGV0IHJlYyBhZGRfbWluX2JpbmRpbmcgayB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIGsgeFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICBiYWwgKGFkZF9taW5fYmluZGluZyBrIHggbCkgdiBkIHJcblxuICAgIGxldCByZWMgYWRkX21heF9iaW5kaW5nIGsgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiBrIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgYmFsIGwgdiBkIChhZGRfbWF4X2JpbmRpbmcgayB4IHIpXG5cbiAgICAoKiBTYW1lIGFzIGNyZWF0ZSBhbmQgYmFsLCBidXQgbm8gYXNzdW1wdGlvbnMgYXJlIG1hZGUgb24gdGhlXG4gICAgICAgcmVsYXRpdmUgaGVpZ2h0cyBvZiBsIGFuZCByLiAqKVxuXG4gICAgbGV0IHJlYyBqb2luIGwgdiBkIHIgPVxuICAgICAgbWF0Y2ggKGwsIHIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBhZGRfbWluX2JpbmRpbmcgdiBkIHJcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBhZGRfbWF4X2JpbmRpbmcgdiBkIGxcbiAgICAgIHwgKE5vZGV7bD1sbDsgdj1sdjsgZD1sZDsgcj1scjsgaD1saH0sXG4gICAgICAgICBOb2Rle2w9cmw7IHY9cnY7IGQ9cmQ7IHI9cnI7IGg9cmh9KSAtPlxuICAgICAgICAgIGlmIGxoID4gcmggKyAyIHRoZW4gYmFsIGxsIGx2IGxkIChqb2luIGxyIHYgZCByKSBlbHNlXG4gICAgICAgICAgaWYgcmggPiBsaCArIDIgdGhlbiBiYWwgKGpvaW4gbCB2IGQgcmwpIHJ2IHJkIHJyIGVsc2VcbiAgICAgICAgICBjcmVhdGUgbCB2IGQgclxuXG4gICAgKCogTWVyZ2UgdHdvIHRyZWVzIGwgYW5kIHIgaW50byBvbmUuXG4gICAgICAgQWxsIGVsZW1lbnRzIG9mIGwgbXVzdCBwcmVjZWRlIHRoZSBlbGVtZW50cyBvZiByLlxuICAgICAgIE5vIGFzc3VtcHRpb24gb24gdGhlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCBjb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPlxuICAgICAgICAgIGxldCAoeCwgZCkgPSBtaW5fYmluZGluZyB0MiBpblxuICAgICAgICAgIGpvaW4gdDEgeCBkIChyZW1vdmVfbWluX2JpbmRpbmcgdDIpXG5cbiAgICBsZXQgY29uY2F0X29yX2pvaW4gdDEgdiBkIHQyID1cbiAgICAgIG1hdGNoIGQgd2l0aFxuICAgICAgfCBTb21lIGQgLT4gam9pbiB0MSB2IGQgdDJcbiAgICAgIHwgTm9uZSAtPiBjb25jYXQgdDEgdDJcblxuICAgIGxldCByZWMgc3BsaXQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKEVtcHR5LCBOb25lLCBFbXB0eSlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gKGwsIFNvbWUgZCwgcilcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCAobGwsIHByZXMsIHJsKSA9IHNwbGl0IHggbCBpbiAobGwsIHByZXMsIGpvaW4gcmwgdiBkIHIpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IChsciwgcHJlcywgcnIpID0gc3BsaXQgeCByIGluIChqb2luIGwgdiBkIGxyLCBwcmVzLCBycilcblxuICAgIGxldCByZWMgbWVyZ2UgZiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgRW1wdHkpIC0+IEVtcHR5XG4gICAgICB8IChOb2RlIHtsPWwxOyB2PXYxOyBkPWQxOyByPXIxOyBoPWgxfSwgXykgd2hlbiBoMSA+PSBoZWlnaHQgczIgLT5cbiAgICAgICAgICBsZXQgKGwyLCBkMiwgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICBjb25jYXRfb3Jfam9pbiAobWVyZ2UgZiBsMSBsMikgdjEgKGYgdjEgKFNvbWUgZDEpIGQyKSAobWVyZ2UgZiByMSByMilcbiAgICAgIHwgKF8sIE5vZGUge2w9bDI7IHY9djI7IGQ9ZDI7IHI9cjJ9KSAtPlxuICAgICAgICAgIGxldCAobDEsIGQxLCByMSkgPSBzcGxpdCB2MiBzMSBpblxuICAgICAgICAgIGNvbmNhdF9vcl9qb2luIChtZXJnZSBmIGwxIGwyKSB2MiAoZiB2MiBkMSAoU29tZSBkMikpIChtZXJnZSBmIHIxIHIyKVxuICAgICAgfCBfIC0+XG4gICAgICAgICAgYXNzZXJ0IGZhbHNlXG5cbiAgICBsZXQgcmVjIHVuaW9uIGYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgfCAoRW1wdHksIHMpIHwgKHMsIEVtcHR5KSAtPiBzXG4gICAgICB8IChOb2RlIHtsPWwxOyB2PXYxOyBkPWQxOyByPXIxOyBoPWgxfSxcbiAgICAgICAgIE5vZGUge2w9bDI7IHY9djI7IGQ9ZDI7IHI9cjI7IGg9aDJ9KSAtPlxuICAgICAgICAgIGlmIGgxID49IGgyIHRoZW5cbiAgICAgICAgICAgIGxldCAobDIsIGQyLCByMikgPSBzcGxpdCB2MSBzMiBpblxuICAgICAgICAgICAgbGV0IGwgPSB1bmlvbiBmIGwxIGwyIGFuZCByID0gdW5pb24gZiByMSByMiBpblxuICAgICAgICAgICAgbWF0Y2ggZDIgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGpvaW4gbCB2MSBkMSByXG4gICAgICAgICAgICB8IFNvbWUgZDIgLT4gY29uY2F0X29yX2pvaW4gbCB2MSAoZiB2MSBkMSBkMikgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobDEsIGQxLCByMSkgPSBzcGxpdCB2MiBzMSBpblxuICAgICAgICAgICAgbGV0IGwgPSB1bmlvbiBmIGwxIGwyIGFuZCByID0gdW5pb24gZiByMSByMiBpblxuICAgICAgICAgICAgbWF0Y2ggZDEgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGpvaW4gbCB2MiBkMiByXG4gICAgICAgICAgICB8IFNvbWUgZDEgLT4gY29uY2F0X29yX2pvaW4gbCB2MiAoZiB2MiBkMSBkMikgclxuXG4gICAgbGV0IHJlYyBmaWx0ZXIgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IGFzIG0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlciBwIGwgaW5cbiAgICAgICAgICBsZXQgcHZkID0gcCB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBmaWx0ZXIgcCByIGluXG4gICAgICAgICAgaWYgcHZkIHRoZW4gaWYgbD09bCcgJiYgcj09cicgdGhlbiBtIGVsc2Ugam9pbiBsJyB2IGQgcidcbiAgICAgICAgICBlbHNlIGNvbmNhdCBsJyByJ1xuXG4gICAgbGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgICgqIGNhbGwgW2ZdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyX21hcCBmIGwgaW5cbiAgICAgICAgICBsZXQgZnZkID0gZiB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBmaWx0ZXJfbWFwIGYgciBpblxuICAgICAgICAgIGJlZ2luIG1hdGNoIGZ2ZCB3aXRoXG4gICAgICAgICAgICB8IFNvbWUgZCcgLT4gam9pbiBsJyB2IGQnIHInXG4gICAgICAgICAgICB8IE5vbmUgLT4gY29uY2F0IGwnIHInXG4gICAgICAgICAgZW5kXG5cbiAgICBsZXQgcmVjIHBhcnRpdGlvbiBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKEVtcHR5LCBFbXB0eSlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCAobHQsIGxmKSA9IHBhcnRpdGlvbiBwIGwgaW5cbiAgICAgICAgICBsZXQgcHZkID0gcCB2IGQgaW5cbiAgICAgICAgICBsZXQgKHJ0LCByZikgPSBwYXJ0aXRpb24gcCByIGluXG4gICAgICAgICAgaWYgcHZkXG4gICAgICAgICAgdGhlbiAoam9pbiBsdCB2IGQgcnQsIGNvbmNhdCBsZiByZilcbiAgICAgICAgICBlbHNlIChjb25jYXQgbHQgcnQsIGpvaW4gbGYgdiBkIHJmKVxuXG4gICAgdHlwZSAnYSBlbnVtZXJhdGlvbiA9IEVuZCB8IE1vcmUgb2Yga2V5ICogJ2EgKiAnYSB0ICogJ2EgZW51bWVyYXRpb25cblxuICAgIGxldCByZWMgY29uc19lbnVtIG0gZSA9XG4gICAgICBtYXRjaCBtIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBjb25zX2VudW0gbCAoTW9yZSh2LCBkLCByLCBlKSlcblxuICAgIGxldCBjb21wYXJlIGNtcCBtMSBtMiA9XG4gICAgICBsZXQgcmVjIGNvbXBhcmVfYXV4IGUxIGUyID1cbiAgICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgICAgKEVuZCwgRW5kKSAtPiAwXG4gICAgICAgIHwgKEVuZCwgXykgIC0+IC0xXG4gICAgICAgIHwgKF8sIEVuZCkgLT4gMVxuICAgICAgICB8IChNb3JlKHYxLCBkMSwgcjEsIGUxKSwgTW9yZSh2MiwgZDIsIHIyLCBlMikpIC0+XG4gICAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgICBpZiBjIDw+IDAgdGhlbiBjIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIGQxIGQyIGluXG4gICAgICAgICAgICBpZiBjIDw+IDAgdGhlbiBjIGVsc2VcbiAgICAgICAgICAgIGNvbXBhcmVfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG4gICAgICBpbiBjb21wYXJlX2F1eCAoY29uc19lbnVtIG0xIEVuZCkgKGNvbnNfZW51bSBtMiBFbmQpXG5cbiAgICBsZXQgZXF1YWwgY21wIG0xIG0yID1cbiAgICAgIGxldCByZWMgZXF1YWxfYXV4IGUxIGUyID1cbiAgICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgICAgKEVuZCwgRW5kKSAtPiB0cnVlXG4gICAgICAgIHwgKEVuZCwgXykgIC0+IGZhbHNlXG4gICAgICAgIHwgKF8sIEVuZCkgLT4gZmFsc2VcbiAgICAgICAgfCAoTW9yZSh2MSwgZDEsIHIxLCBlMSksIE1vcmUodjIsIGQyLCByMiwgZTIpKSAtPlxuICAgICAgICAgICAgT3JkLmNvbXBhcmUgdjEgdjIgPSAwICYmIGNtcCBkMSBkMiAmJlxuICAgICAgICAgICAgZXF1YWxfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG4gICAgICBpbiBlcXVhbF9hdXggKGNvbnNfZW51bSBtMSBFbmQpIChjb25zX2VudW0gbTIgRW5kKVxuXG4gICAgbGV0IHJlYyBjYXJkaW5hbCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7bDsgcn0gLT4gY2FyZGluYWwgbCArIDEgKyBjYXJkaW5hbCByXG5cbiAgICBsZXQgcmVjIGJpbmRpbmdzX2F1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBiaW5kaW5nc19hdXggKCh2LCBkKSA6OiBiaW5kaW5nc19hdXggYWNjdSByKSBsXG5cbiAgICBsZXQgYmluZGluZ3MgcyA9XG4gICAgICBiaW5kaW5nc19hdXggW10gc1xuXG4gICAgbGV0IGNob29zZSA9IG1pbl9iaW5kaW5nXG5cbiAgICBsZXQgY2hvb3NlX29wdCA9IG1pbl9iaW5kaW5nX29wdFxuXG4gICAgbGV0IGFkZF9zZXEgaSBtID1cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBtIChrLHYpIC0+IGFkZCBrIHYgbSkgbSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPSBhZGRfc2VxIGkgZW1wdHlcblxuICAgIGxldCByZWMgc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoayx2LHQscmVzdCkgLT4gU2VxLkNvbnMgKChrLHYpLCBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3NlcSBtID1cbiAgICAgIHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIG0gRW5kKVxuXG4gICAgbGV0IHJlYyBzbm9jX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgZDsgcn0gLT4gc25vY19lbnVtIHIgKE1vcmUodiwgZCwgbCwgZSkpXG5cbiAgICBsZXQgcmVjIHJldl9zZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlIChrLHYsdCxyZXN0KSAtPlxuICAgICAgICAgIFNlcS5Db25zICgoayx2KSwgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fcmV2X3NlcSBjID1cbiAgICAgIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSBjIEVuZClcblxuICAgIGxldCB0b19zZXFfZnJvbSBsb3cgbSA9XG4gICAgICBsZXQgcmVjIGF1eCBsb3cgbSBjID0gbWF0Y2ggbSB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gY1xuICAgICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IF99IC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBPcmQuY29tcGFyZSB2IGxvdyB3aXRoXG4gICAgICAgICAgICAgIHwgMCAtPiBNb3JlICh2LCBkLCByLCBjKVxuICAgICAgICAgICAgICB8IG4gd2hlbiBuPDAgLT4gYXV4IGxvdyByIGNcbiAgICAgICAgICAgICAgfCBfIC0+IGF1eCBsb3cgbCAoTW9yZSAodiwgZCwgciwgYykpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBzZXFfb2ZfZW51bV8gKGF1eCBsb3cgbSBFbmQpXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0geyBtdXRhYmxlIGMgOiAnYSBsaXN0OyBtdXRhYmxlIGxlbiA6IGludDsgfVxuXG5leGNlcHRpb24gRW1wdHlcblxubGV0IGNyZWF0ZSAoKSA9IHsgYyA9IFtdOyBsZW4gPSAwOyB9XG5cbmxldCBjbGVhciBzID0gcy5jIDwtIFtdOyBzLmxlbiA8LSAwXG5cbmxldCBjb3B5IHMgPSB7IGMgPSBzLmM7IGxlbiA9IHMubGVuOyB9XG5cbmxldCBwdXNoIHggcyA9IHMuYyA8LSB4IDo6IHMuYzsgcy5sZW4gPC0gcy5sZW4gKyAxXG5cbmxldCBwb3AgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6OnRsIC0+IHMuYyA8LSB0bDsgcy5sZW4gPC0gcy5sZW4gLSAxOyBoZFxuICB8IFtdICAgICAtPiByYWlzZSBFbXB0eVxuXG5sZXQgcG9wX29wdCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6dGwgLT4gcy5jIDwtIHRsOyBzLmxlbiA8LSBzLmxlbiAtIDE7IFNvbWUgaGRcbiAgfCBbXSAgICAgLT4gTm9uZVxuXG5sZXQgdG9wIHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjpfIC0+IGhkXG4gIHwgW10gICAgLT4gcmFpc2UgRW1wdHlcblxubGV0IHRvcF9vcHQgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6Ol8gLT4gU29tZSBoZFxuICB8IFtdICAgIC0+IE5vbmVcblxubGV0IGlzX2VtcHR5IHMgPSAocy5jID0gW10pXG5cbmxldCBsZW5ndGggcyA9IHMubGVuXG5cbmxldCBpdGVyIGYgcyA9IExpc3QuaXRlciBmIHMuY1xuXG5sZXQgZm9sZCBmIGFjYyBzID0gTGlzdC5mb2xkX2xlZnQgZiBhY2Mgcy5jXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcyA9IExpc3QudG9fc2VxIHMuY1xuXG5sZXQgYWRkX3NlcSBxIGkgPSBTZXEuaXRlciAoZnVuIHggLT4gcHVzaCB4IHEpIGlcblxubGV0IG9mX3NlcSBnID1cbiAgbGV0IHMgPSBjcmVhdGUoKSBpblxuICBhZGRfc2VxIHMgZztcbiAgc1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBGcmFuY29pcyBQb3R0aWVyLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICBKZXJlbWllIERpbWlubywgSmFuZSBTdHJlZXQgRXVyb3BlICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leGNlcHRpb24gRW1wdHlcblxudHlwZSAnYSBjZWxsID1cbiAgfCBOaWxcbiAgfCBDb25zIG9mIHsgY29udGVudDogJ2E7IG11dGFibGUgbmV4dDogJ2EgY2VsbCB9XG5cbnR5cGUgJ2EgdCA9IHtcbiAgbXV0YWJsZSBsZW5ndGg6IGludDtcbiAgbXV0YWJsZSBmaXJzdDogJ2EgY2VsbDtcbiAgbXV0YWJsZSBsYXN0OiAnYSBjZWxsXG59XG5cbmxldCBjcmVhdGUgKCkgPSB7XG4gIGxlbmd0aCA9IDA7XG4gIGZpcnN0ID0gTmlsO1xuICBsYXN0ID0gTmlsXG59XG5cbmxldCBjbGVhciBxID1cbiAgcS5sZW5ndGggPC0gMDtcbiAgcS5maXJzdCA8LSBOaWw7XG4gIHEubGFzdCA8LSBOaWxcblxubGV0IGFkZCB4IHEgPVxuICBsZXQgY2VsbCA9IENvbnMge1xuICAgIGNvbnRlbnQgPSB4O1xuICAgIG5leHQgPSBOaWxcbiAgfSBpblxuICBtYXRjaCBxLmxhc3Qgd2l0aFxuICB8IE5pbCAtPlxuICAgIHEubGVuZ3RoIDwtIDE7XG4gICAgcS5maXJzdCA8LSBjZWxsO1xuICAgIHEubGFzdCA8LSBjZWxsXG4gIHwgQ29ucyBsYXN0IC0+XG4gICAgcS5sZW5ndGggPC0gcS5sZW5ndGggKyAxO1xuICAgIGxhc3QubmV4dCA8LSBjZWxsO1xuICAgIHEubGFzdCA8LSBjZWxsXG5cbmxldCBwdXNoID1cbiAgYWRkXG5cbmxldCBwZWVrIHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gcmFpc2UgRW1wdHlcbiAgfCBDb25zIHsgY29udGVudCB9IC0+IGNvbnRlbnRcblxubGV0IHBlZWtfb3B0IHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gTm9uZVxuICB8IENvbnMgeyBjb250ZW50IH0gLT4gU29tZSBjb250ZW50XG5cbmxldCB0b3AgPVxuICBwZWVrXG5cbmxldCB0YWtlIHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gcmFpc2UgRW1wdHlcbiAgfCBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IC0+XG4gICAgY2xlYXIgcTtcbiAgICBjb250ZW50XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoIC0gMTtcbiAgICBxLmZpcnN0IDwtIG5leHQ7XG4gICAgY29udGVudFxuXG5sZXQgdGFrZV9vcHQgcSA9XG4gIG1hdGNoIHEuZmlyc3Qgd2l0aFxuICB8IE5pbCAtPiBOb25lXG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSAtPlxuICAgIGNsZWFyIHE7XG4gICAgU29tZSBjb250ZW50XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoIC0gMTtcbiAgICBxLmZpcnN0IDwtIG5leHQ7XG4gICAgU29tZSBjb250ZW50XG5cbmxldCBwb3AgPVxuICB0YWtlXG5cbmxldCBjb3B5ID1cbiAgbGV0IHJlYyBjb3B5IHFfcmVzIHByZXYgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gcV9yZXMubGFzdCA8LSBwcmV2OyBxX3Jlc1xuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgbGV0IHJlcyA9IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gaW5cbiAgICAgIGJlZ2luIG1hdGNoIHByZXYgd2l0aFxuICAgICAgfCBOaWwgLT4gcV9yZXMuZmlyc3QgPC0gcmVzXG4gICAgICB8IENvbnMgcCAtPiBwLm5leHQgPC0gcmVzXG4gICAgICBlbmQ7XG4gICAgICBjb3B5IHFfcmVzIHJlcyBuZXh0XG4gIGluXG4gIGZ1biBxIC0+IGNvcHkgeyBsZW5ndGggPSBxLmxlbmd0aDsgZmlyc3QgPSBOaWw7IGxhc3QgPSBOaWwgfSBOaWwgcS5maXJzdFxuXG5sZXQgaXNfZW1wdHkgcSA9XG4gIHEubGVuZ3RoID0gMFxuXG5sZXQgbGVuZ3RoIHEgPVxuICBxLmxlbmd0aFxuXG5sZXQgaXRlciA9XG4gIGxldCByZWMgaXRlciBmIGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+ICgpXG4gICAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgICBmIGNvbnRlbnQ7XG4gICAgICBpdGVyIGYgbmV4dFxuICBpblxuICBmdW4gZiBxIC0+IGl0ZXIgZiBxLmZpcnN0XG5cbmxldCBmb2xkID1cbiAgbGV0IHJlYyBmb2xkIGYgYWNjdSBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiBhY2N1XG4gICAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgICBsZXQgYWNjdSA9IGYgYWNjdSBjb250ZW50IGluXG4gICAgICBmb2xkIGYgYWNjdSBuZXh0XG4gIGluXG4gIGZ1biBmIGFjY3UgcSAtPiBmb2xkIGYgYWNjdSBxLmZpcnN0XG5cbmxldCB0cmFuc2ZlciBxMSBxMiA9XG4gIGlmIHExLmxlbmd0aCA+IDAgdGhlblxuICAgIG1hdGNoIHEyLmxhc3Qgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICBxMi5sZW5ndGggPC0gcTEubGVuZ3RoO1xuICAgICAgcTIuZmlyc3QgPC0gcTEuZmlyc3Q7XG4gICAgICBxMi5sYXN0IDwtIHExLmxhc3Q7XG4gICAgICBjbGVhciBxMVxuICAgIHwgQ29ucyBsYXN0IC0+XG4gICAgICBxMi5sZW5ndGggPC0gcTIubGVuZ3RoICsgcTEubGVuZ3RoO1xuICAgICAgbGFzdC5uZXh0IDwtIHExLmZpcnN0O1xuICAgICAgcTIubGFzdCA8LSBxMS5sYXN0O1xuICAgICAgY2xlYXIgcTFcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBxID1cbiAgbGV0IHJlYyBhdXggYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgIHwgTmlsIC0+IFNlcS5OaWxcbiAgICB8IENvbnMgeyBjb250ZW50PXg7IG5leHQ7IH0gLT4gU2VxLkNvbnMgKHgsIGF1eCBuZXh0KVxuICBpblxuICBhdXggcS5maXJzdFxuXG5sZXQgYWRkX3NlcSBxIGkgPSBTZXEuaXRlciAoZnVuIHggLT4gcHVzaCB4IHEpIGlcblxubGV0IG9mX3NlcSBnID1cbiAgbGV0IHEgPSBjcmVhdGUoKSBpblxuICBhZGRfc2VxIHEgZztcbiAgcVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBEYW5pZWwgZGUgUmF1Z2xhdWRyZSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSAnYSBjZWxsIG9wdGlvblxuYW5kICdhIGNlbGwgPSB7IG11dGFibGUgY291bnQgOiBpbnQ7IG11dGFibGUgZGF0YSA6ICdhIGRhdGEgfVxuYW5kICdhIGRhdGEgPVxuICAgIFNlbXB0eVxuICB8IFNjb25zIG9mICdhICogJ2EgZGF0YVxuICB8IFNhcHAgb2YgJ2EgZGF0YSAqICdhIGRhdGFcbiAgfCBTbGF6eSBvZiAnYSBkYXRhIExhenkudFxuICB8IFNnZW4gb2YgJ2EgZ2VuXG4gIHwgU2J1ZmZpbyA6IGJ1ZmZpbyAtPiBjaGFyIGRhdGFcbmFuZCAnYSBnZW4gPSB7IG11dGFibGUgY3VyciA6ICdhIG9wdGlvbiBvcHRpb247IGZ1bmMgOiBpbnQgLT4gJ2Egb3B0aW9uIH1cbmFuZCBidWZmaW8gPVxuICB7IGljIDogaW5fY2hhbm5lbDsgYnVmZiA6IGJ5dGVzOyBtdXRhYmxlIGxlbiA6IGludDsgbXV0YWJsZSBpbmQgOiBpbnQgfVxuXG5leGNlcHRpb24gRmFpbHVyZVxuZXhjZXB0aW9uIEVycm9yIG9mIHN0cmluZ1xuXG5sZXQgY291bnQgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gMFxuICB8IFNvbWUgeyBjb3VudCB9IC0+IGNvdW50XG5sZXQgZGF0YSA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBTZW1wdHlcbiAgfCBTb21lIHsgZGF0YSB9IC0+IGRhdGFcblxubGV0IGZpbGxfYnVmZiBiID1cbiAgYi5sZW4gPC0gaW5wdXQgYi5pYyBiLmJ1ZmYgMCAoQnl0ZXMubGVuZ3RoIGIuYnVmZik7IGIuaW5kIDwtIDBcblxuXG5sZXQgcmVjIGdldF9kYXRhIDogdHlwZSB2LiBpbnQgLT4gdiBkYXRhIC0+IHYgZGF0YSA9IGZ1biBjb3VudCBkIC0+IG1hdGNoIGQgd2l0aFxuICgqIFJldHVybnMgZWl0aGVyIFNlbXB0eSBvciBTY29ucyhhLCBfKSBldmVuIHdoZW4gZCBpcyBhIGdlbmVyYXRvclxuICAgIG9yIGEgYnVmZmVyLiBJbiB0aG9zZSBjYXNlcywgdGhlIGl0ZW0gYSBpcyBzZWVuIGFzIGV4dHJhY3RlZCBmcm9tXG4gdGhlIGdlbmVyYXRvci9idWZmZXIuXG4gVGhlIGNvdW50IHBhcmFtZXRlciBpcyB1c2VkIGZvciBjYWxsaW5nIGBTZ2VuLWZ1bmN0aW9ucycuICAqKVxuICAgU2VtcHR5IHwgU2NvbnMgKF8sIF8pIC0+IGRcbiB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgY291bnQgZDEgd2l0aFxuICAgICAgIFNjb25zIChhLCBkMTEpIC0+IFNjb25zIChhLCBTYXBwIChkMTEsIGQyKSlcbiAgICAgfCBTZW1wdHkgLT4gZ2V0X2RhdGEgY291bnQgZDJcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNnZW4ge2N1cnIgPSBTb21lIE5vbmV9IC0+IFNlbXB0eVxuIHwgU2dlbiAoe2N1cnIgPSBTb21lKFNvbWUgYSl9IGFzIGcpIC0+XG4gICAgIGcuY3VyciA8LSBOb25lOyBTY29ucyhhLCBkKVxuIHwgU2dlbiBnIC0+XG4gICAgIGJlZ2luIG1hdGNoIGcuZnVuYyBjb3VudCB3aXRoXG4gICAgICAgTm9uZSAtPiBnLmN1cnIgPC0gU29tZShOb25lKTsgU2VtcHR5XG4gICAgIHwgU29tZSBhIC0+IFNjb25zKGEsIGQpXG4gICAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgZW5kXG4gfCBTYnVmZmlvIGIgLT5cbiAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgaWYgYi5sZW4gPT0gMCB0aGVuIFNlbXB0eSBlbHNlXG4gICAgICAgbGV0IHIgPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZCBpblxuICAgICAgICgqIFdhcm5pbmc6IGFueW9uZSB1c2luZyBnIHRoaW5rcyB0aGF0IGFuIGl0ZW0gaGFzIGJlZW4gcmVhZCAqKVxuICAgICAgIGIuaW5kIDwtIHN1Y2MgYi5pbmQ7IFNjb25zKHIsIGQpXG4gfCBTbGF6eSBmIC0+IGdldF9kYXRhIGNvdW50IChMYXp5LmZvcmNlIGYpXG5cblxubGV0IHJlYyBwZWVrX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB2IG9wdGlvbiA9IGZ1biBzIC0+XG4gKCogY29uc3VsdCB0aGUgZmlyc3QgaXRlbSBvZiBzICopXG4gbWF0Y2ggcy5kYXRhIHdpdGhcbiAgIFNlbXB0eSAtPiBOb25lXG4gfCBTY29ucyAoYSwgXykgLT4gU29tZSBhXG4gfCBTYXBwIChfLCBfKSAtPlxuICAgICBiZWdpbiBtYXRjaCBnZXRfZGF0YSBzLmNvdW50IHMuZGF0YSB3aXRoXG4gICAgICAgU2NvbnMoYSwgXykgYXMgZCAtPiBzLmRhdGEgPC0gZDsgU29tZSBhXG4gICAgIHwgU2VtcHR5IC0+IE5vbmVcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNsYXp5IGYgLT4gcy5kYXRhIDwtIChMYXp5LmZvcmNlIGYpOyBwZWVrX2RhdGEgc1xuIHwgU2dlbiB7Y3VyciA9IFNvbWUgYX0gLT4gYVxuIHwgU2dlbiBnIC0+IGxldCB4ID0gZy5mdW5jIHMuY291bnQgaW4gZy5jdXJyIDwtIFNvbWUgeDsgeFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBiZWdpbiBzLmRhdGEgPC0gU2VtcHR5OyBOb25lIGVuZFxuICAgICBlbHNlIFNvbWUgKEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmIGIuaW5kKVxuXG5cbmxldCBwZWVrID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IE5vbmVcbiAgfCBTb21lIHMgLT4gcGVla19kYXRhIHNcblxuXG5sZXQgcmVjIGp1bmtfZGF0YSA6IHR5cGUgdi4gdiBjZWxsIC0+IHVuaXQgPSBmdW4gcyAtPlxuICBtYXRjaCBzLmRhdGEgd2l0aFxuICAgIFNjb25zIChfLCBkKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBzLmRhdGEgPC0gZFxuICB8IFNnZW4gKHtjdXJyID0gU29tZSBffSBhcyBnKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBnLmN1cnIgPC0gTm9uZVxuICB8IFNidWZmaW8gYiAtPlxuICAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgIGlmIGIubGVuID09IDAgdGhlbiBzLmRhdGEgPC0gU2VtcHR5XG4gICAgICBlbHNlIChzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBiLmluZCA8LSBzdWNjIGIuaW5kKVxuICB8IF8gLT5cbiAgICAgIG1hdGNoIHBlZWtfZGF0YSBzIHdpdGhcbiAgICAgICAgTm9uZSAtPiAoKVxuICAgICAgfCBTb21lIF8gLT4ganVua19kYXRhIHNcblxuXG5sZXQganVuayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgZGF0YSAtPiBqdW5rX2RhdGEgZGF0YVxuXG5sZXQgcmVjIG5nZXRfZGF0YSBuIHMgPVxuICBpZiBuIDw9IDAgdGhlbiBbXSwgcy5kYXRhLCAwXG4gIGVsc2VcbiAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICBTb21lIGEgLT5cbiAgICAgICAganVua19kYXRhIHM7XG4gICAgICAgIGxldCAoYWwsIGQsIGspID0gbmdldF9kYXRhIChwcmVkIG4pIHMgaW4gYSA6OiBhbCwgU2NvbnMgKGEsIGQpLCBzdWNjIGtcbiAgICB8IE5vbmUgLT4gW10sIHMuZGF0YSwgMFxuXG5cbmxldCBucGVla19kYXRhIG4gcyA9XG4gIGxldCAoYWwsIGQsIGxlbikgPSBuZ2V0X2RhdGEgbiBzIGluXG4gIHMuY291bnQgPC0gKHMuY291bnQgLSBsZW4pO1xuICBzLmRhdGEgPC0gZDtcbiAgYWxcblxuXG5sZXQgbnBlZWsgbiA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBbXVxuICB8IFNvbWUgZCAtPiBucGVla19kYXRhIG4gZFxuXG5sZXQgbmV4dCBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIGEgLT4ganVuayBzOyBhXG4gIHwgTm9uZSAtPiByYWlzZSBGYWlsdXJlXG5cblxubGV0IGVtcHR5IHMgPVxuICBtYXRjaCBwZWVrIHMgd2l0aFxuICAgIFNvbWUgXyAtPiByYWlzZSBGYWlsdXJlXG4gIHwgTm9uZSAtPiAoKVxuXG5cbmxldCBpdGVyIGYgc3RybSA9XG4gIGxldCByZWMgZG9fcmVjICgpID1cbiAgICBtYXRjaCBwZWVrIHN0cm0gd2l0aFxuICAgICAgU29tZSBhIC0+IGp1bmsgc3RybTsgaWdub3JlKGYgYSk7IGRvX3JlYyAoKVxuICAgIHwgTm9uZSAtPiAoKVxuICBpblxuICBkb19yZWMgKClcblxuXG4oKiBTdHJlYW0gYnVpbGRpbmcgZnVuY3Rpb25zICopXG5cbmxldCBmcm9tIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTZ2VuIHtjdXJyID0gTm9uZTsgZnVuYyA9IGZ9fVxuXG5sZXQgb2ZfbGlzdCBsID1cbiAgU29tZSB7Y291bnQgPSAwOyBkYXRhID0gTGlzdC5mb2xkX3JpZ2h0IChmdW4geCBsIC0+IFNjb25zICh4LCBsKSkgbCBTZW1wdHl9XG5cblxubGV0IG9mX3N0cmluZyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICAoKiBXZSBjYW5ub3QgdXNlIHRoZSBpbmRleCBwYXNzZWQgYnkgdGhlIFtmcm9tXSBmdW5jdGlvbiBkaXJlY3RseVxuICAgICAgIGJlY2F1c2UgaXQgcmV0dXJucyB0aGUgY3VycmVudCBzdHJlYW0gY291bnQsIHdpdGggYWJzb2x1dGVseSBub1xuICAgICAgIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgc3RhcnQgZnJvbSAwLiBGb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2VcbiAgICAgICBvZiBbU3RyZWFtLmljb25zICdjJyAoU3RyZWFtLmZyb21fc3RyaW5nIFwiYWJcIildLCB0aGUgZmlyc3RcbiAgICAgICBhY2Nlc3MgdG8gdGhlIHN0cmluZyB3aWxsIGJlIG1hZGUgd2l0aCBjb3VudCBbMV0gYWxyZWFkeS5cbiAgICAqKVxuICAgIGxldCBjID0gIWNvdW50IGluXG4gICAgaWYgYyA8IFN0cmluZy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgcy5bY10pXG4gICAgZWxzZSBOb25lKVxuXG5cbmxldCBvZl9ieXRlcyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBCeXRlcy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgKEJ5dGVzLmdldCBzIGMpKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfY2hhbm5lbCBpYyA9XG4gIFNvbWUge2NvdW50ID0gMDtcbiAgICAgICAgZGF0YSA9IFNidWZmaW8ge2ljID0gaWM7IGJ1ZmYgPSBCeXRlcy5jcmVhdGUgNDA5NjsgbGVuID0gMDsgaW5kID0gMH19XG5cblxuKCogU3RyZWFtIGV4cHJlc3Npb25zIGJ1aWxkZXJzICopXG5cbmxldCBpYXBwIGkgcyA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNhcHAgKGRhdGEgaSwgZGF0YSBzKX1cbmxldCBpY29ucyBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTY29ucyAoaSwgZGF0YSBzKX1cbmxldCBpc2luZyBpID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIFNlbXB0eSl9XG5cbmxldCBsYXBwIGYgcyA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KFNhcHAgKGRhdGEgKGYgKCkpLCBkYXRhIHMpKSl9XG5cbmxldCBsY29ucyBmIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgZGF0YSBzKSkpfVxubGV0IGxzaW5nIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgU2VtcHR5KSkpfVxuXG5sZXQgc2VtcHR5ID0gTm9uZVxubGV0IHNsYXp5IGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShkYXRhIChmICgpKSkpfVxuXG4oKiBGb3IgZGVidWdnaW5nIHVzZSAqKVxuXG5sZXQgcmVjIGR1bXAgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgdCAtPiB1bml0ID0gZnVuIGYgcyAtPlxuICBwcmludF9zdHJpbmcgXCJ7Y291bnQgPSBcIjtcbiAgcHJpbnRfaW50IChjb3VudCBzKTtcbiAgcHJpbnRfc3RyaW5nIFwiOyBkYXRhID0gXCI7XG4gIGR1bXBfZGF0YSBmIChkYXRhIHMpO1xuICBwcmludF9zdHJpbmcgXCJ9XCI7XG4gIHByaW50X25ld2xpbmUgKClcbmFuZCBkdW1wX2RhdGEgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgZGF0YSAtPiB1bml0ID0gZnVuIGYgLT5cbiAgZnVuY3Rpb25cbiAgICBTZW1wdHkgLT4gcHJpbnRfc3RyaW5nIFwiU2VtcHR5XCJcbiAgfCBTY29ucyAoYSwgZCkgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNjb25zIChcIjtcbiAgICAgIGYgYTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiKVwiXG4gIHwgU2FwcCAoZDEsIGQyKSAtPlxuICAgICAgcHJpbnRfc3RyaW5nIFwiU2FwcCAoXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMjtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNsYXp5IF8gLT4gcHJpbnRfc3RyaW5nIFwiU2xhenlcIlxuICB8IFNnZW4gXyAtPiBwcmludF9zdHJpbmcgXCJTZ2VuXCJcbiAgfCBTYnVmZmlvIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2J1ZmZpb1wiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICBQaWVycmUgV2VpcyBhbmQgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk5IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEV4dGVuc2libGUgYnVmZmVycyAqKVxuXG50eXBlIHQgPVxuIHttdXRhYmxlIGJ1ZmZlciA6IGJ5dGVzO1xuICBtdXRhYmxlIHBvc2l0aW9uIDogaW50O1xuICBtdXRhYmxlIGxlbmd0aCA6IGludDtcbiAgaW5pdGlhbF9idWZmZXIgOiBieXRlc31cbigqIEludmFyaWFudHM6IGFsbCBwYXJ0cyBvZiB0aGUgY29kZSBwcmVzZXJ2ZSB0aGUgaW52YXJpYW50cyB0aGF0OlxuICAgLSBbMCA8PSBiLnBvc2l0aW9uIDw9IGIubGVuZ3RoXVxuICAgLSBbYi5sZW5ndGggPSBCeXRlcy5sZW5ndGggYi5idWZmZXJdXG5cbiAgIE5vdGUgaW4gcGFydGljdWxhciB0aGF0IFtiLnBvc2l0aW9uID0gYi5sZW5ndGhdIGlzIGxlZ2FsLFxuICAgaXQgbWVhbnMgdGhhdCB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIHdpbGwgaGF2ZSB0byBiZSBleHRlbmRlZFxuICAgYmVmb3JlIGFueSBmdXJ0aGVyIGFkZGl0aW9uLiAqKVxuXG5sZXQgY3JlYXRlIG4gPVxuIGxldCBuID0gaWYgbiA8IDEgdGhlbiAxIGVsc2UgbiBpblxuIGxldCBuID0gaWYgbiA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBlbHNlIG4gaW5cbiBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSBuIGluXG4ge2J1ZmZlciA9IHM7IHBvc2l0aW9uID0gMDsgbGVuZ3RoID0gbjsgaW5pdGlhbF9idWZmZXIgPSBzfVxuXG5sZXQgY29udGVudHMgYiA9IEJ5dGVzLnN1Yl9zdHJpbmcgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5sZXQgdG9fYnl0ZXMgYiA9IEJ5dGVzLnN1YiBiLmJ1ZmZlciAwIGIucG9zaXRpb25cblxubGV0IHN1YiBiIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYi5wb3NpdGlvbiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLnN1YlwiXG4gIGVsc2UgQnl0ZXMuc3ViX3N0cmluZyBiLmJ1ZmZlciBvZnMgbGVuXG5cblxubGV0IGJsaXQgc3JjIHNyY29mZiBkc3QgZHN0b2ZmIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgc3Jjb2ZmIDwgMCB8fCBzcmNvZmYgPiBzcmMucG9zaXRpb24gLSBsZW5cbiAgICAgICAgICAgICB8fCBkc3RvZmYgPCAwIHx8IGRzdG9mZiA+IChCeXRlcy5sZW5ndGggZHN0KSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLmJsaXRcIlxuICBlbHNlXG4gICAgQnl0ZXMudW5zYWZlX2JsaXQgc3JjLmJ1ZmZlciBzcmNvZmYgZHN0IGRzdG9mZiBsZW5cblxuXG5sZXQgbnRoIGIgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPj0gYi5wb3NpdGlvbiB0aGVuXG4gICBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5udGhcIlxuICBlbHNlIEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgb2ZzXG5cblxubGV0IGxlbmd0aCBiID0gYi5wb3NpdGlvblxuXG5sZXQgY2xlYXIgYiA9IGIucG9zaXRpb24gPC0gMFxuXG5sZXQgcmVzZXQgYiA9XG4gIGIucG9zaXRpb24gPC0gMDtcbiAgYi5idWZmZXIgPC0gYi5pbml0aWFsX2J1ZmZlcjtcbiAgYi5sZW5ndGggPC0gQnl0ZXMubGVuZ3RoIGIuYnVmZmVyXG5cbigqIFtyZXNpemUgYiBtb3JlXSBlbnN1cmVzIHRoYXQgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBob2xkc1xuICAgYnkgZHluYW1pY2FsbHkgZXh0ZW5kaW5nIFtiLmJ1ZmZlcl0gaWYgbmVjZXNzYXJ5IC0tIGFuZCB0aHVzXG4gICBpbmNyZWFzaW5nIFtiLmxlbmd0aF0uXG5cbiAgIEluIHBhcnRpY3VsYXIsIGFmdGVyIFtyZXNpemUgYiBtb3JlXSBpcyBjYWxsZWQsIGEgZGlyZWN0IGFjY2VzcyBvZlxuICAgc2l6ZSBbbW9yZV0gYXQgW2IucG9zaXRpb25dIHdpbGwgYWx3YXlzIGJlIGluLWJvdW5kcywgc28gdGhhdFxuICAgKHVuc2FmZV97Z2V0LHNldH0pIG1heSBiZSB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbiopXG5sZXQgcmVzaXplIGIgbW9yZSA9XG4gIGxldCBvbGRfcG9zID0gYi5wb3NpdGlvbiBpblxuICBsZXQgb2xkX2xlbiA9IGIubGVuZ3RoIGluXG4gIGxldCBuZXdfbGVuID0gcmVmIG9sZF9sZW4gaW5cbiAgd2hpbGUgb2xkX3BvcyArIG1vcmUgPiAhbmV3X2xlbiBkbyBuZXdfbGVuIDo9IDIgKiAhbmV3X2xlbiBkb25lO1xuICBpZiAhbmV3X2xlbiA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuIGJlZ2luXG4gICAgaWYgb2xkX3BvcyArIG1vcmUgPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgdGhlbiBuZXdfbGVuIDo9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgIGVsc2UgZmFpbHdpdGggXCJCdWZmZXIuYWRkOiBjYW5ub3QgZ3JvdyBidWZmZXJcIlxuICBlbmQ7XG4gIGxldCBuZXdfYnVmZmVyID0gQnl0ZXMuY3JlYXRlICFuZXdfbGVuIGluXG4gICgqIFBSIzYxNDg6IGxldCdzIGtlZXAgdXNpbmcgW2JsaXRdIHJhdGhlciB0aGFuIFt1bnNhZmVfYmxpdF0gaW5cbiAgICAgdGhpcyB0cmlja3kgZnVuY3Rpb24gdGhhdCBpcyBzbG93IGFueXdheS4gKilcbiAgQnl0ZXMuYmxpdCBiLmJ1ZmZlciAwIG5ld19idWZmZXIgMCBiLnBvc2l0aW9uO1xuICBiLmJ1ZmZlciA8LSBuZXdfYnVmZmVyO1xuICBiLmxlbmd0aCA8LSAhbmV3X2xlbjtcbiAgYXNzZXJ0IChiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aCk7XG4gIGFzc2VydCAob2xkX3BvcyArIG1vcmUgPD0gYi5sZW5ndGgpO1xuICAoKVxuICAoKiBOb3RlOiB0aGVyZSBhcmUgdmFyaW91cyBzaXR1YXRpb25zIChwcmVlbXB0aXZlIHRocmVhZHMsIHNpZ25hbHMgYW5kXG4gICAgIGdjIGZpbmFsaXplcnMpIHdoZXJlIE9DYW1sIGNvZGUgbWF5IGJlIHJ1biBhc3luY2hyb25vdXNseTsgaW5cbiAgICAgcGFydGljdWxhciwgdGhlcmUgbWF5IGJlIGEgcmFjZSB3aXRoIGFub3RoZXIgdXNlciBvZiBbYl0sIGNoYW5naW5nXG4gICAgIGl0cyBtdXRhYmxlIGZpZWxkcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBbcmVzaXplXSBjYWxsLiBUaGUgQnVmZmVyXG4gICAgIG1vZHVsZSBkb2VzIG5vdCBwcm92aWRlIGFueSBjb3JyZWN0bmVzcyBndWFyYW50ZWUgaWYgdGhhdCBoYXBwZW5zLFxuICAgICBidXQgd2UgbXVzdCBzdGlsbCBlbnN1cmUgdGhhdCB0aGUgZGF0YXN0cnVjdHVyZSBpbnZhcmlhbnRzIGhvbGQgZm9yXG4gICAgIG1lbW9yeS1zYWZldHkgLS0gYXMgd2UgcGxhbiB0byB1c2UgW3Vuc2FmZV97Z2V0LHNldH1dLlxuXG4gICAgIFRoZXJlIGFyZSB0d28gcG90ZW50aWFsIGFsbG9jYXRpb24gcG9pbnRzIGluIHRoaXMgZnVuY3Rpb24sXG4gICAgIFtyZWZdIGFuZCBbQnl0ZXMuY3JlYXRlXSwgYnV0IGFsbCByZWFkcyBhbmQgd3JpdGVzIHRvIHRoZSBmaWVsZHNcbiAgICAgb2YgW2JdIGhhcHBlbiBiZWZvcmUgYm90aCBvZiB0aGVtIG9yIGFmdGVyIGJvdGggb2YgdGhlbS5cblxuICAgICBXZSB0aGVyZWZvcmUgYXNzdW1lIHRoYXQgW2IucG9zaXRpb25dIG1heSBjaGFuZ2UgYXQgdGhlc2UgYWxsb2NhdGlvbnMsXG4gICAgIGFuZCBjaGVjayB0aGF0IHRoZSBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIHBvc3Rjb25kaXRpb25cbiAgICAgaG9sZHMgZm9yIGJvdGggdmFsdWVzIG9mIFtiLnBvc2l0aW9uXSwgYmVmb3JlIG9yIGFmdGVyIHRoZSBmdW5jdGlvblxuICAgICBpcyBjYWxsZWQuIE1vcmUgcHJlY2lzZWx5LCB0aGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBob2xkIGlmIHRoZVxuICAgICBmdW5jdGlvbiByZXR1cm5zIGNvcnJlY3RseSwgaW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGJ1ZmZlciBpbnZhcmlhbnRzOlxuICAgICAtIFtvbGQoYi5wb3NpdGlvbikgKyBtb3JlIDw9IG5ldyhiLmxlbmd0aCldXG4gICAgIC0gW25ldyhiLnBvc2l0aW9uKSArIG1vcmUgPD0gbmV3KGIubGVuZ3RoKV1cbiAgICAgLSBbb2xkKGIubGVuZ3RoKSA8PSBuZXcoYi5sZW5ndGgpXVxuXG4gICAgIE5vdGU6IFtiLnBvc2l0aW9uICsgbW9yZSA8PSBvbGQoYi5sZW5ndGgpXSBkb2VzICpub3QqXG4gICAgIGhvbGQgaW4gZ2VuZXJhbCwgYXMgaXQgaXMgcHJlY2lzZWx5IHRoZSBjYXNlIHdoZXJlIHlvdSBuZWVkXG4gICAgIHRvIGNhbGwgW3Jlc2l6ZV0gdG8gaW5jcmVhc2UgW2IubGVuZ3RoXS5cblxuICAgICBOb3RlOiBbYXNzZXJ0XSBhYm92ZSBkb2VzIG5vdCBtZWFuIHRoYXQgd2Uga25vdyB0aGUgY29uZGl0aW9uc1xuICAgICBhbHdheXMgaG9sZCwgYnV0IHRoYXQgdGhlIGZ1bmN0aW9uIG1heSByZXR1cm4gY29ycmVjdGx5XG4gICAgIG9ubHkgaWYgdGhleSBob2xkLlxuXG4gICAgIE5vdGU6IHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgZG9lcyBub3QgbmVlZFxuICAgICB0byBiZSBjaGVja2VkIHdpdGggdGhpcyBsZXZlbCBvZiBzY3J1dGlueSwgZ2l2ZW4gdGhhdCB0aGV5XG4gICAgIHJlYWQvd3JpdGUgdGhlIGJ1ZmZlciBpbW1lZGlhdGVseSBhZnRlciBjaGVja2luZyB0aGF0XG4gICAgIFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gaG9sZCBvciBjYWxsaW5nIFtyZXNpemVdLlxuICAqKVxuXG5sZXQgYWRkX2NoYXIgYiBjID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMTtcbiAgQnl0ZXMudW5zYWZlX3NldCBiLmJ1ZmZlciBwb3MgYztcbiAgYi5wb3NpdGlvbiA8LSBwb3MgKyAxXG5cbmxldCB1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXggPSA0XG5sZXQgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCA9IDRcblxubGV0IHJlYyBhZGRfdXRmXzhfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4O1xuICBsZXQgbiA9IEJ5dGVzLnNldF91dGZfOF91Y2hhciBiLmJ1ZmZlciBwb3MgdSBpblxuICBpZiBuID0gMFxuICB0aGVuIChyZXNpemUgYiB1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfOF91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IHJlYyBhZGRfdXRmXzE2YmVfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzE2YmVfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl8xNmJlX3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgcmVjIGFkZF91dGZfMTZsZV91Y2hhciBiIHUgPVxuICBsZXQgcG9zID0gYi5wb3NpdGlvbiBpblxuICBpZiBwb3MgPj0gYi5sZW5ndGggdGhlbiByZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4O1xuICBsZXQgbiA9IEJ5dGVzLnNldF91dGZfMTZsZV91Y2hhciBiLmJ1ZmZlciBwb3MgdSBpblxuICBpZiBuID0gMFxuICB0aGVuIChyZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzE2bGVfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCBhZGRfc3Vic3RyaW5nIGIgcyBvZmZzZXQgbGVuID1cbiAgaWYgb2Zmc2V0IDwgMCB8fCBsZW4gPCAwIHx8IG9mZnNldCA+IFN0cmluZy5sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLmFkZF9zdWJzdHJpbmcvYWRkX3N1YmJ5dGVzXCI7XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgbGVuIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgbGVuO1xuICBCeXRlcy51bnNhZmVfYmxpdF9zdHJpbmcgcyBvZmZzZXQgYi5idWZmZXIgYi5wb3NpdGlvbiBsZW47XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfc3ViYnl0ZXMgYiBzIG9mZnNldCBsZW4gPVxuICBhZGRfc3Vic3RyaW5nIGIgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcykgb2Zmc2V0IGxlblxuXG5sZXQgYWRkX3N0cmluZyBiIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgbGVuIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgbGVuO1xuICBCeXRlcy51bnNhZmVfYmxpdF9zdHJpbmcgcyAwIGIuYnVmZmVyIGIucG9zaXRpb24gbGVuO1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2J5dGVzIGIgcyA9IGFkZF9zdHJpbmcgYiAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBzKVxuXG5sZXQgYWRkX2J1ZmZlciBiIGJzID1cbiAgYWRkX3N1YmJ5dGVzIGIgYnMuYnVmZmVyIDAgYnMucG9zaXRpb25cblxuKCogdGhpcyAocHJpdmF0ZSkgZnVuY3Rpb24gY291bGQgbW92ZSBpbnRvIHRoZSBzdGFuZGFyZCBsaWJyYXJ5ICopXG5sZXQgcmVhbGx5X2lucHV0X3VwX3RvIGljIGJ1ZiBvZnMgbGVuID1cbiAgbGV0IHJlYyBsb29wIGljIGJ1ZiB+YWxyZWFkeV9yZWFkIH5vZnMgfnRvX3JlYWQgPVxuICAgIGlmIHRvX3JlYWQgPSAwIHRoZW4gYWxyZWFkeV9yZWFkXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBpbnB1dCBpYyBidWYgb2ZzIHRvX3JlYWQgaW5cbiAgICAgIGlmIHIgPSAwIHRoZW4gYWxyZWFkeV9yZWFkXG4gICAgICBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBhbHJlYWR5X3JlYWQgPSBhbHJlYWR5X3JlYWQgKyByIGluXG4gICAgICAgIGxldCBvZnMgPSBvZnMgKyByIGluXG4gICAgICAgIGxldCB0b19yZWFkID0gdG9fcmVhZCAtIHIgaW5cbiAgICAgICAgbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZCB+b2ZzIH50b19yZWFkXG4gICAgICBlbmRcbiAgICBlbmRcbiAgaW4gbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZDowIH5vZnMgfnRvX3JlYWQ6bGVuXG5cblxubGV0IHVuc2FmZV9hZGRfY2hhbm5lbF91cF90byBiIGljIGxlbiA9XG4gIGlmIGIucG9zaXRpb24gKyBsZW4gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgbGV0IG4gPSByZWFsbHlfaW5wdXRfdXBfdG8gaWMgYi5idWZmZXIgYi5wb3NpdGlvbiBsZW4gaW5cbiAgKCogVGhlIGFzc2VydGlvbiBiZWxvdyBtYXkgZmFpbCBpbiB3ZWlyZCBzY2VuYXJpbyB3aGVyZVxuICAgICB0aHJlYWRlZC9maW5hbGl6ZXIgY29kZSwgcnVuIGFzeW5jaHJvbm91c2x5IGR1cmluZyB0aGVcbiAgICAgW3JlYWxseV9pbnB1dF91cF90b10gY2FsbCwgcmFjZXMgb24gdGhlIGJ1ZmZlcjsgd2UgZG9uJ3QgZW5zdXJlXG4gICAgIGNvcnJlY3RuZXNzIGluIHRoaXMgY2FzZSwgYnV0IG5lZWQgdG8gcHJlc2VydmUgdGhlIGludmFyaWFudHMgZm9yXG4gICAgIG1lbW9yeS1zYWZldHkgKHNlZSBkaXNjdXNzaW9uIG9mIFtyZXNpemVdKS4gKilcbiAgYXNzZXJ0IChiLnBvc2l0aW9uICsgbiA8PSBiLmxlbmd0aCk7XG4gIGIucG9zaXRpb24gPC0gYi5wb3NpdGlvbiArIG47XG4gIG5cblxubGV0IGFkZF9jaGFubmVsIGIgaWMgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBsZW4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiAgICgqIFBSIzUwMDQgKilcbiAgICBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5hZGRfY2hhbm5lbFwiO1xuICBsZXQgbiA9IHVuc2FmZV9hZGRfY2hhbm5lbF91cF90byBiIGljIGxlbiBpblxuICAoKiBJdCBpcyBpbnRlbnRpb25hbCB0aGF0IGEgY29uc3VtZXIgY2F0Y2hpbmcgRW5kX29mX2ZpbGVcbiAgICAgd2lsbCBzZWUgdGhlIGRhdGEgd3JpdHRlbiAoc2VlICM2NzE5LCAjNzEzNikuICopXG4gIGlmIG4gPCBsZW4gdGhlbiByYWlzZSBFbmRfb2ZfZmlsZTtcbiAgKClcblxubGV0IG91dHB1dF9idWZmZXIgb2MgYiA9XG4gIG91dHB1dCBvYyBiLmJ1ZmZlciAwIGIucG9zaXRpb25cblxubGV0IGNsb3NpbmcgPSBmdW5jdGlvblxuICB8ICcoJyAtPiAnKSdcbiAgfCAneycgLT4gJ30nXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuKCogb3BlbmluZyBhbmQgY2xvc2luZzogb3BlbiBhbmQgY2xvc2UgY2hhcmFjdGVycywgdHlwaWNhbGx5ICggYW5kIClcbiAgIGs6IGJhbGFuY2Ugb2Ygb3BlbmluZyBhbmQgY2xvc2luZyBjaGFyc1xuICAgczogdGhlIHN0cmluZyB3aGVyZSB3ZSBhcmUgc2VhcmNoaW5nXG4gICBzdGFydDogdGhlIGluZGV4IHdoZXJlIHdlIHN0YXJ0IHRoZSBzZWFyY2guICopXG5sZXQgYWR2YW5jZV90b19jbG9zaW5nIG9wZW5pbmcgY2xvc2luZyBrIHMgc3RhcnQgPVxuICBsZXQgcmVjIGFkdmFuY2UgayBpIGxpbSA9XG4gICAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICAgIGlmIHMuW2ldID0gb3BlbmluZyB0aGVuIGFkdmFuY2UgKGsgKyAxKSAoaSArIDEpIGxpbSBlbHNlXG4gICAgaWYgcy5baV0gPSBjbG9zaW5nIHRoZW5cbiAgICAgIGlmIGsgPSAwIHRoZW4gaSBlbHNlIGFkdmFuY2UgKGsgLSAxKSAoaSArIDEpIGxpbVxuICAgIGVsc2UgYWR2YW5jZSBrIChpICsgMSkgbGltIGluXG4gIGFkdmFuY2UgayBzdGFydCAoU3RyaW5nLmxlbmd0aCBzKVxuXG5sZXQgYWR2YW5jZV90b19ub25fYWxwaGEgcyBzdGFydCA9XG4gIGxldCByZWMgYWR2YW5jZSBpIGxpbSA9XG4gICAgaWYgaSA+PSBsaW0gdGhlbiBsaW0gZWxzZVxuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICB8ICdhJyAuLiAneicgfCAnQScgLi4gJ1onIHwgJzAnIC4uICc5JyB8ICdfJyAtPiBhZHZhbmNlIChpICsgMSkgbGltXG4gICAgfCBfIC0+IGkgaW5cbiAgYWR2YW5jZSBzdGFydCAoU3RyaW5nLmxlbmd0aCBzKVxuXG4oKiBXZSBhcmUganVzdCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGlkZW50IGluIHMsIHN0YXJ0aW5nIGF0IHN0YXJ0LiAqKVxubGV0IGZpbmRfaWRlbnQgcyBzdGFydCBsaW0gPVxuICBpZiBzdGFydCA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBtYXRjaCBzLltzdGFydF0gd2l0aFxuICAoKiBQYXJlbnRoZXNpemVkIGlkZW50ID8gKilcbiAgfCAnKCcgfCAneycgYXMgYyAtPlxuICAgICBsZXQgbmV3X3N0YXJ0ID0gc3RhcnQgKyAxIGluXG4gICAgIGxldCBzdG9wID0gYWR2YW5jZV90b19jbG9zaW5nIGMgKGNsb3NpbmcgYykgMCBzIG5ld19zdGFydCBpblxuICAgICBTdHJpbmcuc3ViIHMgbmV3X3N0YXJ0IChzdG9wIC0gc3RhcnQgLSAxKSwgc3RvcCArIDFcbiAgKCogUmVndWxhciBpZGVudCAqKVxuICB8IF8gLT5cbiAgICAgbGV0IHN0b3AgPSBhZHZhbmNlX3RvX25vbl9hbHBoYSBzIChzdGFydCArIDEpIGluXG4gICAgIFN0cmluZy5zdWIgcyBzdGFydCAoc3RvcCAtIHN0YXJ0KSwgc3RvcFxuXG4oKiBTdWJzdGl0dXRlICRpZGVudCwgJChpZGVudCksIG9yICR7aWRlbnR9IGluIHMsXG4gICAgYWNjb3JkaW5nIHRvIHRoZSBmdW5jdGlvbiBtYXBwaW5nIGYuICopXG5sZXQgYWRkX3N1YnN0aXR1dGUgYiBmIHMgPVxuICBsZXQgbGltID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgc3Vic3QgcHJldmlvdXMgaSA9XG4gICAgaWYgaSA8IGxpbSB0aGVuIGJlZ2luXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICB8ICckJyBhcyBjdXJyZW50IHdoZW4gcHJldmlvdXMgPSAnXFxcXCcgLT5cbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0ICcgJyAoaSArIDEpXG4gICAgICB8ICckJyAtPlxuICAgICAgICAgbGV0IGogPSBpICsgMSBpblxuICAgICAgICAgbGV0IGlkZW50LCBuZXh0X2kgPSBmaW5kX2lkZW50IHMgaiBsaW0gaW5cbiAgICAgICAgIGFkZF9zdHJpbmcgYiAoZiBpZGVudCk7XG4gICAgICAgICBzdWJzdCAnICcgbmV4dF9pXG4gICAgICB8IGN1cnJlbnQgd2hlbiBwcmV2aW91cyA9PSAnXFxcXCcgLT5cbiAgICAgICAgIGFkZF9jaGFyIGIgJ1xcXFwnO1xuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgJyAnIChpICsgMSlcbiAgICAgIHwgJ1xcXFwnIGFzIGN1cnJlbnQgLT5cbiAgICAgICAgIHN1YnN0IGN1cnJlbnQgKGkgKyAxKVxuICAgICAgfCBjdXJyZW50IC0+XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCBjdXJyZW50IChpICsgMSlcbiAgICBlbmQgZWxzZVxuICAgIGlmIHByZXZpb3VzID0gJ1xcXFwnIHRoZW4gYWRkX2NoYXIgYiBwcmV2aW91cyBpblxuICBzdWJzdCAnICcgMFxuXG5sZXQgdHJ1bmNhdGUgYiBsZW4gPVxuICAgIGlmIGxlbiA8IDAgfHwgbGVuID4gbGVuZ3RoIGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJCdWZmZXIudHJ1bmNhdGVcIlxuICAgIGVsc2VcbiAgICAgIGIucG9zaXRpb24gPC0gbGVuXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgYiA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICgqIE5vdGUgdGhhdCBiLnBvc2l0aW9uIGlzIG5vdCBhIGNvbnN0YW50IGFuZCBjYW5ub3QgYmUgbGlmdGVkIG91dCBvZiBhdXggKilcbiAgICBpZiBpID49IGIucG9zaXRpb24gdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIGIgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAoKiBOb3RlIHRoYXQgYi5wb3NpdGlvbiBpcyBub3QgYSBjb25zdGFudCBhbmQgY2Fubm90IGJlIGxpZnRlZCBvdXQgb2YgYXV4ICopXG4gICAgaWYgaSA+PSBiLnBvc2l0aW9uIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IGFkZF9zZXEgYiBzZXEgPSBTZXEuaXRlciAoYWRkX2NoYXIgYikgc2VxXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBiID0gY3JlYXRlIDMyIGluXG4gIGFkZF9zZXEgYiBpO1xuICBiXG5cbigqKiB7NiBCaW5hcnkgZW5jb2Rpbmcgb2YgaW50ZWdlcnN9ICopXG5cbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldF9pbnQxNiA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZ1XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50MzIgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MzJ1XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50NjQgOiBieXRlcyAtPiBpbnQgLT4gaW50NjQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0NjR1XCJcbmV4dGVybmFsIHN3YXAxNiA6IGludCAtPiBpbnQgPSBcIiVic3dhcDE2XCJcbmV4dGVybmFsIHN3YXAzMiA6IGludDMyIC0+IGludDMyID0gXCIlYnN3YXBfaW50MzJcIlxuZXh0ZXJuYWwgc3dhcDY0IDogaW50NjQgLT4gaW50NjQgPSBcIiVic3dhcF9pbnQ2NFwiXG5cblxubGV0IGFkZF9pbnQ4IGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgMSBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDE7XG4gIHVuc2FmZV9zZXRfaW50OCBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MTZfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyAyIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMjtcbiAgdW5zYWZlX3NldF9pbnQxNiBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MzJfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyA0IGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgNDtcbiAgdW5zYWZlX3NldF9pbnQzMiBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50NjRfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyA4IGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgODtcbiAgdW5zYWZlX3NldF9pbnQ2NCBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MTZfbGUgYiB4ID1cbiAgYWRkX2ludDE2X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDE2IHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDE2X2JlIGIgeCA9XG4gIGFkZF9pbnQxNl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwMTYgeClcblxubGV0IGFkZF9pbnQzMl9sZSBiIHggPVxuICBhZGRfaW50MzJfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMzIgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50MzJfYmUgYiB4ID1cbiAgYWRkX2ludDMyX25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXAzMiB4KVxuXG5sZXQgYWRkX2ludDY0X2xlIGIgeCA9XG4gIGFkZF9pbnQ2NF9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQ2NF9iZSBiIHggPVxuICBhZGRfaW50NjRfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDY0IHgpXG5cbmxldCBhZGRfdWludDggPSBhZGRfaW50OFxubGV0IGFkZF91aW50MTZfbmUgPSBhZGRfaW50MTZfbmVcbmxldCBhZGRfdWludDE2X2xlID0gYWRkX2ludDE2X2xlXG5sZXQgYWRkX3VpbnQxNl9iZSA9IGFkZF9pbnQxNl9iZVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBYYXZpZXIgTGVyb3kgYW5kIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxubGV0IGtmcHJpbnRmIGsgbyAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmIChmdW4gYWNjIC0+IG91dHB1dF9hY2MgbyBhY2M7IGsgbykgRW5kX29mX2FjYyBmbXRcbmxldCBrYnByaW50ZiBrIGIgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZiAoZnVuIGFjYyAtPiBidWZwdXRfYWNjIGIgYWNjOyBrIGIpIEVuZF9vZl9hY2MgZm10XG5sZXQgaWtmcHJpbnRmIGsgb2MgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgayBvYyBmbXRcbmxldCBpa2JwcmludGYgPSBpa2ZwcmludGZcblxubGV0IGZwcmludGYgb2MgZm10ID0ga2ZwcmludGYgaWdub3JlIG9jIGZtdFxubGV0IGJwcmludGYgYiBmbXQgPSBrYnByaW50ZiBpZ25vcmUgYiBmbXRcbmxldCBpZnByaW50ZiBvYyBmbXQgPSBpa2ZwcmludGYgaWdub3JlIG9jIGZtdFxubGV0IGlicHJpbnRmIGIgZm10ID0gaWticHJpbnRmIGlnbm9yZSBiIGZtdFxubGV0IHByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZG91dCBmbXRcbmxldCBlcHJpbnRmIGZtdCA9IGZwcmludGYgc3RkZXJyIGZtdFxuXG5sZXQga3NwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBrJyBhY2MgPVxuICAgIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDY0IGluXG4gICAgc3RycHV0X2FjYyBidWYgYWNjO1xuICAgIGsgKEJ1ZmZlci5jb250ZW50cyBidWYpIGluXG4gIG1ha2VfcHJpbnRmIGsnIEVuZF9vZl9hY2MgZm10XG5cbmxldCBzcHJpbnRmIGZtdCA9IGtzcHJpbnRmIChmdW4gcyAtPiBzKSBmbXRcblxubGV0IGtwcmludGYgPSBrc3ByaW50ZlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIGtleSA9IHN0cmluZ1xudHlwZSBkb2MgPSBzdHJpbmdcbnR5cGUgdXNhZ2VfbXNnID0gc3RyaW5nXG50eXBlIGFub25fZnVuID0gKHN0cmluZyAtPiB1bml0KVxuXG50eXBlIHNwZWMgPVxuICB8IFVuaXQgb2YgKHVuaXQgLT4gdW5pdCkgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdW5pdCBhcmd1bWVudCAqKVxuICB8IEJvb2wgb2YgKGJvb2wgLT4gdW5pdCkgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBib29sIGFyZ3VtZW50ICopXG4gIHwgU2V0IG9mIGJvb2wgcmVmICAgICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdHJ1ZSAqKVxuICB8IENsZWFyIG9mIGJvb2wgcmVmICAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIGZhbHNlICopXG4gIHwgU3RyaW5nIG9mIChzdHJpbmcgLT4gdW5pdCkgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIHN0cmluZyBhcmd1bWVudCAqKVxuICB8IFNldF9zdHJpbmcgb2Ygc3RyaW5nIHJlZiAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBzdHJpbmcgYXJndW1lbnQgKilcbiAgfCBJbnQgb2YgKGludCAtPiB1bml0KSAgICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGFuIGludCBhcmd1bWVudCAqKVxuICB8IFNldF9pbnQgb2YgaW50IHJlZiAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBpbnQgYXJndW1lbnQgKilcbiAgfCBGbG9hdCBvZiAoZmxvYXQgLT4gdW5pdCkgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgZmxvYXQgYXJndW1lbnQgKilcbiAgfCBTZXRfZmxvYXQgb2YgZmxvYXQgcmVmICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgZmxvYXQgYXJndW1lbnQgKilcbiAgfCBUdXBsZSBvZiBzcGVjIGxpc3QgICAgICAgICAoKiBUYWtlIHNldmVyYWwgYXJndW1lbnRzIGFjY29yZGluZyB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjIGxpc3QgKilcbiAgfCBTeW1ib2wgb2Ygc3RyaW5nIGxpc3QgKiAoc3RyaW5nIC0+IHVuaXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVGFrZSBvbmUgb2YgdGhlIHN5bWJvbHMgYXMgYXJndW1lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgc3ltYm9sLiAqKVxuICB8IFJlc3Qgb2YgKHN0cmluZyAtPiB1bml0KSAgICgqIFN0b3AgaW50ZXJwcmV0aW5nIGtleXdvcmRzIGFuZCBjYWxsIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggZWFjaCByZW1haW5pbmcgYXJndW1lbnQgKilcbiAgfCBSZXN0X2FsbCBvZiAoc3RyaW5nIGxpc3QgLT4gdW5pdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBTdG9wIGludGVycHJldGluZyBrZXl3b3JkcyBhbmQgY2FsbCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB3aXRoIGFsbCByZW1haW5pbmcgYXJndW1lbnRzLiAqKVxuICB8IEV4cGFuZCBvZiAoc3RyaW5nIC0+IHN0cmluZyBhcnJheSkgKCogSWYgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgdG8gcHJvY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIG9mIHRoZSBmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW1wiLWZvb1wiOyBcImFyZ1wiXSBAIHJlc3RdIHdoZXJlIFwiZm9vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHJlZ2lzdGVyZWQgYXMgW0V4cGFuZCBmXSwgdGhlbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cyBbZiBcImFyZ1wiIEAgcmVzdF0gYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWQuIE9ubHkgYWxsb3dlZCBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXS4gKilcblxuZXhjZXB0aW9uIEJhZCBvZiBzdHJpbmdcbmV4Y2VwdGlvbiBIZWxwIG9mIHN0cmluZ1xuXG50eXBlIGVycm9yID1cbiAgfCBVbmtub3duIG9mIHN0cmluZ1xuICB8IFdyb25nIG9mIHN0cmluZyAqIHN0cmluZyAqIHN0cmluZyAgKCogb3B0aW9uLCBhY3R1YWwsIGV4cGVjdGVkICopXG4gIHwgTWlzc2luZyBvZiBzdHJpbmdcbiAgfCBNZXNzYWdlIG9mIHN0cmluZ1xuXG5leGNlcHRpb24gU3RvcCBvZiBlcnJvciAoKiB1c2VkIGludGVybmFsbHkgKilcblxub3BlbiBQcmludGZcblxubGV0IHJlYyBhc3NvYzMgeCBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKHkxLCB5MiwgXykgOjogXyB3aGVuIHkxID0geCAtPiB5MlxuICB8IF8gOjogdCAtPiBhc3NvYzMgeCB0XG5cblxubGV0IHNwbGl0IHMgPVxuICBsZXQgaSA9IFN0cmluZy5pbmRleCBzICc9JyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIFN0cmluZy5zdWIgcyAwIGksIFN0cmluZy5zdWIgcyAoaSsxKSAobGVuLShpKzEpKVxuXG5cbmxldCBtYWtlX3N5bWxpc3QgcHJlZml4IHNlcCBzdWZmaXggbCA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+IFwiPG5vbmU+XCJcbiAgfCBoOjp0IC0+IChMaXN0LmZvbGRfbGVmdCAoZnVuIHggeSAtPiB4IF4gc2VwIF4geSkgKHByZWZpeCBeIGgpIHQpIF4gc3VmZml4XG5cblxubGV0IHByaW50X3NwZWMgYnVmIChrZXksIHNwZWMsIGRvYykgPVxuICBpZiBTdHJpbmcubGVuZ3RoIGRvYyA+IDAgdGhlblxuICAgIG1hdGNoIHNwZWMgd2l0aFxuICAgIHwgU3ltYm9sIChsLCBfKSAtPlxuICAgICAgICBicHJpbnRmIGJ1ZiBcIiAgJXMgJXMlc1xcblwiIGtleSAobWFrZV9zeW1saXN0IFwie1wiIFwifFwiIFwifVwiIGwpIGRvY1xuICAgIHwgXyAtPlxuICAgICAgICBicHJpbnRmIGJ1ZiBcIiAgJXMgJXNcXG5cIiBrZXkgZG9jXG5cblxubGV0IGhlbHBfYWN0aW9uICgpID0gcmFpc2UgKFN0b3AgKFVua25vd24gXCItaGVscFwiKSlcblxubGV0IGFkZF9oZWxwIHNwZWNsaXN0ID1cbiAgbGV0IGFkZDEgPVxuICAgIHRyeSBpZ25vcmUgKGFzc29jMyBcIi1oZWxwXCIgc3BlY2xpc3QpOyBbXVxuICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgICBbXCItaGVscFwiLCBVbml0IGhlbHBfYWN0aW9uLCBcIiBEaXNwbGF5IHRoaXMgbGlzdCBvZiBvcHRpb25zXCJdXG4gIGFuZCBhZGQyID1cbiAgICB0cnkgaWdub3JlIChhc3NvYzMgXCItLWhlbHBcIiBzcGVjbGlzdCk7IFtdXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICAgIFtcIi0taGVscFwiLCBVbml0IGhlbHBfYWN0aW9uLCBcIiBEaXNwbGF5IHRoaXMgbGlzdCBvZiBvcHRpb25zXCJdXG4gIGluXG4gIHNwZWNsaXN0IEAgKGFkZDEgQCBhZGQyKVxuXG5cbmxldCB1c2FnZV9iIGJ1ZiBzcGVjbGlzdCBlcnJtc2cgPVxuICBicHJpbnRmIGJ1ZiBcIiVzXFxuXCIgZXJybXNnO1xuICBMaXN0Lml0ZXIgKHByaW50X3NwZWMgYnVmKSAoYWRkX2hlbHAgc3BlY2xpc3QpXG5cblxubGV0IHVzYWdlX3N0cmluZyBzcGVjbGlzdCBlcnJtc2cgPVxuICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gIHVzYWdlX2IgYiBzcGVjbGlzdCBlcnJtc2c7XG4gIEJ1ZmZlci5jb250ZW50cyBiXG5cblxubGV0IHVzYWdlIHNwZWNsaXN0IGVycm1zZyA9XG4gIGVwcmludGYgXCIlc1wiICh1c2FnZV9zdHJpbmcgc3BlY2xpc3QgZXJybXNnKVxuXG5cbmxldCBjdXJyZW50ID0gcmVmIDBcblxubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGJvb2xfb2Zfc3RyaW5nIHgpXG4gIHdpdGggSW52YWxpZF9hcmd1bWVudCBfIC0+IE5vbmVcblxubGV0IGludF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoaW50X29mX3N0cmluZyB4KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoZmxvYXRfb2Zfc3RyaW5nIHgpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCBhbGxvd19leHBhbmQgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnID1cbiAgbGV0IGluaXRwb3MgPSAhY3VycmVudCBpblxuICBsZXQgY29udmVydF9lcnJvciBlcnJvciA9XG4gICAgKCogY29udmVydCBhbiBpbnRlcm5hbCBlcnJvciB0byBhIEJhZC9IZWxwIGV4Y2VwdGlvblxuICAgICAgICpvciogYWRkIHRoZSBwcm9ncmFtIG5hbWUgYXMgYSBwcmVmaXggYW5kIHRoZSB1c2FnZSBtZXNzYWdlIGFzIGEgc3VmZml4XG4gICAgICAgdG8gYW4gdXNlci1yYWlzZWQgQmFkIGV4Y2VwdGlvbi5cbiAgICAqKVxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgICBsZXQgcHJvZ25hbWUgPVxuICAgICAgaWYgaW5pdHBvcyA8IChBcnJheS5sZW5ndGggIWFyZ3YpIHRoZW4gIWFyZ3YuKGluaXRwb3MpIGVsc2UgXCIoPylcIiBpblxuICAgIGJlZ2luIG1hdGNoIGVycm9yIHdpdGhcbiAgICAgIHwgVW5rbm93biBcIi1oZWxwXCIgLT4gKClcbiAgICAgIHwgVW5rbm93biBcIi0taGVscFwiIC0+ICgpXG4gICAgICB8IFVua25vd24gcyAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiB1bmtub3duIG9wdGlvbiAnJXMnLlxcblwiIHByb2duYW1lIHNcbiAgICAgIHwgTWlzc2luZyBzIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IG9wdGlvbiAnJXMnIG5lZWRzIGFuIGFyZ3VtZW50LlxcblwiIHByb2duYW1lIHNcbiAgICAgIHwgV3JvbmcgKG9wdCwgYXJnLCBleHBlY3RlZCkgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogd3JvbmcgYXJndW1lbnQgJyVzJzsgb3B0aW9uICclcycgZXhwZWN0cyAlcy5cXG5cIlxuICAgICAgICAgICAgICAgICAgcHJvZ25hbWUgYXJnIG9wdCBleHBlY3RlZFxuICAgICAgfCBNZXNzYWdlIHMgLT4gKCogdXNlciBlcnJvciBtZXNzYWdlICopXG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6ICVzLlxcblwiIHByb2duYW1lIHNcbiAgICBlbmQ7XG4gICAgdXNhZ2VfYiBiICFzcGVjbGlzdCBlcnJtc2c7XG4gICAgaWYgZXJyb3IgPSBVbmtub3duIFwiLWhlbHBcIiB8fCBlcnJvciA9IFVua25vd24gXCItLWhlbHBcIlxuICAgIHRoZW4gSGVscCAoQnVmZmVyLmNvbnRlbnRzIGIpXG4gICAgZWxzZSBCYWQgKEJ1ZmZlci5jb250ZW50cyBiKVxuICBpblxuICBpbmNyIGN1cnJlbnQ7XG4gIHdoaWxlICFjdXJyZW50IDwgKEFycmF5Lmxlbmd0aCAhYXJndikgZG9cbiAgICBiZWdpbiB0cnlcbiAgICAgIGxldCBzID0gIWFyZ3YuKCFjdXJyZW50KSBpblxuICAgICAgaWYgU3RyaW5nLmxlbmd0aCBzID49IDEgJiYgcy5bMF0gPSAnLScgdGhlbiBiZWdpblxuICAgICAgICBsZXQgYWN0aW9uLCBmb2xsb3cgPVxuICAgICAgICAgIHRyeSBhc3NvYzMgcyAhc3BlY2xpc3QsIE5vbmVcbiAgICAgICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgIHRyeVxuICAgICAgICAgICAgbGV0IGtleXdvcmQsIGFyZyA9IHNwbGl0IHMgaW5cbiAgICAgICAgICAgIGFzc29jMyBrZXl3b3JkICFzcGVjbGlzdCwgU29tZSBhcmdcbiAgICAgICAgICB3aXRoIE5vdF9mb3VuZCAtPiByYWlzZSAoU3RvcCAoVW5rbm93biBzKSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IG5vX2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgYXJnIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcIm5vIGFyZ3VtZW50XCIpKSkgaW5cbiAgICAgICAgbGV0IGdldF9hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgIGlmICFjdXJyZW50ICsgMSA8IChBcnJheS5sZW5ndGggIWFyZ3YpIHRoZW4gIWFyZ3YuKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgICAgZWxzZSByYWlzZSAoU3RvcCAoTWlzc2luZyBzKSlcbiAgICAgICAgICB8IFNvbWUgYXJnIC0+IGFyZ1xuICAgICAgICBpblxuICAgICAgICBsZXQgY29uc3VtZV9hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IGluY3IgY3VycmVudFxuICAgICAgICAgIHwgU29tZSBfIC0+ICgpXG4gICAgICAgIGluXG4gICAgICAgIGxldCByZWMgdHJlYXRfYWN0aW9uID0gZnVuY3Rpb25cbiAgICAgICAgfCBVbml0IGYgLT4gbm9fYXJnICgpOyBmICgpO1xuICAgICAgICB8IEJvb2wgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGJvb2xfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgYm9vbGVhblwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgcyAtPiBmIHNcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldCByIC0+IG5vX2FyZyAoKTsgciA6PSB0cnVlO1xuICAgICAgICB8IENsZWFyIHIgLT4gbm9fYXJnICgpOyByIDo9IGZhbHNlO1xuICAgICAgICB8IFN0cmluZyBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgZiBhcmc7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTeW1ib2wgKHN5bWIsIGYpIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgaWYgTGlzdC5tZW0gYXJnIHN5bWIgdGhlbiBiZWdpblxuICAgICAgICAgICAgICBmIGFyZztcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgICAgICByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJvbmUgb2Y6IFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIChtYWtlX3N5bWxpc3QgXCJcIiBcIiBcIiBcIlwiIHN5bWIpKSkpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBTZXRfc3RyaW5nIHIgLT5cbiAgICAgICAgICAgIHIgOj0gZ2V0X2FyZyAoKTtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IEludCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggaW50X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhbiBpbnRlZ2VyXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IGYgeFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0X2ludCByIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggaW50X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhbiBpbnRlZ2VyXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IHIgOj0geFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgRmxvYXQgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGZsb2F0X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGZsb2F0XCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IGYgeFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0X2Zsb2F0IHIgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBmbG9hdF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBmbG9hdFwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiByIDo9IHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFR1cGxlIHNwZWNzIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICBMaXN0Lml0ZXIgdHJlYXRfYWN0aW9uIHNwZWNzO1xuICAgICAgICB8IFJlc3QgZiAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgd2hpbGUgIWN1cnJlbnQgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSAtIDEgZG9cbiAgICAgICAgICAgICAgZiAhYXJndi4oIWN1cnJlbnQgKyAxKTtcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBkb25lO1xuICAgICAgICB8IFJlc3RfYWxsIGYgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgIHdoaWxlICFjdXJyZW50IDwgQXJyYXkubGVuZ3RoICFhcmd2IC0gMSBkb1xuICAgICAgICAgICAgICBhY2MgOj0gIWFyZ3YuKCFjdXJyZW50ICsgMSkgOjogIWFjYztcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgZiAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgfCBFeHBhbmQgZiAtPlxuICAgICAgICAgICAgaWYgbm90IGFsbG93X2V4cGFuZCB0aGVuXG4gICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiQXJnLkV4cGFuZCBpcyBpcyBvbmx5IGFsbG93ZWQgd2l0aCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnLnBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXCIpO1xuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGxldCBuZXdhcmcgPSBmIGFyZyBpblxuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBsZXQgYmVmb3JlID0gQXJyYXkuc3ViICFhcmd2IDAgKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgIGFuZCBhZnRlciA9XG4gICAgICAgICAgICAgIEFycmF5LnN1YiAhYXJndiAoIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgKChBcnJheS5sZW5ndGggIWFyZ3YpIC0gIWN1cnJlbnQgLSAxKSBpblxuICAgICAgICAgICAgYXJndjo9IEFycmF5LmNvbmNhdCBbYmVmb3JlO25ld2FyZzthZnRlcl07XG4gICAgICAgIGluXG4gICAgICAgIHRyZWF0X2FjdGlvbiBhY3Rpb24gZW5kXG4gICAgICBlbHNlIGFub25mdW4gc1xuICAgIHdpdGggfCBCYWQgbSAtPiByYWlzZSAoY29udmVydF9lcnJvciAoTWVzc2FnZSBtKSk7XG4gICAgICAgICB8IFN0b3AgZSAtPiByYWlzZSAoY29udmVydF9lcnJvciBlKTtcbiAgICBlbmQ7XG4gICAgaW5jciBjdXJyZW50XG4gIGRvbmVcblxubGV0IHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCB0cnVlIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZ1xuXG5sZXQgcGFyc2VfYXJndl9keW5hbWljID8oY3VycmVudD1jdXJyZW50KSBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IGZhbHNlIGN1cnJlbnQgKHJlZiBhcmd2KSBzcGVjbGlzdCBhbm9uZnVuXG4gICAgZXJybXNnXG5cblxubGV0IHBhcnNlX2FyZ3YgPyhjdXJyZW50PWN1cnJlbnQpIGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hcmd2X2R5bmFtaWMgfmN1cnJlbnQ6Y3VycmVudCBhcmd2IChyZWYgc3BlY2xpc3QpIGFub25mdW4gZXJybXNnXG5cblxubGV0IHBhcnNlIGwgZiBtc2cgPVxuICB0cnlcbiAgICBwYXJzZV9hcmd2IFN5cy5hcmd2IGwgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cblxubGV0IHBhcnNlX2R5bmFtaWMgbCBmIG1zZyA9XG4gIHRyeVxuICAgIHBhcnNlX2FyZ3ZfZHluYW1pYyBTeXMuYXJndiBsIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5sZXQgcGFyc2VfZXhwYW5kIGwgZiBtc2cgPVxuICB0cnlcbiAgICBsZXQgYXJndiA9IHJlZiBTeXMuYXJndiBpblxuICAgIGxldCBzcGVjID0gcmVmIGwgaW5cbiAgICBsZXQgY3VycmVudCA9IHJlZiAoIWN1cnJlbnQpIGluXG4gICAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMgY3VycmVudCBhcmd2IHNwZWMgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cblxubGV0IHNlY29uZF93b3JkIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBuID1cbiAgICBpZiBuID49IGxlbiB0aGVuIGxlblxuICAgIGVsc2UgaWYgcy5bbl0gPSAnICcgdGhlbiBsb29wIChuKzEpXG4gICAgZWxzZSBuXG4gIGluXG4gIG1hdGNoIFN0cmluZy5pbmRleCBzICdcXHQnIHdpdGhcbiAgfCBuIC0+IGxvb3AgKG4rMSlcbiAgfCBleGNlcHRpb24gTm90X2ZvdW5kIC0+XG4gICAgICBiZWdpbiBtYXRjaCBTdHJpbmcuaW5kZXggcyAnICcgd2l0aFxuICAgICAgfCBuIC0+IGxvb3AgKG4rMSlcbiAgICAgIHwgZXhjZXB0aW9uIE5vdF9mb3VuZCAtPiBsZW5cbiAgICAgIGVuZFxuXG5cbmxldCBtYXhfYXJnX2xlbiBjdXIgKGt3ZCwgc3BlYywgZG9jKSA9XG4gIG1hdGNoIHNwZWMgd2l0aFxuICB8IFN5bWJvbCBfIC0+IEludC5tYXggY3VyIChTdHJpbmcubGVuZ3RoIGt3ZClcbiAgfCBfIC0+IEludC5tYXggY3VyIChTdHJpbmcubGVuZ3RoIGt3ZCArIHNlY29uZF93b3JkIGRvYylcblxuXG5sZXQgcmVwbGFjZV9sZWFkaW5nX3RhYiBzID1cbiAgbGV0IHNlZW4gPSByZWYgZmFsc2UgaW5cbiAgU3RyaW5nLm1hcCAoZnVuY3Rpb24gJ1xcdCcgd2hlbiBub3QgIXNlZW4gLT4gc2VlbiA6PSB0cnVlOyAnICcgfCBjIC0+IGMpIHNcblxubGV0IGFkZF9wYWRkaW5nIGxlbiBrc2QgPVxuICBtYXRjaCBrc2Qgd2l0aFxuICB8IChfLCBfLCBcIlwiKSAtPlxuICAgICAgKCogRG8gbm90IHBhZCB1bmRvY3VtZW50ZWQgb3B0aW9ucywgc28gdGhhdCB0aGV5IHN0aWxsIGRvbid0IHNob3cgdXAgd2hlblxuICAgICAgICogcnVuIHRocm91Z2ggW3VzYWdlXSBvciBbcGFyc2VdLiAqKVxuICAgICAga3NkXG4gIHwgKGt3ZCwgKFN5bWJvbCBfIGFzIHNwZWMpLCBtc2cpIC0+XG4gICAgICBsZXQgY3V0Y29sID0gc2Vjb25kX3dvcmQgbXNnIGluXG4gICAgICBsZXQgc3BhY2VzID0gU3RyaW5nLm1ha2UgKChJbnQubWF4IDAgKGxlbiAtIGN1dGNvbCkpICsgMykgJyAnIGluXG4gICAgICAoa3dkLCBzcGVjLCBcIlxcblwiIF4gc3BhY2VzIF4gcmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpXG4gIHwgKGt3ZCwgc3BlYywgbXNnKSAtPlxuICAgICAgbGV0IGN1dGNvbCA9IHNlY29uZF93b3JkIG1zZyBpblxuICAgICAgbGV0IGt3ZF9sZW4gPSBTdHJpbmcubGVuZ3RoIGt3ZCBpblxuICAgICAgbGV0IGRpZmYgPSBsZW4gLSBrd2RfbGVuIC0gY3V0Y29sIGluXG4gICAgICBpZiBkaWZmIDw9IDAgdGhlblxuICAgICAgICAoa3dkLCBzcGVjLCByZXBsYWNlX2xlYWRpbmdfdGFiIG1zZylcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IHNwYWNlcyA9IFN0cmluZy5tYWtlIGRpZmYgJyAnIGluXG4gICAgICAgIGxldCBwcmVmaXggPSBTdHJpbmcuc3ViIChyZXBsYWNlX2xlYWRpbmdfdGFiIG1zZykgMCBjdXRjb2wgaW5cbiAgICAgICAgbGV0IHN1ZmZpeCA9IFN0cmluZy5zdWIgbXNnIGN1dGNvbCAoU3RyaW5nLmxlbmd0aCBtc2cgLSBjdXRjb2wpIGluXG4gICAgICAgIChrd2QsIHNwZWMsIHByZWZpeCBeIHNwYWNlcyBeIHN1ZmZpeClcblxuXG5sZXQgYWxpZ24gPyhsaW1pdD1tYXhfaW50KSBzcGVjbGlzdCA9XG4gIGxldCBjb21wbGV0ZWQgPSBhZGRfaGVscCBzcGVjbGlzdCBpblxuICBsZXQgbGVuID0gTGlzdC5mb2xkX2xlZnQgbWF4X2FyZ19sZW4gMCBjb21wbGV0ZWQgaW5cbiAgbGV0IGxlbiA9IEludC5taW4gbGVuIGxpbWl0IGluXG4gIExpc3QubWFwIChhZGRfcGFkZGluZyBsZW4pIGNvbXBsZXRlZFxuXG5sZXQgdHJpbV9jciBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBpZiBsZW4gPiAwICYmIFN0cmluZy5nZXQgcyAobGVuIC0gMSkgPSAnXFxyJyB0aGVuXG4gICAgU3RyaW5nLnN1YiBzIDAgKGxlbiAtIDEpXG4gIGVsc2VcbiAgICBzXG5cbmxldCByZWFkX2F1eCB0cmltIHNlcCBmaWxlID1cbiAgbGV0IGljID0gb3Blbl9pbl9iaW4gZmlsZSBpblxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgbGV0IHdvcmRzID0gcmVmIFtdIGluXG4gIGxldCBzdGFzaCAoKSA9XG4gICAgbGV0IHdvcmQgPSBCdWZmZXIuY29udGVudHMgYnVmIGluXG4gICAgbGV0IHdvcmQgPSBpZiB0cmltIHRoZW4gdHJpbV9jciB3b3JkIGVsc2Ugd29yZCBpblxuICAgIHdvcmRzIDo9IHdvcmQgOjogIXdvcmRzO1xuICAgIEJ1ZmZlci5jbGVhciBidWZcbiAgaW5cbiAgYmVnaW5cbiAgICB0cnkgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICBsZXQgYyA9IGlucHV0X2NoYXIgaWMgaW5cbiAgICAgICAgaWYgYyA9IHNlcCB0aGVuIHN0YXNoICgpIGVsc2UgQnVmZmVyLmFkZF9jaGFyIGJ1ZiBjXG4gICAgICBkb25lXG4gICAgd2l0aCBFbmRfb2ZfZmlsZSAtPiAoKVxuICBlbmQ7XG4gIGlmIEJ1ZmZlci5sZW5ndGggYnVmID4gMCB0aGVuIHN0YXNoICgpO1xuICBjbG9zZV9pbiBpYztcbiAgQXJyYXkub2ZfbGlzdCAoTGlzdC5yZXYgIXdvcmRzKVxuXG5sZXQgcmVhZF9hcmcgPSByZWFkX2F1eCB0cnVlICdcXG4nXG5cbmxldCByZWFkX2FyZzAgPSByZWFkX2F1eCBmYWxzZSAnXFx4MDAnXG5cbmxldCB3cml0ZV9hdXggc2VwIGZpbGUgYXJncyA9XG4gIGxldCBvYyA9IG9wZW5fb3V0X2JpbiBmaWxlIGluXG4gIEFycmF5Lml0ZXIgKGZ1biBzIC0+IGZwcmludGYgb2MgXCIlcyVjXCIgcyBzZXApIGFyZ3M7XG4gIGNsb3NlX291dCBvY1xuXG5sZXQgd3JpdGVfYXJnID0gd3JpdGVfYXV4ICdcXG4nXG5cbmxldCB3cml0ZV9hcmcwID0gd3JpdGVfYXV4ICdcXHgwMCdcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgaWQgOiAnYSAtPiAnYSA9IFwiJWlkZW50aXR5XCJcbmxldCBjb25zdCBjIF8gPSBjXG5sZXQgZmxpcCBmIHggeSA9IGYgeSB4XG5sZXQgbmVnYXRlIHAgdiA9IG5vdCAocCB2KVxuXG5leGNlcHRpb24gRmluYWxseV9yYWlzZWQgb2YgZXhuXG5cbmxldCAoKSA9IFByaW50ZXhjLnJlZ2lzdGVyX3ByaW50ZXIgQEAgZnVuY3Rpb25cbnwgRmluYWxseV9yYWlzZWQgZXhuIC0+IFNvbWUgKFwiRnVuLkZpbmFsbHlfcmFpc2VkOiBcIiBeIFByaW50ZXhjLnRvX3N0cmluZyBleG4pXG58IF8gLT4gTm9uZVxuXG5sZXQgcHJvdGVjdCB+KGZpbmFsbHkgOiB1bml0IC0+IHVuaXQpIHdvcmsgPVxuICBsZXQgZmluYWxseV9ub19leG4gKCkgPVxuICAgIHRyeSBmaW5hbGx5ICgpIHdpdGggZSAtPlxuICAgICAgbGV0IGJ0ID0gUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIFByaW50ZXhjLnJhaXNlX3dpdGhfYmFja3RyYWNlIChGaW5hbGx5X3JhaXNlZCBlKSBidFxuICBpblxuICBtYXRjaCB3b3JrICgpIHdpdGhcbiAgfCByZXN1bHQgLT4gZmluYWxseV9ub19leG4gKCkgOyByZXN1bHRcbiAgfCBleGNlcHRpb24gd29ya19leG4gLT5cbiAgICAgIGxldCB3b3JrX2J0ID0gUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIGZpbmFsbHlfbm9fZXhuICgpIDtcbiAgICAgIFByaW50ZXhjLnJhaXNlX3dpdGhfYmFja3RyYWNlIHdvcmtfZXhuIHdvcmtfYnRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgSmFjcXVlcy1IZW5yaSBKb3VyZGFuLCBwcm9qZXQgR2FsbGl1bSwgSU5SSUEgUGFyaXMgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYtMjAxNiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlICAgKilcbigqICAgICBldCBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBzdGF0ID0ge1xuICBtaW5vcl93b3JkcyA6IGZsb2F0O1xuICBwcm9tb3RlZF93b3JkcyA6IGZsb2F0O1xuICBtYWpvcl93b3JkcyA6IGZsb2F0O1xuICBtaW5vcl9jb2xsZWN0aW9ucyA6IGludDtcbiAgbWFqb3JfY29sbGVjdGlvbnMgOiBpbnQ7XG4gIGhlYXBfd29yZHMgOiBpbnQ7XG4gIGhlYXBfY2h1bmtzIDogaW50O1xuICBsaXZlX3dvcmRzIDogaW50O1xuICBsaXZlX2Jsb2NrcyA6IGludDtcbiAgZnJlZV93b3JkcyA6IGludDtcbiAgZnJlZV9ibG9ja3MgOiBpbnQ7XG4gIGxhcmdlc3RfZnJlZSA6IGludDtcbiAgZnJhZ21lbnRzIDogaW50O1xuICBjb21wYWN0aW9ucyA6IGludDtcbiAgdG9wX2hlYXBfd29yZHMgOiBpbnQ7XG4gIHN0YWNrX3NpemUgOiBpbnQ7XG4gIGZvcmNlZF9tYWpvcl9jb2xsZWN0aW9uczogaW50O1xufVxuXG50eXBlIGNvbnRyb2wgPSB7XG4gIG11dGFibGUgbWlub3JfaGVhcF9zaXplIDogaW50O1xuICBtdXRhYmxlIG1ham9yX2hlYXBfaW5jcmVtZW50IDogaW50O1xuICBtdXRhYmxlIHNwYWNlX292ZXJoZWFkIDogaW50O1xuICBtdXRhYmxlIHZlcmJvc2UgOiBpbnQ7XG4gIG11dGFibGUgbWF4X292ZXJoZWFkIDogaW50O1xuICBtdXRhYmxlIHN0YWNrX2xpbWl0IDogaW50O1xuICBtdXRhYmxlIGFsbG9jYXRpb25fcG9saWN5IDogaW50O1xuICB3aW5kb3dfc2l6ZSA6IGludDtcbiAgY3VzdG9tX21ham9yX3JhdGlvIDogaW50O1xuICBjdXN0b21fbWlub3JfcmF0aW8gOiBpbnQ7XG4gIGN1c3RvbV9taW5vcl9tYXhfc2l6ZSA6IGludDtcbn1cblxuZXh0ZXJuYWwgc3RhdCA6IHVuaXQgLT4gc3RhdCA9IFwiY2FtbF9nY19zdGF0XCJcbmV4dGVybmFsIHF1aWNrX3N0YXQgOiB1bml0IC0+IHN0YXQgPSBcImNhbWxfZ2NfcXVpY2tfc3RhdFwiXG5leHRlcm5hbCBjb3VudGVycyA6IHVuaXQgLT4gKGZsb2F0ICogZmxvYXQgKiBmbG9hdCkgPSBcImNhbWxfZ2NfY291bnRlcnNcIlxuZXh0ZXJuYWwgbWlub3Jfd29yZHMgOiB1bml0IC0+IChmbG9hdCBbQHVuYm94ZWRdKVxuICA9IFwiY2FtbF9nY19taW5vcl93b3Jkc1wiIFwiY2FtbF9nY19taW5vcl93b3Jkc191bmJveGVkXCJcbmV4dGVybmFsIGdldCA6IHVuaXQgLT4gY29udHJvbCA9IFwiY2FtbF9nY19nZXRcIlxuZXh0ZXJuYWwgc2V0IDogY29udHJvbCAtPiB1bml0ID0gXCJjYW1sX2djX3NldFwiXG5leHRlcm5hbCBtaW5vciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19taW5vclwiXG5leHRlcm5hbCBtYWpvcl9zbGljZSA6IGludCAtPiBpbnQgPSBcImNhbWxfZ2NfbWFqb3Jfc2xpY2VcIlxuZXh0ZXJuYWwgbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWFqb3JcIlxuZXh0ZXJuYWwgZnVsbF9tYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19mdWxsX21ham9yXCJcbmV4dGVybmFsIGNvbXBhY3QgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfY29tcGFjdGlvblwiXG5leHRlcm5hbCBnZXRfbWlub3JfZnJlZSA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2dldF9taW5vcl9mcmVlXCJcbmV4dGVybmFsIGdldF9idWNrZXQgOiBpbnQgLT4gaW50ID0gXCJjYW1sX2dldF9tYWpvcl9idWNrZXRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZ2V0X2NyZWRpdCA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2dldF9tYWpvcl9jcmVkaXRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHVnZV9mYWxsYmFja19jb3VudCA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnRcIlxuZXh0ZXJuYWwgZXZlbnRsb2dfcGF1c2UgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZXZlbnRsb2dfcGF1c2VcIlxuZXh0ZXJuYWwgZXZlbnRsb2dfcmVzdW1lIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2V2ZW50bG9nX3Jlc3VtZVwiXG5cbm9wZW4gUHJpbnRmXG5cbmxldCBwcmludF9zdGF0IGMgPVxuICBsZXQgc3QgPSBzdGF0ICgpIGluXG4gIGZwcmludGYgYyBcIm1pbm9yX2NvbGxlY3Rpb25zOiAgICAgICVkXFxuXCIgc3QubWlub3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcIm1ham9yX2NvbGxlY3Rpb25zOiAgICAgICVkXFxuXCIgc3QubWFqb3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcImNvbXBhY3Rpb25zOiAgICAgICAgICAgICVkXFxuXCIgc3QuY29tcGFjdGlvbnM7XG4gIGZwcmludGYgYyBcImZvcmNlZF9tYWpvcl9jb2xsZWN0aW9uczogJWRcXG5cIiBzdC5mb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBsZXQgbDEgPSBTdHJpbmcubGVuZ3RoIChzcHJpbnRmIFwiJS4wZlwiIHN0Lm1pbm9yX3dvcmRzKSBpblxuICBmcHJpbnRmIGMgXCJtaW5vcl93b3JkczogICAgJSouMGZcXG5cIiBsMSBzdC5taW5vcl93b3JkcztcbiAgZnByaW50ZiBjIFwicHJvbW90ZWRfd29yZHM6ICUqLjBmXFxuXCIgbDEgc3QucHJvbW90ZWRfd29yZHM7XG4gIGZwcmludGYgYyBcIm1ham9yX3dvcmRzOiAgICAlKi4wZlxcblwiIGwxIHN0Lm1ham9yX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgbGV0IGwyID0gU3RyaW5nLmxlbmd0aCAoc3ByaW50ZiBcIiVkXCIgc3QudG9wX2hlYXBfd29yZHMpIGluXG4gIGZwcmludGYgYyBcInRvcF9oZWFwX3dvcmRzOiAlKmRcXG5cIiBsMiBzdC50b3BfaGVhcF93b3JkcztcbiAgZnByaW50ZiBjIFwiaGVhcF93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmhlYXBfd29yZHM7XG4gIGZwcmludGYgYyBcImxpdmVfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5saXZlX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJmcmVlX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QuZnJlZV93b3JkcztcbiAgZnByaW50ZiBjIFwibGFyZ2VzdF9mcmVlOiAgICUqZFxcblwiIGwyIHN0Lmxhcmdlc3RfZnJlZTtcbiAgZnByaW50ZiBjIFwiZnJhZ21lbnRzOiAgICAgICUqZFxcblwiIGwyIHN0LmZyYWdtZW50cztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGZwcmludGYgYyBcImxpdmVfYmxvY2tzOiAlZFxcblwiIHN0LmxpdmVfYmxvY2tzO1xuICBmcHJpbnRmIGMgXCJmcmVlX2Jsb2NrczogJWRcXG5cIiBzdC5mcmVlX2Jsb2NrcztcbiAgZnByaW50ZiBjIFwiaGVhcF9jaHVua3M6ICVkXFxuXCIgc3QuaGVhcF9jaHVua3NcblxuXG5sZXQgYWxsb2NhdGVkX2J5dGVzICgpID1cbiAgbGV0IChtaSwgcHJvLCBtYSkgPSBjb3VudGVycyAoKSBpblxuICAobWkgKy4gbWEgLS4gcHJvKSAqLiBmbG9hdF9vZl9pbnQgKFN5cy53b3JkX3NpemUgLyA4KVxuXG5cbmV4dGVybmFsIGZpbmFsaXNlIDogKCdhIC0+IHVuaXQpIC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfZmluYWxfcmVnaXN0ZXJcIlxuZXh0ZXJuYWwgZmluYWxpc2VfbGFzdCA6ICh1bml0IC0+IHVuaXQpIC0+ICdhIC0+IHVuaXQgPVxuICBcImNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWVcIlxuZXh0ZXJuYWwgZmluYWxpc2VfcmVsZWFzZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9maW5hbF9yZWxlYXNlXCJcblxuXG50eXBlIGFsYXJtID0gYm9vbCByZWZcbnR5cGUgYWxhcm1fcmVjID0ge2FjdGl2ZSA6IGFsYXJtOyBmIDogdW5pdCAtPiB1bml0fVxuXG5sZXQgcmVjIGNhbGxfYWxhcm0gYXJlYyA9XG4gIGlmICEoYXJlYy5hY3RpdmUpIHRoZW4gYmVnaW5cbiAgICBmaW5hbGlzZSBjYWxsX2FsYXJtIGFyZWM7XG4gICAgYXJlYy5mICgpO1xuICBlbmRcblxuXG5sZXQgY3JlYXRlX2FsYXJtIGYgPVxuICBsZXQgYXJlYyA9IHsgYWN0aXZlID0gcmVmIHRydWU7IGYgPSBmIH0gaW5cbiAgZmluYWxpc2UgY2FsbF9hbGFybSBhcmVjO1xuICBhcmVjLmFjdGl2ZVxuXG5cbmxldCBkZWxldGVfYWxhcm0gYSA9IGEgOj0gZmFsc2VcblxubW9kdWxlIE1lbXByb2YgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGFsbG9jYXRpb25fc291cmNlID0gTm9ybWFsIHwgTWFyc2hhbCB8IEN1c3RvbVxuICAgIHR5cGUgYWxsb2NhdGlvbiA9XG4gICAgICB7IG5fc2FtcGxlcyA6IGludDtcbiAgICAgICAgc2l6ZSA6IGludDtcbiAgICAgICAgc291cmNlIDogYWxsb2NhdGlvbl9zb3VyY2U7XG4gICAgICAgIGNhbGxzdGFjayA6IFByaW50ZXhjLnJhd19iYWNrdHJhY2UgfVxuXG4gICAgdHlwZSAoJ21pbm9yLCAnbWFqb3IpIHRyYWNrZXIgPSB7XG4gICAgICBhbGxvY19taW5vcjogYWxsb2NhdGlvbiAtPiAnbWlub3Igb3B0aW9uO1xuICAgICAgYWxsb2NfbWFqb3I6IGFsbG9jYXRpb24gLT4gJ21ham9yIG9wdGlvbjtcbiAgICAgIHByb21vdGU6ICdtaW5vciAtPiAnbWFqb3Igb3B0aW9uO1xuICAgICAgZGVhbGxvY19taW5vcjogJ21pbm9yIC0+IHVuaXQ7XG4gICAgICBkZWFsbG9jX21ham9yOiAnbWFqb3IgLT4gdW5pdDtcbiAgICB9XG5cbiAgICBsZXQgbnVsbF90cmFja2VyID0ge1xuICAgICAgYWxsb2NfbWlub3IgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBhbGxvY19tYWpvciA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIHByb21vdGUgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBkZWFsbG9jX21pbm9yID0gKGZ1biBfIC0+ICgpKTtcbiAgICAgIGRlYWxsb2NfbWFqb3IgPSAoZnVuIF8gLT4gKCkpO1xuICAgIH1cblxuICAgIGV4dGVybmFsIGNfc3RhcnQgOlxuICAgICAgZmxvYXQgLT4gaW50IC0+ICgnbWlub3IsICdtYWpvcikgdHJhY2tlciAtPiB1bml0XG4gICAgICA9IFwiY2FtbF9tZW1wcm9mX3N0YXJ0XCJcblxuICAgIGxldCBzdGFydFxuICAgICAgfnNhbXBsaW5nX3JhdGVcbiAgICAgID8oY2FsbHN0YWNrX3NpemUgPSBtYXhfaW50KVxuICAgICAgdHJhY2tlciA9XG4gICAgICBjX3N0YXJ0IHNhbXBsaW5nX3JhdGUgY2FsbHN0YWNrX3NpemUgdHJhY2tlclxuXG4gICAgZXh0ZXJuYWwgc3RvcCA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9tZW1wcm9mX3N0b3BcIlxuICBlbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTWVzc2FnZSBkaWdlc3QgKE1ENSkgKilcblxudHlwZSB0ID0gc3RyaW5nXG5cbmxldCBjb21wYXJlID0gU3RyaW5nLmNvbXBhcmVcbmxldCBlcXVhbCA9IFN0cmluZy5lcXVhbFxuXG5leHRlcm5hbCB1bnNhZmVfc3RyaW5nOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB0ID0gXCJjYW1sX21kNV9zdHJpbmdcIlxuZXh0ZXJuYWwgY2hhbm5lbDogaW5fY2hhbm5lbCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9tZDVfY2hhblwiXG5cbmxldCBzdHJpbmcgc3RyID1cbiAgdW5zYWZlX3N0cmluZyBzdHIgMCAoU3RyaW5nLmxlbmd0aCBzdHIpXG5cbmxldCBieXRlcyBiID0gc3RyaW5nIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGIpXG5cbmxldCBzdWJzdHJpbmcgc3RyIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gU3RyaW5nLmxlbmd0aCBzdHIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC5zdWJzdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9zdHJpbmcgc3RyIG9mcyBsZW5cblxubGV0IHN1YmJ5dGVzIGIgb2ZzIGxlbiA9IHN1YnN0cmluZyAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBiKSBvZnMgbGVuXG5cbmxldCBmaWxlIGZpbGVuYW1lID1cbiAgbGV0IGljID0gb3Blbl9pbl9iaW4gZmlsZW5hbWUgaW5cbiAgbWF0Y2ggY2hhbm5lbCBpYyAoLTEpIHdpdGhcbiAgICB8IGQgLT4gY2xvc2VfaW4gaWM7IGRcbiAgICB8IGV4Y2VwdGlvbiBlIC0+IGNsb3NlX2luIGljOyByYWlzZSBlXG5cbmxldCBvdXRwdXQgY2hhbiBkaWdlc3QgPVxuICBvdXRwdXRfc3RyaW5nIGNoYW4gZGlnZXN0XG5cbmxldCBpbnB1dCBjaGFuID0gcmVhbGx5X2lucHV0X3N0cmluZyBjaGFuIDE2XG5cbmxldCBjaGFyX2hleCBuID1cbiAgQ2hhci51bnNhZmVfY2hyIChuICsgaWYgbiA8IDEwIHRoZW4gQ2hhci5jb2RlICcwJyBlbHNlIChDaGFyLmNvZGUgJ2EnIC0gMTApKVxuXG5sZXQgdG9faGV4IGQgPVxuICBpZiBTdHJpbmcubGVuZ3RoIGQgPD4gMTYgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC50b19oZXhcIjtcbiAgbGV0IHJlc3VsdCA9IEJ5dGVzLmNyZWF0ZSAzMiBpblxuICBmb3IgaSA9IDAgdG8gMTUgZG9cbiAgICBsZXQgeCA9IENoYXIuY29kZSBkLltpXSBpblxuICAgIEJ5dGVzLnVuc2FmZV9zZXQgcmVzdWx0IChpKjIpIChjaGFyX2hleCAoeCBsc3IgNCkpO1xuICAgIEJ5dGVzLnVuc2FmZV9zZXQgcmVzdWx0IChpKjIrMSkgKGNoYXJfaGV4ICh4IGxhbmQgMHgwZikpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc3VsdFxuXG5sZXQgZnJvbV9oZXggcyA9XG4gIGlmIFN0cmluZy5sZW5ndGggcyA8PiAzMiB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LmZyb21faGV4XCI7XG4gIGxldCBkaWdpdCBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICcwJy4uJzknIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICcwJ1xuICAgIHwgJ0EnLi4nRicgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJ0EnICsgMTBcbiAgICB8ICdhJy4uJ2YnIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICdhJyArIDEwXG4gICAgfCBfIC0+IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiRGlnZXN0LmZyb21faGV4XCIpXG4gIGluXG4gIGxldCBieXRlIGkgPSBkaWdpdCBzLltpXSBsc2wgNCArIGRpZ2l0IHMuW2krMV0gaW5cbiAgbGV0IHJlc3VsdCA9IEJ5dGVzLmNyZWF0ZSAxNiBpblxuICBmb3IgaSA9IDAgdG8gMTUgZG9cbiAgICBCeXRlcy5zZXQgcmVzdWx0IGkgKENoYXIuY2hyIChieXRlICgyICogaSkpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXN1bHRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogSGFzaCB0YWJsZXMgKilcblxuKCogV2UgZG8gZHluYW1pYyBoYXNoaW5nLCBhbmQgcmVzaXplIHRoZSB0YWJsZSBhbmQgcmVoYXNoIHRoZSBlbGVtZW50c1xuICAgd2hlbiBidWNrZXRzIGJlY29tZSB0b28gbG9uZy4gKilcblxudHlwZSAoJ2EsICdiKSB0ID1cbiAgeyBtdXRhYmxlIHNpemU6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAoKiBudW1iZXIgb2YgZW50cmllcyAqKVxuICAgIG11dGFibGUgZGF0YTogKCdhLCAnYikgYnVja2V0bGlzdCBhcnJheTsgICgqIHRoZSBidWNrZXRzICopXG4gICAgc2VlZDogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICgqIGZvciByYW5kb21pemF0aW9uICopXG4gICAgbXV0YWJsZSBpbml0aWFsX3NpemU6IGludDsgICAgICAgICAgICAgICAgKCogaW5pdGlhbCBhcnJheSBzaXplICopXG4gIH1cblxuYW5kICgnYSwgJ2IpIGJ1Y2tldGxpc3QgPVxuICAgIEVtcHR5XG4gIHwgQ29ucyBvZiB7IG11dGFibGUga2V5OiAnYTtcbiAgICAgICAgICAgICAgbXV0YWJsZSBkYXRhOiAnYjtcbiAgICAgICAgICAgICAgbXV0YWJsZSBuZXh0OiAoJ2EsICdiKSBidWNrZXRsaXN0IH1cblxuKCogVGhlIHNpZ24gb2YgaW5pdGlhbF9zaXplIGVuY29kZXMgdGhlIGZhY3QgdGhhdCBhIHRyYXZlcnNhbCBpc1xuICAgb25nb2luZyBvciBub3QuXG5cbiAgIFRoaXMgZGlzYWJsZXMgdGhlIGVmZmljaWVudCBpbiBwbGFjZSBpbXBsZW1lbnRhdGlvbiBvZiByZXNpemluZy5cbiopXG5cbmxldCBvbmdvaW5nX3RyYXZlcnNhbCBoID1cbiAgT2JqLnNpemUgKE9iai5yZXByIGgpIDwgNCAoKiBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGhhc2ggdGFibGVzICopXG4gIHx8IGguaW5pdGlhbF9zaXplIDwgMFxuXG5sZXQgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoID1cbiAgaC5pbml0aWFsX3NpemUgPC0gLSBoLmluaXRpYWxfc2l6ZVxuXG4oKiBUbyBwaWNrIHJhbmRvbSBzZWVkcyBpZiByZXF1ZXN0ZWQgKilcblxubGV0IHJhbmRvbWl6ZWRfZGVmYXVsdCA9XG4gIGxldCBwYXJhbXMgPVxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiT0NBTUxSVU5QQVJBTVwiIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJDQU1MUlVOUEFSQU1cIiB3aXRoIE5vdF9mb3VuZCAtPiBcIlwiIGluXG4gIFN0cmluZy5jb250YWlucyBwYXJhbXMgJ1InXG5cbmxldCByYW5kb21pemVkID0gcmVmIHJhbmRvbWl6ZWRfZGVmYXVsdFxuXG5sZXQgcmFuZG9taXplICgpID0gcmFuZG9taXplZCA6PSB0cnVlXG5sZXQgaXNfcmFuZG9taXplZCAoKSA9ICFyYW5kb21pemVkXG5cbmxldCBwcm5nID0gbGF6eSAoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0KCkpXG5cbigqIEZ1bmN0aW9ucyB3aGljaCBhcHBlYXIgYmVmb3JlIHRoZSBmdW5jdG9yaWFsIGludGVyZmFjZSBtdXN0IGVpdGhlciBiZVxuICAgaW5kZXBlbmRlbnQgb2YgdGhlIGhhc2ggZnVuY3Rpb24gb3IgdGFrZSBpdCBhcyBhIHBhcmFtZXRlciAoc2VlICMyMjAyIGFuZFxuICAgY29kZSBiZWxvdyB0aGUgZnVuY3RvciBkZWZpbml0aW9ucy4gKilcblxuKCogQ3JlYXRpbmcgYSBmcmVzaCwgZW1wdHkgdGFibGUgKilcblxubGV0IHJlYyBwb3dlcl8yX2Fib3ZlIHggbiA9XG4gIGlmIHggPj0gbiB0aGVuIHhcbiAgZWxzZSBpZiB4ICogMiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4geFxuICBlbHNlIHBvd2VyXzJfYWJvdmUgKHggKiAyKSBuXG5cbmxldCBjcmVhdGUgPyhyYW5kb20gPSAhcmFuZG9taXplZCkgaW5pdGlhbF9zaXplID1cbiAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IGluaXRpYWxfc2l6ZSBpblxuICBsZXQgc2VlZCA9IGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpIGVsc2UgMCBpblxuICB7IGluaXRpYWxfc2l6ZSA9IHM7IHNpemUgPSAwOyBzZWVkID0gc2VlZDsgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eSB9XG5cbmxldCBjbGVhciBoID1cbiAgaWYgaC5zaXplID4gMCB0aGVuIGJlZ2luXG4gICAgaC5zaXplIDwtIDA7XG4gICAgQXJyYXkuZmlsbCBoLmRhdGEgMCAoQXJyYXkubGVuZ3RoIGguZGF0YSkgRW1wdHlcbiAgZW5kXG5cbmxldCByZXNldCBoID1cbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpIDwgNCAoKiBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGhhc2ggdGFibGVzICopXG4gICAgfHwgbGVuID0gYWJzIGguaW5pdGlhbF9zaXplIHRoZW5cbiAgICBjbGVhciBoXG4gIGVsc2UgYmVnaW5cbiAgICBoLnNpemUgPC0gMDtcbiAgICBoLmRhdGEgPC0gQXJyYXkubWFrZSAoYWJzIGguaW5pdGlhbF9zaXplKSBFbXB0eVxuICBlbmRcblxubGV0IGNvcHlfYnVja2V0bGlzdCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gRW1wdHlcbiAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICBsZXQgcmVjIGxvb3AgcHJlYyA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gKClcbiAgICAgICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgICBsZXQgciA9IENvbnMge2tleTsgZGF0YTsgbmV4dH0gaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgICAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgIHwgQ29ucyBwcmVjIC0+ICBwcmVjLm5leHQgPC0gclxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgbG9vcCByIG5leHRcbiAgICAgIGluXG4gICAgICBsZXQgciA9IENvbnMge2tleTsgZGF0YTsgbmV4dH0gaW5cbiAgICAgIGxvb3AgciBuZXh0O1xuICAgICAgclxuXG5sZXQgY29weSBoID0geyBoIHdpdGggZGF0YSA9IEFycmF5Lm1hcCBjb3B5X2J1Y2tldGxpc3QgaC5kYXRhIH1cblxubGV0IGxlbmd0aCBoID0gaC5zaXplXG5cbmxldCBpbnNlcnRfYWxsX2J1Y2tldHMgaW5kZXhmdW4gaW5wbGFjZSBvZGF0YSBuZGF0YSA9XG4gIGxldCBuc2l6ZSA9IEFycmF5Lmxlbmd0aCBuZGF0YSBpblxuICBsZXQgbmRhdGFfdGFpbCA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgbGV0IHJlYyBpbnNlcnRfYnVja2V0ID0gZnVuY3Rpb25cbiAgICB8IEVtcHR5IC0+ICgpXG4gICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGFzIGNlbGwgLT5cbiAgICAgICAgbGV0IGNlbGwgPVxuICAgICAgICAgIGlmIGlucGxhY2UgdGhlbiBjZWxsXG4gICAgICAgICAgZWxzZSBDb25zIHtrZXk7IGRhdGE7IG5leHQgPSBFbXB0eX1cbiAgICAgICAgaW5cbiAgICAgICAgbGV0IG5pZHggPSBpbmRleGZ1biBrZXkgaW5cbiAgICAgICAgYmVnaW4gbWF0Y2ggbmRhdGFfdGFpbC4obmlkeCkgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IG5kYXRhLihuaWR4KSA8LSBjZWxsO1xuICAgICAgICB8IENvbnMgdGFpbCAtPiB0YWlsLm5leHQgPC0gY2VsbDtcbiAgICAgICAgZW5kO1xuICAgICAgICBuZGF0YV90YWlsLihuaWR4KSA8LSBjZWxsO1xuICAgICAgICBpbnNlcnRfYnVja2V0IG5leHRcbiAgaW5cbiAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBvZGF0YSAtIDEgZG9cbiAgICBpbnNlcnRfYnVja2V0IG9kYXRhLihpKVxuICBkb25lO1xuICBpZiBpbnBsYWNlIHRoZW5cbiAgICBmb3IgaSA9IDAgdG8gbnNpemUgLSAxIGRvXG4gICAgICBtYXRjaCBuZGF0YV90YWlsLihpKSB3aXRoXG4gICAgICB8IEVtcHR5IC0+ICgpXG4gICAgICB8IENvbnMgdGFpbCAtPiB0YWlsLm5leHQgPC0gRW1wdHlcbiAgICBkb25lXG5cbmxldCByZXNpemUgaW5kZXhmdW4gaCA9XG4gIGxldCBvZGF0YSA9IGguZGF0YSBpblxuICBsZXQgb3NpemUgPSBBcnJheS5sZW5ndGggb2RhdGEgaW5cbiAgbGV0IG5zaXplID0gb3NpemUgKiAyIGluXG4gIGlmIG5zaXplIDwgU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiBiZWdpblxuICAgIGxldCBuZGF0YSA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgICBsZXQgaW5wbGFjZSA9IG5vdCAob25nb2luZ190cmF2ZXJzYWwgaCkgaW5cbiAgICBoLmRhdGEgPC0gbmRhdGE7ICAgICAgICAgICgqIHNvIHRoYXQgaW5kZXhmdW4gc2VlcyB0aGUgbmV3IGJ1Y2tldCBjb3VudCAqKVxuICAgIGluc2VydF9hbGxfYnVja2V0cyAoaW5kZXhmdW4gaCkgaW5wbGFjZSBvZGF0YSBuZGF0YVxuICBlbmRcblxubGV0IGl0ZXIgZiBoID1cbiAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT5cbiAgICAgICAgKClcbiAgICB8IENvbnN7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBmIGtleSBkYXRhOyBkb19idWNrZXQgbmV4dCBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBkb19idWNrZXQgZC4oaSlcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbmxldCByZWMgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBwcmVjID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gRW1wdHlcbiAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBFbXB0eVxuICAgICAgZW5kXG4gIHwgKENvbnMgKHtrZXk7IGRhdGE7IG5leHR9IGFzIGMpKSBhcyBzbG90IC0+XG4gICAgICBiZWdpbiBtYXRjaCBmIGtleSBkYXRhIHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgcHJlYyBuZXh0XG4gICAgICB8IFNvbWUgZGF0YSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBzbG90XG4gICAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIHNsb3RcbiAgICAgICAgICBlbmQ7XG4gICAgICAgICAgYy5kYXRhIDwtIGRhdGE7XG4gICAgICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBzbG90IG5leHRcbiAgICAgIGVuZFxuXG5sZXQgZmlsdGVyX21hcF9pbnBsYWNlIGYgaCA9XG4gIGxldCBkID0gaC5kYXRhIGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIEVtcHR5IGguZGF0YS4oaSlcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaFxuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxubGV0IGZvbGQgZiBoIGluaXQgPVxuICBsZXQgcmVjIGRvX2J1Y2tldCBiIGFjY3UgPVxuICAgIG1hdGNoIGIgd2l0aFxuICAgICAgRW1wdHkgLT5cbiAgICAgICAgYWNjdVxuICAgIHwgQ29uc3trZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIGRvX2J1Y2tldCBuZXh0IChmIGtleSBkYXRhIGFjY3UpIGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgIGxldCBhY2N1ID0gcmVmIGluaXQgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBhY2N1IDo9IGRvX2J1Y2tldCBkLihpKSAhYWNjdVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgICFhY2N1XG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG50eXBlIHN0YXRpc3RpY3MgPSB7XG4gIG51bV9iaW5kaW5nczogaW50O1xuICBudW1fYnVja2V0czogaW50O1xuICBtYXhfYnVja2V0X2xlbmd0aDogaW50O1xuICBidWNrZXRfaGlzdG9ncmFtOiBpbnQgYXJyYXlcbn1cblxubGV0IHJlYyBidWNrZXRfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFjY3VcbiAgfCBDb25ze25leHR9IC0+IGJ1Y2tldF9sZW5ndGggKGFjY3UgKyAxKSBuZXh0XG5cbmxldCBzdGF0cyBoID1cbiAgbGV0IG1ibCA9XG4gICAgQXJyYXkuZm9sZF9sZWZ0IChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aCAwIGIpKSAwIGguZGF0YSBpblxuICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gIEFycmF5Lml0ZXJcbiAgICAoZnVuIGIgLT5cbiAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aCAwIGIgaW5cbiAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgIGguZGF0YTtcbiAgeyBudW1fYmluZGluZ3MgPSBoLnNpemU7XG4gICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgdGJsID1cbiAgKCogY2FwdHVyZSBjdXJyZW50IGFycmF5LCBzbyB0aGF0IGV2ZW4gaWYgdGhlIHRhYmxlIGlzIHJlc2l6ZWQgd2VcbiAgICAga2VlcCBpdGVyYXRpbmcgb24gdGhlIHNhbWUgYXJyYXkgKilcbiAgbGV0IHRibF9kYXRhID0gdGJsLmRhdGEgaW5cbiAgKCogc3RhdGU6IGluZGV4ICogbmV4dCBidWNrZXQgdG8gdHJhdmVyc2UgKilcbiAgbGV0IHJlYyBhdXggaSBidWNrICgpID0gbWF0Y2ggYnVjayB3aXRoXG4gICAgfCBFbXB0eSAtPlxuICAgICAgICBpZiBpID0gQXJyYXkubGVuZ3RoIHRibF9kYXRhXG4gICAgICAgIHRoZW4gU2VxLk5pbFxuICAgICAgICBlbHNlIGF1eChpKzEpIHRibF9kYXRhLihpKSAoKVxuICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBTZXEuQ29ucyAoKGtleSwgZGF0YSksIGF1eCBpIG5leHQpXG4gIGluXG4gIGF1eCAwIEVtcHR5XG5cbmxldCB0b19zZXFfa2V5cyBtID0gU2VxLm1hcCBmc3QgKHRvX3NlcSBtKVxuXG5sZXQgdG9fc2VxX3ZhbHVlcyBtID0gU2VxLm1hcCBzbmQgKHRvX3NlcSBtKVxuXG4oKiBGdW5jdG9yaWFsIGludGVyZmFjZSAqKVxuXG5tb2R1bGUgdHlwZSBIYXNoZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBoYXNoOiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgU2VlZGVkSGFzaGVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaGFzaDogaW50IC0+IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICEnYSB0XG4gICAgdmFsIGNyZWF0ZTogaW50IC0+ICdhIHRcbiAgICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgY29weTogJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGFkZDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCByZW1vdmU6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgICB2YWwgZmluZDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2FsbDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICAgIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZTogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGxlbmd0aDogJ2EgdCAtPiBpbnRcbiAgICB2YWwgc3RhdHM6ICdhIHQgLT4gc3RhdGlzdGljc1xuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIHR5cGUgU2VlZGVkUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhJ2EgdFxuICAgIHZhbCBjcmVhdGUgOiA/cmFuZG9tOmJvb2wgLT4gaW50IC0+ICdhIHRcbiAgICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gICAgdmFsIGZpbmRfb3B0OiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gICAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZTogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICAgIHZhbCBzdGF0czogJ2EgdCAtPiBzdGF0aXN0aWNzXG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgTWFrZVNlZWRlZChIOiBTZWVkZWRIYXNoZWRUeXBlKTogKFNlZWRlZFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGtleSA9IEgudFxuICAgIHR5cGUgJ2EgaGFzaHRibCA9IChrZXksICdhKSB0XG4gICAgdHlwZSAnYSB0ID0gJ2EgaGFzaHRibFxuICAgIGxldCBjcmVhdGUgPSBjcmVhdGVcbiAgICBsZXQgY2xlYXIgPSBjbGVhclxuICAgIGxldCByZXNldCA9IHJlc2V0XG4gICAgbGV0IGNvcHkgPSBjb3B5XG5cbiAgICBsZXQga2V5X2luZGV4IGgga2V5ID1cbiAgICAgIChILmhhc2ggaC5zZWVkIGtleSkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG5cbiAgICBsZXQgYWRkIGgga2V5IGRhdGEgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIGxldCBidWNrZXQgPSBDb25ze2tleTsgZGF0YTsgbmV4dD1oLmRhdGEuKGkpfSBpblxuICAgICAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcblxuICAgIGxldCByZWMgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IHByZWMgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICgpXG4gICAgICB8IChDb25zIHtrZXk9azsgbmV4dH0pIGFzIGMgLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiBiZWdpblxuICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBuZXh0XG4gICAgICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gbmV4dFxuICAgICAgICAgIGVuZFxuICAgICAgICAgIGVsc2UgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IGMgbmV4dFxuXG4gICAgbGV0IHJlbW92ZSBoIGtleSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IEVtcHR5IGguZGF0YS4oaSlcblxuICAgIGxldCByZWMgZmluZF9yZWMga2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrIHRoZW4gZGF0YSBlbHNlIGZpbmRfcmVjIGtleSBuZXh0XG5cbiAgICBsZXQgZmluZCBoIGtleSA9XG4gICAgICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazEgdGhlbiBkMSBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazIgdGhlbiBkMiBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGszIHRoZW4gZDMgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dDNcblxuICAgIGxldCByZWMgZmluZF9yZWNfb3B0IGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsgdGhlbiBTb21lIGRhdGEgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHRcblxuICAgIGxldCBmaW5kX29wdCBoIGtleSA9XG4gICAgICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsxIHRoZW4gU29tZSBkMSBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsyIHRoZW4gU29tZSBkMiBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMyB0aGVuIFNvbWUgZDMgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHQzXG5cbiAgICBsZXQgZmluZF9hbGwgaCBrZXkgPVxuICAgICAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgW11cbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YT1kOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIGQgOjogZmluZF9pbl9idWNrZXQgbmV4dFxuICAgICAgICAgIGVsc2UgZmluZF9pbl9idWNrZXQgbmV4dCBpblxuICAgICAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbiAgICBsZXQgcmVjIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IENvbnMgKHtrZXk9azsgbmV4dH0gYXMgc2xvdCkgLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiAoc2xvdC5rZXkgPC0ga2V5OyBzbG90LmRhdGEgPC0gZGF0YTsgZmFsc2UpXG4gICAgICAgICAgZWxzZSByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBuZXh0XG5cbiAgICBsZXQgcmVwbGFjZSBoIGtleSBkYXRhID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgICAgIGlmIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIGwgdGhlbiBiZWdpblxuICAgICAgICBoLmRhdGEuKGkpIDwtIENvbnN7a2V5OyBkYXRhOyBuZXh0PWx9O1xuICAgICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuICAgICAgZW5kXG5cbiAgICBsZXQgbWVtIGgga2V5ID1cbiAgICAgIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29uc3trZXk9azsgbmV4dH0gLT5cbiAgICAgICAgICBILmVxdWFsIGsga2V5IHx8IG1lbV9pbl9idWNrZXQgbmV4dCBpblxuICAgICAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxuICAgIGxldCBhZGRfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxuICAgIGxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG5cbiAgICBsZXQgaXRlciA9IGl0ZXJcbiAgICBsZXQgZmlsdGVyX21hcF9pbnBsYWNlID0gZmlsdGVyX21hcF9pbnBsYWNlXG4gICAgbGV0IGZvbGQgPSBmb2xkXG4gICAgbGV0IGxlbmd0aCA9IGxlbmd0aFxuICAgIGxldCBzdGF0cyA9IHN0YXRzXG4gICAgbGV0IHRvX3NlcSA9IHRvX3NlcVxuICAgIGxldCB0b19zZXFfa2V5cyA9IHRvX3NlcV9rZXlzXG4gICAgbGV0IHRvX3NlcV92YWx1ZXMgPSB0b19zZXFfdmFsdWVzXG4gIGVuZFxuXG5tb2R1bGUgTWFrZShIOiBIYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbigqIFBvbHltb3JwaGljIGhhc2ggZnVuY3Rpb24tYmFzZWQgdGFibGVzICopXG4oKiBDb2RlIGluY2x1ZGVkIGJlbG93IHRoZSBmdW5jdG9yaWFsIGludGVyZmFjZSB0byBndWFyZCBhZ2FpbnN0IGFjY2lkZW50YWxcbiAgIHVzZSAtIHNlZSAjMjIwMiAqKVxuXG5leHRlcm5hbCBzZWVkZWRfaGFzaF9wYXJhbSA6XG4gIGludCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IGludCA9IFwiY2FtbF9oYXNoXCIgW0BAbm9hbGxvY11cblxubGV0IGhhc2ggeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCAwIHhcbmxldCBoYXNoX3BhcmFtIG4xIG4yIHggPSBzZWVkZWRfaGFzaF9wYXJhbSBuMSBuMiAwIHhcbmxldCBzZWVkZWRfaGFzaCBzZWVkIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgc2VlZCB4XG5cbmxldCBrZXlfaW5kZXggaCBrZXkgPVxuICBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNFxuICB0aGVuIChzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgaC5zZWVkIGtleSkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJIYXNodGJsOiB1bnN1cHBvcnRlZCBoYXNoIHRhYmxlIGZvcm1hdFwiXG5cbmxldCBhZGQgaCBrZXkgZGF0YSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIGxldCBidWNrZXQgPSBDb25ze2tleTsgZGF0YTsgbmV4dD1oLmRhdGEuKGkpfSBpblxuICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcblxubGV0IHJlYyByZW1vdmVfYnVja2V0IGggaSBrZXkgcHJlYyA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgICgpXG4gIHwgKENvbnMge2tleT1rOyBuZXh0fSkgYXMgYyAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gYmVnaW5cbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gbmV4dFxuICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gbmV4dFxuICAgICAgZW5kXG4gICAgICBlbHNlIHJlbW92ZV9idWNrZXQgaCBpIGtleSBjIG5leHRcblxubGV0IHJlbW92ZSBoIGtleSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIHJlbW92ZV9idWNrZXQgaCBpIGtleSBFbXB0eSBoLmRhdGEuKGkpXG5cbmxldCByZWMgZmluZF9yZWMga2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsgPSAwIHRoZW4gZGF0YSBlbHNlIGZpbmRfcmVjIGtleSBuZXh0XG5cbmxldCBmaW5kIGgga2V5ID1cbiAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsxID0gMCB0aGVuIGQxIGVsc2VcbiAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGsyID0gMCB0aGVuIGQyIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMyA9IDAgdGhlbiBkMyBlbHNlIGZpbmRfcmVjIGtleSBuZXh0M1xuXG5sZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBOb25lXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsgPSAwIHRoZW4gU29tZSBkYXRhIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0XG5cbmxldCBmaW5kX29wdCBoIGtleSA9XG4gIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gIHwgRW1wdHkgLT4gTm9uZVxuICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgazEgPSAwIHRoZW4gU29tZSBkMSBlbHNlXG4gICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgaWYgY29tcGFyZSBrZXkgazIgPSAwIHRoZW4gU29tZSBkMiBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGszID0gMCB0aGVuIFNvbWUgZDMgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHQzXG5cbmxldCBmaW5kX2FsbCBoIGtleSA9XG4gIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBbXVxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiBkYXRhIDo6IGZpbmRfaW5fYnVja2V0IG5leHRcbiAgICAgIGVsc2UgZmluZF9pbl9idWNrZXQgbmV4dCBpblxuICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxubGV0IHJlYyByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh7a2V5PWs7IG5leHR9IGFzIHNsb3QpIC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiAoc2xvdC5rZXkgPC0ga2V5OyBzbG90LmRhdGEgPC0gZGF0YTsgZmFsc2UpXG4gICAgICBlbHNlIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIG5leHRcblxubGV0IHJlcGxhY2UgaCBrZXkgZGF0YSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIGxldCBsID0gaC5kYXRhLihpKSBpblxuICBpZiByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBsIHRoZW4gYmVnaW5cbiAgICBoLmRhdGEuKGkpIDwtIENvbnN7a2V5OyBkYXRhOyBuZXh0PWx9O1xuICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcbiAgZW5kXG5cbmxldCBtZW0gaCBrZXkgPVxuICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBmYWxzZVxuICB8IENvbnN7a2V5PWs7IG5leHR9IC0+XG4gICAgICBjb21wYXJlIGsga2V5ID0gMCB8fCBtZW1faW5fYnVja2V0IG5leHQgaW5cbiAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxubGV0IGFkZF9zZXEgdGJsIGkgPVxuICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbmxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gIHRibFxuXG5sZXQgcmVidWlsZCA/KHJhbmRvbSA9ICFyYW5kb21pemVkKSBoID1cbiAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IChBcnJheS5sZW5ndGggaC5kYXRhKSBpblxuICBsZXQgc2VlZCA9XG4gICAgaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZylcbiAgICBlbHNlIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0IHRoZW4gaC5zZWVkXG4gICAgZWxzZSAwIGluXG4gIGxldCBoJyA9IHtcbiAgICBzaXplID0gaC5zaXplO1xuICAgIGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHk7XG4gICAgc2VlZCA9IHNlZWQ7XG4gICAgaW5pdGlhbF9zaXplID0gaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDQgdGhlbiBoLmluaXRpYWxfc2l6ZSBlbHNlIHNcbiAgfSBpblxuICBpbnNlcnRfYWxsX2J1Y2tldHMgKGtleV9pbmRleCBoJykgZmFsc2UgaC5kYXRhIGgnLmRhdGE7XG4gIGgnXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiBXZWFrIGFycmF5IG9wZXJhdGlvbnMgKilcblxudHlwZSAhJ2EgdFxuXG5leHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gJ2EgdCA9IFwiY2FtbF93ZWFrX2NyZWF0ZVwiXG5cbmxldCBjcmVhdGUgbCA9XG4gIGlmIG5vdCAoMCA8PSBsICYmIGwgPD0gT2JqLkVwaGVtZXJvbi5tYXhfZXBoZV9sZW5ndGgpIHRoZW5cbiAgICBpbnZhbGlkX2FyZyhcIldlYWsuY3JlYXRlXCIpO1xuICBjcmVhdGUgbFxuXG4oKiogbnVtYmVyIG9mIGFkZGl0aW9uYWwgdmFsdWVzIGluIGEgd2VhayBwb2ludGVyICopXG5sZXQgYWRkaXRpb25hbF92YWx1ZXMgPSAyXG5cbmxldCBsZW5ndGggeCA9IE9iai5zaXplKE9iai5yZXByIHgpIC0gYWRkaXRpb25hbF92YWx1ZXNcblxubGV0IHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBtc2cgPVxuICBpZiBub3QgKDAgPD0gbyAmJiBvIDwgbGVuZ3RoIGUpIHRoZW5cbiAgICBpbnZhbGlkX2FyZyhtc2cpXG5cbmV4dGVybmFsIHNldCcgOiAnYSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2VwaGVfc2V0X2tleVwiXG5leHRlcm5hbCB1bnNldCA6ICdhIHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfZXBoZV91bnNldF9rZXlcIlxubGV0IHNldCBlIG8geCA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuc2V0XCI7XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4gdW5zZXQgZSBvXG4gIHwgU29tZSB4IC0+IHNldCcgZSBvIHhcblxuZXh0ZXJuYWwgZ2V0IDogJ2EgdCAtPiBpbnQgLT4gJ2Egb3B0aW9uID0gXCJjYW1sX3dlYWtfZ2V0XCJcbmxldCBnZXQgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5nZXRcIjtcbiAgZ2V0IGUgb1xuXG5leHRlcm5hbCBnZXRfY29weSA6ICdhIHQgLT4gaW50IC0+ICdhIG9wdGlvbiA9IFwiY2FtbF93ZWFrX2dldF9jb3B5XCJcbmxldCBnZXRfY29weSBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmdldF9jb3B5XCI7XG4gIGdldF9jb3B5IGUgb1xuXG5leHRlcm5hbCBjaGVjayA6ICdhIHQgLT4gaW50IC0+IGJvb2wgPSBcImNhbWxfd2Vha19jaGVja1wiXG5sZXQgY2hlY2sgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5jaGVja1wiO1xuICBjaGVjayBlIG9cblxuZXh0ZXJuYWwgYmxpdCA6ICdhIHQgLT4gaW50IC0+ICdhIHQgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX3dlYWtfYmxpdFwiXG5cbigqIGJsaXQ6IHNyYyBzcmNvZmYgZHN0IGRzdG9mZiBsZW4gKilcbmxldCBibGl0IGUxIG8xIGUyIG8yIGwgPVxuICBpZiBsIDwgMCB8fCBvMSA8IDAgfHwgbzEgPiBsZW5ndGggZTEgLSBsXG4gICAgIHx8IG8yIDwgMCB8fCBvMiA+IGxlbmd0aCBlMiAtIGxcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIldlYWsuYmxpdFwiXG4gIGVsc2UgaWYgbCA8PiAwIHRoZW4gYmxpdCBlMSBvMSBlMiBvMiBsXG5cbmxldCBmaWxsIGFyIG9mcyBsZW4geCA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYXIgLSBsZW5cbiAgdGhlbiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIldlYWsuZmlsbFwiKVxuICBlbHNlIGJlZ2luXG4gICAgZm9yIGkgPSBvZnMgdG8gKG9mcyArIGxlbiAtIDEpIGRvXG4gICAgICBzZXQgYXIgaSB4XG4gICAgZG9uZVxuICBlbmRcblxuXG4oKiogV2VhayBoYXNoIHRhYmxlcyAqKVxuXG5tb2R1bGUgdHlwZSBTID0gc2lnXG4gIHR5cGUgZGF0YVxuICB0eXBlIHRcbiAgdmFsIGNyZWF0ZSA6IGludCAtPiB0XG4gIHZhbCBjbGVhciA6IHQgLT4gdW5pdFxuICB2YWwgbWVyZ2UgOiB0IC0+IGRhdGEgLT4gZGF0YVxuICB2YWwgYWRkIDogdCAtPiBkYXRhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6IHQgLT4gZGF0YSAtPiB1bml0XG4gIHZhbCBmaW5kIDogdCAtPiBkYXRhIC0+IGRhdGFcbiAgdmFsIGZpbmRfb3B0IDogdCAtPiBkYXRhIC0+IGRhdGEgb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6IHQgLT4gZGF0YSAtPiBkYXRhIGxpc3RcbiAgdmFsIG1lbSA6IHQgLT4gZGF0YSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGRhdGEgLT4gdW5pdCkgLT4gdCAtPiB1bml0XG4gIHZhbCBmb2xkIDogKGRhdGEgLT4gJ2EgLT4gJ2EpIC0+IHQgLT4gJ2EgLT4gJ2FcbiAgdmFsIGNvdW50IDogdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogdCAtPiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnRcbmVuZFxuXG5tb2R1bGUgTWFrZSAoSCA6IEhhc2h0YmwuSGFzaGVkVHlwZSkgOiAoUyB3aXRoIHR5cGUgZGF0YSA9IEgudCkgPSBzdHJ1Y3RcblxuICB0eXBlICdhIHdlYWtfdCA9ICdhIHRcbiAgbGV0IHdlYWtfY3JlYXRlID0gY3JlYXRlXG4gIGxldCBlbXB0eWJ1Y2tldCA9IHdlYWtfY3JlYXRlIDBcblxuICB0eXBlIGRhdGEgPSBILnRcblxuICB0eXBlIHQgPSB7XG4gICAgbXV0YWJsZSB0YWJsZSA6IGRhdGEgd2Vha190IGFycmF5O1xuICAgIG11dGFibGUgaGFzaGVzIDogaW50IGFycmF5IGFycmF5O1xuICAgIG11dGFibGUgbGltaXQgOiBpbnQ7ICAgICAgICAgICAgICAgKCogYnVja2V0IHNpemUgbGltaXQgKilcbiAgICBtdXRhYmxlIG92ZXJzaXplIDogaW50OyAgICAgICAgICAgICgqIG51bWJlciBvZiBvdmVyc2l6ZSBidWNrZXRzICopXG4gICAgbXV0YWJsZSByb3ZlciA6IGludDsgICAgICAgICAgICAgICAoKiBmb3IgaW50ZXJuYWwgYm9va2tlZXBpbmcgKilcbiAgfVxuXG4gIGxldCBnZXRfaW5kZXggdCBoID0gKGggbGFuZCBtYXhfaW50KSBtb2QgKEFycmF5Lmxlbmd0aCB0LnRhYmxlKVxuXG4gIGxldCBsaW1pdCA9IDdcbiAgbGV0IG92ZXJfbGltaXQgPSAyXG5cbiAgbGV0IGNyZWF0ZSBzeiA9XG4gICAgbGV0IHN6ID0gaWYgc3ogPCA3IHRoZW4gNyBlbHNlIHN6IGluXG4gICAgbGV0IHN6ID0gaWYgc3ogPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIFN5cy5tYXhfYXJyYXlfbGVuZ3RoIGVsc2Ugc3ogaW5cbiAgICB7XG4gICAgICB0YWJsZSA9IEFycmF5Lm1ha2Ugc3ogZW1wdHlidWNrZXQ7XG4gICAgICBoYXNoZXMgPSBBcnJheS5tYWtlIHN6IFt8IHxdO1xuICAgICAgbGltaXQgPSBsaW1pdDtcbiAgICAgIG92ZXJzaXplID0gMDtcbiAgICAgIHJvdmVyID0gMDtcbiAgICB9XG5cbiAgbGV0IGNsZWFyIHQgPVxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggdC50YWJsZSAtIDEgZG9cbiAgICAgIHQudGFibGUuKGkpIDwtIGVtcHR5YnVja2V0O1xuICAgICAgdC5oYXNoZXMuKGkpIDwtIFt8IHxdO1xuICAgIGRvbmU7XG4gICAgdC5saW1pdCA8LSBsaW1pdDtcbiAgICB0Lm92ZXJzaXplIDwtIDBcblxuXG4gIGxldCBmb2xkIGYgdCBpbml0ID1cbiAgICBsZXQgcmVjIGZvbGRfYnVja2V0IGkgYiBhY2N1ID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiBhY2N1IGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgICAgfCBTb21lIHYgLT4gZm9sZF9idWNrZXQgKGkrMSkgYiAoZiB2IGFjY3UpXG4gICAgICB8IE5vbmUgLT4gZm9sZF9idWNrZXQgKGkrMSkgYiBhY2N1XG4gICAgaW5cbiAgICBBcnJheS5mb2xkX3JpZ2h0IChmb2xkX2J1Y2tldCAwKSB0LnRhYmxlIGluaXRcblxuXG4gIGxldCBpdGVyIGYgdCA9XG4gICAgbGV0IHJlYyBpdGVyX2J1Y2tldCBpIGIgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuICgpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgICAgfCBTb21lIHYgLT4gZiB2OyBpdGVyX2J1Y2tldCAoaSsxKSBiXG4gICAgICB8IE5vbmUgLT4gaXRlcl9idWNrZXQgKGkrMSkgYlxuICAgIGluXG4gICAgQXJyYXkuaXRlciAoaXRlcl9idWNrZXQgMCkgdC50YWJsZVxuXG5cbiAgbGV0IGl0ZXJfd2VhayBmIHQgPVxuICAgIGxldCByZWMgaXRlcl9idWNrZXQgaSBqIGIgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuICgpIGVsc2VcbiAgICAgIG1hdGNoIGNoZWNrIGIgaSB3aXRoXG4gICAgICB8IHRydWUgLT4gZiBiIHQuaGFzaGVzLihqKSBpOyBpdGVyX2J1Y2tldCAoaSsxKSBqIGJcbiAgICAgIHwgZmFsc2UgLT4gaXRlcl9idWNrZXQgKGkrMSkgaiBiXG4gICAgaW5cbiAgICBBcnJheS5pdGVyaSAoaXRlcl9idWNrZXQgMCkgdC50YWJsZVxuXG5cbiAgbGV0IHJlYyBjb3VudF9idWNrZXQgaSBiIGFjY3UgPVxuICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiBhY2N1IGVsc2VcbiAgICBjb3VudF9idWNrZXQgKGkrMSkgYiAoYWNjdSArIChpZiBjaGVjayBiIGkgdGhlbiAxIGVsc2UgMCkpXG5cblxuICBsZXQgY291bnQgdCA9XG4gICAgQXJyYXkuZm9sZF9yaWdodCAoY291bnRfYnVja2V0IDApIHQudGFibGUgMFxuXG5cbiAgbGV0IG5leHRfc3ogbiA9IEludC5taW4gKDMgKiBuIC8gMiArIDMpIFN5cy5tYXhfYXJyYXlfbGVuZ3RoXG4gIGxldCBwcmV2X3N6IG4gPSAoKG4gLSAzKSAqIDIgKyAyKSAvIDNcblxuICBsZXQgdGVzdF9zaHJpbmtfYnVja2V0IHQgPVxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLih0LnJvdmVyKSBpblxuICAgIGxldCBoYnVja2V0ID0gdC5oYXNoZXMuKHQucm92ZXIpIGluXG4gICAgbGV0IGxlbiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcHJldl9sZW4gPSBwcmV2X3N6IGxlbiBpblxuICAgIGxldCBsaXZlID0gY291bnRfYnVja2V0IDAgYnVja2V0IDAgaW5cbiAgICBpZiBsaXZlIDw9IHByZXZfbGVuIHRoZW4gYmVnaW5cbiAgICAgIGxldCByZWMgbG9vcCBpIGogPVxuICAgICAgICBpZiBqID49IHByZXZfbGVuIHRoZW4gYmVnaW5cbiAgICAgICAgICBpZiBjaGVjayBidWNrZXQgaSB0aGVuIGxvb3AgKGkgKyAxKSBqXG4gICAgICAgICAgZWxzZSBpZiBjaGVjayBidWNrZXQgaiB0aGVuIGJlZ2luXG4gICAgICAgICAgICBibGl0IGJ1Y2tldCBqIGJ1Y2tldCBpIDE7XG4gICAgICAgICAgICBoYnVja2V0LihpKSA8LSBoYnVja2V0LihqKTtcbiAgICAgICAgICAgIGxvb3AgKGkgKyAxKSAoaiAtIDEpO1xuICAgICAgICAgIGVuZCBlbHNlIGxvb3AgaSAoaiAtIDEpO1xuICAgICAgICBlbmQ7XG4gICAgICBpblxuICAgICAgbG9vcCAwIChsZW5ndGggYnVja2V0IC0gMSk7XG4gICAgICBpZiBwcmV2X2xlbiA9IDAgdGhlbiBiZWdpblxuICAgICAgICB0LnRhYmxlLih0LnJvdmVyKSA8LSBlbXB0eWJ1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKHQucm92ZXIpIDwtIFt8IHxdO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IG5ld2J1Y2tldCA9IHdlYWtfY3JlYXRlIHByZXZfbGVuIGluXG4gICAgICAgIGJsaXQgYnVja2V0IDAgbmV3YnVja2V0IDAgcHJldl9sZW47XG4gICAgICAgIHQudGFibGUuKHQucm92ZXIpIDwtIG5ld2J1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKHQucm92ZXIpIDwtIEFycmF5LnN1YiBoYnVja2V0IDAgcHJldl9sZW5cbiAgICAgIGVuZDtcbiAgICAgIGlmIGxlbiA+IHQubGltaXQgJiYgcHJldl9sZW4gPD0gdC5saW1pdCB0aGVuIHQub3ZlcnNpemUgPC0gdC5vdmVyc2l6ZSAtIDE7XG4gICAgZW5kO1xuICAgIHQucm92ZXIgPC0gKHQucm92ZXIgKyAxKSBtb2QgKEFycmF5Lmxlbmd0aCB0LnRhYmxlKVxuXG5cbiAgbGV0IHJlYyByZXNpemUgdCA9XG4gICAgbGV0IG9sZGxlbiA9IEFycmF5Lmxlbmd0aCB0LnRhYmxlIGluXG4gICAgbGV0IG5ld2xlbiA9IG5leHRfc3ogb2xkbGVuIGluXG4gICAgaWYgbmV3bGVuID4gb2xkbGVuIHRoZW4gYmVnaW5cbiAgICAgIGxldCBuZXd0ID0gY3JlYXRlIG5ld2xlbiBpblxuICAgICAgbGV0IGFkZF93ZWFrIG9iIG9oIG9pID1cbiAgICAgICAgbGV0IHNldHRlciBuYiBuaSBfID0gYmxpdCBvYiBvaSBuYiBuaSAxIGluXG4gICAgICAgIGxldCBoID0gb2guKG9pKSBpblxuICAgICAgICBhZGRfYXV4IG5ld3Qgc2V0dGVyIE5vbmUgaCAoZ2V0X2luZGV4IG5ld3QgaCk7XG4gICAgICBpblxuICAgICAgaXRlcl93ZWFrIGFkZF93ZWFrIHQ7XG4gICAgICB0LnRhYmxlIDwtIG5ld3QudGFibGU7XG4gICAgICB0Lmhhc2hlcyA8LSBuZXd0Lmhhc2hlcztcbiAgICAgIHQubGltaXQgPC0gbmV3dC5saW1pdDtcbiAgICAgIHQub3ZlcnNpemUgPC0gbmV3dC5vdmVyc2l6ZTtcbiAgICAgIHQucm92ZXIgPC0gdC5yb3ZlciBtb2QgQXJyYXkubGVuZ3RoIG5ld3QudGFibGU7XG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgIHQubGltaXQgPC0gbWF4X2ludDsgICAgICAgICAgICAgKCogbWF4aW11bSBzaXplIGFscmVhZHkgcmVhY2hlZCAqKVxuICAgICAgdC5vdmVyc2l6ZSA8LSAwO1xuICAgIGVuZFxuXG4gIGFuZCBhZGRfYXV4IHQgc2V0dGVyIGQgaCBpbmRleCA9XG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBiZWdpblxuICAgICAgICBsZXQgbmV3c3ogPVxuICAgICAgICAgIEludC5taW4gKDMgKiBzeiAvIDIgKyAzKSAoU3lzLm1heF9hcnJheV9sZW5ndGggLSBhZGRpdGlvbmFsX3ZhbHVlcylcbiAgICAgICAgaW5cbiAgICAgICAgaWYgbmV3c3ogPD0gc3ogdGhlbiBmYWlsd2l0aCBcIldlYWsuTWFrZTogaGFzaCBidWNrZXQgY2Fubm90IGdyb3cgbW9yZVwiO1xuICAgICAgICBsZXQgbmV3YnVja2V0ID0gd2Vha19jcmVhdGUgbmV3c3ogaW5cbiAgICAgICAgbGV0IG5ld2hhc2hlcyA9IEFycmF5Lm1ha2UgbmV3c3ogMCBpblxuICAgICAgICBibGl0IGJ1Y2tldCAwIG5ld2J1Y2tldCAwIHN6O1xuICAgICAgICBBcnJheS5ibGl0IGhhc2hlcyAwIG5ld2hhc2hlcyAwIHN6O1xuICAgICAgICBzZXR0ZXIgbmV3YnVja2V0IHN6IGQ7XG4gICAgICAgIG5ld2hhc2hlcy4oc3opIDwtIGg7XG4gICAgICAgIHQudGFibGUuKGluZGV4KSA8LSBuZXdidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLihpbmRleCkgPC0gbmV3aGFzaGVzO1xuICAgICAgICBpZiBzeiA8PSB0LmxpbWl0ICYmIG5ld3N6ID4gdC5saW1pdCB0aGVuIGJlZ2luXG4gICAgICAgICAgdC5vdmVyc2l6ZSA8LSB0Lm92ZXJzaXplICsgMTtcbiAgICAgICAgICBmb3IgX2kgPSAwIHRvIG92ZXJfbGltaXQgZG8gdGVzdF9zaHJpbmtfYnVja2V0IHQgZG9uZTtcbiAgICAgICAgZW5kO1xuICAgICAgICBpZiB0Lm92ZXJzaXplID4gQXJyYXkubGVuZ3RoIHQudGFibGUgLyBvdmVyX2xpbWl0IHRoZW4gcmVzaXplIHQ7XG4gICAgICBlbmQgZWxzZSBpZiBjaGVjayBidWNrZXQgaSB0aGVuIGJlZ2luXG4gICAgICAgIGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0dGVyIGJ1Y2tldCBpIGQ7XG4gICAgICAgIGhhc2hlcy4oaSkgPC0gaDtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IGFkZCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBhZGRfYXV4IHQgc2V0IChTb21lIGQpIGggKGdldF9pbmRleCB0IGgpXG5cblxuICBsZXQgZmluZF9vciB0IGQgaWZub3Rmb3VuZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGlmbm90Zm91bmQgaCBpbmRleFxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgdiAtPiB2XG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSlcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgbWVyZ2UgdCBkID1cbiAgICBmaW5kX29yIHQgZCAoZnVuIGggaW5kZXggLT4gYWRkX2F1eCB0IHNldCAoU29tZSBkKSBoIGluZGV4OyBkKVxuXG5cbiAgbGV0IGZpbmQgdCBkID0gZmluZF9vciB0IGQgKGZ1biBfaCBfaW5kZXggLT4gcmFpc2UgTm90X2ZvdW5kKVxuXG4gIGxldCBmaW5kX29wdCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBOb25lXG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBfIGFzIHYgLT4gdlxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IGZpbmRfc2hhZG93IHQgZCBpZmZvdW5kIGlmbm90Zm91bmQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBpZm5vdGZvdW5kXG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkIC0+IGlmZm91bmQgYnVja2V0IGlcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCByZW1vdmUgdCBkID0gZmluZF9zaGFkb3cgdCBkIChmdW4gdyBpIC0+IHNldCB3IGkgTm9uZSkgKClcblxuXG4gIGxldCBtZW0gdCBkID0gZmluZF9zaGFkb3cgdCBkIChmdW4gX3cgX2kgLT4gdHJ1ZSkgZmFsc2VcblxuXG4gIGxldCBmaW5kX2FsbCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpIGFjY3UgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGFjY3VcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHYgLT4gbG9vcCAoaSArIDEpICh2IDo6IGFjY3UpXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSkgYWNjdVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSkgYWNjdVxuICAgIGluXG4gICAgbG9vcCAwIFtdXG5cblxuICBsZXQgc3RhdHMgdCA9XG4gICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCB0LnRhYmxlIGluXG4gICAgbGV0IGxlbnMgPSBBcnJheS5tYXAgbGVuZ3RoIHQudGFibGUgaW5cbiAgICBBcnJheS5zb3J0IGNvbXBhcmUgbGVucztcbiAgICBsZXQgdG90bGVuID0gQXJyYXkuZm9sZF9sZWZ0ICggKyApIDAgbGVucyBpblxuICAgIChsZW4sIGNvdW50IHQsIHRvdGxlbiwgbGVucy4oMCksIGxlbnMuKGxlbi8yKSwgbGVucy4obGVuLTEpKVxuXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBIHByZXR0eS1wcmludGluZyBmYWNpbGl0eSBhbmQgZGVmaW5pdGlvbiBvZiBmb3JtYXR0ZXJzIGZvciAncGFyYWxsZWwnXG4gICAoaS5lLiB1bnJlbGF0ZWQgb3IgaW5kZXBlbmRlbnQpIHByZXR0eS1wcmludGluZyBvbiBtdWx0aXBsZSBvdXQgY2hhbm5lbHMuICopXG5cbigqXG4gICBUaGUgcHJldHR5LXByaW50aW5nIGVuZ2luZSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMuXG4qKVxuXG5sZXQgaWQgeCA9IHhcblxuKCogQSBkZXZvdGVkIHR5cGUgZm9yIHNpemVzIHRvIGF2b2lkIGNvbmZ1c2lvblxuICAgYmV0d2VlbiBzaXplcyBhbmQgbWVyZSBpbnRlZ2Vycy4gKilcbm1vZHVsZSBTaXplIDogc2lnXG4gIHR5cGUgdFxuXG4gIHZhbCB0b19pbnQgOiB0IC0+IGludFxuICB2YWwgb2ZfaW50IDogaW50IC0+IHRcbiAgdmFsIHplcm8gOiB0XG4gIHZhbCB1bmtub3duIDogdFxuICB2YWwgaXNfa25vd24gOiB0IC0+IGJvb2xcbmVuZCAgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gaW50XG5cbiAgbGV0IHRvX2ludCA9IGlkXG4gIGxldCBvZl9pbnQgPSBpZFxuICBsZXQgemVybyA9IDBcbiAgbGV0IHVua25vd24gPSAtMVxuICBsZXQgaXNfa25vd24gbiA9IG4gPj0gMFxuZW5kXG5cblxuXG4oKiBUaGUgcHJldHR5LXByaW50aW5nIGJveGVzIGRlZmluaXRpb246XG4gICBhIHByZXR0eS1wcmludGluZyBib3ggaXMgZWl0aGVyXG4gICAtIGhib3g6IGhvcml6b250YWwgYm94IChubyBsaW5lIHNwbGl0dGluZylcbiAgIC0gdmJveDogdmVydGljYWwgYm94IChldmVyeSBicmVhayBoaW50IHNwbGl0cyB0aGUgbGluZSlcbiAgIC0gaHZib3g6IGhvcml6b250YWwvdmVydGljYWwgYm94XG4gICAgICh0aGUgYm94IGJlaGF2ZXMgYXMgYW4gaG9yaXpvbnRhbCBib3ggaWYgaXQgZml0cyBvblxuICAgICAgdGhlIGN1cnJlbnQgbGluZSwgb3RoZXJ3aXNlIHRoZSBib3ggYmVoYXZlcyBhcyBhIHZlcnRpY2FsIGJveClcbiAgIC0gaG92Ym94OiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGNvbXBhY3RpbmcgYm94XG4gICAgICh0aGUgYm94IGlzIGNvbXBhY3RpbmcgbWF0ZXJpYWwsIHByaW50aW5nIGFzIG11Y2ggbWF0ZXJpYWwgYXMgcG9zc2libGVcbiAgICAgIG9uIGV2ZXJ5IGxpbmVzKVxuICAgLSBib3g6IGhvcml6b250YWwgb3IgdmVydGljYWwgY29tcGFjdGluZyBib3ggd2l0aCBlbmhhbmNlZCBib3ggc3RydWN0dXJlXG4gICAgICh0aGUgYm94IGJlaGF2ZXMgYXMgYW4gaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBib3ggYnV0IGJyZWFrIGhpbnRzIHNwbGl0XG4gICAgICB0aGUgbGluZSBpZiBzcGxpdHRpbmcgd291bGQgbW92ZSB0byB0aGUgbGVmdClcbiopXG50eXBlIGJveF90eXBlID0gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmJsb2NrX3R5cGUgPVxuICB8IFBwX2hib3ggfCBQcF92Ym94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggfCBQcF9maXRzXG5cblxuKCogVGhlIHByZXR0eS1wcmludGluZyB0b2tlbnMgZGVmaW5pdGlvbjpcbiAgIGFyZSBlaXRoZXIgdGV4dCB0byBwcmludCBvciBwcmV0dHkgcHJpbnRpbmdcbiAgIGVsZW1lbnRzIHRoYXQgZHJpdmUgaW5kZW50YXRpb24gYW5kIGxpbmUgc3BsaXR0aW5nLiAqKVxudHlwZSBwcF90b2tlbiA9XG4gIHwgUHBfdGV4dCBvZiBzdHJpbmcgICAgICAgICAgKCogbm9ybWFsIHRleHQgKilcbiAgfCBQcF9icmVhayBvZiB7ICAgICAgICAgICAgICAoKiBjb21wbGV0ZSBicmVhayAqKVxuICAgICAgZml0czogc3RyaW5nICogaW50ICogc3RyaW5nOyAgICgqIGxpbmUgaXMgbm90IHNwbGl0ICopXG4gICAgICBicmVha3M6IHN0cmluZyAqIGludCAqIHN0cmluZzsgKCogbGluZSBpcyBzcGxpdCAqKVxuICAgIH1cbiAgfCBQcF90YnJlYWsgb2YgaW50ICogaW50ICAgICAoKiBnbyB0byBuZXh0IHRhYnVsYXRpb24gKilcbiAgfCBQcF9zdGFiICAgICAgICAgICAgICAgICAgICAoKiBzZXQgYSB0YWJ1bGF0aW9uICopXG4gIHwgUHBfYmVnaW4gb2YgaW50ICogYm94X3R5cGUgKCogYmVnaW5uaW5nIG9mIGEgYm94ICopXG4gIHwgUHBfZW5kICAgICAgICAgICAgICAgICAgICAgKCogZW5kIG9mIGEgYm94ICopXG4gIHwgUHBfdGJlZ2luIG9mIHRib3ggICAgICAgICAgKCogYmVnaW5uaW5nIG9mIGEgdGFidWxhdGlvbiBib3ggKilcbiAgfCBQcF90ZW5kICAgICAgICAgICAgICAgICAgICAoKiBlbmQgb2YgYSB0YWJ1bGF0aW9uIGJveCAqKVxuICB8IFBwX25ld2xpbmUgICAgICAgICAgICAgICAgICgqIHRvIGZvcmNlIGEgbmV3bGluZSBpbnNpZGUgYSBib3ggKilcbiAgfCBQcF9pZl9uZXdsaW5lICAgICAgICAgICAgICAoKiB0byBkbyBzb21ldGhpbmcgb25seSBpZiB0aGlzIHZlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lIGhhcyBiZWVuIGJyb2tlbiAqKVxuICB8IFBwX29wZW5fdGFnIG9mIHN0YWcgICAgICAgICAoKiBvcGVuaW5nIGEgdGFnIG5hbWUgKilcbiAgfCBQcF9jbG9zZV90YWcgICAgICAgICAgICAgICAoKiBjbG9zaW5nIHRoZSBtb3N0IHJlY2VudGx5IG9wZW4gdGFnICopXG5cbmFuZCBzdGFnID0gLi5cblxuYW5kIHRib3ggPSBQcF90Ym94IG9mIGludCBsaXN0IHJlZiAgKCogVGFidWxhdGlvbiBib3ggKilcblxudHlwZSB0YWcgPSBzdHJpbmdcbnR5cGUgc3RhZyArPSBTdHJpbmdfdGFnIG9mIHRhZ1xuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZTpcbiAgIHByZXR0eS1wcmludGluZyBtYXRlcmlhbCBpcyBub3Qgd3JpdHRlbiBpbiB0aGUgb3V0cHV0IGFzIHNvb24gYXMgZW1pdHRlZDtcbiAgIGluc3RlYWQsIHRoZSBtYXRlcmlhbCBpcyBzaW1wbHkgcmVjb3JkZWQgaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLFxuICAgdW50aWwgdGhlIGVuY2xvc2luZyBib3ggaGFzIGEga25vd24gY29tcHV0ZWQgc2l6ZSBhbmQgcHJvcGVyIHNwbGl0dGluZ1xuICAgZGVjaXNpb25zIGNhbiBiZSBtYWRlLlxuXG4gICBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUgY29udGFpbnMgZm9ybWF0dGluZyBlbGVtZW50cyB0byBiZSBwcmludGVkLlxuICAgRWFjaCBmb3JtYXR0aW5nIGVsZW1lbnQgaXMgYSB0dXBsZSAoc2l6ZSwgdG9rZW4sIGxlbmd0aCksIHdoZXJlXG4gICAtIGxlbmd0aCBpcyB0aGUgZGVjbGFyZWQgbGVuZ3RoIG9mIHRoZSB0b2tlbixcbiAgIC0gc2l6ZSBpcyBlZmZlY3RpdmUgc2l6ZSBvZiB0aGUgdG9rZW4gd2hlbiBpdCBpcyBwcmludGVkXG4gICAgIChzaXplIGlzIHNldCB3aGVuIHRoZSBzaXplIG9mIHRoZSBib3ggaXMga25vd24sIHNvIHRoYXQgc2l6ZSBvZiBicmVha1xuICAgICAgaGludHMgYXJlIGRlZmluaXRpdmUpLiAqKVxudHlwZSBwcF9xdWV1ZV9lbGVtID0ge1xuICBtdXRhYmxlIHNpemUgOiBTaXplLnQ7XG4gIHRva2VuIDogcHBfdG9rZW47XG4gIGxlbmd0aCA6IGludDtcbn1cblxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUgZGVmaW5pdGlvbi4gKilcbnR5cGUgcHBfcXVldWUgPSBwcF9xdWV1ZV9lbGVtIFF1ZXVlLnRcblxuKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLiAqKVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2s6IHNjYW5uaW5nIGVsZW1lbnQgZGVmaW5pdGlvbi4gKilcbnR5cGUgcHBfc2Nhbl9lbGVtID0ge1xuICBsZWZ0X3RvdGFsIDogaW50OyAoKiBWYWx1ZSBvZiBwcF9sZWZ0X3RvdGFsIHdoZW4gdGhlIGVsZW1lbnQgd2FzIGVucXVldWVkLiAqKVxuICBxdWV1ZV9lbGVtIDogcHBfcXVldWVfZWxlbVxufVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjazpcbiAgIHRoZSBmb3JtYXR0aW5nIHN0YWNrIGNvbnRhaW5zIHRoZSBkZXNjcmlwdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRseSBhY3RpdmVcbiAgIGJveGVzOyB0aGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjayBpcyB1c2VkIHRvIHNwbGl0IHRoZSBsaW5lc1xuICAgd2hpbGUgcHJpbnRpbmcgdG9rZW5zLiAqKVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjazogZm9ybWF0dGluZyBzdGFjayBlbGVtZW50IGRlZmluaXRpb24uXG4gICBFYWNoIHN0YWNrIGVsZW1lbnQgZGVzY3JpYmVzIGEgcHJldHR5LXByaW50aW5nIGJveC4gKilcbnR5cGUgcHBfZm9ybWF0X2VsZW0gPSB7IGJveF90eXBlIDogYm94X3R5cGU7IHdpZHRoIDogaW50IH1cblxuKCogVGhlIGZvcm1hdHRlciBkZWZpbml0aW9uLlxuICAgRWFjaCBmb3JtYXR0ZXIgdmFsdWUgaXMgYSBwcmV0dHktcHJpbnRlciBpbnN0YW5jZSB3aXRoIGFsbCBpdHNcbiAgIG1hY2hpbmVyeS4gKilcbnR5cGUgZm9ybWF0dGVyID0ge1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suICopXG4gIHBwX3NjYW5fc3RhY2sgOiBwcF9zY2FuX2VsZW0gU3RhY2sudDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2suICopXG4gIHBwX2Zvcm1hdF9zdGFjayA6IHBwX2Zvcm1hdF9lbGVtIFN0YWNrLnQ7XG4gIHBwX3Rib3hfc3RhY2sgOiB0Ym94IFN0YWNrLnQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBzZW1hbnRpY3MgdGFnIHN0YWNrLiAqKVxuICBwcF90YWdfc3RhY2sgOiBzdGFnIFN0YWNrLnQ7XG4gIHBwX21hcmtfc3RhY2sgOiBzdGFnIFN0YWNrLnQ7XG4gICgqIFZhbHVlIG9mIHJpZ2h0IG1hcmdpbi4gKilcbiAgbXV0YWJsZSBwcF9tYXJnaW4gOiBpbnQ7XG4gICgqIE1pbmltYWwgc3BhY2UgbGVmdCBiZWZvcmUgbWFyZ2luLCB3aGVuIG9wZW5pbmcgYSBib3guICopXG4gIG11dGFibGUgcHBfbWluX3NwYWNlX2xlZnQgOiBpbnQ7XG4gICgqIE1heGltdW0gdmFsdWUgb2YgaW5kZW50YXRpb246XG4gICAgIG5vIGJveCBjYW4gYmUgb3BlbmVkIGZ1cnRoZXIuICopXG4gIG11dGFibGUgcHBfbWF4X2luZGVudCA6IGludDtcbiAgKCogU3BhY2UgcmVtYWluaW5nIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG4gIG11dGFibGUgcHBfc3BhY2VfbGVmdCA6IGludDtcbiAgKCogQ3VycmVudCB2YWx1ZSBvZiBpbmRlbnRhdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9jdXJyZW50X2luZGVudCA6IGludDtcbiAgKCogVHJ1ZSB3aGVuIHRoZSBsaW5lIGhhcyBiZWVuIGJyb2tlbiBieSB0aGUgcHJldHR5LXByaW50ZXIuICopXG4gIG11dGFibGUgcHBfaXNfbmV3X2xpbmUgOiBib29sO1xuICAoKiBUb3RhbCB3aWR0aCBvZiB0b2tlbnMgYWxyZWFkeSBwcmludGVkLiAqKVxuICBtdXRhYmxlIHBwX2xlZnRfdG90YWwgOiBpbnQ7XG4gICgqIFRvdGFsIHdpZHRoIG9mIHRva2VucyBldmVyIHB1dCBpbiBxdWV1ZS4gKilcbiAgbXV0YWJsZSBwcF9yaWdodF90b3RhbCA6IGludDtcbiAgKCogQ3VycmVudCBudW1iZXIgb2Ygb3BlbiBib3hlcy4gKilcbiAgbXV0YWJsZSBwcF9jdXJyX2RlcHRoIDogaW50O1xuICAoKiBNYXhpbXVtIG51bWJlciBvZiBib3hlcyB3aGljaCBjYW4gYmUgc2ltdWx0YW5lb3VzbHkgb3Blbi4gKilcbiAgbXV0YWJsZSBwcF9tYXhfYm94ZXMgOiBpbnQ7XG4gICgqIEVsbGlwc2lzIHN0cmluZy4gKilcbiAgbXV0YWJsZSBwcF9lbGxpcHNpcyA6IHN0cmluZztcbiAgKCogT3V0cHV0IGZ1bmN0aW9uLiAqKVxuICBtdXRhYmxlIHBwX291dF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0O1xuICAoKiBGbHVzaGluZyBmdW5jdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9vdXRfZmx1c2ggOiB1bml0IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBuZXcgbGluZXMuICopXG4gIG11dGFibGUgcHBfb3V0X25ld2xpbmUgOiB1bml0IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBicmVhayBoaW50cyBzcGFjZXMuICopXG4gIG11dGFibGUgcHBfb3V0X3NwYWNlcyA6IGludCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgaW5kZW50YXRpb24gb2YgbmV3IGxpbmVzLiAqKVxuICBtdXRhYmxlIHBwX291dF9pbmRlbnQgOiBpbnQgLT4gdW5pdDtcbiAgKCogQXJlIHRhZ3MgcHJpbnRlZCA/ICopXG4gIG11dGFibGUgcHBfcHJpbnRfdGFncyA6IGJvb2w7XG4gICgqIEFyZSB0YWdzIG1hcmtlZCA/ICopXG4gIG11dGFibGUgcHBfbWFya190YWdzIDogYm9vbDtcbiAgKCogRmluZCBvcGVuaW5nIGFuZCBjbG9zaW5nIG1hcmtlcnMgb2YgdGFncy4gKilcbiAgbXV0YWJsZSBwcF9tYXJrX29wZW5fdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG11dGFibGUgcHBfbWFya19jbG9zZV90YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbXV0YWJsZSBwcF9wcmludF9vcGVuX3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgbXV0YWJsZSBwcF9wcmludF9jbG9zZV90YWcgOiBzdGFnIC0+IHVuaXQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbiAgcHBfcXVldWUgOiBwcF9xdWV1ZTtcbn1cblxuXG4oKiBUaGUgZm9ybWF0dGVyIHNwZWNpZmljIHRhZyBoYW5kbGluZyBmdW5jdGlvbnMuICopXG50eXBlIGZvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9IHtcbiAgbWFya19vcGVuX3N0YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbWFya19jbG9zZV9zdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIHByaW50X29wZW5fc3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgcHJpbnRfY2xvc2Vfc3RhZyA6IHN0YWcgLT4gdW5pdDtcbn1cblxuXG4oKiBUaGUgZm9ybWF0dGVyIGZ1bmN0aW9ucyB0byBvdXRwdXQgbWF0ZXJpYWwuICopXG50eXBlIGZvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID0ge1xuICBvdXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdDtcbiAgb3V0X2ZsdXNoIDogdW5pdCAtPiB1bml0O1xuICBvdXRfbmV3bGluZSA6IHVuaXQgLT4gdW5pdDtcbiAgb3V0X3NwYWNlcyA6IGludCAtPiB1bml0O1xuICBvdXRfaW5kZW50IDogaW50IC0+IHVuaXQ7XG59XG5cblxuKCpcblxuICBBdXhpbGlhcmllcyBhbmQgYmFzaWMgZnVuY3Rpb25zLlxuXG4qKVxuXG4oKiBFbnRlciBhIHRva2VuIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbmxldCBwcF9lbnF1ZXVlIHN0YXRlIHRva2VuID1cbiAgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gc3RhdGUucHBfcmlnaHRfdG90YWwgKyB0b2tlbi5sZW5ndGg7XG4gIFF1ZXVlLmFkZCB0b2tlbiBzdGF0ZS5wcF9xdWV1ZVxuXG5cbmxldCBwcF9jbGVhcl9xdWV1ZSBzdGF0ZSA9XG4gIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gMTsgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gMTtcbiAgUXVldWUuY2xlYXIgc3RhdGUucHBfcXVldWVcblxuXG4oKiBQcF9pbmZpbml0eTogbGFyZ2UgdmFsdWUgZm9yIGRlZmF1bHQgdG9rZW5zIHNpemUuXG5cbiAgIFBwX2luZmluaXR5IGlzIGRvY3VtZW50ZWQgYXMgYmVpbmcgZ3JlYXRlciB0aGFuIDFlMTA7IHRvIGF2b2lkXG4gICBjb25mdXNpb24gYWJvdXQgdGhlIHdvcmQgJ2dyZWF0ZXInLCB3ZSBjaG9vc2UgcHBfaW5maW5pdHkgZ3JlYXRlclxuICAgdGhhbiAxZTEwICsgMTsgZm9yIGNvcnJlY3QgaGFuZGxpbmcgb2YgdGVzdHMgaW4gdGhlIGFsZ29yaXRobSxcbiAgIHBwX2luZmluaXR5IG11c3QgYmUgZXZlbiBvbmUgbW9yZSB0aGFuIDFlMTAgKyAxOyBsZXQncyBzdGFuZCBvbiB0aGVcbiAgIHNhZmUgc2lkZSBieSBjaG9vc2luZyAxLmUxMCsxMC5cblxuICAgUHBfaW5maW5pdHkgY291bGQgcHJvYmFibHkgYmUgMTA3Mzc0MTgyMyB0aGF0IGlzIDJeMzAgLSAxLCB0aGF0IGlzXG4gICB0aGUgbWluaW1hbCB1cHBlciBib3VuZCBmb3IgaW50ZWdlcnM7IG5vdyB0aGF0IG1heF9pbnQgaXMgZGVmaW5lZCxcbiAgIHRoaXMgbGltaXQgY291bGQgYWxzbyBiZSBkZWZpbmVkIGFzIG1heF9pbnQgLSAxLlxuXG4gICBIb3dldmVyLCBiZWZvcmUgc2V0dGluZyBwcF9pbmZpbml0eSB0byBzb21ldGhpbmcgYXJvdW5kIG1heF9pbnQsIHdlXG4gICBtdXN0IGNhcmVmdWxseSBkb3VibGUtY2hlY2sgYWxsIHRoZSBpbnRlZ2VyIGFyaXRobWV0aWMgb3BlcmF0aW9uc1xuICAgdGhhdCBpbnZvbHZlIHBwX2luZmluaXR5LCBzaW5jZSBhbnkgb3ZlcmZsb3cgd291bGQgd3JlY2sgaGF2b2MgdGhlXG4gICBwcmV0dHktcHJpbnRpbmcgYWxnb3JpdGhtJ3MgaW52YXJpYW50cy4gR2l2ZW4gdGhhdCB0aGlzIGFyaXRobWV0aWNcbiAgIGNvcnJlY3RuZXNzIGNoZWNrIGlzIGRpZmZpY3VsdCBhbmQgZXJyb3IgcHJvbmUgYW5kIGdpdmVuIHRoYXQgMWUxMFxuICAgKyAxIGlzIGluIHByYWN0aWNlIGxhcmdlIGVub3VnaCwgdGhlcmUgaXMgbm8gbmVlZCB0byBhdHRlbXB0IHRvIHNldFxuICAgcHBfaW5maW5pdHkgdG8gdGhlIHRoZW9yZXRpY2FsbHkgbWF4aW11bSBsaW1pdC4gSXQgaXMgbm90IHdvcnRoIHRoZVxuICAgYnVyZGVuICEgKilcbmxldCBwcF9pbmZpbml0eSA9IDEwMDAwMDAwMTBcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBmb3IgdGhlIGZvcm1hdHRlci4gKilcbmxldCBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIHMgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nIHMgMCAoU3RyaW5nLmxlbmd0aCBzKVxuYW5kIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlID0gc3RhdGUucHBfb3V0X25ld2xpbmUgKClcbmFuZCBwcF9vdXRwdXRfc3BhY2VzIHN0YXRlIG4gPSBzdGF0ZS5wcF9vdXRfc3BhY2VzIG5cbmFuZCBwcF9vdXRwdXRfaW5kZW50IHN0YXRlIG4gPSBzdGF0ZS5wcF9vdXRfaW5kZW50IG5cblxuKCogRm9ybWF0IGEgdGV4dHVhbCB0b2tlbiAqKVxubGV0IGZvcm1hdF9wcF90ZXh0IHN0YXRlIHNpemUgdGV4dCA9XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIHNpemU7XG4gIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgdGV4dDtcbiAgc3RhdGUucHBfaXNfbmV3X2xpbmUgPC0gZmFsc2VcblxuKCogRm9ybWF0IGEgc3RyaW5nIGJ5IGl0cyBsZW5ndGgsIGlmIG5vdCBlbXB0eSAqKVxubGV0IGZvcm1hdF9zdHJpbmcgc3RhdGUgcyA9XG4gIGlmIHMgPD4gXCJcIiB0aGVuIGZvcm1hdF9wcF90ZXh0IHN0YXRlIChTdHJpbmcubGVuZ3RoIHMpIHNcblxuKCogVG8gZm9ybWF0IGEgYnJlYWssIGluZGVudGluZyBhIG5ldyBsaW5lLiAqKVxubGV0IGJyZWFrX25ld19saW5lIHN0YXRlIChiZWZvcmUsIG9mZnNldCwgYWZ0ZXIpIHdpZHRoID1cbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBiZWZvcmU7XG4gIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlO1xuICBzdGF0ZS5wcF9pc19uZXdfbGluZSA8LSB0cnVlO1xuICBsZXQgaW5kZW50ID0gc3RhdGUucHBfbWFyZ2luIC0gd2lkdGggKyBvZmZzZXQgaW5cbiAgKCogRG9uJ3QgaW5kZW50IG1vcmUgdGhhbiBwcF9tYXhfaW5kZW50LiAqKVxuICBsZXQgcmVhbF9pbmRlbnQgPSBJbnQubWluIHN0YXRlLnBwX21heF9pbmRlbnQgaW5kZW50IGluXG4gIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50IDwtIHJlYWxfaW5kZW50O1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50O1xuICBwcF9vdXRwdXRfaW5kZW50IHN0YXRlIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50O1xuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGFmdGVyXG5cblxuKCogVG8gZm9yY2UgYSBsaW5lIGJyZWFrIGluc2lkZSBhIGJveDogbm8gb2Zmc2V0IGlzIGFkZGVkLiAqKVxubGV0IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGggPSBicmVha19uZXdfbGluZSBzdGF0ZSAoXCJcIiwgMCwgXCJcIikgd2lkdGhcblxuKCogVG8gZm9ybWF0IGEgYnJlYWsgdGhhdCBmaXRzIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG5sZXQgYnJlYWtfc2FtZV9saW5lIHN0YXRlIChiZWZvcmUsIHdpZHRoLCBhZnRlcikgPVxuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGJlZm9yZTtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gd2lkdGg7XG4gIHBwX291dHB1dF9zcGFjZXMgc3RhdGUgd2lkdGg7XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYWZ0ZXJcblxuXG4oKiBUbyBpbmRlbnQgbm8gbW9yZSB0aGFuIHBwX21heF9pbmRlbnQsIGlmIG9uZSB0cmllcyB0byBvcGVuIGEgYm94XG4gICBiZXlvbmQgcHBfbWF4X2luZGVudCwgdGhlbiB0aGUgYm94IGlzIHJlamVjdGVkIG9uIHRoZSBsZWZ0XG4gICBieSBzaW11bGF0aW5nIGEgYnJlYWsuICopXG5sZXQgcHBfZm9yY2VfYnJlYWtfbGluZSBzdGF0ZSA9XG4gIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgfCBOb25lIC0+IHBwX291dHB1dF9uZXdsaW5lIHN0YXRlXG4gIHwgU29tZSB7IGJveF90eXBlOyB3aWR0aCB9IC0+XG4gICAgaWYgd2lkdGggPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW5cbiAgICAgIG1hdGNoIGJveF90eXBlIHdpdGhcbiAgICAgIHwgUHBfZml0cyB8IFBwX2hib3ggLT4gKClcbiAgICAgIHwgUHBfdmJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IC0+IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGhcblxuXG4oKiBUbyBza2lwIGEgdG9rZW4sIGlmIHRoZSBwcmV2aW91cyBsaW5lIGhhcyBiZWVuIGJyb2tlbi4gKilcbmxldCBwcF9za2lwX3Rva2VuIHN0YXRlID1cbiAgbWF0Y2ggUXVldWUudGFrZV9vcHQgc3RhdGUucHBfcXVldWUgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogcHJpbnRfaWZfbmV3bGluZSBtdXN0IGhhdmUgYmVlbiB0aGUgbGFzdCBwcmludGluZyBjb21tYW5kICopXG4gIHwgU29tZSB7IHNpemU7IGxlbmd0aDsgXyB9IC0+XG4gICAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSBzdGF0ZS5wcF9sZWZ0X3RvdGFsIC0gbGVuZ3RoO1xuICAgIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCArIFNpemUudG9faW50IHNpemVcblxuXG4oKlxuXG4gIFRoZSBtYWluIHByZXR0eSBwcmludGluZyBmdW5jdGlvbnMuXG5cbiopXG5cbigqIEZvcm1hdHRpbmcgYSB0b2tlbiB3aXRoIGEgZ2l2ZW4gc2l6ZS4gKilcbmxldCBmb3JtYXRfcHBfdG9rZW4gc3RhdGUgc2l6ZSA9IGZ1bmN0aW9uXG5cbiAgfCBQcF90ZXh0IHMgLT5cbiAgICBmb3JtYXRfcHBfdGV4dCBzdGF0ZSBzaXplIHNcblxuICB8IFBwX2JlZ2luIChvZmYsIHR5KSAtPlxuICAgIGxldCBpbnNlcnRpb25fcG9pbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IGluXG4gICAgaWYgaW5zZXJ0aW9uX3BvaW50ID4gc3RhdGUucHBfbWF4X2luZGVudCB0aGVuXG4gICAgICAoKiBjYW4gbm90IG9wZW4gYSBib3ggcmlnaHQgdGhlcmUuICopXG4gICAgICBiZWdpbiBwcF9mb3JjZV9icmVha19saW5lIHN0YXRlIGVuZDtcbiAgICBsZXQgd2lkdGggPSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gb2ZmIGluXG4gICAgbGV0IGJveF90eXBlID1cbiAgICAgIG1hdGNoIHR5IHdpdGhcbiAgICAgIHwgUHBfdmJveCAtPiBQcF92Ym94XG4gICAgICB8IFBwX2hib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCB8IFBwX2ZpdHMgLT5cbiAgICAgICAgaWYgc2l6ZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlbiB0eSBlbHNlIFBwX2ZpdHMgaW5cbiAgICBTdGFjay5wdXNoIHsgYm94X3R5cGU7IHdpZHRoIH0gc3RhdGUucHBfZm9ybWF0X3N0YWNrXG5cbiAgfCBQcF9lbmQgLT5cbiAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB8PiBpZ25vcmVcblxuICB8IFBwX3RiZWdpbiAoUHBfdGJveCBfIGFzIHRib3gpIC0+XG4gICAgU3RhY2sucHVzaCB0Ym94IHN0YXRlLnBwX3Rib3hfc3RhY2tcblxuICB8IFBwX3RlbmQgLT5cbiAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgfD4gaWdub3JlXG5cbiAgfCBQcF9zdGFiIC0+XG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiB0YWJ1bGF0aW9uIGJveC4gKilcbiAgICB8IFNvbWUgKFBwX3Rib3ggdGFicykgLT5cbiAgICAgIGxldCByZWMgYWRkX3RhYiBuID0gZnVuY3Rpb25cbiAgICAgICAgfCBbXSAtPiBbbl1cbiAgICAgICAgfCB4IDo6IGwgYXMgbHMgLT4gaWYgbiA8IHggdGhlbiBuIDo6IGxzIGVsc2UgeCA6OiBhZGRfdGFiIG4gbCBpblxuICAgICAgdGFicyA6PSBhZGRfdGFiIChzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0KSAhdGFic1xuICAgIGVuZFxuXG4gIHwgUHBfdGJyZWFrIChuLCBvZmYpIC0+XG4gICAgbGV0IGluc2VydGlvbl9wb2ludCA9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQgaW5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIHRhYnVsYXRpb24gYm94LiAqKVxuICAgIHwgU29tZSAoUHBfdGJveCB0YWJzKSAtPlxuICAgICAgbGV0IHRhYiA9XG4gICAgICAgIG1hdGNoICF0YWJzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBpbnNlcnRpb25fcG9pbnRcbiAgICAgICAgfCBmaXJzdCA6OiBfIC0+XG4gICAgICAgICAgbGV0IHJlYyBmaW5kID0gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgaGVhZCA6OiB0YWlsIC0+XG4gICAgICAgICAgICAgIGlmIGhlYWQgPj0gaW5zZXJ0aW9uX3BvaW50IHRoZW4gaGVhZCBlbHNlIGZpbmQgdGFpbFxuICAgICAgICAgICAgfCBbXSAtPiBmaXJzdCBpblxuICAgICAgICAgIGZpbmQgIXRhYnMgaW5cbiAgICAgIGxldCBvZmZzZXQgPSB0YWIgLSBpbnNlcnRpb25fcG9pbnQgaW5cbiAgICAgIGlmIG9mZnNldCA+PSAwXG4gICAgICB0aGVuIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSAoXCJcIiwgb2Zmc2V0ICsgbiwgXCJcIilcbiAgICAgIGVsc2UgYnJlYWtfbmV3X2xpbmUgc3RhdGUgKFwiXCIsIHRhYiArIG9mZiwgXCJcIikgc3RhdGUucHBfbWFyZ2luXG4gICAgZW5kXG5cbiAgfCBQcF9uZXdsaW5lIC0+XG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZSAoKiBObyBvcGVuIGJveC4gKilcbiAgICB8IFNvbWUgeyB3aWR0aDsgX30gLT4gYnJlYWtfbGluZSBzdGF0ZSB3aWR0aFxuICAgIGVuZFxuXG4gIHwgUHBfaWZfbmV3bGluZSAtPlxuICAgIGlmIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50ICE9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICB0aGVuIHBwX3NraXBfdG9rZW4gc3RhdGVcblxuICB8IFBwX2JyZWFrIHsgZml0czsgYnJlYWtzIH0gLT5cbiAgICBsZXQgYmVmb3JlLCBvZmYsIF8gPSBicmVha3MgaW5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gYm94LiAqKVxuICAgIHwgU29tZSB7IGJveF90eXBlOyB3aWR0aCB9IC0+XG4gICAgICBiZWdpbiBtYXRjaCBib3hfdHlwZSB3aXRoXG4gICAgICB8IFBwX2hvdmJveCAtPlxuICAgICAgICBpZiBzaXplICsgU3RyaW5nLmxlbmd0aCBiZWZvcmUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICAgIGVsc2UgYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfYm94IC0+XG4gICAgICAgICgqIEhhdmUgdGhlIGxpbmUganVzdCBiZWVuIGJyb2tlbiBoZXJlID8gKilcbiAgICAgICAgaWYgc3RhdGUucHBfaXNfbmV3X2xpbmUgdGhlbiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0cyBlbHNlXG4gICAgICAgIGlmIHNpemUgKyBTdHJpbmcubGVuZ3RoIGJlZm9yZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aCBlbHNlXG4gICAgICAgICgqIGJyZWFrIHRoZSBsaW5lIGhlcmUgbGVhZHMgdG8gbmV3IGluZGVudGF0aW9uID8gKilcbiAgICAgICAgaWYgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPiBzdGF0ZS5wcF9tYXJnaW4gLSB3aWR0aCArIG9mZlxuICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgICBlbHNlIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX2h2Ym94IC0+IGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgfCBQcF9maXRzIC0+IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX3Zib3ggLT4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICB8IFBwX2hib3ggLT4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIGVuZFxuICAgIGVuZFxuXG4gICB8IFBwX29wZW5fdGFnIHRhZ19uYW1lIC0+XG4gICAgIGxldCBtYXJrZXIgPSBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIHRhZ19uYW1lIGluXG4gICAgIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgbWFya2VyO1xuICAgICBTdGFjay5wdXNoIHRhZ19uYW1lIHN0YXRlLnBwX21hcmtfc3RhY2tcblxuICAgfCBQcF9jbG9zZV90YWcgLT5cbiAgICAgYmVnaW4gbWF0Y2ggU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9tYXJrX3N0YWNrIHdpdGhcbiAgICAgfCBOb25lIC0+ICgpICgqIE5vIG1vcmUgdGFnIHRvIGNsb3NlLiAqKVxuICAgICB8IFNvbWUgdGFnX25hbWUgLT5cbiAgICAgICBsZXQgbWFya2VyID0gc3RhdGUucHBfbWFya19jbG9zZV90YWcgdGFnX25hbWUgaW5cbiAgICAgICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIG1hcmtlclxuICAgICBlbmRcblxuXG4oKiBQcmludCBpZiB0b2tlbiBzaXplIGlzIGtub3duIGVsc2UgcHJpbnRpbmcgaXMgZGVsYXllZC5cbiAgIFByaW50aW5nIGlzIGRlbGF5ZWQgd2hlbiB0aGUgdGV4dCB3YWl0aW5nIGluIHRoZSBxdWV1ZSByZXF1aXJlc1xuICAgbW9yZSByb29tIHRvIGZvcm1hdCB0aGFuIGV4aXN0cyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxubGV0IHJlYyBhZHZhbmNlX2xlZnQgc3RhdGUgPVxuICBtYXRjaCBRdWV1ZS5wZWVrX29wdCBzdGF0ZS5wcF9xdWV1ZSB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBObyB0b2tlbnMgdG8gcHJpbnQgKilcbiAgfCBTb21lIHsgc2l6ZTsgdG9rZW47IGxlbmd0aCB9IC0+XG4gICAgbGV0IHBlbmRpbmdfY291bnQgPSBzdGF0ZS5wcF9yaWdodF90b3RhbCAtIHN0YXRlLnBwX2xlZnRfdG90YWwgaW5cbiAgICBpZiBTaXplLmlzX2tub3duIHNpemUgfHwgcGVuZGluZ19jb3VudCA+PSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW4gYmVnaW5cbiAgICAgIFF1ZXVlLnRha2Ugc3RhdGUucHBfcXVldWUgfD4gaWdub3JlOyAoKiBOb3QgZW1wdHk6IHdlIHBlZWsgaW50byBpdCAqKVxuICAgICAgbGV0IHNpemUgPSBpZiBTaXplLmlzX2tub3duIHNpemUgdGhlbiBTaXplLnRvX2ludCBzaXplIGVsc2UgcHBfaW5maW5pdHkgaW5cbiAgICAgIGZvcm1hdF9wcF90b2tlbiBzdGF0ZSBzaXplIHRva2VuO1xuICAgICAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSBsZW5ndGggKyBzdGF0ZS5wcF9sZWZ0X3RvdGFsO1xuICAgICAgKGFkdmFuY2VfbGVmdCBbQHRhaWxjYWxsXSkgc3RhdGVcbiAgICBlbmRcblxuXG4oKiBUbyBlbnF1ZXVlIGEgdG9rZW4gOiB0cnkgdG8gYWR2YW5jZS4gKilcbmxldCBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgdG9rID0gcHBfZW5xdWV1ZSBzdGF0ZSB0b2s7IGFkdmFuY2VfbGVmdCBzdGF0ZVxuXG5cbigqIFRvIGVucXVldWUgc3RyaW5ncy4gKilcbmxldCBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSBzaXplIHMgPVxuICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgeyBzaXplOyB0b2tlbiA9IFBwX3RleHQgczsgbGVuZ3RoID0gU2l6ZS50b19pbnQgc2l6ZSB9XG5cblxubGV0IGVucXVldWVfc3RyaW5nIHN0YXRlIHMgPVxuICBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSAoU2l6ZS5vZl9pbnQgKFN0cmluZy5sZW5ndGggcykpIHNcblxuXG4oKiBSb3V0aW5lcyBmb3Igc2NhbiBzdGFja1xuICAgZGV0ZXJtaW5lIHNpemUgb2YgYm94ZXMuICopXG5cbigqIFRoZSBzY2FuX3N0YWNrIGlzIG5ldmVyIGVtcHR5LiAqKVxubGV0IGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGFjayA9XG4gIFN0YWNrLmNsZWFyIHN0YWNrO1xuICBsZXQgcXVldWVfZWxlbSA9IHsgc2l6ZSA9IFNpemUudW5rbm93bjsgdG9rZW4gPSBQcF90ZXh0IFwiXCI7IGxlbmd0aCA9IDAgfSBpblxuICBTdGFjay5wdXNoIHsgbGVmdF90b3RhbCA9IC0xOyBxdWV1ZV9lbGVtIH0gc3RhY2tcblxuKCogU2V0dGluZyB0aGUgc2l6ZSBvZiBib3hlcyBvbiBzY2FuIHN0YWNrOlxuICAgaWYgdHkgPSB0cnVlIHRoZW4gc2l6ZSBvZiBicmVhayBpcyBzZXQgZWxzZSBzaXplIG9mIGJveCBpcyBzZXQ7XG4gICBpbiBlYWNoIGNhc2UgcHBfc2Nhbl9zdGFjayBpcyBwb3BwZWQuXG5cbiAgIE5vdGU6XG4gICBQYXR0ZXJuIG1hdGNoaW5nIG9uIHNjYW4gc3RhY2sgaXMgZXhoYXVzdGl2ZSwgc2luY2Ugc2Nhbl9zdGFjayBpcyBuZXZlclxuICAgZW1wdHkuXG4gICBQYXR0ZXJuIG1hdGNoaW5nIG9uIHRva2VuIGluIHNjYW4gc3RhY2sgaXMgYWxzbyBleGhhdXN0aXZlLFxuICAgc2luY2Ugc2Nhbl9wdXNoIGlzIHVzZWQgb24gYnJlYWtzIGFuZCBvcGVuaW5nIG9mIGJveGVzLiAqKVxubGV0IHNldF9zaXplIHN0YXRlIHR5ID1cbiAgbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIHNjYW5fc3RhY2sgaXMgbmV2ZXIgZW1wdHkuICopXG4gIHwgU29tZSB7IGxlZnRfdG90YWw7IHF1ZXVlX2VsZW0gfSAtPlxuICAgIGxldCBzaXplID0gU2l6ZS50b19pbnQgcXVldWVfZWxlbS5zaXplIGluXG4gICAgKCogdGVzdCBpZiBzY2FuIHN0YWNrIGNvbnRhaW5zIGFueSBkYXRhIHRoYXQgaXMgbm90IG9ic29sZXRlLiAqKVxuICAgIGlmIGxlZnRfdG90YWwgPCBzdGF0ZS5wcF9sZWZ0X3RvdGFsIHRoZW5cbiAgICAgIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGF0ZS5wcF9zY2FuX3N0YWNrXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggcXVldWVfZWxlbS50b2tlbiB3aXRoXG4gICAgICB8IFBwX2JyZWFrIF8gfCBQcF90YnJlYWsgKF8sIF8pIC0+XG4gICAgICAgIGlmIHR5IHRoZW4gYmVnaW5cbiAgICAgICAgICBxdWV1ZV9lbGVtLnNpemUgPC0gU2l6ZS5vZl9pbnQgKHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgc2l6ZSk7XG4gICAgICAgICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHw+IGlnbm9yZVxuICAgICAgICBlbmRcbiAgICAgIHwgUHBfYmVnaW4gKF8sIF8pIC0+XG4gICAgICAgIGlmIG5vdCB0eSB0aGVuIGJlZ2luXG4gICAgICAgICAgcXVldWVfZWxlbS5zaXplIDwtIFNpemUub2ZfaW50IChzdGF0ZS5wcF9yaWdodF90b3RhbCArIHNpemUpO1xuICAgICAgICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB8PiBpZ25vcmVcbiAgICAgICAgZW5kXG4gICAgICB8IFBwX3RleHQgXyB8IFBwX3N0YWIgfCBQcF90YmVnaW4gXyB8IFBwX3RlbmQgfCBQcF9lbmRcbiAgICAgIHwgUHBfbmV3bGluZSB8IFBwX2lmX25ld2xpbmUgfCBQcF9vcGVuX3RhZyBfIHwgUHBfY2xvc2VfdGFnIC0+XG4gICAgICAgICgpICgqIHNjYW5fcHVzaCBpcyBvbmx5IHVzZWQgZm9yIGJyZWFrcyBhbmQgYm94ZXMuICopXG5cblxuKCogUHVzaCBhIHRva2VuIG9uIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLlxuICAgSWYgYiBpcyB0cnVlIHNldF9zaXplIGlzIGNhbGxlZC4gKilcbmxldCBzY2FuX3B1c2ggc3RhdGUgYiB0b2tlbiA9XG4gIHBwX2VucXVldWUgc3RhdGUgdG9rZW47XG4gIGlmIGIgdGhlbiBzZXRfc2l6ZSBzdGF0ZSB0cnVlO1xuICBsZXQgZWxlbSA9IHsgbGVmdF90b3RhbCA9IHN0YXRlLnBwX3JpZ2h0X3RvdGFsOyBxdWV1ZV9lbGVtID0gdG9rZW4gfSBpblxuICBTdGFjay5wdXNoIGVsZW0gc3RhdGUucHBfc2Nhbl9zdGFja1xuXG5cbigqIFRvIG9wZW4gYSBuZXcgYm94IDpcbiAgIHRoZSB1c2VyIG1heSBzZXQgdGhlIGRlcHRoIGJvdW5kIHBwX21heF9ib3hlc1xuICAgYW55IHRleHQgbmVzdGVkIGRlZXBlciBpcyBwcmludGVkIGFzIHRoZSBlbGxpcHNpcyBzdHJpbmcuICopXG5sZXQgcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBicl90eSA9XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCArIDE7XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfYmVnaW4gKGluZGVudCwgYnJfdHkpOyBsZW5ndGggPSAwIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgZmFsc2UgZWxlbSBlbHNlXG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPSBzdGF0ZS5wcF9tYXhfYm94ZXNcbiAgdGhlbiBlbnF1ZXVlX3N0cmluZyBzdGF0ZSBzdGF0ZS5wcF9lbGxpcHNpc1xuXG5cbigqIFRoZSBib3ggd2hpY2ggaXMgYWx3YXlzIG9wZW4uICopXG5sZXQgcHBfb3Blbl9zeXNfYm94IHN0YXRlID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIDAgUHBfaG92Ym94XG5cbigqIENsb3NlIGEgYm94LCBzZXR0aW5nIHNpemVzIG9mIGl0cyBzdWIgYm94ZXMuICopXG5sZXQgcHBfY2xvc2VfYm94IHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgdGhlblxuICBiZWdpblxuICAgIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGJlZ2luXG4gICAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9lbmQ7IGxlbmd0aCA9IDAgfTtcbiAgICAgIHNldF9zaXplIHN0YXRlIHRydWU7IHNldF9zaXplIHN0YXRlIGZhbHNlXG4gICAgZW5kO1xuICAgIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCAtIDE7XG4gIGVuZFxuXG5cbigqIE9wZW4gYSB0YWcsIHB1c2hpbmcgaXQgb24gdGhlIHRhZyBzdGFjay4gKilcbmxldCBwcF9vcGVuX3N0YWcgc3RhdGUgdGFnX25hbWUgPVxuICBpZiBzdGF0ZS5wcF9wcmludF90YWdzIHRoZW5cbiAgYmVnaW5cbiAgICBTdGFjay5wdXNoIHRhZ19uYW1lIHN0YXRlLnBwX3RhZ19zdGFjaztcbiAgICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyB0YWdfbmFtZVxuICBlbmQ7XG4gIGlmIHN0YXRlLnBwX21hcmtfdGFncyB0aGVuXG4gICAgbGV0IHRva2VuID0gUHBfb3Blbl90YWcgdGFnX25hbWUgaW5cbiAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW47IGxlbmd0aCA9IDAgfVxuXG5cbigqIENsb3NlIGEgdGFnLCBwb3BwaW5nIGl0IGZyb20gdGhlIHRhZyBzdGFjay4gKilcbmxldCBwcF9jbG9zZV9zdGFnIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfbWFya190YWdzIHRoZW5cbiAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9jbG9zZV90YWc7IGxlbmd0aCA9IDAgfTtcbiAgaWYgc3RhdGUucHBfcHJpbnRfdGFncyB0aGVuXG4gICAgbWF0Y2ggU3RhY2sucG9wX29wdCBzdGF0ZS5wcF90YWdfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBtb3JlIHRhZyB0byBjbG9zZS4gKilcbiAgICB8IFNvbWUgdGFnX25hbWUgLT5cbiAgICAgIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyB0YWdfbmFtZVxuXG5sZXQgcHBfb3Blbl90YWcgc3RhdGUgcyA9IHBwX29wZW5fc3RhZyBzdGF0ZSAoU3RyaW5nX3RhZyBzKVxubGV0IHBwX2Nsb3NlX3RhZyBzdGF0ZSAoKSA9IHBwX2Nsb3NlX3N0YWcgc3RhdGUgKClcblxubGV0IHBwX3NldF9wcmludF90YWdzIHN0YXRlIGIgPSBzdGF0ZS5wcF9wcmludF90YWdzIDwtIGJcbmxldCBwcF9zZXRfbWFya190YWdzIHN0YXRlIGIgPSBzdGF0ZS5wcF9tYXJrX3RhZ3MgPC0gYlxubGV0IHBwX2dldF9wcmludF90YWdzIHN0YXRlICgpID0gc3RhdGUucHBfcHJpbnRfdGFnc1xubGV0IHBwX2dldF9tYXJrX3RhZ3Mgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXJrX3RhZ3NcbmxldCBwcF9zZXRfdGFncyBzdGF0ZSBiID1cbiAgcHBfc2V0X3ByaW50X3RhZ3Mgc3RhdGUgYjsgcHBfc2V0X21hcmtfdGFncyBzdGF0ZSBiXG5cblxuKCogSGFuZGxpbmcgdGFnIGhhbmRsaW5nIGZ1bmN0aW9uczogZ2V0L3NldCBmdW5jdGlvbnMuICopXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGF0ZSAoKSA9IHtcbiAgbWFya19vcGVuX3N0YWcgPSBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnO1xuICBtYXJrX2Nsb3NlX3N0YWcgPSBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZztcbiAgcHJpbnRfb3Blbl9zdGFnID0gc3RhdGUucHBfcHJpbnRfb3Blbl90YWc7XG4gIHByaW50X2Nsb3NlX3N0YWcgPSBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWc7XG59XG5cblxubGV0IHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RhdGUge1xuICAgICBtYXJrX29wZW5fc3RhZyA9IG1vdDtcbiAgICAgbWFya19jbG9zZV9zdGFnID0gbWN0O1xuICAgICBwcmludF9vcGVuX3N0YWcgPSBwb3Q7XG4gICAgIHByaW50X2Nsb3NlX3N0YWcgPSBwY3Q7XG4gIH0gPVxuICBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIDwtIG1vdDtcbiAgc3RhdGUucHBfbWFya19jbG9zZV90YWcgPC0gbWN0O1xuICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyA8LSBwb3Q7XG4gIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyA8LSBwY3RcblxuXG4oKiBJbml0aWFsaXplIHByZXR0eS1wcmludGVyLiAqKVxubGV0IHBwX3Jpbml0IHN0YXRlID1cbiAgcHBfY2xlYXJfcXVldWUgc3RhdGU7XG4gIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGF0ZS5wcF9zY2FuX3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF9mb3JtYXRfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX3Rib3hfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX3RhZ19zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfbWFya19zdGFjaztcbiAgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPC0gMDtcbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSAwO1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX21hcmdpbjtcbiAgcHBfb3Blbl9zeXNfYm94IHN0YXRlXG5cbmxldCBjbGVhcl90YWdfc3RhY2sgc3RhdGUgPVxuICBTdGFjay5pdGVyIChmdW4gXyAtPiBwcF9jbG9zZV90YWcgc3RhdGUgKCkpIHN0YXRlLnBwX3RhZ19zdGFja1xuXG5cbigqIEZsdXNoaW5nIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxubGV0IHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIGIgPVxuICBjbGVhcl90YWdfc3RhY2sgc3RhdGU7XG4gIHdoaWxlIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIGRvXG4gICAgcHBfY2xvc2VfYm94IHN0YXRlICgpXG4gIGRvbmU7XG4gIHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIHBwX2luZmluaXR5O1xuICBhZHZhbmNlX2xlZnQgc3RhdGU7XG4gIGlmIGIgdGhlbiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZTtcbiAgcHBfcmluaXQgc3RhdGVcblxuKCpcblxuICBQcm9jZWR1cmVzIHRvIGZvcm1hdCB2YWx1ZXMgYW5kIHVzZSBib3hlcy5cblxuKilcblxuKCogVG8gZm9ybWF0IGEgc3RyaW5nLiAqKVxubGV0IHBwX3ByaW50X2FzX3NpemUgc3RhdGUgc2l6ZSBzID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlc1xuICB0aGVuIGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIHNpemUgc1xuXG5cbmxldCBwcF9wcmludF9hcyBzdGF0ZSBpc2l6ZSBzID1cbiAgcHBfcHJpbnRfYXNfc2l6ZSBzdGF0ZSAoU2l6ZS5vZl9pbnQgaXNpemUpIHNcblxuXG5sZXQgcHBfcHJpbnRfc3RyaW5nIHN0YXRlIHMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAoU3RyaW5nLmxlbmd0aCBzKSBzXG5cbmxldCBwcF9wcmludF9ieXRlcyBzdGF0ZSBzID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgKEJ5dGVzLmxlbmd0aCBzKSAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cbigqIFRvIGZvcm1hdCBhbiBpbnRlZ2VyLiAqKVxubGV0IHBwX3ByaW50X2ludCBzdGF0ZSBpID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChJbnQudG9fc3RyaW5nIGkpXG5cbigqIFRvIGZvcm1hdCBhIGZsb2F0LiAqKVxubGV0IHBwX3ByaW50X2Zsb2F0IHN0YXRlIGYgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKHN0cmluZ19vZl9mbG9hdCBmKVxuXG4oKiBUbyBmb3JtYXQgYSBib29sZWFuLiAqKVxubGV0IHBwX3ByaW50X2Jvb2wgc3RhdGUgYiA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoc3RyaW5nX29mX2Jvb2wgYilcblxuKCogVG8gZm9ybWF0IGEgY2hhci4gKilcbmxldCBwcF9wcmludF9jaGFyIHN0YXRlIGMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAxIChTdHJpbmcubWFrZSAxIGMpXG5cblxuKCogT3BlbmluZyBib3hlcy4gKilcbmxldCBwcF9vcGVuX2hib3ggc3RhdGUgKCkgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgMCBQcF9oYm94XG5hbmQgcHBfb3Blbl92Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfdmJveFxuXG5hbmQgcHBfb3Blbl9odmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2h2Ym94XG5hbmQgcHBfb3Blbl9ob3Zib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9ob3Zib3hcbmFuZCBwcF9vcGVuX2JveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2JveFxuXG5cbigqIFByaW50aW5nIHF1ZXVlZCB0ZXh0LlxuXG4gICBbcHBfcHJpbnRfZmx1c2hdIHByaW50cyBhbGwgcGVuZGluZyBpdGVtcyBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUgYW5kXG4gICB0aGVuIGZsdXNoZXMgdGhlIGxvdyBsZXZlbCBvdXRwdXQgZGV2aWNlIG9mIHRoZSBmb3JtYXR0ZXIgdG8gYWN0dWFsbHlcbiAgIGRpc3BsYXkgcHJpbnRpbmcgbWF0ZXJpYWwuXG5cbiAgIFtwcF9wcmludF9uZXdsaW5lXSBiZWhhdmVzIGFzIFtwcF9wcmludF9mbHVzaF0gYWZ0ZXIgcHJpbnRpbmcgYW4gYWRkaXRpb25hbFxuICAgbmV3IGxpbmUuICopXG5sZXQgcHBfcHJpbnRfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIHRydWU7IHN0YXRlLnBwX291dF9mbHVzaCAoKVxuYW5kIHBwX3ByaW50X2ZsdXNoIHN0YXRlICgpID1cbiAgcHBfZmx1c2hfcXVldWUgc3RhdGUgZmFsc2U7IHN0YXRlLnBwX291dF9mbHVzaCAoKVxuXG5cbigqIFRvIGdldCBhIG5ld2xpbmUgd2hlbiBvbmUgZG9lcyBub3Qgd2FudCB0byBjbG9zZSB0aGUgY3VycmVudCBib3guICopXG5sZXQgcHBfZm9yY2VfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfbmV3bGluZTsgbGVuZ3RoID0gMCB9XG5cblxuKCogVG8gZm9ybWF0IHNvbWV0aGluZywgb25seSBpbiBjYXNlIHRoZSBsaW5lIGhhcyBqdXN0IGJlZW4gYnJva2VuLiAqKVxubGV0IHBwX3ByaW50X2lmX25ld2xpbmUgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGVcbiAgICAgIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9pZl9uZXdsaW5lOyBsZW5ndGggPSAwIH1cblxuXG4oKiBHZW5lcmFsaXplZCBicmVhayBoaW50IHRoYXQgYWxsb3dzIHByaW50aW5nIHN0cmluZ3MgYmVmb3JlL2FmdGVyXG4gICBzYW1lLWxpbmUgb2Zmc2V0ICh3aWR0aCkgb3IgbmV3LWxpbmUgb2Zmc2V0ICopXG5sZXQgcHBfcHJpbnRfY3VzdG9tX2JyZWFrIHN0YXRlIH5maXRzIH5icmVha3MgPVxuICBsZXQgYmVmb3JlLCB3aWR0aCwgYWZ0ZXIgPSBmaXRzIGluXG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IHRva2VuID0gUHBfYnJlYWsgeyBmaXRzOyBicmVha3MgfSBpblxuICAgIGxldCBsZW5ndGggPSBTdHJpbmcubGVuZ3RoIGJlZm9yZSArIHdpZHRoICsgU3RyaW5nLmxlbmd0aCBhZnRlciBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbjsgbGVuZ3RoIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgdHJ1ZSBlbGVtXG5cbigqIFByaW50aW5nIGJyZWFrIGhpbnRzOlxuICAgQSBicmVhayBoaW50IGluZGljYXRlcyB3aGVyZSBhIGJveCBtYXkgYmUgYnJva2VuLlxuICAgSWYgbGluZSBpcyBicm9rZW4gdGhlbiBvZmZzZXQgaXMgYWRkZWQgdG8gdGhlIGluZGVudGF0aW9uIG9mIHRoZSBjdXJyZW50XG4gICBib3ggZWxzZSAodGhlIHZhbHVlIG9mKSB3aWR0aCBibGFua3MgYXJlIHByaW50ZWQuICopXG5sZXQgcHBfcHJpbnRfYnJlYWsgc3RhdGUgd2lkdGggb2Zmc2V0ID1cbiAgcHBfcHJpbnRfY3VzdG9tX2JyZWFrIHN0YXRlXG4gICAgfmZpdHM6KFwiXCIsIHdpZHRoLCBcIlwiKSB+YnJlYWtzOihcIlwiLCBvZmZzZXQsIFwiXCIpXG5cblxuKCogUHJpbnQgYSBzcGFjZSA6XG4gICBhIHNwYWNlIGlzIGEgYnJlYWsgaGludCB0aGF0IHByaW50cyBhIHNpbmdsZSBzcGFjZSBpZiB0aGUgYnJlYWsgZG9lcyBub3RcbiAgIHNwbGl0IHRoZSBsaW5lO1xuICAgYSBjdXQgaXMgYSBicmVhayBoaW50IHRoYXQgcHJpbnRzIG5vdGhpbmcgaWYgdGhlIGJyZWFrIGRvZXMgbm90IHNwbGl0IHRoZVxuICAgbGluZS4gKilcbmxldCBwcF9wcmludF9zcGFjZSBzdGF0ZSAoKSA9IHBwX3ByaW50X2JyZWFrIHN0YXRlIDEgMFxuYW5kIHBwX3ByaW50X2N1dCBzdGF0ZSAoKSA9IHBwX3ByaW50X2JyZWFrIHN0YXRlIDAgMFxuXG5cbigqIFRhYnVsYXRpb24gYm94ZXMuICopXG5sZXQgcHBfb3Blbl90Ym94IHN0YXRlICgpID1cbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoICsgMTtcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLnplcm8gaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF90YmVnaW4gKFBwX3Rib3ggKHJlZiBbXSkpOyBsZW5ndGggPSAwIH0gaW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbVxuXG5cbigqIENsb3NlIGEgdGFidWxhdGlvbiBib3guICopXG5sZXQgcHBfY2xvc2VfdGJveCBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIHRoZW5cbiAgYmVnaW5cbiAgIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgICBsZXQgZWxlbSA9IHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF90ZW5kOyBsZW5ndGggPSAwIH0gaW5cbiAgICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW07XG4gICAgIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCAtIDFcbiAgZW5kXG5cblxuKCogUHJpbnQgYSB0YWJ1bGF0aW9uIGJyZWFrLiAqKVxubGV0IHBwX3ByaW50X3RicmVhayBzdGF0ZSB3aWR0aCBvZmZzZXQgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX3RicmVhayAod2lkdGgsIG9mZnNldCk7IGxlbmd0aCA9IHdpZHRoIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgdHJ1ZSBlbGVtXG5cblxubGV0IHBwX3ByaW50X3RhYiBzdGF0ZSAoKSA9IHBwX3ByaW50X3RicmVhayBzdGF0ZSAwIDBcblxubGV0IHBwX3NldF90YWIgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9zdGFiOyBsZW5ndGggPSAwIH0gaW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbVxuXG5cbigqXG5cbiAgUHJvY2VkdXJlcyB0byBjb250cm9sIHRoZSBwcmV0dHktcHJpbnRlcnNcblxuKilcblxuKCogU2V0X21heF9ib3hlcy4gKilcbmxldCBwcF9zZXRfbWF4X2JveGVzIHN0YXRlIG4gPSBpZiBuID4gMSB0aGVuIHN0YXRlLnBwX21heF9ib3hlcyA8LSBuXG5cbigqIFRvIGtub3cgdGhlIGN1cnJlbnQgbWF4aW11bSBudW1iZXIgb2YgYm94ZXMgYWxsb3dlZC4gKilcbmxldCBwcF9nZXRfbWF4X2JveGVzIHN0YXRlICgpID0gc3RhdGUucHBfbWF4X2JveGVzXG5cbmxldCBwcF9vdmVyX21heF9ib3hlcyBzdGF0ZSAoKSA9IHN0YXRlLnBwX2N1cnJfZGVwdGggPSBzdGF0ZS5wcF9tYXhfYm94ZXNcblxuKCogRWxsaXBzaXMuICopXG5sZXQgcHBfc2V0X2VsbGlwc2lzX3RleHQgc3RhdGUgcyA9IHN0YXRlLnBwX2VsbGlwc2lzIDwtIHNcbmFuZCBwcF9nZXRfZWxsaXBzaXNfdGV4dCBzdGF0ZSAoKSA9IHN0YXRlLnBwX2VsbGlwc2lzXG5cblxuKCogVG8gc2V0IHRoZSBtYXJnaW4gb2YgcHJldHR5LXByaW50ZXIuICopXG5sZXQgcHBfbGltaXQgbiA9XG4gIGlmIG4gPCBwcF9pbmZpbml0eSB0aGVuIG4gZWxzZSBwcmVkIHBwX2luZmluaXR5XG5cblxuKCogSW50ZXJuYWwgcHJldHR5LXByaW50ZXIgZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9taW5fc3BhY2VfbGVmdCBzdGF0ZSBuID1cbiAgaWYgbiA+PSAxIHRoZW5cbiAgICBsZXQgbiA9IHBwX2xpbWl0IG4gaW5cbiAgICBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdCA8LSBuO1xuICAgIHN0YXRlLnBwX21heF9pbmRlbnQgPC0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfcmluaXQgc3RhdGVcblxuXG4oKiBJbml0aWFsbHksIHdlIGhhdmUgOlxuICAgcHBfbWF4X2luZGVudCA9IHBwX21hcmdpbiAtIHBwX21pbl9zcGFjZV9sZWZ0LCBhbmRcbiAgIHBwX3NwYWNlX2xlZnQgPSBwcF9tYXJnaW4uICopXG5sZXQgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbiA9XG4gIGlmIG4gPiAxIHRoZW5cbiAgICBwcF9zZXRfbWluX3NwYWNlX2xlZnQgc3RhdGUgKHN0YXRlLnBwX21hcmdpbiAtIG4pXG5cblxubGV0IHBwX2dldF9tYXhfaW5kZW50IHN0YXRlICgpID0gc3RhdGUucHBfbWF4X2luZGVudFxuXG5sZXQgcHBfc2V0X21hcmdpbiBzdGF0ZSBuID1cbiAgaWYgbiA+PSAxIHRoZW5cbiAgICBsZXQgbiA9IHBwX2xpbWl0IG4gaW5cbiAgICBzdGF0ZS5wcF9tYXJnaW4gPC0gbjtcbiAgICBsZXQgbmV3X21heF9pbmRlbnQgPVxuICAgICAgKCogVHJ5IHRvIG1haW50YWluIG1heF9pbmRlbnQgdG8gaXRzIGFjdHVhbCB2YWx1ZS4gKilcbiAgICAgIGlmIHN0YXRlLnBwX21heF9pbmRlbnQgPD0gc3RhdGUucHBfbWFyZ2luXG4gICAgICB0aGVuIHN0YXRlLnBwX21heF9pbmRlbnQgZWxzZVxuICAgICAgKCogSWYgcG9zc2libGUgbWFpbnRhaW4gcHBfbWluX3NwYWNlX2xlZnQgdG8gaXRzIGFjdHVhbCB2YWx1ZSxcbiAgICAgICAgIGlmIHRoaXMgbGVhZHMgdG8gYSB0b28gc21hbGwgbWF4X2luZGVudCwgdGFrZSBoYWxmIG9mIHRoZVxuICAgICAgICAgbmV3IG1hcmdpbiwgaWYgaXQgaXMgZ3JlYXRlciB0aGFuIDEuICopXG4gICAgICAgSW50Lm1heCAoSW50Lm1heCAoc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfbWluX3NwYWNlX2xlZnQpXG4gICAgICAgICAgICAgICAgKHN0YXRlLnBwX21hcmdpbiAvIDIpKSAxIGluXG4gICAgKCogUmVidWlsZCBpbnZhcmlhbnRzLiAqKVxuICAgIHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG5ld19tYXhfaW5kZW50XG5cblxuKCoqIEdlb21ldHJ5IGZ1bmN0aW9ucyBhbmQgdHlwZXMgKilcbnR5cGUgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ6aW50OyBtYXJnaW46IGludH1cblxubGV0IHZhbGlkYXRlX2dlb21ldHJ5IHttYXJnaW47IG1heF9pbmRlbnR9ID1cbiAgaWYgbWF4X2luZGVudCA8IDIgdGhlblxuICAgIEVycm9yIFwibWF4X2luZGVudCA8IDJcIlxuICBlbHNlIGlmIG1hcmdpbiA8PSBtYXhfaW5kZW50IHRoZW5cbiAgICBFcnJvciBcIm1hcmdpbiA8PSBtYXhfaW5kZW50XCJcbiAgZWxzZSBPayAoKVxuXG5sZXQgY2hlY2tfZ2VvbWV0cnkgZ2VvbWV0cnkgPVxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgT2sgKCkgLT4gdHJ1ZVxuICB8IEVycm9yIF8gLT4gZmFsc2VcblxubGV0IHBwX2dldF9tYXJnaW4gc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXJnaW5cblxubGV0IHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIHttYXJnaW47IG1heF9pbmRlbnR9ID1cbiAgcHBfc2V0X21hcmdpbiBzdGF0ZSBtYXJnaW47XG4gIHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG1heF9pbmRlbnQ7XG4gICgpXG5cbmxldCBwcF9zZXRfZ2VvbWV0cnkgc3RhdGUgfm1heF9pbmRlbnQgfm1hcmdpbiA9XG4gIGxldCBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDsgbWFyZ2luIH0gaW5cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IEVycm9yIG1zZyAtPlxuICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcIkZvcm1hdC5wcF9zZXRfZ2VvbWV0cnk6IFwiIF4gbXNnKSlcbiAgfCBPayAoKSAtPlxuICAgIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIGdlb21ldHJ5XG5cbmxldCBwcF9zYWZlX3NldF9nZW9tZXRyeSBzdGF0ZSB+bWF4X2luZGVudCB+bWFyZ2luID1cbiAgbGV0IGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OyBtYXJnaW4gfSBpblxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgRXJyb3IgX21zZyAtPlxuICAgICAoKVxuICB8IE9rICgpIC0+XG4gICAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgZ2VvbWV0cnlcblxubGV0IHBwX2dldF9nZW9tZXRyeSBzdGF0ZSAoKSA9XG4gIHsgbWFyZ2luID0gcHBfZ2V0X21hcmdpbiBzdGF0ZSAoKTsgbWF4X2luZGVudCA9IHBwX2dldF9tYXhfaW5kZW50IHN0YXRlICgpIH1cblxubGV0IHBwX3VwZGF0ZV9nZW9tZXRyeSBzdGF0ZSB1cGRhdGUgPVxuICBsZXQgZ2VvbWV0cnkgPSBwcF9nZXRfZ2VvbWV0cnkgc3RhdGUgKCkgaW5cbiAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgKHVwZGF0ZSBnZW9tZXRyeSlcblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgICBvdXRfc3RyaW5nID0gZjtcbiAgICAgIG91dF9mbHVzaCA9IGc7XG4gICAgICBvdXRfbmV3bGluZSA9IGg7XG4gICAgICBvdXRfc3BhY2VzID0gaTtcbiAgICAgIG91dF9pbmRlbnQgPSBqO1xuICAgIH0gPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIGY7XG4gIHN0YXRlLnBwX291dF9mbHVzaCA8LSBnO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBoO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGk7XG4gIHN0YXRlLnBwX291dF9pbmRlbnQgPC0galxuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0YXRlICgpID0ge1xuICBvdXRfc3RyaW5nID0gc3RhdGUucHBfb3V0X3N0cmluZztcbiAgb3V0X2ZsdXNoID0gc3RhdGUucHBfb3V0X2ZsdXNoO1xuICBvdXRfbmV3bGluZSA9IHN0YXRlLnBwX291dF9uZXdsaW5lO1xuICBvdXRfc3BhY2VzID0gc3RhdGUucHBfb3V0X3NwYWNlcztcbiAgb3V0X2luZGVudCA9IHN0YXRlLnBwX291dF9pbmRlbnQ7XG59XG5cblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBzdHJpbmcgb3V0cHV0IGFuZCBmbHVzaCBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlIGYgZyA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gZjsgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIGdcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9XG4gIChzdGF0ZS5wcF9vdXRfc3RyaW5nLCBzdGF0ZS5wcF9vdXRfZmx1c2gpXG5cblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IG5ldyBsaW5lcy4gKilcbmxldCBkaXNwbGF5X25ld2xpbmUgc3RhdGUgKCkgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nIFwiXFxuXCIgMCAgMVxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgc3BhY2VzLiAqKVxubGV0IGJsYW5rX2xpbmUgPSBTdHJpbmcubWFrZSA4MCAnICdcbmxldCByZWMgZGlzcGxheV9ibGFua3Mgc3RhdGUgbiA9XG4gIGlmIG4gPiAwIHRoZW5cbiAgaWYgbiA8PSA4MCB0aGVuIHN0YXRlLnBwX291dF9zdHJpbmcgYmxhbmtfbGluZSAwIG4gZWxzZVxuICBiZWdpblxuICAgIHN0YXRlLnBwX291dF9zdHJpbmcgYmxhbmtfbGluZSAwIDgwO1xuICAgIGRpc3BsYXlfYmxhbmtzIHN0YXRlIChuIC0gODApXG4gIGVuZFxuXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBpbmRlbnRhdGlvbiBvZiBuZXcgbGluZXMuICopXG5sZXQgZGlzcGxheV9pbmRlbnQgPSBkaXNwbGF5X2JsYW5rc1xuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMgYXMgcHJpbnRpbmcgdG8gYSBnaXZlblxuICAgW1BlcnZhc2l2ZS5vdXRfY2hhbm5lbF0gdmFsdWUuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCBzdGF0ZSBvYyA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gb3V0cHV0X3N1YnN0cmluZyBvYztcbiAgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIChmdW4gKCkgLT4gZmx1c2ggb2MpO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBkaXNwbGF5X25ld2xpbmUgc3RhdGU7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gZGlzcGxheV9ibGFua3Mgc3RhdGU7XG4gIHN0YXRlLnBwX291dF9pbmRlbnQgPC0gZGlzcGxheV9pbmRlbnQgc3RhdGVcblxuKCpcblxuICBEZWZpbmluZyBzcGVjaWZpYyBmb3JtYXR0ZXJzXG5cbiopXG5cbmxldCBkZWZhdWx0X3BwX21hcmtfb3Blbl90YWcgPSBmdW5jdGlvblxuICB8IFN0cmluZ190YWcgcyAtPiBcIjxcIiBeIHMgXiBcIj5cIlxuICB8IF8gLT4gXCJcIlxubGV0IGRlZmF1bHRfcHBfbWFya19jbG9zZV90YWcgPSBmdW5jdGlvblxuICB8IFN0cmluZ190YWcgcyAtPiBcIjwvXCIgXiBzIF4gXCI+XCJcbiAgfCBfIC0+IFwiXCJcblxubGV0IGRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWcgPSBpZ25vcmVcbmxldCBkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyA9IGlnbm9yZVxuXG4oKiBCdWlsZGluZyBhIGZvcm1hdHRlciBnaXZlbiBpdHMgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucy5cbiAgIE90aGVyIGZpZWxkcyBnZXQgcmVhc29uYWJsZSBkZWZhdWx0IHZhbHVlcy4gKilcbmxldCBwcF9tYWtlX2Zvcm1hdHRlciBmIGcgaCBpIGogPVxuICAoKiBUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZm9ybWF0dGVyIGNvbnRhaW5zIGEgZHVtbXkgYm94LiAqKVxuICBsZXQgcHBfcXVldWUgPSBRdWV1ZS5jcmVhdGUgKCkgaW5cbiAgbGV0IHN5c190b2sgPVxuICAgIHsgc2l6ZSA9IFNpemUudW5rbm93bjsgdG9rZW4gPSBQcF9iZWdpbiAoMCwgUHBfaG92Ym94KTsgbGVuZ3RoID0gMCB9IGluXG4gIFF1ZXVlLmFkZCBzeXNfdG9rIHBwX3F1ZXVlO1xuICBsZXQgc2Nhbl9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKSBpblxuICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc2Nhbl9zdGFjaztcbiAgU3RhY2sucHVzaCB7IGxlZnRfdG90YWwgPSAxOyBxdWV1ZV9lbGVtID0gc3lzX3RvayB9IHNjYW5fc3RhY2s7XG4gIGxldCBwcF9tYXJnaW4gPSA3OFxuICBhbmQgcHBfbWluX3NwYWNlX2xlZnQgPSAxMCBpblxuICB7XG4gICAgcHBfc2Nhbl9zdGFjayA9IHNjYW5fc3RhY2s7XG4gICAgcHBfZm9ybWF0X3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX3Rib3hfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfdGFnX3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX21hcmtfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfbWFyZ2luID0gcHBfbWFyZ2luO1xuICAgIHBwX21pbl9zcGFjZV9sZWZ0ID0gcHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfbWF4X2luZGVudCA9IHBwX21hcmdpbiAtIHBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX3NwYWNlX2xlZnQgPSBwcF9tYXJnaW47XG4gICAgcHBfY3VycmVudF9pbmRlbnQgPSAwO1xuICAgIHBwX2lzX25ld19saW5lID0gdHJ1ZTtcbiAgICBwcF9sZWZ0X3RvdGFsID0gMTtcbiAgICBwcF9yaWdodF90b3RhbCA9IDE7XG4gICAgcHBfY3Vycl9kZXB0aCA9IDE7XG4gICAgcHBfbWF4X2JveGVzID0gbWF4X2ludDtcbiAgICBwcF9lbGxpcHNpcyA9IFwiLlwiO1xuICAgIHBwX291dF9zdHJpbmcgPSBmO1xuICAgIHBwX291dF9mbHVzaCA9IGc7XG4gICAgcHBfb3V0X25ld2xpbmUgPSBoO1xuICAgIHBwX291dF9zcGFjZXMgPSBpO1xuICAgIHBwX291dF9pbmRlbnQgPSBqO1xuICAgIHBwX3ByaW50X3RhZ3MgPSBmYWxzZTtcbiAgICBwcF9tYXJrX3RhZ3MgPSBmYWxzZTtcbiAgICBwcF9tYXJrX29wZW5fdGFnID0gZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnO1xuICAgIHBwX21hcmtfY2xvc2VfdGFnID0gZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZztcbiAgICBwcF9wcmludF9vcGVuX3RhZyA9IGRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWc7XG4gICAgcHBfcHJpbnRfY2xvc2VfdGFnID0gZGVmYXVsdF9wcF9wcmludF9jbG9zZV90YWc7XG4gICAgcHBfcXVldWUgPSBwcF9xdWV1ZTtcbiAgfVxuXG5cbigqIEJ1aWxkIGEgZm9ybWF0dGVyIG91dCBvZiBpdHMgb3V0IGZ1bmN0aW9ucy4gKilcbmxldCBmb3JtYXR0ZXJfb2Zfb3V0X2Z1bmN0aW9ucyBvdXRfZnVucyA9XG4gIHBwX21ha2VfZm9ybWF0dGVyXG4gICAgb3V0X2Z1bnMub3V0X3N0cmluZ1xuICAgIG91dF9mdW5zLm91dF9mbHVzaFxuICAgIG91dF9mdW5zLm91dF9uZXdsaW5lXG4gICAgb3V0X2Z1bnMub3V0X3NwYWNlc1xuICAgIG91dF9mdW5zLm91dF9pbmRlbnRcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdpdGggZGVmYXVsdCBmdW5jdGlvbnMgdG8gb3V0cHV0IHNwYWNlcyxcbiAgaW5kZW50YXRpb24sIGFuZCBuZXcgbGluZXMuICopXG5sZXQgbWFrZV9mb3JtYXR0ZXIgb3V0cHV0IGZsdXNoID1cbiAgbGV0IHBwZiA9IHBwX21ha2VfZm9ybWF0dGVyIG91dHB1dCBmbHVzaCBpZ25vcmUgaWdub3JlIGlnbm9yZSBpblxuICBwcGYucHBfb3V0X25ld2xpbmUgPC0gZGlzcGxheV9uZXdsaW5lIHBwZjtcbiAgcHBmLnBwX291dF9zcGFjZXMgPC0gZGlzcGxheV9ibGFua3MgcHBmO1xuICBwcGYucHBfb3V0X2luZGVudCA8LSBkaXNwbGF5X2luZGVudCBwcGY7XG4gIHBwZlxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd3JpdGluZyB0byBhIGdpdmVuIFtQZXJ2YXNpdmUub3V0X2NoYW5uZWxdIHZhbHVlLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyA9XG4gIG1ha2VfZm9ybWF0dGVyIChvdXRwdXRfc3Vic3RyaW5nIG9jKSAoZnVuICgpIC0+IGZsdXNoIG9jKVxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd3JpdGluZyB0byBhIGdpdmVuIFtCdWZmZXIudF0gdmFsdWUuICopXG5sZXQgZm9ybWF0dGVyX29mX2J1ZmZlciBiID1cbiAgbWFrZV9mb3JtYXR0ZXIgKEJ1ZmZlci5hZGRfc3Vic3RyaW5nIGIpIGlnbm9yZVxuXG5cbigqIEFsbG9jYXRpbmcgYnVmZmVyIGZvciBwcmV0dHktcHJpbnRpbmcgcHVycG9zZXMuXG4gICBEZWZhdWx0IGJ1ZmZlciBzaXplIGlzIHBwX2J1ZmZlcl9zaXplIG9yIDUxMi5cbiopXG5sZXQgcHBfYnVmZmVyX3NpemUgPSA1MTJcbmxldCBwcF9tYWtlX2J1ZmZlciAoKSA9IEJ1ZmZlci5jcmVhdGUgcHBfYnVmZmVyX3NpemVcblxuKCogVGhlIHN0YW5kYXJkIChzaGFyZWQpIGJ1ZmZlci4gKilcbmxldCBzdGRidWYgPSBwcF9tYWtlX2J1ZmZlciAoKVxuXG4oKiBQcmVkZWZpbmVkIGZvcm1hdHRlcnMgc3RhbmRhcmQgZm9ybWF0dGVyIHRvIHByaW50XG4gICB0byBbU3RkbGliLnN0ZG91dF0sIFtTdGRsaWIuc3RkZXJyXSwgYW5kIHshc3RkYnVmfS4gKilcbmxldCBzdGRfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX291dF9jaGFubmVsIFN0ZGxpYi5zdGRvdXRcbmFuZCBlcnJfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX291dF9jaGFubmVsIFN0ZGxpYi5zdGRlcnJcbmFuZCBzdHJfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX2J1ZmZlciBzdGRidWZcblxuXG4oKiBbZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBidWYgcHBmXSBmbHVzaGVzIGZvcm1hdHRlciBbcHBmXSxcbiAgIHRoZW4gcmV0dXJucyB0aGUgY29udGVudHMgb2YgYnVmZmVyIFtidWZdIHRoYXQgaXMgcmVzZXQuXG4gICBGb3JtYXR0ZXIgW3BwZl0gaXMgc3VwcG9zZWQgdG8gcHJpbnQgdG8gYnVmZmVyIFtidWZdLCBvdGhlcndpc2UgdGhpc1xuICAgZnVuY3Rpb24gaXMgbm90IHJlYWxseSB1c2VmdWwuICopXG5sZXQgZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBidWYgcHBmID1cbiAgcHBfZmx1c2hfcXVldWUgcHBmIGZhbHNlO1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBidWYgaW5cbiAgQnVmZmVyLnJlc2V0IGJ1ZjtcbiAgc1xuXG5cbigqIEZsdXNoIFtzdHJfZm9ybWF0dGVyXSBhbmQgZ2V0IHRoZSBjb250ZW50cyBvZiBbc3RkYnVmXS4gKilcbmxldCBmbHVzaF9zdHJfZm9ybWF0dGVyICgpID0gZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBzdGRidWYgc3RyX2Zvcm1hdHRlclxuXG4oKlxuICBTeW1ib2xpYyBwcmV0dHktcHJpbnRpbmdcbiopXG5cbigqXG4gIFN5bWJvbGljIHByZXR0eS1wcmludGluZyBpcyBwcmV0dHktcHJpbnRpbmcgd2l0aCBubyBsb3cgbGV2ZWwgb3V0cHV0LlxuXG4gIFdoZW4gdXNpbmcgYSBzeW1ib2xpYyBmb3JtYXR0ZXIsIGFsbCByZWd1bGFyIHByZXR0eS1wcmludGluZyBhY3Rpdml0aWVzXG4gIG9jY3VyIGJ1dCBvdXRwdXQgbWF0ZXJpYWwgaXMgc3ltYm9saWMgYW5kIHN0b3JlZCBpbiBhIGJ1ZmZlciBvZiBvdXRwdXRcbiAgaXRlbXMuIEF0IHRoZSBlbmQgb2YgcHJldHR5LXByaW50aW5nLCBmbHVzaGluZyB0aGUgb3V0cHV0IGJ1ZmZlciBhbGxvd3NcbiAgcG9zdC1wcm9jZXNzaW5nIG9mIHN5bWJvbGljIG91dHB1dCBiZWZvcmUgbG93IGxldmVsIG91dHB1dCBvcGVyYXRpb25zLlxuKilcblxudHlwZSBzeW1ib2xpY19vdXRwdXRfaXRlbSA9XG4gIHwgT3V0cHV0X2ZsdXNoXG4gIHwgT3V0cHV0X25ld2xpbmVcbiAgfCBPdXRwdXRfc3RyaW5nIG9mIHN0cmluZ1xuICB8IE91dHB1dF9zcGFjZXMgb2YgaW50XG4gIHwgT3V0cHV0X2luZGVudCBvZiBpbnRcblxudHlwZSBzeW1ib2xpY19vdXRwdXRfYnVmZmVyID0ge1xuICBtdXRhYmxlIHN5bWJvbGljX291dHB1dF9jb250ZW50cyA6IHN5bWJvbGljX291dHB1dF9pdGVtIGxpc3Q7XG59XG5cbmxldCBtYWtlX3N5bWJvbGljX291dHB1dF9idWZmZXIgKCkgPVxuICB7IHN5bWJvbGljX291dHB1dF9jb250ZW50cyA9IFtdIH1cblxubGV0IGNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50cyA8LSBbXVxuXG5sZXQgZ2V0X3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgTGlzdC5yZXYgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50c1xuXG5sZXQgZmx1c2hfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBsZXQgaXRlbXMgPSBnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgaW5cbiAgY2xlYXJfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2I7XG4gIGl0ZW1zXG5cbmxldCBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIGl0ZW0gPVxuICBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDwtIGl0ZW0gOjogc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50c1xuXG5sZXQgZm9ybWF0dGVyX29mX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgbGV0IHN5bWJvbGljX2ZsdXNoIHNvYiAoKSA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBPdXRwdXRfZmx1c2hcbiAgYW5kIHN5bWJvbGljX25ld2xpbmUgc29iICgpID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIE91dHB1dF9uZXdsaW5lXG4gIGFuZCBzeW1ib2xpY19zdHJpbmcgc29iIHMgaSBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfc3RyaW5nIChTdHJpbmcuc3ViIHMgaSBuKSlcbiAgYW5kIHN5bWJvbGljX3NwYWNlcyBzb2IgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X3NwYWNlcyBuKVxuICBhbmQgc3ltYm9saWNfaW5kZW50IHNvYiBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfaW5kZW50IG4pIGluXG5cbiAgbGV0IGYgPSBzeW1ib2xpY19zdHJpbmcgc29iXG4gIGFuZCBnID0gc3ltYm9saWNfZmx1c2ggc29iXG4gIGFuZCBoID0gc3ltYm9saWNfbmV3bGluZSBzb2JcbiAgYW5kIGkgPSBzeW1ib2xpY19zcGFjZXMgc29iXG4gIGFuZCBqID0gc3ltYm9saWNfaW5kZW50IHNvYiBpblxuICBwcF9tYWtlX2Zvcm1hdHRlciBmIGcgaCBpIGpcblxuKCpcblxuICBCYXNpYyBmdW5jdGlvbnMgb24gdGhlICdzdGFuZGFyZCcgZm9ybWF0dGVyXG4gICh0aGUgZm9ybWF0dGVyIHRoYXQgcHJpbnRzIHRvIFtTdGRsaWIuc3Rkb3V0XSkuXG5cbiopXG5cbmxldCBvcGVuX2hib3ggPSBwcF9vcGVuX2hib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fdmJveCA9IHBwX29wZW5fdmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9odmJveCA9IHBwX29wZW5faHZib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5faG92Ym94ID0gcHBfb3Blbl9ob3Zib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fYm94ID0gcHBfb3Blbl9ib3ggc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX2JveCA9IHBwX2Nsb3NlX2JveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl90YWcgPSBwcF9vcGVuX3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfdGFnID0gcHBfY2xvc2VfdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3N0YWcgPSBwcF9vcGVuX3N0YWcgc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3N0YWcgPSBwcF9jbG9zZV9zdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9hcyA9IHBwX3ByaW50X2FzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9zdHJpbmcgPSBwcF9wcmludF9zdHJpbmcgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2J5dGVzID0gcHBfcHJpbnRfYnl0ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2ludCA9IHBwX3ByaW50X2ludCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfZmxvYXQgPSBwcF9wcmludF9mbG9hdCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfY2hhciA9IHBwX3ByaW50X2NoYXIgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2Jvb2wgPSBwcF9wcmludF9ib29sIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9icmVhayA9IHBwX3ByaW50X2JyZWFrIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9jdXQgPSBwcF9wcmludF9jdXQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3NwYWNlID0gcHBfcHJpbnRfc3BhY2Ugc3RkX2Zvcm1hdHRlclxuYW5kIGZvcmNlX25ld2xpbmUgPSBwcF9mb3JjZV9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9mbHVzaCA9IHBwX3ByaW50X2ZsdXNoIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9uZXdsaW5lID0gcHBfcHJpbnRfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfaWZfbmV3bGluZSA9IHBwX3ByaW50X2lmX25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuXG5hbmQgb3Blbl90Ym94ID0gcHBfb3Blbl90Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV90Ym94ID0gcHBfY2xvc2VfdGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfdGJyZWFrID0gcHBfcHJpbnRfdGJyZWFrIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF90YWIgPSBwcF9zZXRfdGFiIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF90YWIgPSBwcF9wcmludF90YWIgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21hcmdpbiA9IHBwX3NldF9tYXJnaW4gc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXJnaW4gPSBwcF9nZXRfbWFyZ2luIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXhfaW5kZW50ID0gcHBfc2V0X21heF9pbmRlbnQgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXhfaW5kZW50ID0gcHBfZ2V0X21heF9pbmRlbnQgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2dlb21ldHJ5ID0gcHBfc2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCBzYWZlX3NldF9nZW9tZXRyeSA9IHBwX3NhZmVfc2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZ2VvbWV0cnkgPSBwcF9nZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIHVwZGF0ZV9nZW9tZXRyeSA9IHBwX3VwZGF0ZV9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWF4X2JveGVzID0gcHBfc2V0X21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21heF9ib3hlcyA9IHBwX2dldF9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIG92ZXJfbWF4X2JveGVzID0gcHBfb3Zlcl9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2VsbGlwc2lzX3RleHQgPSBwcF9zZXRfZWxsaXBzaXNfdGV4dCBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2VsbGlwc2lzX3RleHQgPSBwcF9nZXRfZWxsaXBzaXNfdGV4dCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dF9jaGFubmVsID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF9wcmludF90YWdzID1cbiAgcHBfc2V0X3ByaW50X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9wcmludF90YWdzID1cbiAgcHBfZ2V0X3ByaW50X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF9tYXJrX3RhZ3MgPVxuICBwcF9zZXRfbWFya190YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWFya190YWdzID1cbiAgcHBfZ2V0X21hcmtfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X3RhZ3MgPVxuICBwcF9zZXRfdGFncyBzdGRfZm9ybWF0dGVyXG5cblxuKCogQ29udmVuaWVuY2UgZnVuY3Rpb25zICopXG5cbigqIFRvIGZvcm1hdCBhIGxpc3QgKilcbmxldCByZWMgcHBfcHJpbnRfbGlzdCA/KHBwX3NlcCA9IHBwX3ByaW50X2N1dCkgcHBfdiBwcGYgPSBmdW5jdGlvblxuICB8IFtdIC0+ICgpXG4gIHwgW3ZdIC0+IHBwX3YgcHBmIHZcbiAgfCB2IDo6IHZzIC0+XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9zZXAgcHBmICgpO1xuICAgIHBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcF92IHBwZiB2c1xuXG4oKiBUbyBmb3JtYXQgYSBzZXF1ZW5jZSAqKVxubGV0IHJlYyBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IFNlcS5OaWwgLT4gKClcbiAgfCBTZXEuQ29ucyAodiwgc2VxKSAtPlxuICAgIHBwX3NlcCBwcGYgKCk7XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXFcblxubGV0IHBwX3ByaW50X3NlcSA/KHBwX3NlcCA9IHBwX3ByaW50X2N1dCkgcHBfdiBwcGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBTZXEuTmlsIC0+ICgpXG4gIHwgU2VxLkNvbnMgKHYsIHNlcSkgLT5cbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcVxuXG4oKiBUbyBmb3JtYXQgZnJlZS1mbG93aW5nIHRleHQgKilcbmxldCBwcF9wcmludF90ZXh0IHBwZiBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgbGVmdCA9IHJlZiAwIGluXG4gIGxldCByaWdodCA9IHJlZiAwIGluXG4gIGxldCBmbHVzaCAoKSA9XG4gICAgcHBfcHJpbnRfc3RyaW5nIHBwZiAoU3RyaW5nLnN1YiBzICFsZWZ0ICghcmlnaHQgLSAhbGVmdCkpO1xuICAgIGluY3IgcmlnaHQ7IGxlZnQgOj0gIXJpZ2h0O1xuICBpblxuICB3aGlsZSAoIXJpZ2h0IDw+IGxlbikgZG9cbiAgICBtYXRjaCBzLlshcmlnaHRdIHdpdGhcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgZmx1c2ggKCk7XG4gICAgICAgIHBwX2ZvcmNlX25ld2xpbmUgcHBmICgpXG4gICAgICB8ICcgJyAtPlxuICAgICAgICBmbHVzaCAoKTsgcHBfcHJpbnRfc3BhY2UgcHBmICgpXG4gICAgICAoKiB0aGVyZSBpcyBubyBzcGVjaWZpYyBzdXBwb3J0IGZvciAnXFx0J1xuICAgICAgICAgYXMgaXQgaXMgdW5jbGVhciB3aGF0IGEgcmlnaHQgc2VtYW50aWNzIHdvdWxkIGJlICopXG4gICAgICB8IF8gLT4gaW5jciByaWdodFxuICBkb25lO1xuICBpZiAhbGVmdCA8PiBsZW4gdGhlbiBmbHVzaCAoKVxuXG5sZXQgcHBfcHJpbnRfb3B0aW9uID8obm9uZSA9IGZ1biBfICgpIC0+ICgpKSBwcF92IHBwZiA9IGZ1bmN0aW9uXG58IE5vbmUgLT4gbm9uZSBwcGYgKClcbnwgU29tZSB2IC0+IHBwX3YgcHBmIHZcblxubGV0IHBwX3ByaW50X3Jlc3VsdCB+b2sgfmVycm9yIHBwZiA9IGZ1bmN0aW9uXG58IE9rIHYgLT4gb2sgcHBmIHZcbnwgRXJyb3IgZSAtPiBlcnJvciBwcGYgZVxuXG5sZXQgcHBfcHJpbnRfZWl0aGVyIH5sZWZ0IH5yaWdodCBwcGYgPSBmdW5jdGlvblxufCBFaXRoZXIuTGVmdCBsIC0+IGxlZnQgcHBmIGxcbnwgRWl0aGVyLlJpZ2h0IHIgLT4gcmlnaHQgcHBmIHJcblxuICgqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubGV0IGNvbXB1dGVfdGFnIG91dHB1dCB0YWdfYWNjID1cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMTYgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYnVmIGluXG4gIG91dHB1dCBwcGYgdGFnX2FjYztcbiAgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICBsZXQgbGVuID0gQnVmZmVyLmxlbmd0aCBidWYgaW5cbiAgaWYgbGVuIDwgMiB0aGVuIEJ1ZmZlci5jb250ZW50cyBidWZcbiAgZWxzZSBCdWZmZXIuc3ViIGJ1ZiAxIChsZW4gLSAyKVxuXG4gKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgRGVmaW5pbmcgY29udGludWF0aW9ucyB0byBiZSBwYXNzZWQgYXMgYXJndW1lbnRzIG9mXG4gIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi5cblxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbigqIEludGVycHJldCBhIGZvcm1hdHRpbmcgZW50aXR5IG9uIGEgZm9ybWF0dGVyLiAqKVxubGV0IG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZm10aW5nX2xpdCA9IG1hdGNoIGZtdGluZ19saXQgd2l0aFxuICB8IENsb3NlX2JveCAgICAgICAgICAgICAgICAgLT4gcHBfY2xvc2VfYm94IHBwZiAoKVxuICB8IENsb3NlX3RhZyAgICAgICAgICAgICAgICAgLT4gcHBfY2xvc2VfdGFnIHBwZiAoKVxuICB8IEJyZWFrIChfLCB3aWR0aCwgb2Zmc2V0KSAgLT4gcHBfcHJpbnRfYnJlYWsgcHBmIHdpZHRoIG9mZnNldFxuICB8IEZGbHVzaCAgICAgICAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfZmx1c2ggcHBmICgpXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgICAgICAtPiBwcF9mb3JjZV9uZXdsaW5lIHBwZiAoKVxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgICAgICAgLT4gcHBfcHJpbnRfbmV3bGluZSBwcGYgKClcbiAgfCBNYWdpY19zaXplIChfLCBfKSAgICAgICAgIC0+ICgpXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnQCdcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICclJ1xuICB8IFNjYW5faW5kaWMgYyAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJ0AnOyBwcF9wcmludF9jaGFyIHBwZiBjXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYW4gb3V0cHV0X3N0cmVhbS4gKilcbigqIERpZmZlciBmcm9tIFByaW50Zi5vdXRwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiBmb3JtYXR0aW5nLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuICopXG5sZXQgcmVjIG91dHB1dF9hY2MgcHBmIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKFN0cmluZy5tYWtlIDEgYyk7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9vcGVuX3N0YWcgcHBmIChTdHJpbmdfdGFnIChjb21wdXRlX3RhZyBvdXRwdXRfYWNjIGFjYycpKVxuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBsZXQgKGluZGVudCwgYnR5KSA9IG9wZW5fYm94X29mX3N0cmluZyAoY29tcHV0ZV90YWcgb3V0cHV0X2FjYyBhY2MnKSBpblxuICAgIHBwX29wZW5fYm94X2dlbiBwcGYgaW5kZW50IGJ0eVxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2NoYXIgcHBmIGM7XG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IGYgcHBmO1xuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IG91dHB1dF9hY2MgcHBmIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhIGJ1ZmZlci4gKilcbigqIERpZmZlciBmcm9tIFByaW50Zi5idWZwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiBmb3JtYXR0aW5nLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuICopXG5sZXQgcmVjIHN0cnB1dF9hY2MgcHBmIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKFN0cmluZy5tYWtlIDEgYyk7XG4gIHwgQWNjX2RlbGF5IChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgZikgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoZiAoKSk7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9vcGVuX3N0YWcgcHBmIChTdHJpbmdfdGFnIChjb21wdXRlX3RhZyBzdHJwdXRfYWNjIGFjYycpKVxuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBsZXQgKGluZGVudCwgYnR5KSA9IG9wZW5fYm94X29mX3N0cmluZyAoY29tcHV0ZV90YWcgc3RycHV0X2FjYyBhY2MnKSBpblxuICAgIHBwX29wZW5fYm94X2dlbiBwcGYgaW5kZW50IGJ0eVxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2NoYXIgcHBmIGM7XG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgKGYgKCkpO1xuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IHN0cnB1dF9hY2MgcHBmIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCpcblxuICBEZWZpbmluZyBbZnByaW50Zl0gYW5kIHZhcmlvdXMgZmxhdm9ycyBvZiBbZnByaW50Zl0uXG5cbiopXG5cbmxldCBrZnByaW50ZiBrIHBwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmXG4gICAgKGZ1biBhY2MgLT4gb3V0cHV0X2FjYyBwcGYgYWNjOyBrIHBwZilcbiAgICBFbmRfb2ZfYWNjIGZtdFxuXG5hbmQgaWtmcHJpbnRmIGsgcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGsgcHBmIGZtdFxuXG5sZXQgaWZwcmludGYgX3BwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBpZ25vcmUgKCkgZm10XG5cbmxldCBmcHJpbnRmIHBwZiA9IGtmcHJpbnRmIGlnbm9yZSBwcGZcbmxldCBwcmludGYgZm10ID0gZnByaW50ZiBzdGRfZm9ybWF0dGVyIGZtdFxubGV0IGVwcmludGYgZm10ID0gZnByaW50ZiBlcnJfZm9ybWF0dGVyIGZtdFxuXG5sZXQga2RwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmXG4gICAgKGZ1biBhY2MgLT4gayAoZnVuIHBwZiAtPiBvdXRwdXRfYWNjIHBwZiBhY2MpKVxuICAgIEVuZF9vZl9hY2MgZm10XG5cbmxldCBkcHJpbnRmIGZtdCA9IGtkcHJpbnRmIChmdW4gaSAtPiBpKSBmbXRcblxubGV0IGtzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYiA9IHBwX21ha2VfYnVmZmVyICgpIGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID1cbiAgICBzdHJwdXRfYWNjIHBwZiBhY2M7XG4gICAgayAoZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBiIHBwZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbmxldCBzcHJpbnRmIGZtdCA9IGtzcHJpbnRmIGlkIGZtdFxuXG5sZXQga2FzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYiA9IHBwX21ha2VfYnVmZmVyICgpIGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID1cbiAgICBvdXRwdXRfYWNjIHBwZiBhY2M7XG4gICAgayAoZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBiIHBwZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbmxldCBhc3ByaW50ZiBmbXQgPSBrYXNwcmludGYgaWQgZm10XG5cbigqIEZsdXNoaW5nIHN0YW5kYXJkIGZvcm1hdHRlcnMgYXQgZW5kIG9mIGV4ZWN1dGlvbi4gKilcblxubGV0IGZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMgKCkgPVxuICBwcF9wcmludF9mbHVzaCBzdGRfZm9ybWF0dGVyICgpO1xuICBwcF9wcmludF9mbHVzaCBlcnJfZm9ybWF0dGVyICgpXG5cbmxldCAoKSA9IGF0X2V4aXQgZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVyc1xuXG4oKlxuXG4gIERlcHJlY2F0ZWQgc3R1ZmYuXG5cbiopXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlXG4gICAgfm91dDpmIH5mbHVzaDpnIH5uZXdsaW5lOmggfnNwYWNlczppID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlIGYgZztcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gaDtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBpXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlICgpID1cbiAgKHN0YXRlLnBwX291dF9zdHJpbmcsIHN0YXRlLnBwX291dF9mbHVzaCxcbiAgIHN0YXRlLnBwX291dF9uZXdsaW5lLCBzdGF0ZS5wcF9vdXRfc3BhY2VzKVxuXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBzZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IGdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IGdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBEZXByZWNhdGVkIDogZXJyb3IgcHJvbmUgZnVuY3Rpb24sIGRvIG5vdCB1c2UgaXQuXG4gICBUaGlzIGZ1bmN0aW9uIGlzIG5laXRoZXIgY29tcG9zaXRpb25hbCBub3IgaW5jcmVtZW50YWwsIHNpbmNlIGl0IGZsdXNoZXNcbiAgIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBhdCBlYWNoIGNhbGwuXG4gICBUbyBnZXQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSwgZGVmaW5lIGEgZm9ybWF0dGVyIG9mIHlvdXIgb3duIHdyaXRpbmcgdG9cbiAgIHRoZSBidWZmZXIgYXJndW1lbnQsIGFzIGluXG4gICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiXG4gICB0aGVuIHVzZSB7IWZwcmludGYgcHBmfSBhcyB1c3VhbC4gKilcbmxldCBicHJpbnRmIGIgKEZvcm1hdCAoZm10LCBfKSA6ICgnYSwgZm9ybWF0dGVyLCB1bml0KSBmb3JtYXQpID1cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPSBvdXRwdXRfYWNjIHBwZiBhY2M7IHBwX2ZsdXNoX3F1ZXVlIHBwZiBmYWxzZSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxuKCogRGVwcmVjYXRlZCA6IGFsaWFzIGZvciBrc3ByaW50Zi4gKilcbmxldCBrcHJpbnRmID0ga3NwcmludGZcblxuXG5cbigqIERlcHJlY2F0ZWQgdGFnIGZ1bmN0aW9ucyAqKVxuXG50eXBlIGZvcm1hdHRlcl90YWdfZnVuY3Rpb25zID0ge1xuICBtYXJrX29wZW5fdGFnIDogdGFnIC0+IHN0cmluZztcbiAgbWFya19jbG9zZV90YWcgOiB0YWcgLT4gc3RyaW5nO1xuICBwcmludF9vcGVuX3RhZyA6IHRhZyAtPiB1bml0O1xuICBwcmludF9jbG9zZV90YWcgOiB0YWcgLT4gdW5pdDtcbn1cblxuXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgbWFya19vcGVuX3RhZyA9IG1vdDtcbiAgICAgbWFya19jbG9zZV90YWcgPSBtY3Q7XG4gICAgIHByaW50X29wZW5fdGFnID0gcG90O1xuICAgICBwcmludF9jbG9zZV90YWcgPSBwY3Q7XG4gICB9ID1cbiAgbGV0IHN0cmluZ2lmeSBmIGUgPSBmdW5jdGlvbiBTdHJpbmdfdGFnIHMgLT4gZiBzIHwgXyAtPiBlIGluXG4gIHN0YXRlLnBwX21hcmtfb3Blbl90YWcgPC0gc3RyaW5naWZ5IG1vdCBcIlwiO1xuICBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyA8LSBzdHJpbmdpZnkgbWN0IFwiXCI7XG4gIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIDwtIHN0cmluZ2lmeSBwb3QgKCk7XG4gIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyA8LSBzdHJpbmdpZnkgcGN0ICgpXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgZm10ICgpID1cbiAgbGV0IGZ1bnMgPSBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIGZtdCAoKSBpblxuICBsZXQgbWFya19vcGVuX3RhZyBzID0gZnVucy5tYXJrX29wZW5fc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgbWFya19jbG9zZV90YWcgcyA9IGZ1bnMubWFya19jbG9zZV9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBwcmludF9vcGVuX3RhZyBzID0gZnVucy5wcmludF9vcGVuX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IHByaW50X2Nsb3NlX3RhZyBzID0gZnVucy5wcmludF9jbG9zZV9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIHttYXJrX29wZW5fdGFnOyBtYXJrX2Nsb3NlX3RhZzsgcHJpbnRfb3Blbl90YWc7IHByaW50X2Nsb3NlX3RhZ31cblxubGV0IHNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbigqIGFsaWFzIHRvIGF2b2lkIHdhcm5pbmcgZm9yIGFtYmlndWl0eSBiZXR3ZWVuXG4gICBTdGRsaWIuZm9ybWF0NlxuICAgYW5kIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG5cbiAgICh0aGUgZm9ybWVyIGlzIGluIGZhY3QgYW4gYWxpYXMgZm9yIHRoZSBsYXR0ZXIsXG4gICAgYnV0IHRoZSBhbWJpZ3VpdHkgd2FybmluZyBkb2Vzbid0IGNhcmUpXG4qKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBTdGRsaWIuZm9ybWF0NlxuXG5cbigqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBzY2FubmVycy4gKilcblxuKCogU2Nhbm5pbmcgYnVmZmVycy4gKilcbm1vZHVsZSB0eXBlIFNDQU5OSU5HID0gc2lnXG5cbiAgdHlwZSBpbl9jaGFubmVsXG5cbiAgdHlwZSBzY2FuYnVmID0gaW5fY2hhbm5lbFxuXG4gIHR5cGUgZmlsZV9uYW1lID0gc3RyaW5nXG5cbiAgdmFsIHN0ZGluIDogaW5fY2hhbm5lbFxuICAoKiBUaGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXS5cbiAgICAgW3N0ZGliXSBpcyBlcXVpdmFsZW50IHRvIFtTY2FubmluZy5mcm9tX2NoYW5uZWwgU3RkbGliLnN0ZGluXS4gKilcblxuICB2YWwgc3RkaWIgOiBpbl9jaGFubmVsXG4gICgqIEFuIGFsaWFzIGZvciBbU2NhbmYuc3RkaW5dLCB0aGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbVxuICAgICBbU3RkbGliLnN0ZGluXS4gKilcblxuICB2YWwgbmV4dF9jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFtTY2FubmluZy5uZXh0X2NoYXIgaWJdIGFkdmFuY2UgdGhlIHNjYW5uaW5nIGJ1ZmZlciBmb3JcbiAgICAgb25lIGNoYXJhY3Rlci5cbiAgICAgSWYgbm8gbW9yZSBjaGFyYWN0ZXIgY2FuIGJlIHJlYWQsIHNldHMgYSBlbmQgb2YgZmlsZSBjb25kaXRpb24gYW5kXG4gICAgIHJldHVybnMgJ1xcMDAwJy4gKilcblxuICB2YWwgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgOiBzY2FuYnVmIC0+IHVuaXRcbiAgKCogW1NjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXSBtYXJrIHRoZSBjdXJyZW50X2NoYXIgYXMgYWxyZWFkeVxuICAgICBzY2FubmVkLiAqKVxuXG4gIHZhbCBwZWVrX2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogW1NjYW5uaW5nLnBlZWtfY2hhciBpYl0gcmV0dXJucyB0aGUgY3VycmVudCBjaGFyIGF2YWlsYWJsZSBpblxuICAgICB0aGUgYnVmZmVyIG9yIHJlYWRzIG9uZSBpZiBuZWNlc3NhcnkgKHdoZW4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzXG4gICAgIGFscmVhZHkgc2Nhbm5lZCkuXG4gICAgIElmIG5vIGNoYXJhY3RlciBjYW4gYmUgcmVhZCwgc2V0cyBhbiBlbmQgb2YgZmlsZSBjb25kaXRpb24gYW5kXG4gICAgIHJldHVybnMgJ1xcMDAwJy4gKilcblxuICB2YWwgY2hlY2tlZF9wZWVrX2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogU2FtZSBhcyBbU2Nhbm5pbmcucGVla19jaGFyXSBhYm92ZSBidXQgYWx3YXlzIHJldHVybnMgYSB2YWxpZCBjaGFyIG9yXG4gICAgIGZhaWxzOiBpbnN0ZWFkIG9mIHJldHVybmluZyBhIG51bGwgY2hhciB3aGVuIHRoZSByZWFkaW5nIG1ldGhvZCBvZiB0aGVcbiAgICAgaW5wdXQgYnVmZmVyIGhhcyByZWFjaGVkIGFuIGVuZCBvZiBmaWxlLCB0aGUgZnVuY3Rpb24gcmFpc2VzIGV4Y2VwdGlvblxuICAgICBbRW5kX29mX2ZpbGVdLiAqKVxuXG4gIHZhbCBzdG9yZV9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gY2hhciAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnN0b3JlX2NoYXIgbGltIGliIGNdIGFkZHMgW2NdIHRvIHRoZSB0b2tlbiBidWZmZXJcbiAgICAgb2YgdGhlIHNjYW5uaW5nIGJ1ZmZlciBbaWJdLiBJdCBhbHNvIGFkdmFuY2VzIHRoZSBzY2FubmluZyBidWZmZXIgZm9yXG4gICAgIG9uZSBjaGFyYWN0ZXIgYW5kIHJldHVybnMgW2xpbSAtIDFdLCBpbmRpY2F0aW5nIHRoZSBuZXcgbGltaXQgZm9yIHRoZVxuICAgICBsZW5ndGggb2YgdGhlIGN1cnJlbnQgdG9rZW4uICopXG5cbiAgdmFsIHNraXBfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuc2tpcF9jaGFyIGxpbSBpYl0gaWdub3JlcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuICopXG5cbiAgdmFsIGlnbm9yZV9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5pZ25vcmVfY2hhciBpYiBsaW1dIGlnbm9yZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGFuZFxuICAgICBkZWNyZW1lbnRzIHRoZSBsaW1pdC4gKilcblxuICB2YWwgdG9rZW4gOiBzY2FuYnVmIC0+IHN0cmluZ1xuICAoKiBbU2Nhbm5pbmcudG9rZW4gaWJdIHJldHVybnMgdGhlIHN0cmluZyBzdG9yZWQgaW50byB0aGUgdG9rZW5cbiAgICAgYnVmZmVyIG9mIHRoZSBzY2FubmluZyBidWZmZXI6IGl0IHJldHVybnMgdGhlIHRva2VuIG1hdGNoZWQgYnkgdGhlXG4gICAgIGZvcm1hdC4gKilcblxuICB2YWwgcmVzZXRfdG9rZW4gOiBzY2FuYnVmIC0+IHVuaXRcbiAgKCogW1NjYW5uaW5nLnJlc2V0X3Rva2VuIGliXSByZXNldHMgdGhlIHRva2VuIGJ1ZmZlciBvZlxuICAgICB0aGUgZ2l2ZW4gc2Nhbm5pbmcgYnVmZmVyLiAqKVxuXG4gIHZhbCBjaGFyX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmNoYXJfY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzXG4gICAgIHJlYWQgc28gZmFyIGZyb20gdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgbGluZV9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5saW5lX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgbmV3IGxpbmVcbiAgICAgY2hhcmFjdGVycyByZWFkIHNvIGZhciBmcm9tIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIHRva2VuX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnRva2VuX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgdG9rZW5zIHJlYWRcbiAgICAgc28gZmFyIGZyb20gW2liXS4gKilcblxuICB2YWwgZW9mIDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5lb2YgaWJdIHJldHVybnMgdGhlIGVuZCBvZiBpbnB1dCBjb25kaXRpb25cbiAgICAgb2YgdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgZW5kX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWJdIHRlc3RzIHRoZSBlbmQgb2YgaW5wdXQgY29uZGl0aW9uXG4gICAgIG9mIHRoZSBnaXZlbiBidWZmZXIgKGlmIG5vIGNoYXIgaGFzIGV2ZXIgYmVlbiByZWFkLCBhbiBhdHRlbXB0IHRvXG4gICAgIHJlYWQgb25lIGlzIHBlcmZvcm1lZCkuICopXG5cbiAgdmFsIGJlZ2lubmluZ19vZl9pbnB1dCA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuYmVnaW5uaW5nX29mX2lucHV0IGliXSB0ZXN0cyB0aGUgYmVnaW5uaW5nIG9mIGlucHV0XG4gICAgIGNvbmRpdGlvbiBvZiB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBuYW1lX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBzdHJpbmdcbiAgKCogW1NjYW5uaW5nLm5hbWVfb2ZfaW5wdXQgaWJdIHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGNoYXJhY3RlclxuICAgICBzb3VyY2UgZm9yIGlucHV0IGJ1ZmZlciBbaWJdLiAqKVxuXG4gIHZhbCBvcGVuX2luIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIG9wZW5faW5fYmluIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZmlsZSA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2ZpbGVfYmluIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fc3RyaW5nIDogc3RyaW5nIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZnVuY3Rpb24gOiAodW5pdCAtPiBjaGFyKSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2NoYW5uZWwgOiBTdGRsaWIuaW5fY2hhbm5lbCAtPiBpbl9jaGFubmVsXG5cbiAgdmFsIGNsb3NlX2luIDogaW5fY2hhbm5lbCAtPiB1bml0XG5cbiAgdmFsIG1lbW9fZnJvbV9jaGFubmVsIDogU3RkbGliLmluX2NoYW5uZWwgLT4gaW5fY2hhbm5lbFxuICAoKiBPYnNvbGV0ZS4gKilcblxuZW5kXG5cblxubW9kdWxlIFNjYW5uaW5nIDogU0NBTk5JTkcgPSBzdHJ1Y3RcblxuICAoKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3Igc2NhbmYuICopXG5cbiAgdHlwZSBmaWxlX25hbWUgPSBzdHJpbmdcblxuICB0eXBlIGluX2NoYW5uZWxfbmFtZSA9XG4gICAgfCBGcm9tX2NoYW5uZWwgb2YgU3RkbGliLmluX2NoYW5uZWxcbiAgICB8IEZyb21fZmlsZSBvZiBmaWxlX25hbWUgKiBTdGRsaWIuaW5fY2hhbm5lbFxuICAgIHwgRnJvbV9mdW5jdGlvblxuICAgIHwgRnJvbV9zdHJpbmdcblxuXG4gIHR5cGUgaW5fY2hhbm5lbCA9IHtcbiAgICBtdXRhYmxlIGljX2VvZiA6IGJvb2w7XG4gICAgbXV0YWJsZSBpY19jdXJyZW50X2NoYXIgOiBjaGFyO1xuICAgIG11dGFibGUgaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDogYm9vbDtcbiAgICBtdXRhYmxlIGljX2NoYXJfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBpY19saW5lX2NvdW50IDogaW50O1xuICAgIG11dGFibGUgaWNfdG9rZW5fY291bnQgOiBpbnQ7XG4gICAgaWNfZ2V0X25leHRfY2hhciA6IHVuaXQgLT4gY2hhcjtcbiAgICBpY190b2tlbl9idWZmZXIgOiBCdWZmZXIudDtcbiAgICBpY19pbnB1dF9uYW1lIDogaW5fY2hhbm5lbF9uYW1lO1xuICB9XG5cblxuICB0eXBlIHNjYW5idWYgPSBpbl9jaGFubmVsXG5cbiAgbGV0IG51bGxfY2hhciA9ICdcXDAwMCdcblxuICAoKiBSZWFkcyBhIG5ldyBjaGFyYWN0ZXIgZnJvbSBpbnB1dCBidWZmZXIuXG4gICAgIE5leHRfY2hhciBuZXZlciBmYWlscywgZXZlbiBpbiBjYXNlIG9mIGVuZCBvZiBpbnB1dDpcbiAgICAgaXQgdGhlbiBzaW1wbHkgc2V0cyB0aGUgZW5kIG9mIGZpbGUgY29uZGl0aW9uLiAqKVxuICBsZXQgbmV4dF9jaGFyIGliID1cbiAgICB0cnlcbiAgICAgIGxldCBjID0gaWIuaWNfZ2V0X25leHRfY2hhciAoKSBpblxuICAgICAgaWIuaWNfY3VycmVudF9jaGFyIDwtIGM7XG4gICAgICBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gdHJ1ZTtcbiAgICAgIGliLmljX2NoYXJfY291bnQgPC0gc3VjYyBpYi5pY19jaGFyX2NvdW50O1xuICAgICAgaWYgYyA9ICdcXG4nIHRoZW4gaWIuaWNfbGluZV9jb3VudCA8LSBzdWNjIGliLmljX2xpbmVfY291bnQ7XG4gICAgICBjIHdpdGhcbiAgICB8IEVuZF9vZl9maWxlIC0+XG4gICAgICBsZXQgYyA9IG51bGxfY2hhciBpblxuICAgICAgaWIuaWNfY3VycmVudF9jaGFyIDwtIGM7XG4gICAgICBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gZmFsc2U7XG4gICAgICBpYi5pY19lb2YgPC0gdHJ1ZTtcbiAgICAgIGNcblxuXG4gIGxldCBwZWVrX2NoYXIgaWIgPVxuICAgIGlmIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZFxuICAgIHRoZW4gaWIuaWNfY3VycmVudF9jaGFyXG4gICAgZWxzZSBuZXh0X2NoYXIgaWJcblxuXG4gICgqIFJldHVybnMgYSB2YWxpZCBjdXJyZW50IGNoYXIgZm9yIHRoZSBpbnB1dCBidWZmZXIuIEluIHBhcnRpY3VsYXJcbiAgICAgbm8gaXJyZWxldmFudCBudWxsIGNoYXJhY3RlciAoYXMgc2V0IGJ5IFtuZXh0X2NoYXJdIGluIGNhc2Ugb2YgZW5kXG4gICAgIG9mIGlucHV0KSBpcyByZXR1cm5lZCwgc2luY2UgW0VuZF9vZl9maWxlXSBpcyByYWlzZWQgd2hlblxuICAgICBbbmV4dF9jaGFyXSBzZXRzIHRoZSBlbmQgb2YgZmlsZSBjb25kaXRpb24gd2hpbGUgdHJ5aW5nIHRvIHJlYWQgYVxuICAgICBuZXcgY2hhcmFjdGVyLiAqKVxuICBsZXQgY2hlY2tlZF9wZWVrX2NoYXIgaWIgPVxuICAgIGxldCBjID0gcGVla19jaGFyIGliIGluXG4gICAgaWYgaWIuaWNfZW9mIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGU7XG4gICAgY1xuXG5cbiAgbGV0IGVuZF9vZl9pbnB1dCBpYiA9XG4gICAgaWdub3JlIChwZWVrX2NoYXIgaWIpO1xuICAgIGliLmljX2VvZlxuXG5cbiAgbGV0IGVvZiBpYiA9IGliLmljX2VvZlxuXG4gIGxldCBiZWdpbm5pbmdfb2ZfaW5wdXQgaWIgPSBpYi5pY19jaGFyX2NvdW50ID0gMFxuXG4gIGxldCBuYW1lX29mX2lucHV0IGliID1cbiAgICBtYXRjaCBpYi5pY19pbnB1dF9uYW1lIHdpdGhcbiAgICB8IEZyb21fY2hhbm5lbCBfaWMgLT4gXCJ1bm5hbWVkIFN0ZGxpYiBpbnB1dCBjaGFubmVsXCJcbiAgICB8IEZyb21fZmlsZSAoZm5hbWUsIF9pYykgLT4gZm5hbWVcbiAgICB8IEZyb21fZnVuY3Rpb24gLT4gXCJ1bm5hbWVkIGZ1bmN0aW9uXCJcbiAgICB8IEZyb21fc3RyaW5nIC0+IFwidW5uYW1lZCBjaGFyYWN0ZXIgc3RyaW5nXCJcblxuXG4gIGxldCBjaGFyX2NvdW50IGliID1cbiAgICBpZiBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWRcbiAgICB0aGVuIGliLmljX2NoYXJfY291bnQgLSAxXG4gICAgZWxzZSBpYi5pY19jaGFyX2NvdW50XG5cblxuICBsZXQgbGluZV9jb3VudCBpYiA9IGliLmljX2xpbmVfY291bnRcblxuICBsZXQgcmVzZXRfdG9rZW4gaWIgPSBCdWZmZXIucmVzZXQgaWIuaWNfdG9rZW5fYnVmZmVyXG5cbiAgbGV0IGludmFsaWRhdGVfY3VycmVudF9jaGFyIGliID0gaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIGZhbHNlXG5cbiAgbGV0IHRva2VuIGliID1cbiAgICBsZXQgdG9rZW5fYnVmZmVyID0gaWIuaWNfdG9rZW5fYnVmZmVyIGluXG4gICAgbGV0IHRvayA9IEJ1ZmZlci5jb250ZW50cyB0b2tlbl9idWZmZXIgaW5cbiAgICBCdWZmZXIuY2xlYXIgdG9rZW5fYnVmZmVyO1xuICAgIGliLmljX3Rva2VuX2NvdW50IDwtIHN1Y2MgaWIuaWNfdG9rZW5fY291bnQ7XG4gICAgdG9rXG5cblxuICBsZXQgdG9rZW5fY291bnQgaWIgPSBpYi5pY190b2tlbl9jb3VudFxuXG4gIGxldCBza2lwX2NoYXIgd2lkdGggaWIgPVxuICAgIGludmFsaWRhdGVfY3VycmVudF9jaGFyIGliO1xuICAgIHdpZHRoXG5cblxuICBsZXQgaWdub3JlX2NoYXIgd2lkdGggaWIgPSBza2lwX2NoYXIgKHdpZHRoIC0gMSkgaWJcblxuICBsZXQgc3RvcmVfY2hhciB3aWR0aCBpYiBjID1cbiAgICBCdWZmZXIuYWRkX2NoYXIgaWIuaWNfdG9rZW5fYnVmZmVyIGM7XG4gICAgaWdub3JlX2NoYXIgd2lkdGggaWJcblxuXG4gIGxldCBkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplID0gMTAyNFxuXG4gIGxldCBjcmVhdGUgaW5hbWUgbmV4dCA9IHtcbiAgICBpY19lb2YgPSBmYWxzZTtcbiAgICBpY19jdXJyZW50X2NoYXIgPSBudWxsX2NoYXI7XG4gICAgaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkID0gZmFsc2U7XG4gICAgaWNfY2hhcl9jb3VudCA9IDA7XG4gICAgaWNfbGluZV9jb3VudCA9IDA7XG4gICAgaWNfdG9rZW5fY291bnQgPSAwO1xuICAgIGljX2dldF9uZXh0X2NoYXIgPSBuZXh0O1xuICAgIGljX3Rva2VuX2J1ZmZlciA9IEJ1ZmZlci5jcmVhdGUgZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZTtcbiAgICBpY19pbnB1dF9uYW1lID0gaW5hbWU7XG4gIH1cblxuXG4gIGxldCBmcm9tX3N0cmluZyBzID1cbiAgICBsZXQgaSA9IHJlZiAwIGluXG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICAgIGxldCBuZXh0ICgpID1cbiAgICAgIGlmICFpID49IGxlbiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlIGVsc2VcbiAgICAgIGxldCBjID0gcy5bIWldIGluXG4gICAgICBpbmNyIGk7XG4gICAgICBjIGluXG4gICAgY3JlYXRlIEZyb21fc3RyaW5nIG5leHRcblxuXG4gIGxldCBmcm9tX2Z1bmN0aW9uID0gY3JlYXRlIEZyb21fZnVuY3Rpb25cblxuICAoKiBTY2FubmluZyBmcm9tIGFuIGlucHV0IGNoYW5uZWwuICopXG5cbiAgKCogUG9zaXRpb24gb2YgdGhlIHByb2JsZW06XG5cbiAgICAgV2UgY2Fubm90IHByZXZlbnQgdGhlIHNjYW5uaW5nIG1lY2hhbmlzbSB0byB1c2Ugb25lIGxvb2thaGVhZCBjaGFyYWN0ZXIsXG4gICAgIGlmIG5lZWRlZCBieSB0aGUgc2VtYW50aWNzIG9mIHRoZSBmb3JtYXQgc3RyaW5nIHNwZWNpZmljYXRpb25zIChlLmcuIGFcbiAgICAgdHJhaWxpbmcgJ3NraXAgc3BhY2UnIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm1hdCBzdHJpbmcpOyBpbiB0aGlzIGNhc2UsXG4gICAgIHRoZSBtYW5kYXRvcnkgbG9va2FoZWFkIGNoYXJhY3RlciBpcyBpbmRlZWQgcmVhZCBmcm9tIHRoZSBpbnB1dCBhbmQgbm90XG4gICAgIHVzZWQgdG8gcmV0dXJuIHRoZSB0b2tlbiByZWFkLiBJdCBpcyB0aHVzIG1hbmRhdG9yeSB0byBiZSBhYmxlIHRvIHN0b3JlXG4gICAgIGFuIHVudXNlZCBsb29rYWhlYWQgY2hhcmFjdGVyIHNvbWV3aGVyZSB0byBnZXQgaXQgYXMgdGhlIGZpcnN0IGNoYXJhY3RlclxuICAgICBvZiB0aGUgbmV4dCBzY2FuLlxuXG4gICAgIFRvIGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVtLCBhbGwgdGhlIHNjYW5uaW5nIGZ1bmN0aW9ucyBnZXQgYSBsb3cgbGV2ZWxcbiAgICAgaW5wdXQgYnVmZmVyIGFyZ3VtZW50IHdoZXJlIHRoZXkgc3RvcmUgdGhlIGxvb2thaGVhZCBjaGFyYWN0ZXIgd2hlblxuICAgICBuZWVkZWQ7IGFkZGl0aW9uYWxseSwgdGhlIGlucHV0IGJ1ZmZlciBpcyB0aGUgb25seSBzb3VyY2Ugb2YgY2hhcmFjdGVyIG9mXG4gICAgIGEgc2Nhbm5lci4gVGhlIFtzY2FuYnVmXSBpbnB1dCBidWZmZXJzIGFyZSBkZWZpbmVkIGluIG1vZHVsZSB7IVNjYW5uaW5nfS5cblxuICAgICBOb3cgd2UgdW5kZXJzdGFuZCB0aGF0IGl0IGlzIGV4dHJlbWVseSBpbXBvcnRhbnQgdGhhdCByZWxhdGVkIGFuZFxuICAgICBzdWNjZXNzaXZlIGNhbGxzIHRvIHNjYW5uZXJzIGluZGVlZCByZWFkIGZyb20gdGhlIHNhbWUgaW5wdXQgYnVmZmVyLlxuICAgICBJbiBlZmZlY3QsIGlmIGEgc2Nhbm5lciBbc2NhbjFdIGlzIHJlYWRpbmcgZnJvbSBbaWIxXSBhbmQgc3RvcmVzIGFuXG4gICAgIHVudXNlZCBsb29rYWhlYWQgY2hhcmFjdGVyIFtjMV0gaW50byBpdHMgaW5wdXQgYnVmZmVyIFtpYjFdLCB0aGVuXG4gICAgIGFub3RoZXIgc2Nhbm5lciBbc2NhbjJdIG5vdCByZWFkaW5nIGZyb20gdGhlIHNhbWUgYnVmZmVyIFtpYjFdIHdpbGwgbWlzc1xuICAgICB0aGUgY2hhcmFjdGVyIFtjMV0sIHNlZW1pbmdseSB2YW5pc2hlZCBpbiB0aGUgYWlyIGZyb20gdGhlIHBvaW50IG9mIHZpZXdcbiAgICAgb2YgW3NjYW4yXS5cblxuICAgICBUaGlzIG1lY2hhbmlzbSB3b3JrcyBwZXJmZWN0bHkgdG8gcmVhZCBmcm9tIHN0cmluZ3MsIGZyb20gZmlsZXMsIGFuZCBmcm9tXG4gICAgIGZ1bmN0aW9ucywgc2luY2UgaW4gdGhvc2UgY2FzZXMsIGFsbG9jYXRpbmcgdHdvIGJ1ZmZlcnMgcmVhZGluZyBmcm9tIHRoZVxuICAgICBzYW1lIHNvdXJjZSBpcyB1bm5hdHVyYWwuXG5cbiAgICAgU3RpbGwsIHRoZXJlIGlzIGEgZGlmZmljdWx0eSBpbiB0aGUgY2FzZSBvZiBzY2FubmluZyBmcm9tIGFuIGlucHV0XG4gICAgIGNoYW5uZWwuIEluIGVmZmVjdCwgd2hlbiBzY2FubmluZyBmcm9tIGFuIGlucHV0IGNoYW5uZWwgW2ljXSwgdGhpcyBjaGFubmVsXG4gICAgIG1heSBub3QgaGF2ZSBiZWVuIGFsbG9jYXRlZCBmcm9tIHdpdGhpbiB0aGlzIGxpYnJhcnkuIEhlbmNlLCBpdCBtYXkgYmVcbiAgICAgc2hhcmVkICh0d28gZnVuY3Rpb25zIG9mIHRoZSB1c2VyJ3MgcHJvZ3JhbSBtYXkgc3VjY2Vzc2l2ZWx5IHJlYWQgZnJvbVxuICAgICBbaWNdKS4gVGhpcyBpcyBoaWdobHkgZXJyb3IgcHJvbmUgc2luY2UsIG9uZSBvZiB0aGUgZnVuY3Rpb24gbWF5IHNlZWsgdGhlXG4gICAgIGlucHV0IGNoYW5uZWwsIHdoaWxlIHRoZSBvdGhlciBmdW5jdGlvbiBoYXMgc3RpbGwgYW4gdW51c2VkIGxvb2thaGVhZFxuICAgICBjaGFyYWN0ZXIgaW4gaXRzIGlucHV0IGJ1ZmZlci4gSW4gY29uY2x1c2lvbiwgeW91IHNob3VsZCBuZXZlciBtaXggZGlyZWN0XG4gICAgIGxvdyBsZXZlbCByZWFkaW5nIGFuZCBoaWdoIGxldmVsIHNjYW5uaW5nIGZyb20gdGhlIHNhbWUgaW5wdXQgY2hhbm5lbC5cblxuICAqKVxuXG4gICgqIFBlcmZvcm0gYnVmZmVyaXplZCBpbnB1dCB0byBpbXByb3ZlIGVmZmljaWVuY3kuICopXG4gIGxldCBmaWxlX2J1ZmZlcl9zaXplID0gcmVmIDEwMjRcblxuICAoKiBUaGUgc2Nhbm5lciBjbG9zZXMgdGhlIGlucHV0IGNoYW5uZWwgYXQgZW5kIG9mIGlucHV0LiAqKVxuICBsZXQgc2Nhbl9jbG9zZV9hdF9lbmQgaWMgPSBTdGRsaWIuY2xvc2VfaW4gaWM7IHJhaXNlIEVuZF9vZl9maWxlXG5cbiAgKCogVGhlIHNjYW5uZXIgZG9lcyBub3QgY2xvc2UgdGhlIGlucHV0IGNoYW5uZWwgYXQgZW5kIG9mIGlucHV0OlxuICAgICBpdCBqdXN0IHJhaXNlcyBbRW5kX29mX2ZpbGVdLiAqKVxuICBsZXQgc2Nhbl9yYWlzZV9hdF9lbmQgX2ljID0gcmFpc2UgRW5kX29mX2ZpbGVcblxuICBsZXQgZnJvbV9pYyBzY2FuX2Nsb3NlX2ljIGluYW1lIGljID1cbiAgICBsZXQgbGVuID0gIWZpbGVfYnVmZmVyX3NpemUgaW5cbiAgICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIGxlbiBpblxuICAgIGxldCBpID0gcmVmIDAgaW5cbiAgICBsZXQgbGltID0gcmVmIDAgaW5cbiAgICBsZXQgZW9mID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IG5leHQgKCkgPVxuICAgICAgaWYgIWkgPCAhbGltIHRoZW4gYmVnaW4gbGV0IGMgPSBCeXRlcy5nZXQgYnVmICFpIGluIGluY3IgaTsgYyBlbmQgZWxzZVxuICAgICAgaWYgIWVvZiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlIGVsc2UgYmVnaW5cbiAgICAgICAgbGltIDo9IGlucHV0IGljIGJ1ZiAwIGxlbjtcbiAgICAgICAgaWYgIWxpbSA9IDAgdGhlbiBiZWdpbiBlb2YgOj0gdHJ1ZTsgc2Nhbl9jbG9zZV9pYyBpYyBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgIGkgOj0gMTtcbiAgICAgICAgICBCeXRlcy5nZXQgYnVmIDBcbiAgICAgICAgZW5kXG4gICAgICBlbmQgaW5cbiAgICBjcmVhdGUgaW5hbWUgbmV4dFxuXG5cbiAgbGV0IGZyb21faWNfY2xvc2VfYXRfZW5kID0gZnJvbV9pYyBzY2FuX2Nsb3NlX2F0X2VuZFxuICBsZXQgZnJvbV9pY19yYWlzZV9hdF9lbmQgPSBmcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG5cbiAgKCogVGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0uXG4gICAgIE9uZSBjb3VsZCB0cnkgdG8gZGVmaW5lIFtzdGRpYl0gYXMgYSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBhIGNoYXJhY3RlclxuICAgICBhdCBhIHRpbWUgKG5vIGJ1ZmZlcml6YXRpb24gYXQgYWxsKSwgYnV0IHVuZm9ydHVuYXRlbHkgdGhlIHRvcC1sZXZlbFxuICAgICBpbnRlcmFjdGlvbiB3b3VsZCBiZSB3cm9uZy4gVGhpcyBpcyBkdWUgdG8gc29tZSBraW5kIG9mXG4gICAgICdyYWNlIGNvbmRpdGlvbicgd2hlbiByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0sXG4gICAgIHNpbmNlIHRoZSBpbnRlcmFjdGl2ZSBjb21waWxlciBhbmQgW1NjYW5mLnNjYW5mXSB3aWxsIHNpbXVsdGFuZW91c2x5XG4gICAgIHJlYWQgdGhlIG1hdGVyaWFsIHRoZXkgbmVlZCBmcm9tIFtTdGRsaWIuc3RkaW5dOyB0aGVuLCBjb25mdXNpb25cbiAgICAgd2lsbCByZXN1bHQgZnJvbSB3aGF0IHNob3VsZCBiZSByZWFkIGJ5IHRoZSB0b3AtbGV2ZWwgYW5kIHdoYXQgc2hvdWxkIGJlXG4gICAgIHJlYWQgYnkgW1NjYW5mLnNjYW5mXS5cbiAgICAgVGhpcyBpcyBldmVuIG1vcmUgY29tcGxpY2F0ZWQgYnkgdGhlIG9uZSBjaGFyYWN0ZXIgbG9va2FoZWFkIHRoYXRcbiAgICAgW1NjYW5mLnNjYW5mXSBpcyBzb21ldGltZXMgb2JsaWdlZCB0byBtYWludGFpbjogdGhlIGxvb2thaGVhZCBjaGFyYWN0ZXJcbiAgICAgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHRoZSBuZXh0IFtTY2FuZi5zY2FuZl0gZW50cnksIHNlZW1pbmdseSBjb21pbmcgZnJvbVxuICAgICBub3doZXJlLlxuICAgICBBbHNvIG5vIFtFbmRfb2ZfZmlsZV0gaXMgcmFpc2VkIHdoZW4gcmVhZGluZyBmcm9tIHN0ZGluOiBpZiBub3QgZW5vdWdoXG4gICAgIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIHJlYWQsIHdlIHNpbXBseSBhc2sgdG8gcmVhZCBtb3JlLiAqKVxuICBsZXQgc3RkaW4gPVxuICAgIGZyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcbiAgICAgIChGcm9tX2ZpbGUgKFwiLVwiLCBTdGRsaWIuc3RkaW4pKSBTdGRsaWIuc3RkaW5cblxuXG4gIGxldCBzdGRpYiA9IHN0ZGluXG5cbiAgbGV0IG9wZW5faW5fZmlsZSBvcGVuX2luIGZuYW1lID1cbiAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgfCBcIi1cIiAtPiBzdGRpblxuICAgIHwgZm5hbWUgLT5cbiAgICAgIGxldCBpYyA9IG9wZW5faW4gZm5hbWUgaW5cbiAgICAgIGZyb21faWNfY2xvc2VfYXRfZW5kIChGcm9tX2ZpbGUgKGZuYW1lLCBpYykpIGljXG5cblxuICBsZXQgb3Blbl9pbiA9IG9wZW5faW5fZmlsZSBTdGRsaWIub3Blbl9pblxuICBsZXQgb3Blbl9pbl9iaW4gPSBvcGVuX2luX2ZpbGUgU3RkbGliLm9wZW5faW5fYmluXG5cbiAgbGV0IGZyb21fZmlsZSA9IG9wZW5faW5cbiAgbGV0IGZyb21fZmlsZV9iaW4gPSBvcGVuX2luX2JpblxuXG4gIGxldCBmcm9tX2NoYW5uZWwgaWMgPVxuICAgIGZyb21faWNfcmFpc2VfYXRfZW5kIChGcm9tX2NoYW5uZWwgaWMpIGljXG5cblxuICBsZXQgY2xvc2VfaW4gaWIgPVxuICAgIG1hdGNoIGliLmljX2lucHV0X25hbWUgd2l0aFxuICAgIHwgRnJvbV9jaGFubmVsIGljIC0+XG4gICAgICBTdGRsaWIuY2xvc2VfaW4gaWNcbiAgICB8IEZyb21fZmlsZSAoX2ZuYW1lLCBpYykgLT4gU3RkbGliLmNsb3NlX2luIGljXG4gICAgfCBGcm9tX2Z1bmN0aW9uIHwgRnJvbV9zdHJpbmcgLT4gKClcblxuXG4gICgqXG4gICAgIE9ic29sZXRlOiBhIG1lbW8gW2Zyb21fY2hhbm5lbF0gdmVyc2lvbiB0byBidWlsZCBhIFtTY2FubmluZy5pbl9jaGFubmVsXVxuICAgICBzY2FubmluZyBidWZmZXIgb3V0IG9mIGEgW1N0ZGxpYi5pbl9jaGFubmVsXS5cbiAgICAgVGhpcyBmdW5jdGlvbiB3YXMgdXNlZCB0byB0cnkgdG8gcHJlc2VydmUgdGhlIHNjYW5uaW5nXG4gICAgIHNlbWFudGljcyBmb3IgdGhlIChub3cgb2Jzb2xldGUpIGZ1bmN0aW9uIFtmc2NhbmZdLlxuICAgICBHaXZlbiB0aGF0IGFsbCBzY2FubmVyIG11c3QgcmVhZCBmcm9tIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdIHNjYW5uaW5nXG4gICAgIGJ1ZmZlciwgW2ZzY2FuZl0gbXVzdCByZWFkIGZyb20gb25lIVxuICAgICBNb3JlIHByZWNpc2VseSwgZ2l2ZW4gW2ljXSwgYWxsIHN1Y2Nlc3NpdmUgY2FsbHMgW2ZzY2FuZiBpY10gbXVzdCByZWFkXG4gICAgIGZyb20gdGhlIHNhbWUgc2Nhbm5pbmcgYnVmZmVyLlxuICAgICBUaGlzIG9ibGlnZWQgdGhpcyBsaWJyYXJ5IHRvIGFsbG9jYXRlZCBzY2FubmluZyBidWZmZXJzIHRoYXQgd2VyZVxuICAgICBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0YWJsZSwgaGVuY2UgbGVhZGluZyB0byBtZW1vcnkgbGVha3MuXG4gICAgIElmIHlvdSBuZWVkIHRvIHJlYWQgZnJvbSBhIFtTdGRsaWIuaW5fY2hhbm5lbF0gaW5wdXQgY2hhbm5lbFxuICAgICBbaWNdLCBzaW1wbHkgZGVmaW5lIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdIGZvcm1hdHRlZCBpbnB1dCBjaGFubmVsIGFzIGluXG4gICAgIFtsZXQgaWIgPSBTY2FubmluZy5mcm9tX2NoYW5uZWwgaWNdLCB0aGVuIHVzZSBbU2NhbmYuYnNjYW5mIGliXSBhcyB1c3VhbC5cbiAgKilcbiAgbGV0IG1lbW9fZnJvbV9pYyA9XG4gICAgbGV0IG1lbW8gPSByZWYgW10gaW5cbiAgICAoZnVuIHNjYW5fY2xvc2VfaWMgaWMgLT5cbiAgICAgdHJ5IExpc3QuYXNzcSBpYyAhbWVtbyB3aXRoXG4gICAgIHwgTm90X2ZvdW5kIC0+XG4gICAgICAgbGV0IGliID1cbiAgICAgICAgIGZyb21faWMgc2Nhbl9jbG9zZV9pYyAoRnJvbV9jaGFubmVsIGljKSBpYyBpblxuICAgICAgIG1lbW8gOj0gKGljLCBpYikgOjogIW1lbW87XG4gICAgICAgaWIpXG5cblxuICAoKiBPYnNvbGV0ZTogc2VlIHshbWVtb19mcm9tX2ljfSBhYm92ZS4gKilcbiAgbGV0IG1lbW9fZnJvbV9jaGFubmVsID0gbWVtb19mcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG5cbmVuZFxuXG5cbigqIEZvcm1hdHRlZCBpbnB1dCBmdW5jdGlvbnMuICopXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBzY2FubmVyID1cbiAgICAgKCdhLCBTY2FubmluZy5pbl9jaGFubmVsLCAnYiwgJ2MsICdhIC0+ICdkLCAnZCkgZm9ybWF0NiAtPiAnY1xuXG5cbigqIFJlcG9ydGluZyBlcnJvcnMuICopXG5leGNlcHRpb24gU2Nhbl9mYWlsdXJlIG9mIHN0cmluZ1xuXG5sZXQgYmFkX2lucHV0IHMgPSByYWlzZSAoU2Nhbl9mYWlsdXJlIHMpXG5cbmxldCBiYWRfaW5wdXRfZXNjYXBlIGMgPVxuICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiaWxsZWdhbCBlc2NhcGUgY2hhcmFjdGVyICVDXCIgYylcblxuXG5sZXQgYmFkX3Rva2VuX2xlbmd0aCBtZXNzYWdlID1cbiAgYmFkX2lucHV0XG4gICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgXCJzY2FubmluZyBvZiAlcyBmYWlsZWQ6IFxcXG4gICAgICAgIHRoZSBzcGVjaWZpZWQgbGVuZ3RoIHdhcyB0b28gc2hvcnQgZm9yIHRva2VuXCJcbiAgICAgICBtZXNzYWdlKVxuXG5cbmxldCBiYWRfZW5kX29mX2lucHV0IG1lc3NhZ2UgPVxuICBiYWRfaW5wdXRcbiAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICBcInNjYW5uaW5nIG9mICVzIGZhaWxlZDogXFxcbiAgICAgICAgcHJlbWF0dXJlIGVuZCBvZiBmaWxlIG9jY3VycmVkIGJlZm9yZSBlbmQgb2YgdG9rZW5cIlxuICAgICAgIG1lc3NhZ2UpXG5cblxubGV0IGJhZF9mbG9hdCAoKSA9XG4gIGJhZF9pbnB1dCBcIm5vIGRvdCBvciBleHBvbmVudCBwYXJ0IGZvdW5kIGluIGZsb2F0IHRva2VuXCJcblxuXG5sZXQgYmFkX2hleF9mbG9hdCAoKSA9XG4gIGJhZF9pbnB1dCBcIm5vdCBhIHZhbGlkIGZsb2F0IGluIGhleGFkZWNpbWFsIG5vdGF0aW9uXCJcblxuXG5sZXQgY2hhcmFjdGVyX21pc21hdGNoX2VyciBjIGNpID1cbiAgUHJpbnRmLnNwcmludGYgXCJsb29raW5nIGZvciAlQywgZm91bmQgJUNcIiBjIGNpXG5cblxubGV0IGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpID1cbiAgYmFkX2lucHV0IChjaGFyYWN0ZXJfbWlzbWF0Y2hfZXJyIGMgY2kpXG5cblxubGV0IHJlYyBza2lwX3doaXRlcyBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSB0aGVuIGJlZ2luXG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnICcgfCAnXFx0JyB8ICdcXG4nIHwgJ1xccicgLT5cbiAgICAgIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliOyBza2lwX3doaXRlcyBpYlxuICAgIHwgXyAtPiAoKVxuICBlbmRcblxuXG4oKiBDaGVja2luZyB0aGF0IFtjXSBpcyBpbmRlZWQgaW4gdGhlIGlucHV0LCB0aGVuIHNraXBzIGl0LlxuICAgSW4gdGhpcyBjYXNlLCB0aGUgY2hhcmFjdGVyIFtjXSBoYXMgYmVlbiBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGVcbiAgIGZvcm1hdCBhcyBiZWluZyBtYW5kYXRvcnkgaW4gdGhlIGlucHV0OyBoZW5jZSB3ZSBzaG91bGQgZmFpbCB3aXRoXG4gICBbRW5kX29mX2ZpbGVdIGluIGNhc2Ugb2YgZW5kX29mX2lucHV0LlxuICAgKFJlbWVtYmVyIHRoYXQgW1NjYW5fZmFpbHVyZV0gaXMgcmFpc2VkIG9ubHkgd2hlbiAod2UgY2FuIHByb3ZlIGJ5XG4gICBldmlkZW5jZSkgdGhhdCB0aGUgaW5wdXQgZG9lcyBub3QgbWF0Y2ggdGhlIGZvcm1hdCBzdHJpbmcgZ2l2ZW4uIFdlIG11c3RcbiAgIHRodXMgZGlmZmVyZW50aWF0ZSBbRW5kX29mX2ZpbGVdIGFzIGFuIGVycm9yIGR1ZSB0byBsYWNrIG9mIGlucHV0LCBhbmRcbiAgIFtTY2FuX2ZhaWx1cmVdIHdoaWNoIGlzIGR1ZSB0byBwcm92YWJseSB3cm9uZyBpbnB1dC4gSSBhbSBub3Qgc3VyZSB0aGlzIGlzXG4gICB3b3J0aCB0aGUgYnVyZGVuOiBpdCBpcyBjb21wbGV4IGFuZCBzb21laG93IHN1YmxpbWluYWw7IHNob3VsZCBiZSBjbGVhcmVyXG4gICB0byBmYWlsIHdpdGggU2Nhbl9mYWlsdXJlIFwiTm90IGVub3VnaCBpbnB1dCB0byBjb21wbGV0ZSBzY2FubmluZ1wiISlcblxuICAgVGhhdCdzIHdoeSwgd2FpdGluZyBmb3IgYSBiZXR0ZXIgc29sdXRpb24sIHdlIHVzZSBjaGVja2VkX3BlZWtfY2hhciBoZXJlLlxuICAgV2UgYXJlIGFsc28gY2FyZWZ1bCB0byB0cmVhdCBcIlxcclxcblwiIGluIHRoZSBpbnB1dCBhcyBhbiBlbmQgb2YgbGluZSBtYXJrZXI6XG4gICBpdCBhbHdheXMgbWF0Y2hlcyBhICdcXG4nIHNwZWNpZmljYXRpb24gaW4gdGhlIGlucHV0IGZvcm1hdCBzdHJpbmcuICopXG5sZXQgcmVjIGNoZWNrX2NoYXIgaWIgYyA9XG4gIG1hdGNoIGMgd2l0aFxuICB8ICcgJyAtPiBza2lwX3doaXRlcyBpYlxuICB8ICdcXG4nIC0+IGNoZWNrX25ld2xpbmUgaWJcbiAgfCBjIC0+IGNoZWNrX3RoaXNfY2hhciBpYiBjXG5cbmFuZCBjaGVja190aGlzX2NoYXIgaWIgYyA9XG4gIGxldCBjaSA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGlmIGNpID0gYyB0aGVuIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliIGVsc2VcbiAgY2hhcmFjdGVyX21pc21hdGNoIGMgY2lcblxuYW5kIGNoZWNrX25ld2xpbmUgaWIgPVxuICBsZXQgY2kgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjaSB3aXRoXG4gIHwgJ1xcbicgLT4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJcbiAgfCAnXFxyJyAtPiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjsgY2hlY2tfdGhpc19jaGFyIGliICdcXG4nXG4gIHwgXyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcbicgY2lcblxuXG4oKiBFeHRyYWN0aW5nIHRva2VucyBmcm9tIHRoZSBvdXRwdXQgdG9rZW4gYnVmZmVyLiAqKVxuXG5sZXQgdG9rZW5fY2hhciBpYiA9IChTY2FubmluZy50b2tlbiBpYikuWzBdXG5cbmxldCB0b2tlbl9zdHJpbmcgPSBTY2FubmluZy50b2tlblxuXG5sZXQgdG9rZW5fYm9vbCBpYiA9XG4gIG1hdGNoIFNjYW5uaW5nLnRva2VuIGliIHdpdGhcbiAgfCBcInRydWVcIiAtPiB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IGZhbHNlXG4gIHwgcyAtPiBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiaW52YWxpZCBib29sZWFuICclcydcIiBzKVxuXG5cbigqIFRoZSB0eXBlIG9mIGludGVnZXIgY29udmVyc2lvbnMuICopXG50eXBlIGludGVnZXJfY29udmVyc2lvbiA9XG4gIHwgQl9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGJpbmFyeSBjb252ZXJzaW9uICopXG4gIHwgRF9jb252ZXJzaW9uICgqIFNpZ25lZCBkZWNpbWFsIGNvbnZlcnNpb24gKilcbiAgfCBJX2NvbnZlcnNpb24gKCogU2lnbmVkIGludGVnZXIgY29udmVyc2lvbiAqKVxuICB8IE9fY29udmVyc2lvbiAoKiBVbnNpZ25lZCBvY3RhbCBjb252ZXJzaW9uICopXG4gIHwgVV9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGRlY2ltYWwgY29udmVyc2lvbiAqKVxuICB8IFhfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBoZXhhZGVjaW1hbCBjb252ZXJzaW9uICopXG5cblxubGV0IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyID0gZnVuY3Rpb25cbiAgfCAnYicgLT4gQl9jb252ZXJzaW9uXG4gIHwgJ2QnIC0+IERfY29udmVyc2lvblxuICB8ICdpJyAtPiBJX2NvbnZlcnNpb25cbiAgfCAnbycgLT4gT19jb252ZXJzaW9uXG4gIHwgJ3UnIC0+IFVfY29udmVyc2lvblxuICB8ICd4JyB8ICdYJyAtPiBYX2NvbnZlcnNpb25cbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5cbigqIEV4dHJhY3QgYW4gaW50ZWdlciBsaXRlcmFsIHRva2VuLlxuICAgU2luY2UgdGhlIGZ1bmN0aW9ucyBTdGRsaWIuKmludCpfb2Zfc3RyaW5nIGRvIG5vdCBhY2NlcHQgYSBsZWFkaW5nICssXG4gICB3ZSBza2lwIGl0IGlmIG5lY2Vzc2FyeS4gKilcbmxldCB0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliID1cbiAgbGV0IHRvayA9XG4gICAgbWF0Y2ggY29udiB3aXRoXG4gICAgfCBEX2NvbnZlcnNpb24gfCBJX2NvbnZlcnNpb24gLT4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IFVfY29udmVyc2lvbiAtPiBcIjB1XCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgT19jb252ZXJzaW9uIC0+IFwiMG9cIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBYX2NvbnZlcnNpb24gLT4gXCIweFwiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IEJfY29udmVyc2lvbiAtPiBcIjBiXCIgXiBTY2FubmluZy50b2tlbiBpYiBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggdG9rIGluXG4gIGlmIGwgPSAwIHx8IHRvay5bMF0gPD4gJysnIHRoZW4gdG9rIGVsc2UgU3RyaW5nLnN1YiB0b2sgMSAobCAtIDEpXG5cblxuKCogQWxsIHRoZSBmdW5jdGlvbnMgdGhhdCBjb252ZXJ0IGEgc3RyaW5nIHRvIGEgbnVtYmVyIHJhaXNlIHRoZSBleGNlcHRpb25cbiAgIEZhaWx1cmUgd2hlbiB0aGUgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUuXG4gICBUaGlzIGV4Y2VwdGlvbiBpcyB0aGVuIHRyYXBwZWQgaW4gW2tzY2FuZl0uICopXG5sZXQgdG9rZW5faW50IGNvbnYgaWIgPSBpbnRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxuXG5sZXQgdG9rZW5fZmxvYXQgaWIgPSBmbG9hdF9vZl9zdHJpbmcgKFNjYW5uaW5nLnRva2VuIGliKVxuXG4oKiBUbyBzY2FuIG5hdGl2ZSBpbnRzLCBpbnQzMiBhbmQgaW50NjQgaW50ZWdlcnMuXG4gICBXZSBjYW5ub3QgYWNjZXNzIHRvIGNvbnZlcnNpb25zIHRvL2Zyb20gc3RyaW5ncyBmb3IgdGhvc2UgdHlwZXMsXG4gICBOYXRpdmVpbnQub2Zfc3RyaW5nLCBJbnQzMi5vZl9zdHJpbmcsIGFuZCBJbnQ2NC5vZl9zdHJpbmcsXG4gICBzaW5jZSB0aG9zZSBtb2R1bGVzIGFyZSBub3QgYXZhaWxhYmxlIHRvIFtTY2FuZl0uXG4gICBIb3dldmVyLCB3ZSBjYW4gYmluZCBhbmQgdXNlIHRoZSBjb3JyZXNwb25kaW5nIHByaW1pdGl2ZXMgdGhhdCBhcmVcbiAgIGF2YWlsYWJsZSBpbiB0aGUgcnVudGltZS4gKilcbmV4dGVybmFsIG5hdGl2ZWludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gbmF0aXZlaW50XG4gID0gXCJjYW1sX25hdGl2ZWludF9vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCBpbnQzMl9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgaW50NjRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X29mX3N0cmluZ1wiXG5cblxubGV0IHRva2VuX25hdGl2ZWludCBjb252IGliID0gbmF0aXZlaW50X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcbmxldCB0b2tlbl9pbnQzMiBjb252IGliID0gaW50MzJfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxubGV0IHRva2VuX2ludDY0IGNvbnYgaWIgPSBpbnQ2NF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5cbigqIFNjYW5uaW5nIG51bWJlcnMuICopXG5cbigqIERpZ2l0cyBzY2FubmluZyBmdW5jdGlvbnMgc3VwcG9zZSB0aGF0IG9uZSBjaGFyYWN0ZXIgaGFzIGJlZW4gY2hlY2tlZCBhbmRcbiAgIGlzIGF2YWlsYWJsZSwgc2luY2UgdGhleSByZXR1cm4gYXQgZW5kIG9mIGZpbGUgd2l0aCB0aGUgY3VycmVudGx5IGZvdW5kXG4gICB0b2tlbiBzZWxlY3RlZC5cblxuICAgUHV0IGl0IGluIGFub3RoZXIgd2F5LCB0aGUgZGlnaXRzIHNjYW5uaW5nIGZ1bmN0aW9ucyBzY2FuIGZvciBhIHBvc3NpYmx5XG4gICBlbXB0eSBzZXF1ZW5jZSBvZiBkaWdpdHMsIChoZW5jZSwgYSBzdWNjZXNzZnVsIHNjYW5uaW5nIGZyb20gb25lIG9mIHRob3NlXG4gICBmdW5jdGlvbnMgZG9lcyBub3QgaW1wbHkgdGhhdCB0aGUgdG9rZW4gaXMgYSB3ZWxsLWZvcm1lZCBudW1iZXI6IHRvIGdldCBhXG4gICB0cnVlIG51bWJlciwgaXQgaXMgbWFuZGF0b3J5IHRvIGNoZWNrIHRoYXQgYXQgbGVhc3Qgb25lIHZhbGlkIGRpZ2l0IGlzXG4gICBhdmFpbGFibGUgYmVmb3JlIGNhbGxpbmcgb25lIG9mIHRoZSBkaWdpdCBzY2FubmluZyBmdW5jdGlvbnMpLiAqKVxuXG4oKiBUaGUgZGVjaW1hbCBjYXNlIGlzIHRyZWF0ZWQgZXNwZWNpYWxseSBmb3Igb3B0aW1pemF0aW9uIHB1cnBvc2VzLiAqKVxubGV0IHJlYyBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8ICdfJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxubGV0IHNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImRlY2ltYWwgZGlnaXRzXCIgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8IGMgLT5cbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiY2hhcmFjdGVyICVDIGlzIG5vdCBhIGRlY2ltYWwgZGlnaXRcIiBjKVxuXG5cbigqIFRvIHNjYW4gbnVtYmVycyBmcm9tIG90aGVyIGJhc2VzLCB3ZSB1c2UgYSBwcmVkaWNhdGUgYXJndW1lbnQgdG9cbiAgIHNjYW4gZGlnaXRzLiAqKVxubGV0IHNjYW5fZGlnaXRfc3RhciBkaWdpdHAgd2lkdGggaWIgPVxuICBsZXQgcmVjIHNjYW5fZGlnaXRzIHdpZHRoIGliID1cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCBjIHdoZW4gZGlnaXRwIGMgLT5cbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcbiAgICB8ICdfJyAtPlxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIgaW5cbiAgICAgIHNjYW5fZGlnaXRzIHdpZHRoIGliXG4gICAgfCBfIC0+IHdpZHRoIGluXG4gIHNjYW5fZGlnaXRzIHdpZHRoIGliXG5cblxubGV0IHNjYW5fZGlnaXRfcGx1cyBiYXNpcyBkaWdpdHAgd2lkdGggaWIgPVxuICAoKiBFbnN1cmUgd2UgaGF2ZSBnb3QgZW5vdWdoIHdpZHRoIGxlZnQsXG4gICAgIGFuZCByZWFkIGF0IGxlYXN0IG9uZSBkaWdpdC4gKilcbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImRpZ2l0c1wiIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBpZiBkaWdpdHAgYyB0aGVuXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kaWdpdF9zdGFyIGRpZ2l0cCB3aWR0aCBpYlxuICBlbHNlXG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImNoYXJhY3RlciAlQyBpcyBub3QgYSB2YWxpZCAlcyBkaWdpdFwiIGMgYmFzaXMpXG5cblxubGV0IGlzX2JpbmFyeV9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICcxJyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX2JpbmFyeV9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJiaW5hcnlcIiBpc19iaW5hcnlfZGlnaXRcblxubGV0IGlzX29jdGFsX2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzcnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5fb2N0YWxfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwib2N0YWxcIiBpc19vY3RhbF9kaWdpdFxuXG5sZXQgaXNfaGV4YV9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICc5JyB8ICdhJyAuLiAnZicgfCAnQScgLi4gJ0YnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5faGV4YWRlY2ltYWxfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwiaGV4YWRlY2ltYWxcIiBpc19oZXhhX2RpZ2l0XG5cbigqIFNjYW4gYSBkZWNpbWFsIGludGVnZXIuICopXG5sZXQgc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCA9IHNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzXG5cbmxldCBzY2FuX3NpZ24gd2lkdGggaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcrJyAtPiBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGNcbiAgfCAnLScgLT4gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjXG4gIHwgXyAtPiB3aWR0aFxuXG5cbmxldCBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG4oKiBTY2FuIGFuIHVuc2lnbmVkIGludGVnZXIgdGhhdCBjb3VsZCBiZSBnaXZlbiBpbiBhbnkgKGNvbW1vbikgYmFzaXMuXG4gICBJZiBkaWdpdHMgYXJlIHByZWZpeGVkIGJ5IG9uZSBvZiAweCwgMFgsIDBvLCBvciAwYiwgdGhlIG51bWJlciBpc1xuICAgYXNzdW1lZCB0byBiZSB3cml0dGVuIHJlc3BlY3RpdmVseSBpbiBoZXhhZGVjaW1hbCwgaGV4YWRlY2ltYWwsXG4gICBvY3RhbCwgb3IgYmluYXJ5LiAqKVxubGV0IHNjYW5fdW5zaWduZWRfaW50IHdpZHRoIGliID1cbiAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgIGJlZ2luIG1hdGNoIGMgd2l0aFxuICAgIHwgJ3gnIHwgJ1gnIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCAnbycgLT4gc2Nhbl9vY3RhbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8ICdiJyAtPiBzY2FuX2JpbmFyeV9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8IF8gLT4gc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgZW5kXG4gIHwgXyAtPiBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG5cblxubGV0IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfaW50IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fdW5zaWduZWRfaW50IHdpZHRoIGliXG5cblxubGV0IHNjYW5faW50X2NvbnZlcnNpb24gY29udiB3aWR0aCBpYiA9XG4gIG1hdGNoIGNvbnYgd2l0aFxuICB8IEJfY29udmVyc2lvbiAtPiBzY2FuX2JpbmFyeV9pbnQgd2lkdGggaWJcbiAgfCBEX2NvbnZlcnNpb24gLT4gc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICB8IElfY29udmVyc2lvbiAtPiBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2ludCB3aWR0aCBpYlxuICB8IE9fY29udmVyc2lvbiAtPiBzY2FuX29jdGFsX2ludCB3aWR0aCBpYlxuICB8IFVfY29udmVyc2lvbiAtPiBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gIHwgWF9jb252ZXJzaW9uIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliXG5cblxuKCogU2Nhbm5pbmcgZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4gKilcblxuKCogRnJhY3Rpb25hbCBwYXJ0IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVkdWNlZCB0byAwIGRpZ2l0cy4gKilcbmxldCBzY2FuX2ZyYWN0aW9uYWxfcGFydCB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG4oKiBFeHAgcGFydCBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlZHVjZWQgdG8gMCBkaWdpdHMuICopXG5sZXQgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICdlJyB8ICdFJyBhcyBjIC0+XG4gICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG4oKiBTY2FuIHRoZSBpbnRlZ2VyIHBhcnQgb2YgYSBmbG9hdGluZyBwb2ludCBudW1iZXIsIChub3QgdXNpbmcgdGhlXG4gICBPQ2FtbCBsZXhpY2FsIGNvbnZlbnRpb24gc2luY2UgdGhlIGludGVnZXIgcGFydCBjYW4gYmUgZW1wdHkpOlxuICAgYW4gb3B0aW9uYWwgc2lnbiwgZm9sbG93ZWQgYnkgYSBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiBkZWNpbWFsXG4gICBkaWdpdHMgKGUuZy4gLS4xKS4gKilcbmxldCBzY2FuX2ludGVnZXJfcGFydCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuXG5cbigqXG4gICBGb3IgdGhlIHRpbWUgYmVpbmcgd2UgaGF2ZSAoYXMgZm91bmQgaW4gc2NhbmYubWxpKTpcbiAgIHRoZSBmaWVsZCB3aWR0aCBpcyBjb21wb3NlZCBvZiBhbiBvcHRpb25hbCBpbnRlZ2VyIGxpdGVyYWxcbiAgIGluZGljYXRpbmcgdGhlIG1heGltYWwgd2lkdGggb2YgdGhlIHRva2VuIHRvIHJlYWQuXG4gICBVbmZvcnR1bmF0ZWx5LCB0aGUgdHlwZS1jaGVja2VyIGxldCB0aGUgdXNlciB3cml0ZSBhbiBvcHRpb25hbCBwcmVjaXNpb24sXG4gICBzaW5jZSB0aGlzIGlzIHZhbGlkIGZvciBwcmludGYgZm9ybWF0IHN0cmluZ3MuXG5cbiAgIFRodXMsIHRoZSBuZXh0IHN0ZXAgZm9yIFNjYW5mIGlzIHRvIHN1cHBvcnQgYSBmdWxsIHdpZHRoIGFuZCBwcmVjaXNpb25cbiAgIGluZGljYXRpb24sIG1vcmUgb3IgbGVzcyBzaW1pbGFyIHRvIHRoZSBvbmUgZm9yIHByaW50ZiwgcG9zc2libHkgZXh0ZW5kZWRcbiAgIHRvIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgW21heCwgbWluXSByYW5nZSBmb3IgdGhlIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkXG4gICBmb3Igc3RyaW5ncy4gU29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZyBzcGVjIGZvciBzY2FuZi5tbGk6XG5cbiAgIFRoZSBvcHRpb25hbCBbd2lkdGhdIGlzIGFuIGludGVnZXIgaW5kaWNhdGluZyB0aGUgbWF4aW1hbFxuICAgd2lkdGggb2YgdGhlIHRva2VuIHJlYWQuIEZvciBpbnN0YW5jZSwgWyU2ZF0gcmVhZHMgYW4gaW50ZWdlcixcbiAgIGhhdmluZyBhdCBtb3N0IDYgY2hhcmFjdGVycy5cblxuICAgVGhlIG9wdGlvbmFsIFtwcmVjaXNpb25dIGlzIGEgZG90IFsuXSBmb2xsb3dlZCBieSBhbiBpbnRlZ2VyOlxuXG4gICAtIGluIHRoZSBmbG9hdGluZyBwb2ludCBudW1iZXIgY29udmVyc2lvbnMgKFslZl0sIFslZV0sIFslZ10sIFslRl0sIFslRV0sXG4gICBhbmQgWyVGXSBjb252ZXJzaW9ucywgdGhlIFtwcmVjaXNpb25dIGluZGljYXRlcyB0aGUgbWF4aW11bSBudW1iZXIgb2ZcbiAgIGRpZ2l0cyB0aGF0IG1heSBmb2xsb3cgdGhlIGRlY2ltYWwgcG9pbnQuIEZvciBpbnN0YW5jZSwgWyUuNGZdIHJlYWRzIGFcbiAgIFtmbG9hdF0gd2l0aCBhdCBtb3N0IDQgZnJhY3Rpb25hbCBkaWdpdHMsXG5cbiAgIC0gaW4gdGhlIHN0cmluZyBjb252ZXJzaW9ucyAoWyVzXSwgWyVTXSwgWyVcXFsgcmFuZ2UgXFxdXSksIGFuZCBpbiB0aGVcbiAgIGludGVnZXIgbnVtYmVyIGNvbnZlcnNpb25zIChbJWldLCBbJWRdLCBbJXVdLCBbJXhdLCBbJW9dLCBhbmQgdGhlaXJcbiAgIFtpbnQzMl0sIFtpbnQ2NF0sIGFuZCBbbmF0aXZlX2ludF0gY29ycmVzcG9uZGVudCksIHRoZSBbcHJlY2lzaW9uXVxuICAgaW5kaWNhdGVzIHRoZSByZXF1aXJlZCBtaW5pbXVtIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLFxuXG4gICAtIG9uIGFsbCBvdGhlciBjb252ZXJzaW9ucywgdGhlIHdpZHRoIGFuZCBwcmVjaXNpb24gc3BlY2lmeSB0aGUgW21heCwgbWluXVxuICAgcmFuZ2UgZm9yIHRoZSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZC5cbiopXG5sZXQgc2Nhbl9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX2ludGVnZXJfcGFydCB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCwgcHJlY2lzaW9uIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGgsIHByZWNpc2lvbiBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcuJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgIGxldCB3aWR0aCA9IHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHByZWNpc2lvbiBpYikgaW5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIsIHByZWNpc2lvblxuICB8IF8gLT5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIsIHByZWNpc2lvblxuXG5cbmxldCBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBlcnJvciBzdHIgPVxuICBsZXQgbG93ZXJjYXNlIGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJ0EnIC4uICdaJyAtPlxuICAgICAgY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKyBpbnRfb2ZfY2hhciAnYScpXG4gICAgfCBfIC0+IGMgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCB3aWR0aCA9IHJlZiB3aWR0aCBpblxuICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgbG93ZXJjYXNlIGMgPD4gbG93ZXJjYXNlIHN0ci5baV0gdGhlbiBlcnJvciAoKTtcbiAgICBpZiAhd2lkdGggPSAwIHRoZW4gZXJyb3IgKCk7XG4gICAgd2lkdGggOj0gU2Nhbm5pbmcuc3RvcmVfY2hhciAhd2lkdGggaWIgYztcbiAgZG9uZTtcbiAgIXdpZHRoXG5cblxubGV0IHNjYW5faGV4X2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT4gKFxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGxldCB3aWR0aCA9IGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJ4XCIgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAnLicgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgIHwgJy4nIGFzIGMgLT4gKFxuICAgICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAgICAgICAgICAgICB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2hleGFkZWNpbWFsX2ludCBwcmVjaXNpb24gaWIpXG4gICAgICAgICAgKVxuICAgICAgICAgIHwgXyAtPiB3aWR0aCBpblxuICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgfCAncCcgfCAnUCcgYXMgYyAtPlxuICAgICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICAgICAgICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgICAgICAgICB8IF8gLT4gd2lkdGhcbiAgKVxuICB8ICduJyB8ICdOJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcImFuXCJcbiAgfCAnaScgfCAnSScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJuZmluaXR5XCJcbiAgfCBfIC0+IGJhZF9oZXhfZmxvYXQgKClcblxuXG5sZXQgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJy4nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgKCogVGhlIGVmZmVjdGl2ZSB3aWR0aCBhdmFpbGFibGUgZm9yIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgaXNcbiAgICAgICB0aGUgbWluaW11bSBvZiBkZWNsYXJlZCBwcmVjaXNpb24gYW5kIHdpZHRoIGxlZnQuICopXG4gICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgKCogQWZ0ZXIgc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCB3aXRoIFtwcmVjaXNpb25dIHByb3Zpc2lvbmFsIHdpZHRoLFxuICAgICAgIFt3aWR0aF9wcmVjaXNpb25dIGlzIGxlZnQuICopXG4gICAgbGV0IHdpZHRoX3ByZWNpc2lvbiA9IHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHByZWNpc2lvbiBpYiBpblxuICAgICgqIEhlbmNlLCBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IHRvb2sgZXhhY3RseVxuICAgICAgIFtwcmVjaXNpb24gLSB3aWR0aF9wcmVjaXNpb25dIGNoYXJzLiAqKVxuICAgIGxldCBmcmFjX3dpZHRoID0gcHJlY2lzaW9uIC0gd2lkdGhfcHJlY2lzaW9uIGluXG4gICAgKCogQW5kIG5ldyBwcm92aXNpb25hbCB3aWR0aCBpcyBbd2lkdGggLSB3aWR0aF9wcmVjaXNpb24uICopXG4gICAgbGV0IHdpZHRoID0gd2lkdGggLSBmcmFjX3dpZHRoIGluXG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliXG4gIHwgJ2UnIHwgJ0UnIC0+XG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliXG4gIHwgXyAtPiBiYWRfZmxvYXQgKClcblxuXG5sZXQgc2Nhbl9jYW1sX2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+IChcbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAneCcgfCAnWCcgYXMgYyAtPiAoXG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgICBsZXQgd2lkdGggPSBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYiBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJy4nIGFzIGMgLT4gKFxuICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAgICAgICAgICAgd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgcHJlY2lzaW9uIGliKVxuICAgICAgICApXG4gICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBiYWRfZmxvYXQgKCkgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJ3AnIHwgJ1AnIGFzIGMgLT5cbiAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICAgICAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gICAgICAgIHwgXyAtPiB3aWR0aFxuICAgIClcbiAgICB8IF8gLT5cbiAgICAgIHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYlxuICApXG4gIHwgJzEnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWJcbigqIFNwZWNpYWwgY2FzZSBvZiBuYW4gYW5kIGluZmluaXR5OlxuICB8ICdpJyAtPlxuICB8ICduJyAtPlxuKilcbiAgfCBfIC0+IGJhZF9mbG9hdCAoKVxuXG5cbigqIFNjYW4gYSByZWd1bGFyIHN0cmluZzpcbiAgIHN0b3BzIHdoZW4gZW5jb3VudGVyaW5nIGEgc3BhY2UsIGlmIG5vIHNjYW5uaW5nIGluZGljYXRpb24gaGFzIGJlZW4gZ2l2ZW47XG4gICBvdGhlcndpc2UsIHN0b3BzIHdoZW4gZW5jb3VudGVyaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBzY2FubmluZ1xuICAgaW5kaWNhdGlvbiBbc3RwXS5cbiAgIEl0IGFsc28gc3RvcHMgYXQgZW5kIG9mIGZpbGUgb3Igd2hlbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBoYXNcbiAgIGJlZW4gcmVhZC4gKilcbmxldCBzY2FuX3N0cmluZyBzdHAgd2lkdGggaWIgPVxuICBsZXQgcmVjIGxvb3Agd2lkdGggPVxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgIG1hdGNoIHN0cCB3aXRoXG4gICAgICB8IFNvbWUgYycgd2hlbiBjID0gYycgLT4gU2Nhbm5pbmcuc2tpcF9jaGFyIHdpZHRoIGliXG4gICAgICB8IFNvbWUgXyAtPiBsb29wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgIHwgJyAnIHwgJ1xcdCcgfCAnXFxuJyB8ICdcXHInIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBsb29wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGluXG4gIGxvb3Agd2lkdGhcblxuXG4oKiBTY2FuIGEgY2hhcjogcGVlayBzdHJpY3RseSBvbmUgY2hhcmFjdGVyIGluIHRoZSBpbnB1dCwgd2hhdHNvZXZlci4gKilcbmxldCBzY2FuX2NoYXIgd2lkdGggaWIgPVxuICAoKiBUaGUgY2FzZSB3aWR0aCA9IDAgY291bGQgbm90IGhhcHBlbiBoZXJlLCBzaW5jZSBpdCBpcyB0ZXN0ZWQgYmVmb3JlXG4gICAgIGNhbGxpbmcgc2Nhbl9jaGFyLCBpbiB0aGUgbWFpbiBzY2FubmluZyBmdW5jdGlvbi5cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiYSBjaGFyYWN0ZXJcIiBlbHNlICopXG4gIFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgKFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliKVxuXG5cbmxldCBjaGFyX2Zvcl9iYWNrc2xhc2ggPSBmdW5jdGlvblxuICB8ICduJyAtPiAnXFwwMTAnXG4gIHwgJ3InIC0+ICdcXDAxMydcbiAgfCAnYicgLT4gJ1xcMDA4J1xuICB8ICd0JyAtPiAnXFwwMDknXG4gIHwgYyAtPiBjXG5cblxuKCogVGhlIGludGVnZXIgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZmFjaWFsIHZhbHVlIG9mIGEgdmFsaWRcbiAgIGRlY2ltYWwgZGlnaXQgY2hhcmFjdGVyLiAqKVxubGV0IGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjID0gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJ1xuXG5sZXQgY2hhcl9mb3JfZGVjaW1hbF9jb2RlIGMwIGMxIGMyID1cbiAgbGV0IGMgPVxuICAgIDEwMCAqIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMCArXG4gICAgIDEwICogZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMxICtcbiAgICAgICAgICBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzIgaW5cbiAgaWYgYyA8IDAgfHwgYyA+IDI1NSB0aGVuXG4gICAgYmFkX2lucHV0XG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgIFwiYmFkIGNoYXJhY3RlciBkZWNpbWFsIGVuY29kaW5nIFxcXFwlYyVjJWNcIiBjMCBjMSBjMikgZWxzZVxuICBjaGFyX29mX2ludCBjXG5cblxuKCogVGhlIGludGVnZXIgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZmFjaWFsIHZhbHVlIG9mIGEgdmFsaWRcbiAgIGhleGFkZWNpbWFsIGRpZ2l0IGNoYXJhY3Rlci4gKilcbmxldCBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMgPVxuICBsZXQgZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgKCogQ291bGQgYWxzbyBiZTpcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICc5JyB0aGVuIGQgLSBpbnRfb2ZfY2hhciAnMCcgZWxzZVxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJ0YnIHRoZW4gMTAgKyBkIC0gaW50X29mX2NoYXIgJ0EnIGVsc2VcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICdmJyB0aGVuIDEwICsgZCAtIGludF9vZl9jaGFyICdhJyBlbHNlIGFzc2VydCBmYWxzZVxuICAqKVxuICBpZiBkID49IGludF9vZl9jaGFyICdhJyB0aGVuXG4gICAgZCAtIDg3ICgqIDEwICsgaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdhJyAqKSBlbHNlXG4gIGlmIGQgPj0gaW50X29mX2NoYXIgJ0EnIHRoZW5cbiAgICBkIC0gNTUgICgqIDEwICsgaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyAqKSBlbHNlXG4gICAgZCAtIGludF9vZl9jaGFyICcwJ1xuXG5cbmxldCBjaGFyX2Zvcl9oZXhhZGVjaW1hbF9jb2RlIGMxIGMyID1cbiAgbGV0IGMgPVxuICAgIDE2ICogaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMSArXG4gICAgICAgICBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMyIGluXG4gIGlmIGMgPCAwIHx8IGMgPiAyNTUgdGhlblxuICAgIGJhZF9pbnB1dFxuICAgICAgKFByaW50Zi5zcHJpbnRmIFwiYmFkIGNoYXJhY3RlciBoZXhhZGVjaW1hbCBlbmNvZGluZyBcXFxcJWMlY1wiIGMxIGMyKSBlbHNlXG4gIGNoYXJfb2ZfaW50IGNcblxuXG4oKiBDYWxsZWQgaW4gcGFydGljdWxhciB3aGVuIGVuY291bnRlcmluZyAnXFxcXCcgYXMgc3RhcnRlciBvZiBhIGNoYXIuXG4gICBTdG9wcyBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgJ1xcJycuICopXG5sZXQgY2hlY2tfbmV4dF9jaGFyIG1lc3NhZ2Ugd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIG1lc3NhZ2UgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiBiYWRfZW5kX29mX2lucHV0IG1lc3NhZ2UgZWxzZVxuICBjXG5cblxubGV0IGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciA9IGNoZWNrX25leHRfY2hhciBcImEgQ2hhclwiXG5sZXQgY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgPSBjaGVja19uZXh0X2NoYXIgXCJhIFN0cmluZ1wiXG5cbmxldCBzY2FuX2JhY2tzbGFzaF9jaGFyIHdpZHRoIGliID1cbiAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgfCAnXFxcXCcgfCAnXFwnJyB8ICdcXFwiJyB8ICduJyB8ICd0JyB8ICdiJyB8ICdyJyBhcyBjIC0+XG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAoY2hhcl9mb3JfYmFja3NsYXNoIGMpXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IGdldF9kaWdpdCAoKSA9XG4gICAgICBsZXQgYyA9IFNjYW5uaW5nLm5leHRfY2hhciBpYiBpblxuICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgYXMgYyAtPiBjXG4gICAgICB8IGMgLT4gYmFkX2lucHV0X2VzY2FwZSBjIGluXG4gICAgbGV0IGMwID0gYyBpblxuICAgIGxldCBjMSA9IGdldF9kaWdpdCAoKSBpblxuICAgIGxldCBjMiA9IGdldF9kaWdpdCAoKSBpblxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgKHdpZHRoIC0gMikgaWIgKGNoYXJfZm9yX2RlY2ltYWxfY29kZSBjMCBjMSBjMilcbiAgfCAneCcgLT5cbiAgICBsZXQgZ2V0X2RpZ2l0ICgpID1cbiAgICAgIGxldCBjID0gU2Nhbm5pbmcubmV4dF9jaGFyIGliIGluXG4gICAgICBtYXRjaCBjIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyB8ICdBJyAuLiAnRicgfCAnYScgLi4gJ2YnIGFzIGMgLT4gY1xuICAgICAgfCBjIC0+IGJhZF9pbnB1dF9lc2NhcGUgYyBpblxuICAgIGxldCBjMSA9IGdldF9kaWdpdCAoKSBpblxuICAgIGxldCBjMiA9IGdldF9kaWdpdCAoKSBpblxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgKHdpZHRoIC0gMikgaWIgKGNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUgYzEgYzIpXG4gIHwgYyAtPlxuICAgIGJhZF9pbnB1dF9lc2NhcGUgY1xuXG5cbigqIFNjYW4gYSBjaGFyYWN0ZXIgKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2NhbWxfY2hhciB3aWR0aCBpYiA9XG5cbiAgbGV0IHJlYyBmaW5kX3N0YXJ0IHdpZHRoID1cbiAgICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAnXFwnJyAtPiBmaW5kX2NoYXIgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcJycgY1xuXG4gIGFuZCBmaW5kX2NoYXIgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxcXCcgLT5cbiAgICAgIGZpbmRfc3RvcCAoc2Nhbl9iYWNrc2xhc2hfY2hhciAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpIGliKVxuICAgIHwgYyAtPlxuICAgICAgZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG5cbiAgYW5kIGZpbmRfc3RvcCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXCcnIC0+IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFwnJyBjIGluXG5cbiAgZmluZF9zdGFydCB3aWR0aFxuXG5cbigqIFNjYW4gYSBkZWxpbWl0ZWQgc3RyaW5nIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9jYW1sX3N0cmluZyB3aWR0aCBpYiA9XG5cbiAgbGV0IHJlYyBmaW5kX3N0YXJ0IHdpZHRoID1cbiAgICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAnXFxcIicgLT4gZmluZF9zdG9wIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXFwiJyBjXG5cbiAgYW5kIGZpbmRfc3RvcCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcXCInIC0+IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliXG4gICAgfCAnXFxcXCcgLT4gc2Nhbl9iYWNrc2xhc2ggKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcblxuICBhbmQgc2Nhbl9iYWNrc2xhc2ggd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXHInIC0+IHNraXBfbmV3bGluZSAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCAnXFxuJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCAoc2Nhbl9iYWNrc2xhc2hfY2hhciB3aWR0aCBpYilcblxuICBhbmQgc2tpcF9uZXdsaW5lIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxuJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAnXFxyJylcblxuICBhbmQgc2tpcF9zcGFjZXMgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICcgJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCB3aWR0aCBpblxuXG4gIGZpbmRfc3RhcnQgd2lkdGhcblxuXG4oKiBTY2FuIGEgYm9vbGVhbiAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fYm9vbCBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbGV0IG0gPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJ3QnIC0+IDRcbiAgICB8ICdmJyAtPiA1XG4gICAgfCBjIC0+XG4gICAgICBiYWRfaW5wdXRcbiAgICAgICAgKFByaW50Zi5zcHJpbnRmIFwidGhlIGNoYXJhY3RlciAlQyBjYW5ub3Qgc3RhcnQgYSBib29sZWFuXCIgYykgaW5cbiAgc2Nhbl9zdHJpbmcgTm9uZSBtIGliXG5cblxuKCogU2NhbiBhIHN0cmluZyBjb250YWluaW5nIGVsZW1lbnRzIGluIGNoYXJfc2V0IGFuZCB0ZXJtaW5hdGVkIGJ5IHNjYW5faW5kaWNcbiAgIGlmIHByb3ZpZGVkLiAqKVxubGV0IHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgc2Nhbl9pbmRpYyB3aWR0aCBpYiA9XG4gIGxldCByZWMgc2Nhbl9jaGFycyBpIHN0cCA9XG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBpID4gMCAmJiBub3QgKFNjYW5uaW5nLmVvZiBpYikgJiZcbiAgICAgICBpc19pbl9jaGFyX3NldCBjaGFyX3NldCBjICYmXG4gICAgICAgaW50X29mX2NoYXIgYyA8PiBzdHAgdGhlblxuICAgICAgbGV0IF8gPSBTY2FubmluZy5zdG9yZV9jaGFyIG1heF9pbnQgaWIgYyBpblxuICAgICAgc2Nhbl9jaGFycyAoaSAtIDEpIHN0cCBpblxuICBtYXRjaCBzY2FuX2luZGljIHdpdGhcbiAgfCBOb25lIC0+IHNjYW5fY2hhcnMgd2lkdGggKC0xKTtcbiAgfCBTb21lIGMgLT5cbiAgICBzY2FuX2NoYXJzIHdpZHRoIChpbnRfb2ZfY2hhciBjKTtcbiAgICBpZiBub3QgKFNjYW5uaW5nLmVvZiBpYikgdGhlblxuICAgICAgbGV0IGNpID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgICBpZiBjID0gY2lcbiAgICAgIHRoZW4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJcbiAgICAgIGVsc2UgY2hhcmFjdGVyX21pc21hdGNoIGMgY2lcblxuXG4oKiBUaGUgZ2xvYmFsIGVycm9yIHJlcG9ydCBmdW5jdGlvbiBmb3IgW1NjYW5mXS4gKilcbmxldCBzY2FuZl9iYWRfaW5wdXQgaWIgPSBmdW5jdGlvblxuICB8IFNjYW5fZmFpbHVyZSBzIHwgRmFpbHVyZSBzIC0+XG4gICAgbGV0IGkgPSBTY2FubmluZy5jaGFyX2NvdW50IGliIGluXG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcInNjYW5mOiBiYWQgaW5wdXQgYXQgY2hhciBudW1iZXIgJWk6ICVzXCIgaSBzKVxuICB8IHggLT4gcmFpc2UgeFxuXG5cbigqIEdldCB0aGUgY29udGVudCBvZiBhIGNvdW50ZXIgZnJvbSBhbiBpbnB1dCBidWZmZXIuICopXG5sZXQgZ2V0X2NvdW50ZXIgaWIgY291bnRlciA9XG4gIG1hdGNoIGNvdW50ZXIgd2l0aFxuICB8IExpbmVfY291bnRlciAtPiBTY2FubmluZy5saW5lX2NvdW50IGliXG4gIHwgQ2hhcl9jb3VudGVyIC0+IFNjYW5uaW5nLmNoYXJfY291bnQgaWJcbiAgfCBUb2tlbl9jb3VudGVyIC0+IFNjYW5uaW5nLnRva2VuX2NvdW50IGliXG5cblxuKCogQ29tcHV0ZSB0aGUgd2lkdGggb2YgYSBwYWRkaW5nIG9wdGlvbiAoc2VlIFwiJTQye1wiIGFuZCBcIiUxMjMoXCIpLiAqKVxubGV0IHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gbWF4X2ludFxuICB8IFNvbWUgd2lkdGggLT4gd2lkdGhcblxuXG5sZXQgc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmcgPVxuICBpZiBmbXRpbmcgPSBFc2NhcGVkX3BlcmNlbnQgdGhlbiAnJScsIFwiXCIgZWxzZVxuICAgIGxldCBzdHIgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nIGluXG4gICAgbGV0IHN0cCA9IHN0ci5bMV0gaW5cbiAgICBsZXQgc3ViX3N0ciA9IFN0cmluZy5zdWIgc3RyIDIgKFN0cmluZy5sZW5ndGggc3RyIC0gMikgaW5cbiAgICBzdHAsIHN1Yl9zdHJcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUmVhZGVyIG1hbmFnZW1lbnQgKilcblxuKCogQSBjYWxsIHRvIHRha2VfZm9ybWF0X3JlYWRlcnMgb24gYSBmb3JtYXQgaXMgZXZhbHVhdGVkIGludG8gZnVuY3Rpb25zXG4gICB0YWtpbmcgcmVhZGVycyBhcyBhcmd1bWVudHMgYW5kIGFnZ3JlZ2F0ZSB0aGVtIGludG8gYW4gaGV0ZXJvZ2VuZW91cyBsaXN0ICopXG4oKiBXaGVuIGFsbCByZWFkZXJzIGFyZSB0YWtlbiwgZmluYWxseSBwYXNzIHRoZSBsaXN0IG9mIHRoZSByZWFkZXJzIHRvIHRoZVxuICAgY29udGludWF0aW9uIGsuICopXG5sZXQgcmVjIHRha2VfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICBkID1cbmZ1biBrIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IFJlYWRlciBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0XG4gIHwgQ2hhciByZXN0ICAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDYW1sX2NoYXIgcmVzdCAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFN0cmluZyAoXywgcmVzdCkgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2FtbF9zdHJpbmcgKF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludDMyIChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgTmF0aXZlaW50IChfLCBfLCBfLCByZXN0KSAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQ2NCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZsb2F0IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQm9vbCAoXywgcmVzdCkgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBBbHBoYSByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFRoZXRhIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRmx1c2ggcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ3VzdG9tIChfLCBfLCByZXN0KSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTY2FuX25leHRfY2hhciByZXN0ICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuXG4gIHwgRm9ybWF0dGluZ19saXQgKF8sIHJlc3QpICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10LCBfKSksIHJlc3QpIC0+XG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXQgZm10IHJlc3QpXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCwgXykpLCByZXN0KSAtPlxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10IGZtdCByZXN0KVxuXG4gIHwgRm9ybWF0X2FyZyAoXywgXywgcmVzdCkgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAgICAtPlxuICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpIHJlc3RcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpICAgICAgICAtPiB0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMgayBpZ24gcmVzdFxuXG4gIHwgRW5kX29mX2Zvcm1hdCAgICAgICAgICAgICAgICAgICAgLT4gayBOaWxcblxuKCogVGFrZSByZWFkZXJzIGFzc29jaWF0ZWQgdG8gYW4gZm10dHkgY29taW5nIGZyb20gYSBGb3JtYXRfc3Vic3QgXCIlKC4uLiUpXCIuICopXG5hbmQgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyA6IHR5cGUgeCB5IGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCB4LCB5KSBmbXR0eSAtPlxuICAgICAgKHksIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIHgsIGUsIGYpIGZtdCAtPiBkID1cbmZ1biBrIGZtdHR5IGZtdCAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgUmVhZGVyX3R5IGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3QgZm10XG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdCBmbXRcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludF90eSByZXN0ICAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnQzMl90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludDY0X3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBGbG9hdF90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQm9vbF90eSByZXN0ICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEFscGhhX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBUaGV0YV90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQW55X3R5IHJlc3QgICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEZvcm1hdF9hcmdfdHkgKF8sIHJlc3QpICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBFbmRfb2ZfZm10dHkgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxKSB0eTIgaW5cbiAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXR0eSB0eSByZXN0KSBmbXRcblxuKCogVGFrZSByZWFkZXJzIGFzc29jaWF0ZWQgdG8gYW4gaWdub3JlZCBwYXJhbWV0ZXIuICopXG5hbmQgdGFrZV9pZ25vcmVkX2Zvcm1hdF9yZWFkZXJzIDogdHlwZSB4IHkgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIHgsIHkpIGlnbm9yZWQgLT5cbiAgICAgICh5LCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCB4LCBlLCBmKSBmbXQgLT4gZCA9XG5mdW4gayBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9yZWFkZXIgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayBmbXR0eSBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogR2VuZXJpYyBzY2FubmluZyAqKVxuXG4oKiBNYWtlIGEgZ2VuZXJpYyBzY2FubmluZyBmdW5jdGlvbi4gKilcbigqIFNjYW4gYSBzdHJlYW0gYWNjb3JkaW5nIHRvIGEgZm9ybWF0IGFuZCByZWFkZXJzIG9idGFpbmVkIGJ5XG4gICB0YWtlX2Zvcm1hdF9yZWFkZXJzLCBhbmQgYWdncmVnYXRlIHNjYW5uZWQgdmFsdWVzIGludG8gYW5cbiAgIGhldGVyb2dlbmVvdXMgbGlzdC4gKilcbigqIFJldHVybiB0aGUgaGV0ZXJvZ2VuZW91cyBsaXN0IG9mIHNjYW5uZWQgdmFsdWVzLiAqKVxubGV0IHJlYyBtYWtlX3NjYW5mIDogdHlwZSBhIGMgZCBlIGYuXG4gICAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoZCwgZSkgaGV0ZXJfbGlzdCAtPiAoYSwgZikgaGV0ZXJfbGlzdCA9XG5mdW4gaWIgZm10IHJlYWRlcnMgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBDaGFyIHJlc3QgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2hhciAwIGliIGluXG4gICAgbGV0IGMgPSB0b2tlbl9jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9jaGFyIDAgaWIgaW5cbiAgICBsZXQgYyA9IHRva2VuX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcblxuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkpIC0+XG4gICAgbGV0IHN0cCwgc3RyID0gc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lIHN0cCkgd2lkdGggaWIgaW5cbiAgICBsZXQgc3RyX3Jlc3QgPSBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHN0cl9yZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgJ3snKSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW5cbiAgICAgICAgICAgICAgICAgICB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lICdbJykgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuXG4gICAgICAgICAgICAgICAgICAgdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIE5vbmUgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9jYW1sX3N0cmluZyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQgYylcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50MzIgYylcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX25hdGl2ZWludCBjKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQ2NCBjKVxuICB8IEZsb2F0ICgoXywgKEZsb2F0X0YgfCBGbG9hdF9DRikpLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5fY2FtbF9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEZsb2F0ICgoXywgKEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HKSksXG4gICAgICAgICAgIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEZsb2F0ICgoXywgKEZsb2F0X2ggfCBGbG9hdF9IKSksIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9oZXhfZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gXyBfIGliID0gc2Nhbl9ib29sIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9ib29sXG4gIHwgQWxwaGEgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlYVxcXCJcIlxuICB8IFRoZXRhIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJXRcXFwiXCJcbiAgfCBDdXN0b20gXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlP1xcXCIgKGN1c3RvbSBjb252ZXJ0ZXIpXCJcbiAgfCBSZWFkZXIgZm10X3Jlc3QgLT5cbiAgICBiZWdpbiBtYXRjaCByZWFkZXJzIHdpdGhcbiAgICB8IENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSAtPlxuICAgICAgICBsZXQgeCA9IHJlYWRlciBpYiBpblxuICAgICAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdF9yZXN0IHJlYWRlcnNfcmVzdClcbiAgICB8IE5pbCAtPlxuICAgICAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBtaXNzaW5nIHJlYWRlclwiXG4gICAgZW5kXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIGlmIFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gICAgZWxzZSBiYWRfaW5wdXQgXCJlbmQgb2YgaW5wdXQgbm90IGZvdW5kXCJcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgU3RyaW5nLml0ZXIgKGNoZWNrX2NoYXIgaWIpIHN0cjtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgY2hyO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG5cbiAgfCBGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgKHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCkgaWIgaW5cbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQgPVxuICAgICAgdHJ5IGZvcm1hdF9vZl9zdHJpbmdfZm10dHkgcyBmbXR0eVxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnXG4gICAgaW5cbiAgICBDb25zIChmbXQsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nICh3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQpIGliIGluXG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10LCBmbXQnID1cbiAgICAgIHRyeVxuICAgICAgICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzIGluXG4gICAgICAgIGxldCBGbXRfRUJCIGZtdCcgPSBmbXRfZWJiX29mX3N0cmluZyBzIGluXG4gICAgICAgICgqIFRPRE86IGZpbmQgYSB3YXkgdG8gYXZvaWQgcmVwYXJzaW5nIHR3aWNlICopXG5cbiAgICAgICAgKCogVE9ETzogdGhlc2UgdHlwZS1jaGVja3MgYmVsb3cgKmNhbiogZmFpbCBiZWNhdXNlIG9mIHR5cGVcbiAgICAgICAgICAgYW1iaWd1aXR5IGluIHByZXNlbmNlIG9mIGlnbm9yZWQtcmVhZGVyczogXCIlX3IlZFwiIGFuZCBcIiVkJV9yXCJcbiAgICAgICAgICAgYXJlIHR5cGVkIGluIHRoZSBzYW1lIHdheS5cblxuICAgICAgICAgICAjIFNjYW5mLnNzY2FuZiBcIlxcXCIlX3IlZFxcXCIzXCIgXCIlKCVkJV9yJSlcIiBpZ25vcmVcbiAgICAgICAgICAgICAoZnVuIGZtdCBuIC0+IHN0cmluZ19vZl9mb3JtYXQgZm10LCBuKVxuICAgICAgICAgICBFeGNlcHRpb246IENhbWxpbnRlcm5hbEZvcm1hdC5UeXBlX21pc21hdGNoLlxuXG4gICAgICAgICAgIFdlIHNob3VsZCBwcm9wZXJseSBjYXRjaCB0aGlzIGV4Y2VwdGlvbi5cbiAgICAgICAgKilcbiAgICAgICAgdHlwZV9mb3JtYXQgZm10IChlcmFzZV9yZWwgZm10dHkpLFxuICAgICAgICB0eXBlX2Zvcm1hdCBmbXQnIChlcmFzZV9yZWwgKHN5bW0gZm10dHkpKVxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnXG4gICAgaW5cbiAgICBDb25zIChGb3JtYXQgKGZtdCwgcyksXG4gICAgICAgICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMpXG5cbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkpIC0+XG4gICAgbGV0IHN0cCwgc3RyID0gc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgbGV0IHdpZHRoID0gd2lkdGhfb2ZfcGFkX29wdCB3aWR0aF9vcHQgaW5cbiAgICBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IChTb21lIHN0cCkgd2lkdGggaWI7XG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgc3RyX3Jlc3QgPSBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSBpblxuICAgIENvbnMgKHMsIG1ha2Vfc2NhbmYgaWIgc3RyX3Jlc3QgcmVhZGVycylcbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgIGxldCB3aWR0aCA9IHdpZHRoX29mX3BhZF9vcHQgd2lkdGhfb3B0IGluXG4gICAgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCBOb25lIHdpZHRoIGliO1xuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgQ29ucyAocywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICBsZXQgY291bnQgPSBnZXRfY291bnRlciBpYiBjb3VudGVyIGluXG4gICAgQ29ucyAoY291bnQsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIHJlc3QpIC0+XG4gICAgU3RyaW5nLml0ZXIgKGNoZWNrX2NoYXIgaWIpIChzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm9ybWF0dGluZ19saXQpO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliICdAJzsgY2hlY2tfY2hhciBpYiAneyc7XG4gICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnNcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgJ0AnOyBjaGVja19jaGFyIGliICdbJztcbiAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVyc1xuXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIGxldCBQYXJhbV9mb3JtYXRfRUJCIGZtdCcgPSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3QgaW5cbiAgICBiZWdpbiBtYXRjaCBtYWtlX3NjYW5mIGliIGZtdCcgcmVhZGVycyB3aXRoXG4gICAgfCBDb25zIChfLCBhcmdfcmVzdCkgLT4gYXJnX3Jlc3RcbiAgICB8IE5pbCAtPiBhc3NlcnQgZmFsc2VcbiAgICBlbmRcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBOaWxcblxuKCogQ2FzZSBhbmFseXNpcyBvbiBwYWRkaW5nIGFuZCBwcmVjaXNpb24uICopXG4oKiBSZWplY3QgZm9ybWF0cyBjb250YWluaW5nIFwiJSpcIiBvciBcIiUuKlwiLiAqKVxuKCogUGFzcyBwYWRkaW5nIGFuZCBwcmVjaXNpb24gdG8gdGhlIGdlbmVyaWMgc2Nhbm5lciBgc2NhbicuICopXG5hbmQgcGFkX3ByZWNfc2NhbmYgOiB0eXBlIGEgYyBkIGUgZiB4IHkgeiB0IC5cbiAgICBTY2FubmluZy5pbl9jaGFubmVsIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChkLCBlKSBoZXRlcl9saXN0IC0+ICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPlxuICAgICAgKGludCAtPiBpbnQgLT4gU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiB0KSAtPlxuICAgICAgKFNjYW5uaW5nLmluX2NoYW5uZWwgLT4geikgLT5cbiAgICAgICh4LCBmKSBoZXRlcl9saXN0ID1cbmZ1biBpYiBmbXQgcmVhZGVycyBwYWQgcHJlYyBzY2FuIHRva2VuIC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgbGV0IF8gPSBzY2FuIG1heF9pbnQgbWF4X2ludCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGxldCBfID0gc2NhbiBtYXhfaW50IHAgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgbGV0IF8gPSBzY2FuIHcgbWF4X2ludCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBsZXQgXyA9IHNjYW4gdyBwIGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKExlZnQsIF8pLCBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUtXFxcIlwiXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgXyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcbiAgfCBBcmdfcGFkZGluZyBfLCBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgKCogRGVmaW5pbmcgW3NjYW5mXSBhbmQgdmFyaW91cyBmbGF2b3JzIG9mIFtzY2FuZl0gKilcblxudHlwZSAnYSBrc2NhbmZfcmVzdWx0ID0gQXJncyBvZiAnYSB8IEV4YyBvZiBleG5cblxubGV0IGtzY2FuZiBpYiBlZiAoRm9ybWF0IChmbXQsIHN0cikpID1cbiAgbGV0IHJlYyBhcHBseSA6IHR5cGUgYSBiIC4gYSAtPiAoYSwgYikgaGV0ZXJfbGlzdCAtPiBiID1cbiAgICBmdW4gZiBhcmdzIC0+IG1hdGNoIGFyZ3Mgd2l0aFxuICAgIHwgQ29ucyAoeCwgcikgLT4gYXBwbHkgKGYgeCkgclxuICAgIHwgTmlsIC0+IGZcbiAgaW5cbiAgbGV0IGsgcmVhZGVycyBmID1cbiAgICBTY2FubmluZy5yZXNldF90b2tlbiBpYjtcbiAgICBtYXRjaCB0cnkgQXJncyAobWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycykgd2l0aFxuICAgICAgfCAoU2Nhbl9mYWlsdXJlIF8gfCBGYWlsdXJlIF8gfCBFbmRfb2ZfZmlsZSkgYXMgZXhjIC0+IEV4YyBleGNcbiAgICAgIHwgSW52YWxpZF9hcmd1bWVudCBtc2cgLT5cbiAgICAgICAgaW52YWxpZF9hcmcgKG1zZyBeIFwiIGluIGZvcm1hdCBcXFwiXCIgXiBTdHJpbmcuZXNjYXBlZCBzdHIgXiBcIlxcXCJcIilcbiAgICB3aXRoXG4gICAgICB8IEFyZ3MgYXJncyAtPiBhcHBseSBmIGFyZ3NcbiAgICAgIHwgRXhjIGV4YyAtPiBlZiBpYiBleGNcbiAgaW5cbiAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuXG4oKioqKVxuXG5sZXQga2JzY2FuZiA9IGtzY2FuZlxubGV0IGJzY2FuZiBpYiBmbXQgPSBrYnNjYW5mIGliIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxubGV0IGtzc2NhbmYgcyBlZiBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBlZiBmbXRcbmxldCBzc2NhbmYgcyBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbmxldCBzY2FuZiBmbXQgPSBrc2NhbmYgU2Nhbm5pbmcuc3RkaWIgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG4oKioqKVxuXG4oKiBTY2FubmluZyBmb3JtYXQgc3RyaW5ncy4gKilcbmxldCBic2NhbmZfZm9ybWF0IDpcbiAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gJ2cpIC0+ICdnID1cbiAgZnVuIGliIGZvcm1hdCBmIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nIG1heF9pbnQgaWIgaW5cbiAgICBsZXQgc3RyID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCcgPVxuICAgICAgdHJ5IGZvcm1hdF9vZl9zdHJpbmdfZm9ybWF0IHN0ciBmb3JtYXRcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZyBpblxuICAgIGYgZm10J1xuXG5cbmxldCBzc2NhbmZfZm9ybWF0IDpcbiAgc3RyaW5nIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAnZykgLT4gJ2cgPVxuICBmdW4gcyBmb3JtYXQgZiAtPiBic2NhbmZfZm9ybWF0IChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBmb3JtYXQgZlxuXG5cbmxldCBmb3JtYXRfZnJvbV9zdHJpbmcgcyBmbXQgPVxuICBzc2NhbmZfZm9ybWF0IChcIlxcXCJcIiBeIFN0cmluZy5lc2NhcGVkIHMgXiBcIlxcXCJcIikgZm10IChmdW4geCAtPiB4KVxuXG5cbmxldCB1bmVzY2FwZWQgcyA9XG4gIHNzY2FuZiAoXCJcXFwiXCIgXiBzIF4gXCJcXFwiXCIpIFwiJVMlIVwiIChmdW4geCAtPiB4KVxuXG5cbigqIERlcHJlY2F0ZWQgKilcbmxldCBrZnNjYW5mIGljIGVmIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLm1lbW9fZnJvbV9jaGFubmVsIGljKSBlZiBmbXRcbmxldCBmc2NhbmYgaWMgZm10ID0ga3NjYW5mIChTY2FubmluZy5tZW1vX2Zyb21fY2hhbm5lbCBpYykgc2NhbmZfYmFkX2lucHV0IGZtdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBSZWdpc3RlcmluZyBPQ2FtbCB2YWx1ZXMgd2l0aCB0aGUgQyBydW50aW1lIGZvciBsYXRlciBjYWxsYmFja3MgKilcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gT2JqLnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgcmVnaXN0ZXIgbmFtZSB2ID1cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgbmFtZSAoT2JqLnJlcHIgdilcblxubGV0IHJlZ2lzdGVyX2V4Y2VwdGlvbiBuYW1lIChleG4gOiBleG4pID1cbiAgbGV0IGV4biA9IE9iai5yZXByIGV4biBpblxuICBsZXQgc2xvdCA9IGlmIE9iai50YWcgZXhuID0gT2JqLm9iamVjdF90YWcgdGhlbiBleG4gZWxzZSBPYmouZmllbGQgZXhuIDAgaW5cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgbmFtZSBzbG90XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICBKZXJvbWUgVm91aWxsb24sIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gT2JqXG5cbigqKioqIE9iamVjdCByZXByZXNlbnRhdGlvbiAqKioqKVxuXG5leHRlcm5hbCBzZXRfaWQ6ICdhIC0+ICdhID0gXCJjYW1sX3NldF9vb19pZFwiIFtAQG5vYWxsb2NdXG5cbigqKioqIE9iamVjdCBjb3B5ICoqKiopXG5cbmxldCBjb3B5IG8gPVxuICBsZXQgbyA9IChPYmoub2JqIChPYmouZHVwIChPYmoucmVwciBvKSkpIGluXG4gIHNldF9pZCBvXG5cbigqKioqIENvbXByZXNzaW9uIG9wdGlvbnMgKioqKilcbigqIFBhcmFtZXRlcnMgKilcbnR5cGUgcGFyYW1zID0ge1xuICAgIG11dGFibGUgY29tcGFjdF90YWJsZSA6IGJvb2w7XG4gICAgbXV0YWJsZSBjb3B5X3BhcmVudCA6IGJvb2w7XG4gICAgbXV0YWJsZSBjbGVhbl93aGVuX2NvcHlpbmcgOiBib29sO1xuICAgIG11dGFibGUgcmV0cnlfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBidWNrZXRfc21hbGxfc2l6ZSA6IGludFxuICB9XG5cbmxldCBwYXJhbXMgPSB7XG4gIGNvbXBhY3RfdGFibGUgPSB0cnVlO1xuICBjb3B5X3BhcmVudCA9IHRydWU7XG4gIGNsZWFuX3doZW5fY29weWluZyA9IHRydWU7XG4gIHJldHJ5X2NvdW50ID0gMztcbiAgYnVja2V0X3NtYWxsX3NpemUgPSAxNlxufVxuXG4oKioqKiBQYXJhbWV0ZXJzICoqKiopXG5cbmxldCBpbml0aWFsX29iamVjdF9zaXplID0gMlxuXG4oKioqKiBJdGVtcyAqKioqKVxuXG50eXBlIGl0ZW0gPSBEdW1teUEgfCBEdW1teUIgfCBEdW1teUMgb2YgaW50XG5sZXQgXyA9IFtEdW1teUE7IER1bW15QjsgRHVtbXlDIDBdICgqIHRvIGF2b2lkIHdhcm5pbmdzICopXG5cbmxldCBkdW1teV9pdGVtID0gKG1hZ2ljICgpIDogaXRlbSlcblxuKCoqKiogVHlwZXMgKioqKilcblxudHlwZSB0YWdcbnR5cGUgbGFiZWwgPSBpbnRcbnR5cGUgY2xvc3VyZSA9IGl0ZW1cbnR5cGUgdCA9IER1bW15QSB8IER1bW15QiB8IER1bW15QyBvZiBpbnRcbmxldCBfID0gW0R1bW15QTsgRHVtbXlCOyBEdW1teUMgMF0gKCogdG8gYXZvaWQgd2FybmluZ3MgKilcblxudHlwZSBvYmogPSB0IGFycmF5XG5leHRlcm5hbCByZXQgOiAob2JqIC0+ICdhKSAtPiBjbG9zdXJlID0gXCIlaWRlbnRpdHlcIlxuXG4oKioqKiBMYWJlbHMgKioqKilcblxubGV0IHB1YmxpY19tZXRob2RfbGFiZWwgcyA6IHRhZyA9XG4gIGxldCBhY2N1ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBhY2N1IDo9IDIyMyAqICFhY2N1ICsgQ2hhci5jb2RlIHMuW2ldXG4gIGRvbmU7XG4gICgqIHJlZHVjZSB0byAzMSBiaXRzICopXG4gIGFjY3UgOj0gIWFjY3UgbGFuZCAoMSBsc2wgMzEgLSAxKTtcbiAgKCogbWFrZSBpdCBzaWduZWQgZm9yIDY0IGJpdHMgYXJjaGl0ZWN0dXJlcyAqKVxuICBsZXQgdGFnID0gaWYgIWFjY3UgPiAweDNGRkZGRkZGIHRoZW4gIWFjY3UgLSAoMSBsc2wgMzEpIGVsc2UgIWFjY3UgaW5cbiAgKCogUHJpbnRmLmVwcmludGYgXCIlcyA9ICVkXFxuXCIgcyB0YWc7IGZsdXNoIHN0ZGVycjsgKilcbiAgbWFnaWMgdGFnXG5cbigqKioqIFNwYXJzZSBhcnJheSAqKioqKVxuXG5tb2R1bGUgVmFycyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBzdHJpbmcgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgdmFycyA9IGludCBWYXJzLnRcblxubW9kdWxlIE1ldGhzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHN0cmluZyBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSBtZXRocyA9IGxhYmVsIE1ldGhzLnRcbm1vZHVsZSBMYWJzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IGxhYmVsIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIGxhYnMgPSBib29sIExhYnMudFxuXG4oKiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHRoZSBmaXJzdCBmaWVsZCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBbc2l6ZV0uICopXG50eXBlIHRhYmxlID1cbiB7IG11dGFibGUgc2l6ZTogaW50O1xuICAgbXV0YWJsZSBtZXRob2RzOiBjbG9zdXJlIGFycmF5O1xuICAgbXV0YWJsZSBtZXRob2RzX2J5X25hbWU6IG1ldGhzO1xuICAgbXV0YWJsZSBtZXRob2RzX2J5X2xhYmVsOiBsYWJzO1xuICAgbXV0YWJsZSBwcmV2aW91c19zdGF0ZXM6XG4gICAgIChtZXRocyAqIGxhYnMgKiAobGFiZWwgKiBpdGVtKSBsaXN0ICogdmFycyAqXG4gICAgICBsYWJlbCBsaXN0ICogc3RyaW5nIGxpc3QpIGxpc3Q7XG4gICBtdXRhYmxlIGhpZGRlbl9tZXRoczogKGxhYmVsICogaXRlbSkgbGlzdDtcbiAgIG11dGFibGUgdmFyczogdmFycztcbiAgIG11dGFibGUgaW5pdGlhbGl6ZXJzOiAob2JqIC0+IHVuaXQpIGxpc3QgfVxuXG5sZXQgZHVtbXlfdGFibGUgPVxuICB7IG1ldGhvZHMgPSBbfCBkdW1teV9pdGVtIHxdO1xuICAgIG1ldGhvZHNfYnlfbmFtZSA9IE1ldGhzLmVtcHR5O1xuICAgIG1ldGhvZHNfYnlfbGFiZWwgPSBMYWJzLmVtcHR5O1xuICAgIHByZXZpb3VzX3N0YXRlcyA9IFtdO1xuICAgIGhpZGRlbl9tZXRocyA9IFtdO1xuICAgIHZhcnMgPSBWYXJzLmVtcHR5O1xuICAgIGluaXRpYWxpemVycyA9IFtdO1xuICAgIHNpemUgPSAwIH1cblxubGV0IHRhYmxlX2NvdW50ID0gcmVmIDBcblxuKCogZHVtbXlfbWV0IHNob3VsZCBiZSBhIHBvaW50ZXIsIHNvIHVzZSBhbiBhdG9tICopXG5sZXQgZHVtbXlfbWV0IDogaXRlbSA9IG9iaiAoT2JqLm5ld19ibG9jayAwIDApXG4oKiBpZiBkZWJ1Z2dpbmcgaXMgbmVlZGVkLCB0aGlzIGNvdWxkIGJlIGEgZ29vZCBpZGVhOiAqKVxuKCogbGV0IGR1bW15X21ldCAoKSA9IGZhaWx3aXRoIFwiVW5kZWZpbmVkIG1ldGhvZFwiICopXG5cbmxldCByZWMgZml0X3NpemUgbiA9XG4gIGlmIG4gPD0gMiB0aGVuIG4gZWxzZVxuICBmaXRfc2l6ZSAoKG4rMSkvMikgKiAyXG5cbmxldCBuZXdfdGFibGUgcHViX2xhYmVscyA9XG4gIGluY3IgdGFibGVfY291bnQ7XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggcHViX2xhYmVscyBpblxuICBsZXQgbWV0aG9kcyA9IEFycmF5Lm1ha2UgKGxlbioyKzIpIGR1bW15X21ldCBpblxuICBtZXRob2RzLigwKSA8LSBtYWdpYyBsZW47XG4gIG1ldGhvZHMuKDEpIDwtIG1hZ2ljIChmaXRfc2l6ZSBsZW4gKiBTeXMud29yZF9zaXplIC8gOCAtIDEpO1xuICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkbyBtZXRob2RzLihpKjIrMykgPC0gbWFnaWMgcHViX2xhYmVscy4oaSkgZG9uZTtcbiAgeyBtZXRob2RzID0gbWV0aG9kcztcbiAgICBtZXRob2RzX2J5X25hbWUgPSBNZXRocy5lbXB0eTtcbiAgICBtZXRob2RzX2J5X2xhYmVsID0gTGFicy5lbXB0eTtcbiAgICBwcmV2aW91c19zdGF0ZXMgPSBbXTtcbiAgICBoaWRkZW5fbWV0aHMgPSBbXTtcbiAgICB2YXJzID0gVmFycy5lbXB0eTtcbiAgICBpbml0aWFsaXplcnMgPSBbXTtcbiAgICBzaXplID0gaW5pdGlhbF9vYmplY3Rfc2l6ZSB9XG5cbmxldCByZXNpemUgYXJyYXkgbmV3X3NpemUgPVxuICBsZXQgb2xkX3NpemUgPSBBcnJheS5sZW5ndGggYXJyYXkubWV0aG9kcyBpblxuICBpZiBuZXdfc2l6ZSA+IG9sZF9zaXplIHRoZW4gYmVnaW5cbiAgICBsZXQgbmV3X2J1Y2sgPSBBcnJheS5tYWtlIG5ld19zaXplIGR1bW15X21ldCBpblxuICAgIEFycmF5LmJsaXQgYXJyYXkubWV0aG9kcyAwIG5ld19idWNrIDAgb2xkX3NpemU7XG4gICAgYXJyYXkubWV0aG9kcyA8LSBuZXdfYnVja1xuIGVuZFxuXG5sZXQgcHV0IGFycmF5IGxhYmVsIGVsZW1lbnQgPVxuICByZXNpemUgYXJyYXkgKGxhYmVsICsgMSk7XG4gIGFycmF5Lm1ldGhvZHMuKGxhYmVsKSA8LSBlbGVtZW50XG5cbigqKioqIENsYXNzZXMgKioqKilcblxubGV0IG1ldGhvZF9jb3VudCA9IHJlZiAwXG5sZXQgaW5zdF92YXJfY291bnQgPSByZWYgMFxuXG4oKiB0eXBlIHQgKilcbnR5cGUgbWV0aCA9IGl0ZW1cblxubGV0IG5ld19tZXRob2QgdGFibGUgPVxuICBsZXQgaW5kZXggPSBBcnJheS5sZW5ndGggdGFibGUubWV0aG9kcyBpblxuICByZXNpemUgdGFibGUgKGluZGV4ICsgMSk7XG4gIGluZGV4XG5cbmxldCBnZXRfbWV0aG9kX2xhYmVsIHRhYmxlIG5hbWUgPVxuICB0cnlcbiAgICBNZXRocy5maW5kIG5hbWUgdGFibGUubWV0aG9kc19ieV9uYW1lXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgbGV0IGxhYmVsID0gbmV3X21ldGhvZCB0YWJsZSBpblxuICAgIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSBNZXRocy5hZGQgbmFtZSBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X25hbWU7XG4gICAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBMYWJzLmFkZCBsYWJlbCB0cnVlIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWw7XG4gICAgbGFiZWxcblxubGV0IGdldF9tZXRob2RfbGFiZWxzIHRhYmxlIG5hbWVzID1cbiAgQXJyYXkubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSBuYW1lc1xuXG5sZXQgc2V0X21ldGhvZCB0YWJsZSBsYWJlbCBlbGVtZW50ID1cbiAgaW5jciBtZXRob2RfY291bnQ7XG4gIGlmIExhYnMuZmluZCBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIHRoZW5cbiAgICBwdXQgdGFibGUgbGFiZWwgZWxlbWVudFxuICBlbHNlXG4gICAgdGFibGUuaGlkZGVuX21ldGhzIDwtIChsYWJlbCwgZWxlbWVudCkgOjogdGFibGUuaGlkZGVuX21ldGhzXG5cbmxldCBnZXRfbWV0aG9kIHRhYmxlIGxhYmVsID1cbiAgdHJ5IExpc3QuYXNzb2MgbGFiZWwgdGFibGUuaGlkZGVuX21ldGhzXG4gIHdpdGggTm90X2ZvdW5kIC0+IHRhYmxlLm1ldGhvZHMuKGxhYmVsKVxuXG5sZXQgdG9fbGlzdCBhcnIgPVxuICBpZiBhcnIgPT0gbWFnaWMgMCB0aGVuIFtdIGVsc2UgQXJyYXkudG9fbGlzdCBhcnJcblxubGV0IG5hcnJvdyB0YWJsZSB2YXJzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHMgPVxuICBsZXQgdmFycyA9IHRvX2xpc3QgdmFyc1xuICBhbmQgdmlydF9tZXRocyA9IHRvX2xpc3QgdmlydF9tZXRoc1xuICBhbmQgY29uY3JfbWV0aHMgPSB0b19saXN0IGNvbmNyX21ldGhzIGluXG4gIGxldCB2aXJ0X21ldGhfbGFicyA9IExpc3QubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSB2aXJ0X21ldGhzIGluXG4gIGxldCBjb25jcl9tZXRoX2xhYnMgPSBMaXN0Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgY29uY3JfbWV0aHMgaW5cbiAgdGFibGUucHJldmlvdXNfc3RhdGVzIDwtXG4gICAgICh0YWJsZS5tZXRob2RzX2J5X25hbWUsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwsIHRhYmxlLmhpZGRlbl9tZXRocyxcbiAgICAgIHRhYmxlLnZhcnMsIHZpcnRfbWV0aF9sYWJzLCB2YXJzKVxuICAgICA6OiB0YWJsZS5wcmV2aW91c19zdGF0ZXM7XG4gIHRhYmxlLnZhcnMgPC1cbiAgICBWYXJzLmZvbGRcbiAgICAgIChmdW4gbGFiIGluZm8gdHZhcnMgLT5cbiAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZhcnMgdGhlbiBWYXJzLmFkZCBsYWIgaW5mbyB0dmFycyBlbHNlIHR2YXJzKVxuICAgICAgdGFibGUudmFycyBWYXJzLmVtcHR5O1xuICBsZXQgYnlfbmFtZSA9IHJlZiBNZXRocy5lbXB0eSBpblxuICBsZXQgYnlfbGFiZWwgPSByZWYgTGFicy5lbXB0eSBpblxuICBMaXN0Lml0ZXIyXG4gICAgKGZ1biBtZXQgbGFiZWwgLT5cbiAgICAgICBieV9uYW1lIDo9IE1ldGhzLmFkZCBtZXQgbGFiZWwgIWJ5X25hbWU7XG4gICAgICAgYnlfbGFiZWwgOj1cbiAgICAgICAgICBMYWJzLmFkZCBsYWJlbFxuICAgICAgICAgICAgKHRyeSBMYWJzLmZpbmQgbGFiZWwgdGFibGUubWV0aG9kc19ieV9sYWJlbCB3aXRoIE5vdF9mb3VuZCAtPiB0cnVlKVxuICAgICAgICAgICAgIWJ5X2xhYmVsKVxuICAgIGNvbmNyX21ldGhzIGNvbmNyX21ldGhfbGFicztcbiAgTGlzdC5pdGVyMlxuICAgIChmdW4gbWV0IGxhYmVsIC0+XG4gICAgICAgYnlfbmFtZSA6PSBNZXRocy5hZGQgbWV0IGxhYmVsICFieV9uYW1lO1xuICAgICAgIGJ5X2xhYmVsIDo9IExhYnMuYWRkIGxhYmVsIGZhbHNlICFieV9sYWJlbClcbiAgICB2aXJ0X21ldGhzIHZpcnRfbWV0aF9sYWJzO1xuICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gIWJ5X25hbWU7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gIWJ5X2xhYmVsO1xuICB0YWJsZS5oaWRkZW5fbWV0aHMgPC1cbiAgICAgTGlzdC5mb2xkX3JpZ2h0XG4gICAgICAgKGZ1biAoKGxhYiwgXykgYXMgbWV0KSBobSAtPlxuICAgICAgICAgIGlmIExpc3QubWVtIGxhYiB2aXJ0X21ldGhfbGFicyB0aGVuIGhtIGVsc2UgbWV0OjpobSlcbiAgICAgICB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgICAgICBbXVxuXG5sZXQgd2lkZW4gdGFibGUgPVxuICBsZXQgKGJ5X25hbWUsIGJ5X2xhYmVsLCBzYXZlZF9oaWRkZW5fbWV0aHMsIHNhdmVkX3ZhcnMsIHZpcnRfbWV0aHMsIHZhcnMpID1cbiAgICBMaXN0LmhkIHRhYmxlLnByZXZpb3VzX3N0YXRlc1xuICBpblxuICB0YWJsZS5wcmV2aW91c19zdGF0ZXMgPC0gTGlzdC50bCB0YWJsZS5wcmV2aW91c19zdGF0ZXM7XG4gIHRhYmxlLnZhcnMgPC1cbiAgICAgTGlzdC5mb2xkX2xlZnRcbiAgICAgICAoZnVuIHMgdiAtPiBWYXJzLmFkZCB2IChWYXJzLmZpbmQgdiB0YWJsZS52YXJzKSBzKVxuICAgICAgIHNhdmVkX3ZhcnMgdmFycztcbiAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtIGJ5X25hbWU7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gYnlfbGFiZWw7XG4gIHRhYmxlLmhpZGRlbl9tZXRocyA8LVxuICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAoZnVuICgobGFiLCBfKSBhcyBtZXQpIGhtIC0+XG4gICAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZpcnRfbWV0aHMgdGhlbiBobSBlbHNlIG1ldDo6aG0pXG4gICAgICAgdGFibGUuaGlkZGVuX21ldGhzXG4gICAgICAgc2F2ZWRfaGlkZGVuX21ldGhzXG5cbmxldCBuZXdfc2xvdCB0YWJsZSA9XG4gIGxldCBpbmRleCA9IHRhYmxlLnNpemUgaW5cbiAgdGFibGUuc2l6ZSA8LSBpbmRleCArIDE7XG4gIGluZGV4XG5cbmxldCBuZXdfdmFyaWFibGUgdGFibGUgbmFtZSA9XG4gIHRyeSBWYXJzLmZpbmQgbmFtZSB0YWJsZS52YXJzXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgbGV0IGluZGV4ID0gbmV3X3Nsb3QgdGFibGUgaW5cbiAgICBpZiBuYW1lIDw+IFwiXCIgdGhlbiB0YWJsZS52YXJzIDwtIFZhcnMuYWRkIG5hbWUgaW5kZXggdGFibGUudmFycztcbiAgICBpbmRleFxuXG5sZXQgdG9fYXJyYXkgYXJyID1cbiAgaWYgYXJyID0gT2JqLm1hZ2ljIDAgdGhlbiBbfHxdIGVsc2UgYXJyXG5cbmxldCBuZXdfbWV0aG9kc192YXJpYWJsZXMgdGFibGUgbWV0aHMgdmFscyA9XG4gIGxldCBtZXRocyA9IHRvX2FycmF5IG1ldGhzIGluXG4gIGxldCBubWV0aHMgPSBBcnJheS5sZW5ndGggbWV0aHMgYW5kIG52YWxzID0gQXJyYXkubGVuZ3RoIHZhbHMgaW5cbiAgbGV0IHJlcyA9IEFycmF5Lm1ha2UgKG5tZXRocyArIG52YWxzKSAwIGluXG4gIGZvciBpID0gMCB0byBubWV0aHMgLSAxIGRvXG4gICAgcmVzLihpKSA8LSBnZXRfbWV0aG9kX2xhYmVsIHRhYmxlIG1ldGhzLihpKVxuICBkb25lO1xuICBmb3IgaSA9IDAgdG8gbnZhbHMgLSAxIGRvXG4gICAgcmVzLihpK25tZXRocykgPC0gbmV3X3ZhcmlhYmxlIHRhYmxlIHZhbHMuKGkpXG4gIGRvbmU7XG4gIHJlc1xuXG5sZXQgZ2V0X3ZhcmlhYmxlIHRhYmxlIG5hbWUgPVxuICB0cnkgVmFycy5maW5kIG5hbWUgdGFibGUudmFycyB3aXRoIE5vdF9mb3VuZCAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGdldF92YXJpYWJsZXMgdGFibGUgbmFtZXMgPVxuICBBcnJheS5tYXAgKGdldF92YXJpYWJsZSB0YWJsZSkgbmFtZXNcblxubGV0IGFkZF9pbml0aWFsaXplciB0YWJsZSBmID1cbiAgdGFibGUuaW5pdGlhbGl6ZXJzIDwtIGY6OnRhYmxlLmluaXRpYWxpemVyc1xuXG4oKlxubW9kdWxlIEtleXMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gdGFnIGFycmF5IGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG5sZXQga2V5X21hcCA9IHJlZiBLZXlzLmVtcHR5XG5sZXQgZ2V0X2tleSB0YWdzIDogaXRlbSA9XG4gIHRyeSBtYWdpYyAoS2V5cy5maW5kIHRhZ3MgIWtleV9tYXAgOiB0YWcgYXJyYXkpXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAga2V5X21hcCA6PSBLZXlzLmFkZCB0YWdzIHRhZ3MgIWtleV9tYXA7XG4gICAgbWFnaWMgdGFnc1xuKilcblxubGV0IGNyZWF0ZV90YWJsZSBwdWJsaWNfbWV0aG9kcyA9XG4gIGlmIHB1YmxpY19tZXRob2RzID09IG1hZ2ljIDAgdGhlbiBuZXdfdGFibGUgW3x8XSBlbHNlXG4gICgqIFtwdWJsaWNfbWV0aG9kc10gbXVzdCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIgZm9yIGJ5dGVjb2RlICopXG4gIGxldCB0YWdzID0gQXJyYXkubWFwIHB1YmxpY19tZXRob2RfbGFiZWwgcHVibGljX21ldGhvZHMgaW5cbiAgbGV0IHRhYmxlID0gbmV3X3RhYmxlIHRhZ3MgaW5cbiAgQXJyYXkuaXRlcmlcbiAgICAoZnVuIGkgbWV0IC0+XG4gICAgICBsZXQgbGFiID0gaSoyKzIgaW5cbiAgICAgIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSAgPC0gTWV0aHMuYWRkIG1ldCBsYWIgdGFibGUubWV0aG9kc19ieV9uYW1lO1xuICAgICAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBMYWJzLmFkZCBsYWIgdHJ1ZSB0YWJsZS5tZXRob2RzX2J5X2xhYmVsKVxuICAgIHB1YmxpY19tZXRob2RzO1xuICB0YWJsZVxuXG5sZXQgaW5pdF9jbGFzcyB0YWJsZSA9XG4gIGluc3RfdmFyX2NvdW50IDo9ICFpbnN0X3Zhcl9jb3VudCArIHRhYmxlLnNpemUgLSAxO1xuICB0YWJsZS5pbml0aWFsaXplcnMgPC0gTGlzdC5yZXYgdGFibGUuaW5pdGlhbGl6ZXJzO1xuICByZXNpemUgdGFibGUgKDMgKyBtYWdpYyB0YWJsZS5tZXRob2RzLigxKSAqIDE2IC8gU3lzLndvcmRfc2l6ZSlcblxubGV0IGluaGVyaXRzIGNsYSB2YWxzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHMgKF8sIHN1cGVyLCBfLCBlbnYpIHRvcCA9XG4gIG5hcnJvdyBjbGEgdmFscyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzO1xuICBsZXQgaW5pdCA9XG4gICAgaWYgdG9wIHRoZW4gc3VwZXIgY2xhIGVudiBlbHNlIE9iai5yZXByIChzdXBlciBjbGEpIGluXG4gIHdpZGVuIGNsYTtcbiAgQXJyYXkuY29uY2F0XG4gICAgW1t8IHJlcHIgaW5pdCB8XTtcbiAgICAgbWFnaWMgKEFycmF5Lm1hcCAoZ2V0X3ZhcmlhYmxlIGNsYSkgKHRvX2FycmF5IHZhbHMpIDogaW50IGFycmF5KTtcbiAgICAgQXJyYXkubWFwXG4gICAgICAgKGZ1biBubSAtPiByZXByIChnZXRfbWV0aG9kIGNsYSAoZ2V0X21ldGhvZF9sYWJlbCBjbGEgbm0pIDogY2xvc3VyZSkpXG4gICAgICAgKHRvX2FycmF5IGNvbmNyX21ldGhzKSBdXG5cbmxldCBtYWtlX2NsYXNzIHB1Yl9tZXRocyBjbGFzc19pbml0ID1cbiAgbGV0IHRhYmxlID0gY3JlYXRlX3RhYmxlIHB1Yl9tZXRocyBpblxuICBsZXQgZW52X2luaXQgPSBjbGFzc19pbml0IHRhYmxlIGluXG4gIGluaXRfY2xhc3MgdGFibGU7XG4gIChlbnZfaW5pdCAoT2JqLnJlcHIgMCksIGNsYXNzX2luaXQsIGVudl9pbml0LCBPYmoucmVwciAwKVxuXG50eXBlIGluaXRfdGFibGUgPSB7IG11dGFibGUgZW52X2luaXQ6IHQ7IG11dGFibGUgY2xhc3NfaW5pdDogdGFibGUgLT4gdCB9XG5bQEB3YXJuaW5nIFwiLXVudXNlZC1maWVsZFwiXVxuXG5sZXQgbWFrZV9jbGFzc19zdG9yZSBwdWJfbWV0aHMgY2xhc3NfaW5pdCBpbml0X3RhYmxlID1cbiAgbGV0IHRhYmxlID0gY3JlYXRlX3RhYmxlIHB1Yl9tZXRocyBpblxuICBsZXQgZW52X2luaXQgPSBjbGFzc19pbml0IHRhYmxlIGluXG4gIGluaXRfY2xhc3MgdGFibGU7XG4gIGluaXRfdGFibGUuY2xhc3NfaW5pdCA8LSBjbGFzc19pbml0O1xuICBpbml0X3RhYmxlLmVudl9pbml0IDwtIGVudl9pbml0XG5cbmxldCBkdW1teV9jbGFzcyBsb2MgPVxuICBsZXQgdW5kZWYgPSBmdW4gXyAtPiByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKSBpblxuICAoT2JqLm1hZ2ljIHVuZGVmLCB1bmRlZiwgdW5kZWYsIE9iai5yZXByIDApXG5cbigqKioqIE9iamVjdHMgKioqKilcblxubGV0IGNyZWF0ZV9vYmplY3QgdGFibGUgPVxuICAoKiBYWFggQXBwZWwgZGUgW29ial9ibG9ja10gfCBDYWxsIHRvIFtvYmpfYmxvY2tdICAqKVxuICBsZXQgb2JqID0gT2JqLm5ld19ibG9jayBPYmoub2JqZWN0X3RhZyB0YWJsZS5zaXplIGluXG4gICgqIFhYWCBBcHBlbCBkZSBbY2FtbF9tb2RpZnldIHwgQ2FsbCB0byBbY2FtbF9tb2RpZnldICopXG4gIE9iai5zZXRfZmllbGQgb2JqIDAgKE9iai5yZXByIHRhYmxlLm1ldGhvZHMpO1xuICBPYmoub2JqIChzZXRfaWQgb2JqKVxuXG5sZXQgY3JlYXRlX29iamVjdF9vcHQgb2JqXzAgdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmpfMCBlbHNlIGJlZ2luXG4gICAgKCogWFhYIEFwcGVsIGRlIFtvYmpfYmxvY2tdIHwgQ2FsbCB0byBbb2JqX2Jsb2NrXSAgKilcbiAgICBsZXQgb2JqID0gT2JqLm5ld19ibG9jayBPYmoub2JqZWN0X3RhZyB0YWJsZS5zaXplIGluXG4gICAgKCogWFhYIEFwcGVsIGRlIFtjYW1sX21vZGlmeV0gfCBDYWxsIHRvIFtjYW1sX21vZGlmeV0gKilcbiAgICBPYmouc2V0X2ZpZWxkIG9iaiAwIChPYmoucmVwciB0YWJsZS5tZXRob2RzKTtcbiAgICBPYmoub2JqIChzZXRfaWQgb2JqKVxuICBlbmRcblxubGV0IHJlYyBpdGVyX2Ygb2JqID1cbiAgZnVuY3Rpb25cbiAgICBbXSAgIC0+ICgpXG4gIHwgZjo6bCAtPiBmIG9iajsgaXRlcl9mIG9iaiBsXG5cbmxldCBydW5faW5pdGlhbGl6ZXJzIG9iaiB0YWJsZSA9XG4gIGxldCBpbml0cyA9IHRhYmxlLmluaXRpYWxpemVycyBpblxuICBpZiBpbml0cyA8PiBbXSB0aGVuXG4gICAgaXRlcl9mIG9iaiBpbml0c1xuXG5sZXQgcnVuX2luaXRpYWxpemVyc19vcHQgb2JqXzAgb2JqIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqIGVsc2UgYmVnaW5cbiAgICBsZXQgaW5pdHMgPSB0YWJsZS5pbml0aWFsaXplcnMgaW5cbiAgICBpZiBpbml0cyA8PiBbXSB0aGVuIGl0ZXJfZiBvYmogaW5pdHM7XG4gICAgb2JqXG4gIGVuZFxuXG5sZXQgY3JlYXRlX29iamVjdF9hbmRfcnVuX2luaXRpYWxpemVycyBvYmpfMCB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9ial8wIGVsc2UgYmVnaW5cbiAgICBsZXQgb2JqID0gY3JlYXRlX29iamVjdCB0YWJsZSBpblxuICAgIHJ1bl9pbml0aWFsaXplcnMgb2JqIHRhYmxlO1xuICAgIG9ialxuICBlbmRcblxuKCogRXF1aXZhbGVudCBwcmltaXRpdmUgYmVsb3dcbmxldCBzZW5kc2VsZiBvYmogbGFiID1cbiAgKG1hZ2ljIG9iaiA6IChvYmogLT4gdCkgYXJyYXkgYXJyYXkpLigwKS4obGFiKSBvYmpcbiopXG5leHRlcm5hbCBzZW5kIDogb2JqIC0+IHRhZyAtPiAnYSA9IFwiJXNlbmRcIlxuZXh0ZXJuYWwgc2VuZGNhY2hlIDogb2JqIC0+IHRhZyAtPiB0IC0+IGludCAtPiAnYSA9IFwiJXNlbmRjYWNoZVwiXG5leHRlcm5hbCBzZW5kc2VsZiA6IG9iaiAtPiBsYWJlbCAtPiAnYSA9IFwiJXNlbmRzZWxmXCJcbmV4dGVybmFsIGdldF9wdWJsaWNfbWV0aG9kIDogb2JqIC0+IHRhZyAtPiBjbG9zdXJlXG4gICAgPSBcImNhbWxfZ2V0X3B1YmxpY19tZXRob2RcIiBbQEBub2FsbG9jXVxuXG4oKioqKiB0YWJsZSBjb2xsZWN0aW9uIGFjY2VzcyAqKioqKVxuXG50eXBlIHRhYmxlcyA9XG4gIHwgRW1wdHlcbiAgfCBDb25zIG9mIHtrZXkgOiBjbG9zdXJlOyBtdXRhYmxlIGRhdGE6IHRhYmxlczsgbXV0YWJsZSBuZXh0OiB0YWJsZXN9XG5cbmxldCBzZXRfZGF0YSB0YWJsZXMgdiA9IG1hdGNoIHRhYmxlcyB3aXRoXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmRhdGEgPC0gdlxubGV0IHNldF9uZXh0IHRhYmxlcyB2ID0gbWF0Y2ggdGFibGVzIHdpdGhcbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMubmV4dCA8LSB2XG5sZXQgZ2V0X2tleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmtleVxubGV0IGdldF9kYXRhID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMuZGF0YVxubGV0IGdldF9uZXh0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMubmV4dFxuXG5sZXQgYnVpbGRfcGF0aCBuIGtleXMgdGFibGVzID1cbiAgbGV0IHJlcyA9IENvbnMge2tleSA9IE9iai5tYWdpYyAwOyBkYXRhID0gRW1wdHk7IG5leHQgPSBFbXB0eX0gaW5cbiAgbGV0IHIgPSByZWYgcmVzIGluXG4gIGZvciBpID0gMCB0byBuIGRvXG4gICAgciA6PSBDb25zIHtrZXkgPSBrZXlzLihpKTsgZGF0YSA9ICFyOyBuZXh0ID0gRW1wdHl9XG4gIGRvbmU7XG4gIHNldF9kYXRhIHRhYmxlcyAhcjtcbiAgcmVzXG5cbmxldCByZWMgbG9va3VwX2tleXMgaSBrZXlzIHRhYmxlcyA9XG4gIGlmIGkgPCAwIHRoZW4gdGFibGVzIGVsc2VcbiAgbGV0IGtleSA9IGtleXMuKGkpIGluXG4gIGxldCByZWMgbG9va3VwX2tleSAodGFibGVzOnRhYmxlcykgPVxuICAgIGlmIGdldF9rZXkgdGFibGVzID09IGtleSB0aGVuXG4gICAgICBtYXRjaCBnZXRfZGF0YSB0YWJsZXMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgIHwgQ29ucyBfIGFzIHRhYmxlc19kYXRhIC0+XG4gICAgICAgICAgbG9va3VwX2tleXMgKGktMSkga2V5cyB0YWJsZXNfZGF0YVxuICAgIGVsc2VcbiAgICAgIG1hdGNoIGdldF9uZXh0IHRhYmxlcyB3aXRoXG4gICAgICB8IENvbnMgXyBhcyBuZXh0IC0+IGxvb2t1cF9rZXkgbmV4dFxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGxldCBuZXh0IDogdGFibGVzID0gQ29ucyB7a2V5OyBkYXRhID0gRW1wdHk7IG5leHQgPSBFbXB0eX0gaW5cbiAgICAgICAgICBzZXRfbmV4dCB0YWJsZXMgbmV4dDtcbiAgICAgICAgICBidWlsZF9wYXRoIChpLTEpIGtleXMgbmV4dFxuICBpblxuICBsb29rdXBfa2V5IHRhYmxlc1xuXG5sZXQgbG9va3VwX3RhYmxlcyByb290IGtleXMgPVxuICBtYXRjaCBnZXRfZGF0YSByb290IHdpdGhcbiAgfCBDb25zIF8gYXMgcm9vdF9kYXRhIC0+XG4gICAgbG9va3VwX2tleXMgKEFycmF5Lmxlbmd0aCBrZXlzIC0gMSkga2V5cyByb290X2RhdGFcbiAgfCBFbXB0eSAtPlxuICAgIGJ1aWxkX3BhdGggKEFycmF5Lmxlbmd0aCBrZXlzIC0gMSkga2V5cyByb290XG5cbigqKioqIGJ1aWx0aW4gbWV0aG9kcyAqKioqKVxuXG5sZXQgZ2V0X2NvbnN0IHggPSByZXQgKGZ1biBfb2JqIC0+IHgpXG5sZXQgZ2V0X3ZhciBuICAgPSByZXQgKGZ1biBvYmogLT4gQXJyYXkudW5zYWZlX2dldCBvYmogbilcbmxldCBnZXRfZW52IGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pXG5sZXQgZ2V0X21ldGggbiAgPSByZXQgKGZ1biBvYmogLT4gc2VuZHNlbGYgb2JqIG4pXG5sZXQgc2V0X3ZhciBuICAgPSByZXQgKGZ1biBvYmogeCAtPiBBcnJheS51bnNhZmVfc2V0IG9iaiBuIHgpXG5sZXQgYXBwX2NvbnN0IGYgeCA9IHJldCAoZnVuIF9vYmogLT4gZiB4KVxubGV0IGFwcF92YXIgZiBuICAgPSByZXQgKGZ1biBvYmogLT4gZiAoQXJyYXkudW5zYWZlX2dldCBvYmogbikpXG5sZXQgYXBwX2VudiBmIGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pKVxubGV0IGFwcF9tZXRoIGYgbiAgPSByZXQgKGZ1biBvYmogLT4gZiAoc2VuZHNlbGYgb2JqIG4pKVxubGV0IGFwcF9jb25zdF9jb25zdCBmIHggeSA9IHJldCAoZnVuIF9vYmogLT4gZiB4IHkpXG5sZXQgYXBwX2NvbnN0X3ZhciBmIHggbiAgID0gcmV0IChmdW4gb2JqIC0+IGYgeCAoQXJyYXkudW5zYWZlX2dldCBvYmogbikpXG5sZXQgYXBwX2NvbnN0X21ldGggZiB4IG4gPSByZXQgKGZ1biBvYmogLT4gZiB4IChzZW5kc2VsZiBvYmogbikpXG5sZXQgYXBwX3Zhcl9jb25zdCBmIG4geCA9IHJldCAoZnVuIG9iaiAtPiBmIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSB4KVxubGV0IGFwcF9tZXRoX2NvbnN0IGYgbiB4ID0gcmV0IChmdW4gb2JqIC0+IGYgKHNlbmRzZWxmIG9iaiBuKSB4KVxubGV0IGFwcF9jb25zdF9lbnYgZiB4IGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgeCAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikpXG5sZXQgYXBwX2Vudl9jb25zdCBmIGUgbiB4ID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikgeClcbmxldCBtZXRoX2FwcF9jb25zdCBuIHggPSByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSB4KVxubGV0IG1ldGhfYXBwX3ZhciBuIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSAoQXJyYXkudW5zYWZlX2dldCBvYmogbSkpXG5sZXQgbWV0aF9hcHBfZW52IG4gZSBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXylcbiAgICAgIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBtKSlcbmxldCBtZXRoX2FwcF9tZXRoIG4gbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIChzZW5kc2VsZiBvYmogbSkpXG5sZXQgc2VuZF9jb25zdCBtIHggYyA9XG4gIHJldCAoZnVuIG9iaiAtPiBzZW5kY2FjaGUgeCBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfdmFyIG0gbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pIDogb2JqKSBtXG4gICAgICAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX2VudiBtIGUgbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlXG4gICAgICAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0XG4gICAgICAgICAgICAgICAgICAgIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSA6IG9iailcbiAgICAgIG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF9tZXRoIG0gbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlIChzZW5kc2VsZiBvYmogbikgbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBuZXdfY2FjaGUgdGFibGUgPVxuICBsZXQgbiA9IG5ld19tZXRob2QgdGFibGUgaW5cbiAgbGV0IG4gPVxuICAgIGlmIG4gbW9kIDIgPSAwIHx8IG4gPiAyICsgbWFnaWMgdGFibGUubWV0aG9kcy4oMSkgKiAxNiAvIFN5cy53b3JkX3NpemVcbiAgICB0aGVuIG4gZWxzZSBuZXdfbWV0aG9kIHRhYmxlXG4gIGluXG4gIHRhYmxlLm1ldGhvZHMuKG4pIDwtIE9iai5tYWdpYyAwO1xuICBuXG5cbnR5cGUgaW1wbCA9XG4gICAgR2V0Q29uc3RcbiAgfCBHZXRWYXJcbiAgfCBHZXRFbnZcbiAgfCBHZXRNZXRoXG4gIHwgU2V0VmFyXG4gIHwgQXBwQ29uc3RcbiAgfCBBcHBWYXJcbiAgfCBBcHBFbnZcbiAgfCBBcHBNZXRoXG4gIHwgQXBwQ29uc3RDb25zdFxuICB8IEFwcENvbnN0VmFyXG4gIHwgQXBwQ29uc3RFbnZcbiAgfCBBcHBDb25zdE1ldGhcbiAgfCBBcHBWYXJDb25zdFxuICB8IEFwcEVudkNvbnN0XG4gIHwgQXBwTWV0aENvbnN0XG4gIHwgTWV0aEFwcENvbnN0XG4gIHwgTWV0aEFwcFZhclxuICB8IE1ldGhBcHBFbnZcbiAgfCBNZXRoQXBwTWV0aFxuICB8IFNlbmRDb25zdFxuICB8IFNlbmRWYXJcbiAgfCBTZW5kRW52XG4gIHwgU2VuZE1ldGhcbiAgfCBDbG9zdXJlIG9mIGNsb3N1cmVcblxubGV0IG1ldGhvZF9pbXBsIHRhYmxlIGkgYXJyID1cbiAgbGV0IG5leHQgKCkgPSBpbmNyIGk7IG1hZ2ljIGFyci4oIWkpIGluXG4gIG1hdGNoIG5leHQoKSB3aXRoXG4gICAgR2V0Q29uc3QgLT4gbGV0IHggOiB0ID0gbmV4dCgpIGluIGdldF9jb25zdCB4XG4gIHwgR2V0VmFyICAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X3ZhciBuXG4gIHwgR2V0RW52ICAgLT4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X2VudiBlIG5cbiAgfCBHZXRNZXRoICAtPiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfbWV0aCBuXG4gIHwgU2V0VmFyICAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gc2V0X3ZhciBuXG4gIHwgQXBwQ29uc3QgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gYXBwX2NvbnN0IGYgeFxuICB8IEFwcFZhciAgIC0+IGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBhcHBfdmFyIGYgblxuICB8IEFwcEVudiAgIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiAgbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9lbnYgZiBlIG5cbiAgfCBBcHBNZXRoICAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gYXBwX21ldGggZiBuXG4gIHwgQXBwQ29uc3RDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IHkgPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9jb25zdCBmIHggeVxuICB8IEFwcENvbnN0VmFyIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X3ZhciBmIHggblxuICB8IEFwcENvbnN0RW52IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQgKCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9lbnYgZiB4IGUgblxuICB8IEFwcENvbnN0TWV0aCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9tZXRoIGYgeCBuXG4gIHwgQXBwVmFyQ29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfdmFyX2NvbnN0IGYgbiB4XG4gIHwgQXBwRW52Q29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCAoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX2Vudl9jb25zdCBmIGUgbiB4XG4gIHwgQXBwTWV0aENvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX21ldGhfY29uc3QgZiBuIHhcbiAgfCBNZXRoQXBwQ29uc3QgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIG1ldGhfYXBwX2NvbnN0IG4geFxuICB8IE1ldGhBcHBWYXIgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluIG1ldGhfYXBwX3ZhciBuIG1cbiAgfCBNZXRoQXBwRW52IC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpblxuICAgICAgbWV0aF9hcHBfZW52IG4gZSBtXG4gIHwgTWV0aEFwcE1ldGggLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluIG1ldGhfYXBwX21ldGggbiBtXG4gIHwgU2VuZENvbnN0IC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBzZW5kX2NvbnN0IG0geCAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRWYXIgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBzZW5kX3ZhciBtIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kRW52IC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgc2VuZF9lbnYgbSBlIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kTWV0aCAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIHNlbmRfbWV0aCBtIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBDbG9zdXJlIF8gYXMgY2xvIC0+IG1hZ2ljIGNsb1xuXG5sZXQgc2V0X21ldGhvZHMgdGFibGUgbWV0aG9kcyA9XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggbWV0aG9kcyBpbiBsZXQgaSA9IHJlZiAwIGluXG4gIHdoaWxlICFpIDwgbGVuIGRvXG4gICAgbGV0IGxhYmVsID0gbWV0aG9kcy4oIWkpIGluIGxldCBjbG8gPSBtZXRob2RfaW1wbCB0YWJsZSBpIG1ldGhvZHMgaW5cbiAgICBzZXRfbWV0aG9kIHRhYmxlIGxhYmVsIGNsbztcbiAgICBpbmNyIGlcbiAgZG9uZVxuXG4oKioqKiBTdGF0aXN0aWNzICoqKiopXG5cbnR5cGUgc3RhdHMgPVxuICB7IGNsYXNzZXM6IGludDsgbWV0aG9kczogaW50OyBpbnN0X3ZhcnM6IGludDsgfVxuXG5sZXQgc3RhdHMgKCkgPVxuICB7IGNsYXNzZXMgPSAhdGFibGVfY291bnQ7XG4gICAgbWV0aG9kcyA9ICFtZXRob2RfY291bnQ7IGluc3RfdmFycyA9ICFpbnN0X3Zhcl9jb3VudDsgfVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHNoYXBlID1cbiAgfCBGdW5jdGlvblxuICB8IExhenlcbiAgfCBDbGFzc1xuICB8IE1vZHVsZSBvZiBzaGFwZSBhcnJheVxuICB8IFZhbHVlIG9mIE9iai50XG5cbmxldCByZWMgaW5pdF9tb2RfZmllbGQgbW9kdSBpIGxvYyBzaGFwZSA9XG4gIGxldCBpbml0ID1cbiAgICBtYXRjaCBzaGFwZSB3aXRoXG4gICAgfCBGdW5jdGlvbiAtPlxuICAgICAgIGxldCByZWMgZm4gKHggOiAnYSkgPVxuICAgICAgICAgbGV0IGZuJyA6ICdhIC0+ICdiID0gT2JqLm9iaiAoT2JqLmZpZWxkIG1vZHUgaSkgaW5cbiAgICAgICAgIGlmIGZuID09IGZuJyB0aGVuXG4gICAgICAgICAgIHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIGZuJyB4IGluXG4gICAgICAgT2JqLnJlcHIgZm5cbiAgICB8IExhenkgLT5cbiAgICAgICBsZXQgcmVjIGwgPVxuICAgICAgICAgbGF6eSAoXG4gICAgICAgICAgIGxldCBsJyA9IE9iai5vYmogKE9iai5maWVsZCBtb2R1IGkpIGluXG4gICAgICAgICAgIGlmIGwgPT0gbCcgdGhlblxuICAgICAgICAgICAgIHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpXG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICBMYXp5LmZvcmNlIGwnKSBpblxuICAgICAgIE9iai5yZXByIGxcbiAgICB8IENsYXNzIC0+XG4gICAgICAgT2JqLnJlcHIgKENhbWxpbnRlcm5hbE9PLmR1bW15X2NsYXNzIGxvYylcbiAgICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICAgIE9iai5yZXByIChpbml0X21vZF9ibG9jayBsb2MgY29tcHMpXG4gICAgfCBWYWx1ZSB2IC0+IHZcbiAgaW5cbiAgT2JqLnNldF9maWVsZCBtb2R1IGkgaW5pdFxuXG5hbmQgaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzID1cbiAgbGV0IGxlbmd0aCA9IEFycmF5Lmxlbmd0aCBjb21wcyBpblxuICBsZXQgbW9kdSA9IE9iai5uZXdfYmxvY2sgMCBsZW5ndGggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCAtIDEgZG9cbiAgICBpbml0X21vZF9maWVsZCBtb2R1IGkgbG9jIGNvbXBzLihpKVxuICBkb25lO1xuICBtb2R1XG5cbmxldCBpbml0X21vZCBsb2Mgc2hhcGUgPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIE9iai5yZXByIChpbml0X21vZF9ibG9jayBsb2MgY29tcHMpXG4gIHwgXyAtPiBmYWlsd2l0aCBcIkNhbWxpbnRlcm5hbE1vZC5pbml0X21vZDogbm90IGEgbW9kdWxlXCJcblxubGV0IHJlYyB1cGRhdGVfbW9kX2ZpZWxkIG1vZHUgaSBzaGFwZSBuID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IEZ1bmN0aW9uIHwgTGF6eSAtPlxuICAgICBPYmouc2V0X2ZpZWxkIG1vZHUgaSBuXG4gIHwgVmFsdWUgXyAtPlxuICAgICAoKSAoKiB0aGUgdmFsdWUgaXMgYWxyZWFkeSB0aGVyZSAqKVxuICB8IENsYXNzIC0+XG4gICAgIGFzc2VydCAoT2JqLnRhZyBuID0gMCAmJiBPYmouc2l6ZSBuID0gNCk7XG4gICAgIGxldCBjbCA9IE9iai5maWVsZCBtb2R1IGkgaW5cbiAgICAgZm9yIGogPSAwIHRvIDMgZG9cbiAgICAgICBPYmouc2V0X2ZpZWxkIGNsIGogKE9iai5maWVsZCBuIGopXG4gICAgIGRvbmVcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgdXBkYXRlX21vZF9ibG9jayBjb21wcyAoT2JqLmZpZWxkIG1vZHUgaSkgblxuXG5hbmQgdXBkYXRlX21vZF9ibG9jayBjb21wcyBvIG4gPVxuICBhc3NlcnQgKE9iai50YWcgbiA9IDAgJiYgT2JqLnNpemUgbiA+PSBBcnJheS5sZW5ndGggY29tcHMpO1xuICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGNvbXBzIC0gMSBkb1xuICAgIHVwZGF0ZV9tb2RfZmllbGQgbyBpIGNvbXBzLihpKSAoT2JqLmZpZWxkIG4gaSlcbiAgZG9uZVxuXG5sZXQgdXBkYXRlX21vZCBzaGFwZSBvIG4gPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgbyBuXG4gIHwgXyAtPiBmYWlsd2l0aCBcIkNhbWxpbnRlcm5hbE1vZC51cGRhdGVfbW9kOiBub3QgYSBtb2R1bGVcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdICgqIGlnbm9yZSBkZXByZWNhdGlvbiB3YXJuaW5nIGFib3V0IG1vZHVsZSBTdHJlYW0gKilcblxudHlwZSB0b2tlbiA9XG4gICAgS3dkIG9mIHN0cmluZ1xuICB8IElkZW50IG9mIHN0cmluZ1xuICB8IEludCBvZiBpbnRcbiAgfCBGbG9hdCBvZiBmbG9hdFxuICB8IFN0cmluZyBvZiBzdHJpbmdcbiAgfCBDaGFyIG9mIGNoYXJcblxuKCogVGhlIHN0cmluZyBidWZmZXJpbmcgbWFjaGluZXJ5ICopXG5cbmxldCBpbml0aWFsX2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAzMlxuXG5sZXQgYnVmZmVyID0gcmVmIGluaXRpYWxfYnVmZmVyXG5sZXQgYnVmcG9zID0gcmVmIDBcblxubGV0IHJlc2V0X2J1ZmZlciAoKSA9IGJ1ZmZlciA6PSBpbml0aWFsX2J1ZmZlcjsgYnVmcG9zIDo9IDBcblxubGV0IHN0b3JlIGMgPVxuICBpZiAhYnVmcG9zID49IEJ5dGVzLmxlbmd0aCAhYnVmZmVyIHRoZW4gYmVnaW5cbiAgICBsZXQgbmV3YnVmZmVyID0gQnl0ZXMuY3JlYXRlICgyICogIWJ1ZnBvcykgaW5cbiAgICBCeXRlcy5ibGl0ICFidWZmZXIgMCBuZXdidWZmZXIgMCAhYnVmcG9zO1xuICAgIGJ1ZmZlciA6PSBuZXdidWZmZXJcbiAgZW5kO1xuICBCeXRlcy5zZXQgIWJ1ZmZlciAhYnVmcG9zIGM7XG4gIGluY3IgYnVmcG9zXG5cbmxldCBnZXRfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5zdWJfc3RyaW5nICFidWZmZXIgMCAhYnVmcG9zIGluIGJ1ZmZlciA6PSBpbml0aWFsX2J1ZmZlcjsgc1xuXG4oKiBUaGUgbGV4ZXIgKilcblxubGV0IG1ha2VfbGV4ZXIga2V5d29yZHMgPVxuICBsZXQga3dkX3RhYmxlID0gSGFzaHRibC5jcmVhdGUgMTcgaW5cbiAgTGlzdC5pdGVyIChmdW4gcyAtPiBIYXNodGJsLmFkZCBrd2RfdGFibGUgcyAoS3dkIHMpKSBrZXl3b3JkcztcbiAgbGV0IGlkZW50X29yX2tleXdvcmQgaWQgPVxuICAgIHRyeSBIYXNodGJsLmZpbmQga3dkX3RhYmxlIGlkIHdpdGhcbiAgICAgIE5vdF9mb3VuZCAtPiBJZGVudCBpZFxuICBhbmQga2V5d29yZF9vcl9lcnJvciBjID1cbiAgICBsZXQgcyA9IFN0cmluZy5tYWtlIDEgYyBpblxuICAgIHRyeSBIYXNodGJsLmZpbmQga3dkX3RhYmxlIHMgd2l0aFxuICAgICAgTm90X2ZvdW5kIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgKFwiSWxsZWdhbCBjaGFyYWN0ZXIgXCIgXiBzKSlcbiAgaW5cbiAgbGV0IHJlYyBuZXh0X3Rva2VuIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcgJyB8ICdcXDAxMCcgfCAnXFwwMTMnIHwgJ1xcMDA5JyB8ICdcXDAyNicgfCAnXFwwMTInKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IG5leHRfdG9rZW4gc3RybV9fXG4gICAgfCBTb21lICgnQScuLidaJyB8ICdhJy4uJ3onIHwgJ18nIHwgJ1xcMTkyJy4uJ1xcMjU1JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgaWRlbnQgc1xuICAgIHwgU29tZVxuICAgICAgICAoJyEnIHwgJyUnIHwgJyYnIHwgJyQnIHwgJyMnIHwgJysnIHwgJy8nIHwgJzonIHwgJzwnIHwgJz0nIHwgJz4nIHxcbiAgICAgICAgICc/JyB8ICdAJyB8ICdcXFxcJyB8ICd+JyB8ICdeJyB8ICd8JyB8ICcqJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgaWRlbnQyIHNcbiAgICB8IFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgU29tZSAnXFwnJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBjID1cbiAgICAgICAgICB0cnkgY2hhciBzdHJtX18gd2l0aFxuICAgICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBpblxuICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgIFNvbWUgJ1xcJycgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBTb21lIChDaGFyIGMpXG4gICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSAnXFxcIicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IFNvbWUgKFN0cmluZyAoc3RyaW5nIHMpKVxuICAgIHwgU29tZSAnLScgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBuZWdfbnVtYmVyIHN0cm1fX1xuICAgIHwgU29tZSAnKCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgU29tZSAoa2V5d29yZF9vcl9lcnJvciBjKVxuICAgIHwgXyAtPiBOb25lXG4gIGFuZCBpZGVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lXG4gICAgICAgICgnQScuLidaJyB8ICdhJy4uJ3onIHwgJ1xcMTkyJy4uJ1xcMjU1JyB8ICcwJy4uJzknIHwgJ18nIHwgJ1xcJycgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBpZGVudCBzXG4gICAgfCBfIC0+IFNvbWUgKGlkZW50X29yX2tleXdvcmQgKGdldF9zdHJpbmcgKCkpKVxuICBhbmQgaWRlbnQyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWVcbiAgICAgICAgKCchJyB8ICclJyB8ICcmJyB8ICckJyB8ICcjJyB8ICcrJyB8ICctJyB8ICcvJyB8ICc6JyB8ICc8JyB8ICc9JyB8XG4gICAgICAgICAnPicgfCAnPycgfCAnQCcgfCAnXFxcXCcgfCAnficgfCAnXicgfCAnfCcgfCAnKicgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBpZGVudDIgc1xuICAgIHwgXyAtPiBTb21lIChpZGVudF9vcl9rZXl3b3JkIChnZXRfc3RyaW5nICgpKSlcbiAgYW5kIG5lZ19udW1iZXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlICctJzsgc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IF8gLT4gbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSAnLSc7IGlkZW50MiBzXG4gIGFuZCBudW1iZXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgU29tZSAnLicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnLic7IGRlY2ltYWxfcGFydCBzXG4gICAgfCBTb21lICgnZScgfCAnRScpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJ0UnOyBleHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoSW50IChpbnRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBkZWNpbWFsX3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBkZWNpbWFsX3BhcnQgc1xuICAgIHwgU29tZSAoJ2UnIHwgJ0UnKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICdFJzsgZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIGV4cG9uZW50X3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJysnIHwgJy0nIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZW5kX2V4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBlbmRfZXhwb25lbnRfcGFydCBzdHJtX19cbiAgYW5kIGVuZF9leHBvbmVudF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZW5kX2V4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBzdHJpbmcgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnXFxcIicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBnZXRfc3RyaW5nICgpXG4gICAgfCBTb21lICdcXFxcJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBjID1cbiAgICAgICAgICB0cnkgZXNjYXBlIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGluXG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IHN0cmluZyBzXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBzdHJpbmcgc1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgY2hhciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICdcXFxcJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGJlZ2luIHRyeSBlc2NhcGUgc3RybV9fIHdpdGhcbiAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgZXNjYXBlIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ24nIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xcbidcbiAgICB8IFNvbWUgJ3InIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xccidcbiAgICB8IFNvbWUgJ3QnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xcdCdcbiAgICB8IFNvbWUgKCcwJy4uJzknIGFzIGMxKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU29tZSAoJzAnLi4nOScgYXMgYzIpIC0+XG4gICAgICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgICAgICBTb21lICgnMCcuLic5JyBhcyBjMykgLT5cbiAgICAgICAgICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgICAgICAgICAgQ2hhci5jaHJcbiAgICAgICAgICAgICAgICAgICgoQ2hhci5jb2RlIGMxIC0gNDgpICogMTAwICsgKENoYXIuY29kZSBjMiAtIDQ4KSAqIDEwICtcbiAgICAgICAgICAgICAgICAgICAgIChDaGFyLmNvZGUgYzMgLSA0OCkpXG4gICAgICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcqJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIGNvbW1lbnQgczsgbmV4dF90b2tlbiBzXG4gICAgfCBfIC0+IFNvbWUgKGtleXdvcmRfb3JfZXJyb3IgJygnKVxuICBhbmQgY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcoJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX25lc3RlZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9lbmRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9uZXN0ZWRfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIGNvbW1lbnQgczsgY29tbWVudCBzXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfZW5kX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKScgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAoKVxuICAgIHwgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9lbmRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGluXG4gIGZ1biBpbnB1dCAtPiBTdHJlYW0uZnJvbSAoZnVuIF9jb3VudCAtPiBuZXh0X3Rva2VuIGlucHV0KVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMlwiXVxuXG5tb2R1bGUgdHlwZSBTZWVkZWRTID0gc2lnXG5cbiAgdHlwZSBrZXlcbiAgdHlwZSAhJ2EgdFxuICB2YWwgY3JlYXRlIDogP3JhbmRvbSAoKnRod2FydCB0b29scy9zeW5jX3N0ZGxpYl9kb2NzKikgOiBib29sIC0+IGludCAtPiAnYSB0XG4gIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICB2YWwgZmluZF9vcHQgOiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2UgOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIHZhbCBjbGVhbjogJ2EgdCAtPiB1bml0XG4gIHZhbCBzdGF0c19hbGl2ZTogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgICAoKiogc2FtZSBhcyB7IXN0YXRzfSBidXQgb25seSBjb3VudCB0aGUgYWxpdmUgYmluZGluZ3MgKilcbmVuZFxuXG5tb2R1bGUgdHlwZSBTID0gc2lnXG5cbiAgdHlwZSBrZXlcbiAgdHlwZSAhJ2EgdFxuICB2YWwgY3JlYXRlIDogaW50IC0+ICdhIHRcbiAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gIHZhbCBmaW5kX29wdCA6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZSA6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgdmFsIGNsZWFuOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHN0YXRzX2FsaXZlOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICAgICgqKiBzYW1lIGFzIHshc3RhdHN9IGJ1dCBvbmx5IGNvdW50IHRoZSBhbGl2ZSBiaW5kaW5ncyAqKVxuZW5kXG5cbm1vZHVsZSBHZW5IYXNoVGFibGUgPSBzdHJ1Y3RcblxuICB0eXBlIGVxdWFsID1cbiAgfCBFVHJ1ZSB8IEVGYWxzZVxuICB8IEVEZWFkICgqKiB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgcmVjbGFpbWVkIHRoZSBkYXRhICopXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQoSDogc2lnXG4gICAgdHlwZSB0XG4gICAgdHlwZSAnYSBjb250YWluZXJcbiAgICB2YWwgY3JlYXRlOiB0IC0+ICdhIC0+ICdhIGNvbnRhaW5lclxuICAgIHZhbCBoYXNoOiBpbnQgLT4gdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6ICdhIGNvbnRhaW5lciAtPiB0IC0+IGVxdWFsXG4gICAgdmFsIGdldF9kYXRhOiAnYSBjb250YWluZXIgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGdldF9rZXk6ICdhIGNvbnRhaW5lciAtPiB0IG9wdGlvblxuICAgIHZhbCBzZXRfa2V5X2RhdGE6ICdhIGNvbnRhaW5lciAtPiB0IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgY2hlY2tfa2V5OiAnYSBjb250YWluZXIgLT4gYm9vbFxuICBlbmQpIDogU2VlZGVkUyB3aXRoIHR5cGUga2V5ID0gSC50XG4gID0gc3RydWN0XG5cbiAgICB0eXBlICdhIHQgPVxuICAgICAgeyBtdXRhYmxlIHNpemU6IGludDsgICAgICAgICAgICAgICAgICAoKiBudW1iZXIgb2YgZW50cmllcyAqKVxuICAgICAgICBtdXRhYmxlIGRhdGE6ICdhIGJ1Y2tldGxpc3QgYXJyYXk7ICAoKiB0aGUgYnVja2V0cyAqKVxuICAgICAgICBzZWVkOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBmb3IgcmFuZG9taXphdGlvbiAqKVxuICAgICAgICBpbml0aWFsX3NpemU6IGludDsgICAgICAgICAgICAgICAgICAoKiBpbml0aWFsIGFycmF5IHNpemUgKilcbiAgICAgIH1cblxuICAgIGFuZCAnYSBidWNrZXRsaXN0ID1cbiAgICB8IEVtcHR5XG4gICAgfCBDb25zIG9mIGludCAoKiBoYXNoIG9mIHRoZSBrZXkgKikgKiAnYSBILmNvbnRhaW5lciAqICdhIGJ1Y2tldGxpc3RcblxuICAgICgqKiB0aGUgaGFzaCBvZiB0aGUga2V5IGlzIGtlcHQgaW4gb3JkZXIgdG8gdGVzdCB0aGUgZXF1YWxpdHkgb2YgdGhlIGhhc2hcbiAgICAgIGJlZm9yZSB0aGUga2V5LiBTYW1lIHJlYXNvbiBhcyBmb3IgV2Vhay5NYWtlICopXG5cbiAgICB0eXBlIGtleSA9IEgudFxuXG4gICAgbGV0IHJlYyBwb3dlcl8yX2Fib3ZlIHggbiA9XG4gICAgICBpZiB4ID49IG4gdGhlbiB4XG4gICAgICBlbHNlIGlmIHggKiAyID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiB4XG4gICAgICBlbHNlIHBvd2VyXzJfYWJvdmUgKHggKiAyKSBuXG5cbiAgICBsZXQgcHJuZyA9IGxhenkgKFJhbmRvbS5TdGF0ZS5tYWtlX3NlbGZfaW5pdCgpKVxuXG4gICAgbGV0IGNyZWF0ZSA/KHJhbmRvbSA9IChIYXNodGJsLmlzX3JhbmRvbWl6ZWQgKCkpKSBpbml0aWFsX3NpemUgPVxuICAgICAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IGluaXRpYWxfc2l6ZSBpblxuICAgICAgbGV0IHNlZWQgPSBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSBlbHNlIDAgaW5cbiAgICAgIHsgaW5pdGlhbF9zaXplID0gczsgc2l6ZSA9IDA7IHNlZWQgPSBzZWVkOyBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5IH1cblxuICAgIGxldCBjbGVhciBoID1cbiAgICAgIGguc2l6ZSA8LSAwO1xuICAgICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICAgIGguZGF0YS4oaSkgPC0gRW1wdHlcbiAgICAgIGRvbmVcblxuICAgIGxldCByZXNldCBoID1cbiAgICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gICAgICBpZiBsZW4gPSBoLmluaXRpYWxfc2l6ZSB0aGVuXG4gICAgICAgIGNsZWFyIGhcbiAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgaC5zaXplIDwtIDA7XG4gICAgICAgIGguZGF0YSA8LSBBcnJheS5tYWtlIGguaW5pdGlhbF9zaXplIEVtcHR5XG4gICAgICBlbmRcblxuICAgIGxldCBjb3B5IGggPSB7IGggd2l0aCBkYXRhID0gQXJyYXkuY29weSBoLmRhdGEgfVxuXG4gICAgbGV0IGtleV9pbmRleCBoIGhrZXkgPVxuICAgICAgaGtleSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcblxuICAgIGxldCBjbGVhbiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgRW1wdHlcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIHdoZW4gbm90IChILmNoZWNrX2tleSBjKSAtPlxuICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICB8IENvbnMoaGtleSwgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIENvbnMoaGtleSwgYywgZG9fYnVja2V0IHJlc3QpXG4gICAgICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZC4oaSkgPC0gZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICAoKiogcmVzaXplIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRvIGRvIHRoZSBhY3R1YWwgY2xlYW5pbmcgb2YgZGVhZCBrZXlzXG4gICAgICAgIChyZW1vdmUgZG9lcyBpdCBqdXN0IGJlY2F1c2UgaXQgY291bGQpLlxuXG4gICAgICAgIFRoZSBnb2FsIGlzIHRvOlxuXG4gICAgICAgIC0gbm90IHJlc2l6ZSBpbmZpbml0ZWx5IHdoZW4gdGhlIGFjdHVhbCBudW1iZXIgb2YgYWxpdmUga2V5cyBpc1xuICAgICAgICBib3VuZGVkIGJ1dCBrZXlzIGFyZSBjb250aW51b3VzbHkgYWRkZWQuIFRoYXQgd291bGQgaGFwcGVuIGlmXG4gICAgICAgIHRoaXMgZnVuY3Rpb24gYWx3YXlzIHJlc2l6ZS5cbiAgICAgICAgLSBub3QgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGVhY2ggYWRkaXRpb24sIHRoYXQgd291bGQgaGFwcGVuIGlmIHRoaXNcbiAgICAgICAgZnVuY3Rpb24gZG9uJ3QgcmVzaXplIGV2ZW4gd2hlbiBvbmx5IG9uZSBrZXkgaXMgZGVhZC5cblxuICAgICAgICBTbyB0aGUgYWxnb3JpdGhtOlxuICAgICAgICAtIGNsZWFuIHRoZSBrZXlzIGJlZm9yZSByZXNpemluZ1xuICAgICAgICAtIGlmIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIGtleXMgaXMgbGVzcyB0aGFuIGhhbGYgdGhlIHNpemUgb2YgdGhlXG4gICAgICAgIGFycmF5LCBkb24ndCByZXNpemUuXG4gICAgICAgIC0gaWYgaXQgaXMgbW9yZSwgcmVzaXplLlxuXG4gICAgICAgIFRoZSBzZWNvbmQgcHJvYmxlbSByZW1haW5zIGlmIHRoZSB0YWJsZSByZWFjaGVzIHshU3lzLm1heF9hcnJheV9sZW5ndGh9LlxuXG4gICAgKilcbiAgICBsZXQgcmVzaXplIGggPVxuICAgICAgbGV0IG9kYXRhID0gaC5kYXRhIGluXG4gICAgICBsZXQgb3NpemUgPSBBcnJheS5sZW5ndGggb2RhdGEgaW5cbiAgICAgIGxldCBuc2l6ZSA9IG9zaXplICogMiBpblxuICAgICAgY2xlYW4gaDtcbiAgICAgIGlmIG5zaXplIDwgU3lzLm1heF9hcnJheV9sZW5ndGggJiYgaC5zaXplID49IG9zaXplIGxzciAxIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IG5kYXRhID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICAgICAgICBoLmRhdGEgPC0gbmRhdGE7ICAgICAgICgqIHNvIHRoYXQga2V5X2luZGV4IHNlZXMgdGhlIG5ldyBidWNrZXQgY291bnQgKilcbiAgICAgICAgbGV0IHJlYyBpbnNlcnRfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICAgICAgfCBDb25zKGhrZXksIGRhdGEsIHJlc3QpIC0+XG4gICAgICAgICAgICAgIGluc2VydF9idWNrZXQgcmVzdDsgKCogcHJlc2VydmUgb3JpZ2luYWwgb3JkZXIgb2YgZWxlbWVudHMgKilcbiAgICAgICAgICAgICAgbGV0IG5pZHggPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICAgICAgICAgIG5kYXRhLihuaWR4KSA8LSBDb25zKGhrZXksIGRhdGEsIG5kYXRhLihuaWR4KSkgaW5cbiAgICAgICAgZm9yIGkgPSAwIHRvIG9zaXplIC0gMSBkb1xuICAgICAgICAgIGluc2VydF9idWNrZXQgb2RhdGEuKGkpXG4gICAgICAgIGRvbmVcbiAgICAgIGVuZFxuXG4gICAgbGV0IGFkZCBoIGtleSBpbmZvID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgbGV0IGNvbnRhaW5lciA9IEguY3JlYXRlIGtleSBpbmZvIGluXG4gICAgICBsZXQgYnVja2V0ID0gQ29ucyhoa2V5LCBjb250YWluZXIsIGguZGF0YS4oaSkpIGluXG4gICAgICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBoXG5cbiAgICBsZXQgcmVtb3ZlIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgcmVtb3ZlX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgICAgfCBDb25zKGhrLCBjLCBuZXh0KSB3aGVuIGhrZXkgPSBoayAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgICB8IEVUcnVlIC0+IGguc2l6ZSA8LSBoLnNpemUgLSAxOyBuZXh0XG4gICAgICAgICAgICB8IEVGYWxzZSAtPiBDb25zKGhrLCBjLCByZW1vdmVfYnVja2V0IG5leHQpXG4gICAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgICAgKCogVGhlIGRlYWQga2V5IGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC4gSXQgaXMgYWNjZXB0YWJsZVxuICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBmdW5jdGlvbiBzaW5jZSBpdCBhbHJlYWR5IHJlbW92ZXMgYSBiaW5kaW5nICopXG4gICAgICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICAgICAgcmVtb3ZlX2J1Y2tldCBuZXh0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBDb25zKGhrLGMsbmV4dCkgLT4gQ29ucyhoaywgYywgcmVtb3ZlX2J1Y2tldCBuZXh0KSBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBoLmRhdGEuKGkpIDwtIHJlbW92ZV9idWNrZXQgaC5kYXRhLihpKVxuXG4gICAgKCoqIHshZmluZH0gZG9uJ3QgcmVtb3ZlIGRlYWQga2V5cyBiZWNhdXNlIGl0IHdvdWxkIGJlIHN1cnByaXNpbmcgZm9yXG4gICAgICAgIHRoZSB1c2VyIHRoYXQgYSByZWFkLW9ubHkgZnVuY3Rpb24gbXV0YXRlcyB0aGUgc3RhdGUgKGVnLiBjb25jdXJyZW50XG4gICAgICAgIGFjY2VzcykuIFNhbWUgZm9yIHshaXRlcn0sIHshZm9sZH0sIHshbWVtfS5cbiAgICAqKVxuICAgIGxldCByZWMgZmluZF9yZWMga2V5IGhrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+XG4gICAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgKCogVGhpcyBjYXNlIGlzIG5vdCBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIGdjIGNhbiBydW4gYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgIEguZXF1YWwgYW5kIEguZ2V0X2RhdGEgKilcbiAgICAgICAgICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIGQgLT4gZFxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG5cbiAgICBsZXQgZmluZCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICAoKiBUT0RPIGlubGluZSAzIGl0ZXJhdGlvbnMgKilcbiAgICAgIGZpbmRfcmVjIGtleSBoa2V5IChoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpKVxuXG4gICAgbGV0IHJlYyBmaW5kX3JlY19vcHQga2V5IGhrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPlxuICAgICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICgqIFRoaXMgY2FzZSBpcyBub3QgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZSBnYyBjYW4gcnVuIGJldHdlZW5cbiAgICAgICAgICAgICAgICAgICAgICBILmVxdWFsIGFuZCBILmdldF9kYXRhICopXG4gICAgICAgICAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgXyBhcyBkIC0+IGRcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuXG4gICAgbGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgICgqIFRPRE8gaW5saW5lIDMgaXRlcmF0aW9ucyAqKVxuICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IChoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpKVxuXG4gICAgbGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBbXVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+IGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgZCAtPiBkOjpmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0IGluXG4gICAgICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpXG5cblxuICAgIGxldCByZXBsYWNlIGgga2V5IGluZm8gPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyByZXBsYWNlX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgIHwgQ29ucyhoaywgYywgbmV4dCkgd2hlbiBoa2V5ID0gaGsgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgICAgfCBFVHJ1ZSAtPiBILnNldF9rZXlfZGF0YSBjIGtleSBpbmZvXG4gICAgICAgICAgICB8IEVGYWxzZSB8IEVEZWFkIC0+IHJlcGxhY2VfYnVja2V0IG5leHRcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IENvbnMoXyxfLG5leHQpIC0+IHJlcGxhY2VfYnVja2V0IG5leHRcbiAgICAgIGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGxldCBsID0gaC5kYXRhLihpKSBpblxuICAgICAgdHJ5XG4gICAgICAgIHJlcGxhY2VfYnVja2V0IGxcbiAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgIGxldCBjb250YWluZXIgPSBILmNyZWF0ZSBrZXkgaW5mbyBpblxuICAgICAgICBoLmRhdGEuKGkpIDwtIENvbnMoaGtleSwgY29udGFpbmVyLCBsKTtcbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUgaFxuXG4gICAgbGV0IG1lbSBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGsgPSBoa2V5IC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPiB0cnVlXG4gICAgICAgICAgfCBFRmFsc2UgfCBFRGVhZCAtPiBtZW1faW5fYnVja2V0IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfaGssIF9jLCByZXN0KSAtPiBtZW1faW5fYnVja2V0IHJlc3QgaW5cbiAgICAgIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KVxuXG4gICAgbGV0IGl0ZXIgZiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgKClcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gKClcbiAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT4gZiBrIGRcbiAgICAgICAgICAgIGVuZDsgZG9fYnVja2V0IHJlc3QgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgbGV0IGZvbGQgZiBoIGluaXQgPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgYiBhY2N1ID1cbiAgICAgICAgbWF0Y2ggYiB3aXRoXG4gICAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAgIGFjY3VcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBsZXQgYWNjdSA9IGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+IGFjY3VcbiAgICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPiBmIGsgZCBhY2N1XG4gICAgICAgICAgICBlbmQgaW5cbiAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0IGFjY3UgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgbGV0IGFjY3UgPSByZWYgaW5pdCBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBhY2N1IDo9IGRvX2J1Y2tldCBkLihpKSAhYWNjdVxuICAgICAgZG9uZTtcbiAgICAgICFhY2N1XG5cbiAgICBsZXQgZmlsdGVyX21hcF9pbnBsYWNlIGYgaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIEVtcHR5XG4gICAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPlxuICAgICAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+XG4gICAgICAgICAgICAgICAgbWF0Y2ggZiBrIGQgd2l0aFxuICAgICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICAgICAgICAgIHwgU29tZSBuZXdfZCAtPlxuICAgICAgICAgICAgICAgICAgICBILnNldF9rZXlfZGF0YSBjIGsgbmV3X2Q7XG4gICAgICAgICAgICAgICAgICAgIENvbnMoaGssIGMsIGRvX2J1Y2tldCByZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGQuKGkpIDwtIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgbGV0IGxlbmd0aCBoID0gaC5zaXplXG5cbiAgICBsZXQgcmVjIGJ1Y2tldF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPiBidWNrZXRfbGVuZ3RoIChhY2N1ICsgMSkgcmVzdFxuXG4gICAgbGV0IHN0YXRzIGggPVxuICAgICAgbGV0IG1ibCA9XG4gICAgICAgIEFycmF5LmZvbGRfbGVmdCAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGggMCBiKSkgMCBoLmRhdGEgaW5cbiAgICAgIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgICAgIEFycmF5Lml0ZXJcbiAgICAgICAgKGZ1biBiIC0+XG4gICAgICAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aCAwIGIgaW5cbiAgICAgICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgICAgIGguZGF0YTtcbiAgICAgIHsgSGFzaHRibC5udW1fYmluZGluZ3MgPSBoLnNpemU7XG4gICAgICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICAgICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbiAgICBsZXQgcmVjIGJ1Y2tldF9sZW5ndGhfYWxpdmUgYWNjdSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSB3aGVuIEguY2hlY2tfa2V5IGMgLT5cbiAgICAgICAgICBidWNrZXRfbGVuZ3RoX2FsaXZlIChhY2N1ICsgMSkgcmVzdFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+IGJ1Y2tldF9sZW5ndGhfYWxpdmUgYWNjdSByZXN0XG5cbiAgICBsZXQgc3RhdHNfYWxpdmUgaCA9XG4gICAgICBsZXQgc2l6ZSA9IHJlZiAwIGluXG4gICAgICBsZXQgbWJsID1cbiAgICAgICAgQXJyYXkuZm9sZF9sZWZ0XG4gICAgICAgICAgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoX2FsaXZlIDAgYikpIDAgaC5kYXRhXG4gICAgICBpblxuICAgICAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICAgICAgQXJyYXkuaXRlclxuICAgICAgICAoZnVuIGIgLT5cbiAgICAgICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoX2FsaXZlIDAgYiBpblxuICAgICAgICAgICBzaXplIDo9ICFzaXplICsgbDtcbiAgICAgICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgICAgIGguZGF0YTtcbiAgICAgIHsgSGFzaHRibC5udW1fYmluZGluZ3MgPSAhc2l6ZTtcbiAgICAgICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgICAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICAgICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuICAgIGxldCB0b19zZXEgdGJsID1cbiAgICAgICgqIGNhcHR1cmUgY3VycmVudCBhcnJheSwgc28gdGhhdCBldmVuIGlmIHRoZSB0YWJsZSBpcyByZXNpemVkIHdlXG4gICAgICAgICBrZWVwIGl0ZXJhdGluZyBvbiB0aGUgc2FtZSBhcnJheSAqKVxuICAgICAgbGV0IHRibF9kYXRhID0gdGJsLmRhdGEgaW5cbiAgICAgICgqIHN0YXRlOiBpbmRleCAqIG5leHQgYnVja2V0IHRvIHRyYXZlcnNlICopXG4gICAgICBsZXQgcmVjIGF1eCBpIGJ1Y2sgKCkgPSBtYXRjaCBidWNrIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgaWYgaSA9IEFycmF5Lmxlbmd0aCB0YmxfZGF0YVxuICAgICAgICAgICAgdGhlbiBTZXEuTmlsXG4gICAgICAgICAgICBlbHNlIGF1eChpKzEpIHRibF9kYXRhLihpKSAoKVxuICAgICAgICB8IENvbnMgKF8sIGMsIG5leHQpIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiBhdXggaSBuZXh0ICgpXG4gICAgICAgICAgICAgIHwgU29tZSBrZXksIFNvbWUgZGF0YSAtPlxuICAgICAgICAgICAgICAgICAgU2VxLkNvbnMgKChrZXksIGRhdGEpLCBhdXggaSBuZXh0KVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgYXV4IDAgRW1wdHlcblxuICAgIGxldCB0b19zZXFfa2V5cyBtID0gU2VxLm1hcCBmc3QgKHRvX3NlcSBtKVxuXG4gICAgbGV0IHRvX3NlcV92YWx1ZXMgbSA9IFNlcS5tYXAgc25kICh0b19zZXEgbSlcblxuICAgIGxldCBhZGRfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxuICAgIGxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG5cbiAgZW5kXG5lbmRcblxubW9kdWxlIE9iakVwaCA9IE9iai5FcGhlbWVyb25cblxubGV0IF9vYmpfb3B0IDogT2JqLnQgb3B0aW9uIC0+ICdhIG9wdGlvbiA9IGZ1biB4IC0+XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4geFxuICB8IFNvbWUgdiAtPiBTb21lIChPYmoub2JqIHYpXG5cbigqKiBUaGUgcHJldmlvdXMgZnVuY3Rpb24gaXMgdHlwZWQgc28gdGhpcyBvbmUgaXMgYWxzbyBjb3JyZWN0ICopXG5sZXQgb2JqX29wdCA6IE9iai50IG9wdGlvbiAtPiAnYSBvcHRpb24gPSBmdW4geCAtPiBPYmoubWFnaWMgeFxuXG5cbm1vZHVsZSBLMSA9IHN0cnVjdFxuICB0eXBlICgnaywnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSAoKSA6ICgnaywnZCkgdCA9IE9iakVwaC5jcmVhdGUgMVxuXG4gIGxldCBnZXRfa2V5ICh0OignaywnZCkgdCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDApXG4gIGxldCBnZXRfa2V5X2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAwKVxuICBsZXQgc2V0X2tleSAodDooJ2ssJ2QpIHQpIChrOidrKSA6IHVuaXQgPSBPYmpFcGguc2V0X2tleSB0IDAgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMFxuICBsZXQgY2hlY2tfa2V5ICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDBcblxuICBsZXQgYmxpdF9rZXkgKHQxOignaywnZCkgdCkgKHQyOignaywnZCkgdCk6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMVxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSAoZDonZCkgOiB1bml0ID0gT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sJ2QpIHQpICh0MjooXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleSBkYXRhID1cbiAgICBsZXQgZXBoID0gY3JlYXRlICgpIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgc2V0X2tleSBlcGgga2V5O1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5ID1cbiAgICBtYXRjaCBnZXRfa2V5IGVwaCB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5IC0+IGdldF9kYXRhIGVwaFxuICAgIHwgU29tZSBfIC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZCAoSDpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSC50XG4gICAgICBsZXQgY3JlYXRlIGsgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlICgpIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgc2V0X2tleSBjIGs7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoID0gSC5oYXNoXG4gICAgICBsZXQgZXF1YWwgYyBrID1cbiAgICAgICAgKCogeyFnZXRfa2V5X2NvcHl9IGlzIG5vdCB1c2VkIGJlY2F1c2UgdGhlIGVxdWFsaXR5IG9mIHRoZSB1c2VyIGNhbiBiZVxuICAgICAgICAgICAgdGhlIHBoeXNpY2FsIGVxdWFsaXR5ICopXG4gICAgICAgIG1hdGNoIGdldF9rZXkgYyB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgfCBTb21lIGsnIC0+XG4gICAgICAgICAgICBpZiBILmVxdWFsIGsgaycgdGhlbiBHZW5IYXNoVGFibGUuRVRydWUgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgPSBnZXRfa2V5XG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgayBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBzZXRfa2V5IGMgaztcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5ID0gY2hlY2tfa2V5XG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEg6IEhhc2h0YmwuSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnaywgJ2QpIHQgPSAoJ2ssICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGsxX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgayBkID0gYiA6PSBrMV9tYWtlIGsgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5IGsgZSA9XG4gICAgICBtYXRjaCBnZXRfa2V5IGUgd2l0aFxuICAgICAgfCBTb21lIHggd2hlbiB4ID09IGsgLT4gdHJ1ZVxuICAgICAgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgayA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5IGsgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgayA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleSBrKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG5cbm1vZHVsZSBLMiA9IHN0cnVjdFxuICB0eXBlICgnazEsICdrMiwgJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgKCkgOiAoJ2sxLCdrMiwnZCkgdCA9IE9iakVwaC5jcmVhdGUgMlxuXG4gIGxldCBnZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazEgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAwKVxuICBsZXQgZ2V0X2tleTFfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazEgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMClcbiAgbGV0IHNldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSAoazonazEpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCAwIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDBcbiAgbGV0IGNoZWNrX2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAwXG5cbiAgbGV0IGdldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSA6ICdrMiBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDEpXG4gIGxldCBnZXRfa2V5Ml9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdrMiBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAxKVxuICBsZXQgc2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIChrOidrMikgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IDEgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMVxuICBsZXQgY2hlY2tfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDFcblxuXG4gIGxldCBibGl0X2tleTEgKHQxOignazEsXyxfKSB0KSAodDI6KCdrMSxfLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAxXG4gIGxldCBibGl0X2tleTIgKHQxOihfLCdrMixfKSB0KSAodDI6KF8sJ2syLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDEgdDIgMSAxXG4gIGxldCBibGl0X2tleTEyICh0MTooJ2sxLCdrMixfKSB0KSAodDI6KCdrMSwnazIsXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDJcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdkIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSAoZDonZCkgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sXywnZCkgdCkgKHQyOihfLF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXkxIGtleTIgZGF0YSA9XG4gICAgbGV0IGVwaCA9IGNyZWF0ZSAoKSBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIHNldF9rZXkxIGVwaCBrZXkxO1xuICAgIHNldF9rZXkyIGVwaCBrZXkyO1xuICAgIGlnbm9yZSAoU3lzLm9wYXF1ZV9pZGVudGl0eSBrZXkxKTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleTEga2V5MiA9XG4gICAgbWF0Y2ggZ2V0X2tleTEgZXBoIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkxIC0+XG4gICAgICAgIGJlZ2luIG1hdGNoIGdldF9rZXkyIGVwaCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkyIC0+IGdldF9kYXRhIGVwaFxuICAgICAgICB8IFNvbWUgXyAtPiBOb25lXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBfIC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZFxuICAgICAgKEgxOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSlcbiAgICAgIChIMjpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgxLnQsSDIudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSDEudCAqIEgyLnRcbiAgICAgIGxldCBjcmVhdGUgKGsxLGsyKSBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKCkgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBzZXRfa2V5MSBjIGsxOyBzZXRfa2V5MiBjIGsyO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCBzZWVkIChrMSxrMikgPVxuICAgICAgICBIMS5oYXNoIHNlZWQgazEgKyBIMi5oYXNoIHNlZWQgazIgKiA2NTU5OVxuICAgICAgbGV0IGVxdWFsIGMgKGsxLGsyKSA9XG4gICAgICAgIG1hdGNoIGdldF9rZXkxIGMsIGdldF9rZXkyIGMgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gfCBfICwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgfCBTb21lIGsxJywgU29tZSBrMicgLT5cbiAgICAgICAgICAgIGlmIEgxLmVxdWFsIGsxIGsxJyAmJiBIMi5lcXVhbCBrMiBrMidcbiAgICAgICAgICAgIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5IGMgPVxuICAgICAgICBtYXRjaCBnZXRfa2V5MSBjLCBnZXRfa2V5MiBjIHdpdGhcbiAgICAgICAgfCBOb25lLCBfIHwgXyAsIE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgazEnLCBTb21lIGsyJyAtPiBTb21lIChrMScsIGsyJylcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyAoazEsazIpIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIHNldF9rZXkxIGMgazE7IHNldF9rZXkyIGMgazI7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSBjID0gY2hlY2tfa2V5MSBjICYmIGNoZWNrX2tleTIgY1xuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIMTogSGFzaHRibC5IYXNoZWRUeXBlKShIMjogSGFzaHRibC5IYXNoZWRUeXBlKTpcbiAgICAoUyB3aXRoIHR5cGUga2V5ID0gSDEudCAqIEgyLnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkXG4gICAgICAgIChzdHJ1Y3RcbiAgICAgICAgICB0eXBlIHQgPSBIMS50XG4gICAgICAgICAgbGV0IGVxdWFsID0gSDEuZXF1YWxcbiAgICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEgxLmhhc2ggeFxuICAgICAgICBlbmQpXG4gICAgICAgIChzdHJ1Y3RcbiAgICAgICAgICB0eXBlIHQgPSBIMi50XG4gICAgICAgICAgbGV0IGVxdWFsID0gSDIuZXF1YWxcbiAgICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEgyLmhhc2ggeFxuICAgICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnazEsICdrMiwgJ2QpIHQgPSAoJ2sxLCAnazIsICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGsyX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgazEgazIgZCA9IGIgOj0gazJfbWFrZSBrMSBrMiBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXlzIGsxIGsyIGUgPVxuICAgICAgbWF0Y2ggZ2V0X2tleTEgZSwgZ2V0X2tleTIgZSB3aXRoXG4gICAgICB8IFNvbWUgeDEsIFNvbWUgeDIgd2hlbiB4MSA9PSBrMSAmJiB4MiA9PSBrMiAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrMSBrMiA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5cyBrMSBrMiBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrMSBrMiA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleXMgazEgazIpICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcblxubW9kdWxlIEtuID0gc3RydWN0XG4gIHR5cGUgKCdrLCdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlIG4gOiAoJ2ssJ2QpIHQgPSBPYmpFcGguY3JlYXRlIG5cbiAgbGV0IGxlbmd0aCAoazooJ2ssJ2QpIHQpIDogaW50ID0gT2JqRXBoLmxlbmd0aCBrXG5cbiAgbGV0IGdldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCBuKVxuICBsZXQgZ2V0X2tleV9jb3B5ICh0OignaywnZCkgdCkgKG46aW50KSA6ICdrIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IG4pXG4gIGxldCBzZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSAoazonaykgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IG4gKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCBuXG4gIGxldCBjaGVja19rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCBuXG5cbiAgbGV0IGJsaXRfa2V5ICh0MTooJ2ssJ2QpIHQpIChvMTppbnQpICh0MjooJ2ssJ2QpIHQpIChvMjppbnQpIChsOmludCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgbzEgdDIgbzIgbFxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSAoZDonZCkgOiB1bml0ID0gT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sJ2QpIHQpICh0MjooXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleXMgZGF0YSA9XG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGgga2V5cyBpblxuICAgIGxldCBlcGggPSBjcmVhdGUgbCBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyBzZXRfa2V5IGVwaCBpIGtleXMuKGkpIGRvbmU7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXlzID1cbiAgICBsZXQgbCA9IGxlbmd0aCBlcGggaW5cbiAgICB0cnlcbiAgICAgIGlmIGwgPD4gQXJyYXkubGVuZ3RoIGtleXMgdGhlbiByYWlzZSBFeGl0O1xuICAgICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICAgIG1hdGNoIGdldF9rZXkgZXBoIGkgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gcmFpc2UgRXhpdFxuICAgICAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5cy4oaSkgLT4gKClcbiAgICAgICAgfCBTb21lIF8gLT4gcmFpc2UgRXhpdFxuICAgICAgZG9uZTtcbiAgICAgIGdldF9kYXRhIGVwaFxuICAgIHdpdGggRXhpdCAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQgKEg6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChILnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgudCBhcnJheVxuICAgICAgbGV0IGNyZWF0ZSBrIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoQXJyYXkubGVuZ3RoIGspIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIHNldF9rZXkgYyBpIGsuKGkpO1xuICAgICAgICBkb25lO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCBzZWVkIGsgPVxuICAgICAgICBsZXQgaCA9IHJlZiAwIGluXG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBoIDo9IEguaGFzaCBzZWVkIGsuKGkpICogNjU1OTkgKyAhaDtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgIWhcbiAgICAgIGxldCBlcXVhbCBjIGsgPVxuICAgICAgICBsZXQgbGVuICA9IEFycmF5Lmxlbmd0aCBrIGluXG4gICAgICAgIGxldCBsZW4nID0gbGVuZ3RoIGMgaW5cbiAgICAgICAgaWYgbGVuICE9IGxlbicgdGhlbiBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgcmVjIGVxdWFsX2FycmF5IGsgYyBpID1cbiAgICAgICAgICAgIGlmIGkgPCAwIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyBpIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICAgICAgICB8IFNvbWUga2kgLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwgay4oaSkga2lcbiAgICAgICAgICAgICAgICAgIHRoZW4gZXF1YWxfYXJyYXkgayBjIChpLTEpXG4gICAgICAgICAgICAgICAgICBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgICAgICBpblxuICAgICAgICAgIGVxdWFsX2FycmF5IGsgYyAobGVuLTEpXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgYyA9XG4gICAgICAgIGxldCBsZW4gPSBsZW5ndGggYyBpblxuICAgICAgICBpZiBsZW4gPSAwIHRoZW4gU29tZSBbfHxdXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgMCB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgazAgLT5cbiAgICAgICAgICAgICAgbGV0IHJlYyBmaWxsIGEgaSA9XG4gICAgICAgICAgICAgICAgaWYgaSA8IDEgdGhlbiBTb21lIGFcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgaSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgICAgICAgICAgfCBTb21lIGtpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgYS4oaSkgPC0ga2k7XG4gICAgICAgICAgICAgICAgICAgICAgZmlsbCBhIChpLTEpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBhID0gQXJyYXkubWFrZSBsZW4gazAgaW5cbiAgICAgICAgICAgICAgZmlsbCBhIChsZW4tMSlcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyBrIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBzZXRfa2V5IGMgaSBrLihpKTtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5IGMgPVxuICAgICAgICBsZXQgcmVjIGNoZWNrIGMgaSA9XG4gICAgICAgICAgaSA8IDAgfHwgKGNoZWNrX2tleSBjIGkgJiYgY2hlY2sgYyAoaS0xKSkgaW5cbiAgICAgICAgY2hlY2sgYyAobGVuZ3RoIGMgLSAxKVxuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIOiBIYXNodGJsLkhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50IGFycmF5KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2ssICdkKSB0ID0gKCdrLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrbl9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsgZCA9IGIgOj0ga25fbWFrZSBrIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleXMgayBlID1cbiAgICAgIHRyeVxuICAgICAgICBpZiBsZW5ndGggZSA8PiBBcnJheS5sZW5ndGggayB0aGVuIHJhaXNlIEV4aXQ7XG4gICAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggayAtIDEgZG9cbiAgICAgICAgICBtYXRjaCBnZXRfa2V5IGUgaSB3aXRoXG4gICAgICAgICAgfCBTb21lIHggd2hlbiB4ID09IGsuKGkpIC0+ICgpXG4gICAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICAgICAgZG9uZTtcbiAgICAgICAgdHJ1ZVxuICAgICAgd2l0aCBFeGl0IC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgayA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5cyBrIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXlzIGspICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBNYW51ZWwgU2VycmFubyBldCBYYXZpZXIgTGVyb3ksIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDAgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtCaWdhcnJheV06IGxhcmdlLCBtdWx0aS1kaW1lbnNpb25hbCwgbnVtZXJpY2FsIGFycmF5cyAqKVxuXG4oKiBUaGVzZSB0eXBlcyBpbiBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0YWJsZXMgaW5cbiAgIC4uL3R5cGluZy90eXBlb3B0Lm1sICopXG5cbnR5cGUgZmxvYXQzMl9lbHQgPSBGbG9hdDMyX2VsdFxudHlwZSBmbG9hdDY0X2VsdCA9IEZsb2F0NjRfZWx0XG50eXBlIGludDhfc2lnbmVkX2VsdCA9IEludDhfc2lnbmVkX2VsdFxudHlwZSBpbnQ4X3Vuc2lnbmVkX2VsdCA9IEludDhfdW5zaWduZWRfZWx0XG50eXBlIGludDE2X3NpZ25lZF9lbHQgPSBJbnQxNl9zaWduZWRfZWx0XG50eXBlIGludDE2X3Vuc2lnbmVkX2VsdCA9IEludDE2X3Vuc2lnbmVkX2VsdFxudHlwZSBpbnQzMl9lbHQgPSBJbnQzMl9lbHRcbnR5cGUgaW50NjRfZWx0ID0gSW50NjRfZWx0XG50eXBlIGludF9lbHQgPSBJbnRfZWx0XG50eXBlIG5hdGl2ZWludF9lbHQgPSBOYXRpdmVpbnRfZWx0XG50eXBlIGNvbXBsZXgzMl9lbHQgPSBDb21wbGV4MzJfZWx0XG50eXBlIGNvbXBsZXg2NF9lbHQgPSBDb21wbGV4NjRfZWx0XG5cbnR5cGUgKCdhLCAnYikga2luZCA9XG4gICAgRmxvYXQzMiA6IChmbG9hdCwgZmxvYXQzMl9lbHQpIGtpbmRcbiAgfCBGbG9hdDY0IDogKGZsb2F0LCBmbG9hdDY0X2VsdCkga2luZFxuICB8IEludDhfc2lnbmVkIDogKGludCwgaW50OF9zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50OF91bnNpZ25lZCA6IChpbnQsIGludDhfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MTZfc2lnbmVkIDogKGludCwgaW50MTZfc2lnbmVkX2VsdCkga2luZFxuICB8IEludDE2X3Vuc2lnbmVkIDogKGludCwgaW50MTZfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MzIgOiAoaW50MzIsIGludDMyX2VsdCkga2luZFxuICB8IEludDY0IDogKGludDY0LCBpbnQ2NF9lbHQpIGtpbmRcbiAgfCBJbnQgOiAoaW50LCBpbnRfZWx0KSBraW5kXG4gIHwgTmF0aXZlaW50IDogKG5hdGl2ZWludCwgbmF0aXZlaW50X2VsdCkga2luZFxuICB8IENvbXBsZXgzMiA6IChDb21wbGV4LnQsIGNvbXBsZXgzMl9lbHQpIGtpbmRcbiAgfCBDb21wbGV4NjQgOiAoQ29tcGxleC50LCBjb21wbGV4NjRfZWx0KSBraW5kXG4gIHwgQ2hhciA6IChjaGFyLCBpbnQ4X3Vuc2lnbmVkX2VsdCkga2luZFxuXG50eXBlIGNfbGF5b3V0ID0gQ19sYXlvdXRfdHlwXG50eXBlIGZvcnRyYW5fbGF5b3V0ID0gRm9ydHJhbl9sYXlvdXRfdHlwICgqKilcblxudHlwZSAnYSBsYXlvdXQgPVxuICAgIENfbGF5b3V0OiBjX2xheW91dCBsYXlvdXRcbiAgfCBGb3J0cmFuX2xheW91dDogZm9ydHJhbl9sYXlvdXQgbGF5b3V0XG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9raW5kIGVudW1lcmF0aW9uXG4gICBpbiBiaWdhcnJheS5oICopXG5cbmxldCBmbG9hdDMyID0gRmxvYXQzMlxubGV0IGZsb2F0NjQgPSBGbG9hdDY0XG5sZXQgaW50OF9zaWduZWQgPSBJbnQ4X3NpZ25lZFxubGV0IGludDhfdW5zaWduZWQgPSBJbnQ4X3Vuc2lnbmVkXG5sZXQgaW50MTZfc2lnbmVkID0gSW50MTZfc2lnbmVkXG5sZXQgaW50MTZfdW5zaWduZWQgPSBJbnQxNl91bnNpZ25lZFxubGV0IGludDMyID0gSW50MzJcbmxldCBpbnQ2NCA9IEludDY0XG5sZXQgaW50ID0gSW50XG5sZXQgbmF0aXZlaW50ID0gTmF0aXZlaW50XG5sZXQgY29tcGxleDMyID0gQ29tcGxleDMyXG5sZXQgY29tcGxleDY0ID0gQ29tcGxleDY0XG5sZXQgY2hhciA9IENoYXJcblxubGV0IGtpbmRfc2l6ZV9pbl9ieXRlcyA6IHR5cGUgYSBiLiAoYSwgYikga2luZCAtPiBpbnQgPSBmdW5jdGlvblxuICB8IEZsb2F0MzIgLT4gNFxuICB8IEZsb2F0NjQgLT4gOFxuICB8IEludDhfc2lnbmVkIC0+IDFcbiAgfCBJbnQ4X3Vuc2lnbmVkIC0+IDFcbiAgfCBJbnQxNl9zaWduZWQgLT4gMlxuICB8IEludDE2X3Vuc2lnbmVkIC0+IDJcbiAgfCBJbnQzMiAtPiA0XG4gIHwgSW50NjQgLT4gOFxuICB8IEludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IE5hdGl2ZWludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IENvbXBsZXgzMiAtPiA4XG4gIHwgQ29tcGxleDY0IC0+IDE2XG4gIHwgQ2hhciAtPiAxXG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9sYXlvdXQgZW51bWVyYXRpb25cbiAgIGluIGJpZ2FycmF5LmggKilcblxubGV0IGNfbGF5b3V0ID0gQ19sYXlvdXRcbmxldCBmb3J0cmFuX2xheW91dCA9IEZvcnRyYW5fbGF5b3V0XG5cbm1vZHVsZSBHZW5hcnJheSA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0XG4gIGV4dGVybmFsIGNyZWF0ZTogKCdhLCAnYikga2luZCAtPiAnYyBsYXlvdXQgLT4gaW50IGFycmF5IC0+ICgnYSwgJ2IsICdjKSB0XG4gICAgID0gXCJjYW1sX2JhX2NyZWF0ZVwiXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IGFycmF5IC0+ICdhXG4gICAgID0gXCJjYW1sX2JhX2dldF9nZW5lcmljXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgYXJyYXkgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9zZXRfZ2VuZXJpY1wiXG5cbiAgbGV0IHJlYyBjbG9vcCBhcnIgaWR4IGYgY29sIG1heCA9XG4gICAgaWYgY29sID0gQXJyYXkubGVuZ3RoIGlkeCB0aGVuIHNldCBhcnIgaWR4IChmIGlkeClcbiAgICBlbHNlIGZvciBqID0gMCB0byBwcmVkIG1heC4oY29sKSBkb1xuICAgICAgICAgICBpZHguKGNvbCkgPC0gajtcbiAgICAgICAgICAgY2xvb3AgYXJyIGlkeCBmIChzdWNjIGNvbCkgbWF4XG4gICAgICAgICBkb25lXG4gIGxldCByZWMgZmxvb3AgYXJyIGlkeCBmIGNvbCBtYXggPVxuICAgIGlmIGNvbCA8IDAgdGhlbiBzZXQgYXJyIGlkeCAoZiBpZHgpXG4gICAgZWxzZSBmb3IgaiA9IDEgdG8gbWF4Lihjb2wpIGRvXG4gICAgICAgICAgIGlkeC4oY29sKSA8LSBqO1xuICAgICAgICAgICBmbG9vcCBhcnIgaWR4IGYgKHByZWQgY29sKSBtYXhcbiAgICAgICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbXMgZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW1zIGluXG4gICAgbWF0Y2ggQXJyYXkubGVuZ3RoIGRpbXMsIGxheW91dCB3aXRoXG4gICAgfCAwLCBfIC0+IGFyclxuICAgIHwgZGxlbiwgQ19sYXlvdXQgLT4gY2xvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMCkgZiAwIGRpbXM7IGFyclxuICAgIHwgZGxlbiwgRm9ydHJhbl9sYXlvdXQgLT4gZmxvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMSkgZiAocHJlZCBkbGVuKSBkaW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyXG5cbiAgZXh0ZXJuYWwgbnVtX2RpbXM6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiY2FtbF9iYV9udW1fZGltc1wiXG4gIGV4dGVybmFsIG50aF9kaW06ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfYmFfZGltXCJcbiAgbGV0IGRpbXMgYSA9XG4gICAgbGV0IG4gPSBudW1fZGltcyBhIGluXG4gICAgbGV0IGQgPSBBcnJheS5tYWtlIG4gMCBpblxuICAgIGZvciBpID0gMCB0byBuLTEgZG8gZC4oaSkgPC0gbnRoX2RpbSBhIGkgZG9uZTtcbiAgICBkXG5cbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChBcnJheS5mb2xkX2xlZnQgKCAqICkgMSAoZGltcyBhcnIpKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzbGljZV9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc2xpY2VcIlxuICBleHRlcm5hbCBzbGljZV9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IGFycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3NsaWNlXCJcbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbmVuZFxuXG5tb2R1bGUgQXJyYXkwID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0ID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3x8XVxuICBsZXQgZ2V0IGFyciA9IEdlbmFycmF5LmdldCBhcnIgW3x8XVxuICBsZXQgc2V0IGFyciA9IEdlbmFycmF5LnNldCBhcnIgW3x8XVxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9IGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpXG5cbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcblxuICBsZXQgb2ZfdmFsdWUga2luZCBsYXlvdXQgdiA9XG4gICAgbGV0IGEgPSBjcmVhdGUga2luZCBsYXlvdXQgaW5cbiAgICBzZXQgYSB2O1xuICAgIGFcbiAgbGV0IGluaXQgPSBvZl92YWx1ZVxuZW5kXG5cbm1vZHVsZSBBcnJheTEgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW18XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzFcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlY2FtbF9iYV9zZXRfMVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8xXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMVwiXG4gIGV4dGVybmFsIGRpbTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKGRpbSBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsICdjKSB0ID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZSAodHlwZSB0KSAoYSA6IChfLCBfLCB0KSBHZW5hcnJheS50KSBuID1cbiAgICBtYXRjaCBsYXlvdXQgYSB3aXRoXG4gICAgfCBDX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdIDogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XTogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0gZG8gdW5zYWZlX3NldCBhcnIgaSAoZiBpKSBkb25lXG4gIGxldCBmb3J0cmFuX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDEgdG8gZGltIGRvIHVuc2FmZV9zZXQgYXJyIGkgKGYgaSkgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0gZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgKEFycmF5Lmxlbmd0aCBkYXRhKSBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGRhdGEgLSAxIGRvIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIGRhdGEuKGkpIGRvbmU7XG4gICAgYmFcbmVuZFxuXG5tb2R1bGUgQXJyYXkyID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltMTsgZGltMnxdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzJcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWNhbWxfYmFfc2V0XzJcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhXG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzJcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMlwiXG4gIGV4dGVybmFsIGRpbTE6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzFcIlxuICBleHRlcm5hbCBkaW0yOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8yXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDpcbiAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZV9sZWZ0IGEgbiA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XVxuICBsZXQgc2xpY2VfcmlnaHQgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZiA9XG4gICAgZm9yIGkgPSAwIHRvIHByZWQgZGltMSBkb1xuICAgICAgZm9yIGogPSAwIHRvIHByZWQgZGltMiBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGYgPVxuICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICBmb3IgaSA9IDEgdG8gZGltMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbTEgZGltMiBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgfCBDX2xheW91dCAtPiBjX2luaXQgYXJyIGRpbTEgZGltMiBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gZGltMSAtIDEgZG9cbiAgICAgIGxldCByb3cgPSBkYXRhLihpKSBpblxuICAgICAgaWYgQXJyYXkubGVuZ3RoIHJvdyA8PiBkaW0yIHRoZW5cbiAgICAgICAgaW52YWxpZF9hcmcoXCJCaWdhcnJheS5BcnJheTIub2ZfYXJyYXk6IG5vbi1yZWN0YW5ndWxhciBkYXRhXCIpO1xuICAgICAgZm9yIGogPSAwIHRvIGRpbTIgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSByb3cuKGopXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbm1vZHVsZSBBcnJheTMgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbTE7IGRpbTI7IGRpbTN8XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfM1wiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfc2V0XzNcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYVxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8zXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8zXCJcbiAgZXh0ZXJuYWwgZGltMTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGRpbTI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzJcIlxuICBleHRlcm5hbCBkaW0zOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8zXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKSAqIChkaW0zIGFycilcblxuICBleHRlcm5hbCBzdWJfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzdWJfcmlnaHQ6XG4gICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlX2xlZnRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG47IG18XVxuICBsZXQgc2xpY2VfcmlnaHRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xuOyBtfF1cbiAgbGV0IHNsaWNlX2xlZnRfMiBhIG4gPSBHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF1cbiAgbGV0IHNsaWNlX3JpZ2h0XzIgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0xIGRvXG4gICAgICBmb3IgaiA9IDAgdG8gcHJlZCBkaW0yIGRvXG4gICAgICAgIGZvciBrID0gMCB0byBwcmVkIGRpbTMgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogayAoZiBpIGogaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZiA9XG4gICAgZm9yIGsgPSAxIHRvIGRpbTMgZG9cbiAgICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICAgIGZvciBpID0gMSB0byBkaW0xIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIGsgKGYgaSBqIGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGRpbTMgPSBpZiBkaW0yID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBkaW0xIC0gMSBkb1xuICAgICAgbGV0IHJvdyA9IGRhdGEuKGkpIGluXG4gICAgICBpZiBBcnJheS5sZW5ndGggcm93IDw+IGRpbTIgdGhlblxuICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICBmb3IgaiA9IDAgdG8gZGltMiAtIDEgZG9cbiAgICAgICAgbGV0IGNvbCA9IHJvdy4oaikgaW5cbiAgICAgICAgaWYgQXJyYXkubGVuZ3RoIGNvbCA8PiBkaW0zIHRoZW5cbiAgICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICAgIGZvciBrID0gMCB0byBkaW0zIC0gMSBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSAoayArIG9mcykgY29sLihrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MDogKCdhLCAnYiwgJ2MpIEFycmF5MC50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MTogKCdhLCAnYiwgJ2MpIEFycmF5MS50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MjogKCdhLCAnYiwgJ2MpIEFycmF5Mi50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MzogKCdhLCAnYiwgJ2MpIEFycmF5My50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmxldCBhcnJheTBfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAwIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkwX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTFfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAxIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkxX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTJfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAyIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkyX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTNfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAzIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkzX29mX2dlbmFycmF5XCJcblxuZXh0ZXJuYWwgcmVzaGFwZTpcbiAgICgnYSwgJ2IsICdjKSBHZW5hcnJheS50IC0+IGludCBhcnJheSAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcImNhbWxfYmFfcmVzaGFwZVwiXG5sZXQgcmVzaGFwZV8wIGEgPSByZXNoYXBlIGEgW3x8XVxubGV0IHJlc2hhcGVfMSBhIGRpbTEgPSByZXNoYXBlIGEgW3xkaW0xfF1cbmxldCByZXNoYXBlXzIgYSBkaW0xIGRpbTIgPSByZXNoYXBlIGEgW3xkaW0xO2RpbTJ8XVxubGV0IHJlc2hhcGVfMyBhIGRpbTEgZGltMiBkaW0zID0gcmVzaGFwZSBhIFt8ZGltMTtkaW0yO2RpbTN8XVxuXG4oKiBGb3JjZSBjYW1sX2JhX2dldF97MSwyLDMsTn0gdG8gYmUgbGlua2VkIGluLCBzaW5jZSB3ZSBkb24ndCByZWZlclxuICAgdG8gdGhvc2UgcHJpbWl0aXZlcyBkaXJlY3RseSBpbiB0aGlzIGZpbGUgKilcblxubGV0IF8gPVxuICBsZXQgXyA9IEdlbmFycmF5LmdldCBpblxuICBsZXQgXyA9IEFycmF5MS5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTIuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkzLmdldCBpblxuICAoKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMlwiXVxuZXh0ZXJuYWwgZ2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8xXCJcbmV4dGVybmFsIGdldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfMlwiXG5leHRlcm5hbCBnZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzNcIlxuZXh0ZXJuYWwgc2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8xXCJcbmV4dGVybmFsIHNldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfMlwiXG5leHRlcm5hbCBzZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzNcIlxuIixudWxsLG51bGwsbnVsbCwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiogMzItYml0IGludGVnZXJzLlxuXG4gICBUaGlzIG1vZHVsZSBwcm92aWRlcyBvcGVyYXRpb25zIG9uIHRoZSB0eXBlIFtpbnQzMl1cbiAgIG9mIHNpZ25lZCAzMi1iaXQgaW50ZWdlcnMuICBVbmxpa2UgdGhlIGJ1aWx0LWluIFtpbnRdIHR5cGUsXG4gICB0aGUgdHlwZSBbaW50MzJdIGlzIGd1YXJhbnRlZWQgdG8gYmUgZXhhY3RseSAzMi1iaXQgd2lkZSBvbiBhbGxcbiAgIHBsYXRmb3Jtcy4gIEFsbCBhcml0aG1ldGljIG9wZXJhdGlvbnMgb3ZlciBbaW50MzJdIGFyZSB0YWtlblxuICAgbW9kdWxvIDJ7XjMyfS5cblxuICAgUGVyZm9ybWFuY2Ugbm90aWNlOiB2YWx1ZXMgb2YgdHlwZSBbaW50MzJdIG9jY3VweSBtb3JlIG1lbW9yeVxuICAgc3BhY2UgdGhhbiB2YWx1ZXMgb2YgdHlwZSBbaW50XSwgYW5kIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBvblxuICAgW2ludDMyXSBhcmUgZ2VuZXJhbGx5IHNsb3dlciB0aGFuIHRob3NlIG9uIFtpbnRdLiAgVXNlIFtpbnQzMl1cbiAgIG9ubHkgd2hlbiB0aGUgYXBwbGljYXRpb24gcmVxdWlyZXMgZXhhY3QgMzItYml0IGFyaXRobWV0aWMuXG5cbiAgICBMaXRlcmFscyBmb3IgMzItYml0IGludGVnZXJzIGFyZSBzdWZmaXhlZCBieSBsOlxuICAgIHtbXG4gICAgICBsZXQgemVybzogaW50MzIgPSAwbFxuICAgICAgbGV0IG9uZTogaW50MzIgPSAxbFxuICAgICAgbGV0IG1fb25lOiBpbnQzMiA9IC0xbFxuICAgIF19XG4qKVxuXG52YWwgemVybyA6IGludDMyXG4oKiogVGhlIDMyLWJpdCBpbnRlZ2VyIDAuICopXG5cbnZhbCBvbmUgOiBpbnQzMlxuKCoqIFRoZSAzMi1iaXQgaW50ZWdlciAxLiAqKVxuXG52YWwgbWludXNfb25lIDogaW50MzJcbigqKiBUaGUgMzItYml0IGludGVnZXIgLTEuICopXG5cbmV4dGVybmFsIG5lZyA6IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbmVnXCJcbigqKiBVbmFyeSBuZWdhdGlvbi4gKilcblxuZXh0ZXJuYWwgYWRkIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hZGRcIlxuKCoqIEFkZGl0aW9uLiAqKVxuXG5leHRlcm5hbCBzdWIgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3N1YlwiXG4oKiogU3VidHJhY3Rpb24uICopXG5cbmV4dGVybmFsIG11bCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbXVsXCJcbigqKiBNdWx0aXBsaWNhdGlvbi4gKilcblxuZXh0ZXJuYWwgZGl2IDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9kaXZcIlxuKCoqIEludGVnZXIgZGl2aXNpb24uIFRoaXMgZGl2aXNpb24gcm91bmRzIHRoZSByZWFsIHF1b3RpZW50IG9mXG4gICBpdHMgYXJndW1lbnRzIHRvd2FyZHMgemVybywgYXMgc3BlY2lmaWVkIGZvciB7IVN0ZGxpYi4oLyl9LlxuICAgQHJhaXNlIERpdmlzaW9uX2J5X3plcm8gaWYgdGhlIHNlY29uZFxuICAgYXJndW1lbnQgaXMgemVyby4gICopXG5cbnZhbCB1bnNpZ25lZF9kaXYgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMlxuKCoqIFNhbWUgYXMgeyFkaXZ9LCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYW5kIHJlc3VsdCBhcmUgaW50ZXJwcmV0ZWQgYXMge2VcbiAgICB1bnNpZ25lZH0gMzItYml0IGludGVnZXJzLlxuXG4gICAgQHNpbmNlIDQuMDguMCAqKVxuXG5leHRlcm5hbCByZW0gOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX21vZFwiXG4oKiogSW50ZWdlciByZW1haW5kZXIuICBJZiBbeV0gaXMgbm90IHplcm8sIHRoZSByZXN1bHRcbiAgIG9mIFtJbnQzMi5yZW0geCB5XSBzYXRpc2ZpZXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eTpcbiAgIFt4ID0gSW50MzIuYWRkIChJbnQzMi5tdWwgKEludDMyLmRpdiB4IHkpIHkpIChJbnQzMi5yZW0geCB5KV0uXG4gICBJZiBbeSA9IDBdLCBbSW50MzIucmVtIHggeV0gcmFpc2VzIFtEaXZpc2lvbl9ieV96ZXJvXS4gKilcblxudmFsIHVuc2lnbmVkX3JlbSA6IGludDMyIC0+IGludDMyIC0+IGludDMyXG4oKiogU2FtZSBhcyB7IXJlbX0sIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhbmQgcmVzdWx0IGFyZSBpbnRlcnByZXRlZCBhcyB7ZVxuICAgIHVuc2lnbmVkfSAzMi1iaXQgaW50ZWdlcnMuXG5cbiAgICBAc2luY2UgNC4wOC4wICopXG5cbnZhbCBzdWNjIDogaW50MzIgLT4gaW50MzJcbigqKiBTdWNjZXNzb3IuICBbSW50MzIuc3VjYyB4XSBpcyBbSW50MzIuYWRkIHggSW50MzIub25lXS4gKilcblxudmFsIHByZWQgOiBpbnQzMiAtPiBpbnQzMlxuKCoqIFByZWRlY2Vzc29yLiAgW0ludDMyLnByZWQgeF0gaXMgW0ludDMyLnN1YiB4IEludDMyLm9uZV0uICopXG5cbnZhbCBhYnMgOiBpbnQzMiAtPiBpbnQzMlxuKCoqIFJldHVybiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgaXRzIGFyZ3VtZW50LiAqKVxuXG52YWwgbWF4X2ludCA6IGludDMyXG4oKiogVGhlIGdyZWF0ZXN0IHJlcHJlc2VudGFibGUgMzItYml0IGludGVnZXIsIDJ7XjMxfSAtIDEuICopXG5cbnZhbCBtaW5faW50IDogaW50MzJcbigqKiBUaGUgc21hbGxlc3QgcmVwcmVzZW50YWJsZSAzMi1iaXQgaW50ZWdlciwgLTJ7XjMxfS4gKilcblxuXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FuZFwiXG4oKiogQml0d2lzZSBsb2dpY2FsIGFuZC4gKilcblxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX29yXCJcbigqKiBCaXR3aXNlIGxvZ2ljYWwgb3IuICopXG5cbmV4dGVybmFsIGxvZ3hvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfeG9yXCJcbigqKiBCaXR3aXNlIGxvZ2ljYWwgZXhjbHVzaXZlIG9yLiAqKVxuXG52YWwgbG9nbm90IDogaW50MzIgLT4gaW50MzJcbigqKiBCaXR3aXNlIGxvZ2ljYWwgbmVnYXRpb24uICopXG5cbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc2xcIlxuKCoqIFtJbnQzMi5zaGlmdF9sZWZ0IHggeV0gc2hpZnRzIFt4XSB0byB0aGUgbGVmdCBieSBbeV0gYml0cy5cbiAgIFRoZSByZXN1bHQgaXMgdW5zcGVjaWZpZWQgaWYgW3kgPCAwXSBvciBbeSA+PSAzMl0uICopXG5cbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfYXNyXCJcbigqKiBbSW50MzIuc2hpZnRfcmlnaHQgeCB5XSBzaGlmdHMgW3hdIHRvIHRoZSByaWdodCBieSBbeV0gYml0cy5cbiAgIFRoaXMgaXMgYW4gYXJpdGhtZXRpYyBzaGlmdDogdGhlIHNpZ24gYml0IG9mIFt4XSBpcyByZXBsaWNhdGVkXG4gICBhbmQgaW5zZXJ0ZWQgaW4gdGhlIHZhY2F0ZWQgYml0cy5cbiAgIFRoZSByZXN1bHQgaXMgdW5zcGVjaWZpZWQgaWYgW3kgPCAwXSBvciBbeSA+PSAzMl0uICopXG5cbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc3JcIlxuKCoqIFtJbnQzMi5zaGlmdF9yaWdodF9sb2dpY2FsIHggeV0gc2hpZnRzIFt4XSB0byB0aGUgcmlnaHQgYnkgW3ldIGJpdHMuXG4gICBUaGlzIGlzIGEgbG9naWNhbCBzaGlmdDogemVyb2VzIGFyZSBpbnNlcnRlZCBpbiB0aGUgdmFjYXRlZCBiaXRzXG4gICByZWdhcmRsZXNzIG9mIHRoZSBzaWduIG9mIFt4XS5cbiAgIFRoZSByZXN1bHQgaXMgdW5zcGVjaWZpZWQgaWYgW3kgPCAwXSBvciBbeSA+PSAzMl0uICopXG5cbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBpbnQzMiA9IFwiJWludDMyX29mX2ludFwiXG4oKiogQ29udmVydCB0aGUgZ2l2ZW4gaW50ZWdlciAodHlwZSBbaW50XSkgdG8gYSAzMi1iaXQgaW50ZWdlclxuICAgICh0eXBlIFtpbnQzMl0pLiBPbiA2NC1iaXQgcGxhdGZvcm1zLCB0aGUgYXJndW1lbnQgaXMgdGFrZW5cbiAgICBtb2R1bG8gMnteMzJ9LiAqKVxuXG5leHRlcm5hbCB0b19pbnQgOiBpbnQzMiAtPiBpbnQgPSBcIiVpbnQzMl90b19pbnRcIlxuKCoqIENvbnZlcnQgdGhlIGdpdmVuIDMyLWJpdCBpbnRlZ2VyICh0eXBlIFtpbnQzMl0pIHRvIGFuXG4gICBpbnRlZ2VyICh0eXBlIFtpbnRdKS4gIE9uIDMyLWJpdCBwbGF0Zm9ybXMsIHRoZSAzMi1iaXQgaW50ZWdlclxuICAgaXMgdGFrZW4gbW9kdWxvIDJ7XjMxfSwgaS5lLiB0aGUgaGlnaC1vcmRlciBiaXQgaXMgbG9zdFxuICAgZHVyaW5nIHRoZSBjb252ZXJzaW9uLiAgT24gNjQtYml0IHBsYXRmb3JtcywgdGhlIGNvbnZlcnNpb25cbiAgIGlzIGV4YWN0LiAqKVxuXG52YWwgdW5zaWduZWRfdG9faW50IDogaW50MzIgLT4gaW50IG9wdGlvblxuKCoqIFNhbWUgYXMgeyF0b19pbnR9LCBidXQgaW50ZXJwcmV0cyB0aGUgYXJndW1lbnQgYXMgYW4ge2UgdW5zaWduZWR9IGludGVnZXIuXG4gICAgUmV0dXJucyBbTm9uZV0gaWYgdGhlIHVuc2lnbmVkIHZhbHVlIG9mIHRoZSBhcmd1bWVudCBjYW5ub3QgZml0IGludG8gYW5cbiAgICBbaW50XS5cblxuICAgIEBzaW5jZSA0LjA4LjAgKilcblxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbigqKiBDb252ZXJ0IHRoZSBnaXZlbiBmbG9hdGluZy1wb2ludCBudW1iZXIgdG8gYSAzMi1iaXQgaW50ZWdlcixcbiAgIGRpc2NhcmRpbmcgdGhlIGZyYWN0aW9uYWwgcGFydCAodHJ1bmNhdGUgdG93YXJkcyAwKS5cbiAgIElmIHRoZSB0cnVuY2F0ZWQgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGlzIG91dHNpZGUgdGhlIHJhbmdlXG4gICBcXFt7IUludDMyLm1pbl9pbnR9LCB7IUludDMyLm1heF9pbnR9XFxdLCBubyBleGNlcHRpb24gaXMgcmFpc2VkLCBhbmRcbiAgIGFuIHVuc3BlY2lmaWVkLCBwbGF0Zm9ybS1kZXBlbmRlbnQgaW50ZWdlciBpcyByZXR1cm5lZC4gKilcblxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl90b19mbG9hdFwiIFwiY2FtbF9pbnQzMl90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbigqKiBDb252ZXJ0IHRoZSBnaXZlbiAzMi1iaXQgaW50ZWdlciB0byBhIGZsb2F0aW5nLXBvaW50IG51bWJlci4gKilcblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG4oKiogQ29udmVydCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIGEgMzItYml0IGludGVnZXIuXG4gICBUaGUgc3RyaW5nIGlzIHJlYWQgaW4gZGVjaW1hbCAoYnkgZGVmYXVsdCwgb3IgaWYgdGhlIHN0cmluZ1xuICAgYmVnaW5zIHdpdGggWzB1XSkgb3IgaW4gaGV4YWRlY2ltYWwsIG9jdGFsIG9yIGJpbmFyeSBpZiB0aGVcbiAgIHN0cmluZyBiZWdpbnMgd2l0aCBbMHhdLCBbMG9dIG9yIFswYl0gcmVzcGVjdGl2ZWx5LlxuXG4gICBUaGUgWzB1XSBwcmVmaXggcmVhZHMgdGhlIGlucHV0IGFzIGFuIHVuc2lnbmVkIGludGVnZXIgaW4gdGhlIHJhbmdlXG4gICBbWzAsIDIqSW50MzIubWF4X2ludCsxXV0uICBJZiB0aGUgaW5wdXQgZXhjZWVkcyB7IUludDMyLm1heF9pbnR9XG4gICBpdCBpcyBjb252ZXJ0ZWQgdG8gdGhlIHNpZ25lZCBpbnRlZ2VyXG4gICBbSW50MzIubWluX2ludCArIGlucHV0IC0gSW50MzIubWF4X2ludCAtIDFdLlxuXG4gICBUaGUgW19dICh1bmRlcnNjb3JlKSBjaGFyYWN0ZXIgY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgc3RyaW5nXG4gICBhbmQgaXMgaWdub3JlZC5cbiAgIEByYWlzZSBGYWlsdXJlIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgbm90XG4gICBhIHZhbGlkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGludGVnZXIsIG9yIGlmIHRoZSBpbnRlZ2VyIHJlcHJlc2VudGVkXG4gICBleGNlZWRzIHRoZSByYW5nZSBvZiBpbnRlZ2VycyByZXByZXNlbnRhYmxlIGluIHR5cGUgW2ludDMyXS4gKilcblxudmFsIG9mX3N0cmluZ19vcHQ6IHN0cmluZyAtPiBpbnQzMiBvcHRpb25cbigqKiBTYW1lIGFzIFtvZl9zdHJpbmddLCBidXQgcmV0dXJuIFtOb25lXSBpbnN0ZWFkIG9mIHJhaXNpbmcuXG4gICAgQHNpbmNlIDQuMDUgKilcblxuXG52YWwgdG9fc3RyaW5nIDogaW50MzIgLT4gc3RyaW5nXG4oKiogUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgaXRzIGFyZ3VtZW50LCBpbiBzaWduZWQgZGVjaW1hbC4gKilcblxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbigqKiBSZXR1cm4gdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBmbG9hdCBhY2NvcmRpbmdcbiAgIHRvIHRoZSBJRUVFIDc1NCBmbG9hdGluZy1wb2ludCAnc2luZ2xlIGZvcm1hdCcgYml0IGxheW91dC5cbiAgIEJpdCAzMSBvZiB0aGUgcmVzdWx0IHJlcHJlc2VudHMgdGhlIHNpZ24gb2YgdGhlIGZsb2F0O1xuICAgYml0cyAzMCB0byAyMyByZXByZXNlbnQgdGhlIChiaWFzZWQpIGV4cG9uZW50OyBiaXRzIDIyIHRvIDBcbiAgIHJlcHJlc2VudCB0aGUgbWFudGlzc2EuICopXG5cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG4oKiogUmV0dXJuIHRoZSBmbG9hdGluZy1wb2ludCBudW1iZXIgd2hvc2UgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24sXG4gICBhY2NvcmRpbmcgdG8gdGhlIElFRUUgNzU0IGZsb2F0aW5nLXBvaW50ICdzaW5nbGUgZm9ybWF0JyBiaXQgbGF5b3V0LFxuICAgaXMgdGhlIGdpdmVuIFtpbnQzMl0uICopXG5cbnR5cGUgdCA9IGludDMyXG4oKiogQW4gYWxpYXMgZm9yIHRoZSB0eXBlIG9mIDMyLWJpdCBpbnRlZ2Vycy4gKilcblxudmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbigqKiBUaGUgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgMzItYml0IGludGVnZXJzLCB3aXRoIHRoZSBzYW1lIHNwZWNpZmljYXRpb24gYXNcbiAgICB7IVN0ZGxpYi5jb21wYXJlfS4gIEFsb25nIHdpdGggdGhlIHR5cGUgW3RdLCB0aGlzIGZ1bmN0aW9uIFtjb21wYXJlXVxuICAgIGFsbG93cyB0aGUgbW9kdWxlIFtJbnQzMl0gdG8gYmUgcGFzc2VkIGFzIGFyZ3VtZW50IHRvIHRoZSBmdW5jdG9yc1xuICAgIHshU2V0Lk1ha2V9IGFuZCB7IU1hcC5NYWtlfS4gKilcblxudmFsIHVuc2lnbmVkX2NvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbigqKiBTYW1lIGFzIHshY29tcGFyZX0sIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMge2UgdW5zaWduZWR9XG4gICAgMzItYml0IGludGVnZXJzLlxuXG4gICAgQHNpbmNlIDQuMDguMCAqKVxuXG52YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4oKiogVGhlIGVxdWFsIGZ1bmN0aW9uIGZvciBpbnQzMnMuXG4gICAgQHNpbmNlIDQuMDMuMCAqKVxuXG52YWwgbWluOiB0IC0+IHQgLT4gdFxuKCoqIFJldHVybiB0aGUgc21hbGxlciBvZiB0aGUgdHdvIGFyZ3VtZW50cy5cbiAgICBAc2luY2UgNC4xMy4wXG4qKVxuXG52YWwgbWF4OiB0IC0+IHQgLT4gdFxuKCoqIFJldHVybiB0aGUgZ3JlYXRlciBvZiB0aGUgdHdvIGFyZ3VtZW50cy5cbiAgICBAc2luY2UgNC4xMy4wXG4gKilcblxuXG4oKiovKiopXG5cbigqKiB7MSBEZXByZWNhdGVkIGZ1bmN0aW9uc30gKilcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZyA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxuW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSBQcmludGYuc3ByaW50ZiB3aXRoIGEgWyVsLi4uXSBmb3JtYXQgaW5zdGVhZC5cIl1cbigqKiBEbyBub3QgdXNlIHRoaXMgZGVwcmVjYXRlZCBmdW5jdGlvbi4gIEluc3RlYWQsXG4gICB1c2VkIHshUHJpbnRmLnNwcmludGZ9IHdpdGggYSBbJWwuLi5dIGZvcm1hdC4gKilcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRGFuaWVsIGRlIFJhdWdsYXVkcmUsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2EgY2VsbCBvcHRpb25cbmFuZCAnYSBjZWxsID0geyBtdXRhYmxlIGNvdW50IDogaW50OyBtdXRhYmxlIGRhdGEgOiAnYSBkYXRhIH1cbmFuZCAnYSBkYXRhID1cbiAgICBTZW1wdHlcbiAgfCBTY29ucyBvZiAnYSAqICdhIGRhdGFcbiAgfCBTYXBwIG9mICdhIGRhdGEgKiAnYSBkYXRhXG4gIHwgU2xhenkgb2YgJ2EgZGF0YSBMYXp5LnRcbiAgfCBTZ2VuIG9mICdhIGdlblxuICB8IFNidWZmaW8gOiBidWZmaW8gLT4gY2hhciBkYXRhXG5hbmQgJ2EgZ2VuID0geyBtdXRhYmxlIGN1cnIgOiAnYSBvcHRpb24gb3B0aW9uOyBmdW5jIDogaW50IC0+ICdhIG9wdGlvbiB9XG5hbmQgYnVmZmlvID1cbiAgeyBpYyA6IGluX2NoYW5uZWw7IGJ1ZmYgOiBieXRlczsgbXV0YWJsZSBsZW4gOiBpbnQ7IG11dGFibGUgaW5kIDogaW50IH1cblxuZXhjZXB0aW9uIEZhaWx1cmVcbmV4Y2VwdGlvbiBFcnJvciBvZiBzdHJpbmdcblxubGV0IGNvdW50ID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IDBcbiAgfCBTb21lIHsgY291bnQgfSAtPiBjb3VudFxubGV0IGRhdGEgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gU2VtcHR5XG4gIHwgU29tZSB7IGRhdGEgfSAtPiBkYXRhXG5cbmxldCBmaWxsX2J1ZmYgYiA9XG4gIGIubGVuIDwtIGlucHV0IGIuaWMgYi5idWZmIDAgKEJ5dGVzLmxlbmd0aCBiLmJ1ZmYpOyBiLmluZCA8LSAwXG5cblxubGV0IHJlYyBnZXRfZGF0YSA6IHR5cGUgdi4gaW50IC0+IHYgZGF0YSAtPiB2IGRhdGEgPSBmdW4gY291bnQgZCAtPiBtYXRjaCBkIHdpdGhcbiAoKiBSZXR1cm5zIGVpdGhlciBTZW1wdHkgb3IgU2NvbnMoYSwgXykgZXZlbiB3aGVuIGQgaXMgYSBnZW5lcmF0b3JcbiAgICBvciBhIGJ1ZmZlci4gSW4gdGhvc2UgY2FzZXMsIHRoZSBpdGVtIGEgaXMgc2VlbiBhcyBleHRyYWN0ZWQgZnJvbVxuIHRoZSBnZW5lcmF0b3IvYnVmZmVyLlxuIFRoZSBjb3VudCBwYXJhbWV0ZXIgaXMgdXNlZCBmb3IgY2FsbGluZyBgU2dlbi1mdW5jdGlvbnMnLiAgKilcbiAgIFNlbXB0eSB8IFNjb25zIChfLCBfKSAtPiBkXG4gfCBTYXBwIChkMSwgZDIpIC0+XG4gICAgIGJlZ2luIG1hdGNoIGdldF9kYXRhIGNvdW50IGQxIHdpdGhcbiAgICAgICBTY29ucyAoYSwgZDExKSAtPiBTY29ucyAoYSwgU2FwcCAoZDExLCBkMikpXG4gICAgIHwgU2VtcHR5IC0+IGdldF9kYXRhIGNvdW50IGQyXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTZ2VuIHtjdXJyID0gU29tZSBOb25lfSAtPiBTZW1wdHlcbiB8IFNnZW4gKHtjdXJyID0gU29tZShTb21lIGEpfSBhcyBnKSAtPlxuICAgICBnLmN1cnIgPC0gTm9uZTsgU2NvbnMoYSwgZClcbiB8IFNnZW4gZyAtPlxuICAgICBiZWdpbiBtYXRjaCBnLmZ1bmMgY291bnQgd2l0aFxuICAgICAgIE5vbmUgLT4gZy5jdXJyIDwtIFNvbWUoTm9uZSk7IFNlbXB0eVxuICAgICB8IFNvbWUgYSAtPiBTY29ucyhhLCBkKVxuICAgICAgICAgKCogV2FybmluZzogYW55b25lIHVzaW5nIGcgdGhpbmtzIHRoYXQgYW4gaXRlbSBoYXMgYmVlbiByZWFkICopXG4gICAgIGVuZFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBTZW1wdHkgZWxzZVxuICAgICAgIGxldCByID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmYgYi5pbmQgaW5cbiAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgICBiLmluZCA8LSBzdWNjIGIuaW5kOyBTY29ucyhyLCBkKVxuIHwgU2xhenkgZiAtPiBnZXRfZGF0YSBjb3VudCAoTGF6eS5mb3JjZSBmKVxuXG5cbmxldCByZWMgcGVla19kYXRhIDogdHlwZSB2LiB2IGNlbGwgLT4gdiBvcHRpb24gPSBmdW4gcyAtPlxuICgqIGNvbnN1bHQgdGhlIGZpcnN0IGl0ZW0gb2YgcyAqKVxuIG1hdGNoIHMuZGF0YSB3aXRoXG4gICBTZW1wdHkgLT4gTm9uZVxuIHwgU2NvbnMgKGEsIF8pIC0+IFNvbWUgYVxuIHwgU2FwcCAoXywgXykgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgcy5jb3VudCBzLmRhdGEgd2l0aFxuICAgICAgIFNjb25zKGEsIF8pIGFzIGQgLT4gcy5kYXRhIDwtIGQ7IFNvbWUgYVxuICAgICB8IFNlbXB0eSAtPiBOb25lXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTbGF6eSBmIC0+IHMuZGF0YSA8LSAoTGF6eS5mb3JjZSBmKTsgcGVla19kYXRhIHNcbiB8IFNnZW4ge2N1cnIgPSBTb21lIGF9IC0+IGFcbiB8IFNnZW4gZyAtPiBsZXQgeCA9IGcuZnVuYyBzLmNvdW50IGluIGcuY3VyciA8LSBTb21lIHg7IHhcbiB8IFNidWZmaW8gYiAtPlxuICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gYmVnaW4gcy5kYXRhIDwtIFNlbXB0eTsgTm9uZSBlbmRcbiAgICAgZWxzZSBTb21lIChCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZClcblxuXG5sZXQgcGVlayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBOb25lXG4gIHwgU29tZSBzIC0+IHBlZWtfZGF0YSBzXG5cblxubGV0IHJlYyBqdW5rX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB1bml0ID0gZnVuIHMgLT5cbiAgbWF0Y2ggcy5kYXRhIHdpdGhcbiAgICBTY29ucyAoXywgZCkgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgcy5kYXRhIDwtIGRcbiAgfCBTZ2VuICh7Y3VyciA9IFNvbWUgX30gYXMgZykgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgZy5jdXJyIDwtIE5vbmVcbiAgfCBTYnVmZmlvIGIgLT5cbiAgICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gcy5kYXRhIDwtIFNlbXB0eVxuICAgICAgZWxzZSAocy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgYi5pbmQgPC0gc3VjYyBiLmluZClcbiAgfCBfIC0+XG4gICAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICAgIE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSBfIC0+IGp1bmtfZGF0YSBzXG5cblxubGV0IGp1bmsgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIGRhdGEgLT4ganVua19kYXRhIGRhdGFcblxubGV0IHJlYyBuZ2V0X2RhdGEgbiBzID1cbiAgaWYgbiA8PSAwIHRoZW4gW10sIHMuZGF0YSwgMFxuICBlbHNlXG4gICAgbWF0Y2ggcGVla19kYXRhIHMgd2l0aFxuICAgICAgU29tZSBhIC0+XG4gICAgICAgIGp1bmtfZGF0YSBzO1xuICAgICAgICBsZXQgKGFsLCBkLCBrKSA9IG5nZXRfZGF0YSAocHJlZCBuKSBzIGluIGEgOjogYWwsIFNjb25zIChhLCBkKSwgc3VjYyBrXG4gICAgfCBOb25lIC0+IFtdLCBzLmRhdGEsIDBcblxuXG5sZXQgbnBlZWtfZGF0YSBuIHMgPVxuICBsZXQgKGFsLCBkLCBsZW4pID0gbmdldF9kYXRhIG4gcyBpblxuICBzLmNvdW50IDwtIChzLmNvdW50IC0gbGVuKTtcbiAgcy5kYXRhIDwtIGQ7XG4gIGFsXG5cblxubGV0IG5wZWVrIG4gPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gW11cbiAgfCBTb21lIGQgLT4gbnBlZWtfZGF0YSBuIGRcblxubGV0IG5leHQgcyA9XG4gIG1hdGNoIHBlZWsgcyB3aXRoXG4gICAgU29tZSBhIC0+IGp1bmsgczsgYVxuICB8IE5vbmUgLT4gcmFpc2UgRmFpbHVyZVxuXG5cbmxldCBlbXB0eSBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIF8gLT4gcmFpc2UgRmFpbHVyZVxuICB8IE5vbmUgLT4gKClcblxuXG5sZXQgaXRlciBmIHN0cm0gPVxuICBsZXQgcmVjIGRvX3JlYyAoKSA9XG4gICAgbWF0Y2ggcGVlayBzdHJtIHdpdGhcbiAgICAgIFNvbWUgYSAtPiBqdW5rIHN0cm07IGlnbm9yZShmIGEpOyBkb19yZWMgKClcbiAgICB8IE5vbmUgLT4gKClcbiAgaW5cbiAgZG9fcmVjICgpXG5cblxuKCogU3RyZWFtIGJ1aWxkaW5nIGZ1bmN0aW9ucyAqKVxuXG5sZXQgZnJvbSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2dlbiB7Y3VyciA9IE5vbmU7IGZ1bmMgPSBmfX1cblxubGV0IG9mX2xpc3QgbCA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IExpc3QuZm9sZF9yaWdodCAoZnVuIHggbCAtPiBTY29ucyAoeCwgbCkpIGwgU2VtcHR5fVxuXG5cbmxldCBvZl9zdHJpbmcgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgKCogV2UgY2Fubm90IHVzZSB0aGUgaW5kZXggcGFzc2VkIGJ5IHRoZSBbZnJvbV0gZnVuY3Rpb24gZGlyZWN0bHlcbiAgICAgICBiZWNhdXNlIGl0IHJldHVybnMgdGhlIGN1cnJlbnQgc3RyZWFtIGNvdW50LCB3aXRoIGFic29sdXRlbHkgbm9cbiAgICAgICBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIHN0YXJ0IGZyb20gMC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlXG4gICAgICAgb2YgW1N0cmVhbS5pY29ucyAnYycgKFN0cmVhbS5mcm9tX3N0cmluZyBcImFiXCIpXSwgdGhlIGZpcnN0XG4gICAgICAgYWNjZXNzIHRvIHRoZSBzdHJpbmcgd2lsbCBiZSBtYWRlIHdpdGggY291bnQgWzFdIGFscmVhZHkuXG4gICAgKilcbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBTdHJpbmcubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIHMuW2NdKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfYnl0ZXMgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgbGV0IGMgPSAhY291bnQgaW5cbiAgICBpZiBjIDwgQnl0ZXMubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIChCeXRlcy5nZXQgcyBjKSlcbiAgICBlbHNlIE5vbmUpXG5cblxubGV0IG9mX2NoYW5uZWwgaWMgPVxuICBTb21lIHtjb3VudCA9IDA7XG4gICAgICAgIGRhdGEgPSBTYnVmZmlvIHtpYyA9IGljOyBidWZmID0gQnl0ZXMuY3JlYXRlIDQwOTY7IGxlbiA9IDA7IGluZCA9IDB9fVxuXG5cbigqIFN0cmVhbSBleHByZXNzaW9ucyBidWlsZGVycyAqKVxuXG5sZXQgaWFwcCBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTYXBwIChkYXRhIGksIGRhdGEgcyl9XG5sZXQgaWNvbnMgaSBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIGRhdGEgcyl9XG5sZXQgaXNpbmcgaSA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNjb25zIChpLCBTZW1wdHkpfVxuXG5sZXQgbGFwcCBmIHMgPVxuICBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTYXBwIChkYXRhIChmICgpKSwgZGF0YSBzKSkpfVxuXG5sZXQgbGNvbnMgZiBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIGRhdGEgcykpKX1cbmxldCBsc2luZyBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIFNlbXB0eSkpKX1cblxubGV0IHNlbXB0eSA9IE5vbmVcbmxldCBzbGF6eSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoZGF0YSAoZiAoKSkpKX1cblxuKCogRm9yIGRlYnVnZ2luZyB1c2UgKilcblxubGV0IHJlYyBkdW1wIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IHQgLT4gdW5pdCA9IGZ1biBmIHMgLT5cbiAgcHJpbnRfc3RyaW5nIFwie2NvdW50ID0gXCI7XG4gIHByaW50X2ludCAoY291bnQgcyk7XG4gIHByaW50X3N0cmluZyBcIjsgZGF0YSA9IFwiO1xuICBkdW1wX2RhdGEgZiAoZGF0YSBzKTtcbiAgcHJpbnRfc3RyaW5nIFwifVwiO1xuICBwcmludF9uZXdsaW5lICgpXG5hbmQgZHVtcF9kYXRhIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IGRhdGEgLT4gdW5pdCA9IGZ1biBmIC0+XG4gIGZ1bmN0aW9uXG4gICAgU2VtcHR5IC0+IHByaW50X3N0cmluZyBcIlNlbXB0eVwiXG4gIHwgU2NvbnMgKGEsIGQpIC0+XG4gICAgICBwcmludF9zdHJpbmcgXCJTY29ucyAoXCI7XG4gICAgICBmIGE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNhcHAgKFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDI7XG4gICAgICBwcmludF9zdHJpbmcgXCIpXCJcbiAgfCBTbGF6eSBfIC0+IHByaW50X3N0cmluZyBcIlNsYXp5XCJcbiAgfCBTZ2VuIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2dlblwiXG4gIHwgU2J1ZmZpbyBfIC0+IHByaW50X3N0cmluZyBcIlNidWZmaW9cIlxuIiwiKCogd2h5ICopXG5cbigqXG5cbm5hbWVzPzpcbiAgIC0gdW5pdmVyc2FsIHRvb2wsIHVuaXRvb2wgW3dhcyB0aGlua2luZyBhYm91dCBob3cgdGhpcyBpcyB0cnlpbmcgdG8gdW5pZnkgYSBsb3Qgb2YgbXkgXCJ0b29scyBmb3IgdGhvdWdodFwiXVxuICAgICAqIGJlY2F1c2UgaXQgaGFzIGFsd2F5cyBib3RoZXJlZCBtZSB0aGF0IGl0J3MgZWFzaWVyIHRvIHVzZSBnb29nbGUgc2VhcmNoIGFzIGEgY2FsY3VsYXRvciB0aGFuIHRoZSBwdXJwb3NlIGJ1aWx0IGFwcCEhISEhISEhXG4gICAtIHVuaXZlcnNhbCBjb25zb2xlLCB1bmljb24gKFVOSUNPck4pIFt1bmljb24gaXMgbmljZSA7M11cbiAgIC0gbm9uLW1hZ2ljYWwgc3lzdGVtcyAoTk1TKSB1bi1tYWdpY2FsXG4gICAtIGNvbnNvbGUgaXMgYW4gaW50ZXJmYWNlIHRvIGFsbG93IHlvdSB0byBwcm9ncmFtIHlvdXIgY29tcHV0ZXIgbW9yZSBlYXNpbHkuXG4gIFxuZGVzY3JpYmUgZXhhY3RseSBldmVyeSBjYXNlIHlvdSBjYW4gdGhpbmsgb2YgdGhhdCB5b3Ugd2FudCB0aGlzIGRyYXdpbmcgYW5kIGxheW91dCBzeXN0ZW0gdG8gaGFuZGxlOlxuICAgXG4qIGRyYXcgdGV4dCBvbiB2YXJpb3VzbHkgY29sb3VyZWQgYmFja2dyb3VuZHMgdGhhdCBjYW4gYmUgZGVmaW5lZCBsb2NhbGx5IG9yIGdsb2JhbGx5XG4qIFRPRE9cblxuKilcblxuKCpcblxuQUxXQVlTIEJSRUFLIFVQIFRIRSBQUk9CTEVNIElOVE8gU01BTExFUiBDSFVOS1MgQklUQ0ghIVxuXG5UaW1lcyBJIHdvdWxkIGhhdmUgc29sdmVkIGl0IGZhc3RlciBpZiBpIGJyb2tlIGl0IHVwIGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaXQgYWxsIGF0IG9uY2U6IDJcblxuYSBjb21wdXRhdGlvbiBjb25zb2xlXG5cbi0gaXJtaW4gc3RvcmUgcHJvdmlkZXMgYSB0cmVlIG9mIGRhdGEgb2JqZWN0c1xuLSB0aGUgdHJlZSBjYW4gYmUgbmF2aWdhdGVkIGluIHRoZSBkZWZhdWx0IHZpZXdcbi0gdGhlIHNlbGVjdGVkIG9iamVjdCBjYW4gYmUgZWRpdGVkIDxlbnRlcj4gb3IgZXhlY3V0ZWQgYXMgYW4gb2NhbWwgdG9wIGxldmVsIHBocmFzZSA8Qy1lbnRlcj5cbi0gZWFjaCBleGVjdXRpb24gc3RvcmVzIGFueSBlZGl0ZWQgbW9kaWZpY2F0aW9ucyBhbmQgdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSB0aGF0IHBocmFzZSBpbiB0aGUgY3VycmVudCBpcm1pbiBzdG9yZSBjb250ZXh0IGFzIGEgY29tbWl0IG1lc3NhZ2Vcbi0gd2hpbGUgZWRpdGluZyBhIGRhdGEgb2JqZWN0IDxjdHJsLWVudGVyPiB3aWxsZSBzZWFyY2ggZm9yIHRoZSBwcmV2aW91cyBhbmQgbmV4dCBgOztgIG9yIEJPRi9FT0YgYW5kIGV4ZWN1dGUgdGhlIGVuY2xvc2VkIHRleHQgYW5kIHRoZSBjb21taXQgbWVzc2FnZSBpbmNsdWRlcyB0aGUgY2hhcmFjdGVyIG9mZnNldHMgb2YgdGhlIGV4ZWN1dGVkIHRleHQuXG4tIGV4ZWN1dGlvbnMgY2FuIG1vZGlmeSB0aGUgd2luZG93IHN5c3RlbSBjcmVhdGluZyBuZXcgd2luZG93cyBhbmQgcmVkaXJlY3RpbmcgaW5wdXQgZm9jdXMuIFRoZXkgZGVmaW5lIHRoZWlyIG93biBpbnB1dCBoYW5kbGluZyBob3dldmVyIEMtZyxDLWcsQy1nIHdpbGwgcmVzdG9yZSB0aGUgd2luZG93IHN5c3RlbSB0byB0aGUgZGVmYXVsdD8/XG5cbmJ1dCBob3cgZG8gd2UgaW50ZWdyYXRlIHRoaXMgd2l0aCB0aGUgb2NhbWwgZW52aXJvbm1lbnQgYW5kIG5hbWUgc3BhY2VzPz9cbnNvbWUgb3B0aW9uczpcbi0gYWx3YXlzIHdyYXAgZXhlY3V0aW9uIHVuaXRzIGZyb20gZGF0YSBvYmplY3RzIGluIHNvbWUgc29ydCBvZiBsb2NhbCBuYW1lc3BhY2Ugc28gb3BlbnMgYXJlIG5vdCBnbG9iYWw/XG4tIGRpZyBpbnRvIHRoZSB0b3BsZXZlbCBlbnZpcm9ubWVudCBhbmQgbWFuaXB1bGF0ZSBpdCwgdGhpcyB3aWxsIGFsc28gaGVscCB3aXRoIHRoaW5ncyBsaWtlIGNvbXBsZXRpb24gYW5kIGNvbnRleHQgaGVscFxuXG4qKVxub3BlbiBKc19vZl9vY2FtbFxubW9kdWxlIEYgPSBGbXRcblxubW9kdWxlIExvZ3NfcmVwb3J0ZXIgPSBzdHJ1Y3RcbiAgKCogQ29uc29sZSByZXBvcnRlciAqKVxuXG4gIG9wZW4gSnNvb19ydW50aW1lXG5cbiAgbGV0IGNvbnNvbGUgOiBMb2dzLmxldmVsIC0+IHN0cmluZyAtPiB1bml0ID1cbiAgIGZ1biBsZXZlbCBzIC0+XG4gICAgbGV0IG1ldGggPVxuICAgICAgbWF0Y2ggbGV2ZWwgd2l0aFxuICAgICAgfCBMb2dzLkVycm9yIC0+IFwiZXJyb3JcIlxuICAgICAgfCBMb2dzLldhcm5pbmcgLT4gXCJ3YXJuXCJcbiAgICAgIHwgTG9ncy5JbmZvIC0+IFwiaW5mb1wiXG4gICAgICB8IExvZ3MuRGVidWcgLT4gXCJkZWJ1Z1wiXG4gICAgICB8IExvZ3MuQXBwIC0+IFwibG9nXCJcbiAgICBpblxuICAgIGlnbm9yZVxuICAgICAgKEpzLm1ldGhfY2FsbFxuICAgICAgICAgKEpzLnB1cmVfanNfZXhwciBcImNvbnNvbGVcIilcbiAgICAgICAgIG1ldGhcbiAgICAgICAgIFt8IEpzLnN0cmluZyBzIHxdKVxuXG4gIGxldCBwcGYsIGZsdXNoID1cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMjU1IGluXG4gICAgbGV0IGZsdXNoICgpID1cbiAgICAgIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIGIgaW5cbiAgICAgIEJ1ZmZlci5jbGVhciBiO1xuICAgICAgc1xuICAgIGluXG4gICAgKEZvcm1hdC5mb3JtYXR0ZXJfb2ZfYnVmZmVyIGIsIGZsdXNoKVxuXG4gIGxldCBob29rID1cbiAgICByZWYgKGZ1biBsZXZlbCBzIC0+XG4gICAgICAgIGlnbm9yZSAoTG9ncy5sZXZlbF90b19zdHJpbmcgKFNvbWUgbGV2ZWwpIF4gXCI6IFwiIF4gcykpXG5cbiAgbGV0IGNvbnNvbGVfcmVwb3J0IF9zcmMgbGV2ZWwgfm92ZXIgayBtc2dmID1cbiAgICBsZXQgayBfID1cbiAgICAgIGxldCBzID0gZmx1c2ggKCkgaW5cbiAgICAgIGNvbnNvbGUgbGV2ZWwgcztcbiAgICAgICFob29rIGxldmVsIHM7XG4gICAgICBvdmVyICgpO1xuICAgICAgayAoKVxuICAgIGluXG4gICAgbXNnZiBAQCBmdW4gP2hlYWRlciA/dGFncyBmbXQgLT5cbiAgICBsZXQgX3RhZ3MgPSB0YWdzIGluXG4gICAgbWF0Y2ggaGVhZGVyIHdpdGhcbiAgICB8IE5vbmUgLT4gRm9ybWF0LmtmcHJpbnRmIGsgcHBmIChcIkBbXCIgXl4gZm10IF5eIFwiQF1ALlwiKVxuICAgIHwgU29tZSBoIC0+IEZvcm1hdC5rZnByaW50ZiBrIHBwZiAoXCJbJXNdIEBbXCIgXl4gZm10IF5eIFwiQF1ALlwiKSBoXG5cbiAgbGV0IGNvbnNvbGVfcmVwb3J0ZXIgKCkgPSB7IExvZ3MucmVwb3J0ID0gY29uc29sZV9yZXBvcnQgfVxuZW5kXG5cbmxldCBfID1cbiAgTG9ncy5zZXRfcmVwb3J0ZXIgKExvZ3NfcmVwb3J0ZXIuY29uc29sZV9yZXBvcnRlciAoKSk7XG4gIExvZ3Muc2V0X2xldmVsIChTb21lIERlYnVnKVxuXG5tb2R1bGUgTG9nID0gTG9nc1xubW9kdWxlIENvaHR0cF9iYWNrZW5kID0gQ29odHRwX2x3dF9qc29vXG5cbm1vZHVsZSBHaXRfYWYgPSBzdHJ1Y3RcbiAgb3BlbiBMd3QuSW5maXhcblxuICB0eXBlIGVycm9yID0gfFxuXG4gIGxldCBnaXRfYWZfc2NoZW1lIDogWyBgSFRUUCB8IGBIVFRQUyBdIE1pbWljLnZhbHVlID1cbiAgICBNaW1pYy5tYWtlIH5uYW1lOlwiZ2l0LWFmLXNjaGVtZVwiXG5cbiAgbGV0IGdpdF9hZl9wb3J0IDogaW50IE1pbWljLnZhbHVlID0gTWltaWMubWFrZSB+bmFtZTpcImdpdC1hZi1wb3J0XCJcblxuICBsZXQgZ2l0X2FmX2hvc3RuYW1lIDogc3RyaW5nIE1pbWljLnZhbHVlID1cbiAgICBNaW1pYy5tYWtlIH5uYW1lOlwiZ2l0LWFmLWhvc3RuYW1lXCJcblxuICBsZXQgcHBfZXJyb3IgOiBlcnJvciBGbXQudCA9IGZ1biBfcHBmIC0+IGZ1bmN0aW9uIF8gLT4gLlxuXG4gIGxldCB3aXRoX3JlZGlyZWN0cyA/KG1heCA9IDEwKSB+ZiB1cmkgPVxuICAgIGlmIG1heCA8IDEwIHRoZW4gaW52YWxpZF9hcmcgXCJ3aXRoX3JlZGlyZWN0c1wiO1xuICAgIGxldCB0YmwgPSBIYXNodGJsLmNyZWF0ZSAweDEwIGluXG4gICAgbGV0IHJlYyBnbyBtYXggdXJpID1cbiAgICAgIGYgdXJpID4+PSBmdW4gKHJlc3AsIGJvZHkpIC0+XG4gICAgICBsZXQgc3RhdHVzX2NvZGUgPVxuICAgICAgICBDb2h0dHAuKFJlc3BvbnNlLnN0YXR1cyByZXNwIHw+IENvZGUuY29kZV9vZl9zdGF0dXMpXG4gICAgICBpblxuICAgICAgaWYgQ29odHRwLkNvZGUuaXNfcmVkaXJlY3Rpb24gc3RhdHVzX2NvZGUgdGhlblxuICAgICAgICBtYXRjaFxuICAgICAgICAgIENvaHR0cC4oUmVzcG9uc2UuaGVhZGVycyByZXNwIHw+IEhlYWRlci5nZXRfbG9jYXRpb24pXG4gICAgICAgIHdpdGhcbiAgICAgICAgfCBTb21lIHVyaScgd2hlbiBIYXNodGJsLm1lbSB0YmwgdXJpJyB8fCBtYXggPSAwIC0+XG4gICAgICAgICAgICBMd3QucmV0dXJuIChyZXNwLCBib2R5KVxuICAgICAgICB8IFNvbWUgdXJpJyAtPlxuICAgICAgICAgICAgSGFzaHRibC5hZGQgdGJsIHVyaScgKCk7XG4gICAgICAgICAgICBDb2h0dHBfbHd0LkJvZHkuZHJhaW5fYm9keSBib2R5ID4+PSBmdW4gKCkgLT5cbiAgICAgICAgICAgIGdvIChwcmVkIG1heCkgdXJpJ1xuICAgICAgICB8IE5vbmUgLT4gTHd0LnJldHVybiAocmVzcCwgYm9keSlcbiAgICAgIGVsc2UgTHd0LnJldHVybiAocmVzcCwgYm9keSlcbiAgICBpblxuICAgIGdvIG1heCB1cmlcblxuICBsZXQgZ2V0IH5jdHg6XyA/KGhlYWRlcnMgPSBbXSkgdXJpID1cbiAgICBGaXJlYnVnLmNvbnNvbGUjI2xvZyAoSnMuc3RyaW5nIFwiR2l0X0NvaHR0cF9jb25zb2xlLmdldCgpXFxuXCIpO1xuICAgIGxldCBoZWFkZXJzID0gQ29odHRwLkhlYWRlci5vZl9saXN0IGhlYWRlcnMgaW5cbiAgICBsZXQgZiB1cmkgPSBDb2h0dHBfYmFja2VuZC5DbGllbnQuZ2V0IH5oZWFkZXJzIHVyaSBpblxuICAgIHdpdGhfcmVkaXJlY3RzIH5mIHVyaSA+Pj0gZnVuIChfcmVzcCwgYm9keSkgLT5cbiAgICBDb2h0dHBfbHd0LkJvZHkudG9fc3RyaW5nIGJvZHkgPj49IGZ1biBib2R5IC0+XG4gICAgTHd0LnJldHVybl9vayAoKCksIGJvZHkpXG5cbiAgbGV0IHBvc3QgfmN0eDpfID8oaGVhZGVycyA9IFtdKSB1cmkgYm9keSA9XG4gICAgbGV0IGhlYWRlcnMgPSBDb2h0dHAuSGVhZGVyLm9mX2xpc3QgaGVhZGVycyBpblxuICAgIGxldCBib2R5ID0gQ29odHRwX2x3dC5Cb2R5Lm9mX3N0cmluZyBib2R5IGluXG4gICAgbGV0IGYgdXJpID1cbiAgICAgIENvaHR0cF9iYWNrZW5kLkNsaWVudC5wb3N0IH5oZWFkZXJzIH5jaHVua2VkOmZhbHNlIH5ib2R5IHVyaVxuICAgIGluXG4gICAgd2l0aF9yZWRpcmVjdHMgfmYgdXJpID4+PSBmdW4gKF9yZXNwLCBib2R5KSAtPlxuICAgIENvaHR0cF9sd3QuQm9keS50b19zdHJpbmcgYm9keSA+Pj0gZnVuIGJvZHkgLT5cbiAgICBMd3QucmV0dXJuX29rICgoKSwgYm9keSlcbmVuZFxuXG5tb2R1bGUgR2l0X2NvbnNvbGVfaHR0cCA9IHN0cnVjdFxuICBvcGVuIEx3dC5JbmZpeFxuXG4gIGxldCBjb250ZXh0IGN0eCA9XG4gICAgKCogSFRUUCAqKVxuICAgIGxldCBlZG4gPSBNaW1pYy5tYWtlIH5uYW1lOlwiYWYtaHR0cC1lbmRwb2ludFwiIGluXG4gICAgbGV0IGsxIGdpdF9hZl9zY2hlbWUgZ2l0X2FmX2hvc3RuYW1lIGdpdF9hZl9wb3J0ID1cbiAgICAgIG1hdGNoIGdpdF9hZl9zY2hlbWUgd2l0aFxuICAgICAgfCBgSFRUUCAtPiBMd3QucmV0dXJuX3NvbWUgKGdpdF9hZl9ob3N0bmFtZSwgZ2l0X2FmX3BvcnQpXG4gICAgICB8IF8gLT4gTHd0LnJldHVybl9ub25lXG4gICAgaW5cbiAgICBsZXQgY3R4ID1cbiAgICAgIE1pbWljLmZvbGQgZWRuXG4gICAgICAgIE1pbWljLkZ1bi5cbiAgICAgICAgICBbXG4gICAgICAgICAgICByZXEgR2l0X2FmLmdpdF9hZl9zY2hlbWU7XG4gICAgICAgICAgICByZXEgR2l0X2FmLmdpdF9hZl9ob3N0bmFtZTtcbiAgICAgICAgICAgIGRmdCBHaXRfYWYuZ2l0X2FmX3BvcnQgODA7XG4gICAgICAgICAgXVxuICAgICAgICB+azprMSBjdHhcbiAgICBpblxuXG4gICAgKCogSFRUUFMgKilcbiAgICBsZXQgZWRuID0gTWltaWMubWFrZSB+bmFtZTpcImFmLWh0dHBzLWVuZHBvaW50XCIgaW5cbiAgICBsZXQgazEgZ2l0X2FmX3NjaGVtZSBnaXRfYWZfaG9zdG5hbWUgZ2l0X2FmX3BvcnQgPVxuICAgICAgbWF0Y2ggZ2l0X2FmX3NjaGVtZSB3aXRoXG4gICAgICB8IGBIVFRQUyAtPiBMd3QucmV0dXJuX3NvbWUgKGdpdF9hZl9ob3N0bmFtZSwgZ2l0X2FmX3BvcnQpXG4gICAgICB8IF8gLT4gTHd0LnJldHVybl9ub25lXG4gICAgaW5cblxuICAgIGxldCBjdHggPVxuICAgICAgTWltaWMuZm9sZCBlZG5cbiAgICAgICAgTWltaWMuRnVuLlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlcSBHaXRfYWYuZ2l0X2FmX3NjaGVtZTtcbiAgICAgICAgICAgIHJlcSBHaXRfYWYuZ2l0X2FmX2hvc3RuYW1lO1xuICAgICAgICAgICAgZGZ0IEdpdF9hZi5naXRfYWZfcG9ydCA0NDM7XG4gICAgICAgICAgXVxuICAgICAgICB+azprMSBjdHhcbiAgICBpblxuXG4gICAgY3R4XG5cbiAgbW9kdWxlIEhUVFAgPSBzdHJ1Y3RcbiAgICB0eXBlIHN0YXRlID1cbiAgICAgIHwgSGFuZHNoYWtlXG4gICAgICB8IEdldCBvZiB7XG4gICAgICAgICAgYWR2ZXJ0aXNlZF9yZWZzIDogc3RyaW5nO1xuICAgICAgICAgIHVyaSA6IFVyaS50O1xuICAgICAgICAgIGhlYWRlcnMgOiAoc3RyaW5nICogc3RyaW5nKSBsaXN0O1xuICAgICAgICAgIGN0eCA6IE1pbWljLmN0eDtcbiAgICAgICAgfVxuICAgICAgfCBQb3N0IG9mIHtcbiAgICAgICAgICBtdXRhYmxlIG91dHB1dCA6IHN0cmluZztcbiAgICAgICAgICB1cmkgOiBVcmkudDtcbiAgICAgICAgICBoZWFkZXJzIDogKHN0cmluZyAqIHN0cmluZykgbGlzdDtcbiAgICAgICAgICBjdHggOiBNaW1pYy5jdHg7XG4gICAgICAgIH1cbiAgICAgIHwgRXJyb3JcblxuICAgIHR5cGUgZmxvdyA9IHsgZW5kcG9pbnQgOiBVcmkudDsgbXV0YWJsZSBzdGF0ZSA6IHN0YXRlIH1cbiAgICB0eXBlIGVycm9yID0gWyBgTXNnIG9mIHN0cmluZyBdXG4gICAgdHlwZSB3cml0ZV9lcnJvciA9IFsgYENsb3NlZCB8IGBNc2cgb2Ygc3RyaW5nIF1cblxuICAgIGxldCBwcF9lcnJvciBwcGYgKGBNc2cgZXJyKSA9IEZtdC5zdHJpbmcgcHBmIGVyclxuXG4gICAgbGV0IHBwX3dyaXRlX2Vycm9yIHBwZiA9IGZ1bmN0aW9uXG4gICAgICB8IGBDbG9zZWQgLT4gRm10LnN0cmluZyBwcGYgXCJDb25uZWN0aW9uIGNsb3NlZCBieSBwZWVyXCJcbiAgICAgIHwgYE1zZyBlcnIgLT4gRm10LnN0cmluZyBwcGYgZXJyXG5cbiAgICBsZXQgd3JpdGUgdCBjcyA9XG4gICAgICBtYXRjaCB0LnN0YXRlIHdpdGhcbiAgICAgIHwgSGFuZHNoYWtlIHwgR2V0IF8gLT5cbiAgICAgICAgICBMd3QucmV0dXJuX2Vycm9yIChgTXNnIFwiSGFuZHNoYWtlIGhhcyBub3QgYmVlbiBkb25lXCIpXG4gICAgICB8IEVycm9yIC0+IEx3dC5yZXR1cm5fZXJyb3IgKGBNc2cgXCJIYW5kc2hha2UgZ290IGFuIGVycm9yXCIpXG4gICAgICB8IFBvc3QgKHsgb3V0cHV0OyBfIH0gYXMgdikgLT5cbiAgICAgICAgICBsZXQgb3V0cHV0ID0gb3V0cHV0IF4gQ3N0cnVjdC50b19zdHJpbmcgY3MgaW5cbiAgICAgICAgICB2Lm91dHB1dCA8LSBvdXRwdXQ7XG4gICAgICAgICAgTHd0LnJldHVybl9vayAoKVxuXG4gICAgbGV0IHdyaXRldiB0IGNzcyA9XG4gICAgICBsZXQgcmVjIGdvID0gZnVuY3Rpb25cbiAgICAgICAgfCBbXSAtPiBMd3QucmV0dXJuX29rICgpXG4gICAgICAgIHwgeCA6OiByIC0+IChcbiAgICAgICAgICAgIHdyaXRlIHQgeCA+Pj0gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgT2sgKCkgLT4gZ28gclxuICAgICAgICAgICAgfCBFcnJvciBfIGFzIGVyciAtPiBMd3QucmV0dXJuIGVycilcbiAgICAgIGluXG4gICAgICBnbyBjc3NcblxuICAgIGxldCByZWFkIHQgPVxuICAgICAgbWF0Y2ggdC5zdGF0ZSB3aXRoXG4gICAgICB8IEhhbmRzaGFrZSAtPlxuICAgICAgICAgIEx3dC5yZXR1cm5fZXJyb3IgKGBNc2cgXCJIYW5kc2hha2UgaGFzIG5vdCBiZWVuIGRvbmVcIilcbiAgICAgIHwgRXJyb3IgLT4gTHd0LnJldHVybl9lcnJvciAoYE1zZyBcIkhhbmRzaGFrZSBnb3QgYW4gZXJyb3JcIilcbiAgICAgIHwgR2V0IHsgYWR2ZXJ0aXNlZF9yZWZzOyB1cmk7IGhlYWRlcnM7IGN0eCB9IC0+XG4gICAgICAgICAgdC5zdGF0ZSA8LSBQb3N0IHsgb3V0cHV0ID0gXCJcIjsgdXJpOyBoZWFkZXJzOyBjdHggfTtcbiAgICAgICAgICBMd3QucmV0dXJuX29rIChgRGF0YSAoQ3N0cnVjdC5vZl9zdHJpbmcgYWR2ZXJ0aXNlZF9yZWZzKSlcbiAgICAgIHwgUG9zdCB7IG91dHB1dDsgdXJpOyBoZWFkZXJzOyBjdHggfSAtPiAoXG4gICAgICAgICAgR2l0X2FmLnBvc3QgfmN0eCB+aGVhZGVycyB1cmkgb3V0cHV0ID4+PSBmdW5jdGlvblxuICAgICAgICAgIHwgT2sgKF9yZXNwLCBjb250ZW50cykgLT5cbiAgICAgICAgICAgICAgTHd0LnJldHVybl9vayAoYERhdGEgKENzdHJ1Y3Qub2Zfc3RyaW5nIGNvbnRlbnRzKSlcbiAgICAgICAgICB8IEVycm9yIGVyciAtPlxuICAgICAgICAgICAgICBMd3QucmV0dXJuX2Vycm9yIChgTXNnIChGbXQuc3RyIFwiJWFcIiBwcF9lcnJvciBlcnIpKSlcblxuICAgIGxldCBjbG9zZSBfID0gTHd0LnJldHVybl91bml0XG5cbiAgICB0eXBlIGVuZHBvaW50ID0gVXJpLnRcblxuICAgIGxldCBjb25uZWN0IGVuZHBvaW50ID1cbiAgICAgIEZpcmVidWcuY29uc29sZSMjbG9nXG4gICAgICAgIChKcy5zdHJpbmcgXCJHaXRfQ29uc29sZV9odHRwLkhUVFAuY29ubmVjdCgpXFxuXCIpO1xuICAgICAgTHd0LnJldHVybl9vayB7IGVuZHBvaW50OyBzdGF0ZSA9IEhhbmRzaGFrZSB9XG4gIGVuZFxuXG4gIGxldCBodHRwX2VuZHBvaW50LCBodHRwX3Byb3RvY29sID1cbiAgICBNaW1pYy5yZWdpc3RlciB+bmFtZTpcImh0dHBcIiAobW9kdWxlIEhUVFApXG5cbiAgbGV0IGNvbm5lY3QgKGN0eCA6IE1pbWljLmN0eCkgPVxuICAgIEZpcmVidWcuY29uc29sZSMjbG9nIChKcy5zdHJpbmcgXCJHaXRfQ29uc29sZV9odHRwLmNvbm5lY3QoKVxcblwiKTtcbiAgICBsZXQgbW9kdWxlIFQgPSAodmFsIE1pbWljLnJlcHIgaHR0cF9wcm90b2NvbCkgaW5cbiAgICBsZXQgZWRuID0gTWltaWMubWFrZSB+bmFtZTpcImh0dHAtZW5kcG9pbnRcIiBpblxuICAgIGxldCBrMCB1cmkgPSBMd3QucmV0dXJuX3NvbWUgdXJpIGluXG4gICAgbGV0IGsxIGdpdF90cmFuc21pc3Npb24gZ2l0X3NjaGVtZSA9XG4gICAgICBtYXRjaCAoZ2l0X3RyYW5zbWlzc2lvbiwgZ2l0X3NjaGVtZSkgd2l0aFxuICAgICAgfCBgSFRUUCAodXJpLCBfKSwgKGBIVFRQIHwgYEhUVFBTKSAtPiBMd3QucmV0dXJuX3NvbWUgdXJpXG4gICAgICB8IF8gLT4gTHd0LnJldHVybl9ub25lXG4gICAgaW5cbiAgICBsZXQgazIgZ2l0X3NjaGVtZSBnaXRfdXJpIGdpdF9odHRwX2hlYWRlcnMgPVxuICAgICAgbWF0Y2ggZ2l0X3NjaGVtZSB3aXRoXG4gICAgICB8IGBHaXQgfCBgU1NIIHwgYFNjaGVtZSBfIC0+IEx3dC5yZXR1cm5fbm9uZVxuICAgICAgfCBgSFRUUCB8IGBIVFRQUyAtPlxuICAgICAgICAgIGxldCBoZWFkZXJzID1cbiAgICAgICAgICAgIChcImNvbnRlbnQtdHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtZ2l0LXVwbG9hZC1wYWNrLXJlcXVlc3RcIilcbiAgICAgICAgICAgIDo6IGdpdF9odHRwX2hlYWRlcnNcbiAgICAgICAgICBpblxuICAgICAgICAgIGxldCBoYW5kc2hha2UgfnVyaTAgfnVyaTEgPSBmdW5jdGlvblxuICAgICAgICAgICAgfCBULlQgZmxvdyAtPiAoXG4gICAgICAgICAgICAgICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2dcbiAgICAgICAgICAgICAgICAgIChKcy5zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIChGLnN0clxuICAgICAgICAgICAgICAgICAgICAgICAgXCJHaXRfQ29uc29sZV9odHRwLmNvbm5lY3QuazIuaGFuZHNoYWtlIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgdXJpMD0nJXMnIHVyaTE9JyVzJ1xcblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoVXJpLnRvX3N0cmluZyB1cmkwKSAoVXJpLnRvX3N0cmluZyB1cmkxKSkpO1xuICAgICAgICAgICAgICAgIGxldCBjdHggPSBjb250ZXh0IE1pbWljLmVtcHR5IGluXG4gICAgICAgICAgICAgICAgR2l0X2FmLmdldCB+Y3R4IH5oZWFkZXJzIHVyaTAgPj49IGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgfCBPayAoX3Jlc3AsIGFkdmVydGlzZWRfcmVmcykgLT5cbiAgICAgICAgICAgICAgICAgICAgZmxvdy5zdGF0ZSA8LVxuICAgICAgICAgICAgICAgICAgICAgIEhUVFAuR2V0XG4gICAgICAgICAgICAgICAgICAgICAgICB7IGFkdmVydGlzZWRfcmVmczsgdXJpID0gdXJpMTsgaGVhZGVyczsgY3R4IH07XG4gICAgICAgICAgICAgICAgICAgIEx3dC5yZXR1cm5fdW5pdFxuICAgICAgICAgICAgICAgIHwgRXJyb3IgXyAtPlxuICAgICAgICAgICAgICAgICAgICBmbG93LnN0YXRlIDwtIEVycm9yO1xuICAgICAgICAgICAgICAgICAgICBMd3QucmV0dXJuX3VuaXQpXG4gICAgICAgICAgICB8IF8gLT4gTHd0LnJldHVybl91bml0XG4gICAgICAgICAgaW5cbiAgICAgICAgICBsZXQgZ2l0X3RyYW5zbWlzc2lvbiA9IGBIVFRQIChnaXRfdXJpLCBoYW5kc2hha2UpIGluXG4gICAgICAgICAgTHd0LnJldHVybl9zb21lIGdpdF90cmFuc21pc3Npb25cbiAgICBpblxuICAgIGxldCBjdHggPVxuICAgICAgTWltaWMuZm9sZCBodHRwX2VuZHBvaW50IE1pbWljLkZ1bi5bIHJlcSBlZG4gXSB+azprMCBjdHhcbiAgICBpblxuICAgIGxldCBjdHggPVxuICAgICAgTWltaWMuZm9sZCBlZG5cbiAgICAgICAgTWltaWMuRnVuLlxuICAgICAgICAgIFsgcmVxIFNtYXJ0X2dpdC5naXRfdHJhbnNtaXNzaW9uOyByZXEgU21hcnRfZ2l0LmdpdF9zY2hlbWUgXVxuICAgICAgICB+azprMSBjdHhcbiAgICBpblxuICAgIGxldCBjdHggPVxuICAgICAgTWltaWMuZm9sZCBTbWFydF9naXQuZ2l0X3RyYW5zbWlzc2lvblxuICAgICAgICBNaW1pYy5GdW4uXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVxIFNtYXJ0X2dpdC5naXRfc2NoZW1lO1xuICAgICAgICAgICAgcmVxIFNtYXJ0X2dpdC5naXRfdXJpO1xuICAgICAgICAgICAgZGZ0IFNtYXJ0X2dpdC5naXRfaHR0cF9oZWFkZXJzIExpc3QuW107XG4gICAgICAgICAgXVxuICAgICAgICB+azprMiBjdHhcbiAgICBpblxuICAgIEx3dC5yZXR1cm4gY3R4XG5lbmRcblxubW9kdWxlIE5hdiA9IHN0cnVjdFxuICBvcGVuIEx3dC5JbmZpeFxuXG4gIG1vZHVsZSBDb25maWcgPSBzdHJ1Y3RcbiAgICBvcGVuIElybWluLkJhY2tlbmQuQ29uZlxuXG4gICAgbGV0IHNwZWMgPSBTcGVjLnYgXCJjb25zb2xlX2pzX2dpdFwiXG5cbiAgICBtb2R1bGUgS2V5ID0gc3RydWN0XG4gICAgICBsZXQgcmVmZXJlbmNlIDogR2l0LlJlZmVyZW5jZS50IElybWluLlR5cGUudCA9XG4gICAgICAgIGxldCBvZl9zdHJpbmcgc3RyID1cbiAgICAgICAgICBHaXQuUmVmZXJlbmNlLm9mX3N0cmluZyBzdHIgfD4gUmVzdWx0LmdldF9va1xuICAgICAgICBpblxuICAgICAgICBsZXQgdG9fc3RyaW5nIHIgPSBHaXQuUmVmZXJlbmNlLnRvX3N0cmluZyByIGluXG4gICAgICAgIElybWluLlR5cGUuKG1hcCBzdHJpbmcpIG9mX3N0cmluZyB0b19zdHJpbmdcblxuICAgICAgbGV0IGhlYWQgPVxuICAgICAgICBrZXkgfnNwZWMgfmRvYzpcIlRoZSBtYWluIGJyYW5jaCBvZiB0aGUgR2l0IHJlcG9zaXRvcnkuXCIgXCJoZWFkXCJcbiAgICAgICAgICBJcm1pbi5UeXBlLihvcHRpb24gcmVmZXJlbmNlKVxuICAgICAgICAgIE5vbmVcblxuICAgICAgbGV0IGJhcmUgPVxuICAgICAgICBrZXkgfnNwZWMgfmRvYzpcIkRvIG5vdCBleHBhbmQgdGhlIGZpbGVzeXN0ZW0gb24gdGhlIGRpc2suXCJcbiAgICAgICAgICBcImJhcmVcIiBJcm1pbi5UeXBlLmJvb2wgZmFsc2VcblxuICAgICAgbGV0IGxldmVsID1cbiAgICAgICAga2V5IH5zcGVjIH5kb2M6XCJUaGUgWmxpYiBjb21wcmVzc2lvbiBsZXZlbC5cIiBcImxldmVsXCJcbiAgICAgICAgICBJcm1pbi5UeXBlLihvcHRpb24gaW50KVxuICAgICAgICAgIE5vbmVcblxuICAgICAgbGV0IGJ1ZmZlcnMgPVxuICAgICAgICBrZXkgfnNwZWMgfmRvYzpcIlRoZSBudW1iZXIgb2YgNEsgcHJlLWFsbG9jYXRlZCBidWZmZXJzLlwiXG4gICAgICAgICAgXCJidWZmZXJzXCJcbiAgICAgICAgICBJcm1pbi5UeXBlLihvcHRpb24gaW50KVxuICAgICAgICAgIE5vbmVcbiAgICBlbmRcblxuICAgIGxldCBpbml0ID9oZWFkID9sZXZlbCA/YnVmZmVycyBfcm9vdCA9XG4gICAgICBsZXQgbW9kdWxlIEMgPSBJcm1pbi5CYWNrZW5kLkNvbmYgaW5cbiAgICAgIGxldCBjb25maWcgPSBDLmVtcHR5IHNwZWMgaW5cblxuICAgICAgbGV0IGNvbmZpZyA9IEMuYWRkIGNvbmZpZyBLZXkuaGVhZCBoZWFkIGluXG4gICAgICBsZXQgY29uZmlnID0gQy5hZGQgY29uZmlnIEtleS5sZXZlbCBsZXZlbCBpblxuICAgICAgbGV0IGNvbmZpZyA9IEMuYWRkIGNvbmZpZyBLZXkuYnVmZmVycyBidWZmZXJzIGluXG4gICAgICBDLnZlcmlmeSBjb25maWdcbiAgZW5kXG5cbiAgbW9kdWxlIFMgPSBzdHJ1Y3RcbiAgICBtb2R1bGUgU2NoZW1hID1cbiAgICAgIElybWluX2dpdC5TY2hlbWEuTWFrZSAoR2l0Lk1lbS5TdG9yZSkgKElybWluLkNvbnRlbnRzLlN0cmluZylcbiAgICAgICAgKElybWluX2dpdC5CcmFuY2guTWFrZSAoSXJtaW4uQnJhbmNoLlN0cmluZykpXG5cbiAgICBtb2R1bGUgU3luYycgPSBzdHJ1Y3RcbiAgICAgIG1vZHVsZSBHaXRNZW1TeW5jID0gR2l0Lk1lbS5TeW5jIChHaXQuTWVtLlN0b3JlKVxuICAgICAgaW5jbHVkZSBHaXRNZW1TeW5jXG4gICAgICAoKiBUaGlzIGlzIHdoZXJlIHRoZSBmZXRjaCBhbmQgcHVzaCBhcmUgYnJva2VuICopXG4gICAgZW5kXG5cbiAgICBtb2R1bGUgU01ha2VyID0gSXJtaW5fZ2l0Lk1ha2VyIChHaXQuTWVtLlN0b3JlKSAoU3luYycpXG4gICAgbW9kdWxlIFNNYWRlID0gU01ha2VyLk1ha2UgKFNjaGVtYSlcbiAgICBpbmNsdWRlIFNNYWRlXG5cbiAgICB0eXBlIGVuZHBvaW50ID0gTWltaWMuY3R4ICogU21hcnRfZ2l0LkVuZHBvaW50LnRcblxuICAgIGxldCByZW1vdGUgPyhjdHggPSBNaW1pYy5lbXB0eSkgP2hlYWRlcnMgdXJpID1cbiAgICAgIEVcbiAgICAgICAgKEZpcmVidWcuY29uc29sZSMjbG9nIChKcy5zdHJpbmcgXCJOYXYuUy5yZW1vdGUoKVxcblwiKTtcbiAgICAgICAgIGxldCAoICEgKSBmIGEgYiA9IGYgYiBhIGluXG4gICAgICAgICBtYXRjaCBTbWFydF9naXQuRW5kcG9pbnQub2Zfc3RyaW5nIHVyaSB3aXRoXG4gICAgICAgICB8IE9rIGVkbiAtPlxuICAgICAgICAgICAgIGxldCBlZG4gPVxuICAgICAgICAgICAgICAgT3B0aW9uLmZvbGQgfm5vbmU6ZWRuXG4gICAgICAgICAgICAgICAgIH5zb21lOighU21hcnRfZ2l0LkVuZHBvaW50LndpdGhfaGVhZGVyc19pZl9odHRwIGVkbilcbiAgICAgICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgRmlyZWJ1Zy5jb25zb2xlIyNsb2dcbiAgICAgICAgICAgICAgIChKcy5zdHJpbmcgXCJOYXYuUy5yZW1vdGUoKSA9IChjdHgsIGVkbikgXFxuXCIpO1xuICAgICAgICAgICAgIChjdHgsIGVkbilcbiAgICAgICAgIHwgRXJyb3IgKGBNc2cgZXJyKSAtPiBGbXQuaW52YWxpZF9hcmcgXCJyZW1vdGU6ICVzXCIgZXJyKVxuXG4gICAgbW9kdWxlIEJhY2tlbmQgPSBzdHJ1Y3RcbiAgICAgIGluY2x1ZGUgQmFja2VuZFxuICAgICAgbW9kdWxlIFIgPSBSZW1vdGVcblxuICAgICAgbW9kdWxlIFJlbW90ZSA9IHN0cnVjdFxuICAgICAgICBpbmNsdWRlIFJcblxuICAgICAgICB0eXBlIGVuZHBvaW50ID0gTWltaWMuY3R4ICogU21hcnRfZ2l0LkVuZHBvaW50LnRcblxuICAgICAgICBsZXQgY3R4IGUgPSBmc3QgZVxuICAgICAgICBsZXQgZWRuIGUgPSBzbmQgZVxuXG4gICAgICAgIGxldCBmZXRjaCB0ID9kZXB0aCBlbmRwb2ludCBicmFuY2ggPVxuICAgICAgICAgIEZpcmVidWcuY29uc29sZSMjbG9nXG4gICAgICAgICAgICAoSnMuc3RyaW5nIFwiUy5CYWNrZW5kLlJlbW90ZS53cmFwcGVkX2ZldGNoKClcXG5cIik7XG4gICAgICAgICAgUi5mZXRjaCB0ID9kZXB0aCBlbmRwb2ludCBicmFuY2hcbiAgICAgIGVuZFxuICAgIGVuZFxuICBlbmRcblxuICBtb2R1bGUgU3luYyA9IElybWluLlN5bmMuTWFrZSAoUylcblxuICB0eXBlIHQgPSBTLnRyZWVcbiAgdHlwZSB0cmVlID0gdFxuICB0eXBlIHN0ZXAgPSBTLnN0ZXBcbiAgdHlwZSBwYXRoID0gc3RlcCBsaXN0XG5cbiAgbGV0IGluaXQgKCkgPSBTLlJlcG8udiAoSXJtaW5fbWVtLmNvbmZpZyAoKSkgPj49IFMubWFpbiA+Pj0gUy50cmVlXG5cbiAgbGV0IHRlc3RfcG9wdWxhdGUgKCkgOiB0IEx3dC50ID1cbiAgICBsZXQgYWRkIHAgcyB0ID0gUy5UcmVlLmFkZCB0IHAgcyBpblxuICAgIGFkZCBbIFwiaGVsbG9cIiBdIFwid29ybGRcIiAoUy5UcmVlLmVtcHR5ICgpKVxuICAgID4+PSBhZGQgWyBcImhlbGxvXCI7IFwiZGFkZHlcIiBdIFwiaWx5XCJcbiAgICA+Pj0gYWRkIFsgXCJiZWVwXCI7IFwiYmVlcFwiIF0gXCJtb3RoZXJmdWNrZXJcIlxuXG4gIGxldCB0ZXN0X3B1bGwgKCkgOiB0IEx3dC50ID1cbiAgICAoKiB0ZXN0X3BvcHVsYXRlICgpKilcbiAgICBTLlJlcG8udiAoQ29uZmlnLmluaXQgXCJcIikgPj49IGZ1biByZXBvIC0+XG4gICAgUy5vZl9icmFuY2ggcmVwbyBcImN1cnJlbnRcIiA+Pj0gZnVuIHQgLT5cbiAgICBHaXRfY29uc29sZV9odHRwLmNvbm5lY3QgTWltaWMuZW1wdHkgPj49IGZ1biBjdHggLT5cbiAgICBsZXQgdXBzdHJlYW0gPVxuICAgICAgUy5yZW1vdGUgfmN0eCBcImh0dHBzOi8vbG9jYWxob3N0OjgwODAvY29uc29sZS9yb290c3RvcmUuZ2l0XCJcbiAgICBpblxuICAgIFN5bmMuZmV0Y2hfZXhuIHQgdXBzdHJlYW0gPj49IGZ1biBfIC0+IFMudHJlZSB0XG5lbmRcblxubW9kdWxlIElucHV0ID0gc3RydWN0XG4gIHR5cGUgYnV0dG9uID1cbiAgICBbIGBMZWZ0IHwgYE1pZGRsZSB8IGBSaWdodCB8IGBTY3JvbGwgb2YgWyBgVXAgfCBgRG93biBdIF1cblxuICB0eXBlIHNwZWNpYWwgPVxuICAgIFsgYEVudGVyXG4gICAgfCBgRXNjYXBlXG4gICAgfCBgVGFiXG4gICAgfCBgQXJyb3cgb2YgWyBgVXAgfCBgRG93biB8IGBMZWZ0IHwgYFJpZ2h0IF1cbiAgICB8IGBGdW5jdGlvbiBvZiBpbnRcbiAgICB8IGBQYWdlIG9mIFsgYFVwIHwgYERvd24gXVxuICAgIHwgYEhvbWVcbiAgICB8IGBFbmRcbiAgICB8IGBJbnNlcnRcbiAgICB8IGBEZWxldGVcbiAgICB8IGBCYWNrc3BhY2VcbiAgICB8IGBVbmtub3duIG9mIHN0cmluZyBdXG5cbiAgKCogVHlwZSBvZiBrZXkgY29kZS4gKilcbiAgdHlwZSBjb2RlID1cbiAgICBbIGBVY2hhciBvZiBVY2hhci50ICgqIEEgdW5pY29kZSBjaGFyYWN0ZXIuICopIHwgc3BlY2lhbCBdXG5cbiAgKCogc3RvbGVuIGZyb20gbGFtYmRhLXRlcm0vc3JjL2xUZXJtX3tlZGl0LGtleX0ubWx7LGl9ICopXG4gIGxldCBzdHJpbmdfb2ZfY29kZSA9IGZ1bmN0aW9uXG4gICAgfCBgVWNoYXIgY2ggLT5cbiAgICAgICAgaWYgVWNoYXIuaXNfY2hhciBjaCB0aGVuIEYuc3RyIFwiQ2hhciAnJWMnXCIgKFVjaGFyLnRvX2NoYXIgY2gpXG4gICAgICAgIGVsc2UgRi5zdHIgXCJDaGFyIDB4JTAyeFwiIChVY2hhci50b19pbnQgY2gpXG4gICAgfCBgRW50ZXIgLT4gXCJFbnRlclwiXG4gICAgfCBgRXNjYXBlIC0+IFwiRXNjYXBlXCJcbiAgICB8IGBUYWIgLT4gXCJUYWJcIlxuICAgIHwgYEFycm93IGBVcCAtPiBcIlVwXCJcbiAgICB8IGBBcnJvdyBgRG93biAtPiBcIkRvd25cIlxuICAgIHwgYEFycm93IGBMZWZ0IC0+IFwiTGVmdFwiXG4gICAgfCBgQXJyb3cgYFJpZ2h0IC0+IFwiUmlnaHRcIlxuICAgIHwgYEZ1bmN0aW9uIGkgLT4gRi5zdHIgXCJGJWRcIiBpXG4gICAgfCBgUGFnZSBgVXAgLT4gXCJQYWdlIFVwXCJcbiAgICB8IGBQYWdlIGBEb3duIC0+IFwiUGFnZSBEb3duXCJcbiAgICB8IGBIb21lIC0+IFwiSG9tZVwiXG4gICAgfCBgRW5kIC0+IFwiRW5kXCJcbiAgICB8IGBJbnNlcnQgLT4gXCJJbnNlcnRcIlxuICAgIHwgYERlbGV0ZSAtPiBcIkRlbGV0ZVwiXG4gICAgfCBgQmFja3NwYWNlIC0+IFwiQmFja3NwYWNlXCJcbiAgICB8IGBVbmtub3duIHMgLT4gU3RyaW5nLmNvbmNhdCBcIlVua25vd24gXCIgWyBcIlxcXCJcIjsgczsgXCJcXFwiXCIgXVxuICAgIHwgXyAtPiBcIkNvZGUgVW5rbm93biFcIlxuXG4gIGxldCBwcF9jb2RlIHBwZiB2ID0gRi5wZiBwcGYgXCIlc1wiIChzdHJpbmdfb2ZfY29kZSB2KVxuXG4gIHR5cGUgbW9kcyA9IFsgYFN1cGVyIHwgYE1ldGEgfCBgQ3RybCB8IGBTaGlmdCBdIGxpc3RcblxuICBsZXQgcHBfbW9kcyA9XG4gICAgRi4oXG4gICAgICBsaXN0IH5zZXA6Ri5zcCAoZnVuIHBwZiAtPiBmdW5jdGlvblxuICAgICAgICB8IGBTdXBlciAtPiBwZiBwcGYgXCJgU3VwZXJcIlxuICAgICAgICB8IGBNZXRhIC0+IHBmIHBwZiBcImBNZXRhXCJcbiAgICAgICAgfCBgQ3RybCAtPiBwZiBwcGYgXCJgQ3RybFwiXG4gICAgICAgIHwgYFNoaWZ0IC0+IHBmIHBwZiBcImBTaGlmdFwiKSlcblxuICB0eXBlIG1vdXNlID1cbiAgICBbIGBQcmVzcyBvZiBidXR0b24gfCBgRHJhZyB8IGBSZWxlYXNlIF0gKiAoZmxvYXQgKiBmbG9hdCkgKiBtb2RzXG5cbiAgdHlwZSBwYXN0ZSA9IFsgYFN0YXJ0IHwgYEVuZCBdXG4gIHR5cGUga2V5YWN0aW9uID0gWyBgUHJlc3MgfCBgUmVsZWFzZSB8IGBSZXBlYXQgXVxuZW5kXG5cbm1vZHVsZSBFdmVudF9qcyA9IHN0cnVjdFxuICBvcGVuIEpzX29mX29jYW1sXG5cbiAgbGV0IGV2dF9vZl9qc2tleSAoZXZ0IDogRG9tX2h0bWwua2V5Ym9hcmRFdmVudCBKcy50KSA9XG4gICAgKCAobWF0Y2ggSnMuT3B0ZGVmLnRvX29wdGlvbiBldnQjIy5rZXkgd2l0aFxuICAgICAgfCBTb21lIHMgLT4gKFxuICAgICAgICAgIG1hdGNoIEpzLnRvX3N0cmluZyBzIHdpdGhcbiAgICAgICAgICB8IFwiRW50ZXJcIiAtPiBgRW50ZXJcbiAgICAgICAgICB8IFwiRXNjYXBlXCIgLT4gYEVzY2FwZVxuICAgICAgICAgIHwgXCJUYWJcIiAtPiBgVGFiXG4gICAgICAgICAgfCBcIkFycm93VXBcIiAtPiBgQXJyb3cgYFVwXG4gICAgICAgICAgfCBcIkFycm93RG93blwiIC0+IGBBcnJvdyBgRG93blxuICAgICAgICAgIHwgXCJBcnJvd0xlZnRcIiAtPiBgQXJyb3cgYExlZnRcbiAgICAgICAgICB8IFwiQXJyb3dSaWdodFwiIC0+IGBBcnJvdyBgUmlnaHRcbiAgICAgICAgICB8IFwiUGFnZVVwXCIgLT4gYFBhZ2UgYFVwXG4gICAgICAgICAgfCBcIlBhZ2VEb3duXCIgLT4gYFBhZ2UgYERvd25cbiAgICAgICAgICB8IFwiSG9tZVwiIC0+IGBIb21lXG4gICAgICAgICAgfCBcIkVuZFwiIC0+IGBFbmRcbiAgICAgICAgICB8IFwiSW5zZXJ0XCIgLT4gYEluc2VydFxuICAgICAgICAgIHwgXCJEZWxldGVcIiAtPiBgRGVsZXRlXG4gICAgICAgICAgfCBcIkJhY2tzcGFjZVwiIC0+IGBCYWNrc3BhY2VcbiAgICAgICAgICB8IHMgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBEb21faHRtbC5LZXlib2FyZF9rZXkub2ZfZXZlbnQgZXZ0IHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHMnIC0+IGBVY2hhciBzJ1xuICAgICAgICAgICAgICB8IE5vbmUgLT4gYFVua25vd24gcykpXG4gICAgICB8IE5vbmUgLT4gYFVua25vd24gXCJrZXlwcmVzcyAua2V5IGlzIE5vbmU/XCIpLFxuICAgICAgKGlmIEpzLnRvX2Jvb2wgZXZ0IyMuYWx0S2V5IHRoZW4gWyBgTWV0YSBdIGVsc2UgW10pXG4gICAgICBAIChpZiBKcy50b19ib29sIGV2dCMjLnNoaWZ0S2V5IHRoZW4gWyBgU2hpZnQgXSBlbHNlIFtdKVxuICAgICAgQCAoaWYgSnMudG9fYm9vbCBldnQjIy5jdHJsS2V5IHRoZW4gWyBgQ3RybCBdIGVsc2UgW10pXG4gICAgICBAIGlmIEpzLnRvX2Jvb2wgZXZ0IyMubWV0YUtleSB0aGVuIFsgYFN1cGVyIF0gZWxzZSBbXSApXG5lbmRcblxub3BlbiBHZ1xuXG5tb2R1bGUgTlZHID0gc3RydWN0XG4gIGluY2x1ZGUgR3JhcGh2X3dlYmdsXG5cbiAgbW9kdWxlIENvbG9yID0gc3RydWN0XG4gICAgaW5jbHVkZSBHcmFwaHZfd2ViZ2wuQ29sb3JcblxuICAgIGxldCBub25lID0gQ29sb3IudHJhbnNwYXJlbnRcbiAgICBsZXQgcmdiZiA9IENvbG9yLnJnYmZcbiAgICBsZXQgZ3JheSBhID0gcmdiZiB+cjphIH5nOmEgfmI6YVxuICAgIGxldCBsaWdodCA9IGdyYXkgMC44XG4gICAgbGV0IGRhcmsgPSBncmF5IDAuMlxuXG4gICAgbGV0IGJsYWNrID0gZ3JheSAwLlxuICAgIGFuZCByZWQgPSByZ2JmIH5yOjEuIH5nOjAuIH5iOjAuXG4gICAgYW5kIGdyZWVuID0gcmdiZiB+cjowLiB+ZzoxLiB+YjowLlxuICAgIGFuZCB5ZWxsb3cgPSByZ2JmIH5yOjEuIH5nOjEuIH5iOjAuXG4gICAgYW5kIGJsdWUgPSByZ2JmIH5yOjAuIH5nOjAuIH5iOjEuXG4gICAgYW5kIG1hZ2VudGEgPSByZ2JmIH5yOjEuIH5nOjAuIH5iOjEuXG4gICAgYW5kIGN5YW4gPSByZ2JmIH5yOjAuIH5nOjEuIH5iOjEuXG4gICAgYW5kIHdoaXRlID0gcmdiZiB+cjoxLiB+ZzoxLiB+YjoxLlxuICAgIGFuZCBsaWdodGJsYWNrID0gZ3JheSAwLjVcbiAgICBhbmQgbGlnaHRyZWQgPSByZ2JmIH5yOjEuMCB+ZzowLjUgfmI6MC41XG4gICAgYW5kIGxpZ2h0Z3JlZW4gPSByZ2JmIH5yOjAuNSB+ZzoxLjAgfmI6MC41XG4gICAgYW5kIGxpZ2h0eWVsbG93ID0gcmdiZiB+cjoxLjAgfmc6MS4wIH5iOjAuNVxuICAgIGFuZCBsaWdodGJsdWUgPSByZ2JmIH5yOjAuNSB+ZzowLjUgfmI6MS4wXG4gICAgYW5kIGxpZ2h0bWFnZW50YSA9IHJnYmYgfnI6MS4wIH5nOjAuNSB+YjoxLjBcbiAgICBhbmQgbGlnaHRjeWFuID0gcmdiZiB+cjowLjUgfmc6MS4wIH5iOjEuMFxuICAgIGFuZCBsaWdodHdoaXRlID0gcmdiZiB+cjoxLjAgfmc6MS4wIH5iOjEuMFxuXG4gICAgbGV0ICggPSApIGEgYiA9IGEuciA9IGIuciAmJiBhLmcgPSBiLmcgJiYgYS5iID0gYi5iICYmIGEuYSA9IGIuYVxuXG4gICAgbGV0ICggKysgKSBhIGIgPVxuICAgICAge1xuICAgICAgICByID0gRmxvYXQuY2xhbXAgfm1pbjowLiB+bWF4OjEuIChhLnIgKy4gYi5yKTtcbiAgICAgICAgZyA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5nICsuIGIuZyk7XG4gICAgICAgIGIgPSBGbG9hdC5jbGFtcCB+bWluOjAuIH5tYXg6MS4gKGEuYiArLiBiLmIpO1xuICAgICAgICBhID0gRmxvYXQuY2xhbXAgfm1pbjowLiB+bWF4OjEuIChhLmEgKy4gYi5hKTtcbiAgICAgIH1cblxuICAgIGxldCByZXBsYWNlIH5wcmV2IH5uZXh0ID0gaWYgbmV4dCA9IG5vbmUgdGhlbiBwcmV2IGVsc2UgbmV4dFxuXG4gICAgbGV0IHBwIHBwZiB0IDogdW5pdCA9XG4gICAgICBpZiB0ICE9IG5vbmUgdGhlblxuICAgICAgICBGLihcbiAgICAgICAgICBmbXQgXCIlYVwiIHBwZlxuICAgICAgICAgICAgKGxpc3QgKGZtdCBcIiUwMlhcIikpXG4gICAgICAgICAgICAoTGlzdC5tYXBcbiAgICAgICAgICAgICAgIChmdW4gZSAtPiBpbnRfb2ZfZmxvYXQgKGUgKi4gMjU1LikpXG4gICAgICAgICAgICAgICBbIHQucjsgdC5nOyB0LmI7IHQuYSBdKSlcbiAgICAgIGVsc2UgRi5mbXQgXCJfXCIgcHBmXG4gIGVuZFxuZW5kXG5cbm1vZHVsZSBDb2xvciA9IE5WRy5Db2xvclxuXG4oKiBmcm9tIG5vdHR5Lm1sICopXG5sZXQgYnR3ICh4IDogaW50KSBhIGIgPSBhIDw9IHggJiYgeCA8PSBiXG5cbm1vZHVsZSBCdWZmZXIgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTdGRsaWIuQnVmZmVyXG5cbiAgbGV0IGJ1ZiA9IGNyZWF0ZSAxMDI0XG5cbiAgbGV0IG1rc3RyaW5nIGYgPVxuICAgIGYgYnVmO1xuICAgIGxldCByZXMgPSBjb250ZW50cyBidWYgaW5cbiAgICByZXNldCBidWY7XG4gICAgcmVzXG5cbiAgbGV0IGFkZF9kZWNpbWFsIGIgPSBmdW5jdGlvblxuICAgIHwgeCB3aGVuIGJ0dyB4IDAgOTk5IC0+XG4gICAgICAgIGxldCBkMSA9IHggLyAxMDAgYW5kIGQyID0geCBtb2QgMTAwIC8gMTAgYW5kIGQzID0geCBtb2QgMTAgaW5cbiAgICAgICAgaWYgZDEgPiAwIHRoZW4gMHgzMCArIGQxIHw+IENoYXIudW5zYWZlX2NociB8PiBhZGRfY2hhciBiO1xuICAgICAgICBpZiBkMSArIGQyID4gMCB0aGVuIDB4MzAgKyBkMiB8PiBDaGFyLnVuc2FmZV9jaHIgfD4gYWRkX2NoYXIgYjtcbiAgICAgICAgMHgzMCArIGQzIHw+IENoYXIudW5zYWZlX2NociB8PiBhZGRfY2hhciBiXG4gICAgfCB4IC0+IHN0cmluZ19vZl9pbnQgeCB8PiBhZGRfc3RyaW5nIGJcblxuICBsZXQgYWRkX2NoYXJzIGIgYyBuID1cbiAgICBmb3IgXyA9IDEgdG8gbiBkb1xuICAgICAgYWRkX2NoYXIgYiBjXG4gICAgZG9uZVxuZW5kXG5cbm1vZHVsZSBTdHJpbmcgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTdHJpbmdcblxuICBsZXQgc3ViMGNwIHMgaSBsZW4gPVxuICAgIGlmIGkgPiAwIHx8IGxlbiA8IGxlbmd0aCBzIHRoZW4gc3ViIHMgaSBsZW4gZWxzZSBzXG5cbiAgbGV0IG9mX2NoYXJzX3JldiA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBcIlwiXG4gICAgfCBbIGMgXSAtPiBTdHJpbmcubWFrZSAxIGNcbiAgICB8IGNzIC0+XG4gICAgICAgIGxldCBuID0gTGlzdC5sZW5ndGggY3MgaW5cbiAgICAgICAgbGV0IHJlYyBnbyBicyBpID1cbiAgICAgICAgICBCeXRlcy4oXG4gICAgICAgICAgICBmdW5jdGlvblxuICAgICAgICAgICAgfCBbXSAtPiB1bnNhZmVfdG9fc3RyaW5nIGJzXG4gICAgICAgICAgICB8IHggOjogeHMgLT5cbiAgICAgICAgICAgICAgICB1bnNhZmVfc2V0IGJzIGkgeDtcbiAgICAgICAgICAgICAgICBnbyBicyAocHJlZCBpKSB4cylcbiAgICAgICAgaW5cbiAgICAgICAgZ28gKEJ5dGVzLmNyZWF0ZSBuKSAobiAtIDEpIGNzXG5lbmRcblxubW9kdWxlIFRleHQgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBOVkcuVGV4dFxuXG4gIHR5cGUgdCA9IFN0cmluZyBvZiBzdHJpbmcgKCogfCBVY2hhcnMgb2YgVWNoYXIudCBsaXN0KilcblxuICBsZXQgZW1wdHkgPSBTdHJpbmcgXCJcIlxuXG4gIGxldCBlcXVhbCA9IGZ1bmN0aW9uXG4gICAgfCBTdHJpbmcgYSAtPiAoIGZ1bmN0aW9uIFN0cmluZyBiIC0+IFN0cmluZy5lcXVhbCBhIGIpXG5cbiAgbGV0IG9mX3N0cmluZyBzID0gU3RyaW5nIHNcbiAgbGV0IHRvX3N0cmluZyA9IGZ1bmN0aW9uIFN0cmluZyBzIC0+IHNcblxuICBsZXQgb2ZfdWNoYXJzIHVjcyA9XG4gICAgb2Zfc3RyaW5nIEBAIEJ1ZmZlci5ta3N0cmluZ1xuICAgIEBAIGZ1biBidWYgLT4gQXJyYXkuaXRlciAoQnVmZmVyLmFkZF91dGZfOF91Y2hhciBidWYpIHVjc1xuXG4gIGxldCByZXBsaWNhdGVjIHcgYyA9IFN0cmluZyAoU3RyaW5nLm1ha2UgKGludF9vZl9mbG9hdCB3KSBjKVxuXG4gIGxldCBwcCBwcGYgOiB0IC0+IHVuaXQgPSBmdW5jdGlvblxuICAgIHwgU3RyaW5nIHMgLT4gRi4oZm10IFwiXFxcIiVzXFxcIlwiIHBwZiBzKVxuZW5kXG5cbm1vZHVsZSBTdHlsZSA9IHN0cnVjdFxuICBtb2R1bGUgRm9udCA9IHN0cnVjdFxuICAgIHR5cGUgdCA9IHtcbiAgICAgIHNpemUgOiBmbG9hdCBvcHRpb247XG4gICAgICBmb250IDogWyBgU2FucyB8IGBTZXJpZiB8IGBNb25vIHwgYE5vbmUgXTtcbiAgICAgIHdlaWdodCA6IFsgYEJvbGQgfCBgUmVndWxhciB8IGBMaWdodCB8IGBOb25lIF07XG4gICAgICBpdGFsaWMgOiBbIGBJdGFsaWMgfCBgTm9uZSBdO1xuICAgICAgdW5kZXJsaW5lIDogWyBgVW5kZXJsaW5lIHwgYE5vbmUgXTtcbiAgICB9XG5cbiAgICBsZXQgcHAgcHBmID1cbiAgICAgIEYuKFxuICAgICAgICBmbXQgXCIlYVwiIHBwZlxuICAgICAgICAgIChyZWNvcmQgWyBmaWVsZCBcInNpemVcIiAoZnVuIGEgLT4gYS5zaXplKSAob3B0aW9uIGZsb2F0KSBdKSlcblxuICAgIGxldCBlbXB0eSA9XG4gICAgICB7XG4gICAgICAgIHNpemUgPSBOb25lO1xuICAgICAgICBmb250ID0gYE5vbmU7XG4gICAgICAgIHdlaWdodCA9IGBOb25lO1xuICAgICAgICBpdGFsaWMgPSBgTm9uZTtcbiAgICAgICAgdW5kZXJsaW5lID0gYE5vbmU7XG4gICAgICB9XG5cbiAgICBsZXQgdW5kZXJsaW5lID0geyBlbXB0eSB3aXRoIHVuZGVybGluZSA9IGBVbmRlcmxpbmUgfVxuICAgIGxldCBzaXplIHsgc2l6ZTsgXyB9ID0gbWF0Y2ggc2l6ZSB3aXRoIE5vbmUgLT4gMjAuIHwgU29tZSBzIC0+IHNcblxuICAgIGxldCBtZXJnZSBhIGIgPVxuICAgICAge1xuICAgICAgICBzaXplID1cbiAgICAgICAgICAobWF0Y2ggKGEuc2l6ZSwgYi5zaXplKSB3aXRoXG4gICAgICAgICAgfCBOb25lLCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgcywgTm9uZSB8IE5vbmUsIFNvbWUgcyAtPiBTb21lIHNcbiAgICAgICAgICB8IFNvbWUgczEsIFNvbWUgczIgLT4gU29tZSAoRmxvYXQubWF4X251bSBzMSBzMikpO1xuICAgICAgICBmb250ID1cbiAgICAgICAgICAobWF0Y2ggKGEuZm9udCwgYi5mb250KSB3aXRoXG4gICAgICAgICAgfCBgU2FucywgXyB8IF8sIGBTYW5zIC0+IGBTYW5zXG4gICAgICAgICAgfCBgU2VyaWYsIChgU2VyaWYgfCBgTW9ubyB8IGBOb25lKSB8IChgTW9ubyB8IGBOb25lKSwgYFNlcmlmXG4gICAgICAgICAgICAtPlxuICAgICAgICAgICAgICBgU2VyaWZcbiAgICAgICAgICB8IGBNb25vLCAoYE1vbm8gfCBgTm9uZSkgfCBgTm9uZSwgYE1vbm8gLT4gYE1vbm9cbiAgICAgICAgICB8IGBOb25lLCBgTm9uZSAtPiBgTm9uZSk7XG4gICAgICAgIHdlaWdodCA9XG4gICAgICAgICAgKG1hdGNoIChhLndlaWdodCwgYi53ZWlnaHQpIHdpdGhcbiAgICAgICAgICB8IGBCb2xkLCBfIHwgXywgYEJvbGQgLT4gYEJvbGRcbiAgICAgICAgICB8IGBSZWd1bGFyLCAoYFJlZ3VsYXIgfCBgTGlnaHQgfCBgTm9uZSlcbiAgICAgICAgICB8IChgTGlnaHQgfCBgTm9uZSksIGBSZWd1bGFyIC0+XG4gICAgICAgICAgICAgIGBSZWd1bGFyXG4gICAgICAgICAgfCBgTGlnaHQsIChgTGlnaHQgfCBgTm9uZSkgfCBgTm9uZSwgYExpZ2h0IC0+IGBMaWdodFxuICAgICAgICAgIHwgYE5vbmUsIGBOb25lIC0+IGBOb25lKTtcbiAgICAgICAgaXRhbGljID1cbiAgICAgICAgICAobWF0Y2ggKGEuaXRhbGljLCBiLml0YWxpYykgd2l0aFxuICAgICAgICAgIHwgYEl0YWxpYywgXyB8IF8sIGBJdGFsaWMgLT4gYEl0YWxpY1xuICAgICAgICAgIHwgXyAtPiBgTm9uZSk7XG4gICAgICAgIHVuZGVybGluZSA9XG4gICAgICAgICAgKG1hdGNoIChhLnVuZGVybGluZSwgYi51bmRlcmxpbmUpIHdpdGhcbiAgICAgICAgICB8IGBVbmRlcmxpbmUsIF8gfCBfLCBgVW5kZXJsaW5lIC0+IGBVbmRlcmxpbmVcbiAgICAgICAgICB8IF8gLT4gYE5vbmUpO1xuICAgICAgfVxuXG4gICAgbGV0IHNldCB2ZyB0ID1cbiAgICAgIChtYXRjaCB0LnNpemUgd2l0aFxuICAgICAgfCBTb21lIHNpemUgLT4gVGV4dC5zZXRfc2l6ZSB2ZyB+c2l6ZVxuICAgICAgfCBOb25lIC0+ICgpKTtcbiAgICAgIG1hdGNoIHQuZm9udCB3aXRoXG4gICAgICB8IGBTYW5zIC0+IFRleHQuc2V0X2ZvbnRfZmFjZSB2ZyB+bmFtZTpcInNhbnNcIlxuICAgICAgfCBfIC0+ICgpXG5cbiAgICBsZXQgcmVwbGFjZSB+cHJldiB+bmV4dCA9IG1lcmdlIHByZXYgbmV4dFxuICBlbmRcblxuICB0eXBlIHQgPSB7IGZnIDogQ29sb3IudDsgYmcgOiBDb2xvci50OyBmb250IDogRm9udC50IH1cbiAgdHlwZSBhdHRyID0gdFxuXG4gIGxldCBwcCBwcGYgYSA9XG4gICAgRi4oZm10IFwiQFs8aD4lYS8lYUBdXCIgcHBmIENvbG9yLnBwIGEuZmcgQ29sb3IucHAgYS5iZylcblxuICBsZXQgZXF1YWwgPSAoID09IClcblxuICBsZXQgZW1wdHkgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IudHJhbnNwYXJlbnQ7XG4gICAgICBiZyA9IENvbG9yLnRyYW5zcGFyZW50O1xuICAgICAgZm9udCA9IEZvbnQuZW1wdHk7XG4gICAgfVxuXG4gIGxldCBkYXJrID0geyBlbXB0eSB3aXRoIGZnID0gQ29sb3IubGlnaHQ7IGJnID0gQ29sb3IuZGFyayB9XG5cbiAgbGV0ICggKysgKSBhMSBhMiA9XG4gICAge1xuICAgICAgZmcgPSBDb2xvci4oYTEuZmcgKysgYTIuZmcpO1xuICAgICAgYmcgPSBDb2xvci4oYTEuYmcgKysgYTIuYmcpO1xuICAgICAgZm9udCA9IEZvbnQubWVyZ2UgYTEuZm9udCBhMi5mb250O1xuICAgIH1cblxuICBsZXQgcmVwbGFjZSB+cHJldiB+bmV4dCA9XG4gICAge1xuICAgICAgZmcgPSBDb2xvci5yZXBsYWNlIH5wcmV2OnByZXYuZmcgfm5leHQ6bmV4dC5mZztcbiAgICAgIGJnID0gQ29sb3IucmVwbGFjZSB+cHJldjpwcmV2LmJnIH5uZXh0Om5leHQuYmc7XG4gICAgICBmb250ID0gRm9udC5yZXBsYWNlIH5wcmV2OnByZXYuZm9udCB+bmV4dDpuZXh0LmZvbnQ7XG4gICAgfVxuXG4gIGxldCBmZyA/KHQgPSBlbXB0eSkgYyA9IHsgdCB3aXRoIGZnID0gYyB9XG4gIGxldCBiZyA/KHQgPSBlbXB0eSkgYyA9IHsgdCB3aXRoIGJnID0gYyB9XG4gIGxldCBmb250ID8odCA9IGVtcHR5KSBjID0geyB0IHdpdGggZm9udCA9IGMgfVxuXG4gIGxldCBtZXJnZSBhIGIgPVxuICAgIHtcbiAgICAgIGZnID0gQ29sb3IubGVycCBhLmZnIGIuZmcgfmE6MC41O1xuICAgICAgYmcgPSBDb2xvci5sZXJwIGEuYmcgYi5iZyB+YTowLjU7XG4gICAgICBmb250ID0gRm9udC5tZXJnZSBhLmZvbnQgYi5mb250O1xuICAgIH1cblxuICBsZXQgc2V0IHZnIHMgPVxuICAgIEYuZXByIFwiU3R5bGUuc2V0IEAuXCI7XG4gICAgTlZHLnNldF9maWxsX2NvbG9yIHZnIH5jb2xvcjpzLmJnO1xuICAgIE5WRy5zZXRfc3Ryb2tlX2NvbG9yIHZnIH5jb2xvcjpzLmZnO1xuICAgIEZvbnQuc2V0IHZnIHMuZm9udFxuXG4gIGxldCBtZW51X21haW4gPSBiZyBDb2xvci5ncmVlbiArKyBmZyBDb2xvci5ibGFja1xuICBsZXQgbWVudV9zdWIgPSBiZyBDb2xvci5saWdodGdyZWVuICsrIGZnIENvbG9yLmJsYWNrXG5cbiAgbGV0IGNsaWNrYWJsZSA9XG4gICAgKGJnIEBAIENvbG9yLnJnYmYgfnI6MC4yIH5nOjAuMiB+YjowLjUpICsrIChmZyBAQCBDb2xvci5saWdodClcblxuICBsZXQgY3Vyc29yID0gKGZnIEBAIENvbG9yLmRhcmspICsrIChiZyBAQCBDb2xvci55ZWxsb3cpXG5lbmRcblxubW9kdWxlIFBhZCA9IHN0cnVjdFxuICBvcGVuIEdnXG5cbiAgdHlwZSB0ID0geyB0IDogc2l6ZTE7IGIgOiBzaXplMTsgbCA6IHNpemUxOyByIDogc2l6ZTEgfVxuXG4gIGxldCBlbXB0eSA9XG4gICAgeyB0ID0gU2l6ZTEuemVybzsgYiA9IFNpemUxLnplcm87IGwgPSBTaXplMS56ZXJvOyByID0gU2l6ZTEuemVybyB9XG5cbiAgbGV0IGFsbCB2ID0geyB0ID0gdjsgYiA9IHY7IGwgPSB2OyByID0gdiB9XG5lbmRcblxubW9kdWxlIEEgPSBTdHlsZVxuXG5tb2R1bGUgSSA9IHN0cnVjdFxuICBvcGVuIEdnXG5cbiAgdHlwZSBkaW0gPSBwMlxuXG4gIHR5cGUgdCA9XG4gICAgfCBFbXB0eVxuICAgIHwgU2VnbWVudCBvZiBUZXh0LnQgKCogYm94MiBpcyArY3JvcC8tcGFkIG9mIGRyYXduIFRleHQudCAqKVxuICAgIHwgQXR0ciBvZiAodCAqIEEudClcbiAgICB8IEhjb21wb3NlIG9mICh0ICogdClcbiAgICB8IFZjb21wb3NlIG9mICh0ICogdClcbiAgICB8IFpjb21wb3NlIG9mICh0ICogdClcbiAgICB8IEhjcm9wIG9mICh0ICogZmxvYXQgKiBmbG9hdClcbiAgICB8IFZjcm9wIG9mICh0ICogZmxvYXQgKiBmbG9hdClcbiAgICB8IFZvaWQgb2YgZGltXG5cbiAgbGV0IHAyX21heCBwMSBwMiA6IHAyID1cbiAgICBWMi4odiAoRmxvYXQubWF4ICh4IHAxKSAoeCBwMikpIChGbG9hdC5tYXggKHkgcDEpICh5IHAyKSkpXG4gICAgW0BAaW5saW5lXVxuXG4gIGxldCBib3VuZHNfc2VnbWVudCB2ZyBwIDogVGV4dC50IC0+IE5WRy5UZXh0LmJvdW5kcyA9IGZ1bmN0aW9uXG4gICAgfCBTdHJpbmcgcyAtPlxuICAgICAgICBsZXQgb3BlbiBOVkcuVGV4dCBpblxuICAgICAgICBsZXQgeyBhc2NlbmRlcjsgXyB9ID0gTlZHLlRleHQubWV0cmljcyB2ZyBpblxuICAgICAgICBib3VuZHMgdmcgfng6KFYyLnggcCkgfnk6KFYyLnkgcCArLiBhc2NlbmRlcikgc1xuXG4gIGxldCByZWMgc2l6ZSB2ZyBwID0gZnVuY3Rpb25cbiAgICB8IEVtcHR5IC0+IFYyLnplcm9cbiAgICB8IFNlZ21lbnQgcyAtPlxuICAgICAgICBsZXQgTlZHLlRleHQueyBib3ggPSB7IHltYXg7IHltaW47IF8gfTsgYWR2YW5jZSB9ID1cbiAgICAgICAgICBib3VuZHNfc2VnbWVudCB2ZyBwIHNcbiAgICAgICAgaW5cbiAgICAgICAgVjIudiBhZHZhbmNlICh5bWF4IC0uIHltaW4pXG4gICAgfCBBdHRyICh0LCBfYSkgLT4gc2l6ZSB2ZyBwIHRcbiAgICB8IEhjb21wb3NlICh0MSwgdDIpIC0+XG4gICAgICAgIGxldCBwMSA9IHNpemUgdmcgcCB0MSBpblxuICAgICAgICBsZXQgcDIgPSBzaXplIHZnIFYyLihwICsgdiAoeCBwMSkgMC4pIHQyIGluXG4gICAgICAgIFYyLih2ICh4IHAxICsuIHggcDIpIChGbG9hdC5tYXggKHkgcDEpICh5IHAyKSkpXG4gICAgfCBWY29tcG9zZSAodDEsIHQyKSAtPlxuICAgICAgICBsZXQgcDEgPSBzaXplIHZnIHAgdDEgaW5cbiAgICAgICAgbGV0IHAyID0gc2l6ZSB2ZyBWMi4ocCArIHYgMC4gKHkgcDEpKSB0MiBpblxuICAgICAgICBWMi4odiAoRmxvYXQubWF4ICh4IHAxKSAoeCBwMikpICh5IHAxICsuIHkgcDIpKVxuICAgIHwgWmNvbXBvc2UgKHQxLCB0MikgLT4gcDJfbWF4IChzaXplIHZnIHAgdDEpIChzaXplIHZnIHAgdDIpXG4gICAgfCBIY3JvcCAodCwgbGVmdCwgcmlnaHQpIC0+XG4gICAgICAgICgqIHBvc2l0aXZlIHZhbHVlcyBhcmUgY3JvcCwgbmVnYXRpdmUgaXMgcGFkICopXG4gICAgICAgIFYyLihzaXplIHZnIChwIC0gdiBsZWZ0IDAuKSB0IC0gdiByaWdodCAwLilcbiAgICB8IFZjcm9wICh0LCB0b3AsIGJvdHRvbSkgLT5cbiAgICAgICAgVjIuKHNpemUgdmcgKHAgLSB2IDAuIHRvcCkgdCAtIHYgMC4gYm90dG9tKVxuICAgIHwgVm9pZCBwJyAtPiBWMi4ocCArIHAnKVxuXG4gIGxldCBlbXB0eSA9IEVtcHR5XG4gIGxldCB2b2lkIHcgaCA9IFZvaWQgKFAyLnYgdyBoKVxuXG4gIGxldCBhdHRyIGEgPSBmdW5jdGlvblxuICAgIHwgQXR0ciAodCwgYTApIC0+IEF0dHIgKHQsIEEuKHJlcGxhY2UgfnByZXY6YTAgfm5leHQ6YSkpXG4gICAgfCB0IC0+IEF0dHIgKHQsIGEpXG5cbiAgbGV0ICggPHw+ICkgdDEgdDIgPVxuICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICB8IF8sIEVtcHR5IC0+IHQxXG4gICAgfCBFbXB0eSwgXyAtPiB0MlxuICAgIHwgXyAtPiBIY29tcG9zZSAodDEsIHQyKVxuXG4gIGxldCAoIDwtPiApIHQxIHQyID1cbiAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgfCBfLCBFbXB0eSAtPiB0MVxuICAgIHwgRW1wdHksIF8gLT4gdDJcbiAgICB8IF8gLT4gVmNvbXBvc2UgKHQxLCB0MilcblxuICBsZXQgKCA8Lz4gKSB0MSB0MiA9XG4gICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgIHwgXywgRW1wdHkgLT4gdDFcbiAgICB8IEVtcHR5LCBfIC0+IHQyXG4gICAgfCBfIC0+IFpjb21wb3NlICh0MSwgdDIpXG5cbiAgKCogY3JvcCBpcyBwb3NpdGl2ZSB2YWx1ZSwgcGFkIGlzIG5lZ2F0aXZlICopXG5cbiAgbGV0IGhjcm9wIGxlZnQgcmlnaHQgaW1nID1cbiAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJIY3JvcCAoJWYsICVmKVwiIGxlZnQgcmlnaHQpOyAqKVxuICAgIEhjcm9wIChpbWcsIGxlZnQsIHJpZ2h0KVxuXG4gIGxldCB2Y3JvcCB0b3AgYm90dG9tIGltZyA9XG4gICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiVmNyb3AgKCVmLCAlZilcIiB0b3AgYm90dG9tKTsgKilcbiAgICBWY3JvcCAoaW1nLCB0b3AsIGJvdHRvbSlcblxuICBsZXQgY3JvcCA/KGwgPSAwLikgPyhyID0gMC4pID8odCA9IDAuKSA/KGIgPSAwLikgaW1nID1cbiAgICBsZXQgaW1nID0gaWYgbCA8PiAwLiB8fCByIDw+IDAuIHRoZW4gaGNyb3AgbCByIGltZyBlbHNlIGltZyBpblxuICAgIGlmIHQgPD4gMC4gfHwgYiA8PiAwLiB0aGVuIHZjcm9wIHQgYiBpbWcgZWxzZSBpbWdcblxuICBsZXQgaHBhZCBsZWZ0IHJpZ2h0IGltZyA9IGhjcm9wICgtLmxlZnQpICgtLnJpZ2h0KSBpbWdcbiAgbGV0IHZwYWQgdG9wIGJvdHRvbSBpbWcgPSB2Y3JvcCAoLS50b3ApICgtLmJvdHRvbSkgaW1nXG5cbiAgbGV0IHBhZCA/KGwgPSAwLikgPyhyID0gMC4pID8odCA9IDAuKSA/KGIgPSAwLikgaW1nID1cbiAgICBjcm9wIH5sOigtLmwpIH5yOigtLnIpIH50OigtLnQpIH5iOigtLmIpIGltZ1xuXG4gIGxldCByZWMgY29uY2F0bSB6ICggQCApIHhzID1cbiAgICBsZXQgcmVjIGFjY3VtICggQCApID0gZnVuY3Rpb25cbiAgICAgIHwgKFtdIHwgWyBfIF0pIGFzIHhzIC0+IHhzXG4gICAgICB8IGEgOjogYiA6OiB4cyAtPiAoYSBAIGIpIDo6IGFjY3VtICggQCApIHhzXG4gICAgaW5cbiAgICBtYXRjaCB4cyB3aXRoXG4gICAgfCBbXSAtPiB6XG4gICAgfCBbIHggXSAtPiB4XG4gICAgfCB4cyAtPiBjb25jYXRtIHogKCBAICkgKGFjY3VtICggQCApIHhzKVxuXG4gIGxldCBoY2F0ID0gY29uY2F0bSBlbXB0eSAoIDx8PiApXG4gIGxldCB2Y2F0ID0gY29uY2F0bSBlbXB0eSAoIDwtPiApXG4gIGxldCB6Y2F0IHhzID0gTGlzdC5mb2xkX3JpZ2h0ICggPC8+ICkgeHMgZW1wdHlcblxuICBsZXQgdGV4dCBhdHRyIHR4ID1cbiAgICBtYXRjaCBhdHRyIHdpdGggU29tZSBhIC0+IEF0dHIgKFNlZ21lbnQgdHgsIGEpIHwgXyAtPiBTZWdtZW50IHR4XG5cbiAgbGV0IHN0cmluZyA/YXR0ciBzID0gdGV4dCBhdHRyIChUZXh0Lm9mX3N0cmluZyBzKVxuICBsZXQgdWNoYXJzID9hdHRyIGEgPSB0ZXh0IGF0dHIgKFRleHQub2ZfdWNoYXJzIGEpXG5cbiAgbGV0IHJlYyBsaW5zcGNtIHogKCBAICkgeCBuIGYgPVxuICAgIG1hdGNoIG4gd2l0aFxuICAgIHwgMC4gLT4gelxuICAgIHwgMS4gLT4gZiB4XG4gICAgfCBfIC0+XG4gICAgICAgIGxldCBtID0gbiAvLiAyLiBpblxuICAgICAgICBsaW5zcGNtIHogKCBAICkgeCBtIGYgQCBsaW5zcGNtIHogKCBAICkgKHggKy4gbSkgKG4gLS4gbSkgZlxuXG4gIGxldCB0YWJ1bGF0ZSBtIG4gZiA9XG4gICAgbGV0IG0gPSBtYXggbSAwLiBhbmQgbiA9IG1heCBuIDAuIGluXG4gICAgbGluc3BjbSBlbXB0eSAoIDwtPiApIDAuIG4gKGZ1biB5IC0+XG4gICAgICAgIGxpbnNwY20gZW1wdHkgKCA8fD4gKSAwLiBtIChmdW4geCAtPiBmIHggeSkpXG5cbiAgbGV0IGNoYXJzIGN0b3IgP2F0dHIgYyB3IGggPVxuICAgIGxldCB3ID0gbWF4IDAuIHcgYW5kIGggPSBtYXggMC4gaCBpblxuICAgIGlmIHcgPCAxLiB8fCBoIDwgMS4gdGhlbiB2b2lkIHcgaFxuICAgIGVsc2VcbiAgICAgIGxldCBsaW5lID0gdGV4dCBhdHRyIChjdG9yIHcgYykgaW5cbiAgICAgIHRhYnVsYXRlIDEuIGggKGZ1biBfIF8gLT4gbGluZSlcblxuICBsZXQgY2hhciA9IGNoYXJzIFRleHQucmVwbGljYXRlY1xuICAoKiBsZXQgdWNoYXIgPSBjaGFycyBUZXh0LnJlcGxpY2F0ZXUgKilcblxuICAoKiBtb2R1bGUgRm10ID0gc3RydWN0XG4gICAgICAgb3BlbiBGb3JtYXRcblxuICAgICAgIHR5cGUgc3RhZyArPSBBdHRyIG9mIEEudFxuXG4gICAgICAgbGV0IHB1c2ggciB4ID0gciA6PSB4IDo6ICFyXG4gICAgICAgbGV0IHBvcCByID0gciA6PSBtYXRjaCAhciB3aXRoIF8gOjogeHMgLT4geHMgfCBfIC0+IFtdXG4gICAgICAgbGV0IHRvcF9hIHIgPSBtYXRjaCAhciB3aXRoIGEgOjogXyAtPiBhIHwgXyAtPiBBLmVtcHR5XG5cbiAgICAgICBsZXQgY3JlYXRlICgpID1cbiAgICAgICAgIGxldCBpbWcsIGxpbmUsIGF0dHIgPSAocmVmIGVtcHR5LCByZWYgZW1wdHksIHJlZiBbXSkgaW5cbiAgICAgICAgIGxldCBmbXQgPVxuICAgICAgICAgICBmb3JtYXR0ZXJfb2Zfb3V0X2Z1bmN0aW9uc1xuICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgIG91dF9mbHVzaCA9XG4gICAgICAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgICBpbWcgOj0gIWltZyA8LT4gIWxpbmU7XG4gICAgICAgICAgICAgICAgICAgbGluZSA6PSBlbXB0eTtcbiAgICAgICAgICAgICAgICAgICBhdHRyIDo9IFtdKTtcbiAgICAgICAgICAgICAgIG91dF9uZXdsaW5lID1cbiAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICAgIGltZyA6PSAhaW1nIDwtPiAhbGluZTtcbiAgICAgICAgICAgICAgICAgICBsaW5lIDo9IHZvaWQgMC4gMS4pO1xuICAgICAgICAgICAgICAgb3V0X3N0cmluZyA9XG4gICAgICAgICAgICAgICAgIChmdW4gcyBpIG4gLT5cbiAgICAgICAgICAgICAgICAgICBsaW5lIDo9XG4gICAgICAgICAgICAgICAgICAgICAhbGluZVxuICAgICAgICAgICAgICAgICAgICAgPHw+IHN0cmluZyB+YXR0cjoodG9wX2EgYXR0cilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy4oc3ViMGNwIHMgaSBuKSlcbiAgICAgICAgICAgICAgICAgKCogTm90IGVudGlyZWx5IGNsZWFyOyBlaXRoZXIgb3IgYm90aCBjb3VsZCBiZSB2b2lkOiAqKTtcbiAgICAgICAgICAgICAgIG91dF9zcGFjZXMgPVxuICAgICAgICAgICAgICAgICAoZnVuIHcgLT5cbiAgICAgICAgICAgICAgICAgICBsaW5lIDo9ICFsaW5lIDx8PiBjaGFyIH5hdHRyOih0b3BfYSBhdHRyKSAnICcgdyAxKTtcbiAgICAgICAgICAgICAgIG91dF9pbmRlbnQgPVxuICAgICAgICAgICAgICAgICAoZnVuIHcgLT5cbiAgICAgICAgICAgICAgICAgICBsaW5lIDo9ICFsaW5lIDx8PiBjaGFyIH5hdHRyOih0b3BfYSBhdHRyKSAnICcgdyAxKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICBpblxuICAgICAgICAgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBmbXRcbiAgICAgICAgICAge1xuICAgICAgICAgICAgIChwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIGZtdCAoKSkgd2l0aFxuICAgICAgICAgICAgIG1hcmtfb3Blbl9zdGFnID1cbiAgICAgICAgICAgICAgIChmdW5jdGlvblxuICAgICAgICAgICAgICAgfCBBdHRyIGEgLT5cbiAgICAgICAgICAgICAgICAgICBwdXNoIGF0dHIgQS4odG9wX2EgYXR0ciArKyBhKTtcbiAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICB8IF8gLT4gXCJcIik7XG4gICAgICAgICAgICAgbWFya19jbG9zZV9zdGFnID1cbiAgICAgICAgICAgICAgIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICBwb3AgYXR0cjtcbiAgICAgICAgICAgICAgICAgXCJcIik7XG4gICAgICAgICAgIH07XG4gICAgICAgICBwcF9zZXRfbWFya190YWdzIGZtdCB0cnVlO1xuICAgICAgICAgKCBmbXQsXG4gICAgICAgICAgIGZ1biAoKSAtPlxuICAgICAgICAgICAgIGxldCBpID0gIWltZyBpblxuICAgICAgICAgICAgIGltZyA6PSBlbXB0eTtcbiAgICAgICAgICAgICBsaW5lIDo9IGVtcHR5O1xuICAgICAgICAgICAgIGF0dHIgOj0gW107XG4gICAgICAgICAgICAgaSApXG5cbiAgICAgICBsZXQgcHBmLCByZXNldCA9IGNyZWF0ZSAoKVxuXG4gICAgICAgbGV0IGtzdHJmID8oYXR0ciA9IEEuZW1wdHkpID8odyA9IDEwMDAwMDApIGsgZm9ybWF0ID1cbiAgICAgICAgIGxldCBtID0gcmVmIDAgaW5cbiAgICAgICAgIGxldCBmMSBfICgpID1cbiAgICAgICAgICAgbSA6PSBwcF9nZXRfbWFyZ2luIHBwZiAoKTtcbiAgICAgICAgICAgcHBfc2V0X21hcmdpbiBwcGYgdztcbiAgICAgICAgICAgcHBfb3Blbl9zdGFnIHBwZiAoQXR0ciBhdHRyKVxuICAgICAgICAgYW5kIGsgXyA9XG4gICAgICAgICAgIHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgICAgICAgICAgcHBfc2V0X21hcmdpbiBwcGYgIW07XG4gICAgICAgICAgIHJlc2V0ICgpIHw+IGtcbiAgICAgICAgIGluXG4gICAgICAgICBrZnByaW50ZiBrIHBwZiAoXCIlYVwiIF5eIGZvcm1hdCkgZjEgKClcblxuICAgICAgIGxldCBzdHJmID9hdHRyID93IGZvcm1hdCA9IGtzdHJmID9hdHRyID93IChmdW4gaSAtPiBpKSBmb3JtYXRcblxuICAgICAgIGxldCBhdHRyIGF0dHIgZiBmbXQgeCA9XG4gICAgICAgICBwcF9vcGVuX3N0YWcgZm10IChBdHRyIGF0dHIpO1xuICAgICAgICAgZiBmbXQgeDtcbiAgICAgICAgIHBwX2Nsb3NlX3N0YWcgZm10ICgpXG4gICAgIGVuZFxuXG4gICAgICAgbGV0IGtzdHJmLCBzdHJmLCBwcF9hdHRyID0gRm10Lihrc3RyZiwgc3RyZiwgYXR0cikgKilcblxuICBtb2R1bGUgRHJhdyA9IHN0cnVjdFxuICAgIHR5cGUgYXR0ciA9IFN0eWxlLnRcbiAgICB0eXBlIHAgPSBQMi50XG4gICAgdHlwZSBkID0gWyBgWCB8IGBZIHwgYFogXVxuXG4gICAgbGV0IHN0cl9vZl9ib3ggYiA9XG4gICAgICBQcmludGYuc3ByaW50ZiBcIihveDolMC4xZiBveTolMC4xZiBleCUwLjFmIGV5JTAuMWYpXCIgKEJveDIub3ggYilcbiAgICAgICAgKEJveDIub3kgYikgKEJveDIubWF4eCBiKSAoQm94Mi5tYXh5IGIpXG5cbiAgICBsZXQgZmlsbF9ib3ggdmcgY29sb3IgYiA9XG4gICAgICBsZXQgbW9kdWxlIFBhdGggPSBOVkcuUGF0aCBpblxuICAgICAgbGV0IG9wZW4gTlZHIGluXG4gICAgICBOVkcuc2F2ZSB2ZztcbiAgICAgIFBhdGguYmVnaW5fIHZnO1xuICAgICAgUGF0aC5yZWN0IHZnIH54OihCb3gyLm94IGIpIH55OihCb3gyLm95IGIpIH53OihCb3gyLncgYilcbiAgICAgICAgfmg6KEJveDIuaCBiKTtcbiAgICAgIHNldF9maWxsX2NvbG9yIHZnIH5jb2xvcjtcbiAgICAgIGZpbGwgdmc7XG4gICAgICBOVkcucmVzdG9yZSB2ZztcbiAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcImZpbGxfYm94OiAlYVwiIEJveDIucHAgYik7ICopXG4gICAgICBCb3gyLnNpemUgYlxuXG4gICAgbGV0IHBhdGhfYm94IHZnIGNvbG9yID8od2lkdGggPSAwLikgYiA9XG4gICAgICBsZXQgbW9kdWxlIFBhdGggPSBOVkcuUGF0aCBpblxuICAgICAgUGF0aC5iZWdpbl8gdmc7XG4gICAgICBQYXRoLnJlY3Qgdmcgfng6KEJveDIub3ggYikgfnk6KEJveDIub3kgYikgfnc6KEJveDIudyBiKVxuICAgICAgICB+aDooQm94Mi5oIGIpO1xuICAgICAgaWYgd2lkdGggIT0gMC4gdGhlbiBOVkcuc2V0X3N0cm9rZV93aWR0aCB2ZyB+d2lkdGg7XG4gICAgICBOVkcuc2V0X3N0cm9rZV9jb2xvciB2ZyB+Y29sb3I7XG4gICAgICBOVkcuc3Ryb2tlIHZnO1xuICAgICAgQm94Mi5zaXplIGJcblxuICAgIGxldCB2Y2F0IGQgYSBiID1cbiAgICAgIG1hdGNoIGQgd2l0aFxuICAgICAgfCBgWCAtPlxuICAgICAgICAgIFYyLnYgKFYyLnggYSArLiBWMi54IGIpIChGbG9hdC5tYXhfbnVtIChWMi55IGEpIChWMi55IGIpKVxuICAgICAgfCBgWSAtPiBWMi52IChGbG9hdC5tYXhfbnVtIChWMi54IGEpIChWMi54IGIpKSAoVjIueSBhICsuIFYyLnkgYilcbiAgICAgIHwgYFogLT5cbiAgICAgICAgICBWMi52XG4gICAgICAgICAgICAoRmxvYXQubWF4X251bSAoVjIueCBhKSAoVjIueCBiKSlcbiAgICAgICAgICAgIChGbG9hdC5tYXhfbnVtIChWMi55IGEpIChWMi55IGIpKVxuXG4gICAgbGV0IHJlYyBwcCA/KGF0dHIgPSBBLmVtcHR5KSBwcGYgOiB0IC0+IHVuaXQgPVxuICAgICAgbGV0IG9wZW4gRiBpblxuICAgICAgbGV0IGNvbXBvc2UgPSBwYWlyIChwYXJlbnMgKHBwIH5hdHRyKSkgKHBhcmVucyAocHAgfmF0dHIpKSBpblxuICAgICAgZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gZm10IFwiRW1wdHlcIiBwcGZcbiAgICAgIHwgU2VnbWVudCB2IC0+IGZtdCBcIkBbPGg+U2VnbWVudCAlYUBdXCIgcHBmIFRleHQucHAgdlxuICAgICAgfCBBdHRyICh0LCBhKSAtPlxuICAgICAgICAgIGZtdCBcIkBbPGg+QXR0ciAlYUBdXCIgcHBmXG4gICAgICAgICAgICAocGFpciB+c2VwOmNvbW1hIEEucHBcbiAgICAgICAgICAgICAgIChwcCB+YXR0cjpBLihyZXBsYWNlIH5wcmV2OmF0dHIgfm5leHQ6YSkpKVxuICAgICAgICAgICAgKEEuKHJlcGxhY2UgfnByZXY6YXR0ciB+bmV4dDphKSwgdClcbiAgICAgIHwgSGNvbXBvc2UgYSAtPiBmbXQgXCJIY2F0ICVhXCIgcHBmIGNvbXBvc2UgYVxuICAgICAgfCBWY29tcG9zZSBhIC0+IGZtdCBcIlZjYXQgJWFcIiBwcGYgY29tcG9zZSBhXG4gICAgICB8IFpjb21wb3NlIGEgLT4gZm10IFwiWmNhdCAlYVwiIHBwZiBjb21wb3NlIGFcbiAgICAgIHwgSGNyb3AgKHQsIGxlZnQsIHJpZ2h0KSAtPlxuICAgICAgICAgIGZtdCBcIkhjcm9wICglLjFmLCUuMWYsJWEpXCIgcHBmIGxlZnQgcmlnaHQgKHBwIH5hdHRyKSB0XG4gICAgICB8IFZjcm9wICh0LCB0b3AsIGJvdHRvbSkgLT5cbiAgICAgICAgICBmbXQgXCJWY3JvcCAoJS4xZiwlLjFmLCVhKVwiIHBwZiB0b3AgYm90dG9tIChwcCB+YXR0cikgdFxuICAgICAgfCBWb2lkIGRpbSAtPiBmbXQgXCJWb2lkICVhXCIgcHBmIChwYXJlbnMgVjIucHApIGRpbVxuXG4gICAgbGV0IHNlZ21lbnRfa2Vybl9jYWNoZSA9IHJlZiAoQm94Mi56ZXJvLCBcIlwiKVxuXG4gICAgbGV0IHJlYyBzZWdtZW50IHZnIHAgOiBUZXh0LnQgLT4gUDIudCA9IGZ1bmN0aW9uXG4gICAgICB8IFN0cmluZyBzIC0+XG4gICAgICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiSS5EcmF3LnNlZ21lbnQgcD0lYSAlc1wiIEdnLlYyLnBwIHAgcyk7ICopXG4gICAgICAgICAgKCogbGV0IHAnID1cbiAgICAgICAgICAgICAgIGxldCBjYWNoZV9wLCBjYWNoZV9zID0gIXNlZ21lbnRfa2Vybl9jYWNoZSBpblxuICAgICAgICAgICAgICAgKCogdHJpZXMgdG8gZ2V0IHRoZSBrZXJuaW5nIHJpZ2h0IGFjcm9zcyBzZWdtZW50cyAqKVxuICAgICAgICAgICAgICAgaWYgVjIuKGVxdWFsIChCb3gyLm1heCBjYWNoZV9wKSBwKSB0aGVuXG4gICAgICAgICAgICAgICAgIFYyLihcbiAgICAgICAgICAgICAgICAgICBCb3gyLm8gY2FjaGVfcFxuICAgICAgICAgICAgICAgICAgICsgdlxuICAgICAgICAgICAgICAgICAgICAgICAoKGJvdW5kc19zZWdtZW50IHZnIChCb3gyLm8gY2FjaGVfcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChUZXh0Lm9mX3N0cmluZyAoY2FjaGVfcyBeIHMpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkdmFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAtLiAoYm91bmRzX3NlZ21lbnQgdmcgcCAoVGV4dC5vZl9zdHJpbmcgcykpLmFkdmFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAwLilcbiAgICAgICAgICAgICAgIGVsc2UgcFxuICAgICAgICAgICAgIGluICopXG4gICAgICAgICAgbGV0IG1ldHJpY3MgPSBOVkcuVGV4dC5tZXRyaWNzIHZnIGluXG4gICAgICAgICAgTlZHLlRleHQudGV4dCB2ZyB+eDooVjIueCBwKVxuICAgICAgICAgICAgfnk6KFYyLnkgcCArLiBtZXRyaWNzLmFzY2VuZGVyKVxuICAgICAgICAgICAgcztcblxuICAgICAgICAgIGxldCBzeiA9XG4gICAgICAgICAgICBWMi52IChib3VuZHNfc2VnbWVudCB2ZyBwIChUZXh0Lm9mX3N0cmluZyBzKSkuYWR2YW5jZVxuICAgICAgICAgICAgICBtZXRyaWNzLmxpbmVfaGVpZ2h0XG4gICAgICAgICAgaW5cbiAgICAgICAgICBzZWdtZW50X2tlcm5fY2FjaGUgOj0gKEJveDIuKHYgcCBzeiksIHMpO1xuICAgICAgICAgIHN6XG5cbiAgICBhbmQgbm9kZSB2ZyBhdHRyIHAgbiA6IHAyID1cbiAgICAgICgqIHJldHVybnMgdGhlICpzaXplKiBvZiB0aGUgZHJhd24gYXJlYSBub3QgdGhlIG1heCBjb29yZGluYXRlcyBhbnltb3JlICopXG4gICAgICBsZXQgYicgPVxuICAgICAgICBtYXRjaCBuIHdpdGhcbiAgICAgICAgfCBFbXB0eSB8IFZvaWQgXyAtPiBwXG4gICAgICAgIHwgU2VnbWVudCB0ZXh0IC0+IHNlZ21lbnQgdmcgcCB0ZXh0XG4gICAgICAgIHwgQXR0ciAoaSwgYSkgLT5cbiAgICAgICAgICAgIGxldCBhMCA9IEEuKHJlcGxhY2UgfnByZXY6YXR0ciB+bmV4dDphKSBpblxuICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKEEuKGEuYmcpICE9IEEuKGF0dHIuYmcpKVxuICAgICAgICAgICAgICAmJiBBLihhMC5iZykgIT0gTlZHLkNvbG9yLnRyYW5zcGFyZW50XG4gICAgICAgICAgICB0aGVuIGZpbGxfYm94IHZnIGEwLmJnIChCb3gyLnYgcCAoc2l6ZSB2ZyBwIGkpKSB8PiBpZ25vcmU7XG4gICAgICAgICAgICBpZiBBLihhdHRyLmZnKSAhPSBhLmZnIHRoZW4gKFxuICAgICAgICAgICAgICBOVkcuc2V0X2ZpbGxfY29sb3IgdmcgfmNvbG9yOlN0eWxlLihhMC5mZyk7XG4gICAgICAgICAgICAgIE5WRy5zZXRfc3Ryb2tlX2NvbG9yIHZnIH5jb2xvcjpTdHlsZS4oYTAuZmcpKTtcbiAgICAgICAgICAgIG5vZGUgdmcgYTAgcCBpXG4gICAgICAgIHwgSGNvbXBvc2UgKGkxLCBpMikgLT5cbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBwIGkxIGluXG4gICAgICAgICAgICBsZXQgcDIgPSBub2RlIHZnIGF0dHIgVjIuKHAgKyB2IChWMi54IHAxKSAwLikgaTIgaW5cbiAgICAgICAgICAgIFYyLih2ICh4IHAxICsuIHggcDIpIChGbG9hdC5tYXggKHkgcDEpICh5IHAyKSkpXG4gICAgICAgIHwgVmNvbXBvc2UgKGkxLCBpMikgLT5cbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBwIGkxIGluXG4gICAgICAgICAgICBsZXQgcDIgPSBub2RlIHZnIGF0dHIgVjIuKHAgKyB2IDAuIChWMi55IHAxKSkgaTIgaW5cbiAgICAgICAgICAgIFYyLih2IChGbG9hdC5tYXggKHggcDEpICh4IHAyKSkgKHkgcDEgKy4geSBwMikpXG4gICAgICAgIHwgWmNvbXBvc2UgKGkxLCBpMikgLT5cbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBwIGkxIGluXG4gICAgICAgICAgICBsZXQgcDIgPSBub2RlIHZnIGF0dHIgcCBpMiBpblxuICAgICAgICAgICAgcDJfbWF4IHAxIHAyXG4gICAgICAgIHwgSGNyb3AgKGksIGxlZnQsIHJpZ2h0KSAtPlxuICAgICAgICAgICAgbGV0IHAwID0gc2l6ZSB2ZyBwIGkgaW5cbiAgICAgICAgICAgIE5WRy5zYXZlIHZnO1xuICAgICAgICAgICAgTlZHLlNjaXNzb3Iuc2Npc3NvciB2ZyB+eDooVjIueCBwKSB+eTooVjIueSBwKVxuICAgICAgICAgICAgICB+dzooVjIueCBwMCAtLiByaWdodClcbiAgICAgICAgICAgICAgfmg6KFYyLnkgcDApO1xuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIFYyLihwIC0gdiBsZWZ0IDAuKSBpIGluXG4gICAgICAgICAgICBOVkcucmVzdG9yZSB2ZztcbiAgICAgICAgICAgIFYyLihwMSAtIHYgKGxlZnQgKy4gcmlnaHQpIDAuKVxuICAgICAgICB8IFZjcm9wIChpLCB0b3AsIGJvdHRvbSkgLT5cbiAgICAgICAgICAgIGxldCBwMCA9IHNpemUgdmcgcCBpIGluXG4gICAgICAgICAgICBOVkcuc2F2ZSB2ZztcbiAgICAgICAgICAgIE5WRy5TY2lzc29yLnNjaXNzb3Igdmcgfng6KFYyLnggcCkgfnk6KFYyLnkgcClcbiAgICAgICAgICAgICAgfnc6KFYyLnggcDApXG4gICAgICAgICAgICAgIH5oOihWMi55IHAwIC0uIGJvdHRvbSk7XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgVjIuKHAgLSB2IDAuIHRvcCkgaSBpblxuICAgICAgICAgICAgTlZHLnJlc3RvcmUgdmc7XG4gICAgICAgICAgICBWMi4ocDEgLSB2IDAuICh0b3AgKy4gYm90dG9tKSlcbiAgICAgIGluXG5cbiAgICAgICgqIGlnbm9yZVxuICAgICAgICAgKHBhdGhfYm94IHZnLnZnXG4gICAgICAgICAgICAoTlZHLkNvbG9yLnJnYmFmIH5yOjEuIH5nOjAuIH5iOjAuIH5hOjAuMilcbiAgICAgICAgICAgIChCb3gyLm9mX3B0cyBiIGInKSk7ICopXG4gICAgICBiJ1xuICBlbmRcbmVuZFxuXG5tb2R1bGUgTm90dHVpID0gc3RydWN0XG4gIGxldCBtYXhpIHggeSA6IGludCA9IGlmIHggPiB5IHRoZW4geCBlbHNlIHlcbiAgbGV0IG1pbmkgeCB5IDogaW50ID0gaWYgeCA8IHkgdGhlbiB4IGVsc2UgeVxuXG4gIG1vZHVsZSBGb2N1cyA6IHNpZ1xuICAgIHR5cGUgdmFyID0gaW50IEx3ZC52YXJcbiAgICB0eXBlIGhhbmRsZVxuXG4gICAgdmFsIG1ha2UgOiB1bml0IC0+IGhhbmRsZVxuICAgIHZhbCByZXF1ZXN0IDogaGFuZGxlIC0+IHVuaXRcbiAgICB2YWwgcmVxdWVzdF92YXIgOiB2YXIgLT4gdW5pdFxuICAgIHZhbCByZWxlYXNlIDogaGFuZGxlIC0+IHVuaXRcblxuICAgIHR5cGUgc3RhdHVzID0gRW1wdHkgfCBIYW5kbGUgb2YgaW50ICogdmFyIHwgQ29uZmxpY3Qgb2YgaW50XG5cbiAgICB2YWwgZW1wdHkgOiBzdGF0dXNcblxuICAgICgqdmFsIGlzX2VtcHR5IDogc3RhdHVzIC0+IGJvb2wqKVxuICAgIHZhbCBzdGF0dXMgOiBoYW5kbGUgLT4gc3RhdHVzIEx3ZC50XG4gICAgdmFsIHZhciA6IGhhbmRsZSAtPiB2YXJcbiAgICB2YWwgaGFzX2ZvY3VzIDogc3RhdHVzIC0+IGJvb2xcbiAgICB2YWwgbWVyZ2UgOiBzdGF0dXMgLT4gc3RhdHVzIC0+IHN0YXR1c1xuICAgIHZhbCBwcF92YXIgOiBGb3JtYXQuZm9ybWF0dGVyIC0+IHZhciAtPiB1bml0XG4gICAgdmFsIHBwX3N0YXR1cyA6IEZvcm1hdC5mb3JtYXR0ZXIgLT4gc3RhdHVzIC0+IHVuaXRcbiAgZW5kID0gc3RydWN0XG4gICAgdHlwZSB2YXIgPSBpbnQgTHdkLnZhclxuICAgIHR5cGUgc3RhdHVzID0gRW1wdHkgfCBIYW5kbGUgb2YgaW50ICogdmFyIHwgQ29uZmxpY3Qgb2YgaW50XG4gICAgdHlwZSBoYW5kbGUgPSB2YXIgKiBzdGF0dXMgTHdkLnRcblxuICAgIGxldCBtYWtlICgpID1cbiAgICAgIGxldCB2ID0gTHdkLnZhciAwIGluXG4gICAgICAodiwgTHdkLm1hcCB+ZjooZnVuIGkgLT4gSGFuZGxlIChpLCB2KSkgKEx3ZC5nZXQgdikpXG5cbiAgICBsZXQgZW1wdHkgOiBzdGF0dXMgPSBFbXB0eVxuICAgIGxldCB2YXIgKGggOiBoYW5kbGUpIDogdmFyID0gZnN0IGhcbiAgICBsZXQgc3RhdHVzIChoIDogaGFuZGxlKSA6IHN0YXR1cyBMd2QudCA9IHNuZCBoXG5cbiAgICBsZXQgaGFzX2ZvY3VzID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gZmFsc2VcbiAgICAgIHwgSGFuZGxlIChpLCBfKSB8IENvbmZsaWN0IGkgLT4gaSA+IDBcblxuICAgIGxldCBjbG9jayA9IHJlZiAwXG5cbiAgICBsZXQgcmVxdWVzdF92YXIgKHYgOiB2YXIpID1cbiAgICAgIGluY3IgY2xvY2s7XG4gICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgbSBcIkZvY3VzLnJlcXVlc3RfdmFyIHY9JWQgY2xvY2s9JWRcIiAoTHdkLnBlZWsgdikgIWNsb2NrKTtcbiAgICAgIEx3ZC5zZXQgdiAhY2xvY2tcblxuICAgIGxldCByZXF1ZXN0ICgodiwgXykgOiBoYW5kbGUpID0gcmVxdWVzdF92YXIgdlxuXG4gICAgbGV0IHJlbGVhc2UgKCh2LCBfKSA6IGhhbmRsZSkgPVxuICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgIG0gXCJGb2N1cy5yZWxlYXNlIHY9JWQgY2xvY2s9JWRcIiAoTHdkLnBlZWsgdikgIWNsb2NrKTtcbiAgICAgIGluY3IgY2xvY2s7XG4gICAgICBMd2Quc2V0IHYgMFxuXG4gICAgbGV0IG1lcmdlIHMxIHMyIDogc3RhdHVzID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgIHwgKEVtcHR5IHwgSGFuZGxlICgwLCBfKSksIHggfCB4LCAoRW1wdHkgfCBIYW5kbGUgKDAsIF8pKSAtPiB4XG4gICAgICB8IEhhbmRsZSAoaTEsIF8pLCBIYW5kbGUgKGkyLCBfKSB3aGVuIGkxID0gaTIgLT4gczFcbiAgICAgIHwgKEhhbmRsZSAoaTEsIF8pIHwgQ29uZmxpY3QgaTEpLCBDb25mbGljdCBpMiB3aGVuIGkxIDwgaTIgLT4gczJcbiAgICAgIHwgKEhhbmRsZSAoaTEsIF8pIHwgQ29uZmxpY3QgaTEpLCBIYW5kbGUgKGkyLCBfKSB3aGVuIGkxIDwgaTIgLT5cbiAgICAgICAgICBDb25mbGljdCBpMlxuICAgICAgfCBDb25mbGljdCBfLCAoSGFuZGxlIChfLCBfKSB8IENvbmZsaWN0IF8pIC0+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+IFRlcm0ucmVsZWFzZSB0ZXJtKSAqKVxuZW5kXG5cbm1vZHVsZSBXaWRnZXRzID0gc3RydWN0XG4gICgqIE1ham9yaXR5IG9mIHRoaXMgd2FzIGFkYXB0ZWQgZnJvbSBOb3R0dWlfd2lkZ2V0cyAqKVxuXG4gIG9wZW4gTm90dHVpXG5cbiAgbGV0IHN0cmluZyA/KGF0dHIgPSBBLmVtcHR5KSBzdHIgPSBVaS5hdG9tIChJLnN0cmluZyB+YXR0ciBzdHIpXG4gIGxldCBpbnQgP2F0dHIgeCA9IHN0cmluZyA/YXR0ciAoc3RyaW5nX29mX2ludCB4KVxuICBsZXQgYm9vbCA/YXR0ciB4ID0gc3RyaW5nID9hdHRyIChzdHJpbmdfb2ZfYm9vbCB4KVxuICBsZXQgZmxvYXRfID9hdHRyIHggPSBzdHJpbmcgP2F0dHIgKHN0cmluZ19vZl9mbG9hdCB4KVxuICBsZXQgcHJpbnRmID9hdHRyIGZtdCA9IFByaW50Zi5rc3ByaW50ZiAoc3RyaW5nID9hdHRyKSBmbXRcbiAgbGV0IGZtdCA/YXR0ciBmbXQgPSBGb3JtYXQua2FzcHJpbnRmIChzdHJpbmcgP2F0dHIpIGZtdFxuXG4gIGxldCBrcHJpbnRmIGsgP2F0dHIgZm10ID1cbiAgICBQcmludGYua3NwcmludGYgKGZ1biBzdHIgLT4gayAoc3RyaW5nID9hdHRyIHN0cikpIGZtdFxuXG4gIGxldCBrZm10IGsgP2F0dHIgZm10ID1cbiAgICBGb3JtYXQua2FzcHJpbnRmIChmdW4gc3RyIC0+IGsgKHN0cmluZyA/YXR0ciBzdHIpKSBmbXRcblxuICB0eXBlIHdpbmRvd19tYW5hZ2VyID0ge1xuICAgIG92ZXJsYXlzIDogdWkgTHdkLnQgTHdkX3RhYmxlLnQ7XG4gICAgdmlldyA6IHVpIEx3ZC50O1xuICB9XG5cbiAgbGV0IHdpbmRvd19tYW5hZ2VyIGJhc2UgPVxuICAgIGxldCBvdmVybGF5cyA9IEx3ZF90YWJsZS5tYWtlICgpIGluXG4gICAgbGV0IGNvbXBvc2l0aW9uID1cbiAgICAgIEx3ZC5qb2luXG4gICAgICAgIChMd2RfdGFibGUucmVkdWNlIChMd2RfdXRpbHMubGlmdF9tb25vaWQgVWkucGFja196KSBvdmVybGF5cylcbiAgICBpblxuICAgIGxldCB2aWV3ID1cbiAgICAgIEx3ZC5tYXAyIGJhc2UgY29tcG9zaXRpb24gfmY6KGZ1biBiYXNlIGNvbXBvc2l0ZSAtPlxuICAgICAgICAgIFVpLmpvaW5feiBiYXNlXG4gICAgICAgICAgICAoVWkucmVzaXplX3RvIChVaS5sYXlvdXRfc3BlYyBiYXNlKSBjb21wb3NpdGUpKVxuICAgIGluXG4gICAgeyBvdmVybGF5czsgdmlldyB9XG5cbiAgbGV0IHdpbmRvd19tYW5hZ2VyX3ZpZXcgd20gPSB3bS52aWV3XG4gIGxldCB3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyB3bSA9IHdtLm92ZXJsYXlzXG5cbiAgbGV0IG1lbnVfb3ZlcmxheSB3bSBnID8oZHggPSAwLikgPyhkeSA9IDAuKSBib2R5IGFyb3VuZCA9XG4gICAgbGV0IHNlbnNvciB+eCB+eSB+dyB+aCAoKSA9XG4gICAgICBsZXQgcm93ID0gTHdkX3RhYmxlLmFwcGVuZCAod2luZG93X21hbmFnZXJfb3ZlcmxheXMgd20pIGluXG4gICAgICBsZXQgaF9wYWQgPVxuICAgICAgICBtYXRjaCBHcmF2aXR5LmggZyB3aXRoXG4gICAgICAgIHwgYE5lZ2F0aXZlIC0+IFVpLnNwYWNlICh4ICsuIGR4KSAwLlxuICAgICAgICB8IGBOZXV0cmFsIC0+IFVpLnNwYWNlICh4ICsuIGR4ICsuICh3IC8uIDIuKSkgMC5cbiAgICAgICAgfCBgUG9zaXRpdmUgLT4gVWkuc3BhY2UgKHggKy4gZHggKy4gdykgMC5cbiAgICAgIGluXG4gICAgICBsZXQgdl9wYWQgPVxuICAgICAgICBtYXRjaCBHcmF2aXR5LnYgZyB3aXRoXG4gICAgICAgIHwgYE5lZ2F0aXZlIC0+IFVpLnNwYWNlIDAuICh5ICsuIGR5KVxuICAgICAgICB8IGBOZXV0cmFsIC0+IFVpLnNwYWNlIDAuICh5ICsuIGR5ICsuIChoIC8uIDIuKSlcbiAgICAgICAgfCBgUG9zaXRpdmUgLT4gVWkuc3BhY2UgMC4gKHkgKy4gZHkgKy4gaClcbiAgICAgIGluXG4gICAgICBsZXQgdmlldyA9XG4gICAgICAgIEx3ZC5tYXAgYm9keSB+ZjooZnVuIGJvZHkgLT5cbiAgICAgICAgICAgIGxldCBib2R5ID1cbiAgICAgICAgICAgICAgbGV0IHBhZCA9IFVpLnNwYWNlIDEuIDAuIGluXG4gICAgICAgICAgICAgIFVpLmpvaW5feCBwYWQgKFVpLmpvaW5feCBib2R5IHBhZClcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBsZXQgYmcgPVxuICAgICAgICAgICAgICBVaS5yZXNpemVfdG8gKFVpLmxheW91dF9zcGVjIGJvZHkpXG4gICAgICAgICAgICAgICAgfmF0dHI6QS4oYmcgQ29sb3IubGlnaHRncmVlbilcbiAgICAgICAgICAgICAgICBVaS5lbXB0eVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGxldCBjYXRjaGFsbCA9XG4gICAgICAgICAgICAgIFVpLm1vdXNlX2FyZWFcbiAgICAgICAgICAgICAgICAoZnVuIH54Ol8gfnk6XyAtPiBmdW5jdGlvblxuICAgICAgICAgICAgICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5yZW1vdmUgcm93O1xuICAgICAgICAgICAgICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgICAgICAgICAgICB8IF8gLT4gYEhhbmRsZWQpXG4gICAgICAgICAgICAgICAgKFVpLnJlc2l6ZSB+c3c6MS4gfnNoOjEuIFVpLmVtcHR5KVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIFVpLmpvaW5feiBjYXRjaGFsbCBAQCBVaS5qb2luX3kgdl9wYWQgQEAgVWkuam9pbl94IGhfcGFkXG4gICAgICAgICAgICBAQCBVaS5qb2luX3ogYmcgYm9keSlcbiAgICAgIGluXG4gICAgICBMd2RfdGFibGUuc2V0IHJvdyB2aWV3XG4gICAgaW5cbiAgICBVaS50cmFuc2llbnRfc2Vuc29yIHNlbnNvciBhcm91bmRcblxuICAoKiBsZXQgbWVudV9vdmVybGF5IHdtID8oZHggPSAwKSA/KGR5ID0gMCkgaGFuZGxlciBib2R5ID1cbiAgICAgbGV0IHJlZnJlc2ggPSBMd2QudmFyICgpIGluXG4gICAgIGxldCBjbGlja2VkID0gcmVmIGZhbHNlIGluXG4gICAgIEx3ZC5tYXAnIGJvZHkgQEAgZnVuIGJvZHkgLT5cbiAgICAgbGV0IGJvZHkgPVxuICAgICAgIGxldCBwYWQgPSBVaS5zcGFjZSAxIDAgaW5cbiAgICAgICBVaS5qb2luX3ggcGFkIChVaS5qb2luX3ggYm9keSBwYWQpXG4gICAgIGluXG4gICAgIGxldCBiZyA9XG4gICAgICAgVWkucmVzaXplX3RvIChVaS5sYXlvdXRfc3BlYyBib2R5KVxuICAgICAgICAgfmJnOkEuKGJnIGxpZ2h0Z3JlZW4pXG4gICAgICAgICBVaS5lbXB0eVxuICAgICBpblxuICAgICBsZXQgY2xpY2tfaGFuZGxlciB+eDpfIH55Ol8gPSBmdW5jdGlvblxuICAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICAgY2xpY2tlZCA6PSB0cnVlO1xuICAgICAgICAgICBMd2Quc2V0IHJlZnJlc2ggKCk7XG4gICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgfCBfIC0+IGBVbmhhbmRsZWRcbiAgICAgaW5cbiAgICAgbGV0IHVpID0gVWkubW91c2VfYXJlYSBjbGlja19oYW5kbGVyIChVaS5qb2luX3ogYmcgYm9keSkgaW5cbiAgICAgaWYgIWNsaWNrZWQgdGhlbiAoXG4gICAgICAgY2xpY2tlZCA6PSBmYWxzZTtcbiAgICAgICBsZXQgc2Vuc29yIH54IH55IH53Ol8gfmggKCkgPVxuICAgICAgICAgbGV0IHJvdyA9IEx3ZF90YWJsZS5hcHBlbmQgKHdpbmRvd19tYW5hZ2VyX292ZXJsYXlzIHdtKSBpblxuICAgICAgICAgbGV0IGhfcGFkID0gVWkuc3BhY2UgKHggKyBkeCkgMCBpblxuICAgICAgICAgbGV0IHZfcGFkID0gVWkuc3BhY2UgMCAoeSArIGggKyBkeSkgaW5cbiAgICAgICAgIGxldCB2aWV3ID1cbiAgICAgICAgICAgTHdkLm1hcCcgKGhhbmRsZXIgKCkpIEBAIGZ1biB2aWV3IC0+XG4gICAgICAgICAgIGxldCBjYXRjaGFsbCA9XG4gICAgICAgICAgICAgVWkubW91c2VfYXJlYVxuICAgICAgICAgICAgICAgKGZ1biB+eDpfIH55Ol8gLT4gZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLnJlbW92ZSByb3c7XG4gICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICAgICAgICAgICB8IF8gLT4gYEhhbmRsZWQpXG4gICAgICAgICAgICAgICAoVWkucmVzaXplIH5zdzoxIH5zaDoxIFVpLmVtcHR5KVxuICAgICAgICAgICBpblxuICAgICAgICAgICBVaS5qb2luX3ogY2F0Y2hhbGwgKFVpLmpvaW5feSB2X3BhZCAoVWkuam9pbl94IGhfcGFkIHZpZXcpKVxuICAgICAgICAgaW5cbiAgICAgICAgIEx3ZF90YWJsZS5zZXQgcm93IHZpZXdcbiAgICAgICBpblxuICAgICAgIFVpLnRyYW5zaWVudF9zZW5zb3Igc2Vuc29yIHVpKVxuICAgICBlbHNlIHVpICopXG5cbiAgbGV0IHNjcm9sbF9zdGVwID0gNy5cblxuICBsZXQgc2Nyb2xsX2FyZWEgPyhvZmZzZXQgPSAoMC4sIDAuKSkgdCA9XG4gICAgbGV0IG9mZnNldCA9IEx3ZC52YXIgb2Zmc2V0IGluXG4gICAgbGV0IHNjcm9sbCBkX3ggZF95ID1cbiAgICAgIGxldCBzX3gsIHNfeSA9IEx3ZC5wZWVrIG9mZnNldCBpblxuICAgICAgbGV0IHNfeCA9IG1heCAwLiAoc194ICsuIGRfeCkgaW5cbiAgICAgIGxldCBzX3kgPSBtYXggMC4gKHNfeSArLiBkX3kpIGluXG4gICAgICBMd2Quc2V0IG9mZnNldCAoc194LCBzX3kpO1xuICAgICAgYEhhbmRsZWRcbiAgICBpblxuICAgIGxldCBmb2N1c19oYW5kbGVyID0gZnVuY3Rpb25cbiAgICAgIHwgYEFycm93IGBMZWZ0LCBbXSAtPiBzY3JvbGwgKC0uc2Nyb2xsX3N0ZXApIDAuXG4gICAgICB8IGBBcnJvdyBgUmlnaHQsIFtdIC0+IHNjcm9sbCAoKy5zY3JvbGxfc3RlcCkgMC5cbiAgICAgIHwgYEFycm93IGBVcCwgW10gLT4gc2Nyb2xsIDAuICgtLnNjcm9sbF9zdGVwKVxuICAgICAgfCBgQXJyb3cgYERvd24sIFtdIC0+IHNjcm9sbCAwLiAoKy5zY3JvbGxfc3RlcClcbiAgICAgIHwgYFBhZ2UgYFVwLCBbXSAtPiBzY3JvbGwgMC4gKC0uc2Nyb2xsX3N0ZXAgKi4gOC4pXG4gICAgICB8IGBQYWdlIGBEb3duLCBbXSAtPiBzY3JvbGwgMC4gKCsuc2Nyb2xsX3N0ZXAgKi4gOC4pXG4gICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgIGluXG4gICAgKCogbGV0IHNjcm9sbF9oYW5kbGVyIH54Ol8gfnk6XyA9IGZ1bmN0aW9uXG4gICAgICAgICB8IGBTY3JvbGwgYFVwIC0+IHNjcm9sbCAwLiAoLS5zY3JvbGxfc3RlcClcbiAgICAgICAgIHwgYFNjcm9sbCBgRG93biAtPiBzY3JvbGwgMC4gKCsuc2Nyb2xsX3N0ZXApXG4gICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgICAgIGluICopXG4gICAgTHdkLm1hcDIgdCAoTHdkLmdldCBvZmZzZXQpIH5mOihmdW4gdCAoc194LCBzX3kpIC0+XG4gICAgICAgIHQgfD4gVWkuc2hpZnRfYXJlYSBzX3ggc195XG4gICAgICAgICgqfD4gVWkubW91c2VfYXJlYSBzY3JvbGxfaGFuZGxlciopXG4gICAgICAgIHw+IFVpLmtleWJvYXJkX2FyZWEgZm9jdXNfaGFuZGxlcilcblxuICBsZXQgbWFpbl9tZW51X2l0ZW0gd20gdGV4dCBmID1cbiAgICBsZXQgdGV4dCA9IHN0cmluZyB+YXR0cjpBLm1lbnVfbWFpbiAoXCIgXCIgXiB0ZXh0IF4gXCIgXCIpIGluXG4gICAgbGV0IHJlZnJlc2ggPSBMd2QudmFyICgpIGluXG4gICAgbGV0IG92ZXJsYXkgPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgb25fY2xpY2sgfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICBvdmVybGF5IDo9IHRydWU7XG4gICAgICAgICAgTHdkLnNldCByZWZyZXNoICgpO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgIGluXG4gICAgTHdkLm1hcCAoTHdkLmdldCByZWZyZXNoKSB+ZjooZnVuICgpIC0+XG4gICAgICAgIGxldCB1aSA9IFVpLm1vdXNlX2FyZWEgb25fY2xpY2sgdGV4dCBpblxuICAgICAgICBpZiAhb3ZlcmxheSB0aGVuIChcbiAgICAgICAgICBvdmVybGF5IDo9IGZhbHNlO1xuICAgICAgICAgIG1lbnVfb3ZlcmxheSB3bVxuICAgICAgICAgICAgKEdyYXZpdHkubWFrZSB+aDpgTmVnYXRpdmUgfnY6YFBvc2l0aXZlKVxuICAgICAgICAgICAgKGYgKCkpIHVpKVxuICAgICAgICBlbHNlIHVpKVxuXG4gIGxldCBzdWJfbWVudV9pdGVtIHdtIHRleHQgZiA9XG4gICAgbGV0IHRleHQgPSBzdHJpbmcgfmF0dHI6QS5tZW51X3N1YiB0ZXh0IGluXG4gICAgbGV0IHJlZnJlc2ggPSBMd2QudmFyICgpIGluXG4gICAgbGV0IG92ZXJsYXkgPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgb25fY2xpY2sgfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICBvdmVybGF5IDo9IHRydWU7XG4gICAgICAgICAgTHdkLnNldCByZWZyZXNoICgpO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgIGluXG4gICAgTHdkLm1hcCAoTHdkLmdldCByZWZyZXNoKSB+ZjooZnVuICgpIC0+XG4gICAgICAgIGxldCB1aSA9IFVpLm1vdXNlX2FyZWEgb25fY2xpY2sgdGV4dCBpblxuICAgICAgICBpZiAhb3ZlcmxheSB0aGVuIChcbiAgICAgICAgICBvdmVybGF5IDo9IGZhbHNlO1xuICAgICAgICAgIG1lbnVfb3ZlcmxheSB3bVxuICAgICAgICAgICAgKEdyYXZpdHkubWFrZSB+aDpgUG9zaXRpdmUgfnY6YE5lZ2F0aXZlKVxuICAgICAgICAgICAgKGYgKCkpIHVpKVxuICAgICAgICBlbHNlIHVpKVxuXG4gIGxldCBzdWJfZW50cnkgdGV4dCBmID1cbiAgICBsZXQgdGV4dCA9IHN0cmluZyB+YXR0cjpBLm1lbnVfc3ViIHRleHQgaW5cbiAgICBsZXQgb25fY2xpY2sgfng6XyB+eTpfID0gZnVuY3Rpb25cbiAgICAgIHwgYExlZnQgLT5cbiAgICAgICAgICBmICgpO1xuICAgICAgICAgIGBIYW5kbGVkXG4gICAgICB8IF8gLT4gYFVuaGFuZGxlZFxuICAgIGluXG4gICAgVWkubW91c2VfYXJlYSBvbl9jbGljayB0ZXh0XG5cbiAgdHlwZSBwYW5lX3N0YXRlID1cbiAgICB8IFNwbGl0IG9mIHsgcG9zIDogZmxvYXQ7IG1heCA6IGZsb2F0IH1cbiAgICB8IFJlX3NwbGl0IG9mIHsgcG9zIDogZmxvYXQ7IG1heCA6IGZsb2F0OyBhdCA6IGZsb2F0IH1cblxuICBsZXQgaF9wYW5lIGxlZnQgcmlnaHQgPVxuICAgIGxldCBzdGF0ZV92YXIgPSBMd2QudmFyIChTcGxpdCB7IHBvcyA9IDUuOyBtYXggPSAxMC4gfSkgaW5cbiAgICBsZXQgcmVuZGVyIHN0YXRlIChsLCByKSA9XG4gICAgICBsZXQgKFNwbGl0IHsgcG9zOyBtYXggfSB8IFJlX3NwbGl0IHsgcG9zOyBtYXg7IF8gfSkgPSBzdGF0ZSBpblxuICAgICAgbGV0IGwgPSBVaS5yZXNpemUgfnc6MC4gfmg6MC4gfnNoOjEuIH5zdzpwb3MgbCBpblxuICAgICAgbGV0IHIgPSBVaS5yZXNpemUgfnc6MC4gfmg6MC4gfnNoOjEuIH5zdzoobWF4IC0uIHBvcykgciBpblxuICAgICAgbGV0IHNwbGl0dGVyID1cbiAgICAgICAgVWkucmVzaXplXG4gICAgICAgICAgfmF0dHI6QS4oYmcgQ29sb3IubGlnaHR5ZWxsb3cpXG4gICAgICAgICAgfnc6MS4gfmg6MC4gfnN3OjAuIH5zaDoxLiBVaS5lbXB0eVxuICAgICAgaW5cbiAgICAgIGxldCBzcGxpdHRlciA9XG4gICAgICAgIFVpLm1vdXNlX2FyZWFcbiAgICAgICAgICAoZnVuIH54Ol8gfnk6XyAtPiBmdW5jdGlvblxuICAgICAgICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICAgICAgIGBHcmFiXG4gICAgICAgICAgICAgICAgICAoIChmdW4gfnggfnk6XyAtPlxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIEx3ZC5wZWVrIHN0YXRlX3ZhciB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgfCBTcGxpdCB7IHBvczsgbWF4IH0gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgPSB4IH0pXG4gICAgICAgICAgICAgICAgICAgICAgfCBSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCB9IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGF0IDw+IHggdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVfc3BsaXQgeyBwb3M7IG1heDsgYXQgPSB4IH0pKSxcbiAgICAgICAgICAgICAgICAgICAgZnVuIH54Ol8gfnk6XyAtPiAoKSApXG4gICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZClcbiAgICAgICAgICBzcGxpdHRlclxuICAgICAgaW5cbiAgICAgIGxldCB1aSA9IFVpLmpvaW5feCBsIChVaS5qb2luX3ggc3BsaXR0ZXIgcikgaW5cbiAgICAgIGxldCB1aSA9IFVpLnJlc2l6ZSB+dzoxMDAuIH5oOjEwMC4gfnN3OjEwLiB+c2g6MTAuIHVpIGluXG4gICAgICBsZXQgdWkgPVxuICAgICAgICBtYXRjaCBzdGF0ZSB3aXRoXG4gICAgICAgIHwgU3BsaXQgXyAtPiB1aVxuICAgICAgICB8IFJlX3NwbGl0IHsgYXQ7IF8gfSAtPlxuICAgICAgICAgICAgVWkudHJhbnNpZW50X3NlbnNvclxuICAgICAgICAgICAgICAoZnVuIH54IH55Ol8gfncgfmg6XyAoKSAtPlxuICAgICAgICAgICAgICAgIEx3ZC5zZXQgc3RhdGVfdmFyIChTcGxpdCB7IHBvcyA9IGF0IC0uIHg7IG1heCA9IHcgfSkpXG4gICAgICAgICAgICAgIHVpXG4gICAgICBpblxuICAgICAgdWlcbiAgICBpblxuICAgIEx3ZC5tYXAyIH5mOnJlbmRlciAoTHdkLmdldCBzdGF0ZV92YXIpIChMd2QucGFpciBsZWZ0IHJpZ2h0KVxuXG4gIGxldCB2X3BhbmUgdG9wIGJvdCA9XG4gICAgbGV0IHN0YXRlX3ZhciA9IEx3ZC52YXIgKFNwbGl0IHsgcG9zID0gNS47IG1heCA9IDEwLiB9KSBpblxuICAgIGxldCByZW5kZXIgc3RhdGUgKHRvcCwgYm90KSA9XG4gICAgICBsZXQgKFNwbGl0IHsgcG9zOyBtYXggfSB8IFJlX3NwbGl0IHsgcG9zOyBtYXg7IF8gfSkgPSBzdGF0ZSBpblxuICAgICAgbGV0IHRvcCA9IFVpLnJlc2l6ZSB+dzowLiB+aDowLiB+c3c6MS4gfnNoOnBvcyB0b3AgaW5cbiAgICAgIGxldCBib3QgPSBVaS5yZXNpemUgfnc6MC4gfmg6MC4gfnN3OjEuIH5zaDoobWF4IC0uIHBvcykgYm90IGluXG4gICAgICBsZXQgc3BsaXR0ZXIgPVxuICAgICAgICBVaS5yZXNpemVcbiAgICAgICAgICB+YXR0cjpBLihiZyBDb2xvci5saWdodHllbGxvdylcbiAgICAgICAgICB+dzowLiB+aDoxLiB+c3c6MS4gfnNoOjAuIFVpLmVtcHR5XG4gICAgICBpblxuICAgICAgbGV0IHNwbGl0dGVyID1cbiAgICAgICAgVWkubW91c2VfYXJlYVxuICAgICAgICAgIChmdW4gfng6XyB+eTpfIC0+IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IGBMZWZ0IC0+XG4gICAgICAgICAgICAgICAgYEdyYWJcbiAgICAgICAgICAgICAgICAgICggKGZ1biB+eDpfIH55IC0+XG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggTHdkLnBlZWsgc3RhdGVfdmFyIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICB8IFNwbGl0IHsgcG9zOyBtYXggfSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IHN0YXRlX3ZhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCA9IHkgfSlcbiAgICAgICAgICAgICAgICAgICAgICB8IFJlX3NwbGl0IHsgcG9zOyBtYXg7IGF0IH0gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXQgPD4geSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSZV9zcGxpdCB7IHBvczsgbWF4OyBhdCA9IHkgfSkpLFxuICAgICAgICAgICAgICAgICAgICBmdW4gfng6XyB+eTpfIC0+ICgpIClcbiAgICAgICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkKVxuICAgICAgICAgIHNwbGl0dGVyXG4gICAgICBpblxuICAgICAgbGV0IHVpID0gVWkuam9pbl95IHRvcCAoVWkuam9pbl95IHNwbGl0dGVyIGJvdCkgaW5cbiAgICAgIGxldCB1aSA9IFVpLnJlc2l6ZSB+dzoxMC4gfmg6MTAuIH5zdzoxLiB+c2g6MS4gdWkgaW5cbiAgICAgIGxldCB1aSA9XG4gICAgICAgIG1hdGNoIHN0YXRlIHdpdGhcbiAgICAgICAgfCBTcGxpdCBfIC0+IHVpXG4gICAgICAgIHwgUmVfc3BsaXQgeyBhdDsgXyB9IC0+XG4gICAgICAgICAgICBVaS50cmFuc2llbnRfc2Vuc29yXG4gICAgICAgICAgICAgIChmdW4gfng6XyB+eSB+dzpfIH5oICgpIC0+XG4gICAgICAgICAgICAgICAgTHdkLnNldCBzdGF0ZV92YXIgKFNwbGl0IHsgcG9zID0gYXQgLS4geTsgbWF4ID0gaCB9KSlcbiAgICAgICAgICAgICAgdWlcbiAgICAgIGluXG4gICAgICB1aVxuICAgIGluXG4gICAgTHdkLm1hcDIgfmY6cmVuZGVyIChMd2QuZ2V0IHN0YXRlX3ZhcikgKEx3ZC5wYWlyIHRvcCBib3QpXG5cbiAgbGV0IGVxX3VjX2MgdWMgYyA9IFVjaGFyLihlcXVhbCB1YyAob2ZfY2hhciBjKSlcblxuICBsZXQgZWRpdF9maWVsZCA/KGZvY3VzID0gRm9jdXMubWFrZSAoKSkgPyhvbl9jaGFuZ2UgPSBGdW4uaWQpIHN0YXRlXG4gICAgICA9XG4gICAgbGV0IHVwZGF0ZSBmb2N1c19oIGZvY3VzICh0ZXh0LCBwb3MpID1cbiAgICAgIGxldCBwb3MgPSBtaW4gKG1heCAwIHBvcykgKFN0cmluZy5sZW5ndGggdGV4dCkgaW5cbiAgICAgIGxldCBjb250ZW50ID1cbiAgICAgICAgVWkuYXRvbSBAQCBJLmhjYXRcbiAgICAgICAgQEBcbiAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGZvY3VzIHRoZW5cbiAgICAgICAgICBsZXQgYXR0ciA9IEEuY2xpY2thYmxlIGluXG4gICAgICAgICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggdGV4dCBpblxuICAgICAgICAgIGlmIHBvcyA+PSBsZW4gdGhlblxuICAgICAgICAgICAgWyBJLnN0cmluZyB+YXR0ciB0ZXh0OyBJLnN0cmluZyB+YXR0cjpBLmN1cnNvciBcIiBcIiBdXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBJLnN0cmluZyB+YXR0ciAoU3RyaW5nLnN1YiB0ZXh0IDAgcG9zKTtcbiAgICAgICAgICAgICAgSS5zdHJpbmcgfmF0dHI6QS5jdXJzb3IgKFN0cmluZy5zdWIgdGV4dCBwb3MgMSk7XG4gICAgICAgICAgICAgIEkuc3RyaW5nIH5hdHRyXG4gICAgICAgICAgICAgICAgKFN0cmluZy5zdWIgdGV4dCAocG9zICsgMSkgKGxlbiAtIHBvcyAtIDEpKTtcbiAgICAgICAgICAgIF1cbiAgICAgICAgZWxzZSBbIEkuc3RyaW5nIChpZiB0ZXh0ID0gXCJcIiB0aGVuIFwiIFwiIGVsc2UgdGV4dCkgXVxuICAgICAgaW5cbiAgICAgIGxldCBoYW5kbGVyIGsgPVxuICAgICAgICBsZXQgb25fY2hhbmdlIGEgPVxuICAgICAgICAgIEx3ZC5zZXQgc3RhdGUgKG9uX2NoYW5nZSBhKTtcbiAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICBpblxuICAgICAgICAobWF0Y2ggayB3aXRoXG4gICAgICAgIHwgYFVjaGFyIGMsIFsgYEN0cmwgXSB3aGVuIFVjaGFyLihlcXVhbCBjIChvZl9jaGFyICdVJykpIC0+XG4gICAgICAgICAgICBvbl9jaGFuZ2UgKFwiXCIsIDApICgqIGNsZWFyICopXG4gICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnaycgLT5cbiAgICAgICAgICAgICgqIFRPRE8gcHV0IGtpbGxlZCB0ZXh0IGludG8ga2lsbC1yaW5nICopXG4gICAgICAgICAgICBpZiBwb3MgPCBTdHJpbmcubGVuZ3RoIHRleHQgdGhlblxuICAgICAgICAgICAgICBvbl9jaGFuZ2UgKFN0cmluZy5zdWIgdGV4dCAwIHBvcywgcG9zKVxuICAgICAgICAgICAgZWxzZSBgVW5oYW5kbGVkICgqIGtpbGwgKilcbiAgICAgICAgfCBgQmFja3NwYWNlLCBbXSAtPlxuICAgICAgICAgICAgaWYgcG9zID4gMCB0aGVuXG4gICAgICAgICAgICAgIGxldCB0ZXh0ID1cbiAgICAgICAgICAgICAgICBpZiBwb3MgPCBTdHJpbmcubGVuZ3RoIHRleHQgdGhlblxuICAgICAgICAgICAgICAgICAgU3RyaW5nLnN1YiB0ZXh0IDAgKHBvcyAtIDEpXG4gICAgICAgICAgICAgICAgICBeIFN0cmluZy5zdWIgdGV4dCBwb3MgKFN0cmluZy5sZW5ndGggdGV4dCAtIHBvcylcbiAgICAgICAgICAgICAgICBlbHNlIGlmIFN0cmluZy5sZW5ndGggdGV4dCA+IDAgdGhlblxuICAgICAgICAgICAgICAgICAgU3RyaW5nLnN1YiB0ZXh0IDAgKFN0cmluZy5sZW5ndGggdGV4dCAtIDEpXG4gICAgICAgICAgICAgICAgZWxzZSB0ZXh0XG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBwb3MgPSBtYXggMCAocG9zIC0gMSkgaW5cbiAgICAgICAgICAgICAgb25fY2hhbmdlICh0ZXh0LCBwb3MpXG4gICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWRcbiAgICAgICAgfCBgVWNoYXIgaywgW10gLT5cbiAgICAgICAgICAgIGxldCBrID0gVWNoYXIudW5zYWZlX3RvX2NoYXIgayBpblxuICAgICAgICAgICAgbGV0IHRleHQgPVxuICAgICAgICAgICAgICBpZiBwb3MgPCBTdHJpbmcubGVuZ3RoIHRleHQgdGhlblxuICAgICAgICAgICAgICAgIFN0cmluZy5zdWIgdGV4dCAwIHBvcyBeIFN0cmluZy5tYWtlIDEga1xuICAgICAgICAgICAgICAgIF4gU3RyaW5nLnN1YiB0ZXh0IHBvcyAoU3RyaW5nLmxlbmd0aCB0ZXh0IC0gcG9zKVxuICAgICAgICAgICAgICBlbHNlIHRleHQgXiBTdHJpbmcubWFrZSAxIGtcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBvbl9jaGFuZ2UgKHRleHQsIHBvcyArIDEpXG4gICAgICAgIHwgYEVzY2FwZSwgW10gLT5cbiAgICAgICAgICAgIEZvY3VzLnJlbGVhc2UgZm9jdXNfaDtcbiAgICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgICgqIHwgYEVudGVyLCBfIC0+XG4gICAgICAgICAgICBvbl9zdWJtaXQgKHRleHQsIHBvcyk7XG4gICAgICAgICAgICBgSGFuZGxlZCAqKVxuICAgICAgICB8IGBBcnJvdyBgTGVmdCwgW10gLT5cbiAgICAgICAgICAgIGlmIHBvcyA+IDAgdGhlbiBvbl9jaGFuZ2UgKHRleHQsIHBvcyAtIDEpIGVsc2UgYFVuaGFuZGxlZFxuICAgICAgICB8IGBBcnJvdyBgUmlnaHQsIFtdIC0+XG4gICAgICAgICAgICBsZXQgcG9zID0gcG9zICsgMSBpblxuICAgICAgICAgICAgaWYgcG9zIDw9IFN0cmluZy5sZW5ndGggdGV4dCB0aGVuIG9uX2NoYW5nZSAodGV4dCwgcG9zKVxuICAgICAgICAgICAgZWxzZSBgVW5oYW5kbGVkXG4gICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkKVxuICAgICAgICB8PiBmdW4gciAtPlxuICAgICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgICBtIFwiZWRpdF9maWVsZCBrZXlib2FyZF9hcmVhIGhhbmRsZXIgJWEgLT4gJWFcIiBVaS5wcF9rZXkga1xuICAgICAgICAgICAgICBVaS5wcF9tYXlfaGFuZGxlIHIpO1xuICAgICAgICByXG4gICAgICBpblxuICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgaGFuZGxlciBjb250ZW50XG4gICAgaW5cbiAgICBsZXQgbm9kZSA9XG4gICAgICBMd2QubWFwMiB+ZjoodXBkYXRlIGZvY3VzKSAoRm9jdXMuc3RhdHVzIGZvY3VzKSAoTHdkLmdldCBzdGF0ZSlcbiAgICBpblxuICAgIG5vZGVcbiAgKCogbGV0IG1vdXNlX2dyYWIgKHRleHQsIHBvcykgfnggfnk6XyA9IGZ1bmN0aW9uXG4gICAgICAgfCBgTGVmdCAtPlxuICAgICAgICAgICBpZiB4IDw+IHBvcyB0aGVuIG9uX2NoYW5nZSAodGV4dCwgeCk7XG4gICAgICAgICAgIE5vdHR1aS5Gb2N1cy5yZXF1ZXN0IGZvY3VzO1xuICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkXG4gICAgIGluXG4gICAgIEx3ZC5tYXAyIHN0YXRlIG5vZGUgfmY6KGZ1biBzdGF0ZSBjb250ZW50IC0+XG4gICAgICAgICBVaS5tb3VzZV9hcmVhIChtb3VzZV9ncmFiIHN0YXRlKSBjb250ZW50ICopXG5cbiAgb3BlbiBMd2QuSW5maXhcblxuICB0eXBlIGxpbmUgPSB7XG4gICAgZm9jdXMgOiBGb2N1cy5oYW5kbGU7XG4gICAgc3RhdGUgOiAoc3RyaW5nICogaW50KSBMd2QudmFyO1xuICAgIHVpIDogVWkudCBMd2QudDtcbiAgfVxuXG4gIHR5cGUgbGluZXMgPSBsaW5lIEx3ZF90YWJsZS50XG5cbiAgbGV0IGxpbmVfZW1wdHkgKCkgPVxuICAgIGxldCBmb2N1cyA9IEZvY3VzLm1ha2UgKCkgaW5cbiAgICBsZXQgc3RhdGUgPSBMd2QudmFyIChcIlwiLCAwKSBpblxuICAgIHsgZm9jdXM7IHN0YXRlOyB1aSA9IGVkaXRfZmllbGQgfmZvY3VzIHN0YXRlIH1cblxuICBsZXQgbGluZV9tYWtlID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKSBzdHIgPVxuICAgIGxldCBzdGF0ZSA9IEx3ZC52YXIgKHN0ciwgMCkgaW5cbiAgICB7IGZvY3VzOyBzdGF0ZTsgdWkgPSBlZGl0X2ZpZWxkIH5mb2N1cyBzdGF0ZSB9XG5cbiAgbGV0IGxpbmVfYXBwZW5kID8odGFibGUgPSBMd2RfdGFibGUubWFrZSAoKSkgP2ZvY3VzIHN0ciA9XG4gICAgbGV0IHJvdyA9IEx3ZF90YWJsZS5hcHBlbmQgdGFibGUgaW5cbiAgICBMd2RfdGFibGUuc2V0IHJvdyAobGluZV9tYWtlID9mb2N1cyBzdHIpXG5cbiAgbGV0IGNvcHlfbGluZV9jdXJzb3IgKHggOiBsaW5lKSAoeSA6IGxpbmUpID1cbiAgICBsZXQgXywgeGkgPSBMd2QucGVlayB4LnN0YXRlIGluXG4gICAgbGV0IHlzLCBfID0gTHdkLnBlZWsgeS5zdGF0ZSBpblxuICAgIGxldCB5aSA9IEludC5tYXggMCAoSW50Lm1pbiB4aSAoU3RyaW5nLmxlbmd0aCB5cykpIGluXG4gICAgTHdkLnNldCB5LnN0YXRlICh5cywgeWkpXG5cbiAgbGV0IHJvd19vZl9jdXJzb3IgY3Vyc29yIGYgPVxuICAgIFVpLm1heV9oYW5kbGUgKEx3ZC5wZWVrIGN1cnNvcikgKGZ1biByb3cgLT4gZiByb3cpXG5cbiAgbGV0IGxpbmVfb2ZfY3Vyc29yIGN1cnNvclxuICAgICAgKGYgOiBsaW5lIEx3ZF90YWJsZS5yb3cgLT4gbGluZSAtPiBVaS5tYXlfaGFuZGxlKSA6XG4gICAgICBVaS5tYXlfaGFuZGxlID1cbiAgICBVaS5tYXlfaGFuZGxlIChMd2QucGVlayBjdXJzb3IpIChmdW4gcm93IC0+XG4gICAgICAgIFVpLm1heV9oYW5kbGUgKEx3ZF90YWJsZS5nZXQgcm93KSAoZnVuIGxpbmUgLT4gZiByb3cgbGluZSkpXG5cbiAgbGV0IGN1cnNvcl9tb3ZlIGN1cnNvclxuICAgICAgKGYgOiAnYSBMd2RfdGFibGUucm93IC0+ICdhIEx3ZF90YWJsZS5yb3cgb3B0aW9uKSA9XG4gICAgbWF0Y2ggTHdkLnBlZWsgY3Vyc29yIHdpdGhcbiAgICB8IFNvbWUgY3Vyc29yX3JvdyAtPiAoXG4gICAgICAgIG1hdGNoIGYgY3Vyc29yX3JvdyB3aXRoXG4gICAgICAgIHwgU29tZSBuZXdfcm93IC0+XG4gICAgICAgICAgICAobWF0Y2ggTHdkX3RhYmxlLmdldCBuZXdfcm93IHdpdGhcbiAgICAgICAgICAgIHwgU29tZSBuZXdfbGluZSAtPlxuICAgICAgICAgICAgICAgIGN1cnNvcl9yb3cgfD4gTHdkX3RhYmxlLmdldFxuICAgICAgICAgICAgICAgIHw+IE9wdGlvbi5pdGVyIChmdW4gY3Vyc29yX2xpbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgY29weV9saW5lX2N1cnNvciBjdXJzb3JfbGluZSBuZXdfbGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBjdXJzb3JfbGluZS5mb2N1cyk7XG4gICAgICAgICAgICAgICAgRm9jdXMucmVxdWVzdCBuZXdfbGluZS5mb2N1c1xuICAgICAgICAgICAgfCBOb25lIC0+ICgpKTtcbiAgICAgICAgICAgIEx3ZC5zZXQgY3Vyc29yIChTb21lIG5ld19yb3cpO1xuICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgfCBOb25lIC0+IGBVbmhhbmRsZWQpXG4gICAgfCBOb25lIC0+IGBVbmhhbmRsZWRcblxuICBsZXQgZWRpdF9hcmVhX29mX3N0cmluZyA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpIChzIDogc3RyaW5nKSA6XG4gICAgICBsaW5lIEx3ZF90YWJsZS50ID1cbiAgICAoKiBBcHBlbmQgbGluZXMgZnJvbSBzIHRvIHRhYmxlICopXG4gICAgTGlzdC5pdGVyIChsaW5lX2FwcGVuZCB+dGFibGUpIChTdHJpbmcuc3BsaXRfb25fY2hhciAnXFxuJyBzKTtcbiAgICB0YWJsZVxuXG4gIGxldCBmb2N1c192YWwgZm9jdXMgOiBpbnQgPVxuICAgIEZvY3VzLihcbiAgICAgIG1hdGNoIGZvY3VzIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gMFxuICAgICAgfCBIYW5kbGUgKGksIF8pIC0+IGlcbiAgICAgIHwgQ29uZmxpY3QgaSAtPiBpKVxuXG4gIGxldCByZWMgZmluZF9mb2N1cyAodWkgOiB1aSkgOiB1aSA9XG4gICAgRm9jdXMuKFxuICAgICAgbWF0Y2ggKHVpLmZvY3VzLCB1aS5kZXNjKSB3aXRoXG4gICAgICB8IEVtcHR5LCBfIC0+IFVpLmVtcHR5XG4gICAgICB8IEhhbmRsZSAoXywgXyksIF8gLT4gdWlcbiAgICAgIHwgQ29uZmxpY3QgXywgKFggKGEsIGIpIHwgWSAoYSwgYikgfCBaIChhLCBiKSkgLT5cbiAgICAgICAgICBpZiBmb2N1c192YWwgYS5mb2N1cyA8IGZvY3VzX3ZhbCBiLmZvY3VzIHRoZW4gZmluZF9mb2N1cyBiXG4gICAgICAgICAgZWxzZSBmaW5kX2ZvY3VzIGFcbiAgICAgIHwgQ29uZmxpY3QgXywgQXRvbSBfIC0+IFVpLmVtcHR5XG4gICAgICB8ICggQ29uZmxpY3QgXyxcbiAgICAgICAgICAoIFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgICAgICB8IEZvY3VzX2FyZWEgKHQsIF8pXG4gICAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF8pXG4gICAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgXylcbiAgICAgICAgICB8IFJlc2l6ZSAodCwgXywgXywgXylcbiAgICAgICAgICB8IFNoaWZ0X2FyZWEgKHQsIF8sIF8pICkgKSAtPlxuICAgICAgICAgIGZpbmRfZm9jdXMgdClcblxuICBsZXQgZm9jdXNfaGFuZGxlX2NvbXBhcmUgYSBiID1cbiAgICBpZlxuICAgICAgTHdkLnBlZWsgKEZvY3VzLnZhciAoc25kIGEpLmZvY3VzKVxuICAgICAgPCBMd2QucGVlayAoRm9jdXMudmFyIChzbmQgYikuZm9jdXMpXG4gICAgdGhlbiBiXG4gICAgZWxzZSBhXG5cbiAgbGV0IGZvY3VzZWRfcm93X29mX3RhYmxlICh0YWJsZSA6IGxpbmUgTHdkX3RhYmxlLnQpID1cbiAgICBMd2RfdGFibGUubWFwX3JlZHVjZVxuICAgICAgKGZ1biByb3cgKGxpbmUgOiBsaW5lKSAtPiAoU29tZSByb3csIGxpbmUpKVxuICAgICAgKChOb25lLCBsaW5lX2VtcHR5ICgpKSwgZm9jdXNfaGFuZGxlX2NvbXBhcmUpXG4gICAgICB0YWJsZVxuXG4gIGxldCBlZGl0X2FyZWEgPyh0YWJsZSA9IEx3ZF90YWJsZS5tYWtlICgpKSA/KGZvY3VzID0gRm9jdXMubWFrZSAoKSlcbiAgICAgICgpIDogVWkudCBMd2QudCA9XG4gICAgbGV0IGN1cnNvciA9IEx3ZC52YXIgQEAgTHdkX3RhYmxlLmZpcnN0IHRhYmxlIGluXG4gICAgT3B0aW9uLml0ZXJcbiAgICAgIChmdW4gY3Vyc29yIC0+XG4gICAgICAgIE9wdGlvbi5pdGVyIChmdW4gZmlyc3QgLT4gRm9jdXMucmVxdWVzdCBmaXJzdC5mb2N1cylcbiAgICAgICAgQEAgTHdkX3RhYmxlLmdldCBjdXJzb3IpXG4gICAgICAoTHdkLnBlZWsgY3Vyc29yKTtcblxuICAgICgqIEJ1aWxkIHZpZXcgb2YgdGFibGUgKilcbiAgICBMd2RfdGFibGUubWFwX3JlZHVjZVxuICAgICAgKGZ1biBfIHsgdWk7IF8gfSAtPiB1aSlcbiAgICAgIChMd2RfdXRpbHMubGlmdF9tb25vaWQgVWkucGFja195KVxuICAgICAgdGFibGVcbiAgICB8PiBMd2Quam9pblxuICAgIHw+IEx3ZC5tYXAyXG4gICAgICAgICB+ZjooZnVuIGZvY3VzIC0+XG4gICAgICAgICAgIFVpLmtleWJvYXJkX2FyZWEgfmZvY3VzIChmdW4gayAtPlxuICAgICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgICAgIG0gXCJlZGl0X2FyZWEgaGFuZGxlciAlYVwiIFVpLnBwX2tleSBrKTtcbiAgICAgICAgICAgICAgIG1hdGNoIGsgd2l0aFxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICduJyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLm5leHQgYylcbiAgICAgICAgICAgICAgIHwgYEFycm93IGBEb3duLCBfIC0+XG4gICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUubmV4dCBjKVxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdwJyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLnByZXYgYylcbiAgICAgICAgICAgICAgIHwgYEFycm93IGBVcCwgXyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIGN1cnNvciAoZnVuIGMgLT4gTHdkX3RhYmxlLnByZXYgYylcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYE1ldGEgXSB3aGVuIGVxX3VjX2MgdSAnPCcgLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBfIC0+IEx3ZF90YWJsZS5maXJzdCB0YWJsZSlcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYE1ldGEgXSB3aGVuIGVxX3VjX2MgdSAnPicgLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBfIC0+IEx3ZF90YWJsZS5sYXN0IHRhYmxlKVxuICAgICAgICAgICAgICAgfCBgRW50ZXIsIFtdIC0+XG4gICAgICAgICAgICAgICAgICAgbGluZV9vZl9jdXJzb3IgY3Vyc29yIChmdW4gb2xkX3JvdyBvbGRfbGluZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyLCBwb3MgPSBMd2QucGVlayBvbGRfbGluZS5zdGF0ZSBpblxuICAgICAgICAgICAgICAgICAgICAgICBsZXQgb19zdHIgPSBTdHJpbmcuc3ViIHN0ciAwIHBvcyBpblxuICAgICAgICAgICAgICAgICAgICAgICBsZXQgbl9zdHIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy4oc3ViIHN0ciBwb3MgKGxlbmd0aCBzdHIgLSBwb3MpKVxuICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IG9sZF9saW5lLnN0YXRlIChvX3N0ciwgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19saW5lID0gbGluZV9tYWtlIG5fc3RyIGluXG4gICAgICAgICAgICAgICAgICAgICAgIEZvY3VzLnJlbGVhc2Ugb2xkX2xpbmUuZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgIEZvY3VzLnJlcXVlc3QgbmV3X2xpbmUuZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgY3Vyc29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgKFNvbWUgKEx3ZF90YWJsZS5hZnRlciBvbGRfcm93IH5zZXQ6bmV3X2xpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWQpXG4gICAgICAgICAgICAgICB8IGBCYWNrc3BhY2UsIFtdIC0+XG4gICAgICAgICAgICAgICAgICAgbGluZV9vZl9jdXJzb3IgY3Vyc29yIChmdW4gcm93IGxpbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0ciwgcG9zID0gTHdkLnBlZWsgbGluZS5zdGF0ZSBpblxuICAgICAgICAgICAgICAgICAgICAgICBVaS5tYXlfaGFuZGxlIChMd2RfdGFibGUucHJldiByb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biByb3dfcHJldiAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcG9zID0gMCB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVpLm1heV9oYW5kbGUgKEx3ZF90YWJsZS5nZXQgcm93X3ByZXYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biBsaW5lX3ByZXYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdHJfcHJldiwgXyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5wZWVrIGxpbmVfcHJldi5zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzLnJlbGVhc2UgbGluZS5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzLnJlcXVlc3QgbGluZV9wcmV2LmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBsaW5lX3ByZXYuc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdHJfcHJldiBeIHN0cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcubGVuZ3RoIHN0cl9wcmV2ICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2RfdGFibGUucmVtb3ZlIHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBgVW5oYW5kbGVkKSlcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnaycgLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgIHwgXyAtPiBgVW5oYW5kbGVkKSlcbiAgICAgICAgIChGb2N1cy5zdGF0dXMgZm9jdXMpXG5cbiAgbGV0IHRyZWVfbmF2ID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKSB0cmVlIHBhdGggOiBVaS50IEx3ZC50IEx3dC50ID1cbiAgICBsZXQgdGFibGUgPSBMd2RfdGFibGUubWFrZSAoKSBpblxuXG4gICAgbGV0IGN1cnNvcl9tb3ZlIGN1cnNvclxuICAgICAgICAoZiA6ICdhIEx3ZF90YWJsZS5yb3cgLT4gJ2EgTHdkX3RhYmxlLnJvdyBvcHRpb24pID1cbiAgICAgIG1hdGNoIEx3ZC5wZWVrIGN1cnNvciB3aXRoXG4gICAgICB8IFNvbWUgY3Vyc29yX3JvdyAtPiAoXG4gICAgICAgICAgbWF0Y2ggZiBjdXJzb3Jfcm93IHdpdGhcbiAgICAgICAgICB8IFNvbWUgbmV3X3JvdyAtPlxuICAgICAgICAgICAgICAobWF0Y2ggTHdkX3RhYmxlLmdldCBuZXdfcm93IHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIChuZXdfbGluZV9mb2N1cywgXykgLT5cbiAgICAgICAgICAgICAgICAgIGN1cnNvcl9yb3cgfD4gTHdkX3RhYmxlLmdldFxuICAgICAgICAgICAgICAgICAgfD4gT3B0aW9uLml0ZXIgKGZ1biAoY3Vyc29yX2xpbmVfZm9jdXMsIF8pIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBjdXJzb3JfbGluZV9mb2N1cyk7XG4gICAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lX2ZvY3VzXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiAoKSk7XG4gICAgICAgICAgICAgIEx3ZC5zZXQgY3Vyc29yIChTb21lIG5ld19yb3cpO1xuICAgICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICAgIHwgTm9uZSAtPiBgVW5oYW5kbGVkKVxuICAgICAgfCBOb25lIC0+IGBVbmhhbmRsZWRcbiAgICBpblxuXG4gICAgKCogQnVpbGQgdmlldyBvZiB0cmVlICopXG4gICAgbGV0IG9wZW4gTHd0LkluZml4IGluXG4gICAgTmF2LlMuVHJlZS5saXN0IHRyZWUgcGF0aCA+Pj0gZnVuIHRyZWVsaXN0IC0+XG4gICAgTGlzdC5pdGVyXG4gICAgICAoZnVuIHRlIC0+IEx3ZF90YWJsZS5hcHBlbmQnIHRhYmxlIChGb2N1cy5tYWtlICgpLCB0ZSkpXG4gICAgICB0cmVlbGlzdDtcbiAgICBsZXQgY3Vyc29yID0gTHdkLnZhciBAQCBMd2RfdGFibGUuZmlyc3QgdGFibGUgaW5cbiAgICBPcHRpb24uaXRlclxuICAgICAgKGZ1biBjdXJzb3IgLT5cbiAgICAgICAgT3B0aW9uLml0ZXIgKGZ1biAoZiwgXykgLT4gRm9jdXMucmVxdWVzdCBmKVxuICAgICAgICBAQCBMd2RfdGFibGUuZ2V0IGN1cnNvcilcbiAgICAgIChMd2QucGVlayBjdXJzb3IpO1xuXG4gICAgKCogTHdkLm9ic2VydmUgfm9uX2ludmFsaWRhdGU6KGZ1biBfIC0+XG4gICAgICAgICBMd2Quc2V0IGN1cnNvcnZpZXcgKEx3ZC5xdWlja19zYW1wbGUgKHJvb3QgKCkpKSk7ICopXG4gICAgbGV0IGN1cnNvcnZpZXcgPVxuICAgICAgTHdkLnZhciBAQCBMd2QucHVyZSBAQCBzdHJpbmcgXCJpbml0aWFsaXppbmcuLi5cIlxuICAgIGluXG4gICAgbGV0IGN2LCBwdXNoX2N2ID0gTHd0X3N0cmVhbS5jcmVhdGUgKCkgaW5cbiAgICBsZXQgY3Zyb290ID1cbiAgICAgIEx3ZC5vYnNlcnZlIH5vbl9pbnZhbGlkYXRlOihmdW4gXyAtPlxuICAgICAgICAgIExvZy5pbmZvIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtXG4gICAgICAgICAgICAgICAgXCJ0cmVlX25hdiBjdXJzb3J2aWV3cm9vdCBvbl9pbnZhbGlkYXRlIHB1c2hfY3YgXFxcbiAgICAgICAgICAgICAgICAgdHJpZ2dlcmVkPz9cIik7XG4gICAgICAgICAgcHVzaF9jdiAoU29tZSAoKSkpXG4gICAgICBAQCBMd2QubWFwIChMd2QuZ2V0IGN1cnNvcikgfmY6KGZ1bmN0aW9uXG4gICAgICAgICAgIHwgU29tZSBjdXJzb3Jfcm93IC0+IChcbiAgICAgICAgICAgICAgIG1hdGNoIEx3ZF90YWJsZS5nZXQgY3Vyc29yX3JvdyB3aXRoXG4gICAgICAgICAgICAgICB8IFNvbWUgKF9mb2N1cywgKHN0ZXAsIHRyZWUpKSAtPiAoXG4gICAgICAgICAgICAgICAgICAgTmF2LlMuVHJlZS5raW5kIHRyZWUgW10gPj49IGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAgfCBTb21lIGBOb2RlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIEx3dC5yZXR1cm4gQEAgTHdkLnB1cmUgQEAgc3RyaW5nIFwiU3ViLW5vZGU/P1wiXG4gICAgICAgICAgICAgICAgICAgfCBTb21lIGBDb250ZW50cyAtPiAoXG4gICAgICAgICAgICAgICAgICAgICAgIE5hdi5TLlRyZWUuZmluZF9hbGwgdHJlZSBbXSA+Pj0gZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgfCBTb21lIChjb250ZW50cywgX21ldGFkYXRhKSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgTHd0LnJldHVyblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdF9hcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH50YWJsZTooZWRpdF9hcmVhX29mX3N0cmluZyBjb250ZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgTHd0LnJldHVybiBAQCBMd2QucHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQEAgc3RyaW5nIChcImNvdWxkIG5vdCBmaW5kIHBhdGg6IFwiIF4gc3RlcCkpXG4gICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IEx3dC5yZXR1cm4gQEAgTHdkLnB1cmUgQEAgc3RyaW5nIHN0ZXApXG4gICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICBMd3QucmV0dXJuIEBAIEx3ZC5wdXJlXG4gICAgICAgICAgICAgICAgICAgQEAgc3RyaW5nIFwiY3Vyc29yIHRhYmxlIHJvdyBkb2Vzbid0IGV4aXN0XCIpXG4gICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgTHd0LnJldHVybiBAQCBMd2QucHVyZSBAQCBzdHJpbmcgXCJjdXJzb3IgZG9lc24ndCBleGlzdFwiKVxuICAgIGluXG4gICAgTHd0LmFzeW5jIChmdW4gKCkgLT5cbiAgICAgICAgTHd0X3N0cmVhbS5pdGVyX3NcbiAgICAgICAgICAoZnVuIF8gLT5cbiAgICAgICAgICAgIEx3ZC5xdWlja19zYW1wbGUgY3Zyb290ID4+PSBmdW4gY3Vyc29ydmlldycnIC0+XG4gICAgICAgICAgICBMb2cuaW5mbyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgICBtXG4gICAgICAgICAgICAgICAgICBcInRyZWVfbmF2IGN1cnNvcnZpZXdyb290IG9uX2ludmFsaWRhdGUgTHd0LmFzeW5jIFxcXG4gICAgICAgICAgICAgICAgICAgKEx3ZC5zZXQgY3Vyc29ydmlldykgdHJpZ2dlcmVkPz9cIik7XG4gICAgICAgICAgICBMd3QucmV0dXJuIChMd2Quc2V0IGN1cnNvcnZpZXcgY3Vyc29ydmlldycnKSlcbiAgICAgICAgICBjdik7XG4gICAgcHVzaF9jdiAoU29tZSAoKSk7XG4gICAgTHd0LnJldHVyblxuICAgICAgKEx3ZF90YWJsZS5tYXBfcmVkdWNlXG4gICAgICAgICAoZnVuIF8gKGYsIChzLCBfKSkgLT5cbiAgICAgICAgICAgTHdkLm1hcFxuICAgICAgICAgICAgIH5mOihmdW4gZm9jdXNfaCAtPlxuICAgICAgICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGZvY3VzX2ggdGhlbiBzdHJpbmcgfmF0dHI6QS5jdXJzb3Igc1xuICAgICAgICAgICAgICAgZWxzZSBzdHJpbmcgcylcbiAgICAgICAgICAgICAoRm9jdXMuc3RhdHVzIGYpKVxuICAgICAgICAgKEx3ZF91dGlscy5saWZ0X21vbm9pZCBVaS5wYWNrX3kpXG4gICAgICAgICB0YWJsZVxuICAgICAgfD4gTHdkLmpvaW5cbiAgICAgIHw+IEx3ZC5tYXAyXG4gICAgICAgICAgIH5mOihmdW4gZm9jdXMgLT5cbiAgICAgICAgICAgICBVaS5rZXlib2FyZF9hcmVhIH5mb2N1cyAoZnVuIGsgLT5cbiAgICAgICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgICAgICAgbSBcImVkaXRfYXJlYSBoYW5kbGVyICVhXCIgVWkucHBfa2V5IGspO1xuICAgICAgICAgICAgICAgICBtYXRjaCBrIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICduJyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUubmV4dCBjKVxuICAgICAgICAgICAgICAgICB8IGBBcnJvdyBgRG93biwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUubmV4dCBjKVxuICAgICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ3AnIC0+XG4gICAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBjIC0+IEx3ZF90YWJsZS5wcmV2IGMpXG4gICAgICAgICAgICAgICAgIHwgYEFycm93IGBVcCwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gYyAtPiBMd2RfdGFibGUucHJldiBjKVxuICAgICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBNZXRhIF0gd2hlbiBlcV91Y19jIHUgJzwnIC0+XG4gICAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLmZpcnN0IHRhYmxlKVxuICAgICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBNZXRhIF0gd2hlbiBlcV91Y19jIHUgJz4nIC0+XG4gICAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgKGZ1biBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLmxhc3QgdGFibGUpXG4gICAgICAgICAgICAgICAgIHwgYEVudGVyLCBbXSAtPiBgSGFuZGxlZFxuICAgICAgICAgICAgICAgICB8IGBCYWNrc3BhY2UsIFtdIC0+IGBVbmhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdrJyAtPiBgSGFuZGxlZFxuICAgICAgICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZCkpXG4gICAgICAgICAgIChGb2N1cy5zdGF0dXMgZm9jdXMpXG4gICAgICB8PiBMd2QubWFwMlxuICAgICAgICAgICB+ZjooZnVuIGN1cnNvcnZpZXcnIHRyZWVfdmlldyAtPlxuICAgICAgICAgICAgIFVpLmpvaW5feCB0cmVlX3ZpZXcgY3Vyc29ydmlldycpXG4gICAgICAgICAgIChMd2Quam9pbiBAQCBMd2QuZ2V0IGN1cnNvcnZpZXcpKVxuXG4gICgqKiBUYWIgdmlldywgd2hlcmUgZXhhY3RseSBvbmUgZWxlbWVudCBvZiBbbF0gaXMgc2hvd24gYXQgYSB0aW1lLiAqKVxuICBsZXQgdGFicyAodGFicyA6IChzdHJpbmcgKiAodW5pdCAtPiBVaS50IEx3ZC50KSkgbGlzdCkgOiBVaS50IEx3ZC50XG4gICAgICA9XG4gICAgbWF0Y2ggdGFicyB3aXRoXG4gICAgfCBbXSAtPiBMd2QucmV0dXJuIFVpLmVtcHR5XG4gICAgfCBfIC0+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+aDpgUG9zaXRpdmUgfnY6YE5lZ2F0aXZlIGluXG4gIGxldCBib2R5ID0gTHdkLnZhciAoTHdkLnB1cmUgVWkuZW1wdHkpIGluXG4gIGxldCB3bSA9IFdpZGdldHMud2luZG93X21hbmFnZXIgKEx3ZC5qb2luIChMd2QuZ2V0IGJvZHkpKSBpblxuICBOYXYudGVzdF9wdWxsICgpID4+PSBmdW4gdGVzdF90cmVlIC0+XG4gIFdpZGdldHMuKHRyZWVfbmF2IHRlc3RfdHJlZSBbXSkgPj49IGZ1biB1aSAtPlxuICBsZXQgcm9vdCA9XG4gICAgTHdkLnNldCBib2R5XG4gICAgICAoTHdkLm1hcCB+ZjooVWkucmVzaXplIH5wYWQ6Z3Jhdml0eV9wYWQgfmNyb3A6Z3Jhdml0eV9jcm9wKSB1aSk7XG4gICAgV2lkZ2V0cy53aW5kb3dfbWFuYWdlcl92aWV3IHdtXG4gIGluXG5cbiAgbGV0IGV2ZW50cywgcHVzaF9ldmVudCA9IEx3dF9zdHJlYW0uY3JlYXRlICgpIGluXG4gIGxldCBpbWFnZXMgPVxuICAgIEh1bWFuLk5vdHR1aV9sd3QucmVuZGVyIHZnXG4gICAgICB+c2l6ZTooR2cuUDIudiBjYW52YXMjIy53aWR0aCBjYW52YXMjIy5oZWlnaHQpXG4gICAgICBldmVudHMgcm9vdFxuICBpblxuICBhc3luYyAoZnVuICgpIC0+XG4gICAgICByZW5kZXJfc3RyZWFtIGNhbnZhcyB3ZWJnbF9jdHggdmdcbiAgICAgICAgKGZ1biB2ZyA/KHRpbWUgPSAwLikgcCBpIC0+XG4gICAgICAgICAgbGV0IF8gPSB0aW1lIGluXG4gICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtIFwiRHJhd2luZyBpbWFnZTogcD0lYSBuPSVhXCIgR2cuVjIucHAgcFxuICAgICAgICAgICAgICAgIChJLkRyYXcucHAgfmF0dHI6QS5kYXJrKVxuICAgICAgICAgICAgICAgIGkpO1xuICAgICAgICAgIGxldCBwJyA9IEkuRHJhdy5ub2RlIHZnIEEuZGFyayBwIGkgaW5cbiAgICAgICAgICBMb2dzLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICBtIFwiRHJhd2luZyBmaW5pc2hlZDogcCc9JWFcIiBHZy5WMi5wcCBwJykpXG4gICAgICAgIGltYWdlcyk7XG4gIGJ1ZmZlcmVkX2xvb3AgKG1ha2VfZXZlbnQgRG9tX2h0bWwuRXZlbnQua2V5ZG93bikgRG9tX2h0bWwuZG9jdW1lbnRcbiAgICAoZnVuIGV2IF8gLT5cbiAgICAgIEx3dC5yZXR1cm5cbiAgICAgIEBAIHB1c2hfZXZlbnQgKFNvbWUgKGBLZXkgKEV2ZW50X2pzLmV2dF9vZl9qc2tleSBldikpKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRW5zdXJlIHRoYXQgW2F0X2V4aXRdIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgZXZlcnkgcHJvZ3JhbSAqKVxuXG5sZXQgXyA9IGRvX2F0X2V4aXQoKVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJib290X2pzLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2J5dGVzX2JvdW5kX2Vycm9yIiwiY2FtbF9ieXRlc191bnNhZmVfZ2V0IiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2NyZWF0ZV9ieXRlcyIsImNhbWxfbWxfYnl0ZXNfbGVuZ3RoIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiQXJyYXkiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsImNhbWxfYmxpdF9zdHJpbmciLCJlIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsIm9rIiwiZmlsZSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmlsZSIsImZkIiwicmVxdWlyZSIsImVyciIsImJ1Zl9vZmZzZXQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJvIiwianNfc3RhdHMiLCJ0b19kaXIiLCJ0YXJnZXQiLCJsaW5rIiwiZmlsZV9raW5kIiwiY2FtbF9nZXRfcm9vdCIsImNhbWxfZmFpbHdpdGgiLCJjYW1sX3Jvb3QiLCJqc29vX21vdW50X3BvaW50IiwicmVzb2x2ZV9mc19kZXZpY2UiLCJjYW1sX3N5c19pc19kaXJlY3RvcnkiLCJjYW1sX3JhaXNlX25vdF9mb3VuZCIsImNhbWxfc3lzX2dldGVudiIsImciLCJ1bmRlZmluZWQiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsIk1sT2JqZWN0VGFibGUiLCJOYWl2ZUxvb2t1cCIsIm9ianMiLCJjYW1sX3N5c19yZW5hbWUiLCJvX3Jvb3QiLCJuX3Jvb3QiLCJjYW1sX2xvZzEwX2Zsb2F0IiwidW5peF91bmxpbmsiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwidW5peF9ybWRpciIsImNhbWxfbWxfcmVmaWxsX2lucHV0IiwiY2hhbiIsInN0ciIsInN0cl9sZW4iLCJjYW1sX21sX2NoYW5uZWxzIiwiY2FtbF9tbF9tYXlfcmVmaWxsX2lucHV0IiwiY2hhbmlkIiwiY2FtbF9hcnJheV9ib3VuZF9lcnJvciIsImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lIiwiY2FtbF9nY19taW5vciIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfaW50X2NvbXBhcmUiLCJiaWdzdHJpbmdhZl9tZW1jbXBfYmlnc3RyaW5nIiwiYmExIiwiYmExX29mZiIsImJhMiIsImJhMl9vZmYiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJ0bXAiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXkiLCJ1bml4X2dldHRpbWVvZmRheSIsIkRhdGUiLCJjYW1sX211bCIsImNhbWxfaGFzaF9taXhfaW50IiwibnVtX2RpZ2l0c19uYXQiLCJuYXQiLCJjYW1sX2hhc2hfbmF0IiwiY2FtbF9jYWxsX2dlbiIsImFyZ3NMZW4iLCJleHRyYV9hcmdzIiwiYXJndW1lbnRzIiwibmFyZ3MiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX2djX2NvdW50ZXJzIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsInVuaXhfaGFzX3N5bWxpbmsiLCJ1bml0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsInBvczIiLCJzbGljZSIsImJpZ3N0cmluZ2FmX2JsaXRfZnJvbV9ieXRlcyIsInNyYyIsInNyY19vZmYiLCJkc3QiLCJkc3Rfb2ZmIiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsIkluZmluaXR5IiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJpbnQzMmEiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImV4cCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJkYXRhIiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiTnVtYmVyIiwiY2FtbF9ieXRlc19jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsInoiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0IiwiYXJyIiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImNhcnJ5IiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJib3Jyb3ciLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJjYW1sX2NvbXBhcmUiLCJjYW1sX2ZyZXNoX29vX2lkIiwiY2FtbF9pbnQ2NF90b19mbG9hdCIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwiY2FtbF9vYmpfYmxvY2siLCJjYW1sX2dyX2NsZWFyX2dyYXBoIiwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciIsImJzIiwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCIsIl91bml0IiwibHhvcl9kaWdpdF9uYXQiLCJjYW1sX29ial9hZGRfb2Zmc2V0IiwiY2FtbF9maW5hbF9yZWxlYXNlIiwiY2FtbF9qc190b19hcnJheSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQxNiIsImkxNiIsImNhbWxfc3RyaW5nX3NldDE2IiwiY2FtbF9ieXRlc19zZXQ2NCIsImk2NCIsImNhbWxfaW50NjRfYnN3YXAiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2ZpbGxfc3RyaW5nIiwiY2FtbF9nY19tYWpvciIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYXNlIiwiYmFja3RyayIsInVuaXhfZ2V0dWlkIiwiY2FtbF9zeXNfZmlsZV9leGlzdHMiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9hcnJheV9zdWIiLCJjYW1sX2J5dGVzX2VxdWFsIiwiY2FtbF9ncl9zaXplX3giLCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIiwib3NfdHlwZSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4iLCJjYW1sX2Nvc2hfZmxvYXQiLCJjYW1sX2VwaGVfa2V5X29mZnNldCIsImNhbWxfd2Vha19jaGVjayIsImNhbWxfZXBoZV9jaGVja19rZXkiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwiY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIiwiY2FtbF9sZXNzZXF1YWwiLCJjYW1sX2Fjb3NoX2Zsb2F0IiwiY2FtbF9tbF9mbHVzaCIsIm91dHB1dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF93ZWFrX2dldCIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsIndpbl9jbGVhbnVwIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9zeXNfaXNhdHR5IiwiX2NoYW4iLCJpc19kaWdpdF96ZXJvIiwidW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nIiwiY2FtbF9qc19zZXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwidW5peF9sb2NhbHRpbWUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJjYW1sX3dlYWtfY3JlYXRlIiwiY2FtbF9lcGhlX2NyZWF0ZSIsImNhbWxfanNfdG9fYnl0ZV9zdHJpbmciLCJ1bml4X21rdGltZSIsInRtIiwidG0yIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9oeXBvdF9mbG9hdCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJieXRlczIiLCJiaWdzdHJpbmdhZl9ibGl0X3RvX2J5dGVzIiwiY2FtbF9lcmZjX2Zsb2F0IiwiY2FtbF9ncl9maWxsX3BvbHkiLCJhciIsImNhbWxfZ2NfcXVpY2tfc3RhdCIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzIiwibnRoX2RpZ2l0X25hdCIsImNhbWxfYXJyYXlfYmxpdCIsImNhbWxfZmxvYXRfb2Zfc3RyaW5nIiwibTMiLCJtYW50aXNzYSIsInBhcnNlSW50IiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIiwiY2FtbF9saXN0X3RvX2pzX2FycmF5IiwiY2FtbF9sZWdhY3lfY3VzdG9tX2NvZGUiLCJjYW1sX291dHB1dF92YWwiLCJXcml0ZXIiLCJ2YWx1ZSIsImZsYWdzIiwibm9fc2hhcmluZyIsImNsb3N1cmVzIiwiaW50ZXJuX29ial90YWJsZSIsIm1lbW8iLCJleGlzdGluZ19vZmZzZXQiLCJleHRlcm5fcmVjIiwib3BzIiwic3pfMzJfNjQiLCJoZWFkZXJfcG9zIiwib2xkX3BvcyIsInR5cGVfb2ZfdiIsImNhbWxfc3RyaW5nX29mX2FycmF5IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIiwiY2FtbF9yYWlzZV9ub3RfYV9kaXIiLCJjYW1sX3N5c19zeXN0ZW1fY29tbWFuZCIsImNtZCIsInVuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbiIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsInVuaXhfbHN0YXQiLCJ1bml4X2xzdGF0XzY0IiwianNfcHJpbnRfc3Rkb3V0IiwiY2FtbF9jb3B5c2lnbl9mbG9hdCIsImNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSIsImNhbWxfbWQ1X2J5dGVzIiwiYWRkIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsIm1kNSIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9pbnQ2NF9hZGQiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImJpdHMiLCJvbmUiLCJjYW1sX2dyX3NpemVfeSIsImNhbWxfbWxfcG9zX2luIiwiY2FtbF9pbnQ2NF9hbmQiLCJjYW1sX3N5c19jb25zdF93b3JkX3NpemUiLCJjYW1sX3N0ZF9vdXRwdXQiLCJzbGVuIiwianNfcHJpbnRfc3RkZXJyIiwiY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCIsImlkeCIsImluZm8iLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwiTWxTdHJpbmdSZWFkZXIiLCJjYW1sX2Zsb2F0X29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciIsIl9tYWdpYyIsIl9ibG9ja19sZW4iLCJudW1fb2JqZWN0cyIsIl9zaXplXzMyIiwiX3NpemVfNjQiLCJvYmpfY291bnRlciIsImludGVybl9yZWMiLCJoZWFkZXIiLCJleHBlY3RlZF9zaXplIiwiY2FtbF9zdHJpbmdfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJwcmVmaXhfbWF0Y2giLCJvcCIsInNhcmciLCJ1YXJnIiwiZ3JvdXAiLCJFcnJvciIsInJlX3NlYXJjaF9iYWNrd2FyZCIsImNhbWxfanNfZnJvbV9zdHJpbmciLCJjYW1sX2JhX3N1YiIsImNoYW5nZWRfZGltIiwibXVsIiwibmV3X2RpbXMiLCJuZXdfZGF0YSIsImNhbWxfZ2NfZnVsbF9tYWpvciIsImNhbWxfYnl0ZXNfc2V0MzIiLCJpMzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsInN0YXJ0IiwiY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24iLCJoYW5kbGVyIiwiYXRfZXhpdCIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfZXBoZV9jaGVja19kYXRhIiwiY2FtbF9ieXRlc19nZXQxNiIsImNhbWxfb2JqX21ha2VfZm9yd2FyZCIsImNhbWxfanNfZnJvbV9ib29sIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lIiwiY2FtbF9leHAyX2Zsb2F0IiwiY2FtbF9ncl9jbG9zZV9ncmFwaCIsImNhbWxfY3JlYXRlX3N0cmluZyIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfbWQ1X2NoYW4iLCJjaGFuX2xlbiIsImNhbWxfb2JqX2R1cCIsImNhbWxfd2Vha19nZXRfY29weSIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsInN0cmluZyIsImpzc3RyaW5nIiwiaWQiLCJjYW1sX21sX291dHB1dCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImwxIiwibDIiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsImNhbWxfanNfZXhwciIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyIsImNhbWxfZXZlbnRsb2dfcmVzdW1lIiwiY2FtbF9oYXNoX3VuaXZfcGFyYW0iLCJjb3VudCIsImxpbWl0Iiwib2JqIiwiaGFzaF9hY2N1IiwiaGFzaF9hdXgiLCJqc2J5dGVzIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJlbmQiLCJjYW1sX3B1cmVfanNfZXhwciIsImJsaXRfbmF0IiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIiwiY2FtbF9wYXJzZV9kaWdpdCIsImNhbWxfaW50NjRfb2Zfc3RyaW5nIiwiYmFzZTY0IiwidGhyZXNob2xkIiwiY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmciLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9tbF9pbnB1dF9jaGFyIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNhbWxfYmFfZ2V0XzIiLCJ3aW5faGFuZGxlX2ZkIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsIndpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbCIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsImNhbWxfZ3JfYXJjX2F1eCIsImN0eCIsImN4IiwiY3kiLCJyeSIsInJ4Iiwicm90IiwieFBvcyIsInlQb3MiLCJ4UG9zX3ByZXYiLCJ5UG9zX3ByZXYiLCJzcGFjZSIsImRlbHRhIiwiY2FtbF9ncl9maWxsX2FyYyIsImNhbWxfYmFfc2xpY2UiLCJudW1faW5kcyIsInN1Yl9kaW1zIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsImdldDMyIiwiY2FtbF9pbnB1dF92YWx1ZSIsImNhbWxfYmFfa2luZCIsImNhbWxfanNfZnVuX2NhbGwiLCJjYW1sX2djX21ham9yX3NsaWNlIiwid29yayIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsInVuaXhfZ210aW1lIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsInVuaXhfdGltZSIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJyZV9zdHJpbmdfbWF0Y2giLCJCaWdTdHJpbmdSZWFkZXIiLCJjYW1sX2dyX2R1bXBfaW1hZ2UiLCJjYW1sX2JhX2dldF9nZW5lcmljIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19iaWdzdHJpbmciLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9maWxsX2JpZ3N0cmluZyIsImJ1Zl9vZmYiLCJidWZfbGVuIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfanNfdG9fYm9vbCIsImNhbWxfZ3JfY3JlYXRlX2ltYWdlIiwiY2FtbF9lcGhlX2dldF9rZXlfY29weSIsImNhbWxfbGVzc3RoYW4iLCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IiwiYmlnc3RyaW5nYWZfbWVtY21wX3N0cmluZyIsImJhX29mZiIsInN0cl9vZmYiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJiaWdzdHJpbmdhZl9tZW1jaHIiLCJjaHIiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImZzIiwiY2hhbm5lbCIsImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSIsImNhbWxfcm91bmRfZmxvYXQiLCJ1bml4X3N0YXQiLCJ1bml4X3N0YXRfNjQiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IiwiYXJpdHkiLCJjYW1sX2djX21pbm9yX3dvcmRzIiwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2siLCJsYW5kX2RpZ2l0X25hdCIsImNhbWxfaW50NjRfbW9kIiwidW5peF9yZWFkbGluayIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwid2luX3N0YXJ0dXAiLCJjYW1sX2JhX3NldF8zIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwiY2FtbF9ibGl0X2JpZ3N0cmluZ190b19zdHJpbmciLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImRpZ2l0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJjYW1sX3N0cmluZ19zZXQ2NCIsImNhbWxfZ3Jfc3RhdGVfY3JlYXRlIiwiY2FudmFzIiwiY29udGV4dCIsImNhbWxfanNfd3JhcF9jYWxsYmFjayIsImNhbWxfZ3JfZHJhd19hcmMiLCJjYW1sX2JhX21hcF9maWxlIiwidmZkIiwic2hhcmVkIiwiY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZSIsImFyZ24iLCJ1bml4X3N5bWxpbmsiLCJzcmNfcm9vdCIsImRzdF9yb290IiwiY2FtbF9iYV9jcmVhdGVfZnJvbSIsImRhdGExIiwiZGF0YTIiLCJqc3R5cCIsImNhbWxfdGFuaF9mbG9hdCIsImNhbWxfZ3JfZHJhd19zdHIiLCJkeCIsImNhbWxfZ3JfZHJhd19zdHJpbmciLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmciLCJjYW1sX21sX3Bvc19pbl82NCIsImNhbWxfZ3JfZHJhd19pbWFnZSIsImltYWdlIiwiY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUiLCJfY2hhbm5lbCIsImNhbWxfc3RyaW5nX3NldCIsImNhbWxfc3lzX3JtZGlyIiwiY2FtbF9tbF9wb3Nfb3V0IiwiY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCIsImNhbWxfYnl0ZXNfbm90ZXF1YWwiLCJjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyIsImNhbWxfanNfb2JqZWN0IiwiY2FtbF9iYV9jcmVhdGUiLCJkaW1zX21sIiwiY2FtbF93ZWFrX2JsaXQiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfYnN3YXAxNiIsImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlIiwiY2FtbF9maW5hbF9yZWdpc3RlciIsImNhbWxfY2hlY2tfYWxpZ25tZW50X2JpZ3N0cmluZyIsImFsaWdubWVudCIsImNhbWxfZ3JfZHJhd19yZWN0IiwiY2FtbF9zdHJpbmdfZ2V0MTYiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJ1bml4X2dldHB3dWlkIiwiY2FtbF9jb21wYXJlX2JpZ3N0cmluZyIsImJ1ZjEiLCJidWYxX29mZiIsImJ1ZjIiLCJidWYyX29mZiIsImNhbWxfaGFzaF9taXhfc3RyaW5nIiwiY2FtbF9oYXNoIiwic2VlZCIsInF1ZXVlIiwicmQiLCJ3ciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibmVnIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsInVuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJjYW1sX2FycmF5X2NvbmNhdCIsImNhbWxfZ3Jfb3Blbl9ncmFwaCIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9lcGhlX3NldF9kYXRhIiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImJpZ3N0cmluZ2FmX2JsaXRfdG9fYmlnc3RyaW5nIiwiY2FtbF9pbnQ2NF9vciIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwiLCJzZXRfZGlnaXRfbmF0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfc2V0MzIiLCJjYW1sX3BhcnNlX2VuZ2luZSIsInRhYmxlcyIsImVudiIsIkVSUkNPREUiLCJsb29wIiwidGVzdHNoaWZ0Iiwic2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwibjEiLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsInplcm8kNCIsIm9uZSQ0IiwiaSIsImVyYXNlX3JlbCIsInJlc3QiLCJyZXN0JDAiLCJyZXN0JDEiLCJyZXN0JDIiLCJyZXN0JDMiLCJyZXN0JDQiLCJyZXN0JDUiLCJyZXN0JDYiLCJyZXN0JDciLCJ0eSIsInJlc3QkOCIsInR5MSIsInJlc3QkOSIsInJlc3QkMTAiLCJyZXN0JDExIiwicmVzdCQxMiIsInJlc3QkMTMiLCJjb25jYXRfZm10dHkiLCJmbXR0eTEiLCJmbXR0eTIiLCJ0eTIiLCJjb25jYXRfZm10IiwiZm10MSIsImZtdDIiLCJwYWQiLCJwYWQkMCIsInByZWMiLCJwYWQkMSIsImljb252IiwicHJlYyQwIiwicGFkJDIiLCJpY29udiQwIiwicHJlYyQxIiwicGFkJDMiLCJpY29udiQxIiwicHJlYyQyIiwicGFkJDQiLCJpY29udiQyIiwicHJlYyQzIiwicGFkJDUiLCJmY29udiIsInBhZCQ2Iiwic3RyIiwiY2hyIiwiZm10dHkiLCJwYWQkNyIsImZtdHR5JDAiLCJwYWQkOCIsInJlc3QkMTQiLCJyZXN0JDE1IiwicmVzdCQxNiIsImZtdGluZ19saXQiLCJyZXN0JDE3IiwiZm10aW5nX2dlbiIsInJlc3QkMTgiLCJyZXN0JDE5IiwiY2hhcl9zZXQiLCJ3aWR0aF9vcHQiLCJyZXN0JDIwIiwiY291bnRlciIsInJlc3QkMjEiLCJyZXN0JDIyIiwiaWduIiwicmVzdCQyMyIsImYiLCJhcml0eSIsInYiLCJyIiwiY3VyIiwic2VlbiIsIm4iLCJmYWlsd2l0aCIsInMiLCJpbnZhbGlkX2FyZyIsIm1pbiIsIngiLCJ5IiwibWF4IiwiYWJzIiwibG5vdCIsIm1heF9pbnQiLCJtaW5faW50IiwiaW5maW5pdHkiLCJuZWdfaW5maW5pdHkiLCJuYW4iLCJtYXhfZmxvYXQiLCJtaW5fZmxvYXQiLCJlcHNpbG9uIiwiczEiLCJzMiIsImwxIiwibDIiLCJjaGFyX29mX2ludCIsInN0cmluZ19vZl9ib29sIiwiYiIsImJvb2xfb2Zfc3RyaW5nIiwiYm9vbF9vZl9zdHJpbmdfb3B0Iiwic3RyaW5nX29mX2ludCIsImludF9vZl9zdHJpbmdfb3B0IiwidmFsaWRfZmxvYXRfbGV4ZW0iLCJsIiwibG9vcCIsImkkMCIsImkkMSIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInNjYW4iLCJhY2N1IiwiYWNjdSQwIiwicmVzIiwiYmVnIiwibGVuJDIiLCJhY2N1JDEiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvX29mX3JhdyIsImluZm8iLCJzdGFydF9lbnYiLCJvYmoiLCJvZl92YWwiLCJzbG90IiwiaWQiLCJleHRlbnNpb25fY29uc3RydWN0b3IiLCJleHRlbnNpb25fbmFtZSIsImV4dGVuc2lvbl9pZCIsIm1heF9lcGhlX2xlbmd0aCIsImNyZWF0ZSIsImxlbmd0aCIsInJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IiwibyIsIm1zZyIsImdldF9rZXkiLCJnZXRfa2V5X2NvcHkiLCJzZXRfa2V5IiwidW5zZXRfa2V5IiwiY2hlY2tfa2V5IiwiYmxpdF9rZXkiLCJvMSIsIm8yIiwicmFpc2VfdW5kZWZpbmVkIiwiZm9yY2VfbGF6eV9ibG9jayIsImJsayIsImNsb3N1cmUiLCJyZXN1bHQiLCJmb3JjZV92YWxfbGF6eV9ibG9jayIsImZvcmNlIiwibHp2IiwidCIsImZvcmNlX3ZhbCIsInRvX2xhenkiLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcCQwIiwibWFwX3ZhbCIsImVtcHR5IiwicmV0dXJuJDAiLCJjb25zIiwibmV4dCIsImFwcGVuZCQwIiwic2VxMSIsInNlcTIiLCJtYXAkMSIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsInVuZm9sZCIsInUiLCJ1JDAiLCJpc19lbXB0eSIsInhzIiwidW5jb25zIiwieHMkMCIsImxlbmd0aF9hdXgiLCJ4cyQxIiwibGVuZ3RoJDAiLCJpdGVyaV9hdXgiLCJpdGVyaSIsImZvbGRfbGVmdGlfYXV4IiwiZm9sZF9sZWZ0aSIsImZvcl9hbGwiLCJwIiwiZXhpc3RzIiwiZmluZCIsImZpbmRfbWFwIiwiaXRlcjIiLCJ5cyIsInlzJDAiLCJ5cyQxIiwiZm9sZF9sZWZ0MiIsImZvcl9hbGwyIiwiZXhpc3RzMiIsImVxdWFsJDAiLCJlcSIsImNvbXBhcmUkMCIsImNtcCIsImluaXRfYXV4IiwiaiIsImluaXQiLCJyZXBlYXQiLCJmb3JldmVyIiwiY3ljbGVfbm9uZW1wdHkiLCJjeWNsZSIsIml0ZXJhdGUxIiwiaXRlcmF0ZSIsIm1hcGlfYXV4IiwibWFwaSIsInRhaWxfc2NhbiIsInMkMCIsInRha2VfYXV4IiwidGFrZSIsImZvcmNlX2Ryb3AiLCJuJDAiLCJuJDEiLCJkcm9wIiwidGFrZV93aGlsZSIsImRyb3Bfd2hpbGUiLCJub2RlIiwiZ3JvdXAiLCJmcm9tX2xhenkiLCJtZW1vaXplIiwiZmFpbHVyZSIsIm9uY2UiLCJhY3Rpb24iLCJtZW1vaXplJDAiLCJvbmNlJDAiLCJ6aXAiLCJtYXAyIiwiaW50ZXJsZWF2ZSIsInNvcnRlZF9tZXJnZTFyIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZTFsIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsImRpYWdvbmFscyIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwiZXJyX25vdF9zdiIsImVycl9ub3RfbGF0aW4xIiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGhfYXV4JDAiLCJwYXJhbSQxIiwibGVuZ3RoJDEiLCJjb25zJDAiLCJudGgiLCJudGhfYXV4IiwibCQwIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwiaW5pdF90YWlscmVjX2F1eCIsImluaXRfYXV4JDAiLCJybWFwX2YiLCJhMiIsImExIiwicm1hcDJfZiIsInBhaXIiLCJhdXgiLCJ4JDAiLCJwYXJ0IiwicnkiLCJyeCIsInQyIiwiaDIiLCJ0MSIsImgxIiwicmV2X21lcmdlIiwiYWNjdSQyIiwicmV2X21lcmdlX3JldiIsInJldl9zb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInNvcnQiLCJ0bCQwIiwiYWNjdSQzIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwic3Jjb2ZmIiwiZHN0b2ZmIiwic3Jjb2ZmJDAiLCJjcHlsZW4iLCJvZnMxIiwib2ZzMiIsImVuc3VyZV9nZSIsInN1bV9sZW5ndGhzIiwic2VwbGVuIiwidW5zYWZlX2JsaXRzIiwiZHN0Iiwic2VwIiwiaXNfc3BhY2UiLCJhcHBseTEiLCJwcmVmaXgiLCJsZW5fcyIsImxlbl9wcmUiLCJzdWZmaXgiLCJsZW5fc3VmIiwiZGlmZiIsImluZGV4X3JlYyIsImxpbSIsImluZGV4X3JlY19vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4X3JlY19vcHQiLCJyZXNpemUiLCJuZXdfbGVuIiwibmV3X2J1ZiIsImdldCQxIiwiZ2V0JDIiLCJzZXQkMCIsInNldCQxIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8yIiwiYjAiLCJiMSIsInV0Zl84X3VjaGFyXzMiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImdldCIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0IiwibGFzdCQwIiwibGFzdCQxIiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJ1JDEiLCJsbyIsImVuc3VyZV9nZSQwIiwic3VtX2xlbmd0aHMkMCIsInVuc2FmZV9ibGl0cyQwIiwiaXNfc3BhY2UkMCIsImVzY2FwZV9pZl9uZWVkZWQiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInRvbGlzdCIsInJlcyQwIiwicmVzJDEiLCJsaXN0X2xlbmd0aCIsImZpbGwiLCJpbnB1dF9hcnJheSIsImVsdCIsIm91dHB1dF9hcnJheSIsImVsdCQwIiwiYWNjJDIiLCJhMCIsImJpIiwiYWkiLCJuYSIsIm5iIiwibWF4c29uIiwiaTMxIiwidHJpY2tsZWRvd24iLCJ0cmlja2xlIiwiYnViYmxlZG93biIsImJ1YmJsZSIsInRyaWNrbGV1cCIsImZhdGhlciIsImUkMCIsIm1lcmdlIiwic3JjMW9mcyIsInNyYzFsZW4iLCJzcmMyIiwic3JjMm9mcyIsInNyYzJsZW4iLCJkc3RvZnMiLCJzcmMxciIsInNyYzJyIiwiaTEiLCJpMiIsImkxJDAiLCJzMSQwIiwiaTIkMCIsInMyJDAiLCJkJDAiLCJpMiQxIiwiZCQxIiwiczIkMSIsImkxJDEiLCJkJDIiLCJzMSQxIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsIm9mX3Jldl9saXN0IiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsImlzX2Zpbml0ZSIsImlzX2luZmluaXRlIiwiaXNfbmFuIiwicGkiLCJpc19pbnRlZ2VyIiwic3VjYyQwIiwicHJlZCQwIiwiZXF1YWwkMTEiLCJtaW4kMiIsIm1heCQyIiwibWluX21heCIsIm1pbl9udW0iLCJtYXhfbnVtIiwibWluX21heF9udW0iLCJoYXNoJDAiLCJ1bnNhZmVfZmlsbCIsImNoZWNrIiwibWFrZSQyIiwiaW5pdCQ0IiwiYXBwZW5kJDIiLCJlbnN1cmVfZ2UkMSIsInN1bV9sZW5ndGhzJDEiLCJjb25jYXQkMyIsImhsZW4iLCJzdWIkMiIsImNvcHkkMiIsImZpbGwkMSIsImJsaXQkMiIsInNyYyIsInNvZnMiLCJkb2ZzIiwidG9fbGlzdCQyIiwib2ZfbGlzdCQwIiwiaCIsIml0ZXIkNiIsIml0ZXIyJDIiLCJtYXAkOCIsIm1hcDIkMiIsIml0ZXJpJDQiLCJtYXBpJDQiLCJmb2xkX2xlZnQkNCIsImZvbGRfcmlnaHQkMyIsImV4aXN0cyQ0IiwiZm9yX2FsbCQ0IiwibWVtJDEiLCJtZW1faWVlZSIsInNvcnQkMCIsInN0YWJsZV9zb3J0IiwidG9fc2VxJDUiLCJ0b19zZXFpJDIiLCJvZl9yZXZfbGlzdCQwIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwibGV4X3JlZmlsbCIsInJlYWRfZnVuIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2Z1bmN0aW9uIiwib3B0Iiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImNtZCIsImFyZyIsImNtZCQwIiwiYXJnJDAiLCJhcmckMSIsImFyZyQyIiwiY21kJDEiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImV4biIsImN1cnJfY2hhciIsInRvayIsInBlZWtfdmFsIiwic3ltYm9sX3N0YXJ0X3BvcyIsInN0IiwiZW4iLCJzeW1ib2xfZW5kX3BvcyIsInJoc19zdGFydF9wb3MiLCJyaHNfZW5kX3BvcyIsInN5bWJvbF9zdGFydCIsInN5bWJvbF9lbmQiLCJyaHNfc3RhcnQiLCJyaHNfZW5kIiwiaXNfY3VycmVudF9sb29rYWhlYWQiLCJwYXJzZV9lcnJvciIsImhlaWdodCIsImhsIiwiaCQwIiwiaHIiLCJiYWwiLCJsciIsImx2IiwibGwiLCJscnIiLCJscnYiLCJscmwiLCJyciIsInJ2IiwicmwiLCJybHIiLCJybHYiLCJybGwiLCJhZGQiLCJzaW5nbGV0b24iLCJhZGRfbWluX2VsZW1lbnQiLCJhZGRfbWF4X2VsZW1lbnQiLCJyaCIsImxoIiwibWluX2VsdCIsIm1pbl9lbHRfb3B0IiwibWF4X2VsdCIsIm1heF9lbHRfb3B0IiwicmVtb3ZlX21pbl9lbHQiLCJyJDAiLCJzcGxpdCIsInByZXMiLCJwcmVzJDAiLCJtZW0iLCJyZW1vdmUiLCJ1bmlvbiIsInIyIiwicjIkMCIsInIxJDAiLCJpbnRlciIsInNwbGl0X2JpcyIsImRpc2pvaW50IiwiY29uc19lbnVtIiwicyQxIiwiZSQxIiwiY29tcGFyZV9hdXgiLCJlMSQwIiwiZTIkMCIsImUyJDEiLCJlMSQxIiwiZTIkMiIsImUxJDIiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3RfYXV4IiwiZmluZF9maXJzdCIsImZpbmRfZmlyc3Rfb3B0X2F1eCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0X2F1eCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHRfYXV4IiwiZmluZF9sYXN0X29wdCIsImZpbmRfb3B0IiwidHJ5X2pvaW4iLCJ0cnlfY29uY2F0IiwidiQxIiwib2Zfc29ydGVkX2xpc3QiLCJzdWIiLCJsJDMiLCJ4MCIsImwkNCIsIngwJDAiLCJsJDUiLCJ4MCQxIiwibmwiLCJtaWQiLCJsJDIiLCJvZl9saXN0IiwieDQiLCJhZGRfc2VxIiwib2Zfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsIm1pbl9iaW5kaW5nIiwibWluX2JpbmRpbmdfb3B0IiwibWF4X2JpbmRpbmciLCJtYXhfYmluZGluZ19vcHQiLCJyZW1vdmVfbWluX2JpbmRpbmciLCJ1cGRhdGUiLCJkYXRhJDAiLCJtJDAiLCJhZGRfbWluX2JpbmRpbmciLCJrIiwiYWRkX21heF9iaW5kaW5nIiwiY29uY2F0X29yX2pvaW4iLCJkMSIsImQyIiwiZDIkMCIsImQxJDAiLCJkMiQxIiwiZDEkMSIsInB2ZCIsImZ2ZCIsIm0kMSIsIm0xIiwibTIiLCJlcXVhbF9hdXgiLCJiaW5kaW5nc19hdXgiLCJiaW5kaW5ncyIsImNyZWF0ZSQwIiwiY2xlYXIiLCJjb3B5JDMiLCJwdXNoIiwicG9wIiwicG9wX29wdCIsInRvcCIsInRvcF9vcHQiLCJpc19lbXB0eSQwIiwibGVuZ3RoJDIiLCJpdGVyJDciLCJmb2xkJDIiLCJ0b19zZXEkNiIsIm9mX3NlcSQ0IiwiY3JlYXRlJDEiLCJjbGVhciQwIiwiY2VsbCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlJDAiLCJ0YWtlX29wdCIsImNvcHkkNCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsImNlbGwkMCIsImNvcHkkNSIsImlzX2VtcHR5JDEiLCJsZW5ndGgkMyIsIml0ZXIkOCIsIml0ZXIkOSIsImZvbGQkMyIsImZvbGQkNCIsInRyYW5zZmVyIiwicTEiLCJxMiIsInRvX3NlcSQ3IiwiYWRkX3NlcSQwIiwib2Zfc2VxJDUiLCJjb3VudCIsImZpbGxfYnVmZiIsImdldF9kYXRhIiwiZDExIiwiYSQwIiwiYSQxIiwicGVla19kYXRhIiwicGVlayQwIiwianVua19kYXRhIiwianVuayIsIm5nZXRfZGF0YSIsImFsIiwibnBlZWtfZGF0YSIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkMTAiLCJzdHJtIiwiZG9fcmVjIiwiZnJvbSIsIm9mX2xpc3QkMSIsIm9mX3N0cmluZyIsIm9mX2J5dGVzJDAiLCJvZl9jaGFubmVsIiwiaWFwcCIsImljb25zIiwiaXNpbmciLCJsYXBwIiwibGNvbnMiLCJsc2luZyIsInNlbXB0eSIsInNsYXp5IiwiZHVtcF9kYXRhIiwiZHVtcCIsImNyZWF0ZSQyIiwiY29udGVudHMiLCJ0b19ieXRlcyQwIiwic3ViJDMiLCJibGl0JDMiLCJudGgkMCIsImxlbmd0aCQ0IiwiY2xlYXIkMSIsInJlc2V0IiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwicG9zIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwicmVhbGx5X2lucHV0X3VwX3RvIiwiYWxyZWFkeV9yZWFkIiwidG9fcmVhZCIsImFscmVhZHlfcmVhZCQwIiwidG9fcmVhZCQwIiwiYWxyZWFkeV9yZWFkJDEiLCJ0b19yZWFkJDEiLCJ1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8iLCJhZGRfY2hhbm5lbCIsIm91dHB1dF9idWZmZXIiLCJjbG9zaW5nIiwiYWR2YW5jZV90b19jbG9zaW5nIiwib3BlbmluZyIsImFkdmFuY2UiLCJrJDAiLCJrJDEiLCJrJDIiLCJhZHZhbmNlX3RvX25vbl9hbHBoYSIsImZpbmRfaWRlbnQiLCJzdG9wJDAiLCJzdG9wIiwiYWRkX3N1YnN0aXR1dGUiLCJzdWJzdCIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsImN1cnJlbnQiLCJuZXh0X2kiLCJpZGVudCIsInRydW5jYXRlIiwidG9fc2VxJDgiLCJ0b19zZXFpJDMiLCJhZGRfc2VxJDEiLCJvZl9zZXEkNiIsImFkZF9pbnQ4IiwiYWRkX2ludDE2X25lIiwiYWRkX2ludDMyX25lIiwiYWRkX2ludDY0X25lIiwiYWRkX2ludDE2X2xlIiwiYWRkX2ludDE2X2JlIiwiYWRkX2ludDMyX2xlIiwiYWRkX2ludDMyX2JlIiwiYWRkX2ludDY0X2xlIiwiYWRkX2ludDY0X2JlIiwiY3JlYXRlX2NoYXJfc2V0IiwiYWRkX2luX2NoYXJfc2V0Iiwic3RyX2luZCIsIm1hc2siLCJmcmVlemVfY2hhcl9zZXQiLCJyZXZfY2hhcl9zZXQiLCJjaGFyX3NldCQwIiwiaXNfaW5fY2hhcl9zZXQiLCJwYWRfb2ZfcGFkX29wdCIsInBhZF9vcHQiLCJ3aWR0aCIsInByZWNfb2ZfcHJlY19vcHQiLCJwcmVjX29wdCIsIm5kZWMiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwYWRfb3B0JDUiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiY2hhcl9vZl9jb3VudGVyIiwiYnByaW50X2NoYXJfc2V0IiwicHJpbnRfb3V0JDAiLCJwcmludF9maXJzdCIsInByaW50X3NlY29uZCIsInByaW50X2luIiwiaiQwIiwiaiQxIiwicHJpbnRfb3V0IiwicHJpbnRfc3RhcnQiLCJpc19hbG9uZSIsImFmdGVyIiwiYmVmb3JlIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9pbnRfZm10IiwiYnByaW50X2FsdGludF9mbXQiLCJicHJpbnRfZmNvbnZfZmxhZyIsImJwcmludF9mbG9hdF9mbXQiLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJzdWJfZm10dHkiLCJzdWJfZm10dHkkMCIsImludF9vZl9jdXN0b21fYXJpdHkiLCJicHJpbnRfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiZm10JDEiLCJzdHJpbmdfb2ZfZm10Iiwic3ltbSIsInRyYW5zIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZm10dHlfcmVsX2RldCIsImY0IiwiZjIiLCJyZXN0MiQ5IiwicmVzdDIkMTAiLCJyZXN0MiQxMSIsInJlc3QyJDEyIiwicmVzdDIkMTMiLCJkZSIsImVkIiwiYWYiLCJmYSIsImRlJDAiLCJlZCQwIiwiYWYkMCIsImZhJDAiLCJkZSQxIiwiZWQkMSIsImFmJDEiLCJmYSQxIiwiZGUkMiIsImVkJDIiLCJhZiQyIiwiZmEkMiIsImRlJDMiLCJlZCQzIiwiYWYkMyIsImZhJDMiLCJkZSQ0IiwiZWQkNCIsImFmJDQiLCJmYSQ0IiwiZGUkNSIsImVkJDUiLCJhZiQ1IiwiZmEkNSIsImRlJDYiLCJlZCQ2IiwiYWYkNiIsImZhJDYiLCJkZSQ3IiwiZWQkNyIsImFmJDciLCJmYSQ3IiwiZGUkOCIsImVkJDgiLCJhZiQ4IiwiZmEkOCIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwiZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IiwiZm10dHlfb2ZfcGFkZGluZ19mbXR0eSIsImZtdHR5X29mX2N1c3RvbSIsImFyaXR5JDAiLCJmbXR0eV9vZl9mbXQkMCIsImZtdHR5X29mX2ZtdCIsInR5X3Jlc3QiLCJwcmVjX3R5IiwidHlfcmVzdCQwIiwicHJlY190eSQwIiwidHlfcmVzdCQxIiwicHJlY190eSQxIiwidHlfcmVzdCQyIiwicHJlY190eSQyIiwidHlfcmVzdCQzIiwicHJlY190eSQzIiwiZm10dHkkMSIsImZtdHR5JDIiLCJmbXR0eSQzIiwidHkkMCIsImZtdHR5JDQiLCJmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpIiwidHlwZV9mb3JtYXRfZ2VuIiwiZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0Iiwic3ViX2ZtdHR5X3Jlc3QkMCIsImZtdHR5X3Jlc3QkMCIsInN1Yl9mbXR0eV9yZXN0JDEiLCJzdWJfZm10dHlfcmVzdCQyIiwiZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMyIsImZtdCQyIiwic3ViX2ZtdHR5X3Jlc3QkNCIsImZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDUiLCJmbXQkMyIsInN1Yl9mbXR0eV9yZXN0JDYiLCJmbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ3IiwiZm10JDQiLCJzdWJfZm10dHlfcmVzdCQ4IiwiZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkOSIsImZtdCQ1Iiwic3ViX2ZtdHR5X3Jlc3QkMTAiLCJmbXR0eV9yZXN0JDUiLCJzdWJfZm10dHlfcmVzdCQxMSIsImZtdCQ2Iiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJmbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQxMyIsImZtdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkMTQiLCJmbXR0eV9yZXN0JDciLCJzdWIyX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTUiLCJzdWIyX2ZtdHR5JDAiLCJmbXQkOCIsInN1Yl9mbXR0eV9yZXN0JDE2IiwiZm10dHlfcmVzdCQ4Iiwic3ViMl9mbXR0eSQxIiwic3ViMV9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE3Iiwic3ViMl9mbXR0eSQyIiwic3ViMV9mbXR0eSQwIiwiZm10JDkiLCJzdWJfZm10dHlfcmVzdCQxOCIsImZtdHR5X3Jlc3QkOSIsInN1Yl9mbXR0eV9yZXN0JDE5IiwiZm10JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5X3Jlc3QkMjEiLCJmbXQkMTEiLCJzdWJfZm10dHlfcmVzdCQyMiIsImZtdHR5X3Jlc3QkMTEiLCJzdWJfZm10dHlfcmVzdCQyMyIsImZtdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI0IiwiZm10dHlfcmVzdCQxMiIsInN1Yl9mbXR0eV9yZXN0JDI1IiwiZm10JDEzIiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJmbXRfcmVzdCIsImZtdF9yZXN0JDAiLCJmbXRfcmVzdCQxIiwiZm10X3Jlc3QkMiIsImZtdF9yZXN0JDMiLCJmbXRfcmVzdCQ0IiwiZm10dHkkNSIsImZtdF9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10X3Jlc3QkNiIsInByZWMkNSIsInByZWMkNiIsImZtdHR5JDciLCJmbXRfcmVzdCQ3IiwicHJlYyQ3IiwicHJlYyQ4IiwiZm10dHkkOCIsImZtdF9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10X3Jlc3QkOSIsImZtdHR5JDEwIiwiZm10X3Jlc3QkMTAiLCJmbXR0eSQxMSIsImZtdF9yZXN0JDExIiwiZm10dHkkMTIiLCJmbXRfcmVzdCQxMiIsImZtdHR5JDEzIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdF9yZXN0JDE0IiwiZm10dHkkMTUiLCJmbXQkMTUiLCJmbXRfcmVzdCQxNSIsImZtdHR5JDE2IiwiZm10JDE2IiwiZm10X3Jlc3QkMTYiLCJmbXR0eSQxNyIsImZtdCQxNyIsImZtdF9yZXN0JDE3IiwidHlwZV9mb3JtYXR0aW5nX2dlbiIsImZtdHR5X3Jlc3QkMTMiLCJmbXRfcmVzdCQxOCIsImZtdHR5JDE4IiwiZm10JDE4IiwiZm10dHlfcmVzdCQxNCIsImZtdF9yZXN0JDE5IiwiZm10dHkkMTkiLCJmbXQkMTkiLCJmbXR0eV9yZXN0JDE1IiwiZm10X3Jlc3QkMjAiLCJmbXR0eSQyMCIsImZtdCQyMCIsInR5cGVfaWdub3JlZF9wYXJhbSIsImZtdDAiLCJmbXR0eTAiLCJmbXR0eTMiLCJmbXQzIiwiZm10MSQwIiwiZm10dHkyJDAiLCJmbXQyJDAiLCJmbXR0eTMkMCIsImZtdDMkMCIsInR5cGVfaWdub3JlZF9wYXJhbV9vbmUiLCJ0eXBlX2Zvcm1hdCIsInJlY2FzdCIsImZpeF9wYWRkaW5nIiwid2lkdGgkMCIsImZpeF9pbnRfcHJlY2lzaW9uIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2ljb252IiwiZm9ybWF0X29mX2ljb252TCIsImZvcm1hdF9vZl9pY29udmwiLCJmb3JtYXRfb2ZfaWNvbnZuIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJhZGRfZG90X2lmX25lZWRlZCIsImNhbWxfc3BlY2lhbF92YWwiLCJmb3JtYXRfY2FtbF9jaGFyIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9wcmludGYkMCIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiIsIm1ha2VfcGFkZGluZyIsIm1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiIsImFjYyQzIiwiYWNjJDQiLCJrJDMiLCJrYWNjIiwiayQ0IiwibWFrZV9pZ25vcmVkX3BhcmFtJDAiLCJtYWtlX2N1c3RvbSQwIiwibWFrZV9pbnZhbGlkX2FyZyIsIm1ha2VfZnJvbV9mbXR0eSQwIiwibWFrZV9mcm9tX2ZtdHR5IiwibWFrZV9jdXN0b20iLCJtYWtlX2lnbm9yZWRfcGFyYW0iLCJwJDAiLCJwJDEiLCJjb25zdCQwIiwibWFrZV9pcHJpbnRmJDAiLCJtYWtlX2lwcmludGYiLCJmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiIsImtvYyIsInJlc3QkMjQiLCJyZXN0JDI1IiwiZm5fb2ZfY3VzdG9tX2FyaXR5JDAiLCJmbl9vZl9jdXN0b21fYXJpdHkiLCJvdXRwdXRfYWNjIiwicCQyIiwicCQzIiwicCQ0IiwiYnVmcHV0X2FjYyIsInN0cnB1dF9hY2MiLCJmYWlsd2l0aF9tZXNzYWdlIiwib3Blbl9ib3hfb2Zfc3RyaW5nIiwiaW52YWxpZF9ib3giLCJwYXJzZV9zcGFjZXMiLCJwYXJzZV9sd29yZCIsInBhcnNlX2ludCIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0Iiwic2l6ZSIsInBhcnNlX3Bvc2l0aXZlIiwic3RyX2luZCQwIiwic3RyX2luZCQxIiwicGFyc2VfaW50ZWdlciIsIm5leHRfaW5kIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJwY3RfaW5kIiwib3B0aW9uIiwic3ViZm10IiwiY29tcHV0ZV9mbG9hdF9jb252IiwicGx1cyIsInNwYWNlIiwia2luZCIsImNvbXB1dGVfaW50X2NvbnYiLCJwbHVzJDAiLCJzcGFjZSQwIiwiY291bnRlcl9vZl9jaGFyIiwiaXNfaW50X2Jhc2UiLCJzZWFyY2hfc3ViZm9ybWF0X2VuZCIsInN1Yl9lbmQiLCJzdHJfaW5kJDIiLCJzdWJfZW5kJDAiLCJzdHJfaW5kJDMiLCJzdWJfZW5kJDEiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJzdHJfaW5kJDciLCJwYXJzZV9jaGFyX3NldCIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicGFyc2VfY2hhcl9zZXRfc3RhcnQiLCJyZXZlcnNlIiwicmV2ZXJzZSQwIiwicGFyc2VfYWZ0ZXJfYXQiLCJwYXJzZV90YWciLCJwYXJzZSIsInBhcnNlX2dvb2RfYnJlYWsiLCJwYXJzZV9tYWdpY19zaXplIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2ZtdCIsInN1Yl9mb3JtYXQkMCIsImZvcm1hdHRpbmckMCIsImZvcm1hdHRpbmciLCJzdHJfaW5kXzEiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwic3RyX2luZF80Iiwic3RyX2luZF81IiwicGFyc2VfcGFkZGluZyIsIm1pbnVzIiwibmV3X2luZCIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9wcmVjaXNpb24iLCJwYXJzZV9jb252ZXJzaW9uIiwicGFyc2VfbGl0ZXJhbCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzJDAiLCJwYXJzZV9jb252IiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJnZXRfcHJlY19vcHQiLCJmbXRfcmVzdWx0IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiaWdub3JlZCQ5IiwiY2hhcl9mb3JtYXQiLCJzY2FuX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJpZ25vcmVkJDUiLCJpZ25vcmVkJDgiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQxIiwiaWduJDAiLCJwYXJzZV9mb3JtYXQiLCJwYXJzZV9pZ24iLCJwYXJzZV9mbGFncyIsInNldF9mbGFnIiwicmVhZF9mbGFncyIsImJlZ19pbmQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwicHJpbnRfc3BlYyIsImRvYyIsInNwZWMiLCJrZXkiLCJoZWxwX2FjdGlvbiIsImFkZF9oZWxwIiwic3BlY2xpc3QiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsInVzYWdlX3N0cmluZyIsInVzYWdlIiwiYm9vbF9vZl9zdHJpbmdfb3B0JDAiLCJpbnRfb2Zfc3RyaW5nX29wdCQwIiwiZmxvYXRfb2Zfc3RyaW5nX29wdCIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXyIsImFsbG93X2V4cGFuZCIsImFyZ3YiLCJhbm9uZnVuIiwiaW5pdHBvcyIsImNvbnZlcnRfZXJyb3IiLCJwcm9nbmFtZSIsImZvbGxvdyQwIiwia2V5d29yZCIsIm5vX2FyZyQwIiwiZm9sbG93Iiwibm9fYXJnIiwiZ2V0X2FyZyQwIiwiZ2V0X2FyZyIsImNvbnN1bWVfYXJnJDAiLCJjb25zdW1lX2FyZyIsInRyZWF0X2FjdGlvbiQwIiwidHJlYXRfYWN0aW9uIiwiZiQwIiwiZiQxIiwiciQxIiwiZiQyIiwiciQyIiwiZiQzIiwiYXJnJDMiLCJ4JDEiLCJyJDMiLCJhcmckNCIsIngkMiIsInNwZWNzIiwiZiQ0IiwiYXJnJDUiLCJmJDUiLCJmJDYiLCJmJDciLCJhcmckNiIsIm5ld2FyZyIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIiwicGFyc2VfYXJndl9keW5hbWljIiwiY3VycmVudCQwIiwicGFyc2VfYXJndiIsIm1zZyQwIiwibXNnJDEiLCJwYXJzZV9keW5hbWljIiwicGFyc2VfZXhwYW5kIiwic2Vjb25kX3dvcmQiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhZGRfcGFkZGluZyIsImtzZCIsImN1dGNvbCQwIiwic3BhY2VzJDAiLCJjdXRjb2wiLCJrd2RfbGVuIiwic3BhY2VzIiwiYWxpZ24iLCJsaW1pdCIsImNvbXBsZXRlZCIsInRyaW1fY3IiLCJyZWFkX2F1eCIsInRyaW0iLCJmaWxlIiwid29yZHMiLCJzdGFzaCIsIndvcmQiLCJ3b3JkJDAiLCJyZWFkX2FyZyIsInJlYWRfYXJnMCIsIndyaXRlX2F1eCIsImFyZ3MiLCJ3cml0ZV9hcmciLCJ3cml0ZV9hcmcwIiwicHJpbnRlcnMiLCJmaWVsZCIsIm90aGVyX2ZpZWxkcyIsImZpZWxkcyIsInVzZV9wcmludGVycyIsImNvbnYiLCJ0b19zdHJpbmdfZGVmYXVsdCIsImNoYXIkMCIsImxpbmUiLCJjaGFyJDEiLCJsaW5lJDAiLCJmaWxlJDAiLCJjaGFyJDIiLCJsaW5lJDEiLCJmaWxlJDEiLCJjb25zdHJ1Y3RvciIsInRvX3N0cmluZyQ2IiwicHJpbnQiLCJmY3QiLCJjYXRjaCQwIiwicmF3X2JhY2t0cmFjZV9lbnRyaWVzIiwiYnQiLCJjb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJmb3JtYXRfYmFja3RyYWNlX3Nsb3QiLCJpc19yYWlzZSIsInByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJvdXRjaGFuIiwiYmFja3RyYWNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsInJhd19iYWNrdHJhY2UiLCJwcmludF9iYWNrdHJhY2UiLCJiYWNrdHJhY2VfdG9fc3RyaW5nIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwidXNhYmxlX3Nsb3QiLCJleGlzdHNfdXNhYmxlIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsInRyeV9nZXRfcmF3X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMCIsInJhd19iYWNrdHJhY2UkMCIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24kMCIsImNvbnN0JDEiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuIiwid29ya19idCIsInByaW50X3N0YXQiLCJhbGxvY2F0ZWRfYnl0ZXMiLCJtYSIsInBybyIsIm1pIiwiY3JlYXRlX2FsYXJtIiwiZGVsZXRlX2FsYXJtIiwibnVsbF90cmFja2VyIiwic2FtcGxpbmdfcmF0ZSIsInRyYWNrZXIiLCJjYWxsc3RhY2tfc2l6ZSIsInN0cmluZyIsImJ5dGVzIiwic3Vic3RyaW5nIiwic3ViYnl0ZXMiLCJmaWxlbmFtZSIsIm91dHB1dCQwIiwiZGlnZXN0IiwiaW5wdXQkMCIsImNoYXJfaGV4IiwidG9faGV4IiwiZnJvbV9oZXgiLCJkaWdpdCIsImJ5dGUkMCIsIm5ld19zdGF0ZSIsImFzc2lnbiIsInN0MSIsInN0MiIsImZ1bGxfaW5pdCIsInNlZWQiLCJjb21iaW5lIiwiZXh0cmFjdCIsInNlZWQkMCIsIm1ha2UkMyIsIm1ha2Vfc2VsZl9pbml0IiwiY29weSQ2IiwiYml0cyIsImN1cnZhbCIsIm5ld3ZhbCIsIm5ld3ZhbDMwIiwiaW50YXV4IiwiaW50JDAiLCJib3VuZCIsImludDYzYXV4IiwiYnBvcyIsImJwb3MkMCIsImZ1bGxfaW50IiwiaW50MzJhdXgiLCJpbnQzMiIsImludDY0YXV4IiwiaW50NjQiLCJuYXRpdmVpbnQiLCJyYXdmbG9hdCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImNvcHkkNyIsImxlbmd0aCQ1IiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsImluc2VydF9idWNrZXQiLCJjZWxsJDEiLCJuaWR4IiwibWF0Y2giLCJyZXNpemUkMCIsIm9zaXplIiwiaXRlciQxMSIsImRvX2J1Y2tldCIsIm9sZF90cmF2IiwiZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImZvbGQkNSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidG9fc2VxJDkiLCJ0YmxfZGF0YSIsImJ1Y2siLCJidWNrJDAiLCJidWNrJDEiLCJ0b19zZXFfa2V5cyIsInRvX3NlcV92YWx1ZXMiLCJrZXlfaW5kZXgiLCJidWNrZXQiLCJyZW1vdmVfYnVja2V0IiwiZmluZF9yZWMiLCJrMSIsIm5leHQxIiwiazIiLCJuZXh0MiIsImszIiwiZDMiLCJuZXh0MyIsImZpbmRfcmVjX29wdCIsImZpbmRfYWxsIiwiZmluZF9pbl9idWNrZXQiLCJyZXBsYWNlX2J1Y2tldCIsInJlcGxhY2UiLCJtZW1faW5fYnVja2V0IiwicmVwbGFjZV9zZXEiLCJjb3B5Iiwic3oiLCJoYXNoJDEiLCJoYXNoX3BhcmFtIiwic2VlZGVkX2hhc2giLCJhZGQkMCIsImZpbmQkMSIsImZpbmRfb3B0JDEiLCJmaW5kX2FsbCQwIiwibWVtJDIiLCJhZGRfc2VxJDIiLCJvZl9zZXEkNyIsInJlYnVpbGQiLCJ3ZWFrX2NyZWF0ZSIsImxlbmd0aCQ2IiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQkMCIsInNldCQyIiwiZ2V0JDMiLCJnZXRfY29weSIsImNoZWNrJDAiLCJibGl0JDQiLCJmaWxsJDIiLCJhciIsImVtcHR5YnVja2V0IiwiZ2V0X2luZGV4Iiwic3okMCIsInN6JDEiLCJmb2xkX2J1Y2tldCIsIml0ZXJfYnVja2V0IiwiaXRlcl93ZWFrIiwiY291bnRfYnVja2V0IiwibmV4dF9zeiIsInByZXZfc3oiLCJ0ZXN0X3Nocmlua19idWNrZXQiLCJoYnVja2V0IiwicHJldl9sZW4iLCJsaXZlIiwiaiQyIiwibmV3YnVja2V0IiwiYWRkX2F1eCIsInNldHRlciIsImluZGV4IiwiaGFzaGVzIiwibmV3c3oiLCJuZXdoYXNoZXMiLCJvbGRsZW4iLCJuZXd0IiwiYWRkX3dlYWsiLCJvYiIsIm9oIiwib2kiLCJuaSIsImZpbmRfb3IiLCJpZm5vdGZvdW5kIiwiZmluZF9zaGFkb3ciLCJpZmZvdW5kIiwibGVucyIsInRvdGxlbiIsImlkJDAiLCJ1bmtub3duIiwiaXNfa25vd24iLCJwcF9lbnF1ZXVlIiwidG9rZW4iLCJwcF9jbGVhcl9xdWV1ZSIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwicHBfb3V0cHV0X3NwYWNlcyIsInBwX291dHB1dF9pbmRlbnQiLCJmb3JtYXRfcHBfdGV4dCIsInRleHQiLCJmb3JtYXRfc3RyaW5nIiwiYnJlYWtfbmV3X2xpbmUiLCJyZWFsX2luZGVudCIsImJyZWFrX2xpbmUiLCJicmVha19zYW1lX2xpbmUiLCJwcF9mb3JjZV9icmVha19saW5lIiwicHBfc2tpcF90b2tlbiIsImZvcm1hdF9wcF90b2tlbiIsInRhYnMiLCJhZGRfdGFiIiwibHMiLCJ0YWdfbmFtZSIsIm1hcmtlciIsImJyZWFrcyIsImZpdHMiLCJvZmYiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJib3hfdHlwZSQwIiwidGJveCIsInRhZ19uYW1lJDAiLCJtYXJrZXIkMCIsImFkdmFuY2VfbGVmdCIsInBlbmRpbmdfY291bnQiLCJzaXplJDAiLCJlbnF1ZXVlX2FkdmFuY2UiLCJlbnF1ZXVlX3N0cmluZ19hcyIsImVucXVldWVfc3RyaW5nIiwiaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIiwic3RhY2siLCJxdWV1ZV9lbGVtIiwic2V0X3NpemUiLCJsZWZ0X3RvdGFsIiwic2Nhbl9wdXNoIiwiZWxlbSIsInBwX29wZW5fYm94X2dlbiIsImJyX3R5IiwicHBfb3Blbl9zeXNfYm94IiwicHBfY2xvc2VfYm94IiwicHBfb3Blbl9zdGFnIiwicHBfY2xvc2Vfc3RhZyIsInBwX29wZW5fdGFnIiwicHBfY2xvc2VfdGFnIiwicHBfc2V0X3ByaW50X3RhZ3MiLCJwcF9zZXRfbWFya190YWdzIiwicHBfZ2V0X3ByaW50X3RhZ3MiLCJwcF9nZXRfbWFya190YWdzIiwicHBfc2V0X3RhZ3MiLCJwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwY3QiLCJwb3QiLCJtY3QiLCJtb3QiLCJwcF9yaW5pdCIsImNsZWFyX3RhZ19zdGFjayIsInBwX2ZsdXNoX3F1ZXVlIiwicHBfcHJpbnRfYXNfc2l6ZSIsInBwX3ByaW50X2FzIiwiaXNpemUiLCJwcF9wcmludF9zdHJpbmciLCJwcF9wcmludF9ieXRlcyIsInBwX3ByaW50X2ludCIsInBwX3ByaW50X2Zsb2F0IiwicHBfcHJpbnRfYm9vbCIsInBwX3ByaW50X2NoYXIiLCJwcF9vcGVuX2hib3giLCJwcF9vcGVuX3Zib3giLCJwcF9vcGVuX2h2Ym94IiwicHBfb3Blbl9ob3Zib3giLCJwcF9vcGVuX2JveCIsInBwX3ByaW50X25ld2xpbmUiLCJwcF9wcmludF9mbHVzaCIsInBwX2ZvcmNlX25ld2xpbmUiLCJwcF9wcmludF9pZl9uZXdsaW5lIiwicHBfcHJpbnRfY3VzdG9tX2JyZWFrIiwicHBfcHJpbnRfYnJlYWsiLCJwcF9wcmludF9zcGFjZSIsInBwX3ByaW50X2N1dCIsInBwX29wZW5fdGJveCIsInBwX2Nsb3NlX3Rib3giLCJwcF9wcmludF90YnJlYWsiLCJwcF9wcmludF90YWIiLCJwcF9zZXRfdGFiIiwicHBfc2V0X21heF9ib3hlcyIsInBwX2dldF9tYXhfYm94ZXMiLCJwcF9vdmVyX21heF9ib3hlcyIsInBwX3NldF9lbGxpcHNpc190ZXh0IiwicHBfZ2V0X2VsbGlwc2lzX3RleHQiLCJwcF9saW1pdCIsInBwX3NldF9taW5fc3BhY2VfbGVmdCIsInBwX3NldF9tYXhfaW5kZW50IiwicHBfZ2V0X21heF9pbmRlbnQiLCJwcF9zZXRfbWFyZ2luIiwibmV3X21heF9pbmRlbnQiLCJ2YWxpZGF0ZV9nZW9tZXRyeSIsIm1hcmdpbiIsIm1heF9pbmRlbnQiLCJjaGVja19nZW9tZXRyeSIsImdlb21ldHJ5IiwicHBfZ2V0X21hcmdpbiIsInBwX3NldF9mdWxsX2dlb21ldHJ5IiwicHBfc2V0X2dlb21ldHJ5IiwicHBfc2FmZV9zZXRfZ2VvbWV0cnkiLCJwcF9nZXRfZ2VvbWV0cnkiLCJwcF91cGRhdGVfZ2VvbWV0cnkiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJkaXNwbGF5X25ld2xpbmUiLCJibGFua19saW5lIiwiZGlzcGxheV9pbmRlbnQiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIiwiZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnIiwiZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWciLCJkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyIsInBwX21ha2VfZm9ybWF0dGVyIiwicHBfcXVldWUiLCJzeXNfdG9rIiwic2Nhbl9zdGFjayIsInBwX21hcmdpbiIsInBwX21pbl9zcGFjZV9sZWZ0IiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJzeW1ib2xpY19mbHVzaCIsInN5bWJvbGljX25ld2xpbmUiLCJzeW1ib2xpY19zdHJpbmciLCJzeW1ib2xpY19zcGFjZXMiLCJzeW1ib2xpY19pbmRlbnQiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcV9pbiIsInNlcSQxIiwicHBfcHJpbnRfc2VxIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsIm91dHB1dF9hY2MkMCIsImJ0eSIsInAkNSIsInAkNiIsInN0cnB1dF9hY2MkMCIsInNpemUkMSIsImtmcHJpbnRmJDAiLCJpa2ZwcmludGYkMCIsImlmcHJpbnRmJDAiLCJmcHJpbnRmJDAiLCJwcmludGYkMCIsImVwcmludGYkMCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImtwcmludGYiLCJzcHJpbnRmJDAiLCJrYXNwcmludGYiLCJhc3ByaW50ZiIsImZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMiLCJwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJicHJpbnRmJDAiLCJwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJzdHJpbmdpZnkiLCJwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJmdW5zIiwibWFya19vcGVuX3RhZyIsIm1hcmtfY2xvc2VfdGFnIiwicHJpbnRfb3Blbl90YWciLCJwcmludF9jbG9zZV90YWciLCJzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJudWxsX2NoYXIiLCJuZXh0X2NoYXIiLCJpYiIsInBlZWtfY2hhciIsImNoZWNrZWRfcGVla19jaGFyIiwiZW5kX29mX2lucHV0IiwiZW9mIiwiYmVnaW5uaW5nX29mX2lucHV0IiwibmFtZV9vZl9pbnB1dCIsImNoYXJfY291bnQiLCJsaW5lX2NvdW50IiwicmVzZXRfdG9rZW4iLCJpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciIsInRva2VuX3N0cmluZyIsInRva2VuX2J1ZmZlciIsInRva2VuX2NvdW50Iiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImNyZWF0ZSQ0IiwiaW5hbWUiLCJmcm9tX3N0cmluZyQxIiwiZnJvbV9mdW5jdGlvbiQwIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZnJvbV9pY19jbG9zZV9hdF9lbmQiLCJmcm9tX2ljX3JhaXNlX2F0X2VuZCIsInN0ZGliIiwib3Blbl9pbl9maWxlIiwib3Blbl9pbiIsImZyb21fZmlsZSIsImZyb21fZmlsZV9iaW4iLCJmcm9tX2NoYW5uZWwkMCIsImNsb3NlX2luIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21faWMiLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9lbmRfb2ZfaW5wdXQiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoX2VyciIsImNpIiwiY2hhcmFjdGVyX21pc21hdGNoIiwic2tpcF93aGl0ZXMiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19uZXdsaW5lIiwiY2hlY2tfY2hhciIsInRva2VuX2NoYXIiLCJ0b2tlbl9ib29sIiwiaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIiLCJ0b2tlbl9pbnRfbGl0ZXJhbCIsInRva2VuX2ludCIsInRva2VuX2Zsb2F0IiwidG9rZW5fbmF0aXZlaW50IiwidG9rZW5faW50MzIiLCJ0b2tlbl9pbnQ2NCIsInNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIiwid2lkdGgkMiIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3N0YXIiLCJkaWdpdHAiLCJzY2FuX2RpZ2l0cyIsInNjYW5fZGlnaXRfcGx1cyIsImJhc2lzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5fdW5zaWduZWRfaW50Iiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQiLCJzY2FuX2ludF9jb252ZXJzaW9uIiwic2Nhbl9mcmFjdGlvbmFsX3BhcnQiLCJzY2FuX2V4cG9uZW50X3BhcnQiLCJzY2FuX2ludGVnZXJfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQzIiwid2lkdGgkNCIsIndpZHRoJDUiLCJ3aWR0aCQ2Iiwid2lkdGgkMTAiLCJ3aWR0aCQ3Iiwid2lkdGgkOCIsIndpZHRoJDkiLCJzY2FuX2NhbWxfZmxvYXRfcmVzdCIsIndpZHRoX3ByZWNpc2lvbiIsImZyYWNfd2lkdGgiLCJzY2FuX2NhbWxfZmxvYXQiLCJzY2FuX3N0cmluZyIsInN0cCIsInNjYW5fY2hhciIsImNoYXJfZm9yX2JhY2tzbGFzaCIsImRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2RlY2ltYWxfY29kZSIsImMwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUiLCJjaGVja19uZXh0X2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyIsInNjYW5fYmFja3NsYXNoX2NoYXIiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJmaW5kX2NoYXIiLCJmaW5kX3N0YXJ0Iiwic2Nhbl9jYW1sX3N0cmluZyIsImZpbmRfc3RvcCQwIiwic2Nhbl9iYWNrc2xhc2giLCJza2lwX3NwYWNlcyIsInNraXBfbmV3bGluZSIsInNjYW5fYm9vbCIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJmbXQkMjEiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjIiLCJmbXQkMjMiLCJmbXQkMjQiLCJ0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwibWFrZV9zY2FuZiIsInJlYWRlcnMiLCJzY2FuJDAiLCJzdHJfcmVzdCIsInBhZF9wcmVjX3NjYW5mIiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0Iiwic2NhbiQ1Iiwic2NhbiQ2Iiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsImxhYmVsIiwiZWxlbWVudCIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImdldF9tZXRob2RfbGFiZWxzIiwibmFtZXMiLCJzZXRfbWV0aG9kIiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsInNldF9kYXRhIiwic2V0X25leHQiLCJnZXRfa2V5JDAiLCJnZXRfZGF0YSQwIiwiZ2V0X25leHQiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF9rZXlzIiwibG9va3VwX2tleSIsInRhYmxlcyQwIiwidGFibGVzX2RhdGEiLCJuZXh0JDAiLCJsb29rdXBfdGFibGVzIiwicm9vdCIsInJvb3RfZGF0YSIsImdldF9jb25zdCIsImdldF92YXIiLCJnZXRfZW52IiwiZ2V0X21ldGgiLCJzZXRfdmFyIiwiYXBwX2NvbnN0IiwiYXBwX3ZhciIsImFwcF9lbnYiLCJhcHBfbWV0aCIsImFwcF9jb25zdF9jb25zdCIsImFwcF9jb25zdF92YXIiLCJhcHBfY29uc3RfbWV0aCIsImFwcF92YXJfY29uc3QiLCJhcHBfbWV0aF9jb25zdCIsImFwcF9jb25zdF9lbnYiLCJhcHBfZW52X2NvbnN0IiwibWV0aF9hcHBfY29uc3QiLCJtZXRoX2FwcF92YXIiLCJtZXRoX2FwcF9lbnYiLCJtZXRoX2FwcF9tZXRoIiwic2VuZF9jb25zdCIsInNlbmRfdmFyIiwic2VuZF9lbnYiLCJzZW5kX21ldGgiLCJuZXdfY2FjaGUiLCJtZXRob2RfaW1wbCIsImNsbyIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInNldF9tZXRob2RzIiwic3RhdHMkMCIsImluaXRfbW9kX2Jsb2NrIiwiY29tcHMiLCJtb2R1IiwiaW5pdF9tb2RfZmllbGQiLCJzaGFwZSIsImZuJDAiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfZmllbGQiLCJjbCIsInVwZGF0ZV9tb2RfYmxvY2siLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImNvbW1lbnQkMCIsIm1heWJlX25lc3RlZF9jb21tZW50IiwibWF5YmVfZW5kX2NvbW1lbnQiLCJjb21tZW50IiwiZXNjYXBlIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwiZGVjaW1hbF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsIm1heWJlX2NvbW1lbnQiLCJuZXh0X3Rva2VuIiwiaGtleSIsImNsZWFuIiwiY29udGFpbmVyIiwiaGsiLCJuZXdfZCIsImJ1Y2tldF9sZW5ndGhfYWxpdmUiLCJzdGF0c19hbGl2ZSIsIm9ial9vcHQiLCJjcmVhdGUkNSIsImdldF9rZXkkMSIsImdldF9rZXlfY29weSQwIiwic2V0X2tleSQwIiwidW5zZXRfa2V5JDAiLCJjaGVja19rZXkkMCIsImJsaXRfa2V5JDAiLCJnZXRfZGF0YSQxIiwiZ2V0X2RhdGFfY29weSIsInNldF9kYXRhJDAiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsIm1ha2UkNCIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQ1IiwiYWRkJDEiLCJ0ZXN0X2tleSIsInJlbW92ZSQwIiwiZmluZCQyIiwibGVuZ3RoJDciLCJjbGVhciQzIiwiY3JlYXRlJDYiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQyIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMSIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQ2Iiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJtYWtlJDciLCJhZGQkMiIsInRlc3Rfa2V5cyIsInJlbW92ZSQxIiwiZmluZCQzIiwibGVuZ3RoJDgiLCJjbGVhciQ0IiwiY3JlYXRlJDciLCJsZW5ndGgkOSIsImdldF9rZXkkMiIsImdldF9rZXlfY29weSQxIiwic2V0X2tleSQxIiwidW5zZXRfa2V5JDEiLCJjaGVja19rZXkkMSIsImJsaXRfa2V5JDEiLCJnZXRfZGF0YSQzIiwiZ2V0X2RhdGFfY29weSQxIiwic2V0X2RhdGEkMiIsInVuc2V0X2RhdGEkMSIsImNoZWNrX2RhdGEkMSIsImJsaXRfZGF0YSQxIiwibWFrZSQ4IiwicXVlcnkkMSIsImVxdWFsX2FycmF5Iiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX3F1b3RlIiwicXVvdGVxdW90ZSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZmluZF9iZWciLCJmaW5kX2VuZCIsImdlbmVyaWNfZGlybmFtZSIsImludGVybWVkaWF0ZV9zZXAiLCJiYXNlIiwidHJhaWxpbmdfc2VwIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInF1b3RlIiwicXVvdGVfY29tbWFuZCIsImJhc2VuYW1lIiwiZGlybmFtZSIsImlzX2Rpcl9zZXAkMCIsImlzX3JlbGF0aXZlJDAiLCJpc19pbXBsaWNpdCQwIiwiY2hlY2tfc3VmZml4JDAiLCJjaG9wX3N1ZmZpeF9vcHQkMCIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZCIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImhhc19kcml2ZSIsImlzX2xldHRlciIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMCIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY29uY2F0JDQiLCJjaG9wX3N1ZmZpeCIsImV4dGVuc2lvbl9sZW4iLCJpMCIsInNlYXJjaF9kb3QiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJwcm5nJDAiLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsInRyeV9uYW1lIiwiY291bnRlciQxIiwib3Blbl90ZW1wX2ZpbGUiLCJzdGgkMCIsInBlcm1zIiwic3RoJDEiLCJhZGQkNCIsInN1YiQ0IiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJpbnQzMiQxIiwiaW50NjQkMSIsImludCQyIiwibmF0aXZlaW50JDEiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImluaXQkNiIsImxheW91dCIsImRpbXMiLCJkbGVuIiwic2l6ZV9pbl9ieXRlcyIsImNyZWF0ZSQ4IiwiZ2V0JDQiLCJzZXQkMyIsInNpemVfaW5fYnl0ZXMkMCIsIm9mX3ZhbHVlIiwiY3JlYXRlJDkiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImNfaW5pdCIsImZvcnRyYW5faW5pdCIsImluaXQkNyIsIm9mX2FycmF5IiwiYmEiLCJjcmVhdGUkMTAiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImNfaW5pdCQwIiwiZm9ydHJhbl9pbml0JDAiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiY19pbml0JDEiLCJmb3J0cmFuX2luaXQkMSIsImluaXQkOSIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJ3aXRoX29wZW4iLCJvcGVuZnVuIiwid2l0aF9vcGVuX2JpbiIsIndpdGhfb3Blbl90ZXh0Iiwid2l0aF9vcGVuX2dlbiIsInNlZWsiLCJsZW5ndGgkMTEiLCJpbnB1dF9jaGFyJDAiLCJpbnB1dF9ieXRlJDAiLCJpbnB1dF9saW5lJDAiLCJyZWFsbHlfaW5wdXQkMCIsInJlYWxseV9pbnB1dF9zdHJpbmckMCIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMCIsImJ1ZiQxIiwicmVtIiwid2l0aF9vcGVuJDAiLCJ3aXRoX29wZW5fYmluJDAiLCJ3aXRoX29wZW5fdGV4dCQwIiwid2l0aF9vcGVuX2dlbiQwIiwic2VlayQwIiwicG9zJDAiLCJsZW5ndGgkMTIiLCJleG4iLCJtb2R1bGUiLCJnbG9iYWxUaGlzIiwibnVsbCIsInVuZGVmaW5lZCIsImpzb29fZXhwb3J0cyIsImV2ZW50IiwiU3RyaW5nIiwiemVybyQwIiwib25lJDAiLCJtaW51c19vbmUkMCIsInN1Y2MkMCIsInByZWQkMCIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90JDAiLCJvZl9zdHJpbmdfb3B0JDAiLCJ0b19zdHJpbmckMCIsImNvbXBhcmUkMCIsImVxdWFsJDAiLCJzcmMkMCIsImhkciIsImRpZ2VzdCIsImtpbmQiLCJsZW5ndGgiLCJzZXJpYWxpemVyIiwidiIsImhkciQwIiwic3RhdGUiLCJnbyIsImNvbnRpbnVlJDAiLCJsZW4iLCJvZmYiLCJzdHIiLCJzdHIkMCIsImN0eCQxIiwiZW1wdHkkMSIsImVtcHR5JDIiLCJkZWZhdWx0JDAiLCJ6ZXJvIiwiY29uc29sZSQwIiwibGV2ZWwiLCJzIiwibWV0aCIsImNvbnNvbGUiLCJiIiwiZmx1c2giLCJwcGYiLCJob29rIiwiY29uc29sZV9yZXBvcnQiLCJzcmMiLCJvdmVyIiwiayIsIm1zZ2YiLCJrJDAiLCJoZWFkZXIiLCJ0YWdzIiwiZm10IiwiaCIsImNvbnNvbGVfcmVwb3J0ZXIiLCJnaXRfYWZfc2NoZW1lIiwiZ2l0X2FmX3BvcnQiLCJnaXRfYWZfaG9zdG5hbWUiLCJwcF9lcnJvciIsIndpdGhfcmVkaXJlY3RzIiwib3B0IiwiZiIsInVyaSIsInN0aCIsIm1heCIsInRibCIsImdvIiwiYm9keSIsInJlc3AiLCJzdGF0dXNfY29kZSIsImdldCIsImhlYWRlcnMiLCJ4IiwiaGVhZGVycyQwIiwicG9zdCIsImJvZHkkMCIsImNvbnRleHQiLCJjdHgiLCJlZG4iLCJrMSIsImN0eCQwIiwiZWRuJDAiLCJrMSQwIiwiY3R4JDEiLCJwcF9lcnJvciQwIiwiZXJyIiwicHBfd3JpdGVfZXJyb3IiLCJ3cml0ZSIsInQiLCJjcyIsIm91dHB1dCIsIm91dHB1dCQwIiwid3JpdGV2IiwiY3NzIiwiciIsInJlYWQiLCJhZHZlcnRpc2VkX3JlZnMiLCJ1cmkkMCIsImNvbnRlbnRzIiwiY2xvc2UiLCJjb25uZWN0IiwiZW5kcG9pbnQiLCJodHRwX3Byb3RvY29sIiwiaHR0cF9lbmRwb2ludCIsImNvbm5lY3QkMCIsImswIiwiZ2l0X3RyYW5zbWlzc2lvbiIsImdpdF9zY2hlbWUiLCJrMiIsImdpdF91cmkiLCJnaXRfaHR0cF9oZWFkZXJzIiwiaGFuZHNoYWtlIiwidXJpMCIsInVyaTEiLCJmbG93IiwiY3R4JDIiLCJzcGVjIiwib2Zfc3RyaW5nIiwic3RyIiwidG9fc3RyaW5nIiwicmVmZXJlbmNlIiwiaGVhZCIsImJhcmUiLCJidWZmZXJzIiwiaW5pdCIsInJvb3QiLCJjb25maWciLCJjb25maWckMCIsImNvbmZpZyQxIiwiY29uZmlnJDIiLCJyZW1vdGUiLCJzeW1ib2wiLCJhIiwiZSIsImZldGNoJDAiLCJkZXB0aCIsImJyYW5jaCIsImluaXQkMCIsInRlc3RfcG9wdWxhdGUiLCJhZGQiLCJwIiwidGVzdF9wdWxsIiwicmVwbyIsInVwc3RyZWFtIiwic3RyaW5nX29mX2NvZGUiLCJjaCIsImkiLCJwcF9jb2RlIiwidiIsInBwX21vZHMiLCJldnRfb2ZfanNrZXkiLCJldnQiLCJzJDAiLCJzJDEiLCJncmF5IiwibGlnaHQiLCJkYXJrIiwiYmxhY2siLCJyZWQiLCJncmVlbiIsInllbGxvdyIsImJsdWUiLCJtYWdlbnRhIiwiY3lhbiIsIndoaXRlIiwibGlnaHRibGFjayIsImxpZ2h0cmVkIiwibGlnaHRncmVlbiIsImxpZ2h0eWVsbG93IiwibGlnaHRibHVlIiwibGlnaHRtYWdlbnRhIiwibGlnaHRjeWFuIiwibGlnaHR3aGl0ZSIsInN5bWJvbCQwIiwicmVwbGFjZSIsInByZXYiLCJuZXh0IiwicHAiLCJidHciLCJidWYiLCJta3N0cmluZyIsInJlcyIsImFkZF9kZWNpbWFsIiwiZDEiLCJkMiIsImQzIiwiYWRkX2NoYXJzIiwiYyIsIm4iLCJzdWIwY3AiLCJsZW4iLCJvZl9jaGFyc19yZXYiLCJicyIsInhzIiwiZXF1YWwkMCIsIm9mX3N0cmluZyQwIiwidG9fc3RyaW5nJDAiLCJvZl91Y2hhcnMiLCJ1Y3MiLCJyZXBsaWNhdGVjIiwidyIsInBwJDAiLCJwcCQxIiwidW5kZXJsaW5lIiwic2l6ZSIsIm1lcmdlJDAiLCJzMiIsInNldCQwIiwidmciLCJyZXBsYWNlJDAiLCJwcCQyIiwiZXF1YWwkMSIsImVtcHR5JDMiLCJkYXJrJDAiLCJzeW1ib2wkMSIsImExIiwiYTIiLCJyZXBsYWNlJDEiLCJmZyIsImJnIiwiZm9udCIsIm1lcmdlJDEiLCJzZXQkMSIsIm1lbnVfbWFpbiIsIm1lbnVfc3ViIiwiY2xpY2thYmxlIiwiY3Vyc29yIiwiZW1wdHkkNCIsImFsbCIsInAyX21heCIsInAxIiwicDIiLCJib3VuZHNfc2VnbWVudCIsImFzY2VuZGVyIiwic2l6ZSQwIiwiYWR2YW5jZSIsInltYXgiLCJ5bWluIiwicGFyYW0kMSIsInQyIiwidDEiLCJ0MiQwIiwidDEkMCIsInAxJDAiLCJwMiQwIiwidDIkMSIsInQxJDEiLCJyaWdodCIsImxlZnQiLCJib3R0b20iLCJ0b3AiLCJ0JDAiLCJwJDAiLCJlbXB0eSQ1Iiwidm9pZCQwIiwiYXR0ciIsImEwIiwic3ltYm9sJDIiLCJzeW1ib2wkMyIsInN5bWJvbCQ0IiwiaGNyb3AiLCJpbWciLCJ2Y3JvcCIsImNyb3AiLCJsIiwic3RoJDAiLCJzdGgkMSIsInN0aCQyIiwiaW1nJDAiLCJocGFkIiwidnBhZCIsInBhZCIsImNvbmNhdG0iLCJ6IiwieHMkMCIsImFjY3VtIiwieHMkMSIsImhjYXQiLCJ2Y2F0IiwiemNhdCIsInRleHQkMCIsInR4Iiwic3RyaW5nIiwidWNoYXJzIiwibGluc3BjbSIsIm0iLCJ0YWJ1bGF0ZSIsIm0kMCIsIm4kMCIsInkiLCJjaGFycyIsImN0b3IiLCJ3JDAiLCJoJDAiLCJsaW5lIiwiY2hhciQwIiwic3RyX29mX2JveCIsImZpbGxfYm94IiwiY29sb3IiLCJwYXRoX2JveCIsIndpZHRoIiwidmNhdCQwIiwiZCIsInBwJDMiLCJjb21wb3NlIiwiYSQwIiwiYSQxIiwiYSQyIiwidCQxIiwiZGltIiwic2VnbWVudF9rZXJuX2NhY2hlIiwic2VnbWVudCIsIm1ldHJpY3MiLCJzeiIsIm5vZGUiLCJ0ZXh0IiwiaTIiLCJpMSIsImkyJDAiLCJpMSQwIiwiaTIkMSIsImkxJDEiLCJwMSQxIiwicDIkMSIsImkkMCIsInAwIiwicDEkMiIsImkkMSIsInAwJDAiLCJwMSQzIiwibWF4aSIsIm1pbmkiLCJtYWtlJDAiLCJlbXB0eSQ2IiwidmFyJDAiLCJzdGF0dXMkMCIsImhhc19mb2N1cyIsImNsb2NrIiwicmVxdWVzdF92YXIiLCJyZXF1ZXN0IiwicmVsZWFzZSIsIm1lcmdlJDIiLCJzMSIsInBwX3ZhciIsInBwX3N0YXR1cyIsIm1ha2UkMSIsInYkMCIsInBwX2RpcmVjdGlvbiIsImRpciIsInBwJDQiLCJnIiwicGFpciIsIm1ha2UkMiIsInNoaWZ0IiwiZnN0Iiwic2l6ZSQxIiwic25kIiwibWF5X2hhbmRsZSIsInBwX21heV9oYW5kbGUiLCJwcF9rZXkiLCJmbGFnc19ub25lIiwiZmxhZ190cmFuc2llbnRfc2Vuc29yIiwiZmxhZ19wZXJtYW5lbnRfc2Vuc29yIiwibGF5b3V0X3NwZWMiLCJsYXlvdXRfd2lkdGgiLCJsYXlvdXRfc3RyZXRjaF93aWR0aCIsImxheW91dF9oZWlnaHQiLCJsYXlvdXRfc3RyZXRjaF9oZWlnaHQiLCJwcF9sYXlvdXRfc3BlYyIsInNoIiwic3ciLCJjYWNoZSIsImluaXQkMiIsImF0b20iLCJzcGFjZSIsIm1vdXNlX2FyZWEiLCJrZXlib2FyZF9hcmVhIiwiZm9jdXMiLCJmb2N1cyQwIiwiZm9jdXMkMSIsInNoaWZ0X2FyZWEiLCJzaXplX3NlbnNvciIsImhhbmRsZXIiLCJ0cmFuc2llbnRfc2Vuc29yIiwiZnJhbWVfc2Vuc29yIiwicGVybWFuZW50X3NlbnNvciIsInByZXBhcmVfZ3Jhdml0eSIsInJlc2l6ZSIsInNoJDAiLCJyZXNpemVfdG8iLCJldmVudF9maWx0ZXIiLCJqb2luX3giLCJqb2luX3kiLCJqb2luX3oiLCJwYWNrX3giLCJwYWNrX3kiLCJwYWNrX3oiLCJoY2F0JDAiLCJ2Y2F0JDEiLCJ6Y2F0JDAiLCJoYXNfZm9jdXMkMCIsInBwJDUiLCJwcF9kZXNjIiwiZGVzYyIsImRlc2MkMCIsImRlc2MkMSIsImRlc2MkMiIsInkkMCIsIngkMCIsIm4kMSIsIm4kMiIsImIkMCIsImIkMSIsIml0ZXIkMCIsInVpIiwidTIiLCJ1MSIsInUiLCJtYWtlJDMiLCJzaXplJDIiLCJzb2x2ZV9mb2N1cyIsImF1eCIsInNwbGl0Iiwic2EiLCJzYiIsInRvdGFsIiwic3RyZXRjaCIsImZsZXgiLCJyYXRpbyIsInBhY2siLCJmaXhlZCIsImcxIiwiZzIiLCJ2MiIsInYxIiwiZ3Jhdml0eSIsInYxJDAiLCJoYXNfdHJhbnNpZW50X3NlbnNvciIsImZsYWdzIiwiaGFzX3Blcm1hbmVudF9zZW5zb3IiLCJ1cGRhdGVfc2Vuc29ycyIsIm94Iiwib3kiLCJveCQwIiwib3kkMCIsInN3JDAiLCJ1aSQwIiwic2gkMSIsInN3JDEiLCJveSQ0Iiwib3gkNCIsInNlbnNvciIsInNlbnNvciQwIiwic2Vuc29yJDEiLCJzZW5zb3IkMiIsInJ3IiwiZHgiLCJyaCIsImR5Iiwib3kkMSIsIm94JDEiLCJzeSIsInN4IiwidCQyIiwib3kkMiIsIm94JDIiLCJidyIsImF3Iiwib3gkMyIsImJoIiwiYWgiLCJveSQzIiwidWkkMSIsInVwZGF0ZV9mb2N1cyIsInRfc2l6ZV9vZl90IiwidF9zaXplX2Rlc2Nfb2ZfdCIsImgkNSIsInckMSIsInYkMSIsInYkMiIsInQkMyIsInYkMyIsInQkNCIsInQkNSIsInYkNCIsInQkNiIsImIkMiIsImIkMyIsImEkMyIsInVwZGF0ZSIsInN0IiwiYnRuIiwiaGFuZGxlIiwiZiQwIiwicmgkMCIsIm9mZnNldHkiLCJyZWxlYXNlX2dyYWIiLCJyZXNpemVfY2FudmFzIiwiaW1hZ2UiLCJyZXNpemVfY2FudmFzMiIsInNhbWVfc2l6ZSIsImRpc3BhdGNoX21vdXNlIiwiZXZlbnQiLCJkcmFnIiwicmVuZGVyX25vZGUiLCJ2eDEiLCJ2eTEiLCJ2eDIiLCJ2eTIiLCJpbWFnZSQwIiwiY2FjaGUkMCIsImltYWdlJDEiLCJ2eCIsInZ5IiwiY2FjaGUkMSIsInZ4JDAiLCJ2eSQwIiwiaW1hZ2UkMiIsImNhIiwiY2IiLCJ2eCQxIiwidnkkMSIsImltYWdlJDMiLCJjYSQwIiwiY2IkMCIsInZ4JDIiLCJ2eSQyIiwiaW1hZ2UkNCIsImNhJDEiLCJjYiQxIiwidngkMyIsInZ5JDMiLCJpbWFnZSQ1IiwidmlldyIsImRpc3BhdGNoX3Jhd19rZXkiLCJrZXkiLCJpdGVyIiwic3QkMCIsInRsIiwic3QkMiIsInN0JDMiLCJzdCQxIiwiZ3JhYl9mb2N1cyIsImRpc3BhdGNoX2ZvY3VzIiwiZGlzcGF0Y2hfa2V5Iiwia2V5JDAiLCJtb2RzIiwia2V5JDEiLCJkaXIkMCIsImRpciQxIiwia2V5JDIiLCJkaXNwYXRjaF9ldmVudCIsIm1vdXNlIiwiY29weV91bnRpbCIsInF1aXQiLCJpbnB1dCIsInF1aXQkMCIsInB1c2giLCJzdHJlYW0iLCJyZXN1bHQiLCJyZW5kZXIiLCJldmVudHMiLCJkb2MiLCJyZW5kZXJlciIsInB1c2hfcmVmcmVzaCIsInJlZnJlc2hfc3RyZWFtIiwiZG9fcXVpdCIsInF1aXQkMSIsImRvX3F1aXQkMCIsImV2ZW50cyQwIiwicmVmcmVzaCIsInByb2Nlc3NfZXZlbnQiLCJzdHJpbmckMCIsImludCQwIiwiYm9vbCIsImZsb2F0JDAiLCJwcmludGYiLCJrcHJpbnRmIiwia2ZtdCIsIndpbmRvd19tYW5hZ2VyIiwiYmFzZSIsIm92ZXJsYXlzIiwiY29tcG9zaXRpb24iLCJjb21wb3NpdGUiLCJ3aW5kb3dfbWFuYWdlcl92aWV3Iiwid20iLCJ3aW5kb3dfbWFuYWdlcl9vdmVybGF5cyIsIm1lbnVfb3ZlcmxheSIsImFyb3VuZCIsInJvdyIsImhfcGFkIiwidl9wYWQiLCJjYXRjaGFsbCIsInNjcm9sbF9zdGVwIiwic2Nyb2xsX2FyZWEiLCJvZmZzZXQiLCJvZmZzZXQkMCIsInNjcm9sbCIsImRfeCIsImRfeSIsInNfeSIsInNfeCIsInNfeCQwIiwic195JDAiLCJmb2N1c19oYW5kbGVyIiwibWFpbl9tZW51X2l0ZW0iLCJvdmVybGF5Iiwib25fY2xpY2siLCJzdWJfbWVudV9pdGVtIiwic3ViX2VudHJ5IiwiaF9wYW5lIiwic3RhdGVfdmFyIiwic3RhdGUiLCJwb3MiLCJsJDAiLCJyJDAiLCJzcGxpdHRlciIsImF0IiwibWF4JDAiLCJwb3MkMCIsInNwbGl0dGVyJDAiLCJ2X3BhbmUiLCJib3QiLCJ0b3AkMCIsImJvdCQwIiwiZXFfdWNfYyIsInVjIiwiZWRpdF9maWVsZCIsIm9uX2NoYW5nZSIsImZvY3VzX2giLCJjb250ZW50Iiwib25fY2hhbmdlJDAiLCJ0ZXh0JDEiLCJwb3MkMSIsImxpbmVfZW1wdHkiLCJsaW5lX21ha2UiLCJsaW5lX2FwcGVuZCIsInRhYmxlIiwiY29weV9saW5lX2N1cnNvciIsInhpIiwieXMiLCJ5aSIsInJvd19vZl9jdXJzb3IiLCJsaW5lX29mX2N1cnNvciIsImN1cnNvcl9tb3ZlIiwibmV3X3JvdyIsImN1cnNvcl9yb3ciLCJuZXdfcm93JDAiLCJuZXdfbGluZSIsImN1cnNvcl9saW5lIiwibGluZV90YWJsZV9vZl9zdHJpbmciLCJmb2N1c192YWwiLCJmaW5kX2ZvY3VzIiwiZm9jdXNfaGFuZGxlX2NvbXBhcmUiLCJmb2N1c2VkX3Jvd19vZl90YWJsZSIsInRvX2x3dF9sd2QiLCJsd3RfbHdkX3N0cmluZyIsImVkaXRfYXJlYSIsImZpcnN0IiwiY3Vyc29yX21vdmUkMCIsInJvd19wcmV2IiwibGluZV9wcmV2Iiwic3RyX3ByZXYiLCJvbGRfcm93Iiwib2xkX2xpbmUiLCJvX3N0ciIsIm5fc3RyIiwidHJlZV9uYXYiLCJwYXRoIiwidHJlZSIsIm5ld19saW5lX2ZvY3VzIiwiY3Vyc29yX2xpbmVfZm9jdXMiLCJ0cmVlbGlzdCIsInRlIiwiY3Vyc29ydmlldyIsInB1c2hfY3YiLCJjdiIsInN0ZXAiLCJjdnJvb3QiLCJjdXJzb3J2aWV3JDAiLCJ0cmVlX3ZpZXciLCJub2RlX2VkaXRfYXJlYSIsInRhYnMiLCJjdXIiLCJpZHhfc2VsIiwidGFiX2Fubm90IiwidGFiX2JhciIsInVuZm9sZGFibGUiLCJzdW1tYXJ5IiwiZm9sZGVkX2J5X2RlZmF1bHQiLCJvcGVuZWQiLCJmb2xkX2NvbnRlbnQiLCJvcCIsInN1bW1hcnkkMCIsImZvbGQiLCJzcGVjX3N1bSIsInNwZWNfZm9sZCIsInRvb19iaWciLCJoYm94IiwidmJveCIsInpib3giLCJ2bGlzdCIsImJ1bGxldCIsInZsaXN0X3dpdGgiLCJmaWx0ZXIiLCJmaWx0ZXJfbWFwIiwiYWNjIiwiYWNjJDAiLCJsJDEiLCJhY2MkMSIsImxfZmlsdGVyIiwidmxpc3Rfb2ZfdGV4dCIsImtleV9oYW5kbGVyIiwiYnV0dG9uX29mIiwiYnV0dG9uIiwiZmlsZV9zZWxlY3QiLCJhYnMiLCJwX3JlbCIsImFyciIsInN0YXJ0IiwidG9nZ2xlIiwibGJsIiwibWtfYnV0Iiwic3RfdiIsImxibF92IiwibmV3X3N0IiwidG9nZ2xlJDAiLCJ0b2dnbGUkMSIsImFkanVzdF9vZmZzZXQiLCJ2aXNpYmxlIiwib2ZmIiwib2ZmJDAiLCJvZmYkMSIsInNjcm9sbGJhcl93aWR0aCIsImRlY3JfaWYiLCJjb25kIiwic2Nyb2xsYmFyX2JnIiwic2Nyb2xsYmFyX2ZnIiwic2Nyb2xsYmFyX2NsaWNrX3N0ZXAiLCJzY3JvbGxiYXJfd2hlZWxfc3RlcCIsImhzY3JvbGxiYXIiLCJzZXQiLCJwcmVmaXgiLCJzdWZmaXgiLCJtb3VzZV9oYW5kbGVyIiwidnNjcm9sbGJhciIsInNjcm9sbGJveCIsInVwZGF0ZV9zaXplIiwibWVhc3VyZV9zaXplIiwiY29tcG9zZV9iYXJzIiwiaHZpc2libGUiLCJ2dmlzaWJsZSIsImh2aXNpYmxlJDAiLCJ2dmlzaWJsZSQwIiwic3RhdGVfdyIsInN0YXRlX2giLCJzdGF0ZV94Iiwic3RhdGVfeSIsInNldF92c2Nyb2xsIiwic2V0X2hzY3JvbGwiLCJzY2FsZV9jYW52YXMiLCJjYW52YXMiLCJ4IiwiZHByIiwicmVjdCIsIndpZHRoIiwiaGVpZ2h0Iiwid2lkdGgkMCIsImhlaWdodCQwIiwid2ViZ2xfaW5pdGlhbGl6ZSIsImF0dHJzIiwiY3R4IiwiZ3JhcGh2X2luaXRpYWxpemUiLCJ3ZWJnbF9jdHgiLCJ2ZyIsInJlcXVlc3RfYW5pbWF0aW9uX2ZyYW1lIiwicyIsInQiLCJ0aW1lIiwicmVuZGVyX3N0cmVhbSIsInJlbmRlciIsImkiLCJkZXZpY2VfcmF0aW8iLCJncmF2aXR5X3BhZCIsImdyYXZpdHlfY3JvcCIsImJvZHkiLCJ3bSIsInRlc3RfdHJlZSIsInVpIiwicm9vdCIsInB1c2hfZXZlbnQiLCJldmVudHMiLCJpbWFnZXMiLCJvcHQiLCJwIiwibSIsInAkMCIsImV2Il0sInNvdXJjZXMiOlsiIiwiL2J1aWx0aW4vK2ludDY0LmpzIiwiL2J1aWx0aW4vK21sQnl0ZXMuanMiLCIvYnVpbHRpbi8rZmFpbC5qcyIsIi9idWlsdGluLytzdGRsaWIuanMiLCIvYnVpbHRpbi8rZm9ybWF0LmpzIiwiL2J1aWx0aW4vK2llZWVfNzU0LmpzIiwiL2J1aWx0aW4vK2ZzX25vZGUuanMiLCIvYnVpbHRpbi8rZnMuanMiLCIvYnVpbHRpbi8rdW5peC5qcyIsIi9idWlsdGluLytzeXMuanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9idWlsdGluLytiaWdhcnJheS5qcyIsIi9idWlsdGluLytjb21wYXJlLmpzIiwiL2hvbWUvY3FjLy5vcGFtL3N3aXRjaC1ncmFwaHYtd2ViZ2wtaXJtaW4vbGliL2JpZ3N0cmluZ2FmL3J1bnRpbWUuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rcGFyc2luZy5qcyIsIi9idWlsdGluLytpbnRzLmpzIiwiL2J1aWx0aW4vK2hhc2guanMiLCIvYnVpbHRpbi8rYmlnc3RyaW5nLmpzIiwiL2J1aWx0aW4vK2pzbGliX2pzX29mX29jYW1sLmpzIiwiL2J1aWx0aW4vK29iai5qcyIsIi9idWlsdGluLytiYWNrdHJhY2UuanMiLCIvYnVpbHRpbi8rbGV4aW5nLmpzIiwiL2J1aWx0aW4vK2FycmF5LmpzIiwiL2J1aWx0aW4vK3dlYWsuanMiLCIvYnVpbHRpbi8rbWQ1LmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9ob21lL2NxYy8ub3BhbS9zd2l0Y2gtZ3JhcGh2LXdlYmdsLWlybWluL2xpYi9jc3RydWN0L2NzdHJ1Y3QuanMiLCIvdXNyL2xpYi9vY2FtbC91Y2hhci5tbCIsIi91c3IvbGliL29jYW1sL2ludDY0Lm1sIiwiL3Vzci9saWIvb2NhbWwvbGV4aW5nLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0Lm1sIiwiL3Vzci9saWIvb2NhbWwvcHJpbnRleGMubWwiLCIvdXNyL2xpYi9vY2FtbC9maWxlbmFtZS5tbCIsIi91c3IvbGliL29jYW1sL2NvbXBsZXgubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MubWwiLCIvdXNyL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvdXNyL2xpYi9vY2FtbC9zdGRsaWIubWwiLCIvdXNyL2xpYi9vY2FtbC9wZXJ2YXNpdmVzLm1sIiwiL3Vzci9saWIvb2NhbWwvcmFuZG9tLm1sIiwiL3Vzci9saWIvb2NhbWwvZmxvYXQubWwiLCIvdXNyL2xpYi9vY2FtbC9saXN0Lm1sIiwiL3Vzci9saWIvb2NhbWwvaW5fY2hhbm5lbC5tbCIsIi91c3IvbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL3Vzci9saWIvb2NhbWwvZWl0aGVyLm1sIiwiL3Vzci9saWIvb2NhbWwvbmF0aXZlaW50Lm1sIiwiL3Vzci9saWIvb2NhbWwvb2JqLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsTGF6eS5tbCIsIi91c3IvbGliL29jYW1sL2xhenkubWwiLCIvdXNyL2xpYi9vY2FtbC9zZXEubWwiLCIvdXNyL2xpYi9vY2FtbC9vcHRpb24ubWwiLCIvdXNyL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvdXNyL2xpYi9vY2FtbC9ib29sLm1sIiwiL3Vzci9saWIvb2NhbWwvY2hhci5tbCIsIi91c3IvbGliL29jYW1sL2J5dGVzLm1sIiwiL3Vzci9saWIvb2NhbWwvaW50Lm1sIiwiL3Vzci9saWIvb2NhbWwvc3RyaW5nLm1sIiwiL3Vzci9saWIvb2NhbWwvdW5pdC5tbCIsIi91c3IvbGliL29jYW1sL21hcnNoYWwubWwiLCIvdXNyL2xpYi9vY2FtbC9hcnJheS5tbCIsIi91c3IvbGliL29jYW1sL2ludDMyLm1sIiwiL3Vzci9saWIvb2NhbWwvcGFyc2luZy5tbCIsIi91c3IvbGliL29jYW1sL3NldC5tbCIsIi91c3IvbGliL29jYW1sL21hcC5tbCIsIi91c3IvbGliL29jYW1sL3N0YWNrLm1sIiwiL3Vzci9saWIvb2NhbWwvcXVldWUubWwiLCIvdXNyL2xpYi9vY2FtbC9zdHJlYW0ubWwiLCIvdXNyL2xpYi9vY2FtbC9idWZmZXIubWwiLCIvdXNyL2xpYi9vY2FtbC9wcmludGYubWwiLCIvdXNyL2xpYi9vY2FtbC9hcmcubWwiLCIvdXNyL2xpYi9vY2FtbC9mdW4ubWwiLCIvdXNyL2xpYi9vY2FtbC9nYy5tbCIsIi91c3IvbGliL29jYW1sL2RpZ2VzdC5tbCIsIi91c3IvbGliL29jYW1sL2hhc2h0YmwubWwiLCIvdXNyL2xpYi9vY2FtbC93ZWFrLm1sIiwiL3Vzci9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL3Vzci9saWIvb2NhbWwvc2NhbmYubWwiLCIvdXNyL2xpYi9vY2FtbC9jYWxsYmFjay5tbCIsIi91c3IvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL3Vzci9saWIvb2NhbWwvY2FtbGludGVybmFsTW9kLm1sIiwiL3Vzci9saWIvb2NhbWwvZ2VubGV4Lm1sIiwiL3Vzci9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL3Vzci9saWIvb2NhbWwvYmlnYXJyYXkubWwiLCIiLCIiLCIiLCIvdXNyL2xpYi9vY2FtbC9pbnQzMi5tbGkiLCIvdXNyL2xpYi9vY2FtbC9zdHJlYW0ubWwiLCIvd29ya3NwYWNlX3Jvb3QvaHVtYW4ubWwiLCIvd29ya3NwYWNlX3Jvb3QvYm9vdF9qcy5tbCIsIi91c3IvbGliL29jYW1sL3N0ZF9leGl0Lm1sIl0sIm1hcHBpbmdzIjoiOztlQUNDLFNBQVVBO1dBQ0ZDOzs7O0tBQ0xDO3FCQUNFO3NCQUNDO1VBQXNCRiw4Q0FFaEJHO1FBQ0hDO21CQUVSLFNBQVNEO3FCQUNQLGdCQUFXLElBQVBFLE9BQVNILFFBQVFJO01BQ3JCRCxvQkFBb0JBO2FBQ2JMLG1DQUNULGVBYkQ7R0FjQ0E7Ozs2QkMyTkYsU0FBU08sbUJBQW1CQztnQ0FBSyxtQ0FBUSxvQ0FBWTs4QkN6THJELFNBQVNDLGdCQUFnQkMsRUFBR0M7Z0NBQzFCLEdBQUdEO2tDQUFRO2dDQUNYLEdBQUlDO2tDQUFVLGtDQUFRO2dCQUFTRDtnQ0FDL0I7aUNBQU07a0NBQVE7Z0NBQ2Q7a0NBQVEsMkJBQ04sR0FBSUEsTUFBT0UsS0FBS0Q7UUFDaEJEO2tDQUNBLEdBQUlBO29D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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQjs7Ozs7OztldUJuV0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NrQktDO0tBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDd0JBQztLQUNBQztLQUNBQztLQUlBQztLQUNBQzs7OztLQ3pCQUM7S0FtSEFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NvOUVNQztLQVFRQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NsbEZkQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ3NFRUM7S0FDQUM7S0FDQUM7S0FDQUM7Ozs7S0FvQ0FDO0tBQ0FDO0tBQ0FDO0tBQ0FDOzs7S0FtSUFDO0tBQ0FDO0tBQ0FDO0tBQ0FDOzs7S0N4UEZDO0tBQ0FDO0tBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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aUJWamtCekQ7OEJVaWtCeUQ7aUJWamtCekQ7OEJVaWtCeUQ7Ozs7b0JWamtCekQ7Ozs7Ozs4QlVpa0J5RCxTS3BacERHO2lCZjdLTDs4QlVpa0J5RCxTSzlnQnBEQztpQmZuREw7OEJVaWtCeUQsU0NyV3BEQztpQlg1Tkw7OEJVaWtCeUQsU0N0V3BEQztpQlgzTkw7OEJVaWtCeUQsU0N2V3BEQztpQlgxTkw7OEJVaWtCeUQsU0N4V3BEQztpQlh6Tkw7OEJVaWtCeUQsU0N6V3BEQztpQlh4Tkw7OEJVaWtCeUQsU0MxV3BEQztpQlh2Tkw7OEJVaWtCeUQsU0MvV3BEQztpQlhsTkw7OEJVaWtCeUQsU01uZ0JwREM7aUJoQjlETDs4QlVpa0J5RCxTQ3RYcERDO2lCWDNNTDs4QlVpa0J5RCxTQ3ZYcERDO2lCWDFNTDs4QlVpa0J5RCxTQ3hYcERDO2lCWHpNTDs4QlVpa0J5RCxTQzFYcERDO2lCWHZNTDs4QlVpa0J5RCxTTXhnQnBEQztpQmhCekRMOzhCVWlrQnlELFNNemdCcERDO2lCaEJ4REw7OEJVaWtCeUQsU00zZ0JwREM7aUJoQnRETDs4QlVpa0J5RDs7O09DOWlCcERwSTtPQUNBRjs7Ozs7Ozs7Ozs7Ozs7T0FTQUc7T0FDQUc7T0E2QkFDO09DeUNRRTtPRHZDUkM7T0FJQUY7T0VsQ0FHO09BQ0FDO09BQ0FDO09BTUFDO09BQ0FDO09BQ0FDOztPRm1HQUs7T0FFQUM7T0FFQUc7T0FEQUQ7T0FFQUU7T0FFQUM7T0VyR0FNO09BREFDO09DUUFDO09DeEJBRztPQ0FBQztPQUNBQztPTGlJQTZDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BQ0FDO09BRUFFO09BREFEO09BR0FHO09BREFEO09LaEpBeEQ7T0FEQUM7T0FFQU47T0FxQkE2RjtPQUNBdEY7T0FDQXFGO09BRUFoRjtPQUNBRjtPQUNBRztPQUNBRztPQUpBMkU7T0w4SUFEO09BQ0F6RTtPQUNBd0U7T0FDQUQ7T0FDQUQ7T0t2SkFwRTtPQUNBQztP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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRENDWTJ3RjtxQkFBTyxNQUFNQSxpQkFBdkI7Z0REREY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTt5QkNDVUMsdUJBQXVCQSxrQkFBbUJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUREcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpRENDQ0E7MENEREQ7c0RDQ0NDOzJDRERELFlDQ0NDOzBDREREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FDQ0NDOzRDREREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0RDQ0NDLDRDREREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lEQ0NDQzs2Q0RERDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ3FDQ0M7S0FHQUM7S0FHQUM7S0F1Q0FDO0tBR0FDO0tBR0FDO0tBR0FDO0tBR0FDO0tBYUFDO0tBcUVBQztLQUtBQztLQXNCQUM7S0FZQUM7eUNEdk5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5REMyTUNELFVBdEtBWDs7OytDRHJDRCxXQzJNQ1c7d0NEM01EOzt5REMyTUNBLFVBdEtBWDswQ0RyQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7O3lEQzJNQ1csVUF0S0FYOzs7K0NEckNELFdDMk1DVzt3Q0QzTUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09DcUNDWDtPQUdBQztPQUdBQztpQ0QzQ0Q7Ozs7OztPQ2tGQ0M7T0FHQUM7T0FHQUM7T0FHQUM7T0FHQUM7Ozs7T0FhQUM7Ozs7Ozs7Ozs7Ozs7T0FxRUFDO09BS0FDO09Bc0JBQztPQVlBQzs7Ozs7Ozs7Ozs7OztpQkR2TkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29DQ0VHOzs7cUNBRWdCO3FEQUhkQztvQ0FHYyxTQUVkQztzQ0FBTTs7aURBRUc7aURBREE7O2lEQUVEO2tEQUNHLHVEQUF3QjtvQ0FOckIsU0FlZEM7TUFBT0EsT0FBT0MsS0FBS0MsT0FBT0MsV0FBV0M7dUNBQ3BCOztvREFERUYsT0FBa0JFO3dDQUM3Qjs7K0NBRE1IO3dDQUNOO3dDQUNFO3lEQUYyQkcsRUFBWEQ7dUNBRWhCLFNBQ0pJOzs7OzRDQUtJOztxREFDQTtzQkFUSFA7MkNBS087O1dBRHVDUTtXQUFMQztXQUFMQztXQUFMQzs7NENBQ3hCOzZEQUR3QkEsSUFBS0QsSUFBS0Q7NENBQ2xDLEtBTFBUOzRDQU1POzZEQUROWTs0Q0FFRzt3REFIMENKLFdBQUxDO2lCQUV4Q0k7Ozt1Q0FKRTs2Q0FGSGI7d0NBRUcsS0FGSEE7c0NBV047K0RBVkNLO2VBQ0FDLHVDQVMwQztvQ0ExQjlCOztTQUhkUixVQUtBQyxJQWFBQztvQ0FmYzs7O2lCREpuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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T0FMSUM7aUNBS0o7cUJEL0ZIO2lDQytGRztxQkQvRkg7aUNDK0ZHOztrQ0FFSTtrREFIdUNJO2tDQUd2QztpQ0FERjtjQUxFSDtpQ0FJSjtrQ0FDRTtrQ0FFQTtrREFORUM7a0NBTUY7O29DQUd1Qjs7OztnREFHU3hCO3FDQUFTOztxQkFBVEE7Z0RBQWU7bUNBSHhCO3FCRHJHNUI7b0JDa0ZPRDtxQkFzQmVDO3FDQUFTOztxQkFBVEE7Z0RBQWM7MkNEeEdwQzttQ0N3R2E7a0JBdEJORDs7b0NBc0JNOzs7O21DQURSO29EQWpCRWEsYUFlQWlCLE9BTkFGO2tDQVFGO29DQUtFOztxQkExQkE1QjtxQkFHQVk7cUJBQ0FDOzhCQXVCT0EsR0FBS21CLElBQVdDLEVBQUViO2tEQUVyQixjQUFlYztvREFDWDs7O3FEQUNFOzs7a0NBRlNBLG9CQUZJRCxPQUFFYiw2QkFLZDtrREFIUDs7Ozs7Ozs7bURBSVM7b0VBTk5QLFFBQWdCb0IsRUFBRWI7a0RBTVosY0FDT2M7b0RBQ1o7a0NBRFlBLG9CQURaQywrQkFFdUM7a0RBRmxDOzJFQUVtQzttQkFmaERKLGtDQWdCUTtrQ0FmVjs7O2tDQUlGOztnREFhT0s7b0NBQ0g7O3NDQUMwQjtxRUFGdkJBO3FDQUVBO2lEQXJCS1A7b0NBcUJMOzBEQUFtRDtrQ0FmMUQ7Ozs7Ozs7O29DQVljOzs7Ozs7Ozs7O2lEQUc2QzsrQkE1QjNEO3VDQUR5Qkg7Z0NBQ3pCOztpQ0FBUzs7OzZEQTRCa0Q7OEJBOUJsRDs7OzhCQUNUOzs7OEJBRFMseUJBQ1Q7Ozs7OzhDRDdGSDs7Ozs7OztlQ0FBOzs7Ozs7Ozs4QkNrQlM7Ozs7K0NEbEJUIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZmZzZXRcbnZhciBjYW1sX2ludDY0X29mZnNldCA9IE1hdGgucG93KDIsIC0yNCk7XG5cbi8vUHJvdmlkZXM6IE1sSW50NjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBNbEludDY0IChsbyxtaSxoaSkge1xuICB0aGlzLmxvID0gbG8gJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9IG1pICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSBoaSAmIDB4ZmZmZjtcbn1cbk1sSW50NjQucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gXCJfalwiXG5NbEludDY0LnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyx0aGlzLm1pLHRoaXMuaGkpO1xufVxuXG5NbEludDY0LnByb3RvdHlwZS51Y29tcGFyZSA9IGZ1bmN0aW9uICh4KSB7XG4gIGlmICh0aGlzLmhpID4geC5oaSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmhpIDwgeC5oaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+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+PSBhZGQgWyBcImJlZXBcIjsgXCJiZWVwXCIgXSBcIm1vdGhlcmZ1Y2tlclwiXG5cbiAgbGV0IHRlc3RfcHVsbCAoKSA6IHQgTHd0LnQgPVxuICAgICgqIHRlc3RfcG9wdWxhdGUgKCkqKVxuICAgIFMuUmVwby52IChDb25maWcuaW5pdCBcIlwiKSA+Pj0gZnVuIHJlcG8gLT5cbiAgICBTLm9mX2JyYW5jaCByZXBvIFwiY3VycmVudFwiID4+PSBmdW4gdCAtPlxuICAgIEdpdF9jb25zb2xlX2h0dHAuY29ubmVjdCBNaW1pYy5lbXB0eSA+Pj0gZnVuIGN0eCAtPlxuICAgIGxldCB1cHN0cmVhbSA9XG4gICAgICBTLnJlbW90ZSB+Y3R4IFwiaHR0cHM6Ly9sb2NhbGhvc3Q6ODA4MC9jb25zb2xlL3Jvb3RzdG9yZS5naXRcIlxuICAgIGluXG4gICAgU3luYy5mZXRjaF9leG4gdCB1cHN0cmVhbSA+Pj0gZnVuIF8gLT4gUy50cmVlIHRcbmVuZFxuXG5tb2R1bGUgSW5wdXQgPSBzdHJ1Y3RcbiAgdHlwZSBidXR0b24gPVxuICAgIFsgYExlZnQgfCBgTWlkZGxlIHwgYFJpZ2h0IHwgYFNjcm9sbCBvZiBbIGBVcCB8IGBEb3duIF0gXVxuXG4gIHR5cGUgc3BlY2lhbCA9XG4gICAgWyBgRW50ZXJcbiAgICB8IGBFc2NhcGVcbiAgICB8IGBUYWJcbiAgICB8IGBBcnJvdyBvZiBbIGBVcCB8IGBEb3duIHwgYExlZnQgfCBgUmlnaHQgXVxuICAgIHwgYEZ1bmN0aW9uIG9mIGludFxuICAgIHwgYFBhZ2Ugb2YgWyBgVXAgfCBgRG93biBdXG4gICAgfCBgSG9tZVxuICAgIHwgYEVuZFxuICAgIHwgYEluc2VydFxuICAgIHwgYERlbGV0ZVxuICAgIHwgYEJhY2tzcGFjZVxuICAgIHwgYFVua25vd24gb2Ygc3RyaW5nIF1cblxuICAoKiBUeXBlIG9mIGtleSBjb2RlLiAqKVxuICB0eXBlIGNvZGUgPVxuICAgIFsgYFVjaGFyIG9mIFVjaGFyLnQgKCogQSB1bmljb2RlIGNoYXJhY3Rlci4gKikgfCBzcGVjaWFsIF1cblxuICAoKiBzdG9sZW4gZnJvbSBsYW1iZGEtdGVybS9zcmMvbFRlcm1fe2VkaXQsa2V5fS5tbHssaX0gKilcbiAgbGV0IHN0cmluZ19vZl9jb2RlID0gZnVuY3Rpb25cbiAgICB8IGBVY2hhciBjaCAtPlxuICAgICAgICBpZiBVY2hhci5pc19jaGFyIGNoIHRoZW4gRi5zdHIgXCJDaGFyICclYydcIiAoVWNoYXIudG9fY2hhciBjaClcbiAgICAgICAgZWxzZSBGLnN0ciBcIkNoYXIgMHglMDJ4XCIgKFVjaGFyLnRvX2ludCBjaClcbiAgICB8IGBFbnRlciAtPiBcIkVudGVyXCJcbiAgICB8IGBFc2NhcGUgLT4gXCJFc2NhcGVcIlxuICAgIHwgYFRhYiAtPiBcIlRhYlwiXG4gICAgfCBgQXJyb3cgYFVwIC0+IFwiVXBcIlxuICAgIHwgYEFycm93IGBEb3duIC0+IFwiRG93blwiXG4gICAgfCBgQXJyb3cgYExlZnQgLT4gXCJMZWZ0XCJcbiAgICB8IGBBcnJvdyBgUmlnaHQgLT4gXCJSaWdodFwiXG4gICAgfCBgRnVuY3Rpb24gaSAtPiBGLnN0ciBcIkYlZFwiIGlcbiAgICB8IGBQYWdlIGBVcCAtPiBcIlBhZ2UgVXBcIlxuICAgIHwgYFBhZ2UgYERvd24gLT4gXCJQYWdlIERvd25cIlxuICAgIHwgYEhvbWUgLT4gXCJIb21lXCJcbiAgICB8IGBFbmQgLT4gXCJFbmRcIlxuICAgIHwgYEluc2VydCAtPiBcIkluc2VydFwiXG4gICAgfCBgRGVsZXRlIC0+IFwiRGVsZXRlXCJcbiAgICB8IGBCYWNrc3BhY2UgLT4gXCJCYWNrc3BhY2VcIlxuICAgIHwgYFVua25vd24gcyAtPiBTdHJpbmcuY29uY2F0IFwiVW5rbm93biBcIiBbIFwiXFxcIlwiOyBzOyBcIlxcXCJcIiBdXG4gICAgfCBfIC0+IFwiQ29kZSBVbmtub3duIVwiXG5cbiAgbGV0IHBwX2NvZGUgcHBmIHYgPSBGLnBmIHBwZiBcIiVzXCIgKHN0cmluZ19vZl9jb2RlIHYpXG5cbiAgdHlwZSBtb2RzID0gWyBgU3VwZXIgfCBgTWV0YSB8IGBDdHJsIHwgYFNoaWZ0IF0gbGlzdFxuXG4gIGxldCBwcF9tb2RzID1cbiAgICBGLihcbiAgICAgIGxpc3QgfnNlcDpGLnNwIChmdW4gcHBmIC0+IGZ1bmN0aW9uXG4gICAgICAgIHwgYFN1cGVyIC0+IHBmIHBwZiBcImBTdXBlclwiXG4gICAgICAgIHwgYE1ldGEgLT4gcGYgcHBmIFwiYE1ldGFcIlxuICAgICAgICB8IGBDdHJsIC0+IHBmIHBwZiBcImBDdHJsXCJcbiAgICAgICAgfCBgU2hpZnQgLT4gcGYgcHBmIFwiYFNoaWZ0XCIpKVxuXG4gIHR5cGUgbW91c2UgPVxuICAgIFsgYFByZXNzIG9mIGJ1dHRvbiB8IGBEcmFnIHwgYFJlbGVhc2UgXSAqIChmbG9hdCAqIGZsb2F0KSAqIG1vZHNcblxuICB0eXBlIHBhc3RlID0gWyBgU3RhcnQgfCBgRW5kIF1cbiAgdHlwZSBrZXlhY3Rpb24gPSBbIGBQcmVzcyB8IGBSZWxlYXNlIHwgYFJlcGVhdCBdXG5lbmRcblxubW9kdWxlIEV2ZW50X2pzID0gc3RydWN0XG4gIG9wZW4gSnNfb2Zfb2NhbWxcblxuICBsZXQgZXZ0X29mX2pza2V5IChldnQgOiBEb21faHRtbC5rZXlib2FyZEV2ZW50IEpzLnQpID1cbiAgICAoIChtYXRjaCBKcy5PcHRkZWYudG9fb3B0aW9uIGV2dCMjLmtleSB3aXRoXG4gICAgICB8IFNvbWUgcyAtPiAoXG4gICAgICAgICAgbWF0Y2ggSnMudG9fc3RyaW5nIHMgd2l0aFxuICAgICAgICAgIHwgXCJFbnRlclwiIC0+IGBFbnRlclxuICAgICAgICAgIHwgXCJFc2NhcGVcIiAtPiBgRXNjYXBlXG4gICAgICAgICAgfCBcIlRhYlwiIC0+IGBUYWJcbiAgICAgICAgICB8IFwiQXJyb3dVcFwiIC0+IGBBcnJvdyBgVXBcbiAgICAgICAgICB8IFwiQXJyb3dEb3duXCIgLT4gYEFycm93IGBEb3duXG4gICAgICAgICAgfCBcIkFycm93TGVmdFwiIC0+IGBBcnJvdyBgTGVmdFxuICAgICAgICAgIHwgXCJBcnJvd1JpZ2h0XCIgLT4gYEFycm93IGBSaWdodFxuICAgICAgICAgIHwgXCJQYWdlVXBcIiAtPiBgUGFnZSBgVXBcbiAgICAgICAgICB8IFwiUGFnZURvd25cIiAtPiBgUGFnZSBgRG93blxuICAgICAgICAgIHwgXCJIb21lXCIgLT4gYEhvbWVcbiAgICAgICAgICB8IFwiRW5kXCIgLT4gYEVuZFxuICAgICAgICAgIHwgXCJJbnNlcnRcIiAtPiBgSW5zZXJ0XG4gICAgICAgICAgfCBcIkRlbGV0ZVwiIC0+IGBEZWxldGVcbiAgICAgICAgICB8IFwiQmFja3NwYWNlXCIgLT4gYEJhY2tzcGFjZVxuICAgICAgICAgIHwgcyAtPiAoXG4gICAgICAgICAgICAgIG1hdGNoIERvbV9odG1sLktleWJvYXJkX2tleS5vZl9ldmVudCBldnQgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgcycgLT4gYFVjaGFyIHMnXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBgVW5rbm93biBzKSlcbiAgICAgIHwgTm9uZSAtPiBgVW5rbm93biBcImtleXByZXNzIC5rZXkgaXMgTm9uZT9cIiksXG4gICAgICAoaWYgSnMudG9fYm9vbCBldnQjIy5hbHRLZXkgdGhlbiBbIGBNZXRhIF0gZWxzZSBbXSlcbiAgICAgIEAgKGlmIEpzLnRvX2Jvb2wgZXZ0IyMuc2hpZnRLZXkgdGhlbiBbIGBTaGlmdCBdIGVsc2UgW10pXG4gICAgICBAIChpZiBKcy50b19ib29sIGV2dCMjLmN0cmxLZXkgdGhlbiBbIGBDdHJsIF0gZWxzZSBbXSlcbiAgICAgIEAgaWYgSnMudG9fYm9vbCBldnQjIy5tZXRhS2V5IHRoZW4gWyBgU3VwZXIgXSBlbHNlIFtdIClcbmVuZFxuXG5vcGVuIEdnXG5cbm1vZHVsZSBOVkcgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBHcmFwaHZfd2ViZ2xcblxuICBtb2R1bGUgQ29sb3IgPSBzdHJ1Y3RcbiAgICBpbmNsdWRlIEdyYXBodl93ZWJnbC5Db2xvclxuXG4gICAgbGV0IG5vbmUgPSBDb2xvci50cmFuc3BhcmVudFxuICAgIGxldCByZ2JmID0gQ29sb3IucmdiZlxuICAgIGxldCBncmF5IGEgPSByZ2JmIH5yOmEgfmc6YSB+YjphXG4gICAgbGV0IGxpZ2h0ID0gZ3JheSAwLjhcbiAgICBsZXQgZGFyayA9IGdyYXkgMC4yXG5cbiAgICBsZXQgYmxhY2sgPSBncmF5IDAuXG4gICAgYW5kIHJlZCA9IHJnYmYgfnI6MS4gfmc6MC4gfmI6MC5cbiAgICBhbmQgZ3JlZW4gPSByZ2JmIH5yOjAuIH5nOjEuIH5iOjAuXG4gICAgYW5kIHllbGxvdyA9IHJnYmYgfnI6MS4gfmc6MS4gfmI6MC5cbiAgICBhbmQgYmx1ZSA9IHJnYmYgfnI6MC4gfmc6MC4gfmI6MS5cbiAgICBhbmQgbWFnZW50YSA9IHJnYmYgfnI6MS4gfmc6MC4gfmI6MS5cbiAgICBhbmQgY3lhbiA9IHJnYmYgfnI6MC4gfmc6MS4gfmI6MS5cbiAgICBhbmQgd2hpdGUgPSByZ2JmIH5yOjEuIH5nOjEuIH5iOjEuXG4gICAgYW5kIGxpZ2h0YmxhY2sgPSBncmF5IDAuNVxuICAgIGFuZCBsaWdodHJlZCA9IHJnYmYgfnI6MS4wIH5nOjAuNSB+YjowLjVcbiAgICBhbmQgbGlnaHRncmVlbiA9IHJnYmYgfnI6MC41IH5nOjEuMCB+YjowLjVcbiAgICBhbmQgbGlnaHR5ZWxsb3cgPSByZ2JmIH5yOjEuMCB+ZzoxLjAgfmI6MC41XG4gICAgYW5kIGxpZ2h0Ymx1ZSA9IHJnYmYgfnI6MC41IH5nOjAuNSB+YjoxLjBcbiAgICBhbmQgbGlnaHRtYWdlbnRhID0gcmdiZiB+cjoxLjAgfmc6MC41IH5iOjEuMFxuICAgIGFuZCBsaWdodGN5YW4gPSByZ2JmIH5yOjAuNSB+ZzoxLjAgfmI6MS4wXG4gICAgYW5kIGxpZ2h0d2hpdGUgPSByZ2JmIH5yOjEuMCB+ZzoxLjAgfmI6MS4wXG5cbiAgICBsZXQgKCA9ICkgYSBiID0gYS5yID0gYi5yICYmIGEuZyA9IGIuZyAmJiBhLmIgPSBiLmIgJiYgYS5hID0gYi5hXG5cbiAgICBsZXQgKCArKyApIGEgYiA9XG4gICAgICB7XG4gICAgICAgIHIgPSBGbG9hdC5jbGFtcCB+bWluOjAuIH5tYXg6MS4gKGEuciArLiBiLnIpO1xuICAgICAgICBnID0gRmxvYXQuY2xhbXAgfm1pbjowLiB+bWF4OjEuIChhLmcgKy4gYi5nKTtcbiAgICAgICAgYiA9IEZsb2F0LmNsYW1wIH5taW46MC4gfm1heDoxLiAoYS5iICsuIGIuYik7XG4gICAgICAgIGEgPSBGbG9hdC5jbGFtcCB+bWluOjAuIH5tYXg6MS4gKGEuYSArLiBiLmEpO1xuICAgICAgfVxuXG4gICAgbGV0IHJlcGxhY2UgfnByZXYgfm5leHQgPSBpZiBuZXh0ID0gbm9uZSB0aGVuIHByZXYgZWxzZSBuZXh0XG5cbiAgICBsZXQgcHAgcHBmIHQgOiB1bml0ID1cbiAgICAgIGlmIHQgIT0gbm9uZSB0aGVuXG4gICAgICAgIEYuKFxuICAgICAgICAgIGZtdCBcIiVhXCIgcHBmXG4gICAgICAgICAgICAobGlzdCAoZm10IFwiJTAyWFwiKSlcbiAgICAgICAgICAgIChMaXN0Lm1hcFxuICAgICAgICAgICAgICAgKGZ1biBlIC0+IGludF9vZl9mbG9hdCAoZSAqLiAyNTUuKSlcbiAgICAgICAgICAgICAgIFsgdC5yOyB0Lmc7IHQuYjsgdC5hIF0pKVxuICAgICAgZWxzZSBGLmZtdCBcIl9cIiBwcGZcbiAgZW5kXG5lbmRcblxubW9kdWxlIENvbG9yID0gTlZHLkNvbG9yXG5cbigqIGZyb20gbm90dHkubWwgKilcbmxldCBidHcgKHggOiBpbnQpIGEgYiA9IGEgPD0geCAmJiB4IDw9IGJcblxubW9kdWxlIEJ1ZmZlciA9IHN0cnVjdFxuICBpbmNsdWRlIFN0ZGxpYi5CdWZmZXJcblxuICBsZXQgYnVmID0gY3JlYXRlIDEwMjRcblxuICBsZXQgbWtzdHJpbmcgZiA9XG4gICAgZiBidWY7XG4gICAgbGV0IHJlcyA9IGNvbnRlbnRzIGJ1ZiBpblxuICAgIHJlc2V0IGJ1ZjtcbiAgICByZXNcblxuICBsZXQgYWRkX2RlY2ltYWwgYiA9IGZ1bmN0aW9uXG4gICAgfCB4IHdoZW4gYnR3IHggMCA5OTkgLT5cbiAgICAgICAgbGV0IGQxID0geCAvIDEwMCBhbmQgZDIgPSB4IG1vZCAxMDAgLyAxMCBhbmQgZDMgPSB4IG1vZCAxMCBpblxuICAgICAgICBpZiBkMSA+IDAgdGhlbiAweDMwICsgZDEgfD4gQ2hhci51bnNhZmVfY2hyIHw+IGFkZF9jaGFyIGI7XG4gICAgICAgIGlmIGQxICsgZDIgPiAwIHRoZW4gMHgzMCArIGQyIHw+IENoYXIudW5zYWZlX2NociB8PiBhZGRfY2hhciBiO1xuICAgICAgICAweDMwICsgZDMgfD4gQ2hhci51bnNhZmVfY2hyIHw+IGFkZF9jaGFyIGJcbiAgICB8IHggLT4gc3RyaW5nX29mX2ludCB4IHw+IGFkZF9zdHJpbmcgYlxuXG4gIGxldCBhZGRfY2hhcnMgYiBjIG4gPVxuICAgIGZvciBfID0gMSB0byBuIGRvXG4gICAgICBhZGRfY2hhciBiIGNcbiAgICBkb25lXG5lbmRcblxubW9kdWxlIFN0cmluZyA9IHN0cnVjdFxuICBpbmNsdWRlIFN0cmluZ1xuXG4gIGxldCBzdWIwY3AgcyBpIGxlbiA9XG4gICAgaWYgaSA+IDAgfHwgbGVuIDwgbGVuZ3RoIHMgdGhlbiBzdWIgcyBpIGxlbiBlbHNlIHNcblxuICBsZXQgb2ZfY2hhcnNfcmV2ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IFwiXCJcbiAgICB8IFsgYyBdIC0+IFN0cmluZy5tYWtlIDEgY1xuICAgIHwgY3MgLT5cbiAgICAgICAgbGV0IG4gPSBMaXN0Lmxlbmd0aCBjcyBpblxuICAgICAgICBsZXQgcmVjIGdvIGJzIGkgPVxuICAgICAgICAgIEJ5dGVzLihcbiAgICAgICAgICAgIGZ1bmN0aW9uXG4gICAgICAgICAgICB8IFtdIC0+IHVuc2FmZV90b19zdHJpbmcgYnNcbiAgICAgICAgICAgIHwgeCA6OiB4cyAtPlxuICAgICAgICAgICAgICAgIHVuc2FmZV9zZXQgYnMgaSB4O1xuICAgICAgICAgICAgICAgIGdvIGJzIChwcmVkIGkpIHhzKVxuICAgICAgICBpblxuICAgICAgICBnbyAoQnl0ZXMuY3JlYXRlIG4pIChuIC0gMSkgY3NcbmVuZFxuXG5tb2R1bGUgVGV4dCA9IHN0cnVjdFxuICBpbmNsdWRlIE5WRy5UZXh0XG5cbiAgdHlwZSB0ID0gU3RyaW5nIG9mIHN0cmluZyAoKiB8IFVjaGFycyBvZiBVY2hhci50IGxpc3QqKVxuXG4gIGxldCBlbXB0eSA9IFN0cmluZyBcIlwiXG5cbiAgbGV0IGVxdWFsID0gZnVuY3Rpb25cbiAgICB8IFN0cmluZyBhIC0+ICggZnVuY3Rpb24gU3RyaW5nIGIgLT4gU3RyaW5nLmVxdWFsIGEgYilcblxuICBsZXQgb2Zfc3RyaW5nIHMgPSBTdHJpbmcgc1xuICBsZXQgdG9fc3RyaW5nID0gZnVuY3Rpb24gU3RyaW5nIHMgLT4gc1xuXG4gIGxldCBvZl91Y2hhcnMgdWNzID1cbiAgICBvZl9zdHJpbmcgQEAgQnVmZmVyLm1rc3RyaW5nXG4gICAgQEAgZnVuIGJ1ZiAtPiBBcnJheS5pdGVyIChCdWZmZXIuYWRkX3V0Zl84X3VjaGFyIGJ1ZikgdWNzXG5cbiAgbGV0IHJlcGxpY2F0ZWMgdyBjID0gU3RyaW5nIChTdHJpbmcubWFrZSAoaW50X29mX2Zsb2F0IHcpIGMpXG5cbiAgbGV0IHBwIHBwZiA6IHQgLT4gdW5pdCA9IGZ1bmN0aW9uXG4gICAgfCBTdHJpbmcgcyAtPiBGLihmbXQgXCJcXFwiJXNcXFwiXCIgcHBmIHMpXG5lbmRcblxubW9kdWxlIFN0eWxlID0gc3RydWN0XG4gIG1vZHVsZSBGb250ID0gc3RydWN0XG4gICAgdHlwZSB0ID0ge1xuICAgICAgc2l6ZSA6IGZsb2F0IG9wdGlvbjtcbiAgICAgIGZvbnQgOiBbIGBTYW5zIHwgYFNlcmlmIHwgYE1vbm8gfCBgTm9uZSBdO1xuICAgICAgd2VpZ2h0IDogWyBgQm9sZCB8IGBSZWd1bGFyIHwgYExpZ2h0IHwgYE5vbmUgXTtcbiAgICAgIGl0YWxpYyA6IFsgYEl0YWxpYyB8IGBOb25lIF07XG4gICAgICB1bmRlcmxpbmUgOiBbIGBVbmRlcmxpbmUgfCBgTm9uZSBdO1xuICAgIH1cblxuICAgIGxldCBwcCBwcGYgPVxuICAgICAgRi4oXG4gICAgICAgIGZtdCBcIiVhXCIgcHBmXG4gICAgICAgICAgKHJlY29yZCBbIGZpZWxkIFwic2l6ZVwiIChmdW4gYSAtPiBhLnNpemUpIChvcHRpb24gZmxvYXQpIF0pKVxuXG4gICAgbGV0IGVtcHR5ID1cbiAgICAgIHtcbiAgICAgICAgc2l6ZSA9IE5vbmU7XG4gICAgICAgIGZvbnQgPSBgTm9uZTtcbiAgICAgICAgd2VpZ2h0ID0gYE5vbmU7XG4gICAgICAgIGl0YWxpYyA9IGBOb25lO1xuICAgICAgICB1bmRlcmxpbmUgPSBgTm9uZTtcbiAgICAgIH1cblxuICAgIGxldCB1bmRlcmxpbmUgPSB7IGVtcHR5IHdpdGggdW5kZXJsaW5lID0gYFVuZGVybGluZSB9XG4gICAgbGV0IHNpemUgeyBzaXplOyBfIH0gPSBtYXRjaCBzaXplIHdpdGggTm9uZSAtPiAyMC4gfCBTb21lIHMgLT4gc1xuXG4gICAgbGV0IG1lcmdlIGEgYiA9XG4gICAgICB7XG4gICAgICAgIHNpemUgPVxuICAgICAgICAgIChtYXRjaCAoYS5zaXplLCBiLnNpemUpIHdpdGhcbiAgICAgICAgICB8IE5vbmUsIE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBzLCBOb25lIHwgTm9uZSwgU29tZSBzIC0+IFNvbWUgc1xuICAgICAgICAgIHwgU29tZSBzMSwgU29tZSBzMiAtPiBTb21lIChGbG9hdC5tYXhfbnVtIHMxIHMyKSk7XG4gICAgICAgIGZvbnQgPVxuICAgICAgICAgIChtYXRjaCAoYS5mb250LCBiLmZvbnQpIHdpdGhcbiAgICAgICAgICB8IGBTYW5zLCBfIHwgXywgYFNhbnMgLT4gYFNhbnNcbiAgICAgICAgICB8IGBTZXJpZiwgKGBTZXJpZiB8IGBNb25vIHwgYE5vbmUpIHwgKGBNb25vIHwgYE5vbmUpLCBgU2VyaWZcbiAgICAgICAgICAgIC0+XG4gICAgICAgICAgICAgIGBTZXJpZlxuICAgICAgICAgIHwgYE1vbm8sIChgTW9ubyB8IGBOb25lKSB8IGBOb25lLCBgTW9ubyAtPiBgTW9ub1xuICAgICAgICAgIHwgYE5vbmUsIGBOb25lIC0+IGBOb25lKTtcbiAgICAgICAgd2VpZ2h0ID1cbiAgICAgICAgICAobWF0Y2ggKGEud2VpZ2h0LCBiLndlaWdodCkgd2l0aFxuICAgICAgICAgIHwgYEJvbGQsIF8gfCBfLCBgQm9sZCAtPiBgQm9sZFxuICAgICAgICAgIHwgYFJlZ3VsYXIsIChgUmVndWxhciB8IGBMaWdodCB8IGBOb25lKVxuICAgICAgICAgIHwgKGBMaWdodCB8IGBOb25lKSwgYFJlZ3VsYXIgLT5cbiAgICAgICAgICAgICAgYFJlZ3VsYXJcbiAgICAgICAgICB8IGBMaWdodCwgKGBMaWdodCB8IGBOb25lKSB8IGBOb25lLCBgTGlnaHQgLT4gYExpZ2h0XG4gICAgICAgICAgfCBgTm9uZSwgYE5vbmUgLT4gYE5vbmUpO1xuICAgICAgICBpdGFsaWMgPVxuICAgICAgICAgIChtYXRjaCAoYS5pdGFsaWMsIGIuaXRhbGljKSB3aXRoXG4gICAgICAgICAgfCBgSXRhbGljLCBfIHwgXywgYEl0YWxpYyAtPiBgSXRhbGljXG4gICAgICAgICAgfCBfIC0+IGBOb25lKTtcbiAgICAgICAgdW5kZXJsaW5lID1cbiAgICAgICAgICAobWF0Y2ggKGEudW5kZXJsaW5lLCBiLnVuZGVybGluZSkgd2l0aFxuICAgICAgICAgIHwgYFVuZGVybGluZSwgXyB8IF8sIGBVbmRlcmxpbmUgLT4gYFVuZGVybGluZVxuICAgICAgICAgIHwgXyAtPiBgTm9uZSk7XG4gICAgICB9XG5cbiAgICBsZXQgc2V0IHZnIHQgPVxuICAgICAgKG1hdGNoIHQuc2l6ZSB3aXRoXG4gICAgICB8IFNvbWUgc2l6ZSAtPiBUZXh0LnNldF9zaXplIHZnIH5zaXplXG4gICAgICB8IE5vbmUgLT4gKCkpO1xuICAgICAgbWF0Y2ggdC5mb250IHdpdGhcbiAgICAgIHwgYFNhbnMgLT4gVGV4dC5zZXRfZm9udF9mYWNlIHZnIH5uYW1lOlwic2Fuc1wiXG4gICAgICB8IF8gLT4gKClcblxuICAgIGxldCByZXBsYWNlIH5wcmV2IH5uZXh0ID0gbWVyZ2UgcHJldiBuZXh0XG4gIGVuZFxuXG4gIHR5cGUgdCA9IHsgZmcgOiBDb2xvci50OyBiZyA6IENvbG9yLnQ7IGZvbnQgOiBGb250LnQgfVxuICB0eXBlIGF0dHIgPSB0XG5cbiAgbGV0IHBwIHBwZiBhID1cbiAgICBGLihmbXQgXCJAWzxoPiVhLyVhQF1cIiBwcGYgQ29sb3IucHAgYS5mZyBDb2xvci5wcCBhLmJnKVxuXG4gIGxldCBlcXVhbCA9ICggPT0gKVxuXG4gIGxldCBlbXB0eSA9XG4gICAge1xuICAgICAgZmcgPSBDb2xvci50cmFuc3BhcmVudDtcbiAgICAgIGJnID0gQ29sb3IudHJhbnNwYXJlbnQ7XG4gICAgICBmb250ID0gRm9udC5lbXB0eTtcbiAgICB9XG5cbiAgbGV0IGRhcmsgPSB7IGVtcHR5IHdpdGggZmcgPSBDb2xvci5saWdodDsgYmcgPSBDb2xvci5kYXJrIH1cblxuICBsZXQgKCArKyApIGExIGEyID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLihhMS5mZyArKyBhMi5mZyk7XG4gICAgICBiZyA9IENvbG9yLihhMS5iZyArKyBhMi5iZyk7XG4gICAgICBmb250ID0gRm9udC5tZXJnZSBhMS5mb250IGEyLmZvbnQ7XG4gICAgfVxuXG4gIGxldCByZXBsYWNlIH5wcmV2IH5uZXh0ID1cbiAgICB7XG4gICAgICBmZyA9IENvbG9yLnJlcGxhY2UgfnByZXY6cHJldi5mZyB+bmV4dDpuZXh0LmZnO1xuICAgICAgYmcgPSBDb2xvci5yZXBsYWNlIH5wcmV2OnByZXYuYmcgfm5leHQ6bmV4dC5iZztcbiAgICAgIGZvbnQgPSBGb250LnJlcGxhY2UgfnByZXY6cHJldi5mb250IH5uZXh0Om5leHQuZm9udDtcbiAgICB9XG5cbiAgbGV0IGZnID8odCA9IGVtcHR5KSBjID0geyB0IHdpdGggZmcgPSBjIH1cbiAgbGV0IGJnID8odCA9IGVtcHR5KSBjID0geyB0IHdpdGggYmcgPSBjIH1cbiAgbGV0IGZvbnQgPyh0ID0gZW1wdHkpIGMgPSB7IHQgd2l0aCBmb250ID0gYyB9XG5cbiAgbGV0IG1lcmdlIGEgYiA9XG4gICAge1xuICAgICAgZmcgPSBDb2xvci5sZXJwIGEuZmcgYi5mZyB+YTowLjU7XG4gICAgICBiZyA9IENvbG9yLmxlcnAgYS5iZyBiLmJnIH5hOjAuNTtcbiAgICAgIGZvbnQgPSBGb250Lm1lcmdlIGEuZm9udCBiLmZvbnQ7XG4gICAgfVxuXG4gIGxldCBzZXQgdmcgcyA9XG4gICAgRi5lcHIgXCJTdHlsZS5zZXQgQC5cIjtcbiAgICBOVkcuc2V0X2ZpbGxfY29sb3IgdmcgfmNvbG9yOnMuYmc7XG4gICAgTlZHLnNldF9zdHJva2VfY29sb3IgdmcgfmNvbG9yOnMuZmc7XG4gICAgRm9udC5zZXQgdmcgcy5mb250XG5cbiAgbGV0IG1lbnVfbWFpbiA9IGJnIENvbG9yLmdyZWVuICsrIGZnIENvbG9yLmJsYWNrXG4gIGxldCBtZW51X3N1YiA9IGJnIENvbG9yLmxpZ2h0Z3JlZW4gKysgZmcgQ29sb3IuYmxhY2tcblxuICBsZXQgY2xpY2thYmxlID1cbiAgICAoYmcgQEAgQ29sb3IucmdiZiB+cjowLjIgfmc6MC4yIH5iOjAuNSkgKysgKGZnIEBAIENvbG9yLmxpZ2h0KVxuXG4gIGxldCBjdXJzb3IgPSAoZmcgQEAgQ29sb3IuZGFyaykgKysgKGJnIEBAIENvbG9yLnllbGxvdylcbmVuZFxuXG5tb2R1bGUgUGFkID0gc3RydWN0XG4gIG9wZW4gR2dcblxuICB0eXBlIHQgPSB7IHQgOiBzaXplMTsgYiA6IHNpemUxOyBsIDogc2l6ZTE7IHIgOiBzaXplMSB9XG5cbiAgbGV0IGVtcHR5ID1cbiAgICB7IHQgPSBTaXplMS56ZXJvOyBiID0gU2l6ZTEuemVybzsgbCA9IFNpemUxLnplcm87IHIgPSBTaXplMS56ZXJvIH1cblxuICBsZXQgYWxsIHYgPSB7IHQgPSB2OyBiID0gdjsgbCA9IHY7IHIgPSB2IH1cbmVuZFxuXG5tb2R1bGUgQSA9IFN0eWxlXG5cbm1vZHVsZSBJID0gc3RydWN0XG4gIG9wZW4gR2dcblxuICB0eXBlIGRpbSA9IHAyXG5cbiAgdHlwZSB0ID1cbiAgICB8IEVtcHR5XG4gICAgfCBTZWdtZW50IG9mIFRleHQudCAoKiBib3gyIGlzICtjcm9wLy1wYWQgb2YgZHJhd24gVGV4dC50ICopXG4gICAgfCBBdHRyIG9mICh0ICogQS50KVxuICAgIHwgSGNvbXBvc2Ugb2YgKHQgKiB0KVxuICAgIHwgVmNvbXBvc2Ugb2YgKHQgKiB0KVxuICAgIHwgWmNvbXBvc2Ugb2YgKHQgKiB0KVxuICAgIHwgSGNyb3Agb2YgKHQgKiBmbG9hdCAqIGZsb2F0KVxuICAgIHwgVmNyb3Agb2YgKHQgKiBmbG9hdCAqIGZsb2F0KVxuICAgIHwgVm9pZCBvZiBkaW1cblxuICBsZXQgcDJfbWF4IHAxIHAyIDogcDIgPVxuICAgIFYyLih2IChGbG9hdC5tYXggKHggcDEpICh4IHAyKSkgKEZsb2F0Lm1heCAoeSBwMSkgKHkgcDIpKSlcbiAgICBbQEBpbmxpbmVdXG5cbiAgbGV0IGJvdW5kc19zZWdtZW50IHZnIHAgOiBUZXh0LnQgLT4gTlZHLlRleHQuYm91bmRzID0gZnVuY3Rpb25cbiAgICB8IFN0cmluZyBzIC0+XG4gICAgICAgIGxldCBvcGVuIE5WRy5UZXh0IGluXG4gICAgICAgIGxldCB7IGFzY2VuZGVyOyBfIH0gPSBOVkcuVGV4dC5tZXRyaWNzIHZnIGluXG4gICAgICAgIGJvdW5kcyB2ZyB+eDooVjIueCBwKSB+eTooVjIueSBwICsuIGFzY2VuZGVyKSBzXG5cbiAgbGV0IHJlYyBzaXplIHZnIHAgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT4gVjIuemVyb1xuICAgIHwgU2VnbWVudCBzIC0+XG4gICAgICAgIGxldCBOVkcuVGV4dC57IGJveCA9IHsgeW1heDsgeW1pbjsgXyB9OyBhZHZhbmNlIH0gPVxuICAgICAgICAgIGJvdW5kc19zZWdtZW50IHZnIHAgc1xuICAgICAgICBpblxuICAgICAgICBWMi52IGFkdmFuY2UgKHltYXggLS4geW1pbilcbiAgICB8IEF0dHIgKHQsIF9hKSAtPiBzaXplIHZnIHAgdFxuICAgIHwgSGNvbXBvc2UgKHQxLCB0MikgLT5cbiAgICAgICAgbGV0IHAxID0gc2l6ZSB2ZyBwIHQxIGluXG4gICAgICAgIGxldCBwMiA9IHNpemUgdmcgVjIuKHAgKyB2ICh4IHAxKSAwLikgdDIgaW5cbiAgICAgICAgVjIuKHYgKHggcDEgKy4geCBwMikgKEZsb2F0Lm1heCAoeSBwMSkgKHkgcDIpKSlcbiAgICB8IFZjb21wb3NlICh0MSwgdDIpIC0+XG4gICAgICAgIGxldCBwMSA9IHNpemUgdmcgcCB0MSBpblxuICAgICAgICBsZXQgcDIgPSBzaXplIHZnIFYyLihwICsgdiAwLiAoeSBwMSkpIHQyIGluXG4gICAgICAgIFYyLih2IChGbG9hdC5tYXggKHggcDEpICh4IHAyKSkgKHkgcDEgKy4geSBwMikpXG4gICAgfCBaY29tcG9zZSAodDEsIHQyKSAtPiBwMl9tYXggKHNpemUgdmcgcCB0MSkgKHNpemUgdmcgcCB0MilcbiAgICB8IEhjcm9wICh0LCBsZWZ0LCByaWdodCkgLT5cbiAgICAgICAgKCogcG9zaXRpdmUgdmFsdWVzIGFyZSBjcm9wLCBuZWdhdGl2ZSBpcyBwYWQgKilcbiAgICAgICAgVjIuKHNpemUgdmcgKHAgLSB2IGxlZnQgMC4pIHQgLSB2IHJpZ2h0IDAuKVxuICAgIHwgVmNyb3AgKHQsIHRvcCwgYm90dG9tKSAtPlxuICAgICAgICBWMi4oc2l6ZSB2ZyAocCAtIHYgMC4gdG9wKSB0IC0gdiAwLiBib3R0b20pXG4gICAgfCBWb2lkIHAnIC0+IFYyLihwICsgcCcpXG5cbiAgbGV0IGVtcHR5ID0gRW1wdHlcbiAgbGV0IHZvaWQgdyBoID0gVm9pZCAoUDIudiB3IGgpXG5cbiAgbGV0IGF0dHIgYSA9IGZ1bmN0aW9uXG4gICAgfCBBdHRyICh0LCBhMCkgLT4gQXR0ciAodCwgQS4ocmVwbGFjZSB+cHJldjphMCB+bmV4dDphKSlcbiAgICB8IHQgLT4gQXR0ciAodCwgYSlcblxuICBsZXQgKCA8fD4gKSB0MSB0MiA9XG4gICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgIHwgXywgRW1wdHkgLT4gdDFcbiAgICB8IEVtcHR5LCBfIC0+IHQyXG4gICAgfCBfIC0+IEhjb21wb3NlICh0MSwgdDIpXG5cbiAgbGV0ICggPC0+ICkgdDEgdDIgPVxuICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICB8IF8sIEVtcHR5IC0+IHQxXG4gICAgfCBFbXB0eSwgXyAtPiB0MlxuICAgIHwgXyAtPiBWY29tcG9zZSAodDEsIHQyKVxuXG4gIGxldCAoIDwvPiApIHQxIHQyID1cbiAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgfCBfLCBFbXB0eSAtPiB0MVxuICAgIHwgRW1wdHksIF8gLT4gdDJcbiAgICB8IF8gLT4gWmNvbXBvc2UgKHQxLCB0MilcblxuICAoKiBjcm9wIGlzIHBvc2l0aXZlIHZhbHVlLCBwYWQgaXMgbmVnYXRpdmUgKilcblxuICBsZXQgaGNyb3AgbGVmdCByaWdodCBpbWcgPVxuICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIkhjcm9wICglZiwgJWYpXCIgbGVmdCByaWdodCk7ICopXG4gICAgSGNyb3AgKGltZywgbGVmdCwgcmlnaHQpXG5cbiAgbGV0IHZjcm9wIHRvcCBib3R0b20gaW1nID1cbiAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJWY3JvcCAoJWYsICVmKVwiIHRvcCBib3R0b20pOyAqKVxuICAgIFZjcm9wIChpbWcsIHRvcCwgYm90dG9tKVxuXG4gIGxldCBjcm9wID8obCA9IDAuKSA/KHIgPSAwLikgPyh0ID0gMC4pID8oYiA9IDAuKSBpbWcgPVxuICAgIGxldCBpbWcgPSBpZiBsIDw+IDAuIHx8IHIgPD4gMC4gdGhlbiBoY3JvcCBsIHIgaW1nIGVsc2UgaW1nIGluXG4gICAgaWYgdCA8PiAwLiB8fCBiIDw+IDAuIHRoZW4gdmNyb3AgdCBiIGltZyBlbHNlIGltZ1xuXG4gIGxldCBocGFkIGxlZnQgcmlnaHQgaW1nID0gaGNyb3AgKC0ubGVmdCkgKC0ucmlnaHQpIGltZ1xuICBsZXQgdnBhZCB0b3AgYm90dG9tIGltZyA9IHZjcm9wICgtLnRvcCkgKC0uYm90dG9tKSBpbWdcblxuICBsZXQgcGFkID8obCA9IDAuKSA/KHIgPSAwLikgPyh0ID0gMC4pID8oYiA9IDAuKSBpbWcgPVxuICAgIGNyb3Agfmw6KC0ubCkgfnI6KC0ucikgfnQ6KC0udCkgfmI6KC0uYikgaW1nXG5cbiAgbGV0IHJlYyBjb25jYXRtIHogKCBAICkgeHMgPVxuICAgIGxldCByZWMgYWNjdW0gKCBAICkgPSBmdW5jdGlvblxuICAgICAgfCAoW10gfCBbIF8gXSkgYXMgeHMgLT4geHNcbiAgICAgIHwgYSA6OiBiIDo6IHhzIC0+IChhIEAgYikgOjogYWNjdW0gKCBAICkgeHNcbiAgICBpblxuICAgIG1hdGNoIHhzIHdpdGhcbiAgICB8IFtdIC0+IHpcbiAgICB8IFsgeCBdIC0+IHhcbiAgICB8IHhzIC0+IGNvbmNhdG0geiAoIEAgKSAoYWNjdW0gKCBAICkgeHMpXG5cbiAgbGV0IGhjYXQgPSBjb25jYXRtIGVtcHR5ICggPHw+IClcbiAgbGV0IHZjYXQgPSBjb25jYXRtIGVtcHR5ICggPC0+IClcbiAgbGV0IHpjYXQgeHMgPSBMaXN0LmZvbGRfcmlnaHQgKCA8Lz4gKSB4cyBlbXB0eVxuXG4gIGxldCB0ZXh0IGF0dHIgdHggPVxuICAgIG1hdGNoIGF0dHIgd2l0aCBTb21lIGEgLT4gQXR0ciAoU2VnbWVudCB0eCwgYSkgfCBfIC0+IFNlZ21lbnQgdHhcblxuICBsZXQgc3RyaW5nID9hdHRyIHMgPSB0ZXh0IGF0dHIgKFRleHQub2Zfc3RyaW5nIHMpXG4gIGxldCB1Y2hhcnMgP2F0dHIgYSA9IHRleHQgYXR0ciAoVGV4dC5vZl91Y2hhcnMgYSlcblxuICBsZXQgcmVjIGxpbnNwY20geiAoIEAgKSB4IG4gZiA9XG4gICAgbWF0Y2ggbiB3aXRoXG4gICAgfCAwLiAtPiB6XG4gICAgfCAxLiAtPiBmIHhcbiAgICB8IF8gLT5cbiAgICAgICAgbGV0IG0gPSBuIC8uIDIuIGluXG4gICAgICAgIGxpbnNwY20geiAoIEAgKSB4IG0gZiBAIGxpbnNwY20geiAoIEAgKSAoeCArLiBtKSAobiAtLiBtKSBmXG5cbiAgbGV0IHRhYnVsYXRlIG0gbiBmID1cbiAgICBsZXQgbSA9IG1heCBtIDAuIGFuZCBuID0gbWF4IG4gMC4gaW5cbiAgICBsaW5zcGNtIGVtcHR5ICggPC0+ICkgMC4gbiAoZnVuIHkgLT5cbiAgICAgICAgbGluc3BjbSBlbXB0eSAoIDx8PiApIDAuIG0gKGZ1biB4IC0+IGYgeCB5KSlcblxuICBsZXQgY2hhcnMgY3RvciA/YXR0ciBjIHcgaCA9XG4gICAgbGV0IHcgPSBtYXggMC4gdyBhbmQgaCA9IG1heCAwLiBoIGluXG4gICAgaWYgdyA8IDEuIHx8IGggPCAxLiB0aGVuIHZvaWQgdyBoXG4gICAgZWxzZVxuICAgICAgbGV0IGxpbmUgPSB0ZXh0IGF0dHIgKGN0b3IgdyBjKSBpblxuICAgICAgdGFidWxhdGUgMS4gaCAoZnVuIF8gXyAtPiBsaW5lKVxuXG4gIGxldCBjaGFyID0gY2hhcnMgVGV4dC5yZXBsaWNhdGVjXG4gICgqIGxldCB1Y2hhciA9IGNoYXJzIFRleHQucmVwbGljYXRldSAqKVxuXG4gICgqIG1vZHVsZSBGbXQgPSBzdHJ1Y3RcbiAgICAgICBvcGVuIEZvcm1hdFxuXG4gICAgICAgdHlwZSBzdGFnICs9IEF0dHIgb2YgQS50XG5cbiAgICAgICBsZXQgcHVzaCByIHggPSByIDo9IHggOjogIXJcbiAgICAgICBsZXQgcG9wIHIgPSByIDo9IG1hdGNoICFyIHdpdGggXyA6OiB4cyAtPiB4cyB8IF8gLT4gW11cbiAgICAgICBsZXQgdG9wX2EgciA9IG1hdGNoICFyIHdpdGggYSA6OiBfIC0+IGEgfCBfIC0+IEEuZW1wdHlcblxuICAgICAgIGxldCBjcmVhdGUgKCkgPVxuICAgICAgICAgbGV0IGltZywgbGluZSwgYXR0ciA9IChyZWYgZW1wdHksIHJlZiBlbXB0eSwgcmVmIFtdKSBpblxuICAgICAgICAgbGV0IGZtdCA9XG4gICAgICAgICAgIGZvcm1hdHRlcl9vZl9vdXRfZnVuY3Rpb25zXG4gICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgb3V0X2ZsdXNoID1cbiAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICAgIGltZyA6PSAhaW1nIDwtPiAhbGluZTtcbiAgICAgICAgICAgICAgICAgICBsaW5lIDo9IGVtcHR5O1xuICAgICAgICAgICAgICAgICAgIGF0dHIgOj0gW10pO1xuICAgICAgICAgICAgICAgb3V0X25ld2xpbmUgPVxuICAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICAgaW1nIDo9ICFpbWcgPC0+ICFsaW5lO1xuICAgICAgICAgICAgICAgICAgIGxpbmUgOj0gdm9pZCAwLiAxLik7XG4gICAgICAgICAgICAgICBvdXRfc3RyaW5nID1cbiAgICAgICAgICAgICAgICAgKGZ1biBzIGkgbiAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmUgOj1cbiAgICAgICAgICAgICAgICAgICAgICFsaW5lXG4gICAgICAgICAgICAgICAgICAgICA8fD4gc3RyaW5nIH5hdHRyOih0b3BfYSBhdHRyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLihzdWIwY3AgcyBpIG4pKVxuICAgICAgICAgICAgICAgICAoKiBOb3QgZW50aXJlbHkgY2xlYXI7IGVpdGhlciBvciBib3RoIGNvdWxkIGJlIHZvaWQ6ICopO1xuICAgICAgICAgICAgICAgb3V0X3NwYWNlcyA9XG4gICAgICAgICAgICAgICAgIChmdW4gdyAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmUgOj0gIWxpbmUgPHw+IGNoYXIgfmF0dHI6KHRvcF9hIGF0dHIpICcgJyB3IDEpO1xuICAgICAgICAgICAgICAgb3V0X2luZGVudCA9XG4gICAgICAgICAgICAgICAgIChmdW4gdyAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmUgOj0gIWxpbmUgPHw+IGNoYXIgfmF0dHI6KHRvcF9hIGF0dHIpICcgJyB3IDEpO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgIGluXG4gICAgICAgICBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIGZtdFxuICAgICAgICAgICB7XG4gICAgICAgICAgICAgKHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10ICgpKSB3aXRoXG4gICAgICAgICAgICAgbWFya19vcGVuX3N0YWcgPVxuICAgICAgICAgICAgICAgKGZ1bmN0aW9uXG4gICAgICAgICAgICAgICB8IEF0dHIgYSAtPlxuICAgICAgICAgICAgICAgICAgIHB1c2ggYXR0ciBBLih0b3BfYSBhdHRyICsrIGEpO1xuICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgIHwgXyAtPiBcIlwiKTtcbiAgICAgICAgICAgICBtYXJrX2Nsb3NlX3N0YWcgPVxuICAgICAgICAgICAgICAgKGZ1biBfIC0+XG4gICAgICAgICAgICAgICAgIHBvcCBhdHRyO1xuICAgICAgICAgICAgICAgICBcIlwiKTtcbiAgICAgICAgICAgfTtcbiAgICAgICAgIHBwX3NldF9tYXJrX3RhZ3MgZm10IHRydWU7XG4gICAgICAgICAoIGZtdCxcbiAgICAgICAgICAgZnVuICgpIC0+XG4gICAgICAgICAgICAgbGV0IGkgPSAhaW1nIGluXG4gICAgICAgICAgICAgaW1nIDo9IGVtcHR5O1xuICAgICAgICAgICAgIGxpbmUgOj0gZW1wdHk7XG4gICAgICAgICAgICAgYXR0ciA6PSBbXTtcbiAgICAgICAgICAgICBpIClcblxuICAgICAgIGxldCBwcGYsIHJlc2V0ID0gY3JlYXRlICgpXG5cbiAgICAgICBsZXQga3N0cmYgPyhhdHRyID0gQS5lbXB0eSkgPyh3ID0gMTAwMDAwMCkgayBmb3JtYXQgPVxuICAgICAgICAgbGV0IG0gPSByZWYgMCBpblxuICAgICAgICAgbGV0IGYxIF8gKCkgPVxuICAgICAgICAgICBtIDo9IHBwX2dldF9tYXJnaW4gcHBmICgpO1xuICAgICAgICAgICBwcF9zZXRfbWFyZ2luIHBwZiB3O1xuICAgICAgICAgICBwcF9vcGVuX3N0YWcgcHBmIChBdHRyIGF0dHIpXG4gICAgICAgICBhbmQgayBfID1cbiAgICAgICAgICAgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICAgICAgICAgICBwcF9zZXRfbWFyZ2luIHBwZiAhbTtcbiAgICAgICAgICAgcmVzZXQgKCkgfD4ga1xuICAgICAgICAgaW5cbiAgICAgICAgIGtmcHJpbnRmIGsgcHBmIChcIiVhXCIgXl4gZm9ybWF0KSBmMSAoKVxuXG4gICAgICAgbGV0IHN0cmYgP2F0dHIgP3cgZm9ybWF0ID0ga3N0cmYgP2F0dHIgP3cgKGZ1biBpIC0+IGkpIGZvcm1hdFxuXG4gICAgICAgbGV0IGF0dHIgYXR0ciBmIGZtdCB4ID1cbiAgICAgICAgIHBwX29wZW5fc3RhZyBmbXQgKEF0dHIgYXR0cik7XG4gICAgICAgICBmIGZtdCB4O1xuICAgICAgICAgcHBfY2xvc2Vfc3RhZyBmbXQgKClcbiAgICAgZW5kXG5cbiAgICAgICBsZXQga3N0cmYsIHN0cmYsIHBwX2F0dHIgPSBGbXQuKGtzdHJmLCBzdHJmLCBhdHRyKSAqKVxuXG4gIG1vZHVsZSBEcmF3ID0gc3RydWN0XG4gICAgdHlwZSBhdHRyID0gU3R5bGUudFxuICAgIHR5cGUgcCA9IFAyLnRcbiAgICB0eXBlIGQgPSBbIGBYIHwgYFkgfCBgWiBdXG5cbiAgICBsZXQgc3RyX29mX2JveCBiID1cbiAgICAgIFByaW50Zi5zcHJpbnRmIFwiKG94OiUwLjFmIG95OiUwLjFmIGV4JTAuMWYgZXklMC4xZilcIiAoQm94Mi5veCBiKVxuICAgICAgICAoQm94Mi5veSBiKSAoQm94Mi5tYXh4IGIpIChCb3gyLm1heHkgYilcblxuICAgIGxldCBmaWxsX2JveCB2ZyBjb2xvciBiID1cbiAgICAgIGxldCBtb2R1bGUgUGF0aCA9IE5WRy5QYXRoIGluXG4gICAgICBsZXQgb3BlbiBOVkcgaW5cbiAgICAgIE5WRy5zYXZlIHZnO1xuICAgICAgUGF0aC5iZWdpbl8gdmc7XG4gICAgICBQYXRoLnJlY3Qgdmcgfng6KEJveDIub3ggYikgfnk6KEJveDIub3kgYikgfnc6KEJveDIudyBiKVxuICAgICAgICB+aDooQm94Mi5oIGIpO1xuICAgICAgc2V0X2ZpbGxfY29sb3IgdmcgfmNvbG9yO1xuICAgICAgZmlsbCB2ZztcbiAgICAgIE5WRy5yZXN0b3JlIHZnO1xuICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiZmlsbF9ib3g6ICVhXCIgQm94Mi5wcCBiKTsgKilcbiAgICAgIEJveDIuc2l6ZSBiXG5cbiAgICBsZXQgcGF0aF9ib3ggdmcgY29sb3IgPyh3aWR0aCA9IDAuKSBiID1cbiAgICAgIGxldCBtb2R1bGUgUGF0aCA9IE5WRy5QYXRoIGluXG4gICAgICBQYXRoLmJlZ2luXyB2ZztcbiAgICAgIFBhdGgucmVjdCB2ZyB+eDooQm94Mi5veCBiKSB+eTooQm94Mi5veSBiKSB+dzooQm94Mi53IGIpXG4gICAgICAgIH5oOihCb3gyLmggYik7XG4gICAgICBpZiB3aWR0aCAhPSAwLiB0aGVuIE5WRy5zZXRfc3Ryb2tlX3dpZHRoIHZnIH53aWR0aDtcbiAgICAgIE5WRy5zZXRfc3Ryb2tlX2NvbG9yIHZnIH5jb2xvcjtcbiAgICAgIE5WRy5zdHJva2Ugdmc7XG4gICAgICBCb3gyLnNpemUgYlxuXG4gICAgbGV0IHZjYXQgZCBhIGIgPVxuICAgICAgbWF0Y2ggZCB3aXRoXG4gICAgICB8IGBYIC0+XG4gICAgICAgICAgVjIudiAoVjIueCBhICsuIFYyLnggYikgKEZsb2F0Lm1heF9udW0gKFYyLnkgYSkgKFYyLnkgYikpXG4gICAgICB8IGBZIC0+IFYyLnYgKEZsb2F0Lm1heF9udW0gKFYyLnggYSkgKFYyLnggYikpIChWMi55IGEgKy4gVjIueSBiKVxuICAgICAgfCBgWiAtPlxuICAgICAgICAgIFYyLnZcbiAgICAgICAgICAgIChGbG9hdC5tYXhfbnVtIChWMi54IGEpIChWMi54IGIpKVxuICAgICAgICAgICAgKEZsb2F0Lm1heF9udW0gKFYyLnkgYSkgKFYyLnkgYikpXG5cbiAgICBsZXQgcmVjIHBwID8oYXR0ciA9IEEuZW1wdHkpIHBwZiA6IHQgLT4gdW5pdCA9XG4gICAgICBsZXQgb3BlbiBGIGluXG4gICAgICBsZXQgY29tcG9zZSA9IHBhaXIgKHBhcmVucyAocHAgfmF0dHIpKSAocGFyZW5zIChwcCB+YXR0cikpIGluXG4gICAgICBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBmbXQgXCJFbXB0eVwiIHBwZlxuICAgICAgfCBTZWdtZW50IHYgLT4gZm10IFwiQFs8aD5TZWdtZW50ICVhQF1cIiBwcGYgVGV4dC5wcCB2XG4gICAgICB8IEF0dHIgKHQsIGEpIC0+XG4gICAgICAgICAgZm10IFwiQFs8aD5BdHRyICVhQF1cIiBwcGZcbiAgICAgICAgICAgIChwYWlyIH5zZXA6Y29tbWEgQS5wcFxuICAgICAgICAgICAgICAgKHBwIH5hdHRyOkEuKHJlcGxhY2UgfnByZXY6YXR0ciB+bmV4dDphKSkpXG4gICAgICAgICAgICAoQS4ocmVwbGFjZSB+cHJldjphdHRyIH5uZXh0OmEpLCB0KVxuICAgICAgfCBIY29tcG9zZSBhIC0+IGZtdCBcIkhjYXQgJWFcIiBwcGYgY29tcG9zZSBhXG4gICAgICB8IFZjb21wb3NlIGEgLT4gZm10IFwiVmNhdCAlYVwiIHBwZiBjb21wb3NlIGFcbiAgICAgIHwgWmNvbXBvc2UgYSAtPiBmbXQgXCJaY2F0ICVhXCIgcHBmIGNvbXBvc2UgYVxuICAgICAgfCBIY3JvcCAodCwgbGVmdCwgcmlnaHQpIC0+XG4gICAgICAgICAgZm10IFwiSGNyb3AgKCUuMWYsJS4xZiwlYSlcIiBwcGYgbGVmdCByaWdodCAocHAgfmF0dHIpIHRcbiAgICAgIHwgVmNyb3AgKHQsIHRvcCwgYm90dG9tKSAtPlxuICAgICAgICAgIGZtdCBcIlZjcm9wICglLjFmLCUuMWYsJWEpXCIgcHBmIHRvcCBib3R0b20gKHBwIH5hdHRyKSB0XG4gICAgICB8IFZvaWQgZGltIC0+IGZtdCBcIlZvaWQgJWFcIiBwcGYgKHBhcmVucyBWMi5wcCkgZGltXG5cbiAgICBsZXQgc2VnbWVudF9rZXJuX2NhY2hlID0gcmVmIChCb3gyLnplcm8sIFwiXCIpXG5cbiAgICBsZXQgcmVjIHNlZ21lbnQgdmcgcCA6IFRleHQudCAtPiBQMi50ID0gZnVuY3Rpb25cbiAgICAgIHwgU3RyaW5nIHMgLT5cbiAgICAgICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJJLkRyYXcuc2VnbWVudCBwPSVhICVzXCIgR2cuVjIucHAgcCBzKTsgKilcbiAgICAgICAgICAoKiBsZXQgcCcgPVxuICAgICAgICAgICAgICAgbGV0IGNhY2hlX3AsIGNhY2hlX3MgPSAhc2VnbWVudF9rZXJuX2NhY2hlIGluXG4gICAgICAgICAgICAgICAoKiB0cmllcyB0byBnZXQgdGhlIGtlcm5pbmcgcmlnaHQgYWNyb3NzIHNlZ21lbnRzICopXG4gICAgICAgICAgICAgICBpZiBWMi4oZXF1YWwgKEJveDIubWF4IGNhY2hlX3ApIHApIHRoZW5cbiAgICAgICAgICAgICAgICAgVjIuKFxuICAgICAgICAgICAgICAgICAgIEJveDIubyBjYWNoZV9wXG4gICAgICAgICAgICAgICAgICAgKyB2XG4gICAgICAgICAgICAgICAgICAgICAgICgoYm91bmRzX3NlZ21lbnQgdmcgKEJveDIubyBjYWNoZV9wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRleHQub2Zfc3RyaW5nIChjYWNoZV9zIF4gcykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuYWR2YW5jZVxuICAgICAgICAgICAgICAgICAgICAgIC0uIChib3VuZHNfc2VnbWVudCB2ZyBwIChUZXh0Lm9mX3N0cmluZyBzKSkuYWR2YW5jZVxuICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgIDAuKVxuICAgICAgICAgICAgICAgZWxzZSBwXG4gICAgICAgICAgICAgaW4gKilcbiAgICAgICAgICBsZXQgbWV0cmljcyA9IE5WRy5UZXh0Lm1ldHJpY3MgdmcgaW5cbiAgICAgICAgICBOVkcuVGV4dC50ZXh0IHZnIH54OihWMi54IHApXG4gICAgICAgICAgICB+eTooVjIueSBwICsuIG1ldHJpY3MuYXNjZW5kZXIpXG4gICAgICAgICAgICBzO1xuXG4gICAgICAgICAgbGV0IHN6ID1cbiAgICAgICAgICAgIFYyLnYgKGJvdW5kc19zZWdtZW50IHZnIHAgKFRleHQub2Zfc3RyaW5nIHMpKS5hZHZhbmNlXG4gICAgICAgICAgICAgIG1ldHJpY3MubGluZV9oZWlnaHRcbiAgICAgICAgICBpblxuICAgICAgICAgIHNlZ21lbnRfa2Vybl9jYWNoZSA6PSAoQm94Mi4odiBwIHN6KSwgcyk7XG4gICAgICAgICAgc3pcblxuICAgIGFuZCBub2RlIHZnIGF0dHIgcCBuIDogcDIgPVxuICAgICAgKCogcmV0dXJucyB0aGUgKnNpemUqIG9mIHRoZSBkcmF3biBhcmVhIG5vdCB0aGUgbWF4IGNvb3JkaW5hdGVzIGFueW1vcmUgKilcbiAgICAgIGxldCBiJyA9XG4gICAgICAgIG1hdGNoIG4gd2l0aFxuICAgICAgICB8IEVtcHR5IHwgVm9pZCBfIC0+IHBcbiAgICAgICAgfCBTZWdtZW50IHRleHQgLT4gc2VnbWVudCB2ZyBwIHRleHRcbiAgICAgICAgfCBBdHRyIChpLCBhKSAtPlxuICAgICAgICAgICAgbGV0IGEwID0gQS4ocmVwbGFjZSB+cHJldjphdHRyIH5uZXh0OmEpIGluXG4gICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAoQS4oYS5iZykgIT0gQS4oYXR0ci5iZykpXG4gICAgICAgICAgICAgICYmIEEuKGEwLmJnKSAhPSBOVkcuQ29sb3IudHJhbnNwYXJlbnRcbiAgICAgICAgICAgIHRoZW4gZmlsbF9ib3ggdmcgYTAuYmcgKEJveDIudiBwIChzaXplIHZnIHAgaSkpIHw+IGlnbm9yZTtcbiAgICAgICAgICAgIGlmIEEuKGF0dHIuZmcpICE9IGEuZmcgdGhlbiAoXG4gICAgICAgICAgICAgIE5WRy5zZXRfZmlsbF9jb2xvciB2ZyB+Y29sb3I6U3R5bGUuKGEwLmZnKTtcbiAgICAgICAgICAgICAgTlZHLnNldF9zdHJva2VfY29sb3IgdmcgfmNvbG9yOlN0eWxlLihhMC5mZykpO1xuICAgICAgICAgICAgbm9kZSB2ZyBhMCBwIGlcbiAgICAgICAgfCBIY29tcG9zZSAoaTEsIGkyKSAtPlxuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIHAgaTEgaW5cbiAgICAgICAgICAgIGxldCBwMiA9IG5vZGUgdmcgYXR0ciBWMi4ocCArIHYgKFYyLnggcDEpIDAuKSBpMiBpblxuICAgICAgICAgICAgVjIuKHYgKHggcDEgKy4geCBwMikgKEZsb2F0Lm1heCAoeSBwMSkgKHkgcDIpKSlcbiAgICAgICAgfCBWY29tcG9zZSAoaTEsIGkyKSAtPlxuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIHAgaTEgaW5cbiAgICAgICAgICAgIGxldCBwMiA9IG5vZGUgdmcgYXR0ciBWMi4ocCArIHYgMC4gKFYyLnkgcDEpKSBpMiBpblxuICAgICAgICAgICAgVjIuKHYgKEZsb2F0Lm1heCAoeCBwMSkgKHggcDIpKSAoeSBwMSArLiB5IHAyKSlcbiAgICAgICAgfCBaY29tcG9zZSAoaTEsIGkyKSAtPlxuICAgICAgICAgICAgbGV0IHAxID0gbm9kZSB2ZyBhdHRyIHAgaTEgaW5cbiAgICAgICAgICAgIGxldCBwMiA9IG5vZGUgdmcgYXR0ciBwIGkyIGluXG4gICAgICAgICAgICBwMl9tYXggcDEgcDJcbiAgICAgICAgfCBIY3JvcCAoaSwgbGVmdCwgcmlnaHQpIC0+XG4gICAgICAgICAgICBsZXQgcDAgPSBzaXplIHZnIHAgaSBpblxuICAgICAgICAgICAgTlZHLnNhdmUgdmc7XG4gICAgICAgICAgICBOVkcuU2Npc3Nvci5zY2lzc29yIHZnIH54OihWMi54IHApIH55OihWMi55IHApXG4gICAgICAgICAgICAgIH53OihWMi54IHAwIC0uIHJpZ2h0KVxuICAgICAgICAgICAgICB+aDooVjIueSBwMCk7XG4gICAgICAgICAgICBsZXQgcDEgPSBub2RlIHZnIGF0dHIgVjIuKHAgLSB2IGxlZnQgMC4pIGkgaW5cbiAgICAgICAgICAgIE5WRy5yZXN0b3JlIHZnO1xuICAgICAgICAgICAgVjIuKHAxIC0gdiAobGVmdCArLiByaWdodCkgMC4pXG4gICAgICAgIHwgVmNyb3AgKGksIHRvcCwgYm90dG9tKSAtPlxuICAgICAgICAgICAgbGV0IHAwID0gc2l6ZSB2ZyBwIGkgaW5cbiAgICAgICAgICAgIE5WRy5zYXZlIHZnO1xuICAgICAgICAgICAgTlZHLlNjaXNzb3Iuc2Npc3NvciB2ZyB+eDooVjIueCBwKSB+eTooVjIueSBwKVxuICAgICAgICAgICAgICB+dzooVjIueCBwMClcbiAgICAgICAgICAgICAgfmg6KFYyLnkgcDAgLS4gYm90dG9tKTtcbiAgICAgICAgICAgIGxldCBwMSA9IG5vZGUgdmcgYXR0ciBWMi4ocCAtIHYgMC4gdG9wKSBpIGluXG4gICAgICAgICAgICBOVkcucmVzdG9yZSB2ZztcbiAgICAgICAgICAgIFYyLihwMSAtIHYgMC4gKHRvcCArLiBib3R0b20pKVxuICAgICAgaW5cblxuICAgICAgKCogaWdub3JlXG4gICAgICAgICAocGF0aF9ib3ggdmcudmdcbiAgICAgICAgICAgIChOVkcuQ29sb3IucmdiYWYgfnI6MS4gfmc6MC4gfmI6MC4gfmE6MC4yKVxuICAgICAgICAgICAgKEJveDIub2ZfcHRzIGIgYicpKTsgKilcbiAgICAgIGInXG4gIGVuZFxuZW5kXG5cbm1vZHVsZSBOb3R0dWkgPSBzdHJ1Y3RcbiAgbGV0IG1heGkgeCB5IDogaW50ID0gaWYgeCA+IHkgdGhlbiB4IGVsc2UgeVxuICBsZXQgbWluaSB4IHkgOiBpbnQgPSBpZiB4IDwgeSB0aGVuIHggZWxzZSB5XG5cbiAgbW9kdWxlIEZvY3VzIDogc2lnXG4gICAgdHlwZSB2YXIgPSBpbnQgTHdkLnZhclxuICAgIHR5cGUgaGFuZGxlXG5cbiAgICB2YWwgbWFrZSA6IHVuaXQgLT4gaGFuZGxlXG4gICAgdmFsIHJlcXVlc3QgOiBoYW5kbGUgLT4gdW5pdFxuICAgIHZhbCByZXF1ZXN0X3ZhciA6IHZhciAtPiB1bml0XG4gICAgdmFsIHJlbGVhc2UgOiBoYW5kbGUgLT4gdW5pdFxuXG4gICAgdHlwZSBzdGF0dXMgPSBFbXB0eSB8IEhhbmRsZSBvZiBpbnQgKiB2YXIgfCBDb25mbGljdCBvZiBpbnRcblxuICAgIHZhbCBlbXB0eSA6IHN0YXR1c1xuXG4gICAgKCp2YWwgaXNfZW1wdHkgOiBzdGF0dXMgLT4gYm9vbCopXG4gICAgdmFsIHN0YXR1cyA6IGhhbmRsZSAtPiBzdGF0dXMgTHdkLnRcbiAgICB2YWwgdmFyIDogaGFuZGxlIC0+IHZhclxuICAgIHZhbCBoYXNfZm9jdXMgOiBzdGF0dXMgLT4gYm9vbFxuICAgIHZhbCBtZXJnZSA6IHN0YXR1cyAtPiBzdGF0dXMgLT4gc3RhdHVzXG4gICAgdmFsIHBwX3ZhciA6IEZvcm1hdC5mb3JtYXR0ZXIgLT4gdmFyIC0+IHVuaXRcbiAgICB2YWwgcHBfc3RhdHVzIDogRm9ybWF0LmZvcm1hdHRlciAtPiBzdGF0dXMgLT4gdW5pdFxuICBlbmQgPSBzdHJ1Y3RcbiAgICB0eXBlIHZhciA9IGludCBMd2QudmFyXG4gICAgdHlwZSBzdGF0dXMgPSBFbXB0eSB8IEhhbmRsZSBvZiBpbnQgKiB2YXIgfCBDb25mbGljdCBvZiBpbnRcbiAgICB0eXBlIGhhbmRsZSA9IHZhciAqIHN0YXR1cyBMd2QudFxuXG4gICAgbGV0IG1ha2UgKCkgPVxuICAgICAgbGV0IHYgPSBMd2QudmFyIDAgaW5cbiAgICAgICh2LCBMd2QubWFwIH5mOihmdW4gaSAtPiBIYW5kbGUgKGksIHYpKSAoTHdkLmdldCB2KSlcblxuICAgIGxldCBlbXB0eSA6IHN0YXR1cyA9IEVtcHR5XG4gICAgbGV0IHZhciAoaCA6IGhhbmRsZSkgOiB2YXIgPSBmc3QgaFxuICAgIGxldCBzdGF0dXMgKGggOiBoYW5kbGUpIDogc3RhdHVzIEx3ZC50ID0gc25kIGhcblxuICAgIGxldCBoYXNfZm9jdXMgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBIYW5kbGUgKGksIF8pIHwgQ29uZmxpY3QgaSAtPiBpID4gMFxuXG4gICAgbGV0IGNsb2NrID0gcmVmIDBcblxuICAgIGxldCByZXF1ZXN0X3ZhciAodiA6IHZhcikgPVxuICAgICAgaW5jciBjbG9jaztcbiAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICBtIFwiRm9jdXMucmVxdWVzdF92YXIgdj0lZCBjbG9jaz0lZFwiIChMd2QucGVlayB2KSAhY2xvY2spO1xuICAgICAgTHdkLnNldCB2ICFjbG9ja1xuXG4gICAgbGV0IHJlcXVlc3QgKCh2LCBfKSA6IGhhbmRsZSkgPSByZXF1ZXN0X3ZhciB2XG5cbiAgICBsZXQgcmVsZWFzZSAoKHYsIF8pIDogaGFuZGxlKSA9XG4gICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgbSBcIkZvY3VzLnJlbGVhc2Ugdj0lZCBjbG9jaz0lZFwiIChMd2QucGVlayB2KSAhY2xvY2spO1xuICAgICAgaW5jciBjbG9jaztcbiAgICAgIEx3ZC5zZXQgdiAwXG5cbiAgICBsZXQgbWVyZ2UgczEgczIgOiBzdGF0dXMgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgfCAoRW1wdHkgfCBIYW5kbGUgKDAsIF8pKSwgeCB8IHgsIChFbXB0eSB8IEhhbmRsZSAoMCwgXykpIC0+IHhcbiAgICAgIHwgSGFuZGxlIChpMSwgXyksIEhhbmRsZSAoaTIsIF8pIHdoZW4gaTEgPSBpMiAtPiBzMVxuICAgICAgfCAoSGFuZGxlIChpMSwgXykgfCBDb25mbGljdCBpMSksIENvbmZsaWN0IGkyIHdoZW4gaTEgPCBpMiAtPiBzMlxuICAgICAgfCAoSGFuZGxlIChpMSwgXykgfCBDb25mbGljdCBpMSksIEhhbmRsZSAoaTIsIF8pIHdoZW4gaTEgPCBpMiAtPlxuICAgICAgICAgIENvbmZsaWN0IGkyXG4gICAgICB8IENvbmZsaWN0IF8sIChIYW5kbGUgKF8sIF8pIHwgQ29uZmxpY3QgXykgLT4gczFcbiAgICAgIHwgSGFuZGxlIChpMSwgXyksIChIYW5kbGUgKF8sIF8pIHwgQ29uZmxpY3QgXykgLT4gQ29uZmxpY3QgaTFcblxuICAgIGxldCBwcF92YXIgcHBmIHYgPSBGLnBmIHBwZiBcIiVkXCIgKEx3ZC5wZWVrIHYpXG5cbiAgICBsZXQgcHBfc3RhdHVzIHBwZiA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IEYucGYgcHBmIFwiRW1wdHlcIlxuICAgICAgfCBIYW5kbGUgKGksIHYpIC0+IEYucGYgcHBmIFwiSGFuZGxlICglZCwgJWEpXCIgaSBwcF92YXIgdlxuICAgICAgfCBDb25mbGljdCBpIC0+IEYucGYgcHBmIFwiQ29uZmxpY3QgJWRcIiBpXG4gIGVuZFxuXG4gIG1vZHVsZSBHcmF2aXR5IDogc2lnXG4gICAgdHlwZSBkaXJlY3Rpb24gPSBbIGBOZWdhdGl2ZSB8IGBOZXV0cmFsIHwgYFBvc2l0aXZlIF1cblxuICAgIHZhbCBwcF9kaXJlY3Rpb24gOiBGb3JtYXQuZm9ybWF0dGVyIC0+IGRpcmVjdGlvbiAtPiB1bml0XG5cbiAgICB0eXBlIHRcblxuICAgIHZhbCBwcCA6IEZvcm1hdC5mb3JtYXR0ZXIgLT4gdCAtPiB1bml0XG4gICAgdmFsIG1ha2UgOiBoOmRpcmVjdGlvbiAtPiB2OmRpcmVjdGlvbiAtPiB0XG4gICAgdmFsIGRlZmF1bHQgOiB0XG4gICAgdmFsIGggOiB0IC0+IGRpcmVjdGlvblxuICAgIHZhbCB2IDogdCAtPiBkaXJlY3Rpb25cblxuICAgIHR5cGUgdDJcblxuICAgIHZhbCBwYWlyIDogdCAtPiB0IC0+IHQyXG4gICAgdmFsIHAxIDogdDIgLT4gdFxuICAgIHZhbCBwMiA6IHQyIC0+IHRcbiAgZW5kID0gc3RydWN0XG4gICAgdHlwZSBkaXJlY3Rpb24gPSBbIGBOZWdhdGl2ZSB8IGBOZXV0cmFsIHwgYFBvc2l0aXZlIF1cbiAgICB0eXBlIHQgPSB7IGggOiBkaXJlY3Rpb247IHYgOiBkaXJlY3Rpb24gfVxuXG4gICAgbGV0IGRlZmF1bHQgPSB7IGggPSBgTmV1dHJhbDsgdiA9IGBOZXV0cmFsIH1cbiAgICBsZXQgbWFrZSB+aCB+diA9IHsgaDsgdiB9XG4gICAgbGV0IGggeCA9IHguaFxuICAgIGxldCB2IHggPSB4LnZcblxuICAgIGxldCBwcF9kaXJlY3Rpb24gcHBmIGRpciA9XG4gICAgICBsZXQgdGV4dCA9XG4gICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgIHwgYE5lZ2F0aXZlIC0+IFwiYE5lZ2F0aXZlXCJcbiAgICAgICAgfCBgTmV1dHJhbCAtPiBcImBOZXV0cmFsXCJcbiAgICAgICAgfCBgUG9zaXRpdmUgLT4gXCJgUG9zaXRpdmVcIlxuICAgICAgaW5cbiAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgcHBmIHRleHRcblxuICAgIGxldCBwcCBwcGYgZyA9XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJ7IGggPSAlYTsgdiA9ICVhIH1cIiBwcF9kaXJlY3Rpb24gKGggZylcbiAgICAgICAgcHBfZGlyZWN0aW9uICh2IGcpXG5cbiAgICB0eXBlIHQyID0gdCAqIHRcblxuICAgIGxldCBwYWlyIHQxIHQyID0gKHQxLCB0MilcbiAgICBsZXQgcDEgKHQsIF8pID0gdFxuICAgIGxldCBwMiAoXywgdCkgPSB0XG4gIGVuZFxuXG4gIHR5cGUgZ3Jhdml0eSA9IEdyYXZpdHkudFxuXG4gIG1vZHVsZSBJbnRlcnZhbCA6IHNpZ1xuICAgIHR5cGUgdFxuXG4gICAgdmFsIG1ha2UgOiBmbG9hdCAtPiBmbG9hdCAtPiB0XG4gICAgdmFsIHNoaWZ0IDogdCAtPiBmbG9hdCAtPiB0XG4gICAgdmFsIGZzdCA6IHQgLT4gZmxvYXRcbiAgICB2YWwgc25kIDogdCAtPiBmbG9hdFxuICAgIHZhbCBzaXplIDogdCAtPiBmbG9hdFxuICAgIHZhbCB6ZXJvIDogdFxuICBlbmQgPSBzdHJ1Y3RcbiAgICB0eXBlIHQgPSBmbG9hdCAqIGZsb2F0XG5cbiAgICBsZXQgbWFrZSB4IHkgPSAoeCwgeSlcbiAgICBsZXQgc2hpZnQgKHgsIHkpIGQgPSAoeCArLiBkLCB5ICsuIGQpXG4gICAgbGV0IGZzdCAoeCwgXykgPSB4XG4gICAgbGV0IHNpemUgKHgsIHkpID0geSAtLiB4XG4gICAgbGV0IHNuZCAoXywgeSkgPSB5XG4gICAgbGV0IHplcm8gPSAoMC4sIDAuKVxuICBlbmRcblxuICBtb2R1bGUgVWkgPSBzdHJ1Y3RcbiAgICB0eXBlIG1heV9oYW5kbGUgPSBbIGBVbmhhbmRsZWQgfCBgSGFuZGxlZCBdXG5cbiAgICBsZXQgbWF5X2hhbmRsZSAodHlwZSBhKSAodiA6IGEgb3B0aW9uKSAoZiA6IGEgLT4gbWF5X2hhbmRsZSkgOlxuICAgICAgICBtYXlfaGFuZGxlID1cbiAgICAgIG1hdGNoIHYgd2l0aCBTb21lIHYnIC0+IGYgdicgfCBOb25lIC0+IGBVbmhhbmRsZWRcblxuICAgIGxldCBwcF9tYXlfaGFuZGxlIHBwZiA9IGZ1bmN0aW9uXG4gICAgICB8IGBVbmhhbmRsZWQgLT4gRi5wZiBwcGYgXCJgVW5oYW5kbGVkXCJcbiAgICAgIHwgYEhhbmRsZWQgLT4gRi5wZiBwcGYgXCJgSGFuZGxlZFwiXG5cbiAgICB0eXBlIG1vdXNlX2hhbmRsZXIgPVxuICAgICAgeDpmbG9hdCAtPlxuICAgICAgeTpmbG9hdCAtPlxuICAgICAgSW5wdXQuYnV0dG9uIC0+XG4gICAgICBbIGBVbmhhbmRsZWRcbiAgICAgIHwgYEhhbmRsZWRcbiAgICAgIHwgYEdyYWIgb2ZcbiAgICAgICAgKHg6ZmxvYXQgLT4geTpmbG9hdCAtPiB1bml0KSAqICh4OmZsb2F0IC0+IHk6ZmxvYXQgLT4gdW5pdClcbiAgICAgIF1cblxuICAgIHR5cGUgc2VtYW50aWNfa2V5ID1cbiAgICAgIFsgKCogQ2xpcGJvYXJkICopXG4gICAgICAgIGBDb3B5XG4gICAgICB8IGBQYXN0ZVxuICAgICAgfCAoKiBGb2N1cyBtYW5hZ2VtZW50ICopXG4gICAgICAgIGBGb2N1cyBvZlxuICAgICAgICBbIGBOZXh0IHwgYFByZXYgfCBgTGVmdCB8IGBSaWdodCB8IGBVcCB8IGBEb3duIF0gXVxuXG4gICAgdHlwZSBrZXkgPVxuICAgICAgWyBJbnB1dC5zcGVjaWFsIHwgYFVjaGFyIG9mIFVjaGFyLnQgfCBzZW1hbnRpY19rZXkgXVxuICAgICAgKiBJbnB1dC5tb2RzXG5cbiAgICBsZXQgcHBfa2V5ID1cbiAgICAgIEYuKFxuICAgICAgICBwYWlyIH5zZXA6Ri5zcFxuICAgICAgICAgIChmdW4gcHBmIHYgLT5cbiAgICAgICAgICAgIG1hdGNoIHYgd2l0aFxuICAgICAgICAgICAgfCBgQ29weSAtPiBwZiBwcGYgXCJgQ29weVwiXG4gICAgICAgICAgICB8IGBQYXN0ZSAtPiBwZiBwcGYgXCJgUGFzdGVcIlxuICAgICAgICAgICAgfCBgRm9jdXMgdiAtPlxuICAgICAgICAgICAgICAgIHBmIHBwZiBcImBGb2N1cyAlc1wiXG4gICAgICAgICAgICAgICAgICAobWF0Y2ggdiB3aXRoXG4gICAgICAgICAgICAgICAgICB8IGBOZXh0IC0+IFwiYE5leHRcIlxuICAgICAgICAgICAgICAgICAgfCBgUHJldiAtPiBcImBQcmV2XCJcbiAgICAgICAgICAgICAgICAgIHwgYExlZnQgLT4gXCJgTGVmdFwiXG4gICAgICAgICAgICAgICAgICB8IGBSaWdodCAtPiBcImBSaWdodFwiXG4gICAgICAgICAgICAgICAgICB8IGBVcCAtPiBcImBVcFwiXG4gICAgICAgICAgICAgICAgICB8IGBEb3duIC0+IFwiYERvd25cIilcbiAgICAgICAgICAgIHwgYSAtPiBwZiBwcGYgXCIlYVwiIElucHV0LnBwX2NvZGUgYSlcbiAgICAgICAgICBJbnB1dC5wcF9tb2RzKVxuXG4gICAgdHlwZSBtb3VzZSA9IElucHV0Lm1vdXNlXG5cbiAgICB0eXBlIGV2ZW50ID1cbiAgICAgIFsgYEtleSBvZiBrZXkgfCBgTW91c2Ugb2YgbW91c2UgfCBgUGFzdGUgb2YgSW5wdXQucGFzdGUgXVxuXG4gICAgdHlwZSBsYXlvdXRfc3BlYyA9IHtcbiAgICAgIHcgOiBmbG9hdDtcbiAgICAgIGggOiBmbG9hdDtcbiAgICAgIHN3IDogZmxvYXQ7XG4gICAgICBzaCA6IGZsb2F0O1xuICAgIH1cblxuICAgIGxldCBwcF9mbG9hdCBwcGYgPSBGLmZtdCBcIiUuMWZcIiBwcGZcblxuICAgIHR5cGUgZmxhZ3MgPSBpbnRcblxuICAgIGxldCBmbGFnc19ub25lID0gMFxuICAgIGxldCBmbGFnX3RyYW5zaWVudF9zZW5zb3IgPSAxXG4gICAgbGV0IGZsYWdfcGVybWFuZW50X3NlbnNvciA9IDJcblxuICAgIHR5cGUgc2l6ZV9zZW5zb3IgPSB3OmZsb2F0IC0+IGg6ZmxvYXQgLT4gdW5pdFxuXG4gICAgdHlwZSBmcmFtZV9zZW5zb3IgPVxuICAgICAgeDpmbG9hdCAtPiB5OmZsb2F0IC0+IHc6ZmxvYXQgLT4gaDpmbG9hdCAtPiB1bml0IC0+IHVuaXRcblxuICAgIHR5cGUgaW1hZ2UgPSBJLnRcbiAgICB0eXBlIGNhY2hlID0geyB2eCA6IEludGVydmFsLnQ7IHZ5IDogSW50ZXJ2YWwudDsgaW1hZ2UgOiBpbWFnZSB9XG5cbiAgICB0eXBlICdhIGRlc2MgPVxuICAgICAgfCBBdG9tIG9mIGltYWdlXG4gICAgICB8IFNpemVfc2Vuc29yIG9mICdhICogc2l6ZV9zZW5zb3JcbiAgICAgIHwgVHJhbnNpZW50X3NlbnNvciBvZiAnYSAqIGZyYW1lX3NlbnNvclxuICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yIG9mICdhICogZnJhbWVfc2Vuc29yXG4gICAgICB8IFJlc2l6ZSBvZiAnYSAqIGZsb2F0IG9wdGlvbiAqIGZsb2F0IG9wdGlvbiAqIEdyYXZpdHkudDJcbiAgICAgIHwgTW91c2VfaGFuZGxlciBvZiAnYSAqIG1vdXNlX2hhbmRsZXJcbiAgICAgIHwgRm9jdXNfYXJlYSBvZiAnYSAqIChrZXkgLT4gbWF5X2hhbmRsZSlcbiAgICAgIHwgU2hpZnRfYXJlYSBvZiAnYSAqIGZsb2F0ICogZmxvYXRcbiAgICAgIHwgRXZlbnRfZmlsdGVyIG9mXG4gICAgICAgICAgJ2EgKiAoWyBgS2V5IG9mIGtleSB8IGBNb3VzZSBvZiBtb3VzZSBdIC0+IG1heV9oYW5kbGUpXG4gICAgICB8IFggb2YgJ2EgKiAnYVxuICAgICAgfCBZIG9mICdhICogJ2FcbiAgICAgIHwgWiBvZiAnYSAqICdhXG5cbiAgICB0eXBlIHQgPSB7XG4gICAgICBtdXRhYmxlIHcgOiBmbG9hdDtcbiAgICAgIG11dGFibGUgaCA6IGZsb2F0O1xuICAgICAgc3cgOiBmbG9hdDtcbiAgICAgIHNoIDogZmxvYXQ7XG4gICAgICBtdXRhYmxlIGRlc2MgOiB0IGRlc2M7XG4gICAgICBmb2N1cyA6IEZvY3VzLnN0YXR1cztcbiAgICAgIG11dGFibGUgZmxhZ3MgOiBmbGFncztcbiAgICAgIG11dGFibGUgc2Vuc29yX2NhY2hlIDogKGZsb2F0ICogZmxvYXQgKiBmbG9hdCAqIGZsb2F0KSBvcHRpb247XG4gICAgICBtdXRhYmxlIGNhY2hlIDogY2FjaGU7XG4gICAgfVxuXG4gICAgbGV0IGxheW91dF9zcGVjICh0IDogdCkgOiBsYXlvdXRfc3BlYyA9XG4gICAgICB7IHcgPSB0Lnc7IGggPSB0Lmg7IHN3ID0gdC5zdzsgc2ggPSB0LnNoIH1cblxuICAgIGxldCBsYXlvdXRfd2lkdGggdCA9IHQud1xuICAgIGxldCBsYXlvdXRfc3RyZXRjaF93aWR0aCB0ID0gdC5zd1xuICAgIGxldCBsYXlvdXRfaGVpZ2h0IHQgPSB0LmhcbiAgICBsZXQgbGF5b3V0X3N0cmV0Y2hfaGVpZ2h0IHQgPSB0LnNoXG5cbiAgICBsZXQgcHBfbGF5b3V0X3NwZWMgcHBmIHsgdzsgaDsgc3c7IHNoOyBfIH0gPVxuICAgICAgbGV0IHAgPSBwcF9mbG9hdCBpblxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwie3c9JWE7QCBoPSVhO0Agc3c9JWE7QCBzaD0lYX1cIiBwIHcgcCBoIHAgc3dcbiAgICAgICAgcCBzaFxuXG4gICAgbGV0IGNhY2hlIDogY2FjaGUgPVxuICAgICAgeyB2eCA9IEludGVydmFsLnplcm87IHZ5ID0gSW50ZXJ2YWwuemVybzsgaW1hZ2UgPSBJLmVtcHR5IH1cblxuICAgIGxldCBlbXB0eSA6IHQgPVxuICAgICAge1xuICAgICAgICB3ID0gMC47XG4gICAgICAgIGggPSAwLjtcbiAgICAgICAgc3cgPSAwLjtcbiAgICAgICAgc2ggPSAwLjtcbiAgICAgICAgZmxhZ3MgPSBmbGFnc19ub25lO1xuICAgICAgICBmb2N1cyA9IEZvY3VzLmVtcHR5O1xuICAgICAgICBkZXNjID0gQXRvbSBJLmVtcHR5O1xuICAgICAgICBzZW5zb3JfY2FjaGUgPSBOb25lO1xuICAgICAgICBjYWNoZTtcbiAgICAgIH1cblxuICAgIGxldCBhdG9tIGltZyA6IHQgPVxuICAgICAge1xuICAgICAgICB3ID0gMC47XG4gICAgICAgIGggPSAwLjtcbiAgICAgICAgc3cgPSAwLjtcbiAgICAgICAgc2ggPSAwLjtcbiAgICAgICAgZm9jdXMgPSBGb2N1cy5lbXB0eTtcbiAgICAgICAgZmxhZ3MgPSBmbGFnc19ub25lO1xuICAgICAgICBkZXNjID0gQXRvbSBpbWc7XG4gICAgICAgIHNlbnNvcl9jYWNoZSA9IE5vbmU7XG4gICAgICAgIGNhY2hlO1xuICAgICAgfVxuXG4gICAgKCogbGV0IHNwYWNlXzFfMCA9IGF0b20gKEkudm9pZCAxIDApXG4gICAgICAgbGV0IHNwYWNlXzBfMSA9IGF0b20gKEkudm9pZCAwIDEpXG4gICAgICAgbGV0IHNwYWNlXzFfMSA9IGF0b20gKEkudm9pZCAxIDEpXG5cbiAgICAgICBsZXQgc3BhY2UgeCB5ID1cbiAgICAgICAgIG1hdGNoICh4LCB5KSB3aXRoXG4gICAgICAgICB8IDAsIDAgLT4gZW1wdHlcbiAgICAgICAgIHwgMSwgMCAtPiBzcGFjZV8xXzBcbiAgICAgICAgIHwgMCwgMSAtPiBzcGFjZV8wXzFcbiAgICAgICAgIHwgMSwgMSAtPiBzcGFjZV8xXzFcbiAgICAgICAgICB8IF8gLT4gYXRvbSAoSS52b2lkIHggeSkgKilcblxuICAgIGxldCBzcGFjZSB4IHkgPSBhdG9tIChJLnZvaWQgeCB5KVxuICAgIGxldCBtb3VzZV9hcmVhIGYgdCA6IHQgPSB7IHQgd2l0aCBkZXNjID0gTW91c2VfaGFuZGxlciAodCwgZikgfVxuXG4gICAgbGV0IGtleWJvYXJkX2FyZWEgP2ZvY3VzIGYgKHQgOiB0KSA6IHQgPVxuICAgICAgbGV0IGZvY3VzID1cbiAgICAgICAgbWF0Y2ggZm9jdXMgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gdC5mb2N1c1xuICAgICAgICB8IFNvbWUgZm9jdXMgLT4gRm9jdXMubWVyZ2UgZm9jdXMgdC5mb2N1c1xuICAgICAgaW5cbiAgICAgIHsgdCB3aXRoIGRlc2MgPSBGb2N1c19hcmVhICh0LCBmKTsgZm9jdXMgfVxuXG4gICAgbGV0IHNoaWZ0X2FyZWEgeCB5IHQgOiB0ID0geyB0IHdpdGggZGVzYyA9IFNoaWZ0X2FyZWEgKHQsIHgsIHkpIH1cblxuICAgIGxldCBzaXplX3NlbnNvciBoYW5kbGVyIHQgOiB0ID1cbiAgICAgIHsgdCB3aXRoIGRlc2MgPSBTaXplX3NlbnNvciAodCwgaGFuZGxlcikgfVxuXG4gICAgbGV0IHRyYW5zaWVudF9zZW5zb3IgZnJhbWVfc2Vuc29yIHQgPVxuICAgICAge1xuICAgICAgICB0IHdpdGhcbiAgICAgICAgZGVzYyA9IFRyYW5zaWVudF9zZW5zb3IgKHQsIGZyYW1lX3NlbnNvcik7XG4gICAgICAgIGZsYWdzID0gdC5mbGFncyBsb3IgZmxhZ190cmFuc2llbnRfc2Vuc29yO1xuICAgICAgfVxuXG4gICAgbGV0IHBlcm1hbmVudF9zZW5zb3IgZnJhbWVfc2Vuc29yIHQgPVxuICAgICAge1xuICAgICAgICB0IHdpdGhcbiAgICAgICAgZGVzYyA9IFBlcm1hbmVudF9zZW5zb3IgKHQsIGZyYW1lX3NlbnNvcik7XG4gICAgICAgIGZsYWdzID0gdC5mbGFncyBsb3IgZmxhZ19wZXJtYW5lbnRfc2Vuc29yO1xuICAgICAgfVxuXG4gICAgbGV0IHByZXBhcmVfZ3Jhdml0eSA9IGZ1bmN0aW9uXG4gICAgICB8IE5vbmUsIE5vbmUgLT4gR3Jhdml0eS4ocGFpciBkZWZhdWx0IGRlZmF1bHQpXG4gICAgICB8IFNvbWUgZywgTm9uZSB8IE5vbmUsIFNvbWUgZyAtPiBHcmF2aXR5LihwYWlyIGcgZylcbiAgICAgIHwgU29tZSBwYWQsIFNvbWUgY3JvcCAtPiBHcmF2aXR5LihwYWlyIHBhZCBjcm9wKVxuXG4gICAgbGV0IHJlc2l6ZSA/dyA/aCA/c3cgP3NoID9wYWQgP2Nyb3AgPyhhdHRyID0gQS5lbXB0eSkgKHQgOiB0KSA6IHRcbiAgICAgICAgPVxuICAgICAgbGV0IF8gPSBhdHRyIGluXG4gICAgICBsZXQgd28sIGhvID0gKHcsIGgpIGluXG4gICAgICBsZXQgZyA9IHByZXBhcmVfZ3Jhdml0eSAocGFkLCBjcm9wKSBpblxuICAgICAgbWF0Y2ggKCh3LCB0LncpLCAoaCwgdC5oKSwgKHN3LCB0LnN3KSwgKHNoLCB0LnNoKSkgd2l0aFxuICAgICAgfCAoIChTb21lIHcsIF8gfCBfLCB3KSxcbiAgICAgICAgICAoU29tZSBoLCBfIHwgXywgaCksXG4gICAgICAgICAgKFNvbWUgc3csIF8gfCBfLCBzdyksXG4gICAgICAgICAgKFNvbWUgc2gsIF8gfCBfLCBzaCkgKSAtPlxuICAgICAgICAgIHsgdCB3aXRoIHc7IGg7IHN3OyBzaDsgZGVzYyA9IFJlc2l6ZSAodCwgd28sIGhvLCBnKSB9XG5cbiAgICBsZXQgcmVzaXplX3RvIChsIDogbGF5b3V0X3NwZWMpID9wYWQgP2Nyb3AgPyhhdHRyID0gQS5lbXB0eSkgdCA6IHRcbiAgICAgICAgPVxuICAgICAgbGV0IF8gPSBhdHRyIGluXG4gICAgICBsZXQgZyA9IHByZXBhcmVfZ3Jhdml0eSAocGFkLCBjcm9wKSBpblxuICAgICAgeyB0IHdpdGggZGVzYyA9IFJlc2l6ZSAodCwgU29tZSBsLncsIFNvbWUgbC5oLCBnKSB9XG5cbiAgICBsZXQgZXZlbnRfZmlsdGVyID9mb2N1cyBmICh0IDogdCkgOiB0ID1cbiAgICAgIGxldCBmb2N1cyA9XG4gICAgICAgIG1hdGNoIGZvY3VzIHdpdGggTm9uZSAtPiB0LmZvY3VzIHwgU29tZSBmb2N1cyAtPiBmb2N1c1xuICAgICAgaW5cbiAgICAgIHsgdCB3aXRoIGRlc2MgPSBFdmVudF9maWx0ZXIgKHQsIGYpOyBmb2N1cyB9XG5cbiAgICBsZXQgam9pbl94IChhIDogdCkgKGIgOiB0KSA9XG4gICAgICB7XG4gICAgICAgIGVtcHR5IHdpdGhcbiAgICAgICAgdyA9IGEudyArLiBiLnc7XG4gICAgICAgIGggPSBtYXggYS5oIGIuaDtcbiAgICAgICAgc3cgPSBhLnN3ICsuIGIuc3c7XG4gICAgICAgIHNoID0gbWF4IGEuc2ggYi5zaDtcbiAgICAgICAgZmxhZ3MgPSBhLmZsYWdzIGxvciBiLmZsYWdzO1xuICAgICAgICBmb2N1cyA9IEZvY3VzLm1lcmdlIGEuZm9jdXMgYi5mb2N1cztcbiAgICAgICAgZGVzYyA9IFggKGEsIGIpO1xuICAgICAgfVxuXG4gICAgbGV0IGpvaW5feSAoYSA6IHQpIChiIDogdCkgPVxuICAgICAge1xuICAgICAgICBlbXB0eSB3aXRoXG4gICAgICAgIHcgPSBtYXggYS53IGIudztcbiAgICAgICAgaCA9IGEuaCArLiBiLmg7XG4gICAgICAgIHN3ID0gbWF4IGEuc3cgYi5zdztcbiAgICAgICAgc2ggPSBhLnNoICsuIGIuc2g7XG4gICAgICAgIGZsYWdzID0gYS5mbGFncyBsb3IgYi5mbGFncztcbiAgICAgICAgZm9jdXMgPSBGb2N1cy5tZXJnZSBhLmZvY3VzIGIuZm9jdXM7XG4gICAgICAgIGRlc2MgPSBZIChhLCBiKTtcbiAgICAgIH1cblxuICAgIGxldCBqb2luX3ogKGEgOiB0KSAoYiA6IHQpID1cbiAgICAgIHtcbiAgICAgICAgZW1wdHkgd2l0aFxuICAgICAgICB3ID0gbWF4IGEudyBiLnc7XG4gICAgICAgIGggPSBtYXggYS5oIGIuaDtcbiAgICAgICAgc3cgPSBtYXggYS5zdyBiLnN3O1xuICAgICAgICBzaCA9IG1heCBhLnNoIGIuc2g7XG4gICAgICAgIGZsYWdzID0gYS5mbGFncyBsb3IgYi5mbGFncztcbiAgICAgICAgZm9jdXMgPSBGb2N1cy5tZXJnZSBhLmZvY3VzIGIuZm9jdXM7XG4gICAgICAgIGRlc2MgPSBaIChhLCBiKTtcbiAgICAgIH1cblxuICAgIGxldCBwYWNrX3ggPSAoZW1wdHksIGpvaW5feClcbiAgICBsZXQgcGFja195ID0gKGVtcHR5LCBqb2luX3kpXG4gICAgbGV0IHBhY2tfeiA9IChlbXB0eSwgam9pbl96KVxuICAgIGxldCBoY2F0IHhzID0gTHdkX3V0aWxzLnJlZHVjZSBwYWNrX3ggeHNcbiAgICBsZXQgdmNhdCB4cyA9IEx3ZF91dGlscy5yZWR1Y2UgcGFja195IHhzXG4gICAgbGV0IHpjYXQgeHMgPSBMd2RfdXRpbHMucmVkdWNlIHBhY2tfeiB4c1xuICAgIGxldCBoYXNfZm9jdXMgdCA9IEZvY3VzLmhhc19mb2N1cyB0LmZvY3VzXG5cbiAgICBsZXQgcmVjIHBwIHBwZiB0ID1cbiAgICAgIEYucGYgcHBmIFwiQFs8aG92PmZvY3VzPSVhICVhQF1cIiBGb2N1cy5wcF9zdGF0dXMgdC5mb2N1cyBwcF9kZXNjXG4gICAgICAgIHQuZGVzY1xuXG4gICAgYW5kIHBwX2Rlc2MgcHBmID0gZnVuY3Rpb25cbiAgICAgIHwgQXRvbSBhIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiQXRvbSBAWzxob3Y+KCVhKUBdXCJcbiAgICAgICAgICAgIChJLkRyYXcucHAgP2F0dHI6Tm9uZSkgYVxuICAgICAgfCBTaXplX3NlbnNvciAoZGVzYywgXykgLT5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJTaXplX3NlbnNvciAoJWEsIF8pXCIgcHAgZGVzY1xuICAgICAgfCBUcmFuc2llbnRfc2Vuc29yIChkZXNjLCBfKSAtPlxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIlRyYW5zaWVudF9zZW5zb3IgKCVhLEAgXylcIiBwcCBkZXNjXG4gICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiUGVybWFuZW50X3NlbnNvciAoJWEsQCBfKVwiIHBwIGRlc2NcbiAgICAgIHwgUmVzaXplIChkZXNjLCB4LCB5LCBfZ3Jhdml0eSkgLT5cbiAgICAgICAgICBGLnBmIHBwZiBcIlJlc2l6ZSAoJWEsICVhLEAgXyxAICVhKVwiIChGLm9wdGlvbiBwcF9mbG9hdCkgeFxuICAgICAgICAgICAgKEYub3B0aW9uIHBwX2Zsb2F0KSB5XG4gICAgICAgICAgICAoKiBHcmF2aXR5LnBwIChHcmF2aXR5LnAxIGdyYXZpdHkpIEdyYXZpdHkucHBcbiAgICAgICAgICAgICAgIChHcmF2aXR5LnAyIGdyYXZpdHkpICopXG4gICAgICAgICAgICBwcCBkZXNjXG4gICAgICB8IE1vdXNlX2hhbmRsZXIgKG4sIF8pIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiJWFcIiAoKlwiTW91c2UgKCVhLEAgXylcIiopIHBwIG5cbiAgICAgIHwgRm9jdXNfYXJlYSAobiwgXykgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiRm9jdXMgKCVhLEAgXylcIiBwcCBuXG4gICAgICB8IFNoaWZ0X2FyZWEgKG4sIHgsIHkpIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiU2hpZnQgKCUuMGYsJS4wZiwlYSlcIiB4IHkgcHAgblxuICAgICAgfCBFdmVudF9maWx0ZXIgKG4sIF8pIC0+XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiRXZlbnQgKCVhLEAgXylcIiBwcCBuXG4gICAgICB8IFggKGEsIGIpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIlggKEBbJWEsQCAlYUBdKVwiIHBwIGEgcHAgYlxuICAgICAgfCBZIChhLCBiKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJZIChAWyVhLEAgJWFAXSlcIiBwcCBhIHBwIGJcbiAgICAgIHwgWiAoYSwgYikgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiWiAoQFslYSxAICVhQF0pXCIgcHAgYSBwcCBiXG5cbiAgICBsZXQgaXRlciBmIHVpID1cbiAgICAgIG1hdGNoIHVpLmRlc2Mgd2l0aFxuICAgICAgfCBBdG9tIF8gLT4gKClcbiAgICAgIHwgU2l6ZV9zZW5zb3IgKHUsIF8pXG4gICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHUsIF8pXG4gICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHUsIF8pXG4gICAgICB8IFJlc2l6ZSAodSwgXywgXywgXylcbiAgICAgIHwgTW91c2VfaGFuZGxlciAodSwgXylcbiAgICAgIHwgRm9jdXNfYXJlYSAodSwgXylcbiAgICAgIHwgU2hpZnRfYXJlYSAodSwgXywgXylcbiAgICAgIHwgRXZlbnRfZmlsdGVyICh1LCBfKSAtPlxuICAgICAgICAgIGYgdVxuICAgICAgfCBYICh1MSwgdTIpIHwgWSAodTEsIHUyKSB8IFogKHUxLCB1MikgLT5cbiAgICAgICAgICBmIHUxO1xuICAgICAgICAgIGYgdTJcbiAgZW5kXG5cbiAgdHlwZSB1aSA9IFVpLnRcblxuICBtb2R1bGUgUmVuZGVyZXIgPSBzdHJ1Y3RcbiAgICBvcGVuIFVpXG5cbiAgICB0eXBlIHNpemUgPSBHZy5wMlxuXG4gICAgdHlwZSBncmFiX2Z1bmN0aW9uID1cbiAgICAgICh4OmZsb2F0IC0+IHk6ZmxvYXQgLT4gdW5pdCkgKiAoeDpmbG9hdCAtPiB5OmZsb2F0IC0+IHVuaXQpXG5cbiAgICB0eXBlIHQgPSB7XG4gICAgICB2ZyA6IE5WRy50O1xuICAgICAgbXV0YWJsZSBzaXplIDogc2l6ZTtcbiAgICAgIG11dGFibGUgdmlldyA6IHVpO1xuICAgICAgbXV0YWJsZSBtb3VzZV9ncmFiIDogZ3JhYl9mdW5jdGlvbiBvcHRpb247XG4gICAgfVxuXG4gICAgbGV0IG1ha2UgdmcgKCkgPVxuICAgICAgeyB2ZzsgbW91c2VfZ3JhYiA9IE5vbmU7IHNpemUgPSBQMi5vOyB2aWV3ID0gVWkuZW1wdHkgfVxuXG4gICAgbGV0IHNpemUgdCA9IHQuc2l6ZVxuXG4gICAgbGV0IHNvbHZlX2ZvY3VzICh1aSA6IHVpKSBpID1cbiAgICAgIGxldCByZWMgYXV4IHVpID1cbiAgICAgICAgbWF0Y2ggdWkuZm9jdXMgd2l0aFxuICAgICAgICB8IEZvY3VzLkVtcHR5IHwgRm9jdXMuSGFuZGxlICgwLCBfKSAtPiAoKVxuICAgICAgICB8IEZvY3VzLkhhbmRsZSAoaScsIF8pIHdoZW4gaSA9IGknIC0+ICgpXG4gICAgICAgIHwgRm9jdXMuSGFuZGxlIChfLCB2KSAtPiBMd2Quc2V0IHYgMFxuICAgICAgICB8IEZvY3VzLkNvbmZsaWN0IF8gLT4gaXRlciBhdXggdWlcbiAgICAgIGluXG4gICAgICBhdXggdWlcblxuICAgIGxldCBzcGxpdCB+YSB+c2EgfmIgfnNiIHRvdGFsID1cbiAgICAgIGxldCBzdHJldGNoID0gc2EgKy4gc2IgaW5cbiAgICAgIGxldCBmbGV4ID0gdG90YWwgLS4gYSAtLiBiIGluXG4gICAgICBsZXQgYScsIGInID1cbiAgICAgICAgaWYgc3RyZXRjaCA+IDAuICYmIGZsZXggPiAwLiB0aGVuXG4gICAgICAgICAgbGV0IHJhdGlvID1cbiAgICAgICAgICAgIGlmIHNhID4gc2IgdGhlbiBmbGV4ICouIHNhIC8uIHN0cmV0Y2hcbiAgICAgICAgICAgIGVsc2UgZmxleCAtLiAoZmxleCAqLiBzYiAvLiBzdHJldGNoKVxuICAgICAgICAgIGluXG4gICAgICAgICAgKGEgKy4gcmF0aW8sIGIgKy4gZmxleCAtLiByYXRpbylcbiAgICAgICAgZWxzZSAoYSwgYilcbiAgICAgIGluXG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgICAgICBtXG4gICAgICAgICAgICAgICAgIFwic3BsaXQ6IGE9JS4xZiBzYT0lLjFmIGI9JS4xZiBzYj0lLjFmIHRvdGFsPSUuMWYgKCUuMWYsIFxcXG4gICAgICAgICAgICAgICAgICAlLjFmKVwiXG4gICAgICAgICAgICAgICAgIGEgc2EgYiBzYiB0b3RhbCBhJyBiJyk7ICopXG4gICAgICAoYScsIGInKVxuXG4gICAgbGV0IHBhY2sgfmZpeGVkIH5zdHJldGNoIHRvdGFsIGcxIGcyID1cbiAgICAgIGxldCB2MSwgdjIgPVxuICAgICAgICBsZXQgZmxleCA9IHRvdGFsIC0uIGZpeGVkIGluXG4gICAgICAgIGlmIHN0cmV0Y2ggPiAwLiAmJiBmbGV4ID4gMC4gdGhlbiAoMC4sIHRvdGFsKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IGdyYXZpdHkgPSBpZiBmbGV4ID49IDAuIHRoZW4gZzEgZWxzZSBnMiBpblxuICAgICAgICAgIG1hdGNoIGdyYXZpdHkgd2l0aFxuICAgICAgICAgIHwgYE5lZ2F0aXZlIC0+ICgwLiwgZml4ZWQpXG4gICAgICAgICAgfCBgTmV1dHJhbCAtPiAoZmxleCAvLiAyLiwgZml4ZWQpXG4gICAgICAgICAgfCBgUG9zaXRpdmUgLT4gKGZsZXgsIGZpeGVkKVxuICAgICAgaW5cbiAgICAgICgqIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgbSBcInBhY2sgZml4ZWQ9JS4xZiBzdHJldGNoPSUuMWYgdG90YWw9JS4xZiAoJS4xZiwgJS4xZilcIlxuICAgICAgICAgICAgIGZpeGVkIHN0cmV0Y2ggdG90YWwgdjEgdjIpOyAqKVxuICAgICAgKHYxLCB2MilcblxuICAgIGxldCBoYXNfdHJhbnNpZW50X3NlbnNvciBmbGFncyA9XG4gICAgICBmbGFncyBsYW5kIGZsYWdfdHJhbnNpZW50X3NlbnNvciA8PiAwXG5cbiAgICBsZXQgaGFzX3Blcm1hbmVudF9zZW5zb3IgZmxhZ3MgPVxuICAgICAgZmxhZ3MgbGFuZCBmbGFnX3Blcm1hbmVudF9zZW5zb3IgPD4gMFxuXG4gICAgbGV0IHJlYyB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCAodWkgOiB1aSkgPVxuICAgICAgaWZcbiAgICAgICAgaGFzX3RyYW5zaWVudF9zZW5zb3IgdWkuZmxhZ3NcbiAgICAgICAgfHwgaGFzX3Blcm1hbmVudF9zZW5zb3IgdWkuZmxhZ3NcbiAgICAgICAgICAgJiZcbiAgICAgICAgICAgbWF0Y2ggdWkuc2Vuc29yX2NhY2hlIHdpdGhcbiAgICAgICAgICAgfCBOb25lIC0+IGZhbHNlXG4gICAgICAgICAgIHwgU29tZSAob3gnLCBveScsIHN3Jywgc2gnKSAtPlxuICAgICAgICAgICAgICAgb3ggPSBveCcgJiYgb3kgPSBveScgJiYgc3cgPSBzdycgJiYgc2ggPSBzaCdcbiAgICAgIHRoZW4gKFxuICAgICAgICB1aS5mbGFncyA8LSB1aS5mbGFncyBsYW5kIGxub3QgZmxhZ190cmFuc2llbnRfc2Vuc29yO1xuICAgICAgICBpZiBoYXNfcGVybWFuZW50X3NlbnNvciB1aS5mbGFncyB0aGVuXG4gICAgICAgICAgdWkuc2Vuc29yX2NhY2hlIDwtIFNvbWUgKG94LCBveSwgc3csIHNoKTtcbiAgICAgICAgbWF0Y2ggdWkuZGVzYyB3aXRoXG4gICAgICAgIHwgQXRvbSBfIC0+ICgpXG4gICAgICAgIHwgU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgICAgfCBGb2N1c19hcmVhICh0LCBfKVxuICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgXykgLT5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoIHRcbiAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBzZW5zb3IpIC0+XG4gICAgICAgICAgICB1aS5kZXNjIDwtIHQuZGVzYztcbiAgICAgICAgICAgIGxldCBzZW5zb3IgPSBzZW5zb3Igfng6b3ggfnk6b3kgfnc6c3cgfmg6c2ggaW5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoIHQ7XG4gICAgICAgICAgICBzZW5zb3IgKClcbiAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBzZW5zb3IpIC0+XG4gICAgICAgICAgICBsZXQgc2Vuc29yID0gc2Vuc29yIH54Om94IH55Om95IH53OnN3IH5oOnNoIGluXG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCBveSBzdyBzaCB0O1xuICAgICAgICAgICAgc2Vuc29yICgpXG4gICAgICAgIHwgUmVzaXplICh0LCB4LCB5LCBnKSAtPlxuICAgICAgICAgICAgbGV0IG9wZW4gR3Jhdml0eSBpblxuICAgICAgICAgICAgbGV0IGR4LCBydyA9XG4gICAgICAgICAgICAgIHBhY2tcbiAgICAgICAgICAgICAgICB+Zml4ZWQ6KE9wdGlvbi52YWx1ZSB4IH5kZWZhdWx0OnQudylcbiAgICAgICAgICAgICAgICB+c3RyZXRjaDp0LnN3IHN3XG4gICAgICAgICAgICAgICAgKGggKHAxIGcpKVxuICAgICAgICAgICAgICAgIChoIChwMiBnKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICBsZXQgZHksIHJoID1cbiAgICAgICAgICAgICAgcGFja1xuICAgICAgICAgICAgICAgIH5maXhlZDooT3B0aW9uLnZhbHVlIHkgfmRlZmF1bHQ6dC5oKVxuICAgICAgICAgICAgICAgIH5zdHJldGNoOnQuc2ggc2hcbiAgICAgICAgICAgICAgICAodiAocDEgZykpXG4gICAgICAgICAgICAgICAgKHYgKHAyIGcpKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIChveCArLiBkeCkgKG95ICsuIGR5KSBydyByaCB0XG4gICAgICAgIHwgU2hpZnRfYXJlYSAodCwgc3gsIHN5KSAtPlxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgKG94IC0uIHN4KSAob3kgLS4gc3kpIHN3IHNoIHRcbiAgICAgICAgfCBYIChhLCBiKSAtPlxuICAgICAgICAgICAgbGV0IGF3LCBidyA9IHNwbGl0IH5hOmEudyB+c2E6YS5zdyB+YjpiLncgfnNiOmIuc3cgc3cgaW5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IGF3IHNoIGE7XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyAob3ggKy4gYXcpIG95IGJ3IHNoIGJcbiAgICAgICAgfCBZIChhLCBiKSAtPlxuICAgICAgICAgICAgbGV0IGFoLCBiaCA9IHNwbGl0IH5hOmEuaCB+c2E6YS5zaCB+YjpiLmggfnNiOmIuc2ggc2ggaW5cbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IGFoIGE7XG4gICAgICAgICAgICB1cGRhdGVfc2Vuc29ycyBveCAob3kgKy4gYWgpIHN3IGJoIGJcbiAgICAgICAgfCBaIChhLCBiKSAtPlxuICAgICAgICAgICAgdXBkYXRlX3NlbnNvcnMgb3ggb3kgc3cgc2ggYTtcbiAgICAgICAgICAgIHVwZGF0ZV9zZW5zb3JzIG94IG95IHN3IHNoIGIpXG5cbiAgICBsZXQgdXBkYXRlX2ZvY3VzIHVpID1cbiAgICAgIG1hdGNoIHVpLmZvY3VzIHdpdGhcbiAgICAgIHwgRm9jdXMuRW1wdHkgfCBGb2N1cy5IYW5kbGUgXyAtPiAoKVxuICAgICAgfCBGb2N1cy5Db25mbGljdCBpIC0+IHNvbHZlX2ZvY3VzIHVpIGlcblxuICAgIGxldCByZWMgdF9zaXplX2Rlc2Nfb2ZfdCB2ZyAoc2l6ZSA6IGJveDIpICh1aSA6IFVpLnQgZGVzYykgPVxuICAgICAgbWF0Y2ggdWkgd2l0aFxuICAgICAgfCBBdG9tIF8gYXMgYSAtPiBhXG4gICAgICB8IFNpemVfc2Vuc29yICh0LCB2KSAtPiBTaXplX3NlbnNvciAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCB2KSAtPlxuICAgICAgICAgIE1vdXNlX2hhbmRsZXIgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgRm9jdXNfYXJlYSAodCwgdikgLT4gRm9jdXNfYXJlYSAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIHYpIC0+IEV2ZW50X2ZpbHRlciAodF9zaXplX29mX3Qgdmcgc2l6ZSB0LCB2KVxuICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCB2KSAtPlxuICAgICAgICAgIFRyYW5zaWVudF9zZW5zb3IgKHRfc2l6ZV9vZl90IHZnIHNpemUgdCwgdilcbiAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgdikgLT5cbiAgICAgICAgICBQZXJtYW5lbnRfc2Vuc29yICh0X3NpemVfb2ZfdCB2ZyBzaXplIHQsIHYpXG4gICAgICB8IFJlc2l6ZSAodCwgdywgaCwgZzIpIC0+XG4gICAgICAgICAgUmVzaXplXG4gICAgICAgICAgICAoIHRfc2l6ZV9vZl90IHZnXG4gICAgICAgICAgICAgICAgKEJveDIudiAoQm94Mi5vIHNpemUpXG4gICAgICAgICAgICAgICAgICAgKFYyLnZcbiAgICAgICAgICAgICAgICAgICAgICAoT3B0aW9uLnZhbHVlIHcgfmRlZmF1bHQ6KEJveDIudyBzaXplKSlcbiAgICAgICAgICAgICAgICAgICAgICAoT3B0aW9uLnZhbHVlIGggfmRlZmF1bHQ6KEJveDIuaCBzaXplKSkpKVxuICAgICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgIHcsXG4gICAgICAgICAgICAgIGgsXG4gICAgICAgICAgICAgIGcyIClcbiAgICAgIHwgU2hpZnRfYXJlYSAodCwgc3gsIHN5KSAtPlxuICAgICAgICAgIFNoaWZ0X2FyZWFcbiAgICAgICAgICAgICggdF9zaXplX29mX3QgdmdcbiAgICAgICAgICAgICAgICAoQm94Mi5vZl9wdHNcbiAgICAgICAgICAgICAgICAgICBWMi4oQm94Mi5vIHNpemUgLSBvZl90dXBsZSAoc3gsIHN5KSlcbiAgICAgICAgICAgICAgICAgICAoQm94Mi5tYXggc2l6ZSkpXG4gICAgICAgICAgICAgICAgdCxcbiAgICAgICAgICAgICAgc3gsXG4gICAgICAgICAgICAgIHN5IClcbiAgICAgIHwgWCAoYSwgYikgLT5cbiAgICAgICAgICBsZXQgYScgPSB0X3NpemVfb2ZfdCB2ZyBzaXplIGEgaW5cbiAgICAgICAgICBsZXQgYicgPVxuICAgICAgICAgICAgdF9zaXplX29mX3QgdmdcbiAgICAgICAgICAgICAgKEJveDIub2ZfcHRzXG4gICAgICAgICAgICAgICAgIFYyLih2IChCb3gyLm1pbnggc2l6ZSArLiBhJy53KSAoQm94Mi5taW55IHNpemUpKVxuICAgICAgICAgICAgICAgICAoQm94Mi5tYXggc2l6ZSkpXG4gICAgICAgICAgICAgIGJcbiAgICAgICAgICBpblxuICAgICAgICAgIFggKGEnLCBiJylcbiAgICAgIHwgWSAoYSwgYikgLT5cbiAgICAgICAgICBsZXQgYScgPSB0X3NpemVfb2ZfdCB2ZyBzaXplIGEgaW5cbiAgICAgICAgICBsZXQgYicgPVxuICAgICAgICAgICAgdF9zaXplX29mX3QgdmdcbiAgICAgICAgICAgICAgKEJveDIub2ZfcHRzXG4gICAgICAgICAgICAgICAgIFYyLih2IChCb3gyLm1pbnggc2l6ZSkgKEJveDIubWlueSBzaXplICsuIGEnLmgpKVxuICAgICAgICAgICAgICAgICAoQm94Mi5tYXggc2l6ZSkpXG4gICAgICAgICAgICAgIGJcbiAgICAgICAgICBpblxuICAgICAgICAgIFkgKGEnLCBiJylcbiAgICAgIHwgWiAoYSwgYikgLT4gWiAodF9zaXplX29mX3Qgdmcgc2l6ZSBhLCB0X3NpemVfb2ZfdCB2ZyBzaXplIGIpXG5cbiAgICBhbmQgdF9zaXplX29mX3QgdmcgKHNpemUgOiBib3gyKSAodWkgOiBVaS50KSA6IHVpID1cbiAgICAgIGxldCBkZXNjID0gdF9zaXplX2Rlc2Nfb2ZfdCB2ZyBzaXplIHVpLmRlc2MgaW5cbiAgICAgIGxldCB3LCBoID1cbiAgICAgICAgbWF0Y2ggZGVzYyB3aXRoXG4gICAgICAgIHwgQXRvbSBpIC0+IFYyLnRvX3R1cGxlIChJLnNpemUgdmcgKEJveDIubyBzaXplKSBpKVxuICAgICAgICB8IFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgICB8IE1vdXNlX2hhbmRsZXIgKHQsIF8pXG4gICAgICAgIHwgRm9jdXNfYXJlYSAodCwgXylcbiAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF8pXG4gICAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodCwgXylcbiAgICAgICAgfCBQZXJtYW5lbnRfc2Vuc29yICh0LCBfKSAtPlxuICAgICAgICAgICAgKHQudywgdC5oKVxuICAgICAgICB8IFJlc2l6ZSAodCwgdywgaCwgXykgLT5cbiAgICAgICAgICAgIChPcHRpb24udmFsdWUgdyB+ZGVmYXVsdDp0LncsIE9wdGlvbi52YWx1ZSBoIH5kZWZhdWx0OnQuaClcbiAgICAgICAgfCBTaGlmdF9hcmVhICh0LCB4LCB5KSAtPiAodC53ICsuIHgsIHQuaCArLiB5KVxuICAgICAgICB8IFggKGEsIGIpIC0+IChhLncgKy4gYi53LCBtYXggYS5oIGIuaClcbiAgICAgICAgfCBZIChhLCBiKSAtPiAobWF4IGEudyBiLncsIGEuaCArLiBiLmgpXG4gICAgICAgIHwgWiAoYSwgYikgLT4gKG1heCBhLncgYi53LCBtYXggYS5oIGIuaClcbiAgICAgIGluXG4gICAgICB7IHVpIHdpdGggdzsgaDsgZGVzYzsgc2Vuc29yX2NhY2hlID0gTm9uZTsgY2FjaGUgfVxuXG4gICAgbGV0IHVwZGF0ZSB0IHNpemUgKHVpIDogVWkudCkgPVxuICAgICAgdC5zaXplIDwtIHNpemU7XG4gICAgICB0LnZpZXcgPC0gdF9zaXplX29mX3QgdC52ZyAoQm94Mi52IFYyLnplcm8gc2l6ZSkgdWk7XG4gICAgICB1cGRhdGVfc2Vuc29ycyAwLiAwLiAoUDIueCBzaXplKSAoUDIueSBzaXplKSB0LnZpZXc7XG4gICAgICB1cGRhdGVfZm9jdXMgdC52aWV3XG5cbiAgICBsZXQgZGlzcGF0Y2hfbW91c2Ugc3QgeCB5IGJ0biB3IGggdCA9XG4gICAgICBsZXQgaGFuZGxlIG94IG95IGYgPVxuICAgICAgICBtYXRjaCBmIH54Oih4IC0uIG94KSB+eTooeSAtLiBveSkgYnRuIHdpdGhcbiAgICAgICAgfCBgVW5oYW5kbGVkIC0+IGZhbHNlXG4gICAgICAgIHwgYEhhbmRsZWQgLT4gdHJ1ZVxuICAgICAgICB8IGBHcmFiIGYgLT5cbiAgICAgICAgICAgIHN0Lm1vdXNlX2dyYWIgPC0gU29tZSBmO1xuICAgICAgICAgICAgdHJ1ZVxuICAgICAgaW5cbiAgICAgIGxldCByZWMgYXV4IG94IG95IHN3IHNoIHQgPVxuICAgICAgICBtYXRjaCB0LmRlc2Mgd2l0aFxuICAgICAgICB8IEF0b20gXyAtPiBmYWxzZVxuICAgICAgICB8IFggKGEsIGIpIC0+XG4gICAgICAgICAgICBsZXQgYXcsIGJ3ID0gc3BsaXQgfmE6YS53IH5zYTphLnN3IH5iOmIudyB+c2I6Yi5zdyBzdyBpblxuICAgICAgICAgICAgaWYgeCAtLiBveCA8IGF3IHRoZW4gYXV4IG94IG95IGF3IHNoIGFcbiAgICAgICAgICAgIGVsc2UgYXV4IChveCArLiBhdykgb3kgYncgc2ggYlxuICAgICAgICB8IFkgKGEsIGIpIC0+XG4gICAgICAgICAgICBsZXQgYWgsIGJoID0gc3BsaXQgfmE6YS5oIH5zYTphLnNoIH5iOmIuaCB+c2I6Yi5zaCBzaCBpblxuICAgICAgICAgICAgaWYgeSAtLiBveSA8IGFoIHRoZW4gYXV4IG94IG95IHN3IGFoIGFcbiAgICAgICAgICAgIGVsc2UgYXV4IG94IChveSArLiBhaCkgc3cgYmggYlxuICAgICAgICB8IFogKGEsIGIpIC0+IGF1eCBveCBveSBzdyBzaCBiIHx8IGF1eCBveCBveSBzdyBzaCBhXG4gICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgZikgLT5cbiAgICAgICAgICAgIGxldCBfb2Zmc2V0eCwgcncgPVxuICAgICAgICAgICAgICBwYWNrIH5maXhlZDp0LncgfnN0cmV0Y2g6dC5zdyBzdyBgTmVnYXRpdmUgYE5lZ2F0aXZlXG4gICAgICAgICAgICBhbmQgX29mZnNldHksIHJoID1cbiAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC5oIH5zdHJldGNoOnQuc2ggc2ggYE5lZ2F0aXZlIGBOZWdhdGl2ZVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGFzc2VydCAoX29mZnNldHggPSAwLiAmJiBfb2Zmc2V0eSA9IDAuKTtcbiAgICAgICAgICAgICh4IC0uIG94ID49IDAuXG4gICAgICAgICAgICAmJiB4IC0uIG94IDw9IHJ3XG4gICAgICAgICAgICAmJiB5IC0uIG95ID49IDAuXG4gICAgICAgICAgICAmJiB5IC0uIG95IDw9IHJoKVxuICAgICAgICAgICAgJiYgKGF1eCBveCBveSBzdyBzaCB0IHx8IGhhbmRsZSBveCBveSBmKVxuICAgICAgICB8IFNpemVfc2Vuc29yIChkZXNjLCBfKVxuICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKGRlc2MsIF8pXG4gICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAoZGVzYywgXylcbiAgICAgICAgfCBGb2N1c19hcmVhIChkZXNjLCBfKSAtPlxuICAgICAgICAgICAgYXV4IG94IG95IHN3IHNoIGRlc2NcbiAgICAgICAgfCBTaGlmdF9hcmVhIChkZXNjLCBzeCwgc3kpIC0+XG4gICAgICAgICAgICBhdXggKG94IC0uIHN4KSAob3kgLS4gc3kpIHN3IHNoIGRlc2NcbiAgICAgICAgfCBSZXNpemUgKHQsIF8sIF8sIGcpIC0+XG4gICAgICAgICAgICBsZXQgb3BlbiBHcmF2aXR5IGluXG4gICAgICAgICAgICBsZXQgZHgsIHJ3ID1cbiAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC53IH5zdHJldGNoOnQuc3cgc3cgKGggKHAxIGcpKSAoaCAocDIgZykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgbGV0IGR5LCByaCA9XG4gICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQuaCB+c3RyZXRjaDp0LnNoIHNoICh2IChwMSBnKSkgKHYgKHAyIGcpKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIGF1eCAob3ggKy4gZHgpIChveSArLiBkeSkgcncgcmggdFxuICAgICAgICB8IEV2ZW50X2ZpbHRlciAobiwgZikgLT4gKFxuICAgICAgICAgICAgbWF0Y2ggZiAoYE1vdXNlIChgUHJlc3MgYnRuLCAoeCwgeSksIFtdKSkgd2l0aFxuICAgICAgICAgICAgfCBgSGFuZGxlZCAtPiB0cnVlXG4gICAgICAgICAgICB8IGBVbmhhbmRsZWQgLT4gYXV4IG94IG95IHN3IHNoIG4pXG4gICAgICBpblxuICAgICAgYXV4IDAuIDAuIHcgaCB0XG5cbiAgICBsZXQgcmVsZWFzZV9ncmFiIHN0IHggeSA9XG4gICAgICBtYXRjaCBzdC5tb3VzZV9ncmFiIHdpdGhcbiAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgfCBTb21lIChfLCByZWxlYXNlKSAtPlxuICAgICAgICAgIHN0Lm1vdXNlX2dyYWIgPC0gTm9uZTtcbiAgICAgICAgICByZWxlYXNlIH54IH55XG5cbiAgICBsZXQgcmVzaXplX2NhbnZhcyB2ZyBydyByaCBpbWFnZSA9XG4gICAgICBsZXQgdywgaCA9IFYyLnRvX3R1cGxlIEBAIEkuc2l6ZSB2ZyBWMi56ZXJvIGltYWdlIGluXG4gICAgICAoKiBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgIG0gXCJyZXNpemVfY2FudmFzOiB3PSUuMWYgcnc9JS4xZiBoPSUuMWYgcmg9JS4xZlwiIHcgcncgaCByaCk7ICopXG4gICAgICBpZiB3IDw+IHJ3IHx8IGggPD4gcmggdGhlbiBJLnBhZCB+cjoocncgLS4gdykgfmI6KHJoIC0uIGgpIGltYWdlXG4gICAgICBlbHNlIGltYWdlXG5cbiAgICBsZXQgcmVzaXplX2NhbnZhczIgdmcgb3ggb3kgcncgcmggaW1hZ2UgPVxuICAgICAgbGV0IHcsIGggPSBWMi50b190dXBsZSBAQCBJLnNpemUgdmcgVjIuemVybyBpbWFnZSBpblxuICAgICAgSS5wYWQgfmw6b3ggfnQ6b3kgfnI6KHJ3IC0uIHcgLS4gb3gpIH5iOihyaCAtLiBoIC0uIG95KSBpbWFnZVxuXG4gICAgbGV0IHNhbWVfc2l6ZSB2ZyB3IGggaW1hZ2UgPVxuICAgICAgVjIuKGVxdWFsIChvZl90dXBsZSAodywgaCkpIChJLnNpemUgdmcgVjIuemVybyBpbWFnZSkpXG5cbiAgICBsZXQgZGlzcGF0Y2hfbW91c2UgdCAoZXZlbnQsICh4LCB5KSwgX21vZHMpID1cbiAgICAgIGlmXG4gICAgICAgIG1hdGNoIGV2ZW50IHdpdGhcbiAgICAgICAgfCBgUHJlc3MgYnRuIC0+XG4gICAgICAgICAgICByZWxlYXNlX2dyYWIgdCB4IHk7XG4gICAgICAgICAgICBsZXQgdywgaCA9IFYyLnRvX3R1cGxlIHQuc2l6ZSBpblxuICAgICAgICAgICAgZGlzcGF0Y2hfbW91c2UgdCB4IHkgYnRuIHcgaCB0LnZpZXdcbiAgICAgICAgfCBgRHJhZyAtPiAoXG4gICAgICAgICAgICBtYXRjaCB0Lm1vdXNlX2dyYWIgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGZhbHNlXG4gICAgICAgICAgICB8IFNvbWUgKGRyYWcsIF8pIC0+XG4gICAgICAgICAgICAgICAgZHJhZyB+eCB+eTtcbiAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICB8IGBSZWxlYXNlIC0+XG4gICAgICAgICAgICByZWxlYXNlX2dyYWIgdCB4IHk7XG4gICAgICAgICAgICB0cnVlXG4gICAgICB0aGVuIGBIYW5kbGVkXG4gICAgICBlbHNlIGBVbmhhbmRsZWRcblxuICAgIGxldCByZWMgcmVuZGVyX25vZGUgdmcgKHZ4MSA6IHNpemUxKSAodnkxIDogc2l6ZTEpICh2eDIgOiBzaXplMSlcbiAgICAgICAgKHZ5MiA6IHNpemUxKSAoc3cgOiBzaXplMSkgKHNoIDogc2l6ZTEpICh0IDogdWkpIDogY2FjaGUgPVxuICAgICAgKCogTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICBtXG4gICAgICAgICAgICAgXCJyZW5kZXJfbm9kZSB2eDE9JS4wZkAgdnkxPSUuMGZAIHZ4Mj0lLjBmQCB2eTI9JS4wZkAgXFxcbiAgICAgICAgICAgICAgc3c9JS4wZkAgc2g9JS4wZkAgQFslYUBdXCJcbiAgICAgICAgICAgICB2eDEgdnkxIHZ4MiB2eTIgc3cgc2ggcHAgdCk7ICopXG4gICAgICBpZlxuICAgICAgICBsZXQgY2FjaGUgPSB0LmNhY2hlIGluXG4gICAgICAgIHZ4MSA+PSBJbnRlcnZhbC5mc3QgY2FjaGUudnhcbiAgICAgICAgJiYgdnkxID49IEludGVydmFsLmZzdCBjYWNoZS52eVxuICAgICAgICAmJiB2eDIgPD0gSW50ZXJ2YWwuc25kIGNhY2hlLnZ4XG4gICAgICAgICYmIHZ5MiA8PSBJbnRlcnZhbC5zbmQgY2FjaGUudnlcbiAgICAgIHRoZW4gdC5jYWNoZVxuICAgICAgZWxzZSBpZiB2eDIgPCAwLiB8fCB2eTIgPCAwLiB8fCBzdyA8IHZ4MSB8fCBzaCA8IHZ5MSB0aGVuXG4gICAgICAgIHtcbiAgICAgICAgICB2eCA9IEludGVydmFsLm1ha2UgdngxIHZ4MjtcbiAgICAgICAgICB2eSA9IEludGVydmFsLm1ha2UgdnkxIHZ5MjtcbiAgICAgICAgICBpbWFnZSA9IEkudm9pZCBzdyBzaDtcbiAgICAgICAgfVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgY2FjaGUgPVxuICAgICAgICAgIG1hdGNoIHQuZGVzYyB3aXRoXG4gICAgICAgICAgfCBBdG9tIGltYWdlIC0+XG4gICAgICAgICAgICAgIGxldCBpbWFnZSA9XG4gICAgICAgICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIHQuZm9jdXMgdGhlbiAoXG4gICAgICAgICAgICAgICAgICBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJyZW5kZXJfbm9kZSBBdG9tIGhhc19mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgIEkuYXR0ciBBLmNsaWNrYWJsZSBpbWFnZSlcbiAgICAgICAgICAgICAgICBlbHNlIGltYWdlXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2eCA9IEludGVydmFsLm1ha2UgMC4gc3c7XG4gICAgICAgICAgICAgICAgdnkgPSBJbnRlcnZhbC5tYWtlIDAuIHNoO1xuICAgICAgICAgICAgICAgIGltYWdlID0gcmVzaXplX2NhbnZhcyB2ZyBzdyBzaCBpbWFnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHwgU2l6ZV9zZW5zb3IgKGRlc2MsIGhhbmRsZXIpIC0+XG4gICAgICAgICAgICAgIGhhbmRsZXIgfnc6c3cgfmg6c2g7XG4gICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBkZXNjXG4gICAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yIChkZXNjLCBfKSB8IFBlcm1hbmVudF9zZW5zb3IgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBkZXNjXG4gICAgICAgICAgfCBGb2N1c19hcmVhIChkZXNjLCBfKSB8IE1vdXNlX2hhbmRsZXIgKGRlc2MsIF8pIC0+XG4gICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCBkZXNjXG4gICAgICAgICAgfCBTaGlmdF9hcmVhICh0Jywgc3gsIHN5KSAtPlxuICAgICAgICAgICAgICBsZXQgY2FjaGUgPVxuICAgICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnICh2eDEgKy4gc3gpICh2eTEgKy4gc3kpICh2eDIgKy4gc3gpXG4gICAgICAgICAgICAgICAgICAodnkyICsuIHN5KSAoc3ggKy4gc3cpIChzeSArLiBzaCkgdCdcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IHZ4ID0gSW50ZXJ2YWwubWFrZSB2eDEgdngyXG4gICAgICAgICAgICAgIGFuZCB2eSA9IEludGVydmFsLm1ha2UgdnkxIHZ5MiBpblxuICAgICAgICAgICAgICBsZXQgaW1hZ2UgPVxuICAgICAgICAgICAgICAgIHJlc2l6ZV9jYW52YXMgdmcgc3cgc2hcbiAgICAgICAgICAgICAgICAgIChJLmNyb3Agfmw6c3ggfnQ6c3kgY2FjaGUuaW1hZ2UpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIHsgdng7IHZ5OyBpbWFnZSB9XG4gICAgICAgICAgfCBYIChhLCBiKSAtPlxuICAgICAgICAgICAgICBsZXQgYXcsIGJ3ID0gc3BsaXQgfmE6YS53IH5zYTphLnN3IH5iOmIudyB+c2I6Yi5zdyBzdyBpblxuICAgICAgICAgICAgICBsZXQgY2EgPSByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgYXcgc2ggYSBpblxuICAgICAgICAgICAgICBsZXQgY2IgPVxuICAgICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnICh2eDEgLS4gYXcpIHZ5MSAodngyIC0uIGF3KSB2eTIgYncgc2ggYlxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgdnggPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eClcbiAgICAgICAgICAgICAgICAgICAgIChJbnRlcnZhbC5mc3QgY2IudnggKy4gYXcpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ4KVxuICAgICAgICAgICAgICAgICAgICAgKEludGVydmFsLnNuZCBjYi52eCArLiBhdykpXG4gICAgICAgICAgICAgIGFuZCB2eSA9XG4gICAgICAgICAgICAgICAgSW50ZXJ2YWwubWFrZVxuICAgICAgICAgICAgICAgICAgKG1heCAoSW50ZXJ2YWwuZnN0IGNhLnZ5KSAoSW50ZXJ2YWwuZnN0IGNiLnZ5KSlcbiAgICAgICAgICAgICAgICAgIChtaW4gKEludGVydmFsLnNuZCBjYS52eSkgKEludGVydmFsLnNuZCBjYi52eSkpXG4gICAgICAgICAgICAgIGFuZCBpbWFnZSA9XG4gICAgICAgICAgICAgICAgcmVzaXplX2NhbnZhcyB2ZyBzdyBzaCBJLihjYS5pbWFnZSA8fD4gY2IuaW1hZ2UpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIHsgdng7IHZ5OyBpbWFnZSB9XG4gICAgICAgICAgfCBZIChhLCBiKSAtPlxuICAgICAgICAgICAgICBsZXQgYWgsIGJoID0gc3BsaXQgfmE6YS5oIH5zYTphLnNoIH5iOmIuaCB+c2I6Yi5zaCBzaCBpblxuICAgICAgICAgICAgICBsZXQgY2EgPSByZW5kZXJfbm9kZSB2ZyB2eDEgdnkxIHZ4MiB2eTIgc3cgYWggYSBpblxuICAgICAgICAgICAgICBsZXQgY2IgPVxuICAgICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnIHZ4MSAodnkxIC0uIGFoKSB2eDIgKHZ5MiAtLiBhaCkgc3cgYmggYlxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgdnggPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eCkgKEludGVydmFsLmZzdCBjYi52eCkpXG4gICAgICAgICAgICAgICAgICAobWluIChJbnRlcnZhbC5zbmQgY2EudngpIChJbnRlcnZhbC5zbmQgY2IudngpKVxuICAgICAgICAgICAgICBhbmQgdnkgPVxuICAgICAgICAgICAgICAgIEludGVydmFsLm1ha2VcbiAgICAgICAgICAgICAgICAgIChtYXggKEludGVydmFsLmZzdCBjYS52eSlcbiAgICAgICAgICAgICAgICAgICAgIChJbnRlcnZhbC5mc3QgY2IudnkgKy4gYWgpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ5KVxuICAgICAgICAgICAgICAgICAgICAgKEludGVydmFsLnNuZCBjYi52eSArLiBhaCkpXG4gICAgICAgICAgICAgIGFuZCBpbWFnZSA9XG4gICAgICAgICAgICAgICAgcmVzaXplX2NhbnZhcyB2ZyBzdyBzaCAoSS4oIDwtPiApIGNhLmltYWdlIGNiLmltYWdlKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICB7IHZ4OyB2eTsgaW1hZ2UgfVxuICAgICAgICAgIHwgWiAoYSwgYikgLT5cbiAgICAgICAgICAgICAgbGV0IGNhID0gcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIGEgaW5cbiAgICAgICAgICAgICAgbGV0IGNiID0gcmVuZGVyX25vZGUgdmcgdngxIHZ5MSB2eDIgdnkyIHN3IHNoIGIgaW5cbiAgICAgICAgICAgICAgbGV0IHZ4ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudngpIChJbnRlcnZhbC5mc3QgY2IudngpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ4KSAoSW50ZXJ2YWwuc25kIGNiLnZ4KSlcbiAgICAgICAgICAgICAgYW5kIHZ5ID1cbiAgICAgICAgICAgICAgICBJbnRlcnZhbC5tYWtlXG4gICAgICAgICAgICAgICAgICAobWF4IChJbnRlcnZhbC5mc3QgY2EudnkpIChJbnRlcnZhbC5mc3QgY2IudnkpKVxuICAgICAgICAgICAgICAgICAgKG1pbiAoSW50ZXJ2YWwuc25kIGNhLnZ5KSAoSW50ZXJ2YWwuc25kIGNiLnZ5KSlcbiAgICAgICAgICAgICAgYW5kIGltYWdlID1cbiAgICAgICAgICAgICAgICByZXNpemVfY2FudmFzIHZnIHN3IHNoIChJLiggPC8+ICkgY2IuaW1hZ2UgY2EuaW1hZ2UpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIHsgdng7IHZ5OyBpbWFnZSB9XG4gICAgICAgICAgfCBSZXNpemUgKHQsIF8sIF8sIGcpIC0+XG4gICAgICAgICAgICAgIGxldCBvcGVuIEdyYXZpdHkgaW5cbiAgICAgICAgICAgICAgbGV0IGR4LCBydyA9XG4gICAgICAgICAgICAgICAgcGFjayB+Zml4ZWQ6dC53IH5zdHJldGNoOnQuc3cgc3cgKGggKHAxIGcpKSAoaCAocDIgZykpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBkeSwgcmggPVxuICAgICAgICAgICAgICAgIHBhY2sgfmZpeGVkOnQuaCB+c3RyZXRjaDp0LnNoIHNoICh2IChwMSBnKSkgKHYgKHAyIGcpKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgYyA9XG4gICAgICAgICAgICAgICAgcmVuZGVyX25vZGUgdmcgKHZ4MSAtLiBkeCkgKHZ5MSAtLiBkeSkgKHZ4MiAtLiBkeClcbiAgICAgICAgICAgICAgICAgICh2eTIgLS4gZHkpIHJ3IHJoIHRcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGltYWdlID0gcmVzaXplX2NhbnZhczIgdmcgZHggZHkgc3cgc2ggYy5pbWFnZSBpblxuICAgICAgICAgICAgICBsZXQgdnggPSBJbnRlcnZhbC5zaGlmdCBjLnZ4IGR4IGluXG4gICAgICAgICAgICAgIGxldCB2eSA9IEludGVydmFsLnNoaWZ0IGMudnkgZHkgaW5cbiAgICAgICAgICAgICAgeyB2eDsgdnk7IGltYWdlIH1cbiAgICAgICAgICB8IEV2ZW50X2ZpbHRlciAodCwgX2YpIC0+XG4gICAgICAgICAgICAgIHJlbmRlcl9ub2RlIHZnIHZ4MSB2eTEgdngyIHZ5MiBzdyBzaCB0XG4gICAgICAgIGluXG4gICAgICAgIHQuY2FjaGUgPC0gY2FjaGU7XG4gICAgICAgIGNhY2hlXG5cbiAgICBsZXQgaW1hZ2UgdmcgeyBzaXplOyB2aWV3OyBfIH0gPVxuICAgICAgbGV0IHcsIGggPSBWMi50b190dXBsZSBzaXplIGluXG4gICAgICBMb2cuZGVidWcgKGZ1biBtIC0+IG0gXCJSZW5kZXJlci5pbWFnZSB2aWV3PSVhIFwiIFVpLnBwIHZpZXcpO1xuICAgICAgKHJlbmRlcl9ub2RlIHZnIDAuIDAuIHcgaCB3IGggdmlldykuaW1hZ2VcblxuICAgIGxldCBkaXNwYXRjaF9yYXdfa2V5IHN0IGtleSA9XG4gICAgICBsZXQgcmVjIGl0ZXIgKHN0IDogdWkgbGlzdCkgOiBbPiBgVW5oYW5kbGVkIF0gPVxuICAgICAgICBtYXRjaCBzdCB3aXRoXG4gICAgICAgIHwgW10gLT4gYFVuaGFuZGxlZFxuICAgICAgICB8IHVpIDo6IHRsIC0+IChcbiAgICAgICAgICAgIG1hdGNoIHVpLmRlc2Mgd2l0aFxuICAgICAgICAgICAgfCBBdG9tIF8gLT4gaXRlciB0bFxuICAgICAgICAgICAgfCBYIChhLCBiKSB8IFkgKGEsIGIpIHwgWiAoYSwgYikgLT5cbiAgICAgICAgICAgICAgICAoKiBUcnkgbGVmdC90b3AgbW9zdCBicmFuY2ggZmlyc3QgKilcbiAgICAgICAgICAgICAgICBsZXQgc3QnID1cbiAgICAgICAgICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBiLmZvY3VzIHRoZW4gYiA6OiB0bFxuICAgICAgICAgICAgICAgICAgZWxzZSBhIDo6IGIgOjogdGxcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgIGl0ZXIgc3QnXG4gICAgICAgICAgICB8IEZvY3VzX2FyZWEgKHQsIGYpIC0+IChcbiAgICAgICAgICAgICAgICBtYXRjaCBpdGVyIFsgdCBdIHdpdGhcbiAgICAgICAgICAgICAgICB8IGBIYW5kbGVkIC0+IGBIYW5kbGVkXG4gICAgICAgICAgICAgICAgfCBgVW5oYW5kbGVkIC0+IChcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZiBrZXkgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IGBIYW5kbGVkIC0+IGBIYW5kbGVkXG4gICAgICAgICAgICAgICAgICAgIHwgYFVuaGFuZGxlZCAtPiBpdGVyIHRsKSlcbiAgICAgICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgICAgICAgIHwgU2l6ZV9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgICB8IFRyYW5zaWVudF9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgICB8IFBlcm1hbmVudF9zZW5zb3IgKHQsIF8pXG4gICAgICAgICAgICB8IFNoaWZ0X2FyZWEgKHQsIF8sIF8pXG4gICAgICAgICAgICB8IFJlc2l6ZSAodCwgXywgXywgXykgLT5cbiAgICAgICAgICAgICAgICBpdGVyICh0IDo6IHRsKVxuICAgICAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIGYpIC0+IChcbiAgICAgICAgICAgICAgICBtYXRjaCBmIChgS2V5IGtleSkgd2l0aFxuICAgICAgICAgICAgICAgIHwgYFVuaGFuZGxlZCAtPiBpdGVyICh0IDo6IHRsKVxuICAgICAgICAgICAgICAgIHwgYEhhbmRsZWQgLT4gYEhhbmRsZWQpKVxuICAgICAgaW5cbiAgICAgIGl0ZXIgWyBzdC52aWV3IF1cblxuICAgIGV4Y2VwdGlvbiBBY3F1aXJlZF9mb2N1c1xuXG4gICAgbGV0IGdyYWJfZm9jdXMgdWkgPVxuICAgICAgbGV0IHJlYyBhdXggdWkgPVxuICAgICAgICBtYXRjaCB1aS5mb2N1cyB3aXRoXG4gICAgICAgIHwgRm9jdXMuRW1wdHkgLT4gKClcbiAgICAgICAgfCBGb2N1cy5IYW5kbGUgKF8sIHYpIC0+XG4gICAgICAgICAgICBGb2N1cy5yZXF1ZXN0X3ZhciB2O1xuICAgICAgICAgICAgcmFpc2UgQWNxdWlyZWRfZm9jdXNcbiAgICAgICAgfCBGb2N1cy5Db25mbGljdCBfIC0+IGl0ZXIgYXV4IHVpXG4gICAgICBpblxuICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPiBtIFwiZ3JhYl9mb2N1c1wiKTtcbiAgICAgIHRyeVxuICAgICAgICBhdXggdWk7XG4gICAgICAgIGZhbHNlXG4gICAgICB3aXRoIEFjcXVpcmVkX2ZvY3VzIC0+XG4gICAgICAgIExvZy53YXJuIChmdW4gbSAtPiBtIFwiZ3JhYl9mb2N1cyBBY3F1aXJlZF9mb2N1cyAtPiB0cnVlXCIpO1xuICAgICAgICB0cnVlXG5cbiAgICBsZXQgcmVjIGRpc3BhdGNoX2ZvY3VzIHQgZGlyID1cbiAgICAgIG1hdGNoIHQuZGVzYyB3aXRoXG4gICAgICB8IEF0b20gXyAtPiBmYWxzZVxuICAgICAgfCBNb3VzZV9oYW5kbGVyICh0LCBfKVxuICAgICAgfCBTaXplX3NlbnNvciAodCwgXylcbiAgICAgIHwgVHJhbnNpZW50X3NlbnNvciAodCwgXylcbiAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgXylcbiAgICAgIHwgU2hpZnRfYXJlYSAodCwgXywgXylcbiAgICAgIHwgUmVzaXplICh0LCBfLCBfLCBfKVxuICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF8pIC0+XG4gICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgdCBkaXJcbiAgICAgIHwgRm9jdXNfYXJlYSAodCcsIF8pIC0+XG4gICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIHQnLmZvY3VzIHRoZW4gKFxuICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgIG1cbiAgICAgICAgICAgICAgICAgIFwiZGlzcGF0Y2hfZm9jdXMgRm9jdXNfYXJlYSBoYXNfZm9jdXMgdCcuZm9jdXMgPSBcXFxuICAgICAgICAgICAgICAgICAgIHRydWVcIik7XG5cbiAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIHQnIGRpciB8fCBncmFiX2ZvY3VzIHQpXG4gICAgICAgICAgZWxzZSBpZiBGb2N1cy5oYXNfZm9jdXMgdC5mb2N1cyB0aGVuIGZhbHNlXG4gICAgICAgICAgZWxzZSBncmFiX2ZvY3VzIHRcbiAgICAgIHwgWCAoYSwgYikgLT4gKFxuICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBhLmZvY3VzIHRoZW5cbiAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8fFxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYE5leHQgfCBgUmlnaHQgLT4gZGlzcGF0Y2hfZm9jdXMgYiBkaXJcbiAgICAgICAgICAgIHwgXyAtPiBmYWxzZVxuICAgICAgICAgIGVsc2UgaWYgRm9jdXMuaGFzX2ZvY3VzIGIuZm9jdXMgdGhlblxuICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYiBkaXJcbiAgICAgICAgICAgIHx8XG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgUHJldiB8IGBMZWZ0IC0+IGRpc3BhdGNoX2ZvY3VzIGEgZGlyXG4gICAgICAgICAgICB8IF8gLT4gZmFsc2VcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgUHJldiB8IGBMZWZ0IHwgYFVwIC0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYiBkaXIgfHwgZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHwgYE5leHQgfCBgRG93biB8IGBSaWdodCAtPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGEgZGlyIHx8IGRpc3BhdGNoX2ZvY3VzIGIgZGlyKVxuICAgICAgfCBZIChhLCBiKSAtPiAoXG4gICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGEuZm9jdXMgdGhlblxuICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHx8XG4gICAgICAgICAgICBtYXRjaCBkaXIgd2l0aFxuICAgICAgICAgICAgfCBgTmV4dCB8IGBEb3duIC0+IGRpc3BhdGNoX2ZvY3VzIGIgZGlyXG4gICAgICAgICAgICB8IF8gLT4gZmFsc2VcbiAgICAgICAgICBlbHNlIGlmIEZvY3VzLmhhc19mb2N1cyBiLmZvY3VzIHRoZW5cbiAgICAgICAgICAgIGRpc3BhdGNoX2ZvY3VzIGIgZGlyXG4gICAgICAgICAgICB8fFxuICAgICAgICAgICAgbWF0Y2ggZGlyIHdpdGhcbiAgICAgICAgICAgIHwgYFByZXYgfCBgVXAgLT4gZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHwgXyAtPiBmYWxzZVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIGRpciB3aXRoXG4gICAgICAgICAgICB8IGBQcmV2IHwgYFVwIC0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYiBkaXIgfHwgZGlzcGF0Y2hfZm9jdXMgYSBkaXJcbiAgICAgICAgICAgIHwgYE5leHQgfCBgTGVmdCB8IGBEb3duIHwgYFJpZ2h0IC0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hfZm9jdXMgYSBkaXIgfHwgZGlzcGF0Y2hfZm9jdXMgYiBkaXIpXG4gICAgICB8IFogKGEsIGIpIC0+XG4gICAgICAgICAgaWYgRm9jdXMuaGFzX2ZvY3VzIGEuZm9jdXMgdGhlbiBkaXNwYXRjaF9mb2N1cyBhIGRpclxuICAgICAgICAgIGVsc2UgZGlzcGF0Y2hfZm9jdXMgYiBkaXIgfHwgZGlzcGF0Y2hfZm9jdXMgYSBkaXJcblxuICAgIGxldCByZWMgZGlzcGF0Y2hfa2V5IHN0IGtleSA9XG4gICAgICBtYXRjaCAoZGlzcGF0Y2hfcmF3X2tleSBzdCBrZXksIGtleSkgd2l0aFxuICAgICAgfCBgSGFuZGxlZCwgXyAtPiBgSGFuZGxlZFxuICAgICAgfCBgVW5oYW5kbGVkLCAoYEFycm93IGRpciwgW10pIC0+XG4gICAgICAgICAgbGV0IGRpciA6IFsgYERvd24gfCBgTGVmdCB8IGBSaWdodCB8IGBVcCBdIDo+XG4gICAgICAgICAgICAgIFsgYERvd24gfCBgTGVmdCB8IGBSaWdodCB8IGBVcCB8IGBOZXh0IHwgYFByZXYgXSA9XG4gICAgICAgICAgICBkaXJcbiAgICAgICAgICBpblxuICAgICAgICAgIGRpc3BhdGNoX2tleSBzdCAoYEZvY3VzIGRpciwgWyBgTWV0YSBdKVxuICAgICAgfCBgVW5oYW5kbGVkLCAoYFRhYiwgbW9kcykgLT5cbiAgICAgICAgICBsZXQgZGlyID0gaWYgTGlzdC5tZW0gYFNoaWZ0IG1vZHMgdGhlbiBgUHJldiBlbHNlIGBOZXh0IGluXG4gICAgICAgICAgZGlzcGF0Y2hfa2V5IHN0IChgRm9jdXMgZGlyLCBtb2RzKVxuICAgICAgfCBgVW5oYW5kbGVkLCAoYEZvY3VzIGRpciwgXykgLT5cbiAgICAgICAgICBsZXQgciA9IGRpc3BhdGNoX2ZvY3VzIHN0LnZpZXcgZGlyIGluXG4gICAgICAgICAgKGlmIHIgdGhlbiBMb2cuZGVidWcgZWxzZSBMb2cud2FybikgKGZ1biBtIC0+XG4gICAgICAgICAgICAgIG0gXCJSZW5kZXJlci5kaXNwYXRjaF9mb2N1cyBrZXk6JWEgLT4gJWJcIiBwcF9rZXkga2V5IHIpO1xuICAgICAgICAgIGlmIHIgdGhlbiBgSGFuZGxlZCBlbHNlIGBVbmhhbmRsZWRcbiAgICAgIHwgYFVuaGFuZGxlZCwgXyAtPiBgVW5oYW5kbGVkXG5cbiAgICBsZXQgZGlzcGF0Y2hfZXZlbnQgdCA9IGZ1bmN0aW9uXG4gICAgICB8IGBLZXkga2V5IC0+IGRpc3BhdGNoX2tleSB0IGtleVxuICAgICAgfCBgTW91c2UgbW91c2UgLT4gZGlzcGF0Y2hfbW91c2UgdCBtb3VzZVxuICAgICAgfCBgUGFzdGUgXyAtPiBgVW5oYW5kbGVkXG4gIGVuZFxuZW5kXG5cbm1vZHVsZSBOb3R0dWlfbHd0ID0gc3RydWN0XG4gIG9wZW4gTm90dHVpXG5cbiAgKCogc3RvbGVuIGZyb20gbGV0LWRlZi9sd2QvbGliL25vdHR1aS9ub3R0dWkubWwqIGV0Yy4uLiAqKVxuICBsZXQgY29weV91bnRpbCBxdWl0IH5mIGlucHV0ID1cbiAgICBsZXQgcXVpdCA9IEx3dC5tYXAgKGZ1biAoKSAtPiBOb25lKSBxdWl0IGluXG4gICAgbGV0IHN0cmVhbSwgcHVzaCA9IEx3dF9zdHJlYW0uY3JlYXRlICgpIGluXG4gICAgbGV0IHJlYyBhdXggKCkgPVxuICAgICAgTHd0LmJpbmQgKEx3dC5jaG9vc2UgWyBxdWl0OyBMd3Rfc3RyZWFtLnBlZWsgaW5wdXQgXSlcbiAgICAgIEBAIGZ1biByZXN1bHQgLT5cbiAgICAgIG1hdGNoIHJlc3VsdCB3aXRoXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgICBwdXNoIE5vbmU7XG4gICAgICAgICAgTHd0LnJldHVybl91bml0XG4gICAgICB8IFNvbWUgeCAtPlxuICAgICAgICAgIHB1c2ggKFNvbWUgKGYgeCkpO1xuICAgICAgICAgIEx3dC5iaW5kIChMd3Rfc3RyZWFtLmp1bmsgaW5wdXQpIGF1eFxuICAgIGluXG4gICAgTHd0LmFzeW5jIGF1eDtcbiAgICBzdHJlYW1cblxuICBsZXQgcmVuZGVyIHZnID9xdWl0IH5zaXplIGV2ZW50cyBkb2MgPVxuICAgIGxldCByZW5kZXJlciA9IFJlbmRlcmVyLm1ha2UgdmcgKCkgaW5cbiAgICBsZXQgcmVmcmVzaF9zdHJlYW0sIHB1c2hfcmVmcmVzaCA9IEx3dF9zdHJlYW0uY3JlYXRlICgpIGluXG4gICAgbGV0IHJvb3QgPVxuICAgICAgTHdkLm9ic2VydmVcbiAgICAgICAgfm9uX2ludmFsaWRhdGU6KGZ1biBfIC0+XG4gICAgICAgICAgaWYgbm90IChMd3Rfc3RyZWFtLmlzX2Nsb3NlZCByZWZyZXNoX3N0cmVhbSkgdGhlblxuICAgICAgICAgICAgcHVzaF9yZWZyZXNoIChTb21lICgpKSlcbiAgICAgICAgZG9jXG4gICAgaW5cbiAgICBsZXQgcXVpdCwgZG9fcXVpdCA9XG4gICAgICBtYXRjaCBxdWl0IHdpdGhcbiAgICAgIHwgU29tZSBxdWl0IC0+IChxdWl0LCBOb25lKVxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgbGV0IHQsIHUgPSBMd3Qud2FpdCAoKSBpblxuICAgICAgICAgICh0LCBTb21lIHUpXG4gICAgaW5cbiAgICBsZXQgZXZlbnRzID1cbiAgICAgIGNvcHlfdW50aWwgcXVpdCBldmVudHMgfmY6KGZ1biBlIC0+XG4gICAgICAgICAgKGVcbiAgICAgICAgICAgIDogWyBgUmVzaXplIG9mIF8gfCBVaS5ldmVudCBdXG4gICAgICAgICAgICA6PiBbIGBSZXNpemUgb2YgXyB8IFVpLmV2ZW50IF0pKVxuICAgIGluXG4gICAgbGV0IHNpemUgPSByZWYgc2l6ZSBpblxuICAgIGxldCByZXN1bHQsIHB1c2ggPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICAgIGxldCByZWZyZXNoICgpID1cbiAgICAgICgqIEZJWE1FIFRoaXMgc2hvdWxkIHVzZSBbTHdkLnNhbXBsZV0gd2l0aCBwcm9wZXIgcmVsZWFzZSBtYW5hZ2VtZW50LiAqKVxuICAgICAgbGV0IHVpID0gTHdkLnF1aWNrX3NhbXBsZSByb290IGluXG4gICAgICBSZW5kZXJlci51cGRhdGUgcmVuZGVyZXIgIXNpemUgdWk7XG4gICAgICBwdXNoIChTb21lIChSZW5kZXJlci5pbWFnZSB2ZyByZW5kZXJlcikpXG4gICAgaW5cbiAgICByZWZyZXNoICgpO1xuICAgIGxldCBwcm9jZXNzX2V2ZW50IGUgPVxuICAgICAgbWF0Y2ggZSB3aXRoXG4gICAgICB8IGBLZXkgKGBVY2hhciBjLCBbIGBNZXRhIF0pIGFzIGV2ZW50XG4gICAgICAgIHdoZW4gVWNoYXIuKGVxdWFsIGMgKG9mX2NoYXIgJ3EnKSkgLT4gKFxuICAgICAgICAgIG1hdGNoIGRvX3F1aXQgd2l0aFxuICAgICAgICAgIHwgU29tZSB1IC0+IEx3dC53YWtldXAgdSAoKVxuICAgICAgICAgIHwgTm9uZSAtPiBpZ25vcmUgKFJlbmRlcmVyLmRpc3BhdGNoX2V2ZW50IHJlbmRlcmVyIGV2ZW50KSlcbiAgICAgIHwgI1VpLmV2ZW50IGFzIGV2ZW50IC0+IChcbiAgICAgICAgICBtYXRjaCBSZW5kZXJlci5kaXNwYXRjaF9ldmVudCByZW5kZXJlciBldmVudCB3aXRoXG4gICAgICAgICAgfCBgSGFuZGxlZCAtPiAoKVxuICAgICAgICAgIHwgYFVuaGFuZGxlZCAtPlxuICAgICAgICAgICAgICAoKiBMb2cud2FybiAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgICAgIG1cbiAgICAgICAgICAgICAgICAgICAgXCJOb3R0dWlfbHd0LnJlbmRlciBwcm9jZXNzX2V2ZW50ICNVaS5ldmVudCAtPiBcXFxuICAgICAgICAgICAgICAgICAgICAgYFVuaGFuZGxlZFwiKSAqKVxuICAgICAgICAgICAgICAoKSlcbiAgICAgIHwgYFJlc2l6ZSBzaXplJyAtPlxuICAgICAgICAgIHNpemUgOj0gc2l6ZSc7XG4gICAgICAgICAgcmVmcmVzaCAoKVxuICAgIGluXG4gICAgTHd0LmFzeW5jIChmdW4gKCkgLT5cbiAgICAgICAgTHd0LmZpbmFsaXplXG4gICAgICAgICAgKGZ1biAoKSAtPiBMd3Rfc3RyZWFtLml0ZXIgcHJvY2Vzc19ldmVudCBldmVudHMpXG4gICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgcHVzaCBOb25lO1xuICAgICAgICAgICAgTHd0LnJldHVybl91bml0KSk7XG4gICAgTHd0LmFzeW5jIChmdW4gKCkgLT4gTHd0X3N0cmVhbS5pdGVyIHJlZnJlc2ggcmVmcmVzaF9zdHJlYW0pO1xuICAgIHJlc3VsdFxuXG4gICgqIGxldCBydW4gP3F1aXQgZG9jID1cbiAgICAgbGV0IHRlcm0gPSBUZXJtLmNyZWF0ZSAoKSBpblxuICAgICBsZXQgaW1hZ2VzID1cbiAgICAgICByZW5kZXIgP3F1aXQgfnNpemU6KFRlcm0uc2l6ZSB0ZXJtKSAoVGVybS5ldmVudHMgdGVybSkgZG9jXG4gICAgIGluXG4gICAgIEx3dC5maW5hbGl6ZVxuICAgICAgIChmdW4gKCkgLT4gTHd0X3N0cmVhbS5pdGVyX3MgKFRlcm0uaW1hZ2UgdGVybSkgaW1hZ2VzKVxuICAgICAgIChmdW4gKCkgLT4gVGVybS5yZWxlYXNlIHRlcm0pICopXG5lbmRcblxubW9kdWxlIFdpZGdldHMgPSBzdHJ1Y3RcbiAgKCogTWFqb3JpdHkgb2YgdGhpcyB3YXMgYWRhcHRlZCBmcm9tIE5vdHR1aV93aWRnZXRzICopXG5cbiAgb3BlbiBOb3R0dWlcblxuICBsZXQgc3RyaW5nID8oYXR0ciA9IEEuZW1wdHkpIHN0ciA9IFVpLmF0b20gKEkuc3RyaW5nIH5hdHRyIHN0cilcbiAgbGV0IGludCA/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+IFVpLm1heV9oYW5kbGUpIDpcbiAgICAgIFVpLm1heV9oYW5kbGUgPVxuICAgIFVpLm1heV9oYW5kbGUgKEx3ZC5wZWVrIGN1cnNvcikgKGZ1biByb3cgLT5cbiAgICAgICAgVWkubWF5X2hhbmRsZSAoTHdkX3RhYmxlLmdldCByb3cpIChmdW4gbGluZSAtPiBmIHJvdyBsaW5lKSlcblxuICBsZXQgY3Vyc29yX21vdmUgPyh1cGRhdGUgOiAnYSAtPiAnYSAtPiB1bml0ID0gZnVuIF8gXyAtPiAoKSlcbiAgICAgIChjdXJzb3IgOiAnYSBMd2RfdGFibGUucm93IG9wdGlvbiBMd2QudmFyKVxuICAgICAgKG5ld19yb3cgOiAnYSBMd2RfdGFibGUucm93IC0+ICdhIEx3ZF90YWJsZS5yb3cgb3B0aW9uKSA9XG4gICAgbWF0Y2ggTHdkLnBlZWsgY3Vyc29yIHdpdGhcbiAgICB8IFNvbWUgY3Vyc29yX3JvdyAtPiAoXG4gICAgICAgIG1hdGNoIG5ld19yb3cgY3Vyc29yX3JvdyB3aXRoXG4gICAgICAgIHwgU29tZSBuZXdfcm93IC0+XG4gICAgICAgICAgICAobWF0Y2ggTHdkX3RhYmxlLmdldCBuZXdfcm93IHdpdGhcbiAgICAgICAgICAgIHwgU29tZSBuZXdfbGluZSAtPlxuICAgICAgICAgICAgICAgIGN1cnNvcl9yb3cgfD4gTHdkX3RhYmxlLmdldFxuICAgICAgICAgICAgICAgIHw+IE9wdGlvbi5pdGVyIChmdW4gY3Vyc29yX2xpbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlIGN1cnNvcl9saW5lIG5ld19saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGN1cnNvcl9saW5lLmZvY3VzKTtcbiAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lLmZvY3VzXG4gICAgICAgICAgICB8IE5vbmUgLT4gKCkpO1xuICAgICAgICAgICAgTHdkLnNldCBjdXJzb3IgKFNvbWUgbmV3X3Jvdyk7XG4gICAgICAgICAgICBgSGFuZGxlZFxuICAgICAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZClcbiAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZFxuXG4gIGxldCBsaW5lX3RhYmxlX29mX3N0cmluZyA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpIChzIDogc3RyaW5nKSA6XG4gICAgICBsaW5lIEx3ZF90YWJsZS50ID1cbiAgICAoKiBBcHBlbmQgbGluZXMgZnJvbSBzIHRvIHRhYmxlICopXG4gICAgTGlzdC5pdGVyIChsaW5lX2FwcGVuZCB+dGFibGUpIChTdHJpbmcuc3BsaXRfb25fY2hhciAnXFxuJyBzKTtcbiAgICB0YWJsZVxuXG4gIGxldCBmb2N1c192YWwgZm9jdXMgOiBpbnQgPVxuICAgIEZvY3VzLihcbiAgICAgIG1hdGNoIGZvY3VzIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gMFxuICAgICAgfCBIYW5kbGUgKGksIF8pIC0+IGlcbiAgICAgIHwgQ29uZmxpY3QgaSAtPiBpKVxuXG4gIGxldCByZWMgZmluZF9mb2N1cyAodWkgOiB1aSkgOiB1aSA9XG4gICAgRm9jdXMuKFxuICAgICAgbWF0Y2ggKHVpLmZvY3VzLCB1aS5kZXNjKSB3aXRoXG4gICAgICB8IEVtcHR5LCBfIC0+IFVpLmVtcHR5XG4gICAgICB8IEhhbmRsZSAoXywgXyksIF8gLT4gdWlcbiAgICAgIHwgQ29uZmxpY3QgXywgKFggKGEsIGIpIHwgWSAoYSwgYikgfCBaIChhLCBiKSkgLT5cbiAgICAgICAgICBpZiBmb2N1c192YWwgYS5mb2N1cyA8IGZvY3VzX3ZhbCBiLmZvY3VzIHRoZW4gZmluZF9mb2N1cyBiXG4gICAgICAgICAgZWxzZSBmaW5kX2ZvY3VzIGFcbiAgICAgIHwgQ29uZmxpY3QgXywgQXRvbSBfIC0+IFVpLmVtcHR5XG4gICAgICB8ICggQ29uZmxpY3QgXyxcbiAgICAgICAgICAoIFNpemVfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgTW91c2VfaGFuZGxlciAodCwgXylcbiAgICAgICAgICB8IEZvY3VzX2FyZWEgKHQsIF8pXG4gICAgICAgICAgfCBFdmVudF9maWx0ZXIgKHQsIF8pXG4gICAgICAgICAgfCBUcmFuc2llbnRfc2Vuc29yICh0LCBfKVxuICAgICAgICAgIHwgUGVybWFuZW50X3NlbnNvciAodCwgXylcbiAgICAgICAgICB8IFJlc2l6ZSAodCwgXywgXywgXylcbiAgICAgICAgICB8IFNoaWZ0X2FyZWEgKHQsIF8sIF8pICkgKSAtPlxuICAgICAgICAgIGZpbmRfZm9jdXMgdClcblxuICBsZXQgZm9jdXNfaGFuZGxlX2NvbXBhcmUgYSBiID1cbiAgICBpZlxuICAgICAgTHdkLnBlZWsgKEZvY3VzLnZhciAoc25kIGEpLmZvY3VzKVxuICAgICAgPCBMd2QucGVlayAoRm9jdXMudmFyIChzbmQgYikuZm9jdXMpXG4gICAgdGhlbiBiXG4gICAgZWxzZSBhXG5cbiAgbGV0IGZvY3VzZWRfcm93X29mX3RhYmxlICh0YWJsZSA6IGxpbmUgTHdkX3RhYmxlLnQpID1cbiAgICBMd2RfdGFibGUubWFwX3JlZHVjZVxuICAgICAgKGZ1biByb3cgKGxpbmUgOiBsaW5lKSAtPiAoU29tZSByb3csIGxpbmUpKVxuICAgICAgKChOb25lLCBsaW5lX2VtcHR5ICgpKSwgZm9jdXNfaGFuZGxlX2NvbXBhcmUpXG4gICAgICB0YWJsZVxuXG4gIGxldCB0b19sd3RfbHdkIGUgPSBMd3QucmV0dXJuIEBAIEx3ZC5wdXJlIGVcbiAgbGV0IGx3dF9sd2Rfc3RyaW5nIHMgPSB0b19sd3RfbHdkIEBAIHN0cmluZyBzXG5cbiAgbGV0IGVkaXRfYXJlYSA/KHRhYmxlID0gTHdkX3RhYmxlLm1ha2UgKCkpID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKVxuICAgICAgKCkgOiBVaS50IEx3ZC50ID1cbiAgICBsZXQgY3Vyc29yID0gTHdkLnZhciBAQCBMd2RfdGFibGUuZmlyc3QgdGFibGUgaW5cbiAgICBPcHRpb24uaXRlclxuICAgICAgKGZ1biBjdXJzb3IgLT5cbiAgICAgICAgT3B0aW9uLml0ZXIgKGZ1biBmaXJzdCAtPiBGb2N1cy5yZXF1ZXN0IGZpcnN0LmZvY3VzKVxuICAgICAgICBAQCBMd2RfdGFibGUuZ2V0IGN1cnNvcilcbiAgICAgIChMd2QucGVlayBjdXJzb3IpO1xuXG4gICAgKCogQnVpbGQgdmlldyBvZiB0YWJsZSAqKVxuICAgIEx3ZF90YWJsZS5tYXBfcmVkdWNlXG4gICAgICAoZnVuIF8geyB1aTsgXyB9IC0+IHVpKVxuICAgICAgKEx3ZF91dGlscy5saWZ0X21vbm9pZCBVaS5wYWNrX3kpXG4gICAgICB0YWJsZVxuICAgIHw+IEx3ZC5qb2luXG4gICAgfD4gTHdkLm1hcDJcbiAgICAgICAgIH5mOihmdW4gZm9jdXMgLT5cbiAgICAgICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgKGZ1biBrIC0+XG4gICAgICAgICAgICAgICBMb2cuZGVidWcgKGZ1biBtIC0+XG4gICAgICAgICAgICAgICAgICAgbSBcImVkaXRfYXJlYSBoYW5kbGVyICVhXCIgVWkucHBfa2V5IGspO1xuICAgICAgICAgICAgICAgbGV0IGN1cnNvcl9tb3ZlID1cbiAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgfnVwZGF0ZTpjb3B5X2xpbmVfY3Vyc29yIGN1cnNvclxuICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgIG1hdGNoIGsgd2l0aFxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICduJyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIEx3ZF90YWJsZS5uZXh0XG4gICAgICAgICAgICAgICB8IGBBcnJvdyBgRG93biwgXyAtPiBjdXJzb3JfbW92ZSBMd2RfdGFibGUubmV4dFxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdwJyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIEx3ZF90YWJsZS5wcmV2XG4gICAgICAgICAgICAgICB8IGBBcnJvdyBgVXAsIF8gLT4gY3Vyc29yX21vdmUgTHdkX3RhYmxlLnByZXZcbiAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYE1ldGEgXSB3aGVuIGVxX3VjX2MgdSAnPCcgLT5cbiAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSAoZnVuIF8gLT4gTHdkX3RhYmxlLmZpcnN0IHRhYmxlKVxuICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc+JyAtPlxuICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIChmdW4gXyAtPiBMd2RfdGFibGUubGFzdCB0YWJsZSlcbiAgICAgICAgICAgICAgIHwgYEVudGVyLCBbXSAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmVfb2ZfY3Vyc29yIGN1cnNvciAoZnVuIG9sZF9yb3cgb2xkX2xpbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0ciwgcG9zID0gTHdkLnBlZWsgb2xkX2xpbmUuc3RhdGUgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9fc3RyID0gU3RyaW5nLnN1YiBzdHIgMCBwb3MgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5fc3RyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuKHN1YiBzdHIgcG9zIChsZW5ndGggc3RyIC0gcG9zKSlcbiAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgTHdkLnNldCBvbGRfbGluZS5zdGF0ZSAob19zdHIsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfbGluZSA9IGxpbmVfbWFrZSBuX3N0ciBpblxuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIG9sZF9saW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IG5ld19saW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IGN1cnNvclxuICAgICAgICAgICAgICAgICAgICAgICAgIChTb21lIChMd2RfdGFibGUuYWZ0ZXIgb2xkX3JvdyB+c2V0Om5ld19saW5lKSk7XG4gICAgICAgICAgICAgICAgICAgICAgIGBIYW5kbGVkKVxuICAgICAgICAgICAgICAgfCBgQmFja3NwYWNlLCBbXSAtPlxuICAgICAgICAgICAgICAgICAgIGxpbmVfb2ZfY3Vyc29yIGN1cnNvciAoZnVuIHJvdyBsaW5lIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBzdHIsIHBvcyA9IEx3ZC5wZWVrIGxpbmUuc3RhdGUgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgVWkubWF5X2hhbmRsZSAoTHdkX3RhYmxlLnByZXYgcm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gcm93X3ByZXYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBvcyA9IDAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaS5tYXlfaGFuZGxlIChMd2RfdGFibGUuZ2V0IHJvd19wcmV2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gbGluZV9wcmV2IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyX3ByZXYsIF8gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2QucGVlayBsaW5lX3ByZXYuc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGxpbmUuZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZXF1ZXN0IGxpbmVfcHJldi5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgbGluZV9wcmV2LnN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RyX3ByZXYgXiBzdHIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmxlbmd0aCBzdHJfcHJldiApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLnJlbW92ZSByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYFVuaGFuZGxlZCkpXG4gICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBDdHJsIF0gd2hlbiBlcV91Y19jIHUgJ2snIC0+IGBIYW5kbGVkXG4gICAgICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZCkpXG4gICAgICAgICAoRm9jdXMuc3RhdHVzIGZvY3VzKVxuXG4gICgqIFRPRE86IHZpZXdfbWV0YWRhdGEgKilcblxuICBsZXQgcmVjIG5vZGVfZWRpdF9hcmVhID8odGFibGUgPSBMd2RfdGFibGUubWFrZSAoKSlcbiAgICAgID8oZm9jdXMgPSBGb2N1cy5tYWtlICgpKSAoKHRyZWUsIHBhdGgpIDogTmF2LnRyZWUgKiBOYXYucGF0aCkgOlxuICAgICAgVWkudCBMd2QudCBMd3QudCA9XG4gICAgbGV0IGN1cnNvciA9IEx3ZC52YXIgQEAgTHdkX3RhYmxlLmZpcnN0IHRhYmxlIGluXG4gICAgbGV0IG9wZW4gTHd0LkluZml4IGluXG4gICAgTmF2LlMuVHJlZS5raW5kIHRyZWUgcGF0aCA+Pj0gZnVuY3Rpb25cbiAgICB8IE5vbmUgLT5cbiAgICAgICAgbHd0X2x3ZF9zdHJpbmdcbiAgICAgICAgICAoXCJOYXYuUy5UcmVlLmtpbmQgXCIgXiBTdHJpbmcuY29uY2F0IFwiL1wiIHBhdGhcbiAgICAgICAgIF4gXCIgaG93J2QgeW91IGdldCBoZXJlPz9cIilcbiAgICB8IFNvbWUgYE5vZGUgLT4gdHJlZV9uYXYgKHRyZWUsIHBhdGgpXG4gICAgfCBTb21lIGBDb250ZW50cyAtPiAoXG4gICAgICAgIE5hdi5TLlRyZWUuZmluZF9hbGwgdHJlZSBwYXRoID4+PSBmdW5jdGlvblxuICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgIGx3dF9sd2Rfc3RyaW5nXG4gICAgICAgICAgICAgIChcIk5hdi5TLlRyZWUuZmluZF9hbGwgXCIgXiBTdHJpbmcuY29uY2F0IFwiL1wiIHBhdGhcbiAgICAgICAgICAgICBeIFwiIC0+IE5vbmVcIilcbiAgICAgICAgfCBTb21lIChjb250ZW50cywgX21ldGFkYXRhKSAtPlxuICAgICAgICAgICAgbGluZV90YWJsZV9vZl9zdHJpbmcgfnRhYmxlIGNvbnRlbnRzIHw+IGlnbm9yZTtcbiAgICAgICAgICAgIE9wdGlvbi5pdGVyXG4gICAgICAgICAgICAgIChmdW4gY3Vyc29yIC0+XG4gICAgICAgICAgICAgICAgT3B0aW9uLml0ZXIgKGZ1biBmaXJzdCAtPiBGb2N1cy5yZXF1ZXN0IGZpcnN0LmZvY3VzKVxuICAgICAgICAgICAgICAgIEBAIEx3ZF90YWJsZS5nZXQgY3Vyc29yKVxuICAgICAgICAgICAgICAoTHdkLnBlZWsgY3Vyc29yKTtcblxuICAgICAgICAgICAgKCogQnVpbGQgdmlldyBvZiB0YWJsZSAqKVxuICAgICAgICAgICAgTHd0LnJldHVyblxuICAgICAgICAgICAgICAoTHdkX3RhYmxlLm1hcF9yZWR1Y2VcbiAgICAgICAgICAgICAgICAgKGZ1biBfIHsgdWk7IF8gfSAtPiB1aSlcbiAgICAgICAgICAgICAgICAgKEx3ZF91dGlscy5saWZ0X21vbm9pZCBVaS5wYWNrX3kpXG4gICAgICAgICAgICAgICAgIHRhYmxlXG4gICAgICAgICAgICAgIHw+IEx3ZC5qb2luXG4gICAgICAgICAgICAgIHw+IEx3ZC5tYXAyXG4gICAgICAgICAgICAgICAgICAgfmY6KGZ1biBmb2N1cyAtPlxuICAgICAgICAgICAgICAgICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgKGZ1biBrIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmRlYnVnIChmdW4gbSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIFwiZWRpdF9hcmVhIGhhbmRsZXIgJWFcIiBVaS5wcF9rZXkgayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnNvcl9tb3ZlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIH51cGRhdGU6Y29weV9saW5lX2N1cnNvciBjdXJzb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGsgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnbicgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgTHdkX3RhYmxlLm5leHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IGBBcnJvdyBgRG93biwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBMd2RfdGFibGUubmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAncCcgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgTHdkX3RhYmxlLnByZXZcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IGBBcnJvdyBgVXAsIF8gLT4gY3Vyc29yX21vdmUgTHdkX3RhYmxlLnByZXZcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IGBVY2hhciB1LCBbIGBNZXRhIF0gd2hlbiBlcV91Y19jIHUgJzwnIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9tb3ZlIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTHdkX3RhYmxlLmZpcnN0IHRhYmxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYE1ldGEgXSB3aGVuIGVxX3VjX2MgdSAnPicgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgKGZ1biBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2RfdGFibGUubGFzdCB0YWJsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IGBFbnRlciwgW10gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9vZl9jdXJzb3IgY3Vyc29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biBvbGRfcm93IG9sZF9saW5lIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyLCBwb3MgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2QucGVlayBvbGRfbGluZS5zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuX3N0ciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViIHN0ciBwb3MgKGxlbmd0aCBzdHIgLSBwb3MpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgb2xkX2xpbmUuc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZy5zdWIgc3RyIDAgcG9zLCBwb3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19saW5lID0gbGluZV9tYWtlIG5fc3RyIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIG9sZF9saW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVxdWVzdCBuZXdfbGluZS5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5zZXQgY3Vyc29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTb21lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMd2RfdGFibGUuYWZ0ZXIgb2xkX3Jvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+c2V0Om5ld19saW5lKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IGBCYWNrc3BhY2UsIFtdIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfb2ZfY3Vyc29yIGN1cnNvciAoZnVuIHJvdyBsaW5lIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyLCBwb3MgPSBMd2QucGVlayBsaW5lLnN0YXRlIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaS5tYXlfaGFuZGxlIChMd2RfdGFibGUucHJldiByb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gcm93X3ByZXYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwb3MgPSAwIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVpLm1heV9oYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEx3ZF90YWJsZS5nZXQgcm93X3ByZXYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gbGluZV9wcmV2IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0cl9wcmV2LCBfID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZC5wZWVrIGxpbmVfcHJldi5zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXMucmVsZWFzZSBsaW5lLmZvY3VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzLnJlcXVlc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfcHJldi5mb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2Quc2V0IGxpbmVfcHJldi5zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdHJfcHJldiBeIHN0cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmxlbmd0aCBzdHJfcHJldlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMd2RfdGFibGUucmVtb3ZlIHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSGFuZGxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGBVbmhhbmRsZWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnaycgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IF8gLT4gYFVuaGFuZGxlZCkpXG4gICAgICAgICAgICAgICAgICAgKEZvY3VzLnN0YXR1cyBmb2N1cykpKVxuXG4gIGFuZCB0cmVlX25hdiA/KGZvY3VzID0gRm9jdXMubWFrZSAoKSlcbiAgICAgICgodHJlZSwgcGF0aCkgOiBOYXYudHJlZSAqIE5hdi5wYXRoKSA6IFVpLnQgTHdkLnQgTHd0LnQgPVxuICAgIGxldCB0YWJsZSA9IEx3ZF90YWJsZS5tYWtlICgpIGluXG5cbiAgICBsZXQgY3Vyc29yX21vdmUgY3Vyc29yXG4gICAgICAgIChmIDogJ2EgTHdkX3RhYmxlLnJvdyAtPiAnYSBMd2RfdGFibGUucm93IG9wdGlvbikgPVxuICAgICAgbWF0Y2ggTHdkLnBlZWsgY3Vyc29yIHdpdGhcbiAgICAgIHwgU29tZSBjdXJzb3Jfcm93IC0+IChcbiAgICAgICAgICBtYXRjaCBmIGN1cnNvcl9yb3cgd2l0aFxuICAgICAgICAgIHwgU29tZSBuZXdfcm93IC0+XG4gICAgICAgICAgICAgIChtYXRjaCBMd2RfdGFibGUuZ2V0IG5ld19yb3cgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgKG5ld19saW5lX2ZvY3VzLCBfKSAtPlxuICAgICAgICAgICAgICAgICAgY3Vyc29yX3JvdyB8PiBMd2RfdGFibGUuZ2V0XG4gICAgICAgICAgICAgICAgICB8PiBPcHRpb24uaXRlciAoZnVuIChjdXJzb3JfbGluZV9mb2N1cywgXykgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1cy5yZWxlYXNlIGN1cnNvcl9saW5lX2ZvY3VzKTtcbiAgICAgICAgICAgICAgICAgIEZvY3VzLnJlcXVlc3QgbmV3X2xpbmVfZm9jdXNcbiAgICAgICAgICAgICAgfCBOb25lIC0+ICgpKTtcbiAgICAgICAgICAgICAgTHdkLnNldCBjdXJzb3IgKFNvbWUgbmV3X3Jvdyk7XG4gICAgICAgICAgICAgIGBIYW5kbGVkXG4gICAgICAgICAgfCBOb25lIC0+IGBVbmhhbmRsZWQpXG4gICAgICB8IE5vbmUgLT4gYFVuaGFuZGxlZFxuICAgIGluXG5cbiAgICAoKiBCdWlsZCB2aWV3IG9mIHRyZWUgKilcbiAgICBsZXQgb3BlbiBMd3QuSW5maXggaW5cbiAgICBOYXYuUy5UcmVlLmxpc3QgdHJlZSBwYXRoID4+PSBmdW4gdHJlZWxpc3QgLT5cbiAgICBMaXN0Lml0ZXJcbiAgICAgIChmdW4gdGUgLT4gTHdkX3RhYmxlLmFwcGVuZCcgdGFibGUgKEZvY3VzLm1ha2UgKCksIHRlKSlcbiAgICAgIHRyZWVsaXN0O1xuICAgIGxldCBjdXJzb3IgPSBMd2QudmFyIEBAIEx3ZF90YWJsZS5maXJzdCB0YWJsZSBpblxuICAgIE9wdGlvbi5pdGVyXG4gICAgICAoZnVuIGN1cnNvciAtPlxuICAgICAgICBPcHRpb24uaXRlciAoZnVuIChmLCBfKSAtPiBGb2N1cy5yZXF1ZXN0IGYpXG4gICAgICAgIEBAIEx3ZF90YWJsZS5nZXQgY3Vyc29yKVxuICAgICAgKEx3ZC5wZWVrIGN1cnNvcik7XG5cbiAgICAoKiBMd2Qub2JzZXJ2ZSB+b25faW52YWxpZGF0ZTooZnVuIF8gLT5cbiAgICAgICAgIEx3ZC5zZXQgY3Vyc29ydmlldyAoTHdkLnF1aWNrX3NhbXBsZSAocm9vdCAoKSkpKTsgKilcbiAgICBsZXQgY3Vyc29ydmlldyA9XG4gICAgICBMd2QudmFyIEBAIEx3ZC5wdXJlIEBAIHN0cmluZyBcImluaXRpYWxpemluZy4uLlwiXG4gICAgaW5cbiAgICBsZXQgY3YsIHB1c2hfY3YgPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICAgIGxldCBjdnJvb3QgPVxuICAgICAgTHdkLm9ic2VydmUgfm9uX2ludmFsaWRhdGU6KGZ1biBfIC0+XG4gICAgICAgICAgTG9nLmluZm8gKGZ1biBtIC0+XG4gICAgICAgICAgICAgIG1cbiAgICAgICAgICAgICAgICBcInRyZWVfbmF2IGN1cnNvcnZpZXdyb290IG9uX2ludmFsaWRhdGUgcHVzaF9jdiBcXFxuICAgICAgICAgICAgICAgICB0cmlnZ2VyZWQ/P1wiKTtcbiAgICAgICAgICBwdXNoX2N2IChTb21lICgpKSlcbiAgICAgIEBAIEx3ZC5tYXAgKEx3ZC5nZXQgY3Vyc29yKSB+ZjooZnVuY3Rpb25cbiAgICAgICAgICAgfCBTb21lIGN1cnNvcl9yb3cgLT4gKFxuICAgICAgICAgICAgICAgbWF0Y2ggTHdkX3RhYmxlLmdldCBjdXJzb3Jfcm93IHdpdGhcbiAgICAgICAgICAgICAgIHwgU29tZSAoX2ZvY3VzLCAoc3RlcCwgdHJlZSkpIC0+IChcbiAgICAgICAgICAgICAgICAgICBOYXYuUy5UcmVlLmtpbmQgdHJlZSBbXSA+Pj0gZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICB8IFNvbWUgYE5vZGUgLT4gbHd0X2x3ZF9zdHJpbmcgXCJTdWItbm9kZT8/XCJcbiAgICAgICAgICAgICAgICAgICB8IFNvbWUgYENvbnRlbnRzIC0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgTmF2LlMuVHJlZS5maW5kX2FsbCB0cmVlIFtdID4+PSBmdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICAgICB8IFNvbWUgKGNvbnRlbnRzLCBfbWV0YWRhdGEpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBMd3QucmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0X2FyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfnRhYmxlOihsaW5lX3RhYmxlX29mX3N0cmluZyBjb250ZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbHd0X2x3ZF9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFwiY291bGQgbm90IGZpbmQgcGF0aDogXCIgXiBzdGVwKSlcbiAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbHd0X2x3ZF9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAoXCJOYXYuUy5UcmVlLmtpbmQgXCIgXiBzdGVwIF4gXCIgLT4gTm9uZT9cIikpXG4gICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICBsd3RfbHdkX3N0cmluZyBcImN1cnNvciB0YWJsZSByb3cgZG9lc24ndCBleGlzdFwiKVxuICAgICAgICAgICB8IE5vbmUgLT4gbHd0X2x3ZF9zdHJpbmcgXCJjdXJzb3IgZG9lc24ndCBleGlzdFwiKVxuICAgIGluXG4gICAgTHd0LmFzeW5jIChmdW4gKCkgLT5cbiAgICAgICAgTHd0X3N0cmVhbS5pdGVyX3NcbiAgICAgICAgICAoZnVuIF8gLT5cbiAgICAgICAgICAgIEx3ZC5xdWlja19zYW1wbGUgY3Zyb290ID4+PSBmdW4gY3Vyc29ydmlldycnIC0+XG4gICAgICAgICAgICBMb2cuaW5mbyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgICBtIFwidHJlZV9uYXYgTHd0LmFzeW5jIChMd2Quc2V0IGN1cnNvcnZpZXcpXCIpO1xuICAgICAgICAgICAgTHd0LnJldHVybiAoTHdkLnNldCBjdXJzb3J2aWV3IGN1cnNvcnZpZXcnJykpXG4gICAgICAgICAgY3YpO1xuICAgIHB1c2hfY3YgKFNvbWUgKCkpO1xuICAgIEx3dC5yZXR1cm5cbiAgICAgIChMd2RfdGFibGUubWFwX3JlZHVjZVxuICAgICAgICAgKGZ1biBfIChmLCAocywgXykpIC0+XG4gICAgICAgICAgIEx3ZC5tYXBcbiAgICAgICAgICAgICB+ZjooZnVuIGZvY3VzX2ggLT5cbiAgICAgICAgICAgICAgIGlmIEZvY3VzLmhhc19mb2N1cyBmb2N1c19oIHRoZW4gc3RyaW5nIH5hdHRyOkEuY3Vyc29yIHNcbiAgICAgICAgICAgICAgIGVsc2Ugc3RyaW5nIHMpXG4gICAgICAgICAgICAgKEZvY3VzLnN0YXR1cyBmKSlcbiAgICAgICAgIChMd2RfdXRpbHMubGlmdF9tb25vaWQgVWkucGFja195KVxuICAgICAgICAgdGFibGVcbiAgICAgIHw+IEx3ZC5qb2luXG4gICAgICB8PiBMd2QubWFwMiAoRm9jdXMuc3RhdHVzIGZvY3VzKSB+ZjooZnVuIGZvY3VzIC0+XG4gICAgICAgICAgICAgVWkua2V5Ym9hcmRfYXJlYSB+Zm9jdXMgKGZ1biBrIC0+XG4gICAgICAgICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT4gbSBcIm5hdl9oYW5kbGVyICVhXCIgVWkucHBfa2V5IGspO1xuICAgICAgICAgICAgICAgICBtYXRjaCBrIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICduJyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIEx3ZF90YWJsZS5uZXh0XG4gICAgICAgICAgICAgICAgIHwgYEFycm93IGBEb3duLCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICBjdXJzb3JfbW92ZSBjdXJzb3IgTHdkX3RhYmxlLm5leHRcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgQ3RybCBdIHdoZW4gZXFfdWNfYyB1ICdwJyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIEx3ZF90YWJsZS5wcmV2XG4gICAgICAgICAgICAgICAgIHwgYEFycm93IGBVcCwgXyAtPiBjdXJzb3JfbW92ZSBjdXJzb3IgTHdkX3RhYmxlLnByZXZcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc8JyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5maXJzdCB0YWJsZSlcbiAgICAgICAgICAgICAgICAgfCBgVWNoYXIgdSwgWyBgTWV0YSBdIHdoZW4gZXFfdWNfYyB1ICc+JyAtPlxuICAgICAgICAgICAgICAgICAgICAgY3Vyc29yX21vdmUgY3Vyc29yIChmdW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIEx3ZF90YWJsZS5sYXN0IHRhYmxlKVxuICAgICAgICAgICAgICAgICB8IGBFbnRlciwgW10gLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBgQmFja3NwYWNlLCBbXSAtPiBgVW5oYW5kbGVkXG4gICAgICAgICAgICAgICAgIHwgYFVjaGFyIHUsIFsgYEN0cmwgXSB3aGVuIGVxX3VjX2MgdSAnaycgLT4gYEhhbmRsZWRcbiAgICAgICAgICAgICAgICAgfCBfIC0+IGBVbmhhbmRsZWQpKVxuICAgICAgfD4gTHdkLm1hcDJcbiAgICAgICAgICAgKEx3ZC5qb2luIEBAIEx3ZC5nZXQgY3Vyc29ydmlldylcbiAgICAgICAgICAgfmY6KGZ1biBjdXJzb3J2aWV3JyB0cmVlX3ZpZXcgLT5cbiAgICAgICAgICAgICBVaS5qb2luX3ggdHJlZV92aWV3IGN1cnNvcnZpZXcnKSlcblxuICAoKiogVGFiIHZpZXcsIHdoZXJlIGV4YWN0bHkgb25lIGVsZW1lbnQgb2YgW2xdIGlzIHNob3duIGF0IGEgdGltZS4gKilcbiAgbGV0IHRhYnMgKHRhYnMgOiAoc3RyaW5nICogKHVuaXQgLT4gVWkudCBMd2QudCkpIGxpc3QpIDogVWkudCBMd2QudFxuICAgICAgPVxuICAgIG1hdGNoIHRhYnMgd2l0aFxuICAgIHwgW10gLT4gTHdkLnJldHVybiBVaS5lbXB0eVxuICAgIHwgXyAtPlxuICAgICAgICBsZXQgY3VyID0gTHdkLnZhciAwIGluXG4gICAgICAgIEx3ZC5nZXQgY3VyID4+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+aDpgTmVnYXRpdmUgfnY6YE5lZ2F0aXZlIGluXG4gIGxldCBncmF2aXR5X2Nyb3AgPSBHcmF2aXR5Lm1ha2Ugfmg6YFBvc2l0aXZlIH52OmBOZWdhdGl2ZSBpblxuICBsZXQgYm9keSA9IEx3ZC52YXIgKEx3ZC5wdXJlIFVpLmVtcHR5KSBpblxuICBsZXQgd20gPSBXaWRnZXRzLndpbmRvd19tYW5hZ2VyIChMd2Quam9pbiAoTHdkLmdldCBib2R5KSkgaW5cbiAgTmF2LnRlc3RfcHVsbCAoKSA+Pj0gZnVuIHRlc3RfdHJlZSAtPlxuICBXaWRnZXRzLih0cmVlX25hdiAodGVzdF90cmVlLCBbXSkpID4+PSBmdW4gdWkgLT5cbiAgbGV0IHJvb3QgPVxuICAgIEx3ZC5zZXQgYm9keVxuICAgICAgKEx3ZC5tYXAgfmY6KFVpLnJlc2l6ZSB+cGFkOmdyYXZpdHlfcGFkIH5jcm9wOmdyYXZpdHlfY3JvcCkgdWkpO1xuICAgIFdpZGdldHMud2luZG93X21hbmFnZXJfdmlldyB3bVxuICBpblxuXG4gIGxldCBldmVudHMsIHB1c2hfZXZlbnQgPSBMd3Rfc3RyZWFtLmNyZWF0ZSAoKSBpblxuICBsZXQgaW1hZ2VzID1cbiAgICBIdW1hbi5Ob3R0dWlfbHd0LnJlbmRlciB2Z1xuICAgICAgfnNpemU6KEdnLlAyLnYgY2FudmFzIyMud2lkdGggY2FudmFzIyMuaGVpZ2h0KVxuICAgICAgZXZlbnRzIHJvb3RcbiAgaW5cbiAgYXN5bmMgKGZ1biAoKSAtPlxuICAgICAgcmVuZGVyX3N0cmVhbSBjYW52YXMgd2ViZ2xfY3R4IHZnXG4gICAgICAgIChmdW4gdmcgPyh0aW1lID0gMC4pIHAgaSAtPlxuICAgICAgICAgIGxldCBfID0gdGltZSBpblxuICAgICAgICAgIExvZy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgbSBcIkRyYXdpbmcgaW1hZ2U6IHA9JWEgbj0lYVwiIEdnLlYyLnBwIHBcbiAgICAgICAgICAgICAgICAoSS5EcmF3LnBwIH5hdHRyOkEuZGFyaylcbiAgICAgICAgICAgICAgICBpKTtcbiAgICAgICAgICBsZXQgcCcgPSBJLkRyYXcubm9kZSB2ZyBBLmRhcmsgcCBpIGluXG4gICAgICAgICAgTG9ncy5kZWJ1ZyAoZnVuIG0gLT5cbiAgICAgICAgICAgICAgbSBcIkRyYXdpbmcgZmluaXNoZWQ6IHAnPSVhXCIgR2cuVjIucHAgcCcpKVxuICAgICAgICBpbWFnZXMpO1xuICBidWZmZXJlZF9sb29wIChtYWtlX2V2ZW50IERvbV9odG1sLkV2ZW50LmtleWRvd24pIERvbV9odG1sLmRvY3VtZW50XG4gICAgKGZ1biBldiBfIC0+XG4gICAgICBMd3QucmV0dXJuXG4gICAgICBAQCBwdXNoX2V2ZW50IChTb21lIChgS2V5IChFdmVudF9qcy5ldnRfb2ZfanNrZXkgZXYpKSkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEVuc3VyZSB0aGF0IFthdF9leGl0XSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGV2ZXJ5IHByb2dyYW0gKilcblxubGV0IF8gPSBkb19hdF9leGl0KClcbiJdfQ== \ No newline at end of file diff --git a/boot_js.ml b/boot_js.ml index 4b1287f..7578973 100644 --- a/boot_js.ml +++ b/boot_js.ml @@ -91,7 +91,7 @@ let _ = let body = Lwd.var (Lwd.pure Ui.empty) in let wm = Widgets.window_manager (Lwd.join (Lwd.get body)) in Nav.test_pull () >>= fun test_tree -> - Widgets.(tree_nav test_tree []) >>= fun ui -> + 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 942bde0..1201288 100644 --- a/human.ml +++ b/human.ml @@ -2774,17 +2774,18 @@ module Widgets = struct Ui.may_handle (Lwd.peek cursor) (fun row -> Ui.may_handle (Lwd_table.get row) (fun line -> f row line)) - let cursor_move cursor - (f : 'a Lwd_table.row -> 'a Lwd_table.row option) = + let cursor_move ?(update : 'a -> 'a -> unit = fun _ _ -> ()) + (cursor : 'a Lwd_table.row option Lwd.var) + (new_row : 'a Lwd_table.row -> 'a Lwd_table.row option) = match Lwd.peek cursor with | Some cursor_row -> ( - match f cursor_row with + match new_row cursor_row with | Some new_row -> (match Lwd_table.get new_row with | Some new_line -> cursor_row |> Lwd_table.get |> Option.iter (fun cursor_line -> - copy_line_cursor cursor_line new_line; + update cursor_line new_line; Focus.release cursor_line.focus); Focus.request new_line.focus | None -> ()); @@ -2793,7 +2794,7 @@ module Widgets = struct | None -> `Unhandled) | None -> `Unhandled - let edit_area_of_string ?(table = Lwd_table.make ()) (s : string) : + let line_table_of_string ?(table = Lwd_table.make ()) (s : string) : line Lwd_table.t = (* Append lines from s to table *) List.iter (line_append ~table) (String.split_on_char '\n' s); @@ -2839,6 +2840,9 @@ module Widgets = struct ((None, line_empty ()), focus_handle_compare) table + let to_lwt_lwd e = Lwt.return @@ Lwd.pure e + let lwt_lwd_string s = to_lwt_lwd @@ string s + let edit_area ?(table = Lwd_table.make ()) ?(focus = Focus.make ()) () : Ui.t Lwd.t = let cursor = Lwd.var @@ Lwd_table.first table in @@ -2859,19 +2863,20 @@ module Widgets = struct Ui.keyboard_area ~focus (fun k -> Log.debug (fun m -> m "edit_area handler %a" Ui.pp_key k); + let cursor_move = + cursor_move ~update:copy_line_cursor cursor + in 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) + cursor_move Lwd_table.next + | `Arrow `Down, _ -> cursor_move Lwd_table.next | `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) + cursor_move Lwd_table.prev + | `Arrow `Up, _ -> cursor_move Lwd_table.prev | `Uchar u, [ `Meta ] when eq_uc_c u '<' -> - cursor_move cursor (fun _ -> Lwd_table.first table) + cursor_move (fun _ -> Lwd_table.first table) | `Uchar u, [ `Meta ] when eq_uc_c u '>' -> - cursor_move cursor (fun _ -> Lwd_table.last table) + cursor_move (fun _ -> Lwd_table.last table) | `Enter, [] -> line_of_cursor cursor (fun old_row old_line -> let str, pos = Lwd.peek old_line.state in @@ -2909,7 +2914,111 @@ module Widgets = struct | _ -> `Unhandled)) (Focus.status focus) - let tree_nav ?(focus = Focus.make ()) tree path : Ui.t Lwd.t Lwt.t = + (* TODO: view_metadata *) + + let rec node_edit_area ?(table = Lwd_table.make ()) + ?(focus = Focus.make ()) ((tree, path) : Nav.tree * Nav.path) : + Ui.t Lwd.t Lwt.t = + let cursor = Lwd.var @@ Lwd_table.first table in + let open Lwt.Infix in + Nav.S.Tree.kind tree path >>= function + | None -> + lwt_lwd_string + ("Nav.S.Tree.kind " ^ String.concat "/" path + ^ " how'd you get here??") + | Some `Node -> tree_nav (tree, path) + | Some `Contents -> ( + Nav.S.Tree.find_all tree path >>= function + | None -> + lwt_lwd_string + ("Nav.S.Tree.find_all " ^ String.concat "/" path + ^ " -> None") + | Some (contents, _metadata) -> + line_table_of_string ~table contents |> ignore; + Option.iter + (fun cursor -> + Option.iter (fun first -> Focus.request first.focus) + @@ Lwd_table.get cursor) + (Lwd.peek cursor); + + (* Build view of table *) + Lwt.return + (Lwd_table.map_reduce + (fun _ { ui; _ } -> ui) + (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); + let cursor_move = + cursor_move ~update:copy_line_cursor cursor + in + match k with + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'n' -> + cursor_move Lwd_table.next + | `Arrow `Down, _ -> + cursor_move Lwd_table.next + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'p' -> + cursor_move Lwd_table.prev + | `Arrow `Up, _ -> cursor_move Lwd_table.prev + | `Uchar u, [ `Meta ] when eq_uc_c u '<' -> + cursor_move (fun _ -> + Lwd_table.first table) + | `Uchar u, [ `Meta ] when eq_uc_c u '>' -> + cursor_move (fun _ -> + Lwd_table.last table) + | `Enter, [] -> + line_of_cursor cursor + (fun old_row old_line -> + let str, pos = + Lwd.peek old_line.state + in + let n_str = + String.( + sub str pos (length str - pos)) + in + Lwd.set old_line.state + (String.sub str 0 pos, pos); + let new_line = line_make n_str in + Focus.release old_line.focus; + Focus.request new_line.focus; + Lwd.set cursor + (Some + (Lwd_table.after old_row + ~set:new_line)); + `Handled) + | `Backspace, [] -> + line_of_cursor cursor (fun row line -> + let str, pos = Lwd.peek line.state in + Ui.may_handle (Lwd_table.prev row) + (fun row_prev -> + if pos = 0 then + Ui.may_handle + (Lwd_table.get row_prev) + (fun line_prev -> + let str_prev, _ = + Lwd.peek line_prev.state + in + Focus.release line.focus; + Focus.request + line_prev.focus; + Lwd.set line_prev.state + ( str_prev ^ str, + String.length str_prev + ); + Lwd_table.remove row; + `Handled) + else `Unhandled)) + | `Uchar u, [ `Ctrl ] when eq_uc_c u 'k' -> + `Handled + | _ -> `Unhandled)) + (Focus.status focus))) + + and tree_nav ?(focus = Focus.make ()) + ((tree, path) : Nav.tree * Nav.path) : Ui.t Lwd.t Lwt.t = let table = Lwd_table.make () in let cursor_move cursor @@ -2962,33 +3071,30 @@ module Widgets = struct match Lwd_table.get cursor_row with | Some (_focus, (step, tree)) -> ( Nav.S.Tree.kind tree [] >>= function - | Some `Node -> - Lwt.return @@ Lwd.pure @@ string "Sub-node??" + | Some `Node -> lwt_lwd_string "Sub-node??" | Some `Contents -> ( Nav.S.Tree.find_all tree [] >>= function | Some (contents, _metadata) -> Lwt.return (edit_area - ~table:(edit_area_of_string contents) + ~table:(line_table_of_string contents) ()) | None -> - Lwt.return @@ Lwd.pure - @@ string ("could not find path: " ^ step)) - | None -> Lwt.return @@ Lwd.pure @@ string step) + lwt_lwd_string + ("could not find path: " ^ step)) + | None -> + lwt_lwd_string + ("Nav.S.Tree.kind " ^ step ^ " -> None?")) | None -> - Lwt.return @@ Lwd.pure - @@ string "cursor table row doesn't exist") - | None -> - Lwt.return @@ Lwd.pure @@ string "cursor doesn't exist") + lwt_lwd_string "cursor table row doesn't exist") + | None -> lwt_lwd_string "cursor doesn't exist") in Lwt.async (fun () -> Lwt_stream.iter_s (fun _ -> Lwd.quick_sample cvroot >>= fun cursorview'' -> Log.info (fun m -> - m - "tree_nav cursorviewroot on_invalidate Lwt.async \ - (Lwd.set cursorview) triggered??"); + m "tree_nav Lwt.async (Lwd.set cursorview)"); Lwt.return (Lwd.set cursorview cursorview'')) cv); push_cv (Some ()); @@ -3003,20 +3109,17 @@ module Widgets = struct (Lwd_utils.lift_monoid Ui.pack_y) table |> Lwd.join - |> Lwd.map2 - ~f:(fun focus -> + |> Lwd.map2 (Focus.status focus) ~f:(fun focus -> Ui.keyboard_area ~focus (fun k -> - Log.debug (fun m -> - m "edit_area handler %a" Ui.pp_key k); + Log.debug (fun m -> m "nav_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) + cursor_move cursor Lwd_table.next | `Arrow `Down, _ -> - cursor_move cursor (fun c -> Lwd_table.next c) + cursor_move cursor Lwd_table.next | `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) + cursor_move cursor Lwd_table.prev + | `Arrow `Up, _ -> cursor_move cursor Lwd_table.prev | `Uchar u, [ `Meta ] when eq_uc_c u '<' -> cursor_move cursor (fun _ -> Lwd_table.first table) @@ -3027,11 +3130,10 @@ module Widgets = struct | `Backspace, [] -> `Unhandled | `Uchar u, [ `Ctrl ] when eq_uc_c u 'k' -> `Handled | _ -> `Unhandled)) - (Focus.status focus) |> Lwd.map2 + (Lwd.join @@ Lwd.get cursorview) ~f:(fun cursorview' tree_view -> - Ui.join_x tree_view cursorview') - (Lwd.join @@ Lwd.get cursorview)) + Ui.join_x tree_view cursorview')) (** 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