@charset "UTF-8";
a { padding: 0; }

@media (max-width: 700px) { .johnny-utah { content: 'Whoa.'; } border}

.clear-lg2 { clear: both; }

@media (max-width: 940px) { .clear-lg2 { clear: none; } }

@media (max-width: 1023px) { .clear-lg1 { clear: none; } }

@media (max-width: 940px) { .clear-lg1 { clear: both; } }

@media (max-width: 700px) { .clear-lg1 { clear: none; } }

.lg2 { display: block; }

@media (max-width: 940px) { .lg2 { display: none; } }

.lg1 { display: none; }

@media (max-width: 940px) { .lg1 { display: block; } }

table td { word-break: break-all; }

body { font-family: "맑은고딕","malgun gothic","나눔고딕","Nanum Gothic","AppleGothic","돋움","dotum",Helvetica,Arial,sans-serif; font-size: 0.85em; color: #2d3740; position: relative; background: #f2f4f7 url(/static/images/common/bg_top.gif) repeat-x left top; }

@media (max-width: 767px) { body { background: none; background: #f2f4f7; } }

#bgW { display: none; background: rgba(0, 0, 0, 0.7); position: fixed; width: 100%; z-index: 200; top: 0; height: 100%; }

#wrapper { max-width: 100%; margin: 0 auto; min-width: 320px; background: url(/static/images/common/sub_visual.jpg) no-repeat center 140px; }

@media (max-width: 767px) { #wrapper { background: none; } }

#header #logo { text-align: center; height: 56px; }

@media (max-width: 767px) { #header #logo { text-align: left; float: left; margin-left: 10px; } }

@media (max-width: 767px) { #header #logo img { width: 190px; margin-top: 13px; } }

#header { height: 140px; max-width: 1260px; width: 100%; margin: 0 auto; padding-top: 17px; position: relative; }

@media (max-width: 767px) { #header { height: 70px; padding-top: 0; border-bottom: 3px solid #1a2851; background: #fff; margin-bottom: 0; } }

#header #tLink { position: absolute; top: 0; right: 0; }

@media (max-width: 1400px) { #header #tLink { right: 12px; } }

@media (max-width: 767px) { #header #tLink { display: none; } }

#header #tLink a { padding: 5px 7px 5px 30px; font-size: 0.85em; font-weight: bold; border-radius: 0 0 3px 3px; display: inline-block; color: #fff; }

#header #tLink .ps { background: #1a2851 url(/static/images/common/ico/ico_w_portal.png) no-repeat 10px center; padding: 5px 15px 5px 38px; }

#header #tLink .ev { background: #6fa4d6 url(/static/images/common/ico/ico_w_world.png) no-repeat 8px center; }

#header #global { float: right; position: absolute; top: 38px; right: 0; }

@media (max-width: 767px) { #header #global { display: none; } }

#header #global { float: right; position: absolute; top: 38px; right: 0; }

@media (max-width: 767px) { #header #global { display: none; } }

#header #global a { font-size: 0.95em; background: url(/static/images/global/common/bu_global.gif) right center no-repeat; padding-right: 16px; color: #1a2851; font-weight: bold; }

#gnbWrap { position: relative; z-index: 150; top: 20px; padding-right: 95px; }

@media (max-width: 767px) { #gnbWrap { float: right; top: 10px; right: 10px; } }

#gnb { padding: 0; height: 46px; margin-bottom: 7px; }

#gnb a { text-decoration: none; display: block; }

#gnb > ul { position: relative; z-index: 100; }

@media (max-width: 767px) { #gnb > ul { display: none; } }

#gnb > ul > li { float: left; position: relative; width: 20%; background: url("/static/images/common/bg_gnbLine.gif") repeat-y left top; }

#gnb > ul > li > a { color: #fff; font-size: 15px; padding: 16px 1%; font-weight: 600; display: block; white-space: nowrap; display: block; line-height: 1; text-align: center; letter-spacing: -1px; }

#gnb > ul > li > a:after, #gnb > ul > li > a:after { content: ''; display: block; position: absolute; background: url(/static/images/common/bu_gnbOff.gif) 0 0 no-repeat; width: 14px; height: 11px; left: 0; top: 21px; z-index: 20; }

#gnb > ul > li.on > a:after, #gnb > ul > li.hover > a:after { content: ''; display: block; position: absolute; background: url(/static/images/common/bu_gnbOn.gif) 0 0 no-repeat; width: 16px; height: 11px; left: 0; top: 21px; z-index: 20; }

#gnb > ul > li > ul { position: absolute; left: 0; top: 47px; padding-top: 18px; display: none; border: 1px solid #f05291; border-top: 1px solid #fff; width: 235px; }

#gnb > ul > li.hover > ul { display: block; background: #fff; padding: 10px 12px; }

#gnb.viewAll > ul > li > ul { display: block; }

#gnb > ul > li > ul > li > a { font-size: 12.5px; padding: 2px 0 2px 8px; padding: 2px 0 0 8px; color: #000; }

#gnb > ul > li > ul > li:before { content: "- "; display: inline-block; float: left; }

#gnb > ul > li > ul > li > ul { padding-bottom: 8px; }

#gnb > ul > li > ul > li > ul li a { font-size: 13px; color: #757575; padding: 2px 10px; }

#gnb > ul > li > ul.view { display: block; overflow: visible; }

#gnb .totalSch { position: absolute; right: 35px; top: 26px; font-weight: 600; padding-right: 0; height: 26px; }

#gnb .totalSch > a { display: block; }

#gnb .totalSch > a.totalSch_open { background: url(/static/images/common/btn_totalsch.png) center 5px no-repeat; width: 40px; height: 40px; }

#gnb .totalSch.on { display: none; }

#gnb .totalSch_close { background: #333 url(/static/images/common/btn_schclose.gif) center 0 no-repeat; width: 40px; height: 40px; display: none; }

#gnb .totalSch_close:hover, #gnb .totalSch_close:focus { background: #333 url(/static/images/common/btn_schclose.gif) center 0 no-repeat; }

#gnb .totalSch_area { position: absolute; background: #333; padding: 15px; width: 300px; right: 35px; top: 63px; display: none; }

#gnb .totalSch_area .inp { border: 0; padding: 0 10px; height: 31px; width: 230px; }

#gnb .totalSch_area .totalSch_box { background: #fff; display: block; border-radius: 3px; padding: 4px; }

#gnb .navClose { display: none; position: absolute; right: 0; top: 35px; font-weight: 600; background: url(/static/images/common/navOpen.png) right 0 no-repeat; padding-right: 36px; color: #93dbff; height: 26px; font-size: 16px; }

.tsh { float: left; width: 20.1%; min-width: 48px; position: relative; height: 47px; background: #1a2952; font-size: 0.95em; display: none; position: absolute; right: 90px; width: 210px; z-index: 100; }

.tsh > form > span { display: block; margin-right: 0; border-radius: 5px; background: #fff; padding: 3px 50px 3px 8px; margin: 6px 7px 0 7px; }

.tsh > form > span .acArrow { display: inline-block !important; position: absolute; top: 13px; right: 35px; }

.tsh .inp { border: #efefef; height: 28px; line-height: 28px; background: #fff; width: 100%; }

.tsh .btn_gnbSch { position: absolute; right: 12px; top: 13px; }

.schBtn { display: none !important; }

.schBtn.on { position: absolute; top: 0; right: 48px; display: block !important; }

.schClose { position: absolute; top: 0; right: 48px; display: none !important; }

@media (max-width: 767px) { .schClose { display: none !important; } }

.schClose.on { position: absolute; top: 0; right: 48px; display: block !important; }

@media (max-width: 767px) { .schClose.on { display: block !important; } }

#container { height: auto; width: 100%; max-width: 1260px; padding-top: 0; margin: 0 auto; position: relative; margin-top: 50px; }

#container img { vertical-align: middle; }

@media (max-width: 767px) { #container { margin-top: 0; } }

.hgroup { clear: both; text-align: center; display: none; }

@media (max-width: 767px) { .hgroup { display: block; } }

.hgroup h2 { padding: 3.3% 0 3.25% 0; font-size: 2.5em; font-weight: 400; letter-spacing: -1px; color: #474a5b; }

@media (max-width: 767px) { .hgroup h2 { font-size: 2em; cursor: pointer; } }

@media (max-width: 767px) { .hgroup h2 > span { background: url(/static/images/common/bu_selectM.png) right bottom no-repeat; display: inline-block; padding-right: 35px; } }

.hgroup .lnb1dept { display: none; }

@media (max-width: 767px) { .hgroup .lnb1dept.on { display: block; background: #fff; position: absolute; width: 98%; z-index: 101; border-top: 0; left: 1%; }
  .hgroup .lnb1dept li { border-bottom: 1px solid #f087b1; color: #fff; display: block; padding: 3px; background: #f05291 url(/static/images/common/bu1.gif) 10px center no-repeat; }
  .hgroup .lnb1dept li a { color: #fff; text-align: left; display: block; padding: 3px 3px 3px 15px; } }

#lnbWrap { min-width: 180px; max-width: 280px; width: 22%; margin-right: 1%; float: left; }

@media (max-width: 1023px) { #lnbWrap { width: 19%; } }

@media (max-width: 940px) { #lnbWrap { display: none; } }

#lnb { background: #fff; }

#lnb h3 { background: #474a5b url(/static/images/common/bg_lnbTit.png) 35px bottom no-repeat; padding: 25px 30px; font-size: 2.1em; color: #fff; font-weight: 400; letter-spacing: -1px; line-height: 1.2; }

#lnb.type { padding-top: 20px; margin-top: 10px; }

#lnb.type h3 { font-size: 1.0em; padding: 16px; font-weight: bold; }

#lnb.type h3 span { background: url(/static/images/ico/ico_w_sch2.png) left center no-repeat; padding-left: 20px; }

#lnb > ul { padding: 8% 8% 12% 8%; }

#lnb > ul > li { border-bottom: 1px solid #e6e7eb; }

#lnb > ul > li > a { display: block; line-height: 139%; font-size: 1.05em; background: url(/static/images/common/bu_lnb1_off.gif) 5px 12px no-repeat; padding: 5px 0 5px 18px; }

#lnb > ul > li > ul { padding: 0 0 5px 0; margin-left: 15px; }

#lnb > ul > li > ul > li { padding: 2px 0; }

#lnb > ul > li > ul > li > a { color: #777; font-size: 0.95em; background: url(/static/images/common/bu_lnb2.gif) left 9px no-repeat; padding-left: 12px; }

#lnb > ul > li.on > a { font-weight: bold; background: url(/static/images/common/bu_lnb1_on.png) left 12px no-repeat; }

#lnb > ul > li.on > ul > li.on > a { color: #f05291; font-weight: bold; }

#lnbInfo { padding: 12px; background: #fff; margin-top: 10px; height: 220px; }

#lnbInfo h3 { font-size: 1em; margin-bottom: 12px; margin-top: 10px; }

#lnbInfo > ul { position: relative; }

#lnbInfo > ul > li { float: left; margin-left: 1px; margin: 2px 0 1.5% 0; width: 50%; }

#lnbInfo > ul > li > a { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; display: block; text-align: center; color: #666; letter-spacing: -1px; padding: 5px 0; background: #f5f6fa; border: 1px solid #b2b4bf; margin-left: -1px; font-size: 0.9em; color: #787d9a; }

#lnbInfo > ul > li > a.on { color: #f05291; border-bottom: 1px solid #fff; background: #fff url("/images/common/bu_arr_down.png") no-repeat center bottom; padding: 3px 0 7px 0; font-weight: 600; }

.lnbInfo_area { position: absolute; top: 32px; left: 0; width: 100%; padding: 13px 0 0; display: none; }

.lnbInfo_area > ul > li { margin: 2.8% 0; float: none; overflow: hidden; }

.lnbInfo_area > ul > li > a { font-size: 0.9em; text-align: left; line-height: 129%; color: #666; background: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; }

.lnbInfo_area .numt { padding: 1px; text-align: center; width: 13px; height: 13px; font-family: verdana; font-size: 0.8em; color: #fff; display: inline-block; line-height: 1.1; margin-right: 8px; vertical-align: middle; border-radius: 1px; }

.lnbInfo_area .numType1, .lnbInfo_area .numType2, .lnbInfo_area .numType3 { background: #f05291; }

.lnbInfo_area .numType4, .lnbInfo_area .numType5, .lnbInfo_area .numType6 { background: #474a5b; }

.lnbService { width: 100%; overflow: hidden; background: #fff; margin: 10px 0; }

.lnbService li { float: left; width: 50%; margin: 22px 0; }

.lnbService li:first-child { border-right: 1px solid #ddd; }

.lnbService li a { display: block; color: #f05291; text-align: center; font-weight: bold; font-size: 0.95em; }

.lnbService li a span { display: block; padding-top: 5px; }

#contents { float: left; width: 77%; }

@media (max-width: 1023px) { #contents { width: 79%; } }

@media (max-width: 940px) { #contents { width: 100%; } }

#contents > .wbox:first-child { margin-top: 0; min-height: 700px; }

@media (max-width: 767px) { #contents > .wbox:first-child { min-height: inherit; } }

.wbox { padding: 1em 1.7em; background: #fff; margin-top: 10px; display: block; }

.wbox:before, .wbox:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }

@media (max-width: 940px) { .wbox { margin: 1%; padding: 1em 0.5em; } }

.conP .tit1:first-child { margin-top: 0; }

.location { clear: both; display: block; border-bottom: 1px solid #474a5b; margin-bottom: 3%; padding-bottom: 1%; }

.location:before, .location:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }

@media (max-width: 767px) { .location { margin: 0 0 1em 0; } }

.location > div.locL { float: left; color: #666; font-size: 0.90em; }

@media (max-width: 767px) { .location > div.locL { display: none; margin: 0 1%; } }

.location > div.locL > span { display: inline-block; letter-spacing: -1px; }

.location > div.locL > span:first-child { background: url(/static/images/common/bu_home.gif) left 48% no-repeat; padding-left: 18px; letter-spacing: 0; }

.location > div.locL > span.ing { color: #333; }

.location.type { font-size: 1.15em; font-weight: bold; }

.snsService { float: right; }

.snsService a:first-child { margin-right: 0; }

.snsService img { vertical-align: top !important; }

.snsService a, .snsService span { float: left; margin-right: 2px; }

.snsService .sns_goodN { margin-right: 8px; background: url(/static/images/common/sns_goodN.gif) right top no-repeat; padding: 0 4px; color: #fff; font-size: 0.85em; height: 20px; }

.snsService .print a { margin-left: 7px; }

.qMenu { position: absolute; top: 0; right: -67px; }

@media (max-width: 1400px) { .qMenu { display: none; } }

.qMenu a { display: block; color: #fff; font-size: 0.95em; font-weight: bold; width: 66px; height: 80px; text-align: center; line-height: 1.2; padding: 37px 4px 0 4px; background: #474a5b url(/static/images/common/bu_qmenu.png) no-repeat center 9px; }

#footer { background: #fff; margin-top: 30px; border-top: 1px solid #dee3eb; }

#footer a { font-size: 0.9em; letter-spacing: -1px; }

#footer .foot { padding: 0 0 10px 0; width: 100%; overflow: hidden; position: relative; }

@media (max-width: 1260px) { #footer .foot { padding: 0 10px 10px 10px; } }

#footer .footer_bg { margin: 0 auto; max-width: 1260px; }

.f_logo { float: left; padding: 10px 26px 0 0; }

@media (max-width: 1260px) { .f_logo { display: none; } }

.f_logo.type1 { padding-top: 20px; }

.f_logo img { width: 240px; }

.f_add { float: left; padding-top: 23px; color: #474a5b; font-size: 0.95em; line-height: 1.4; }

@media (max-width: 940px) { .f_add { float: none; text-align: center; padding: 55px 0 10px 0; } }

.f_add address { margin-bottom: 1px; }

@media (max-width: 940px) { .f_add span { display: block; } }

.f_add .addB { font-weight: bold; color: #f05291; display: inline-block !important; }

.f_add .telboxW .telbox { margin-top: 5px; float: left; }

.f_add .telboxW .telbox span { background: #787d9a; line-height: 1.4; padding: 3px 10px; color: #fff; border-radius: 2px 0 0 2px; display: inline-block; vertical-align: top; }

.f_add .telboxW .telbox .arr { background: #474a5b url(/static/images/portal/common/tel_arr.png) center center no-repeat; display: inline-block; border-radius: 0 2px 2px 0; width: 10px; height: 22px; }

.f_add .telboxW p { float: left; margin: 5px 0 0 5px; font-weight: bold; }

.family { float: right; padding: 25px 285px 0 0; }

@media (max-width: 940px) { .family { display: block; } }

@media (max-width: 940px) { .family { float: none; padding: 0; text-align: center; position: absolute; top: 8px; left: 50%; margin-left: -130px; } }

.family .familySel { cursor: pointer; border: 0; background: #f8f8f8 url(/static/images/common/bu_select.gif) 90% no-repeat; width: 205px; overflow: hidden; display: inline-block; border: 1px solid #474a5b; float: left; }

@media (max-width: 940px) { .family .familySel { float: none; } }

.family .familySel select { height: 32px; border: none; background: transparent; width: 115%; min-width: 90px; font-size: 13px; padding-left: 10px; }

.family .input_img { vertical-align: top; display: inline; }

.f_menu { width: 100%; margin: 0 auto; overflow: hidden; line-height: 35px; border-bottom: 1px solid #e5e5e5; margin-top: 8px; }

@media (max-width: 940px) { .f_menu { margin-top: 0; } }

.f_menu ul { overflow: hidden; float: left; }

@media (max-width: 940px) { .f_menu ul { float: none; } }

.f_menu ul li { float: left; background: url(/static/images/common/line.gif) no-repeat left 50%; padding: 0 9px; }

@media (max-width: 940px) { .f_menu ul li { background: none; border: 1px solid #e5e5e5; border-width: 0 1px 1px 0; width: 16.66%; padding: 0; text-align: center; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; } }

@media (max-width: 480px) { .f_menu ul li { width: 33.33%; } }

.f_menu ul li a { color: #474a5b; font-size: 1.0em; display: block; }

.f_menu .f_sns { float: right; margin-bottom: 3px; }

@media (max-width: 1260px) { .f_menu .f_sns { margin-right: 10px; } }

@media (max-width: 940px) { .f_menu .f_sns { float: none; text-align: center; padding: 5px 0; } }

.f_menu .f_sns img { vertical-align: middle; }

.alrim { position: relative; top: -2px; }

.mark { position: absolute; top: 15px; right: 5px; border: 0; padding: 0; background: none; }

@media (max-width: 940px) { .mark { display: none; } }

.mark .mark1 img { width: 78px; padding-left: 5px; }

.qMenuMobile { text-align: right; margin: 0 5px 5px 0; }

@media (max-width: 767px) { .qMenuMobile { margin: 0 25px 0 0; } }

.qMenuMobile a { font-weight: bold; background: url(/static/images/sn/common/bu_arr1.png) no-repeat right center; padding-right: 16px; color: #f05291 !important; }

#Allmenu { position: absolute; top: 140px; z-index: 202; width: 100%; display: block; display: none; }

@media (max-width: 767px) { #Allmenu { top: 50px; } }

#Allmenu > .Allmenu_box { display: block; position: fixed; width: 100%; }

@media (max-width: 767px) { #Allmenu > .Allmenu_box { position: fixed; width: 95%; right: 0; } }

#Allmenu > .Allmenu_box > div.Allmw { padding: 1% 2% 2% 2%; max-width: 1360px; width: 98%; margin: 0 auto; background: #fff; position: relative; }

@media (max-width: 767px) { #Allmenu > .Allmenu_box > div.Allmw { width: 100%; padding: 0; } }

#Allmenu > .Allmenu_box > div.Allmw:before, #Allmenu > .Allmenu_box > div.Allmw:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }

#Allmenu > .Allmenu_box > div.Allmw .btn_popClose { clear: both; text-align: center; padding-top: 10px; }

#Allmenu > .Allmenu_box > div.Allmw .popSchW { text-align: center; margin-bottom: 1%; }

#Allmenu > .Allmenu_box > div.Allmw .popSchW .popSch { margin-top: 2%; border: 2px solid #474a5b; background: #fff; border-radius: 25px; width: 100%; max-width: 400px; display: inline-block; padding: 5px 5px 7px 10px; position: relative; }

#Allmenu > .Allmenu_box > div.Allmw .popSchW .popSch .inp { border: 0; width: 100%; padding: 0 35px 0 5px; }

#Allmenu > .Allmenu_box > div.Allmw .popSchW .popSch .btnsch { position: absolute; top: 8px; right: 10px; }

@media (max-width: 767px) { #Allmenu > .Allmenu_box > div.Allmw > div { padding: 0; max-width: auto; margin: 0 auto; background: #fff; position: relative; overflow: hidden; width: 100%; padding: 2%; } }

@media (max-width: 767px) { #Allmenu > .Allmenu_box > div.Allmw > div > ul { overflow: hidden; border: 1px solid #b2b4bf; background: #f5f6fa url(/static/images/common/Allmenu_line.gif) repeat-y center top; } }

@media (max-width: 360px) { #Allmenu > .Allmenu_box > div.Allmw > div > ul { background: #f5f6fa; } }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li { width: 33.33%; padding: 1% 1.5%; float: left; color: #333; border: 1px solid #b2b4bf; background: #f5f6fa; min-height: 150px; margin: -1px 0 0 -1px; }

@media (max-width: 940px) { #Allmenu > .Allmenu_box > div.Allmw > div > ul > li { font-size: 0.9em; } }

@media (max-width: 767px) { #Allmenu > .Allmenu_box > div.Allmw > div > ul > li { width: 50%; padding-top: 10px; min-height: inherit; border-width: 1px 0 0 0; margin: -1px 0 0 0; background: none; }
  #Allmenu > .Allmenu_box > div.Allmw > div > ul > li:nth-child(odd) { clear: both; }
  #Allmenu > .Allmenu_box > div.Allmw > div > ul > li:nth-child(1), #Allmenu > .Allmenu_box > div.Allmw > div > ul > li:nth-child(2) { border-top: 0; clear: none; } }

@media (max-width: 360px) { #Allmenu > .Allmenu_box > div.Allmw > div > ul > li { width: 100%; min-height: inherit; padding: 3%; }
  #Allmenu > .Allmenu_box > div.Allmw > div > ul > li:nth-child(2) { border-top: 1px solid #b2b4bf; } }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.on > a { height: 50px; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end { padding: 0; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end a { color: #fff; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end > div { height: 148px; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site { background: #474a5b url(/static/images/common/ico_all1.png) no-repeat center 15px; text-align: center; padding: 85px 0 0 0; color: #fff; line-height: 1.3; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site .fb { color: #ff80b3; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site li { display: inline-block; font-size: 0; line-height: 0; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site li a { background: url(/static/images/common/line.gif) no-repeat left 3px; padding: 0 1px 0 4px; font-size: 12px; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site li a:hover { color: #f05291; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li.end .site li:first-child a { background: none; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li > a { letter-spacing: -1px; font-weight: 600; font-size: 1.10em; padding: 7px 0 0 0; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li > ul { margin-top: 2.5%; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li > ul > li { text-indent: -10px; padding-left: 10px; line-height: 1.3; margin: 5px 0; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li > ul > li:before { content: "- "; display: inline-block; padding-left: 10px; }

#Allmenu > .Allmenu_box > div.Allmw > div > ul > li > ul > li > a:hover { color: #f05291; font-weight: bold; }

.AllmenuBtn { position: absolute; right: 0; top: 0; font-weight: 600; border-left: 1px solid #5f6986; }

.AllmenuBtnClose { position: absolute; top: -50px; right: 0; display: block; }

.AllmenuBtnClose a { display: block; padding: 10px; }

.AllmenuBtnClose a:focus { border: 1px dotted #ddd; }

#Allmenu .exBox { display: none; }

.btn-gray { background: #474a5b; border-radius: 15px; line-height: 1.2; color: #fff; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic24vbGF5b3V0LmNzcyIsInNvdXJjZXMiOlsic24vbGF5b3V0LnNjc3MiLCJfYnJlYWtwb2ludC5zY3NzIiwiYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsImJyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsImJyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsImJyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsImJyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsImJyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsImJyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsImJyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwic24vYmFzZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uL2JyZWFrcG9pbnQnO1xyXG5AaW1wb3J0ICdiYXNlLnNjc3MnO1xyXG5cclxudGFibGUgdGR7IHdvcmQtYnJlYWsgOiBicmVhay1hbGx9XHJcbmJvZHl7Zm9udC1mYW1pbHk6IFwi66eR7J2A6rOg65SVXCIsXCJtYWxndW4gZ290aGljXCIsXCLrgpjriJTqs6DrlJVcIixcIk5hbnVtIEdvdGhpY1wiLFwiQXBwbGVHb3RoaWNcIixcIuuPi+ybgFwiLFwiZG90dW1cIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MC44NWVtO2NvbG9yOiMyZDM3NDA7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojZjJmNGY3IHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vYmdfdG9wLmdpZikgcmVwZWF0LXggbGVmdCB0b3A7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XHJcblx0XHRcdGJhY2tncm91bmQ6I2YyZjRmNztcclxuXHRcdH1cclxuXHR9IFxyXG4jYmdXe2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC43KTtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO3otaW5kZXg6MjAwO3RvcDowO2hlaWdodDoxMDAlO31cclxuI3dyYXBwZXJ7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOiAwIGF1dG87bWluLXdpZHRoOjMyMHB4O2JhY2tncm91bmQ6IHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vc3ViX3Zpc3VhbC5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgMTQwcHg7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHR9XHJcbn1cclxuI2hlYWRlciAjbG9nb3t0ZXh0LWFsaWduOmNlbnRlcjtoZWlnaHQ6NTZweDtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdHRleHQtYWxpZ246bGVmdDtcclxuXHRcdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcclxuXHRcdCAgfVxyXG5cdGltZ3tcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHQgICAgd2lkdGg6MTkwcHg7bWFyZ2luLXRvcDoxM3B4O1xyXG5cdFx0ICB9XHJcblx0fVxyXG5cclxufVxyXG4jaGVhZGVye2hlaWdodDoxNDBweDttYXgtd2lkdGg6MTI2MHB4O3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztwYWRkaW5nLXRvcDoxN3B4O3Bvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRoZWlnaHQ6NzBweDtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRib3JkZXItYm90dG9tOjNweCBzb2xpZCAjMWEyODUxO2JhY2tncm91bmQ6I2ZmZjttYXJnaW4tYm90dG9tOjA7XHJcblx0fVxyXG5cdCN0TGlua3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGczKSB7XHJcblx0XHRcdHJpZ2h0OjEycHg7XHJcblx0XHQgIH1cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdCAgfVxyXG5cdH1cclxuXHQjdExpbmsgYXtwYWRkaW5nOjVweCA3cHggNXB4IDMwcHg7Zm9udC1zaXplOjAuODVlbTtmb250LXdlaWdodDpib2xkO2JvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiNmZmZ9XHJcblx0I3RMaW5rIC5wc3tiYWNrZ3JvdW5kOiMxYTI4NTEgdXJsKC9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9pY28vaWNvX3dfcG9ydGFsLnBuZykgbm8tcmVwZWF0IDEwcHggY2VudGVyO3BhZGRpbmc6NXB4IDE1cHggNXB4IDM4cHg7fVxyXG5cdCN0TGluayAuZXZ7YmFja2dyb3VuZDojNmZhNGQ2IHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vaWNvL2ljb193X3dvcmxkLnBuZykgbm8tcmVwZWF0IDhweCBjZW50ZXI7fVxyXG5cdCNnbG9iYWwge2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6MzhweDtyaWdodDowO1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0ICB9XHJcblx0fVxyXG5cdCNnbG9iYWwge2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6MzhweDtyaWdodDowO1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0ICB9XHJcblx0fVxyXG5cdCNnbG9iYWwgYXtmb250LXNpemU6MC45NWVtO2JhY2tncm91bmQ6IHVybCgvc3RhdGljL2ltYWdlcy9nbG9iYWwvY29tbW9uL2J1X2dsb2JhbC5naWYpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7cGFkZGluZy1yaWdodDoxNnB4O2NvbG9yOiMxYTI4NTE7Zm9udC13ZWlnaHQ6Ym9sZDtcclxuXHR9XHJcbn1cclxuI2duYldyYXB7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxNTA7dG9wOjIwcHg7cGFkZGluZy1yaWdodDo5NXB4O1xyXG5cdCAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHQgIFx0ZmxvYXQ6cmlnaHQ7dG9wOjEwcHg7cmlnaHQ6MTBweDtcclxuXHQgIH1cclxufVxyXG4jZ25ie3BhZGRpbmc6MDtoZWlnaHQ6IDQ2cHg7bWFyZ2luLWJvdHRvbTogN3B4O31cclxuI2duYiBhe3RleHQtZGVjb3JhdGlvbjogbm9uZTtkaXNwbGF5OmJsb2NrO31cclxuI2duYj51bHtwb3NpdGlvbjogcmVsYXRpdmU7ei1pbmRleDogMTAwO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRkaXNwbGF5Om5vbmU7XHJcblx0fVxyXG59XHJcbiNnbmI+dWw+bGl7ZmxvYXQ6IGxlZnQ7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOjIwJTtiYWNrZ3JvdW5kOiB1cmwoJy9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9iZ19nbmJMaW5lLmdpZicpIHJlcGVhdC15IGxlZnQgdG9wO1xyXG59XHJcbiNnbmI+dWw+bGk+YXtjb2xvcjogI2ZmZjtmb250LXNpemU6IDE1cHg7cGFkZGluZzogMTZweCAxJTtmb250LXdlaWdodDo2MDA7ZGlzcGxheTogYmxvY2s7d2hpdGUtc3BhY2U6IG5vd3JhcDtkaXNwbGF5OiBibG9jaztsaW5lLWhlaWdodDogMTt0ZXh0LWFsaWduOiBjZW50ZXI7bGV0dGVyLXNwYWNpbmc6IC0xcHg7fVxyXG4jZ25iPnVsPmxpPmE6YWZ0ZXIsICNnbmI+dWw+bGk+YTphZnRlcntjb250ZW50OiAnJztkaXNwbGF5OiBibG9jaztwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQ6IHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vYnVfZ25iT2ZmLmdpZikgMCAwIG5vLXJlcGVhdDsgd2lkdGg6IDE0cHg7aGVpZ2h0OiAxMXB4OyBsZWZ0OiAwOyB0b3A6IDIxcHg7ei1pbmRleDoyMH1cclxuI2duYj51bD5saS5vbj5hOmFmdGVyLCAjZ25iPnVsPmxpLmhvdmVyPmE6YWZ0ZXJ7Y29udGVudDogJyc7ZGlzcGxheTogYmxvY2s7cG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kOiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J1X2duYk9uLmdpZikgMCAwIG5vLXJlcGVhdDsgd2lkdGg6IDE2cHg7aGVpZ2h0OiAxMXB4OyBsZWZ0OiAwOyB0b3A6IDIxcHg7IHotaW5kZXg6MjB9XHJcbiNnbmI+dWw+bGk+dWx7cG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7dG9wOjQ3cHg7cGFkZGluZy10b3A6IDE4cHg7ZGlzcGxheTogbm9uZTtib3JkZXI6MXB4IHNvbGlkICNmMDUyOTE7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ZmZjt3aWR0aDoyMzVweDt9XHJcbiNnbmI+dWw+bGkuaG92ZXI+dWx7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxMHB4IDEycHg7fVxyXG4jZ25iLnZpZXdBbGw+dWw+bGk+dWx7ZGlzcGxheTogYmxvY2s7fVxyXG4vLyAjZ25iPnVsPmxpPnVsPmxpe3doaXRlLXNwYWNlOiBub3dyYXA7fVxyXG4jZ25iPnVsPmxpPnVsPmxpPmF7Zm9udC1zaXplOiAxMi41cHg7cGFkZGluZzogMnB4IDAgMnB4IDhweDtwYWRkaW5nOiAycHggMCAwIDhweDtjb2xvcjogIzAwMDt9XHJcbiNnbmI+dWw+bGk+dWw+bGk6YmVmb3Jle2NvbnRlbnQ6XCItIFwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnR9XHJcbiNnbmI+dWw+bGk+dWw+bGk+dWx7cGFkZGluZy1ib3R0b206IDhweDt9XHJcbiNnbmI+dWw+bGk+dWw+bGk+dWwgbGkgYXtmb250LXNpemU6IDEzcHg7Y29sb3I6ICM3NTc1NzU7cGFkZGluZzogMnB4IDEwcHg7fVxyXG4jZ25iPnVsPmxpPnVsLnZpZXd7ZGlzcGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlO31cclxuI2duYiAudG90YWxTY2h7cG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiAzNXB4O3RvcDogMjZweDtmb250LXdlaWdodDogNjAwO3BhZGRpbmctcmlnaHQ6IDA7aGVpZ2h0OjI2cHg7fVxyXG4jZ25iIC50b3RhbFNjaD5he2Rpc3BsYXk6YmxvY2s7fVxyXG4jZ25iIC50b3RhbFNjaD5hLnRvdGFsU2NoX29wZW57YmFja2dyb3VuZDogdXJsKC9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9idG5fdG90YWxzY2gucG5nKSBjZW50ZXIgNXB4IG5vLXJlcGVhdDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O31cclxuI2duYiAudG90YWxTY2gub257ZGlzcGxheTpub25lO31cclxuI2duYiAudG90YWxTY2hfY2xvc2V7YmFja2dyb3VuZDojMzMzIHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vYnRuX3NjaGNsb3NlLmdpZikgY2VudGVyIDAgbm8tcmVwZWF0O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZGlzcGxheTpub25lO31cclxuI2duYiAudG90YWxTY2hfY2xvc2U6aG92ZXIsI2duYiAudG90YWxTY2hfY2xvc2U6Zm9jdXN7YmFja2dyb3VuZDojMzMzIHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vYnRuX3NjaGNsb3NlLmdpZikgY2VudGVyIDAgbm8tcmVwZWF0Ozt9XHJcbiNnbmIgLnRvdGFsU2NoX2FyZWF7cG9zaXRpb246IGFic29sdXRlO2JhY2tncm91bmQ6IzMzMztwYWRkaW5nOjE1cHg7d2lkdGg6MzAwcHg7cmlnaHQ6MzVweDt0b3A6NjNweDtkaXNwbGF5Om5vbmU7fVxyXG4jZ25iIC50b3RhbFNjaF9hcmVhIC5pbnB7Ym9yZGVyOjA7cGFkZGluZzowIDEwcHg7aGVpZ2h0OjMxcHg7d2lkdGg6MjMwcHg7fVxyXG4jZ25iIC50b3RhbFNjaF9hcmVhIC50b3RhbFNjaF9ib3h7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czogM3B4O3BhZGRpbmc6NHB4O31cclxuI2duYiAubmF2Q2xvc2V7ZGlzcGxheTpub25lO3Bvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMDt0b3A6IDM1cHg7Zm9udC13ZWlnaHQ6IDYwMDtiYWNrZ3JvdW5kOiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL25hdk9wZW4ucG5nKSByaWdodCAwIG5vLXJlcGVhdDtwYWRkaW5nLXJpZ2h0OiAzNnB4O2NvbG9yOiAjOTNkYmZmO2hlaWdodDogMjZweDtmb250LXNpemU6IDE2cHg7fVxyXG5cclxuLnRzaHtmbG9hdDpsZWZ0O3dpZHRoOjIwLjElO21pbi13aWR0aDo0OHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDo0N3B4O2JhY2tncm91bmQ6IzFhMjk1Mjtmb250LXNpemU6MC45NWVtO2Rpc3BsYXk6bm9uZTtcclxuXHRcclxuXHRcdCBcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0IFx0cmlnaHQ6OTBweDtcclxuXHRcdCBcdHdpZHRoOjIxMHB4O1xyXG5cdFx0IFx0ei1pbmRleDoxMDA7XHJcblx0XHJcblx0Ly8gPnNwYW57ZGlzcGxheTpibG9jazttYXJnaW4tcmlnaHQ6MDtib3JkZXItcmFkaXVzOiA1cHg7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6M3B4IDMzcHggM3B4IDhweDttYXJnaW46N3B4IDdweCAwIDdweDtcclxuXHQvLyB9XHJcblx0PmZvcm0+c3BhbntkaXNwbGF5OmJsb2NrO21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6IDVweDtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzozcHggNTBweCAzcHggOHB4O21hcmdpbjo2cHggN3B4IDAgN3B4O1xyXG5cdFx0LmFjQXJyb3d7ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEzcHg7cmlnaHQ6MzVweDt9XHJcblx0fVxyXG5cdC5pbnB7Ym9yZGVyOiNlZmVmZWY7aGVpZ2h0OjI4cHg7bGluZS1oZWlnaHQ6MjhweDtiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MTAwJX1cclxuXHQuYnRuX2duYlNjaHtwb3NpdGlvbjogYWJzb2x1dGU7cmlnaHQ6MTJweDt0b3A6MTNweH1cclxufVxyXG4uc2NoQnRue2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O31cclxuLnNjaEJ0bi5vbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDo0OHB4O2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtcclxufVxyXG4uc2NoQ2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6NDhweDtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcclxuXHQgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdCBcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xyXG5cdCBcdH1cclxufVxyXG4uc2NoQ2xvc2Uub257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6NDhweDtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XHJcblx0IEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHQgXHRkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XHJcblx0IFx0fVxyXG59XHJcbiNjb250YWluZXJ7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJTttYXgtd2lkdGg6MTI2MHB4O3BhZGRpbmctdG9wOjA7bWFyZ2luOjAgYXV0bztwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjUwcHg7XHJcblx0aW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdFx0IFx0bWFyZ2luLXRvcDowO1xyXG5cdCBcdH1cclxufVxyXG5cclxuLmhncm91cHtjbGVhcjpib3RoO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6IG5vbmU7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0aDJ7cGFkZGluZzozLjMlIDAgMy4yNSUgMDtmb250LXNpemU6Mi41ZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi0xcHg7Y29sb3I6IzQ3NGE1YjtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyZW07Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0fVxyXG5cdFx0PnNwYW57XHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdFx0YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J1X3NlbGVjdE0ucG5nKSByaWdodCBib3R0b20gbm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6MzVweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5sbmIxZGVwdCB7ZGlzcGxheTogbm9uZTtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdCYub257ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOiNmZmY7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6OTglO3otaW5kZXg6MTAxO2JvcmRlci10b3A6MDtsZWZ0OjElO1xyXG5cdFx0XHR9XHJcblx0XHRcdGxpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmMDg3YjE7Y29sb3I6I2ZmZjtkaXNwbGF5OiBibG9jaztwYWRkaW5nOjNweDtiYWNrZ3JvdW5kOiNmMDUyOTEgdXJsKC9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9idTEuZ2lmKSAxMHB4IGNlbnRlciBuby1yZXBlYXQ7XHJcblx0XHRcdFx0YXtjb2xvcjojZmZmO3RleHQtYWxpZ246bGVmdDtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDNweCAzcHggMTVweDt9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbiNsbmJXcmFwe21pbi13aWR0aDoxODBweDttYXgtd2lkdGg6MjgwcHg7d2lkdGg6MjIlO21hcmdpbi1yaWdodDoxJTtmbG9hdDpsZWZ0O1xyXG5cdCBAaW5jbHVkZSBicmVha3BvaW50KCRsZzIpIHtcclxuXHQgXHR3aWR0aDoxOSU7XHJcblx0IH1cclxuXHQgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSkge1xyXG5cdCBcdGRpc3BsYXk6bm9uZTtcclxuXHQgfVxyXG59XHJcbiNsbmJ7YmFja2dyb3VuZDojZmZmfVxyXG4jbG5iIGgze2JhY2tncm91bmQ6IzQ3NGE1YiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2JnX2xuYlRpdC5wbmcpIDM1cHggYm90dG9tIG5vLXJlcGVhdDtwYWRkaW5nOjI1cHggMzBweDtmb250LXNpemU6Mi4xZW07Y29sb3I6I2ZmZjtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6LTFweDtsaW5lLWhlaWdodDoxLjI7XHJcblx0Ly8gJjphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDt9XHJcbn1cclxuI2xuYi50eXBle3BhZGRpbmctdG9wOjIwcHg7bWFyZ2luLXRvcDoxMHB4fVxyXG4jbG5iLnR5cGUgaDN7Zm9udC1zaXplOjEuMGVtO3BhZGRpbmc6MTZweDtmb250LXdlaWdodDpib2xkO31cclxuI2xuYi50eXBlIGgzIHNwYW57YmFja2dyb3VuZDogdXJsKC9zdGF0aWMvaW1hZ2VzL2ljby9pY29fd19zY2gyLnBuZykgbGVmdCBjZW50ZXIgbm8tcmVwZWF0O3BhZGRpbmctbGVmdDoyMHB4fVxyXG4jbG5iPnVse3BhZGRpbmc6OCUgOCUgMTIlIDglO1xyXG5cdFx0Pmxpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNmU3ZWI7XHJcblx0XHRcdD5he2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MTM5JTtmb250LXNpemU6MS4wNWVtO2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9idV9sbmIxX29mZi5naWYpIDVweCAxMnB4IG5vLXJlcGVhdDtwYWRkaW5nOjVweCAwIDVweCAxOHB4O31cclxuXHRcdFx0PnVse3BhZGRpbmc6MCAwIDVweCAwO21hcmdpbi1sZWZ0OjE1cHg7XHJcblx0XHRcdFx0Pmxpe3BhZGRpbmc6MnB4IDA7XHJcblx0XHRcdFx0XHQ+YXtjb2xvcjojNzc3O2ZvbnQtc2l6ZTowLjk1ZW07YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J1X2xuYjIuZ2lmKSBsZWZ0IDlweCBuby1yZXBlYXQ7cGFkZGluZy1sZWZ0OjEycHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PmxpLm9uPmF7Zm9udC13ZWlnaHQ6Ym9sZDtiYWNrZ3JvdW5kOnVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vYnVfbG5iMV9vbi5wbmcpIGxlZnQgMTJweCBuby1yZXBlYXQ7fVxyXG5cdFx0PmxpLm9uPnVsPmxpLm9uPmF7Y29sb3I6I2YwNTI5MTtmb250LXdlaWdodDpib2xkO31cclxuXHRcdH1cclxuXHRcdFxyXG4jbG5iSW5mb3twYWRkaW5nOjEycHg7YmFja2dyb3VuZDojZmZmO21hcmdpbi10b3A6MTBweDtoZWlnaHQ6MjIwcHh9XHJcbiNsbmJJbmZvIGgze2ZvbnQtc2l6ZToxZW07bWFyZ2luLWJvdHRvbToxMnB4O21hcmdpbi10b3A6MTBweDt9XHJcbiNsbmJJbmZvPnVse3Bvc2l0aW9uOnJlbGF0aXZlO31cclxuI2xuYkluZm8+dWwgPiBsaXtmbG9hdDpsZWZ0O21hcmdpbi1sZWZ0OjFweDttYXJnaW46MnB4IDAgMS41JSAwO3dpZHRoOjMzLjMzJX1cclxuI2xuYkluZm8+dWwgPiBsaSA+IGF7QGluY2x1ZGUgZWxsO2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzY2NjtsZXR0ZXItc3BhY2luZzotMXB4O3BhZGRpbmc6NXB4IDA7YmFja2dyb3VuZDojZjVmNmZhO2JvcmRlcjoxcHggc29saWQgI2IyYjRiZjttYXJnaW4tbGVmdDotMXB4O2ZvbnQtc2l6ZTowLjllbTtjb2xvcjojNzg3ZDlhfVxyXG4vLyAjbG5iSW5mbyB1bCA+IGxpOmZpcnN0LWNoaWxkID4gYXtiYWNrZ3JvdW5kOm5vbmU7fVxyXG4jbG5iSW5mbz4gdWwgPiBsaSA+IGEub257Y29sb3I6I2YwNTI5MTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmO2JhY2tncm91bmQ6I2ZmZiAgdXJsKCcvaW1hZ2VzL2NvbW1vbi9idV9hcnJfZG93bi5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTtwYWRkaW5nOjNweCAwIDdweCAwO2ZvbnQtd2VpZ2h0OjYwMDt9XHJcbi5sbmJJbmZvX2FyZWF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjMycHg7bGVmdDowO3dpZHRoOjEwMCU7cGFkZGluZzoxM3B4IDAgMDtkaXNwbGF5Om5vbmU7fVxyXG4ubG5iSW5mb19hcmVhPnVsPmxpe21hcmdpbjoyLjglIDA7ZmxvYXQ6bm9uZTtvdmVyZmxvdzpoaWRkZW47fVxyXG4ubG5iSW5mb19hcmVhPnVsPmxpPmF7Zm9udC1zaXplOjAuOWVtO3RleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxMjklO2NvbG9yOiM2NjY7YmFja2dyb3VuZDpub25lOyBAaW5jbHVkZSBlbGw7fVxyXG4ubG5iSW5mb19hcmVhIC5udW10e3BhZGRpbmc6MXB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Zm9udC1mYW1pbHk6dmVyZGFuYTtmb250LXNpemU6MC44ZW07Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoxLjE7bWFyZ2luLXJpZ2h0OjhweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLXJhZGl1czogMXB4O31cclxuLmxuYkluZm9fYXJlYSB7XHJcblx0Lm51bVR5cGUxLCAubnVtVHlwZTIsIC5udW1UeXBlM3tiYWNrZ3JvdW5kOiNmMDUyOTE7fVxyXG5cdC5udW1UeXBlNCwgLm51bVR5cGU1LCAubnVtVHlwZTZ7YmFja2dyb3VuZDojNDc0YTViO31cclxuXHR9XHJcbi5sbmJTZXJ2aWNle3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MTBweCAwO1xyXG5cdFx0bGl7ZmxvYXQ6bGVmdDt3aWR0aDo1MCU7bWFyZ2luOjIycHggMDtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7fVxyXG5cdFx0XHRhe2Rpc3BsYXk6YmxvY2s7Y29sb3I6I2YwNTI5MTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTowLjk1ZW07XHJcblx0XHRcdFx0c3BhbntkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjVweH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cclxuI2NvbnRlbnRze2Zsb2F0OmxlZnQ7d2lkdGg6NzclOyBcclxuXHQgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKSB7XHJcblx0IFx0d2lkdGg6NzklO1xyXG5cdCB9XHJcblx0ICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKSB7XHJcblx0IFx0d2lkdGg6MTAwJTtcclxuXHQgfVxyXG5cdCA+Lndib3g6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowO21pbi1oZWlnaHQ6NzAwcHg7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdFx0IFx0bWluLWhlaWdodDppbmhlcml0O1xyXG5cdFx0IH1cclxuXHQgfVxyXG59XHJcblxyXG5cclxuLndib3h7cGFkZGluZzoxZW0gMS43ZW07YmFja2dyb3VuZDojZmZmO21hcmdpbi10b3A6MTBweDtAaW5jbHVkZSBjbGVhcmZpeDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpIHtcclxuXHQgXHRtYXJnaW46MSU7cGFkZGluZzoxZW0gMC41ZW07XHJcblx0IH1cclxufVxyXG4uY29uUHtcclxuXHQudGl0MXtcclxuXHRcdCY6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowO31cclxuXHR9XHJcbn1cclxuXHJcbi8vbG9jYXRpb25cclxuLmxvY2F0aW9ue2NsZWFyOiBib3RoO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ3NGE1YjttYXJnaW4tYm90dG9tOjMlO3BhZGRpbmctYm90dG9tOjElO1xyXG5cdCY6YmVmb3JlLCY6YWZ0ZXJ7IGNvbnRlbnQ6IFwiLlwiOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuIH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdCBcdG1hcmdpbjowIDAgMWVtIDA7XHJcblx0IH1cclxuXHQ+ZGl2LmxvY0x7ZmxvYXQ6bGVmdDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTowLjkwZW07XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdCBcdFx0ZGlzcGxheTpub25lO21hcmdpbjowIDElO1xyXG5cdCBcdH1cclxuXHQgXHQ+c3BhbntkaXNwbGF5OmlubGluZS1ibG9jaztsZXR0ZXItc3BhY2luZzotMXB4O1xyXG5cdCBcdFx0JjpmaXJzdC1jaGlsZHtiYWNrZ3JvdW5kOiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J1X2hvbWUuZ2lmKSBsZWZ0IDQ4JSBuby1yZXBlYXQ7cGFkZGluZy1sZWZ0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDt9XHJcblx0IFx0XHQmLmluZ3tjb2xvcjojMzMzfVxyXG5cdCBcdH1cclxuXHQgfVxyXG5cdCYudHlwZXtmb250LXNpemU6MS4xNWVtO2ZvbnQtd2VpZ2h0OmJvbGQ7fVxyXG59XHJcbi5zbnNTZXJ2aWNle2Zsb2F0OnJpZ2h0O1xyXG5cdGE6Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9XHJcblx0aW1ne3ZlcnRpY2FsLWFsaWduOnRvcCAhaW1wb3J0YW50O31cclxuXHRhLCBzcGFue2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjJweDt9XHJcblx0LnNuc19nb29kTnttYXJnaW4tcmlnaHQ6OHB4O2JhY2tncm91bmQ6IHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vc25zX2dvb2ROLmdpZikgcmlnaHQgdG9wIG5vLXJlcGVhdDtwYWRkaW5nOjAgNHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOjAuODVlbTtoZWlnaHQ6MjBweH1cclxuXHQucHJpbnQgYXttYXJnaW4tbGVmdDo3cHh9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi5xTWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDotNjdweDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzMpe1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRhe2Rpc3BsYXk6YmxvY2s7Y29sb3I6I2ZmZjtmb250LXNpemU6MC45NWVtO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NjZweDtoZWlnaHQ6ODBweDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxLjI7cGFkZGluZzozN3B4IDRweCAwIDRweDtiYWNrZ3JvdW5kOiM0NzRhNWIgdXJsKC9zdGF0aWMvaW1hZ2VzL2NvbW1vbi9idV9xbWVudS5wbmcpIG5vLXJlcGVhdCAgY2VudGVyIDlweDt9XHJcbn1cclxuXHJcblxyXG4jZm9vdGVye2JhY2tncm91bmQ6I2ZmZjttYXJnaW4tdG9wOjMwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RlZTNlYn0gXHJcbiNmb290ZXIgYXtmb250LXNpemU6MC45ZW07bGV0dGVyLXNwYWNpbmc6LTFweDt9XHJcbi8vICNmb290ZXIgYSBzdHJvbmd7Y29sb3I6IzAwODdlMH1cclxuI2Zvb3RlciAuZm9vdHtwYWRkaW5nOjAgMCAxMHB4IDA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGc0KXtcclxuXHRcdHBhZGRpbmc6MCAxMHB4IDEwcHggMTBweFxyXG5cdH1cclxufVxyXG4jZm9vdGVyIC5mb290ZXJfYmcgeyBtYXJnaW46MCBhdXRvOyBtYXgtd2lkdGg6MTI2MHB4fVxyXG4uZl9sb2dve2Zsb2F0OmxlZnQ7cGFkZGluZzoxMHB4IDI2cHggMCAwO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnNCl7XHJcblx0XHRkaXNwbGF5Om5vbmVcclxuXHRcdH1cclxuXHQmLnR5cGUxe3BhZGRpbmctdG9wOjIwcHh9XHJcblx0aW1ne3dpZHRoOjI0MHB4fVxyXG59XHJcblxyXG4uZl9hZGR7ZmxvYXQ6bGVmdDtwYWRkaW5nLXRvcDoyM3B4O2NvbG9yOiM0NzRhNWI7Zm9udC1zaXplOjAuOTVlbTtsaW5lLWhlaWdodDoxLjQ7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdGZsb2F0Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo1NXB4IDAgMTBweCAwO1xyXG5cdFx0fVxyXG5cdGFkZHJlc3N7bWFyZ2luLWJvdHRvbToxcHh9XHJcblx0c3BhbntcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSl7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5hZGRCe2ZvbnQtd2VpZ2h0OiBib2xkO2NvbG9yOiRjb3JfcGluaztkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fVxyXG5cdC50ZWxib3hXe1xyXG5cdFx0LnRlbGJveHttYXJnaW4tdG9wOjVweDtmbG9hdDpsZWZ0O1xyXG5cdFx0XHRzcGFue2JhY2tncm91bmQ6Izc4N2Q5YTtsaW5lLWhlaWdodDoxLjQ7IHBhZGRpbmc6M3B4IDEwcHg7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOiAycHggMCAwIDJweDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7fVxyXG5cdFx0XHQuYXJyeyBiYWNrZ3JvdW5kOiM0NzRhNWIgdXJsKC9zdGF0aWMvaW1hZ2VzL3BvcnRhbC9jb21tb24vdGVsX2Fyci5wbmcpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwO3dpZHRoOjEwcHg7aGVpZ2h0OjIycHg7fVxyXG5cdFx0fVxyXG5cdFx0cHtmbG9hdDpsZWZ0O21hcmdpbjo1cHggMCAwIDVweDtmb250LXdlaWdodDpib2xkO31cclxuXHR9XHJcbn1cclxuLmZhbWlseSB7ZmxvYXQ6cmlnaHQ7cGFkZGluZzogMjVweCAyODVweCAwIDA7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSl7XHJcblx0XHRmbG9hdDpub25lO3BhZGRpbmc6MDt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMzBweDtcclxuXHRcdH1cclxuXHQuZmFtaWx5U2VsICB7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjA7IGJhY2tncm91bmQ6I2Y4ZjhmOCB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J1X3NlbGVjdC5naWYpIDkwJSBuby1yZXBlYXQ7IHdpZHRoOjIwNXB4OyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjoxcHggc29saWQgIzQ3NGE1YjtmbG9hdDpsZWZ0O1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0LmZhbWlseVNlbCBzZWxlY3Qge2hlaWdodDozMnB4OyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IHdpZHRoOjExNSU7IG1pbi13aWR0aDo5MHB4O2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmctbGVmdDoxMHB4O31cclxuXHQuaW5wdXRfaW1ne3ZlcnRpY2FsLWFsaWduOnRvcDtkaXNwbGF5OmlubGluZX1cclxufVxyXG5cclxuLmZfbWVudXt3aWR0aDogMTAwJTttYXJnaW46MCBhdXRvO292ZXJmbG93OmhpZGRlbjtsaW5lLWhlaWdodDogMzVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tdG9wOjhweDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpe1xyXG5cdFx0XHRtYXJnaW4tdG9wOjA7XHJcblx0XHR9XHJcblx0IHVse292ZXJmbG93OmhpZGRlbjtmbG9hdDpsZWZ0O1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHQgfVxyXG59XHJcbi5mX21lbnUgdWwgbGl7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kOnVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vbGluZS5naWYpIG5vLXJlcGVhdCBsZWZ0IDUwJTtwYWRkaW5nOiAwIDlweDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpe1xyXG5cdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0Ym9yZGVyOjFweCBzb2xpZCAjZTVlNWU1O1xyXG5cdFx0Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwO1xyXG5cdFx0d2lkdGg6MTYuNjYlO1x0XHJcblx0XHRwYWRkaW5nOjA7dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRAaW5jbHVkZSBlbGw7XHJcblxyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHR3aWR0aDozMy4zMyU7XHJcblx0fVxyXG5cdGF7Y29sb3I6IzQ3NGE1Yjtmb250LXNpemU6MS4wZW07ZGlzcGxheTpibG9jazt9XHJcbn1cclxuLmZfbWVudSAuZl9zbnN7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWJvdHRvbTozcHg7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGc0KXtcclxuXHRcdG1hcmdpbi1yaWdodDoxMHB4O1xyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpe1xyXG5cdFx0ZmxvYXQ6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjVweCAwO1xyXG5cdH1cclxuXHRpbWd7dmVydGljYWwtYWxpZ246bWlkZGxlO31cclxufVxyXG4uYWxyaW17cG9zaXRpb246cmVsYXRpdmU7dG9wOi0ycHh9XHJcbi5tYXJre3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjVweDtib3JkZXI6MDtwYWRkaW5nOjA7YmFja2dyb3VuZDpub25lO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSl7XHJcblx0XHRkaXNwbGF5Om5vbmVcclxuXHR9XHJcblx0Lm1hcmsxIGltZ3t3aWR0aDo3OHB4O3BhZGRpbmctbGVmdDo1cHg7fVxyXG59XHJcblxyXG5cclxuLy/rqZTribQg7KCE7LK067O06riwXHJcbi5xTWVudU1vYmlsZXt0ZXh0LWFsaWduOiByaWdodDttYXJnaW46MCA1cHggNXB4IDA7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdG1hcmdpbjowIDI1cHggMCAwO1xyXG5cdH1cclxuXHRhe2ZvbnQtd2VpZ2h0OiBib2xkO2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL3NuL2NvbW1vbi9idV9hcnIxLnBuZykgbm8tcmVwZWF0IHJpZ2h0IGNlbnRlcjtwYWRkaW5nLXJpZ2h0OjE2cHg7Y29sb3I6JGNvcl9waW5rICFpbXBvcnRhbnR9XHJcbn1cclxuI0FsbG1lbnV7cG9zaXRpb246IGFic29sdXRlO3RvcDoxNDBweDt6LWluZGV4OjIwMjt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7ZGlzcGxheTpub25lO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdHRvcDo1MHB4O1xyXG5cdFx0fVxyXG5cdD4uQWxsbWVudV9ib3h7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogZml4ZWQ7d2lkdGg6MTAwJTtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdHBvc2l0aW9uOmZpeGVkOyB3aWR0aDo5NSU7cmlnaHQ6MDtcclxuXHRcdH1cclxuXHRcdD5kaXYuQWxsbXd7cGFkZGluZzoxJSAyJSAyJSAyJTttYXgtd2lkdGg6MTM2MHB4O3dpZHRoOjk4JTttYXJnaW46MCBhdXRvO2JhY2tncm91bmQ6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO3BhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiLlwiOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuIH1cclxuXHRcdFx0LmJ0bl9wb3BDbG9zZXtjbGVhcjpib3RoO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctdG9wOjEwcHg7fVxyXG5cdFx0XHQucG9wU2NoV3t0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tYm90dG9tOjElO1xyXG5cdFx0XHRcdC5wb3BTY2h7bWFyZ2luLXRvcDoyJTtib3JkZXI6MnB4IHNvbGlkICM0NzRhNWI7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6IDI1cHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6NDAwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo1cHggNXB4IDdweCAxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0LmlucHtib3JkZXI6MDt3aWR0aDoxMDAlO3BhZGRpbmc6MCAzNXB4IDAgNXB4fVxyXG5cdFx0XHRcdFx0LmJ0bnNjaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjEwcHg7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQ+ZGl2e1xyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjA7bWF4LXdpZHRoOmF1dG87bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7cGFkZGluZzoyJTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0PnVse0BpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdFx0XHRcdG92ZXJmbG93OmhpZGRlbjtib3JkZXI6MXB4IHNvbGlkICNiMmI0YmY7YmFja2dyb3VuZDojZjVmNmZhIHVybCgvc3RhdGljL2ltYWdlcy9jb21tb24vQWxsbWVudV9saW5lLmdpZikgcmVwZWF0LXkgY2VudGVyIHRvcDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6I2Y1ZjZmYTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdD5saXt3aWR0aDozMy4zMyU7cGFkZGluZzoxJSAxLjUlO2Zsb2F0OmxlZnQ7Y29sb3I6IzMzMztib3JkZXI6MXB4IHNvbGlkICNiMmI0YmY7YmFja2dyb3VuZDojZjVmNmZhO21pbi1oZWlnaHQ6MTUwcHg7bWFyZ2luOi0xcHggMCAwIC0xcHg7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSkge1xyXG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTowLjllbTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOjUwJTtwYWRkaW5nLXRvcDoxMHB4O21pbi1oZWlnaHQ6aW5oZXJpdDtib3JkZXItd2lkdGg6MXB4IDAgMCAwO21hcmdpbjotMXB4IDAgMCAwO2JhY2tncm91bmQ6bm9uZTtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQmOm50aC1jaGlsZChvZGQpe2NsZWFyOmJvdGg7fVxyXG5cdFx0XHRcdFx0XHRcdCY6bnRoLWNoaWxkKDEpLCAmOm50aC1jaGlsZCgyKXtib3JkZXItdG9wOjA7Y2xlYXI6bm9uZTt9XHJcblx0XHRcdFx0XHRcdFx0Ly8mOm50aC1jaGlsZCg1KXt3aWR0aDoxMDAlO31cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7bWluLWhlaWdodDppbmhlcml0O3BhZGRpbmc6MyU7XHJcblx0XHRcdFx0XHRcdFx0JjpudGgtY2hpbGQoMil7Ym9yZGVyLXRvcDoxcHggc29saWQgI2IyYjRiZjt9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5vbj5he2hlaWdodDo1MHB4O31cclxuXHRcdFx0XHRcdFx0Ji5lbmR7cGFkZGluZzowO1xyXG5cdFx0XHRcdFx0XHRcdGF7Y29sb3I6I2ZmZn1cclxuXHRcdFx0XHRcdFx0XHQ+ZGl2e2hlaWdodDoxNDhweDt9XHJcblxyXG5cdFx0XHRcdFx0XHRcdC5zaXRle2JhY2tncm91bmQ6IzQ3NGE1YiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2ljb19hbGwxLnBuZykgbm8tcmVwZWF0IGNlbnRlciAxNXB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6ODVweCAwIDAgMDtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjEuMztcclxuXHRcdFx0XHRcdFx0XHRcdC5mYntjb2xvcjojZmY4MGIzfVxyXG5cdFx0XHRcdFx0XHRcdFx0bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0YXtiYWNrZ3JvdW5kOiB1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2xpbmUuZ2lmKSBuby1yZXBlYXQgbGVmdCAzcHg7cGFkZGluZzowIDFweCAwIDRweDtmb250LXNpemU6MTJweDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQmOmhvdmVye2NvbG9yOiRjb3JfcGlua31cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQmOmZpcnN0LWNoaWxkIGF7YmFja2dyb3VuZDpub25lO31cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PmF7bGV0dGVyLXNwYWNpbmc6IC0xcHg7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxLjEwZW07cGFkZGluZzo3cHggMCAwIDA7fVxyXG5cdFx0XHRcdFx0XHQ+dWx7bWFyZ2luLXRvcDoyLjUlO1xyXG5cdFx0XHRcdFx0XHRcdD5saXt0ZXh0LWluZGVudDotMTBweDtwYWRkaW5nLWxlZnQ6MTBweDtsaW5lLWhlaWdodDoxLjM7bWFyZ2luOjVweCAwO1xyXG5cdFx0XHRcdFx0XHRcdFx0JjpiZWZvcmV7Y29udGVudDpcIi0gXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjEwcHg7fVxyXG5cdFx0XHRcdFx0XHRcdFx0PmE6aG92ZXJ7Y29sb3I6I2YwNTI5MTtmb250LXdlaWdodDpib2xkO31cclxuXHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLkFsbG1lbnVCdG57cG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiAwO3RvcDogMDtmb250LXdlaWdodDogNjAwO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNWY2OTg2fVxyXG4uQWxsbWVudUJ0bkNsb3NlIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTUwcHg7cmlnaHQ6MDtkaXNwbGF5OmJsb2NrO31cclxuLkFsbG1lbnVCdG5DbG9zZSBhe2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxMHB4O31cclxuLkFsbG1lbnVCdG5DbG9zZSBhOmZvY3Vze2JvcmRlcjoxcHggZG90dGVkICNkZGQ7fVxyXG4jQWxsbWVudSAuZXhCb3h7ZGlzcGxheTpub25lO31cclxuXHJcbi5idG4tZ3JheXtiYWNrZ3JvdW5kOiM0NzRhNWI7Ym9yZGVyLXJhZGl1czogMTVweDtsaW5lLWhlaWdodDoxLjI7Y29sb3I6I2ZmZn1cclxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludCwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludCwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkYnJlYWtwb2ludDogbWFwLW1lcmdlKCRicmVha3BvaW50LCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBia3B0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuQG1peGluIGJrcHQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcbiAgICAkc2V0dGluZ3M6IG50aCgkc2V0dGluZ3MsIDEpO1xuICB9XG5cbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkYnJlYWtwb2ludDogbWFwLXJlbW92ZSgkYnJlYWtwb2ludCwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIGJrcHQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIEJyZWFrcG9pbnQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpO1xuJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEhhcyBDb250ZXh0XG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIHtcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dFxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJGdldDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xuICAgICAgQGlmIHR5cGUtb2YoJGdldCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdldCkgPiAxIGFuZCBudGgoJGdldCwgMSkgPT0gZmFsc2Uge1xuICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZ2V0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgIEByZXR1cm4gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XG4gICAgJGZlYXR1cmU6ICdtb25vY2hyb21lJztcbiAgfVxuXG4gICRjdXJyZW50OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICR2LWhvbGRlcjogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHYtaG9sZGVyOiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHJlc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBCYXNlIEVNc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xuICAkdmFsdWUtdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIGFuZCB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSA9PSAnbnVtYmVyJyBhbmQgJHZhbHVlLXVuaXQgPT0gJ2VtJyB7XG4gICAgJGJhc2UtdW5pdDogdW5pdChicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSk7XG5cbiAgICBAaWYgJGJhc2UtdW5pdCA9PSAncHgnIG9yICRiYXNlLXVuaXQgPT0gJyUnIG9yICRiYXNlLXVuaXQgPT0gJ2VtJyBvciAkYmFzZS11bml0ID09ICdwdCcge1xuICAgICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSAvIGJhc2UtY29udmVyc2lvbihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgKiAxZW07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKChicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSA9PSB0cnVlKSBhbmQgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBwYWlyJyk7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2UgaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRzZWNvbmQpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJOZWl0aGVyICN7JGZpcnN0fSBub3IgI3skc2Vjb25kfSBpcyBhIHZhbGlkIG1lZGlhIHF1ZXJ5IG5hbWUuXCI7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufSIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHJlc3BvbmQtdG8oJGNvbnRleHQsICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1lc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gYWRkIGJyZWFrcG9pbnRzIGZvciByZXNwb25kLXRvLiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoKWAgdG8gYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KClgLiBUaGUgYGFkZC1icmVha3BvaW50KClgIGZ1bmN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiO1xuICAgICRCUkVBS1BPSU5UUzogJGJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XG4gICAgLy8gSnVzdCBpbiBjYXNlIHNvbWVvbmUgd3JpdGVzIGdpYmJlcmlzaCB0byB0aGUgJGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuICAgIEB3YXJuIFwiWW91ciBicmVha3BvaW50cyBhcmVuJ3QgYSBtYXAhIGByZXNwb25kLXRvYCBleHBlY3RzIGEgbWFwLiBQbGVhc2UgY2hlY2sgdGhlIHZhbHVlIG9mICRCUkVBS1BPSU5UUyB2YXJpYWJsZS5cIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpLCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0KWBcIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQoJG5hbWU6IGZhbHNlKSB7XG4gIEBpZiAkbmFtZSA9PSBmYWxzZSB7XG4gICAgQHJldHVybiAkQlJFQUtQT0lOVFM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQlJFQUtQT0lOVFMsICRuYW1lKTtcbiAgfVxufVxuIiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCJAaW1wb3J0ICcuLi9icmVha3BvaW50JztcclxuJGxnNCA6IG1heC13aWR0aCAgMTI2MHB4O1xyXG4kbGczIDogbWF4LXdpZHRoICAxNDAwcHg7XHJcbiRsZzIgOiBtYXgtd2lkdGggIDEwMjNweDtcclxuJGxnMSA6IG1heC13aWR0aCAgOTQwcHg7XHJcbiRsZyA6IG1heC13aWR0aCAgNzY3cHg7XHJcbiRsZ3ggOiBtYXgtd2lkdGggNzAwcHg7XHJcbiRtZyA6IG1heC13aWR0aCA2NDBweDtcclxuJG1kIDogbWF4LXdpZHRoIDQ4MHB4O1xyXG4kc20gOiBtYXgtd2lkdGggMzYwcHg7XHJcbiR4cyA6IG1heC13aWR0aCAzMjBweDtcclxuXHJcbiRjb3JfYmx1ZTojMzE0MzZiO1xyXG4kY29yX2JsdWUyOiM2MzdmZDI7XHJcbiRjb3JfcGluazojZjA1MjkxO1xyXG4kY29yX2dyYXk6IzVkNWQ1ZDtcclxuJGNvcl9kYXJrZ3JheTojMzMzO1xyXG4kbWw6MjBweDtcclxuXHJcbmF7cGFkZGluZzowO31cclxuIC5qb2hubnktdXRhaCB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGd4KSB7XHJcbiAgICBjb250ZW50OiAnV2hvYS4nO1xyXG4gIH1cclxuICBcclxufVxyXG5AbWl4aW4gZWxse1xyXG4gb3ZlcmZsb3c6aGlkZGVuO1xyXG4gd2hpdGUtc3BhY2U6bm93cmFwO1xyXG4gdGV4dC1vdmVyZmxvdzplbGxpcHNpcztcclxuIGRpc3BsYXk6YmxvY2s7XHJcbn1cclxuQG1peGluIGNsZWFyZml4IHsgZGlzcGxheTogYmxvY2s7IFxyXG5cdCY6YmVmb3JlLCY6YWZ0ZXJ7IGNvbnRlbnQ6IFwiLlwiOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XHJcbn1cclxuXHJcbi5jbGVhci1sZzJ7Y2xlYXI6Ym90aDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpIHtjbGVhcjpub25lfVxyXG59XHJcbi5jbGVhci1sZzF7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKSB7Y2xlYXI6bm9uZX1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpIHtjbGVhcjpib3RofVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxneCkge2NsZWFyOm5vbmV9XHJcbn1cclxuLmxnMntkaXNwbGF5OmJsb2NrO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSkge1xyXG5cdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHR9XHJcbn1cclxuLmxnMXtkaXNwbGF5Om5vbmU7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBb0JtQkEsQUFBQSxDQUFDLENBQUEsRUFBQyxPQUFPLEVBQUMsQ0FBQyxHQUFJOztBbkI2Q1gsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLEltQjVDNUIsQUFBQSxZQUFZLENBQUMsRUFFVixPQUFPLEVBQUUsT0FBTyxHQUduQjs7QUFXRCxBQUFBLFVBQVUsQ0FBQSxFQUFDLEtBQUssRUFBQyxJQUFJLEdBRXBCOztBbkIwQkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLEltQjVCN0IsQUFBQSxVQUFVLENBQUEsRUFDa0IsS0FBSyxFQUFDLElBQUksR0FDckM7O0FuQjBCRyxNQUFNLEVBQUcsU0FBUyxFQUFFLE1BQU0sSW1CekI5QixBQUFBLFVBQVUsQ0FBQSxFQUNrQixLQUFLLEVBQUMsSUFBSSxHQUdyQzs7QW5CcUJHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJbUJ6QjdCLEFBQUEsVUFBVSxDQUFBLEVBRWtCLEtBQUssRUFBQyxJQUFJLEdBRXJDOztBbkJxQkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLEltQnpCN0IsQUFBQSxVQUFVLENBQUEsRUFHa0IsS0FBSyxFQUFDLElBQUksR0FDckM7O0FBQ0QsQUFBQSxJQUFJLENBQUEsRUFBQyxPQUFPLEVBQUMsS0FBSyxHQUlqQjs7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QUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEdBQUk7O0FBQy9FLEFBQVcsSUFBUCxHQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxBQUFBLEtBQUssQ0FBQSxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE9BQU8sR0FBSTs7QUFDdEQsQUFBSyxJQUFELENBQUMsU0FBUyxDQUFBLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBQyxJQUFJLEdBQUk7O0FBQzlHLEFBQWUsSUFBWCxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUEsRUFBQyxPQUFPLEVBQUMsS0FBSyxHQUFJOztBQUNsQyxBQUFlLElBQVgsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxBQUFBLGNBQWMsQ0FBQSxFQUFDLFVBQVUsRUFBRSwyQ0FBMkMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxJQUFJLEdBQUk7O0FBQ3ZJLEFBQUssSUFBRCxDQUFDLFNBQVMsQUFBQSxHQUFHLENBQUEsRUFBQyxPQUFPLEVBQUMsSUFBSSxHQUFJOztBQUNsQyxBQUFLLElBQUQsQ0FBQyxlQUFlLENBQUEsRUFBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsSUFBSSxHQUFJOztBQUM3SSxBQUFLLElBQUQsQ0FBQyxlQUFlLEFBQUEsTUFBTSxFQUFDLEFBQUssSUFBRCxDQUFDLGVBQWUsQUFBQSxNQUFNLENBQUEsRUFBQyxVQUFVLEVBQUMsSUFB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 */

body{background:#f2f4f7 url(/static/images/common/bg_top2.gif) repeat-x left top}
@media (max-width: 767px){
	
	body{background-image:none !important;}
}
#gnb > ul > li{background:url(/static/images/common/bg_gnbLine2.gif) repeat-y left top}